pleroma/priv/static/static/js/app.46df424bf901fd5e6d56.js.map
sadposter 1008f9ac40 fe
2020-05-08 14:38:37 +01:00

1 line
1.6 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/components/checkbox/checkbox.vue","webpack:///./src/components/checkbox/checkbox.vue","webpack:///./src/components/checkbox/checkbox.vue?d842","webpack:///./src/services/notification_utils/notification_utils.js","webpack:///./src/services/user_profile_link_generator/user_profile_link_generator.js","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?5301","webpack:///./src/components/moderation_tools/moderation_tools.js","webpack:///./src/components/moderation_tools/moderation_tools.vue","webpack:///./src/components/moderation_tools/moderation_tools.vue?ab91","webpack:///./src/components/account_actions/account_actions.js","webpack:///./src/components/account_actions/account_actions.vue","webpack:///./src/components/account_actions/account_actions.vue?772b","webpack:///./src/components/user_card/user_card.js","webpack:///./src/components/user_card/user_card.vue","webpack:///./src/components/user_card/user_card.vue?b2e3","webpack:///./src/components/user_avatar/user_avatar.js","webpack:///./src/components/user_avatar/user_avatar.vue","webpack:///./src/components/user_avatar/user_avatar.vue?7f9b","webpack:///./src/components/favorite_button/favorite_button.js","webpack:///./src/components/favorite_button/favorite_button.vue","webpack:///./src/components/favorite_button/favorite_button.vue?d75b","webpack:///./src/components/react_button/react_button.js","webpack:///./src/components/react_button/react_button.vue","webpack:///./src/components/react_button/react_button.vue?875f","webpack:///./src/components/retweet_button/retweet_button.js","webpack:///./src/components/retweet_button/retweet_button.vue","webpack:///./src/components/retweet_button/retweet_button.vue?98e9","webpack:///./src/components/extra_buttons/extra_buttons.js","webpack:///./src/components/extra_buttons/extra_buttons.vue","webpack:///./src/components/extra_buttons/extra_buttons.vue?221f","webpack:///./src/components/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/attachment/attachment.js","webpack:///./src/components/attachment/attachment.vue","webpack:///./src/components/attachment/attachment.vue?d008","webpack:///./src/components/poll/poll.js","webpack:///./src/components/poll/poll.vue","webpack:///./src/components/poll/poll.vue?8a30","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/status_content/status_content.js","webpack:///./src/services/tiny_post_html_processor/tiny_post_html_processor.service.js","webpack:///./src/services/matcher/matcher.service.js","webpack:///./src/components/status_content/status_content.vue","webpack:///./src/components/status_content/status_content.vue?9a7e","webpack:///./src/components/status_popover/status_popover.js","webpack:///./src/components/status_popover/status_popover.vue","webpack:///./src/components/status_popover/status_popover.vue?1d9f","webpack:///./src/components/emoji_reactions/emoji_reactions.js","webpack:///./src/components/emoji_reactions/emoji_reactions.vue","webpack:///./src/components/emoji_reactions/emoji_reactions.vue?c07b","webpack:///./src/components/status/status.js","webpack:///./src/components/status/status.vue","webpack:///./src/components/status/status.vue?57a7","webpack:///./src/components/popover/popover.js","webpack:///./src/components/popover/popover.vue","webpack:///./src/components/popover/popover.vue?46e2","webpack:///./src/services/date_utils/date_utils.js","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/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/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?5e8c","webpack:///./src/services/follow_manipulate/follow_manipulate.js","webpack:///./src/components/follow_button/follow_button.js","webpack:///./src/components/follow_button/follow_button.vue","webpack:///./src/components/follow_button/follow_button.vue?8c95","webpack:///./src/components/scope_selector/scope_selector.js","webpack:///./src/components/scope_selector/scope_selector.vue","webpack:///./src/components/scope_selector/scope_selector.vue?4ef5","webpack:///./src/components/video_attachment/video_attachment.js","webpack:///./src/components/video_attachment/video_attachment.vue","webpack:///./src/components/video_attachment/video_attachment.vue?695e","webpack:///./src/components/remote_follow/remote_follow.js","webpack:///./src/components/remote_follow/remote_follow.vue","webpack:///./src/components/remote_follow/remote_follow.vue?deba","webpack:///./src/assets/nsfw.png","webpack:///./src/components/timeline/timeline.vue?f674","webpack:///./src/components/timeline/timeline.vue?d6bb","webpack:///./src/components/status/status.vue?fa33","webpack:///./src/components/status/status.vue?733b","webpack:///./src/components/favorite_button/favorite_button.vue?0184","webpack:///./src/components/favorite_button/favorite_button.vue?9b9b","webpack:///./src/components/react_button/react_button.vue?f6fc","webpack:///./src/components/react_button/react_button.vue?5317","webpack:///./src/components/popover/popover.vue?1bf1","webpack:///./src/components/popover/popover.vue?333e","webpack:///./src/components/retweet_button/retweet_button.vue?8eee","webpack:///./src/components/retweet_button/retweet_button.vue?ecd9","webpack:///./src/components/extra_buttons/extra_buttons.vue?2134","webpack:///./src/components/extra_buttons/extra_buttons.vue?bef5","webpack:///./src/components/post_status_form/post_status_form.vue?fd6e","webpack:///./src/components/post_status_form/post_status_form.vue?5887","webpack:///./src/components/media_upload/media_upload.vue?d613","webpack:///./src/components/media_upload/media_upload.vue?1e11","webpack:///./src/components/scope_selector/scope_selector.vue?baf6","webpack:///./src/components/scope_selector/scope_selector.vue?341e","webpack:///./src/components/emoji_input/emoji_input.vue?88c6","webpack:///./src/components/emoji_input/emoji_input.vue?c0d0","webpack:///./src/components/emoji_picker/emoji_picker.scss?a54d","webpack:///./src/components/emoji_picker/emoji_picker.scss","webpack:///./src/components/checkbox/checkbox.vue?3599","webpack:///./src/components/checkbox/checkbox.vue?bf55","webpack:///./src/components/poll/poll_form.vue?43b8","webpack:///./src/components/poll/poll_form.vue?f333","webpack:///./src/components/user_card/user_card.vue?1920","webpack:///./src/components/user_card/user_card.vue?a3c0","webpack:///./src/components/user_avatar/user_avatar.vue?aac8","webpack:///./src/components/user_avatar/user_avatar.vue?6951","webpack:///./src/components/still-image/still-image.vue?21db","webpack:///./src/components/still-image/still-image.vue?da13","webpack:///./src/components/remote_follow/remote_follow.vue?44cd","webpack:///./src/components/remote_follow/remote_follow.vue?2689","webpack:///./src/components/moderation_tools/moderation_tools.vue?3b42","webpack:///./src/components/moderation_tools/moderation_tools.vue?870b","webpack:///./src/components/dialog_modal/dialog_modal.vue?66ca","webpack:///./src/components/dialog_modal/dialog_modal.vue?e653","webpack:///./src/components/account_actions/account_actions.vue?755f","webpack:///./src/components/account_actions/account_actions.vue?1dab","webpack:///./src/components/avatar_list/avatar_list.vue?83d0","webpack:///./src/components/avatar_list/avatar_list.vue?4546","webpack:///./src/components/status_content/status_content.vue?2f26","webpack:///./src/components/status_content/status_content.vue?6841","webpack:///./src/components/attachment/attachment.vue?4fa7","webpack:///./src/components/attachment/attachment.vue?5971","webpack:///./src/components/poll/poll.vue?7318","webpack:///./src/components/poll/poll.vue?192f","webpack:///./src/components/gallery/gallery.vue?ea2c","webpack:///./src/components/gallery/gallery.vue?759e","webpack:///./src/components/link-preview/link-preview.vue?95df","webpack:///./src/components/link-preview/link-preview.vue?40b7","webpack:///./src/components/status_popover/status_popover.vue?91c2","webpack:///./src/components/status_popover/status_popover.vue?2f11","webpack:///./src/components/emoji_reactions/emoji_reactions.vue?bab1","webpack:///./src/components/emoji_reactions/emoji_reactions.vue?6021","webpack:///./src/components/conversation/conversation.vue?e1e5","webpack:///./src/components/conversation/conversation.vue?e01a","webpack:///./src/components/notifications/notifications.scss?c04f","webpack:///./src/components/notifications/notifications.scss","webpack:///./src/components/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.scss?c457","webpack:///./src/components/color_input/color_input.scss","webpack:///./src/components/color_input/color_input.vue?6a4c","webpack:///./src/components/color_input/color_input.vue?bb22","webpack:///./src/components/shadow_control/shadow_control.vue?bfd4","webpack:///./src/components/shadow_control/shadow_control.vue?78ef","webpack:///./src/components/font_control/font_control.vue?5f33","webpack:///./src/components/font_control/font_control.vue?bef4","webpack:///./src/components/contrast_ratio/contrast_ratio.vue?a340","webpack:///./src/components/contrast_ratio/contrast_ratio.vue?32fa","webpack:///./src/components/style_switcher/preview.vue?9c8a","webpack:///./src/components/style_switcher/preview.vue?9b95","webpack:///./src/components/export_import/export_import.vue?5952","webpack:///./src/components/export_import/export_import.vue?aed6","webpack:///./src/components/registration/registration.vue?d518","webpack:///./src/components/registration/registration.vue?fd73","webpack:///./src/components/password_reset/password_reset.vue?d048","webpack:///./src/components/password_reset/password_reset.vue?5ec5","webpack:///./src/components/user_settings/user_settings.vue?1522","webpack:///./src/components/user_settings/user_settings.vue?6575","webpack:///./src/components/image_cropper/image_cropper.vue?f169","webpack:///./src/components/image_cropper/image_cropper.vue?6235","webpack:///./src/components/block_card/block_card.vue?7ad7","webpack:///./src/components/block_card/block_card.vue?ddc8","webpack:///./src/components/mute_card/mute_card.vue?c72f","webpack:///./src/components/mute_card/mute_card.vue?1268","webpack:///./src/components/domain_mute_card/domain_mute_card.vue?a613","webpack:///./src/components/domain_mute_card/domain_mute_card.vue?c85e","webpack:///./src/components/selectable_list/selectable_list.vue?a6e3","webpack:///./src/components/selectable_list/selectable_list.vue?c2f8","webpack:///./src/components/autosuggest/autosuggest.vue?9908","webpack:///./src/components/autosuggest/autosuggest.vue?9383","webpack:///./src/components/importer/importer.vue?7798","webpack:///./src/components/importer/importer.vue?6af6","webpack:///./src/components/exporter/exporter.vue?dea3","webpack:///./src/components/exporter/exporter.vue?cc2b","webpack:///./src/components/user_settings/mfa.vue?6a62","webpack:///./src/components/user_settings/mfa.vue?64d1","webpack:///./src/components/user_settings/mfa_backup_codes.vue?922c","webpack:///./src/components/user_settings/mfa_backup_codes.vue?4206","webpack:///./src/components/follow_request_card/follow_request_card.vue?c9e7","webpack:///./src/components/follow_request_card/follow_request_card.vue?b0bb","webpack:///./src/components/login_form/login_form.vue?99e8","webpack:///./src/components/login_form/login_form.vue?9c6d","webpack:///./src/components/chat_panel/chat_panel.vue?9dd9","webpack:///./src/components/chat_panel/chat_panel.vue?d094","webpack:///./src/components/who_to_follow/who_to_follow.vue?6f47","webpack:///./src/components/who_to_follow/who_to_follow.vue?4eb6","webpack:///./src/components/about/about.vue?47a2","webpack:///./src/components/about/about.vue?7cdd","webpack:///./src/components/features_panel/features_panel.vue?b8ab","webpack:///./src/components/features_panel/features_panel.vue?867d","webpack:///./src/components/terms_of_service_panel/terms_of_service_panel.vue?7e97","webpack:///./src/components/terms_of_service_panel/terms_of_service_panel.vue?7643","webpack:///./src/components/staff_panel/staff_panel.vue?020d","webpack:///./src/components/staff_panel/staff_panel.vue?a8d5","webpack:///./src/components/mrf_transparency_panel/mrf_transparency_panel.vue?eece","webpack:///./src/components/mrf_transparency_panel/mrf_transparency_panel.vue?6ed6","webpack:///./src/components/remote_user_resolver/remote_user_resolver.vue?7d1a","webpack:///./src/components/remote_user_resolver/remote_user_resolver.vue?f8d3","webpack:///./src/App.scss?b70d","webpack:///./src/App.scss","webpack:///./src/components/user_panel/user_panel.vue?e12b","webpack:///./src/components/user_panel/user_panel.vue?63b4","webpack:///./src/components/nav_panel/nav_panel.vue?7be9","webpack:///./src/components/nav_panel/nav_panel.vue?be5f","webpack:///./src/components/search_bar/search_bar.vue?269b","webpack:///./src/components/search_bar/search_bar.vue?0fb3","webpack:///./src/components/who_to_follow_panel/who_to_follow_panel.vue?2f6b","webpack:///./src/components/who_to_follow_panel/who_to_follow_panel.vue?1274","webpack:///./src/components/media_modal/media_modal.vue?2930","webpack:///./src/components/media_modal/media_modal.vue?1d79","webpack:///./src/components/modal/modal.vue?a37f","webpack:///./src/components/modal/modal.vue?328d","webpack:///./src/components/side_drawer/side_drawer.vue?472d","webpack:///./src/components/side_drawer/side_drawer.vue?fcf9","webpack:///./src/components/mobile_post_status_button/mobile_post_status_button.vue?1868","webpack:///./src/components/mobile_post_status_button/mobile_post_status_button.vue?7cf2","webpack:///./src/components/mobile_nav/mobile_nav.vue?46cb","webpack:///./src/components/mobile_nav/mobile_nav.vue?9a0e","webpack:///./src/components/user_reporting_modal/user_reporting_modal.vue?7889","webpack:///./src/components/user_reporting_modal/user_reporting_modal.vue?1af4","webpack:///./src/components/post_status_modal/post_status_modal.vue?892e","webpack:///./src/components/post_status_modal/post_status_modal.vue?b34c","webpack:///./src/lib/event_target_polyfill.js","webpack:///./src/modules/interface.js","webpack:///./src/services/theme_data/pleromafe.js","webpack:///./src/services/theme_data/theme_data.service.js","webpack:///./src/services/style_setter/style_setter.js","webpack:///./src/modules/config.js","webpack:///./src/modules/instance.js","webpack:///./src/modules/statuses.js","webpack:///./src/services/timeline_fetcher/timeline_fetcher.service.js","webpack:///./src/services/notifications_fetcher/notifications_fetcher.service.js","webpack:///./src/services/follow_request_fetcher/follow_request_fetcher.service.js","webpack:///./src/services/backend_interactor_service/backend_interactor_service.js","webpack:///./src/services/new_api/oauth.js","webpack:///./src/services/push/push.js","webpack:///./src/modules/users.js","webpack:///./src/modules/api.js","webpack:///./src/modules/chat.js","webpack:///./src/modules/oauth.js","webpack:///./src/modules/auth_flow.js","webpack:///./src/modules/media_viewer.js","webpack:///./src/modules/oauth_tokens.js","webpack:///./src/modules/reports.js","webpack:///./src/modules/polls.js","webpack:///./src/modules/postStatus.js","webpack:///./src/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?8920","webpack:///./src/components/notifications/notifications.js","webpack:///./src/components/notifications/notifications.vue","webpack:///./src/components/notifications/notifications.vue?a489","webpack:///./src/components/interactions/interactions.js","webpack:///./src/components/interactions/interactions.vue","webpack:///./src/components/interactions/interactions.vue?db62","webpack:///./src/components/dm_timeline/dm_timeline.js","webpack:///./src/components/dm_timeline/dm_timeline.vue","webpack:///./src/components/dm_timeline/dm_timeline.vue?4177","webpack:///./src/components/basic_user_card/basic_user_card.js","webpack:///./src/components/basic_user_card/basic_user_card.vue","webpack:///./src/components/basic_user_card/basic_user_card.vue?78e9","webpack:///./src/components/follow_card/follow_card.js","webpack:///./src/components/follow_card/follow_card.vue","webpack:///./src/components/follow_card/follow_card.vue?49f0","webpack:///src/components/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?38c6","webpack:///./src/components/search/search.js","webpack:///./src/components/search/search.vue","webpack:///./src/components/search/search.vue?ec9a","webpack:///src/components/color_input/color_input.vue","webpack:///./src/components/color_input/color_input.vue","webpack:///./src/components/color_input/color_input.vue?3d5b","webpack:///./src/components/range_input/range_input.vue","webpack:///src/components/range_input/range_input.vue","webpack:///./src/components/range_input/range_input.vue?202a","webpack:///src/components/opacity_input/opacity_input.vue","webpack:///./src/components/opacity_input/opacity_input.vue","webpack:///./src/components/opacity_input/opacity_input.vue?0078","webpack:///./src/components/shadow_control/shadow_control.js","webpack:///./src/components/shadow_control/shadow_control.vue","webpack:///./src/components/shadow_control/shadow_control.vue?c9d6","webpack:///./src/components/font_control/font_control.js","webpack:///./src/components/font_control/font_control.vue","webpack:///./src/components/font_control/font_control.vue?184b","webpack:///src/components/contrast_ratio/contrast_ratio.vue","webpack:///./src/components/contrast_ratio/contrast_ratio.vue","webpack:///./src/components/contrast_ratio/contrast_ratio.vue?73bf","webpack:///./src/components/style_switcher/preview.vue","webpack:///./src/components/style_switcher/preview.vue?99be","webpack:///src/components/export_import/export_import.vue","webpack:///./src/components/export_import/export_import.vue","webpack:///./src/components/export_import/export_import.vue?9130","webpack:///./src/components/style_switcher/style_switcher.js","webpack:///./src/components/style_switcher/style_switcher.vue","webpack:///./src/components/style_switcher/style_switcher.vue?d586","webpack:///src/components/interface_language_switcher/interface_language_switcher.vue","webpack:///./src/components/interface_language_switcher/interface_language_switcher.vue","webpack:///./src/components/interface_language_switcher/interface_language_switcher.vue?da5c","webpack:///./src/components/settings/settings.js","webpack:///./src/services/version/version.service.js","webpack:///./src/components/settings/settings.vue","webpack:///./src/components/settings/settings.vue?d83a","webpack:///./src/components/registration/registration.js","webpack:///./src/components/registration/registration.vue","webpack:///./src/components/registration/registration.vue?3c1d","webpack:///./src/services/new_api/password_reset.js","webpack:///./src/components/password_reset/password_reset.js","webpack:///./src/components/password_reset/password_reset.vue","webpack:///./src/components/password_reset/password_reset.vue?4c1d","webpack:///./src/components/image_cropper/image_cropper.js","webpack:///./src/components/image_cropper/image_cropper.vue","webpack:///./src/components/image_cropper/image_cropper.vue?017e","webpack:///./src/components/block_card/block_card.js","webpack:///./src/components/block_card/block_card.vue","webpack:///./src/components/block_card/block_card.vue?7b44","webpack:///./src/components/mute_card/mute_card.js","webpack:///./src/components/mute_card/mute_card.vue","webpack:///./src/components/mute_card/mute_card.vue?6bc9","webpack:///./src/components/domain_mute_card/domain_mute_card.js","webpack:///./src/components/domain_mute_card/domain_mute_card.vue","webpack:///./src/components/domain_mute_card/domain_mute_card.vue?25b9","webpack:///./src/components/selectable_list/selectable_list.js","webpack:///./src/components/selectable_list/selectable_list.vue","webpack:///./src/components/selectable_list/selectable_list.vue?5686","webpack:///./src/components/autosuggest/autosuggest.js","webpack:///./src/components/autosuggest/autosuggest.vue","webpack:///./src/components/autosuggest/autosuggest.vue?b400","webpack:///./src/components/importer/importer.js","webpack:///./src/components/importer/importer.vue","webpack:///./src/components/importer/importer.vue?320c","webpack:///./src/components/exporter/exporter.js","webpack:///./src/components/exporter/exporter.vue","webpack:///./src/components/exporter/exporter.vue?7e42","webpack:///./src/hocs/with_subscription/with_subscription.js","webpack:///./src/components/user_settings/mfa_backup_codes.js","webpack:///./src/components/user_settings/mfa_backup_codes.vue","webpack:///./src/components/user_settings/mfa_backup_codes.vue?c289","webpack:///./src/components/user_settings/confirm.js","webpack:///./src/components/user_settings/confirm.vue","webpack:///./src/components/user_settings/confirm.vue?7c4c","webpack:///./src/components/user_settings/mfa_totp.js","webpack:///./src/components/user_settings/mfa.js","webpack:///./src/components/user_settings/mfa_totp.vue","webpack:///./src/components/user_settings/mfa_totp.vue?d10c","webpack:///./src/components/user_settings/mfa.vue","webpack:///./src/components/user_settings/mfa.vue?5102","webpack:///./src/components/user_settings/user_settings.js","webpack:///./src/components/user_settings/user_settings.vue","webpack:///./src/components/user_settings/user_settings.vue?37cb","webpack:///./src/components/follow_request_card/follow_request_card.js","webpack:///./src/components/follow_request_card/follow_request_card.vue","webpack:///./src/components/follow_requests/follow_requests.js","webpack:///./src/components/follow_request_card/follow_request_card.vue?e2ae","webpack:///./src/components/follow_requests/follow_requests.vue","webpack:///./src/components/follow_requests/follow_requests.vue?6944","webpack:///./src/components/oauth_callback/oauth_callback.js","webpack:///./src/components/oauth_callback/oauth_callback.vue","webpack:///./src/components/oauth_callback/oauth_callback.vue?99e7","webpack:///./src/components/login_form/login_form.js","webpack:///./src/components/login_form/login_form.vue","webpack:///./src/components/login_form/login_form.vue?ec94","webpack:///./src/services/new_api/mfa.js","webpack:///./src/components/mfa_form/recovery_form.js","webpack:///./src/components/mfa_form/recovery_form.vue","webpack:///./src/components/mfa_form/recovery_form.vue?9df7","webpack:///./src/components/mfa_form/totp_form.js","webpack:///./src/components/mfa_form/totp_form.vue","webpack:///./src/components/mfa_form/totp_form.vue?2e19","webpack:///./src/components/auth_form/auth_form.js","webpack:///./src/components/chat_panel/chat_panel.js","webpack:///./src/components/chat_panel/chat_panel.vue","webpack:///./src/components/chat_panel/chat_panel.vue?3953","webpack:///./src/components/who_to_follow/who_to_follow.js","webpack:///./src/components/who_to_follow/who_to_follow.vue","webpack:///./src/components/who_to_follow/who_to_follow.vue?4a17","webpack:///./src/components/instance_specific_panel/instance_specific_panel.js","webpack:///./src/components/instance_specific_panel/instance_specific_panel.vue","webpack:///./src/components/instance_specific_panel/instance_specific_panel.vue?3490","webpack:///./src/components/features_panel/features_panel.js","webpack:///./src/components/features_panel/features_panel.vue","webpack:///./src/components/features_panel/features_panel.vue?33c8","webpack:///./src/components/terms_of_service_panel/terms_of_service_panel.js","webpack:///./src/components/terms_of_service_panel/terms_of_service_panel.vue","webpack:///./src/components/terms_of_service_panel/terms_of_service_panel.vue?25e4","webpack:///./src/components/staff_panel/staff_panel.js","webpack:///./src/components/staff_panel/staff_panel.vue","webpack:///./src/components/staff_panel/staff_panel.vue?0ab8","webpack:///./src/components/mrf_transparency_panel/mrf_transparency_panel.js","webpack:///./src/components/mrf_transparency_panel/mrf_transparency_panel.vue","webpack:///./src/components/about/about.js","webpack:///./src/components/mrf_transparency_panel/mrf_transparency_panel.vue?8c91","webpack:///./src/components/about/about.vue","webpack:///./src/components/about/about.vue?7acf","webpack:///./src/components/remote_user_resolver/remote_user_resolver.js","webpack:///./src/components/remote_user_resolver/remote_user_resolver.vue","webpack:///./src/components/remote_user_resolver/remote_user_resolver.vue?5c98","webpack:///./src/boot/routes.js","webpack:///./src/components/user_panel/user_panel.js","webpack:///./src/components/user_panel/user_panel.vue","webpack:///./src/components/user_panel/user_panel.vue?ecb6","webpack:///./src/components/nav_panel/nav_panel.js","webpack:///./src/components/nav_panel/nav_panel.vue","webpack:///./src/components/nav_panel/nav_panel.vue?48ee","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?05c8","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?72b7","webpack:///./src/boot/after_store.js","webpack:///./src/main.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","call","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","0","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","p","2","jsonpScriptSrc","error","Error","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","message","request","undefined","setTimeout","head","appendChild","all","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","window","oldJsonpFunction","slice","rgb2hex","g","b","_babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_2___default","_r","_map","map","val","Math","ceil","_map2","_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1___default","concat","toString","srgbToLinear","srgb","split","reduce","acc","bit","pow","c2linear","relativeLuminance","_srgbToLinear","getContrastRatio","a","la","lb","_ref","_ref2","getContrastRatioLayers","text","layers","bedrock","alphaBlendLayers","alphaBlend","fg","fga","bg","_ref3","_ref4","color","opacity","hex2rgb","hex","exec","parseInt","mixrgb","k","rgba2css","rgba","floor","getTextColor","preserve","base","assign","invertLightness","rgb","contrastRatio","getCssColor","input","startsWith","_objectSpread","parseUser","output","masto","mastoShort","id","String","screen_name","acct","statusnet_profile_url","url","display_name","name_html","addEmojis","escape","emojis","description","note","description_html","fields","fields_html","field","profile_image_url","avatar","profile_image_url_original","cover_photo","header","friends_count","following_count","bot","pleroma","relationship","background_image","token","chat_token","allow_following_move","hide_follows","hide_followers","hide_follows_count","hide_followers_count","rights","moderator","is_moderator","admin","is_admin","role","source","default_scope","privacy","no_rich_text","show_role","discoverable","is_local","includes","delete_others_notice","muting","muted","blocking","statusnet_blocking","followed_by","follows_you","following","created_at","Date","locked","followers_count","statuses_count","friendIds","followerIds","pinnedStatusIds","follow_request_count","tags","deactivated","notification_settings","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","summary","spoiler_text","statusnet_conversation_id","conversation_id","local","in_reply_to_screen_name","in_reply_to_account_acct","thread_muted","emoji_reactions","in_reply_to_status_id","in_reply_to_id","in_reply_to_user_id","in_reply_to_account_id","replies_count","retweeted_status","summary_html","external_url","poll","pinned","is_post_verb","uri","match","qvitter_delete_notice","activity_type","isNsfw","visibility","card","user","account","attentions","mentions","attachments","media_attachments","retweetedStatus","favoritedBy","rebloggedBy","parseNotification","favourite","seen","is_seen","isStatusNotification","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_DISMISS_NOTIFICATION_URL","MASTODON_FAVORITE_URL","MASTODON_UNFAVORITE_URL","MASTODON_RETWEET_URL","MASTODON_UNRETWEET_URL","MASTODON_USER_TIMELINE_URL","MASTODON_TAG_TIMELINE_URL","tag","MASTODON_MUTE_USER_URL","MASTODON_UNMUTE_USER_URL","MASTODON_SUBSCRIBE_USER","MASTODON_UNSUBSCRIBE_USER","MASTODON_STATUS_FAVORITEDBY_URL","MASTODON_STATUS_REBLOGGEDBY_URL","MASTODON_PIN_OWN_STATUS","MASTODON_UNPIN_OWN_STATUS","MASTODON_MUTE_CONVERSATION","MASTODON_UNMUTE_CONVERSATION","PLEROMA_EMOJI_REACTIONS_URL","PLEROMA_EMOJI_REACT_URL","PLEROMA_EMOJI_UNREACT_URL","oldfetch","fetch","fullUrl","credentials","promisedRequest","method","params","payload","_ref$headers","headers","Accept","Content-Type","encodeURIComponent","authHeaders","then","json","ok","accessToken","Authorization","fetchFriends","_ref22","maxId","sinceId","_ref22$limit","limit","MASTODON_FOLLOWING_URL","args","filter","_","getMastodonSocketURI","_ref81","stream","_ref81$args","access_token","_ref82","_ref83","MASTODON_STREAMING","MASTODON_STREAMING_EVENTS","Set","ProcessedWS","_ref84","_ref84$preprocessor","preprocessor","handleMastoWS","_ref84$id","eventTarget","EventTarget","socket","WebSocket","proxy","original","eventName","processor","arguments","addEventListener","eventData","dispatchEvent","CustomEvent","detail","wsEvent","debug","code","close","parsedEvent","has","warn","notification","apiService","verifyCredentials","fetchTimeline","_ref36","timeline","_ref36$since","since","_ref36$until","until","_ref36$userId","userId","_ref36$tag","_ref36$withMuted","withMuted","isNotifications","public","friends","dms","notifications","publicAndExternal","media","favorites","queryString","map_default","param","statusText","fetchPinnedStatuses","_ref37","fetchConversation","_ref26","urlContext","MASTODON_STATUS_CONTEXT_URL","_ref27","ancestors","descendants","fetchStatus","_ref28","MASTODON_STATUS_URL","exportFriends","_ref23","more","users","regenerator_default","async","_context","prev","next","last_default","awrap","sent","concat_default","t0","stop","fetchFollowers","_ref24","_ref24$limit","MASTODON_FOLLOWERS_URL","followUser","_ref10","objectWithoutProperties_default","MASTODON_FOLLOW_URL","form","reblogs","unfollowUser","_ref11","MASTODON_UNFOLLOW_URL","pinOwnStatus","_ref12","unpinOwnStatus","_ref13","muteConversation","_ref14","unmuteConversation","_ref15","blockUser","_ref16","MASTODON_BLOCK_USER_URL","unblockUser","_ref17","MASTODON_UNBLOCK_USER_URL","fetchUser","_ref20","fetchUserRelationship","_ref21","favorite","_ref38","unfavorite","_ref39","retweet","_ref40","unretweet","_ref41","postStatus","_ref42","spoilerText","_ref42$mediaIds","mediaIds","inReplyToStatusId","contentType","FormData","pollOptions","append","forEach","some","option","normalizedPoll","expires_in","expiresIn","multiple","keys","deleteStatus","_ref43","MASTODON_DELETE_URL","uploadMedia","_ref44","formData","fetchMutes","_ref55","muteUser","_ref56","unmuteUser","_ref57","subscribeUser","_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","_ref66$single","single","dismissNotification","_ref80","vote","_ref67","pollId","choices","fetchPoll","_ref68","fetchFavoritedByUsers","_ref69","fetchRebloggedByUsers","_ref70","fetchMascot","_ref58","updateMascot","_ref59","mascot","fetchEmojiReactions","_ref71","reactions","accounts","reactWithEmoji","_ref72","unreactWithEmoji","_ref73","reportUser","_ref74","statusIds","comment","forward","account_id","status_ids","updateNotificationSettings","settings","each_default","search2","_ref76","q","offset","u","statuses","searchUsers","_ref75","query","fetchDomainMutes","_ref77","muteDomain","_ref78","domain","unmuteDomain","_ref79","__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__","notificationsFromStore","store","state","statusNotifications","lodash_includes__WEBPACK_IMPORTED_MODULE_0___default","sortById","seqA","Number","seqB","isSeqA","isNaN","isSeqB","filteredNotificationsFromStore","types","sortedNotifications","sort","lodash_sortBy__WEBPACK_IMPORTED_MODULE_1___default","config","notificationVisibility","likes","repeats","follows","followRequest","moves","emojiReactions","visibleTypes","unseenNotificationsFromStore","lodash_filter__WEBPACK_IMPORTED_MODULE_2___default","isExternal","generateProfileLink","restrictedNicknames","complicated","fileType","fileTypeService","fileMatchesSomeType","DialogModal","darkOverlay","onCancel","Function","dialog_modal_dialog_modal","dialog_modal","dark-overlay","click","currentTarget","stopPropagation","ModerationTools","FORCE_NSFW","STRIP_MEDIA","FORCE_UNLISTED","DISABLE_REMOTE_SUBSCRIPTION","DISABLE_ANY_SUBSCRIPTION","SANDBOX","QUARANTINE","showDeleteUserDialog","toggled","components","Popover","computed","tagsSet","hasTagPolicy","$store","instance","tagPolicyAvailable","methods","hasTag","tagName","toggleTag","api","backendInteractor","commit","toggleRight","_this2","toggleActivationStatus","dispatch","deleteUserDialog","show","_this3","isProfile","$route","isTargetUser","history","back","setToggled","moderation_tools_vue_styles_","moderation_tools_moderation_tools","moderation_tools","trigger","placement","y","slot","_s","$t","menu-checkbox-checked","to","on-cancel","AccountActions","ProgressButton","showRepeats","hideRepeats","account_actions_vue_styles_","account_actions_account_actions","account_actions","showing_reblogs","user_card","followRequestInProgress","betterShadow","browserSupport","cssFilter","created","getters","findUser","classes","user-card-rounded-t","rounded","user-card-rounded","user-card-bordered","bordered","style","backgroundImage","isOtherUser","currentUser","subscribeUrl","serverUrl","URL","protocol","host","loggedIn","dailyAvg","days","round","userHighlightType","mergedConfig","highlight","set","mapGetters","userHighlightColor","visibleRole","validRole","roleTitle","hideFollowsCount","hideFollowersCount","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","composing","for","$$selectedVal","Array","selected","_value","subscribing","preventDefault","showPlaceholder","StillImage","imgSrc","imageLoadError","watch","user_avatar","avatar-compact","compact","alt","image-load-error","FavoriteButton","animated","icon-star-empty","icon-star","animate-spin","favorite_button_favorite_button","favorite_button","hidePostStats","ReactButton","filterWord","addReaction","existingReaction","find","me","react_button_objectSpread","commonEmojis","displayText","react_button_vue_styles_","react_button_react_button","react_button","scopedSlots","_u","fn","ref","placeholder","_l","replacement","RetweetButton","retweet_button_objectSpread","retweeted","retweeted-empty","retweet_button_vue_styles_","retweet_button_retweet_button","retweet_button","ExtraButtons","confirm","pinStatus","unpinStatus","_this4","copyLink","_this5","navigator","clipboard","writeText","statusLink","canDelete","ownStatus","canPin","canMute","server","$router","extra_buttons_vue_styles_","extra_buttons_extra_buttons","extra_buttons","AvatarList","slicedUsers","avatar_list_vue_styles_","avatar_list_avatar_list","avatar_list","Attachment","nsfwImage","nsfwCensorImage","hideNsfwLocal","hideNsfw","preloadImage","loading","img","modalOpen","showHidden","VideoAttachment","attachment_objectSpread","usePlaceHolder","size","referrerpolicy","mediaProxyAvailable","hidden","isEmpty","oembed","isSmall","fullwidth","openModal","modalTypes","playVideosInModal","setMedia","toggleHidden","useOneClickNsfw","onImageLoad","image","width","naturalWidth","height","naturalHeight","naturalSizeLoad","attachment_vue_styles_","attachment_attachment","_obj","toUpperCase","small","large_thumb_url","image-load-handler","allowPlay","controls","thumb_url","oembedHTML","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","path","time","auto-update","now-threshold","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","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","StatusContent","showingTall","inConversation","focused","showingLongSubject","expandingSubject","collapseMessageWithSubject","status_content_objectSpread","localCollapseSubjectDefault","hideAttachments","hideAttachmentsInConv","tallStatus","longSubject","mightHideBecauseSubject","mightHideBecauseTall","hideSubjectStatus","hideTallStatus","showingMore","nsfwClickthrough","attachmentSize","maxThumbnails","galleryTypes","galleryAttachments","nonGalleryAttachments","hasImageAttachments","hasVideoAttachments","postBodyHtml","html","greentext","handledTags","openCloseTags","buffer","level","textBuffer","tagBuffer","flush","trim","handleBr","handleOpen","handleClose","pop","char","tagFull","processHtml","contentHtml","mapState","Poll","closest","className","attn","attention","_attention$screen_nam","_attention$screen_nam2","namepart","instancepart","matchstring","mentionMatchesUrl","link","generateUserProfileLink","generateTagLink","toggleShowMore","status_content_vue_styles_","status_content_status_content","status_content","tall-status","tall-status-hider_focused","base-poll","noHeading","StatusPopover","find_default","allStatuses","Status","enter","status_popover_vue_styles_","status_popover_status_popover","status_popover","popover-class","bound-to","x","is-preview","statusoid","EmojiReactions","showAll","tooManyReactions","showMoreString","accountsForEmoji","reaction","toggleShowAll","reactedWith","fetchEmojiReactionsByIfMissing","reactWith","unreact","emojiOnClick","emoji_reactions_vue_styles_","emoji_reactions_emoji_reactions","picked-reaction","not-clickable","mouseenter","replying","unmuted","userExpanded","status_objectSpread","muteWords","repeaterClass","highlightClass","userClass","deleted","repeaterStyle","highlightStyle","userStyle","replyProfileLink","isReply","replyToName","retweeter","retweeterHtml","retweeterProfileLink","statusFromGlobalRepository","allStatusesObject","muteWordHits","toLowerCase","statusSummary","filter_default","muteWord","inProfile","profileUserId","hideFilteredStatuses","hideStatus","hideReply","isFocused","replyVisibility","checkFollowing","relationships","replySubject","decodedSummary","unescape_default","behavior","subjectLineBehavior","startsWithRe","combinedFavsAndRepeatsUsers","combinedUsers","uniqBy_default","tagObj","PostStatusForm","UserCard","visibilityIcon","showError","clearError","toggleReplying","gotoOriginal","toggleExpanded","toggleMute","toggleUserExpanded","rect","getBoundingClientRect","top","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","user-id","_f","expandable","min-width","status-id","aria-label","replies","reply","no-heading","emojiReactionsOnTimeline","button-icon-active","logged-in","onError","onSuccess","reply-to","replied-user","copy-message-scope","subject","posted","boundTo","margin","popoverClass","styles","oldSize","updateStyles","anchorEl","$refs","children","screenBox","origin","left","parentBounds","offsetParent","xBounds","min","max","innerWidth","yBounds","horizOffset","offsetWidth","usingTop","offsetHeight","yOffset","translateY","xOffset","translateX","transform","showPopover","$nextTick","hidePopover","onMouseenter","onMouseleave","onClick","onClickOutside","contains","updated","removeEventListener","popover","mouseleave","MINUTE","HOUR","DAY","relativeTime","relativeTimeShort","WEEK","MONTH","YEAR","date","nowThreshold","now","abs","progress_button","progress","_color_convert_color_convert_js__WEBPACK_IMPORTED_MODULE_0__","prefs","solidColor","tintColor","tintColor2","backgroundPosition","backgroundColor","vue__WEBPACK_IMPORTED_MODULE_0__","vue__WEBPACK_IMPORTED_MODULE_0___default","Vue","component","renderOnlyFocused","required","onSwitch","activeTab","scrollableTabs","active","findIndex","activeIndex","beforeUpdate","activateTab","render","h","tabs","classesTab","classesWrapper","label","contents","mediaUpload","uploading","uploadReady","uploadFile","self","uploadlimit","filesize","fileSizeFormatService","fileSizeFormat","allowedsize","filesizeunit","unit","allowedsizeunit","statusPosterService","fileData","fileDrop","dataTransfer","files","fileDrag","dropEffect","clearFile","dropFiles","fileInfos","media_upload_media_upload","media_upload","drop","dragover","position","poll_form","pollType","expiryAmount","expiryUnit","pollLimits","maxOptions","max_options","maxLength","max_option_chars","expiryUnits","expiry","convertExpiryFromUnit","max_expiration","minExpirationInCurrentUnit","convertExpiryToUnit","min_expiration","maxExpirationInCurrentUnit","clear","nextOption","focus","addOption","deleteOption","amount","DateUtils","expiryAmountChange","updatePollToParent","uniq_default","poll_form_vue_styles_","poll_poll_form","maxlength","keydown","_k","keyCode","MediaUpload","EmojiInput","PollForm","ScopeSelector","Checkbox","mounted","resize","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","substring","scrollerRef","topPaddingStr","bottomPaddingStr","vertPadding","currentScroll","scrollY","scrollTop","scrollerHeight","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","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","aScore","bScore","imageUrl","newUsers","detailText","_ref$media","_ref$inReplyToStatusI","_ref$contentType","lodash_map__WEBPACK_IMPORTED_MODULE_0___default","showImmediately","noIdUpdate","child","parent","_ref$top","_ref$left","ignorePadding","offsetTop","offsetLeft","_findPadding","findPadding","topPadding","leftPadding","_findPadding2","leftPaddingStr","addPositionToWords","words","reduce_default","word","start","end","previous","splitIntoWords","triggers","matches","completion","wordAtPosition","pos","wordsWithPosition","replaceWord","toReplace","filterByKeyword","list","keyword","EmojiPicker","enableStickerPicker","activeGroup","showingStickers","groupsScrolledClass","keepOpen","customEmojiBufferSlice","customEmojiTimeout","customEmojiLoadAllConfirmed","StickerPicker","onStickerUploaded","onStickerUploadFailed","onEmoji","insertion","onScroll","updateScrolledClass","scrolledGroup","triggerLoadMore","setShowStickers","scrollTopMax","scrollerBottom","clientHeight","scrollerTop","scrollerMax","loadEmoji","emojisView","group","customEmojiBuffer","filteredEmoji","startEmojiLoad","forceUpdate","toggleStickers","activeGroupView","stickersAvailable","stickers","standardEmojis","customEmojis","icon","stickerPickerEnabled","emoji_picker_emoji_picker","emoji_picker","refInFor","enableEmojiPicker","hideEmojiButton","blurTimeout","showPicker","temporarilyHideSuggestions","disableClickOutside","padEmoji","firstchar","textAtCaret","matchedSuggestions","take_default","showSuggestions","wordAtCaret","Completion","slots","elm","onBlur","onFocus","onPaste","onKeyUp","onKeyDown","onClickInput","onTransition","onInput","unmounted","picker","scrollIntoView","togglePicker","newValue","insert","before","after","isSpaceRegex","spaceBefore","spaceAfter","replaceText","suggestion","len","cycleBackward","cycleForward","rootRef","rootBottomBorder","setCaret","shiftKey","_this$$refs","panel","_this$input$elm","offsetBottom","emoji_input_vue_styles_","emoji_input_Component","emoji_input","with-picker","hide","requestFollow","requested","fetchRelationship","attempt","follow_button","inProgress","isPressed","labelFollowing","unfollow","follow","requestUnfollow","currentScope","initialScope","showNothing","showPublic","showUnlisted","showPrivate","showDirect","originalScope","shouldShow","css","unlisted","private","direct","userDefault","onScopeChange","scope_selector","loopVideo","onVideoDataLoad","srcElement","webkitAudioDecodedByteCount","loopVideoSilentOnly","mozHasAudio","audioTracks","video_attachment","loop","playsinline","loadeddata","remote_follow","locals","add","EventTargetPolyfill","interfaceMod","currentSaveStateNotice","noticeClearTimeout","notificationPermission","CSS","supports","mobileLayout","mutations","settingsSaved","success","del","errorData","setNotificationPermission","permission","setMobileLayout","actions","setPageTitle","rootState","LAYERS","undelay","topBar","badge","profileTint","selectedMenu","btn","btnPanel","btnTopBar","inputPanel","inputTopBar","alert","alertPanel","DEFAULT_OPACITY","faint","underlay","SLOT_INHERITANCE","depends","priority","layer","accent","faintLink","postFaintLink","cBlue","cRed","cGreen","cOrange","profileBg","mod","brightness","highlightLightText","textColor","highlightPostLink","highlightFaintText","highlightFaintLink","highlightPostFaintLink","highlightText","highlightLink","highlightIcon","popoverLightText","popoverPostLink","popoverFaintText","popoverFaintLink","popoverPostFaintLink","popoverText","popoverLink","popoverIcon","selectedPost","selectedPostFaintText","variant","selectedPostLightText","selectedPostPostLink","selectedPostFaintLink","selectedPostText","selectedPostLink","selectedPostIcon","selectedMenuLightText","selectedMenuFaintText","selectedMenuFaintLink","selectedMenuText","selectedMenuLink","selectedMenuIcon","selectedMenuPopover","selectedMenuPopoverLightText","selectedMenuPopoverFaintText","selectedMenuPopoverFaintLink","selectedMenuPopoverText","selectedMenuPopoverLink","selectedMenuPopoverIcon","lightText","postLink","border","copacity","pollText","inheritsOpacity","fgText","fgLink","panelText","panelFaint","panelLink","topBarText","topBarLink","tab","tabText","tabActiveText","btnText","btnPanelText","btnTopBarText","btnPressed","btnPressedText","btnPressedPanel","btnPressedPanelText","btnPressedTopBar","btnPressedTopBarText","btnToggled","btnToggledText","btnToggledPanelText","btnToggledTopBarText","btnDisabled","btnDisabledText","btnDisabledPanelText","btnDisabledTopBarText","inputText","inputPanelText","inputTopbarText","alertError","alertErrorText","alertErrorPanelText","alertWarning","alertWarningText","alertWarningPanelText","alertNeutral","alertNeutralText","alertNeutralPanelText","badgeNotification","badgeNotificationText","getLayersArray","array","getLayers","opacitySlot","colors","currentLayer","getDependencies","inheritance","layerDeps","isArray","expandSlotValue","getOpacitySlot","getDeps","findInheritedOpacity","visited","depSlot","dependency","getLayerSlot","findInheritedLayer","SLOT_ORDERED","allKeys","whites","grays","blacks","unprocessed","step","node","depsA","depsB","topoSort","aV","bV","defineProperty_default","OPACITIES","defaultValue","affectedSlots","computeDynamicColor","sourceColor","getColor","targetColor","_sourceColor$split$ma","_sourceColor$split$ma2","variable","modifier","parseFloat","applyTheme","rules","generatePreset","classList","styleEl","styleSheet","sheet","insertRule","radii","shadows","fonts","remove","getCssShadow","usesDropShadow","inset","shad","blur","spread","alpha","generateColors","themeData","_getColors","sourceColors","sourceOpacity","deps","isTextColor","convert","outputColor","variableSlot","colorFunc","dep","ownOpacitySlot","opacityOverriden","dependencySlot","dependencyColor","getColors","themeEngineVersion","colors2to3","htmlColors","solid","complete","theme","generateRadii","inputRadii","btnRadius","checkbox","avatarAlt","tooltip","generateFonts","interface","family","post","postCode","shadow","buttonInsetFakeBorders","inputInsetFakeBorders","hoverGlow","DEFAULT_SHADOWS","popup","avatarStatus","panelHeader","button","buttonHover","buttonPressed","generateShadows","hackContextDict","inputShadows","shadows2to3","style_setter_objectSpread","shadowsAcc","slotName","shadowDefs","slotFirstWord","colorSlotName","newShadow","shadowAcc","def","composePreset","getThemes","cache","themes","statePositionAcc","getPreset","isV1","defaultState","customTheme","customThemeSource","hideISP","hideMutedPosts","autoLoad","streaming","hoverPreview","autohideFloatingPostButton","pauseOnUnfocused","webPushNotifications","interfaceLanguage","language","useStreamingApi","instanceDefaultProperties","rootGetters","config_objectSpread","setOption","setHighlight","registrationOpen","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","themeSource","fetchEmoji","emptyTl","statusesObject","faves","visibleStatuses","visibleStatusesObject","newStatusCount","minId","minVisibleId","followers","flushMarker","emptyNotifications","desktopNotificationSilence","POSITIVE_INFINITY","idStore","conversationsObject","timelines","visibleNotificationTypes","mergeOrAdd","arr","obj","oldItem","merge_default","omitBy_default","new","sortTimeline","addStatusToGlobalStorage","conversationId","addNewStatuses","_ref2$showImmediately","_ref2$user","_ref2$noIdUpdate","isArray_default","timelineObject","maxNew","maxBy_default","minNew","minBy_default","newer","older","addStatus","resultForCurrentTimeline","addToTimeline","processors","counter","favoriteStatus","deletion","remove_default","removeStatusFromGlobalStorage","unknown","addNewNotifications","Notification","i18nString","notifObj","i18n","desktopNotification","removeStatus","first_default","showNewStatuses","oldTimeline","slice_default","resetStatuses","emptyState","clearTimeline","_ref8$excludeUserId","excludeUserId","clearNotifications","setFavorited","setFavoritedConfirm","findIndex_default","setMutedStatus","setRetweeted","setRetweetedConfirm","setDeleted","setManyDeleted","condition","setLoading","setNsfw","setError","setErrorData","setNotificationsLoading","setNotificationsError","setNotificationsSilence","markSingleNotificationAsSeen","updateNotification","updater","queueFlush","addRepeats","rebloggedByUsers","addFavs","favoritedByUsers","addEmojiReactionsBy","addOwnReaction","reactionIndex","newReaction","statuses_objectSpread","removeOwnReaction","updateStatusWithPoll","_ref34$showImmediatel","_ref34$timeline","_ref34$noIdUpdate","markStatusesAsDeleted","dismissNotificationLocal","fetchFavsAndRepeats","fetchEmojiReactionsBy","fetchFavs","fetchRepeats","search","fetchAndUpdate","_ref2$timeline","_ref2$older","_ref2$userId","_ref2$tag","timelineData","camelCase_default","numStatusesBeforeFetch","ccTimeline","update","timelineFetcher","startFetching","_ref3$timeline","_ref3$userId","_ref3$tag","setInterval","fetchNotifications","readNotifsIds","notificationsFetcher","requests","followRequestFetcher","backendInteractorService","backend_interactor_service_objectSpread","startFetchingTimeline","_ref$userId","timelineFetcherService","startFetchingNotifications","fetchAndUpdateNotifications","startFetchingFollowRequests","startUserSocket","func","REDIRECT_URI","location","getOrCreateApp","clientId","clientSecret","___pleromafe_commit_hash","toISOString","app","client_id","client_secret","getClientToken","oauth","login","response_type","redirect_uri","dataString","encoded","getToken","getTokenWithCredentials","verifyOTPCode","mfaToken","verifyRecoveryCode","revokeToken","isPushSupported","getOrCreateServiceWorker","runtime","deleteSubscriptionFromBackEnd","registerPushNotifications","isEnabled","registration","base64String","base64","rawData","subscribeOptions","userVisibleOnly","applicationServerKey","repeat","atob","Uint8Array","from","charCodeAt","pushManager","subscribe","subscribePush","subscription","alerts","mention","move","responseData","sendSubscriptionToBackEnd","predictedRelationship","loggingIn","lastLoginName","usersObject","signUpPending","signUpErrors","newTags","updateRight","newRights","updateActivationStatus","setCurrentUser","clearCurrentUser","beginLogin","endLogin","saveFriendIds","saveFollowerIds","clearFriends","clearFollowers","addNewUsers","updateUserRelationship","saveBlockIds","blockIds","addBlockId","blockId","saveMuteIds","muteIds","addMuteId","muteId","mascotUrl","saveDomainMutes","domainMutes","addDomainMute","removeDomainMute","setPinnedToUser","setUserForStatus","setUserForNotification","setColor","signUpSuccess","signUpFailure","blocks","blockUsers","ids","unblockUsers","mutes","hideReblogs","showReblogs","muteUsers","unmuteUsers","muteDomains","domains","unmuteDomains","unregisterPushNotifications","getSubscription","subscribtion","unsubscribe","unsubscribePush","unregister","retweetedUsers","compact_default","targetUsers","notificationIds","notificationsObject","relevantNotifications","signUp","userInfo","users_objectSpread","abrupt","logout","_store$rootState","oauthApi","userToken","loginUser","requestPermission","startPolling","fetchers","mastoUserSocket","followRequests","setBackendInteractor","addFetcher","fetcherName","fetcher","removeFetcher","clearInterval","setWsToken","wsToken","setSocket","setFollowRequests","enableMastoSockets","disableMastoSockets","startMastoUserSocket","closeEvent","ignoreCodes","restartMastoUserSocket","stopMastoUserSocket","_ref8$timeline","_ref8$tag","_ref8$userId","stopFetchingTimeline","stopFetchingNotifications","stopFetchingFollowRequests","removeFollowRequest","it","initializeSocket","Socket","connect","disconnectFromSocket","disconnect","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","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","components_notification_notification","notification_notification","white-space","Notifications","minimalMode","filterMode","seenToDisplayCount","mainClass","unseenNotifications","filteredNotifications","unseenCount","notificationsToDisplay","markAsSeen","fetchOlderNotifications","seenCount","notifs","notifications_vue_styles_","components_notifications_notifications","notifications_notifications","minimal","unseen","tabModeDict","likes+repeats","Interactions","allowFollowingMove","onModeSwitch","interactions_interactions","interactions","on-switch","minimal-mode","filter-mode","DMs","dm_timeline_dm_timeline","dm_timeline","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","helper_default","FollowerList","List","FriendList","UserProfile","routeParams","stopFetching","isUs","followsTabVisible","followersTabVisible","userNameOrId","loadById","reason","errorMessage","switchUser","onTabSwitch","$route.params.id","$route.params.name","$route.query","user_profile_vue_styles_","user_profile_user_profile","user_profile","viewing","allow-zooming-avatar","active-tab","render-only-focused","pinned-status-ids","no-follows-you","Search","searchTerm","userIds","hashtags","currenResultTab","newQuery","searchInput","getActiveTab","resultCount","tabName","onResultTabSwitch","lastHistoryRecord","hashtag","search_vue_styles_","components_search_search","search_search","uses","color_input","checkbox_checkbox","fallback","showOptionalTickbox","present","validColor","color_convert","transparentColor","computedColor","color_input_vue_styles_","color_input_color_input","range_input_range_input","hardMax","hardMin","opacity_input","opacity_input_opacity_input","toModel","shadow_control_objectSpread","shadow_control","selectedId","cValue","ColorInput","OpacityInput","moveUp","movable","moveDn","anyShadows","anyShadowsFallback","ready","currentFallback","moveUpValid","moveDnValid","usingFallback","boxShadow","shadow_control_vue_styles_","shadow_control_shadow_control","__r","_i","$$a","$$el","$$c","$$i","show-optional-tickbox","font_control","lValue","availableOptions","noInherit","dValue","isCustom","preset","font_control_vue_styles_","font_control_font_control","custom","contrast_ratio","large","contrast","hint","levelVal","aaa","aa","ratio","hint_18pt","laaa","laa","contrast_ratio_vue_styles_","contrast_ratio_contrast_ratio","preview_vue_styles_","style_switcher_preview","font-family","export_import","importFailed","exportData","stringified","exportObject","btoa","display","removeChild","importData","filePicker","reader","FileReader","parsed","validator","onImport","readAsText","export_import_vue_styles_","export_import_export_import","exportLabel","importLabel","importFailedText","v1OnlyNames","style_switcher","style_switcher_objectSpread","availableStyles","themeWarning","tempImportFile","engineVersion","previewShadows","previewColors","previewRadii","previewFonts","shadowsInvalid","colorsInvalid","radiiInvalid","keepColor","keepShadows","keepOpacity","keepRoundness","keepFonts","shadowSelected","shadowsLocal","fontsLocal","btnRadiusLocal","inputRadiusLocal","checkboxRadiusLocal","panelRadiusLocal","avatarRadiusLocal","avatarAltRadiusLocal","attachmentRadiusLocal","tooltipRadiusLocal","themesComplete","loadThemeFromLocalStorage","shadowsAvailable","themeWarningHelp","pre","_this$themeWarning","noActionsPossible","selectedVersion","currentColors","currentOpacity","currentRadii","preview","previewTheme","previewContrast","colorsConverted","ratios","slotIsBaseText","textColors","textColorKey","newKey","toPrecision","previewRules","currentShadowOverriden","currentShadow","currentShadowFallback","themeValid","exportedTheme","saveEverything","_pleroma_theme_version","RangeInput","ContrastRatio","ShadowControl","FontControl","TabSwitcher","Preview","ExportImport","loadTheme","fileVersion","forceUseSource","dismissWarning","version","snapshotEngineVersion","versionsMatch","sourceSnapshotMismatch","forcedSourceLoad","normalizeLocalState","forceLoadLocalStorage","forceLoad","forceSnapshot","confirmLoadSource","_this$$store$getters$","setCustomTheme","updatePreviewColorsAndShadows","forceSource","importValidator","clearAll","clearV1","$data","clearRoundness","clearOpacity","clearShadows","clearFonts","_this6","fgColorLocal","textColorLocal","getOwnPropertyNames","deep","fontsInvalid","bgColorLocal","linkColorLocal","cRedColorLocal","cGreenColorLocal","cBlueColorLocal","cOrangeColorLocal","style_switcher_vue_styles_","style_switcher_style_switcher","export-object","export-label","import-label","import-failed-text","on-import","bgOpacityLocal","bgText","accentColorLocal","bgLink","fgTextColorLocal","fgLinkColorLocal","bgCRed","bgCBlue","bgCGreen","bgCOrange","postLinkColorLocal","alertErrorColorLocal","alertErrorTextColorLocal","alertWarningColorLocal","alertWarningTextColorLocal","alertNeutralColorLocal","alertNeutralTextColorLocal","alertOpacityLocal","badgeNotificationColorLocal","badgeNotificationTextColorLocal","panelColorLocal","panelOpacityLocal","panelTextColorLocal","panelLinkColorLocal","topBarColorLocal","topBarTextColorLocal","topBarLinkColorLocal","inputColorLocal","inputOpacityLocal","inputTextColorLocal","btnColorLocal","btnOpacityLocal","btnTextColorLocal","btnPanelTextColorLocal","btnTopBarTextColorLocal","btnPressedColorLocal","btnPressedTextColorLocal","btnPressedPanelTextColorLocal","btnPressedTopBarTextColorLocal","btnDisabledColorLocal","btnDisabledTextColorLocal","btnDisabledPanelTextColorLocal","btnDisabledTopBarTextColorLocal","btnToggledColorLocal","btnToggledTextColorLocal","btnToggledPanelTextColorLocal","btnToggledTopBarTextColorLocal","tabColorLocal","tabTextColorLocal","tabActiveTextColorLocal","borderColorLocal","borderOpacityLocal","faintColorLocal","faintLinkColorLocal","panelFaintColorLocal","faintOpacityLocal","underlayColorLocal","underlayOpacityLocal","pollColorLocal","pollTextColorLocal","iconColorLocal","highlightColorLocal","highlightTextColorLocal","highlightLinkColorLocal","popoverColorLocal","popoverOpacityLocal","popoverTextColorLocal","popoverLinkColorLocal","selectedPostColorLocal","selectedPostTextColorLocal","selectedPostLinkColorLocal","selectedMenuColorLocal","selectedMenuTextColorLocal","selectedMenuLinkColorLocal","hard-min","no-inherit","interface_language_switcher","languageCodes","i18n_messages","languageNames","getLanguageName","$i18n","getName","interface_language_switcher_interface_language_switcher","langCode","multiChoiceProperties","loopSilentAvailable","getOwnPropertyDescriptor","HTMLVideoElement","HTMLMediaElement","StyleSwitcher","InterfaceLanguageSwitcher","settings_objectSpread","instanceSpecificPanelPresent","frontendVersionLink","backendVersionLink","versionString","configDefaultState","muteWordsString","trim_default","components_settings_settings","settings_settings","hideMutedPostsLocalizedValue","collapseMessageWithSubjectLocalizedValue","scopeCopyLocalizedValue","alwaysShowSubjectInputLocalizedValue","subjectLineBehaviorDefaultValue","postContentTypeDefaultValue","minimalScopesModeLocalizedValue","modifiers","number","_n","$forceUpdate","greentextLocalizedValue","hidePostStatsLocalizedValue","hideUserStatsLocalizedValue","hideFilteredStatusesLocalizedValue","mixins","validationMixin","fullname","captcha","validations","requiredIf","accountActivationRequired","sameAsPassword","sameAs","signedIn","setCaptcha","registration_objectSpread","bioPlaceholder","isPending","serverValidationErrors","termsOfService","mapActions","captcha_solution","solution","captcha_token","captcha_answer_data","answer_data","$v","$touch","$invalid","cpt","registration_vue_styles_","src_components_registration_registration","components_registration_registration","form-group--error","$error","autocorrect","autocapitalize","spellcheck","resetPassword","passwordReset","throttled","password_reset_objectSpread","mailerEnabled","passwordResetRequested","dismissError","passwordResetApi","password_reset_vue_styles_","components_password_reset_password_reset","password_reset_password_reset","ImageCropper","submitHandler","cropperOptions","aspectRatio","autoCropArea","viewMode","zoomable","guides","mimes","saveButtonLabel","saveWithoutCroppingButtonlabel","cancelButtonLabel","cropper","dataUrl","filename","submitting","submitError","saveText","saveWithoutCroppingText","cancelText","submitErrorMsg","cropping","avatarUploadError","pickImage","createCropper","Cropper","getTriggerDOM","readFile","fileInput","readAsDataURL","beforeDestroy","image_cropper_vue_styles_","image_cropper_image_cropper","image_cropper","textContent","accept","BlockCard","blocked","block_card_vue_styles_","block_card_block_card","block_card","MuteCard","mute_card_vue_styles_","mute_card_mute_card","mute_card","DomainMuteCard","domain_mute_card_vue_styles_","domain_mute_card_domain_mute_card","domain_mute_card","SelectableList","filteredSelected","allSelected","noneSelected","someSelected","isSelected","toggle","toggleAll","selectable_list_vue_styles_","selectable_list_selectable_list","selectable_list","get-key","selectable-list-item-selected-inner","autosuggest","term","results","resultsVisible","filtered","fetchResults","onInputClick","autosuggest_vue_styles_","autosuggest_autosuggest","Importer","submitButtonLabel","successMessage","dismiss","importer_vue_styles_","importer_importer","importer","Exporter","getContent","exportButtonLabel","processingMessage","processing","process","fileToDownload","exporter_vue_styles_","exporter_exporter","exporter","withSubscription","fetchedData","refresh","fetchData","with_subscription_objectSpread","mfa_backup_codes","backupCodes","codes","displayTitle","mfa_backup_codes_vue_styles_","user_settings_mfa_backup_codes","Confirm","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","mfa_vue_styles_","user_settings_mfa","mfa","activate","backup-codes","BlockList","MuteList","DomainMuteList","UserSettings","newEmail","newName","newBio","unescape","newLocked","newNoRichText","newDefaultScope","hideFollows","hideFollowers","showRole","pickAvatarBtnVisible","bannerUploading","backgroundUploading","bannerPreview","backgroundPreview","bannerUploadError","backgroundUploadError","mascotPreview","mascotUploadError","changeEmailError","changeEmailPassword","changedEmail","deletingAccount","deleteAccountConfirmPasswordInput","deleteAccountError","changePasswordInputs","changedPassword","changePasswordError","notificationSettings","newDomainToMute","Autosuggest","vis","oauthToken","appName","app_name","validUntil","valid_until","toLocaleDateString","submitAvatar","that","getCroppedCanvas","toBlob","clearUploadError","submitBanner","submitBg","submitMascot","mascotUploading","generateExportableUsersContent","hostname","getFollowsContent","getBlocksContent","confirmDelete","_this7","_this8","_this9","filterUnblockedUsers","_this10","filterUnMutedUsers","_this11","queryUserIds","_this12","identity","user_settings_vue_styles_","user_settings_user_settings","user_settings","classname","submit-handler","success-message","error-message","get-content","export-button-label","FollowRequestCard","findFollowRequestNotificationId","notif","notifId","follow_request_card_vue_styles_","FollowRequests","follow_request_card","follow_requests_follow_requests","follow_requests","oac","_this$$store$state$oa","oauth_callback_oauth_callback","oauth_callback","LoginForm","login_form_objectSpread","isPasswordAuth","isTokenAuth","mapMutations","submitToken","submitPassword","_this$oauth","identifier","focusOnPasswordInput","passwordInput","login_form_vue_styles_","login_form_login_form","login_form","recovery_form","recovery_form_objectSpread","authSettings","mfa_token","mfaApi","mfa_form_recovery_form","totp_form","totp_form_objectSpread","mfa_form_totp_form","AuthForm","is","authForm","auth_form_objectSpread","MFARecoveryForm","MFATOTPForm","chatPanel","currentMessage","collapsed","togglePanel","chat_panel_vue_styles_","chat_panel_chat_panel","chat_panel","floating","chat-heading","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","keywordsFtlRemoval","keywordsReject","keywordsReplace","hasInstanceSpecificPolicies","hasKeywordPolicies","mrf_transparency_panel_vue_styles_","About","mrf_transparency_panel","policy","pattern","about_vue_styles_","about_about","about","RemoteUserResolver","redirect","remote_user_resolver_vue_styles_","remote_user_resolver_remote_user_resolver","remote_user_resolver","routes","validateAuthenticatedRoute","_to","beforeEnter","ConversationPage","dontScroll","Settings","Registration","PasswordReset","ChatPanel","OAuthCallback","route","UserPanel","user_panel_objectSpread","user_panel_vue_styles_","user_panel_user_panel","user_panel","NavPanel","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","bgStyle","background-image","bgAppStyle","--body-background-image","isMobileLayout","onSearchBarToggled","App_vue_styles_","src_App","getStatusnetConfig","_data$site","registrationClosed","safeDMMentionsEnabled","site","avatarlimit","backgroundlimit","bannerlimit","pleromafe","getStaticConfig","setSettings","apiConfig","staticConfig","overrides","env","copyInstanceOption","_context3","___pleromafe_dev_overrides","___pleromafe_mode","NODE_ENV","staticConfigPreference","loginMethod","getTOS","_context4","getInstancePanel","_context5","getStickers","_context7","resPack","_context6","pack","localeCompare","t1","getAppSecret","_context8","after_store_objectSpread","resolveStaffAccounts","getNodeInfo","metadata","features","software","priv","federation","_context9","web","mrf_policies","setConfig","configInfos","_context10","checkOAuthToken","_context12","_context11","afterStoreSetup","_store$state$config","router","_context13","VueRouter","scrollBehavior","_from","savedPosition","matched","currentLocale","use","Vuex","VueI18n","VueChatScroll","VueClickOutside","PortalVue","persistedState","fallbackLocale","persistedStateOptions","Store","interfaceModule","instanceModule","statusesModule","usersModule","apiModule","configModule","chatModule","oauthModule","authFlow","authFlowModule","mediaViewerModule","oauthTokensModule","reportsModule","pollsModule","postStatusModule","plugins","pushNotifications","strict","COMMIT_HASH","DEV_OVERRIDES"],"mappings":"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","file":"static/js/app.46df424bf901fd5e6d56.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\":\"f9a5c4aba770b3f9f9e0\"}[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([581,1]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import { invertLightness, contrastRatio } from 'chromatism'\n\n// useful for visualizing color when debugging\nexport const consoleColor = (color) => console.log('%c##########', 'background: ' + color + '; color: ' + color)\n\n/**\n * Convert r, g, b values into hex notation. All components are [0-255]\n *\n * @param {Number|String|Object} r - Either red component, {r,g,b} object, or hex string\n * @param {Number} [g] - Green component\n * @param {Number} [b] - Blue component\n */\nexport const rgb2hex = (r, g, b) => {\n if (r === null || typeof r === 'undefined') {\n return undefined\n }\n // TODO: clean up this mess\n if (r[0] === '#' || r === 'transparent') {\n return r\n }\n if (typeof r === 'object') {\n ({ r, g, b } = r)\n }\n [r, g, b] = [r, g, b].map(val => {\n val = Math.ceil(val)\n val = val < 0 ? 0 : val\n val = val > 255 ? 255 : val\n return val\n })\n return `#${((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1)}`\n}\n\n/**\n * Converts 8-bit RGB component into linear component\n * https://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n * https://www.w3.org/TR/2008/REC-WCAG20-20081211/relative-luminance.xml\n * https://en.wikipedia.org/wiki/SRGB#The_reverse_transformation\n *\n * @param {Number} bit - color component [0..255]\n * @returns {Number} linear component [0..1]\n */\nconst c2linear = (bit) => {\n // W3C gives 0.03928 while wikipedia states 0.04045\n // what those magical numbers mean - I don't know.\n // something about gamma-correction, i suppose.\n // Sticking with W3C example.\n const c = bit / 255\n if (c < 0.03928) {\n return c / 12.92\n } else {\n return Math.pow((c + 0.055) / 1.055, 2.4)\n }\n}\n\n/**\n * Converts sRGB into linear RGB\n * @param {Object} srgb - sRGB color\n * @returns {Object} linear rgb color\n */\nconst srgbToLinear = (srgb) => {\n return 'rgb'.split('').reduce((acc, c) => { acc[c] = c2linear(srgb[c]); return acc }, {})\n}\n\n/**\n * Calculates relative luminance for given color\n * https://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n * https://www.w3.org/TR/2008/REC-WCAG20-20081211/relative-luminance.xml\n *\n * @param {Object} srgb - sRGB color\n * @returns {Number} relative luminance\n */\nexport const relativeLuminance = (srgb) => {\n const { r, g, b } = srgbToLinear(srgb)\n return 0.2126 * r + 0.7152 * g + 0.0722 * b\n}\n\n/**\n * Generates color ratio between two colors. Order is unimporant\n * https://www.w3.org/TR/2008/REC-WCAG20-20081211/#contrast-ratiodef\n *\n * @param {Object} a - sRGB color\n * @param {Object} b - sRGB color\n * @returns {Number} color ratio\n */\nexport const getContrastRatio = (a, b) => {\n const la = relativeLuminance(a)\n const lb = relativeLuminance(b)\n const [l1, l2] = la > lb ? [la, lb] : [lb, la]\n\n return (l1 + 0.05) / (l2 + 0.05)\n}\n\n/**\n * Same as `getContrastRatio` but for multiple layers in-between\n *\n * @param {Object} text - text color (topmost layer)\n * @param {[Object, Number]} layers[] - layers between text and bedrock\n * @param {Object} bedrock - layer at the very bottom\n */\nexport const getContrastRatioLayers = (text, layers, bedrock) => {\n return getContrastRatio(alphaBlendLayers(bedrock, layers), text)\n}\n\n/**\n * This performs alpha blending between solid background and semi-transparent foreground\n *\n * @param {Object} fg - top layer color\n * @param {Number} fga - top layer's alpha\n * @param {Object} bg - bottom layer color\n * @returns {Object} sRGB of resulting color\n */\nexport const alphaBlend = (fg, fga, bg) => {\n if (fga === 1 || typeof fga === 'undefined') return fg\n return 'rgb'.split('').reduce((acc, c) => {\n // Simplified https://en.wikipedia.org/wiki/Alpha_compositing#Alpha_blending\n // for opaque bg and transparent fg\n acc[c] = (fg[c] * fga + bg[c] * (1 - fga))\n return acc\n }, {})\n}\n\n/**\n * Same as `alphaBlend` but for multiple layers in-between\n *\n * @param {Object} bedrock - layer at the very bottom\n * @param {[Object, Number]} layers[] - layers between text and bedrock\n */\nexport const alphaBlendLayers = (bedrock, layers) => layers.reduce((acc, [color, opacity]) => {\n return alphaBlend(color, opacity, acc)\n}, bedrock)\n\nexport const invert = (rgb) => {\n return 'rgb'.split('').reduce((acc, c) => {\n acc[c] = 255 - rgb[c]\n return acc\n }, {})\n}\n\n/**\n * Converts #rrggbb hex notation into an {r, g, b} object\n *\n * @param {String} hex - #rrggbb string\n * @returns {Object} rgb representation of the color, values are 0-255\n */\nexport const hex2rgb = (hex) => {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex)\n return result ? {\n r: parseInt(result[1], 16),\n g: parseInt(result[2], 16),\n b: parseInt(result[3], 16)\n } : null\n}\n\n/**\n * Old somewhat weird function for mixing two colors together\n *\n * @param {Object} a - one color (rgb)\n * @param {Object} b - other color (rgb)\n * @returns {Object} result\n */\nexport const mixrgb = (a, b) => {\n return 'rgb'.split('').reduce((acc, k) => {\n acc[k] = (a[k] + b[k]) / 2\n return acc\n }, {})\n}\n/**\n * Converts rgb object into a CSS rgba() color\n *\n * @param {Object} color - rgb\n * @returns {String} CSS rgba() color\n */\nexport const rgba2css = function (rgba) {\n return `rgba(${Math.floor(rgba.r)}, ${Math.floor(rgba.g)}, ${Math.floor(rgba.b)}, ${rgba.a})`\n}\n\n/**\n * Get text color for given background color and intended text color\n * This checks if text and background don't have enough color and inverts\n * text color's lightness if needed. If text color is still not enough it\n * will fall back to black or white\n *\n * @param {Object} bg - background color\n * @param {Object} text - intended text color\n * @param {Boolean} preserve - try to preserve intended text color's hue/saturation (i.e. no BW)\n */\nexport const getTextColor = function (bg, text, preserve) {\n const contrast = getContrastRatio(bg, text)\n\n if (contrast < 4.5) {\n const base = typeof text.a !== 'undefined' ? { a: text.a } : {}\n const result = Object.assign(base, invertLightness(text).rgb)\n if (!preserve && getContrastRatio(bg, result) < 4.5) {\n // B&W\n return contrastRatio(bg, text).rgb\n }\n // Inverted color\n return result\n }\n return text\n}\n\n/**\n * Converts color to CSS Color value\n *\n * @param {Object|String} input - color\n * @param {Number} [a] - alpha value\n * @returns {String} a CSS Color value\n */\nexport const getCssColor = (input, a) => {\n let rgb = {}\n if (typeof input === 'object') {\n rgb = input\n } else if (typeof input === 'string') {\n if (input.startsWith('#')) {\n rgb = hex2rgb(input)\n } else {\n return input\n }\n }\n return rgba2css({ ...rgb, a })\n}\n","import escape from 'escape-html'\nimport { isStatusNotification } from '../notification_utils/notification_utils.js'\n\nconst qvitterStatusType = (status) => {\n if (status.is_post_verb) {\n return 'status'\n }\n\n if (status.retweeted_status) {\n return 'retweet'\n }\n\n if ((typeof status.uri === 'string' && status.uri.match(/(fave|objectType=Favourite)/)) ||\n (typeof status.text === 'string' && status.text.match(/favorited/))) {\n return 'favorite'\n }\n\n if (status.text.match(/deleted notice {{tag/) || status.qvitter_delete_notice) {\n return 'deletion'\n }\n\n if (status.text.match(/started following/) || status.activity_type === 'follow') {\n return 'follow'\n }\n\n return 'unknown'\n}\n\nexport const parseUser = (data) => {\n const output = {}\n const masto = data.hasOwnProperty('acct')\n // case for users in \"mentions\" property for statuses in MastoAPI\n const mastoShort = masto && !data.hasOwnProperty('avatar')\n\n output.id = String(data.id)\n\n if (masto) {\n output.screen_name = data.acct\n output.statusnet_profile_url = data.url\n\n // There's nothing else to get\n if (mastoShort) {\n return output\n }\n\n output.name = data.display_name\n output.name_html = addEmojis(escape(data.display_name), data.emojis)\n\n output.description = data.note\n output.description_html = addEmojis(data.note, data.emojis)\n\n output.fields = data.fields\n output.fields_html = data.fields.map(field => {\n return {\n name: addEmojis(field.name, data.emojis),\n value: addEmojis(field.value, data.emojis)\n }\n })\n\n // Utilize avatar_static for gif avatars?\n output.profile_image_url = data.avatar\n output.profile_image_url_original = data.avatar\n\n // Same, utilize header_static?\n output.cover_photo = data.header\n\n output.friends_count = data.following_count\n\n output.bot = data.bot\n\n if (data.pleroma) {\n const relationship = data.pleroma.relationship\n\n output.background_image = data.pleroma.background_image\n output.token = data.pleroma.chat_token\n\n if (relationship) {\n output.relationship = relationship\n }\n\n output.allow_following_move = data.pleroma.allow_following_move\n\n output.hide_follows = data.pleroma.hide_follows\n output.hide_followers = data.pleroma.hide_followers\n output.hide_follows_count = data.pleroma.hide_follows_count\n output.hide_followers_count = data.pleroma.hide_followers_count\n\n output.rights = {\n moderator: data.pleroma.is_moderator,\n admin: data.pleroma.is_admin\n }\n // TODO: Clean up in UI? This is duplication from what BE does for qvitterapi\n if (output.rights.admin) {\n output.role = 'admin'\n } else if (output.rights.moderator) {\n output.role = 'moderator'\n } else {\n output.role = 'member'\n }\n }\n\n if (data.source) {\n output.description = data.source.note\n output.default_scope = data.source.privacy\n output.fields = data.source.fields\n if (data.source.pleroma) {\n output.no_rich_text = data.source.pleroma.no_rich_text\n output.show_role = data.source.pleroma.show_role\n output.discoverable = data.source.pleroma.discoverable\n }\n }\n\n // TODO: handle is_local\n output.is_local = !output.screen_name.includes('@')\n } else {\n output.screen_name = data.screen_name\n\n output.name = data.name\n output.name_html = data.name_html\n\n output.description = data.description\n output.description_html = data.description_html\n\n output.profile_image_url = data.profile_image_url\n output.profile_image_url_original = data.profile_image_url_original\n\n output.cover_photo = data.cover_photo\n\n output.friends_count = data.friends_count\n\n // output.bot = ??? missing\n\n output.statusnet_profile_url = data.statusnet_profile_url\n\n output.is_local = data.is_local\n output.role = data.role\n output.show_role = data.show_role\n\n if (data.rights) {\n output.rights = {\n moderator: data.rights.delete_others_notice,\n admin: data.rights.admin\n }\n }\n output.no_rich_text = data.no_rich_text\n output.default_scope = data.default_scope\n output.hide_follows = data.hide_follows\n output.hide_followers = data.hide_followers\n output.hide_follows_count = data.hide_follows_count\n output.hide_followers_count = data.hide_followers_count\n output.background_image = data.background_image\n // Websocket token\n output.token = data.token\n\n // Convert relationsip data to expected format\n output.relationship = {\n muting: data.muted,\n blocking: data.statusnet_blocking,\n followed_by: data.follows_you,\n following: data.following\n }\n }\n\n output.created_at = new Date(data.created_at)\n output.locked = data.locked\n output.followers_count = data.followers_count\n output.statuses_count = data.statuses_count\n output.friendIds = []\n output.followerIds = []\n output.pinnedStatusIds = []\n\n if (data.pleroma) {\n output.follow_request_count = data.pleroma.follow_request_count\n\n output.tags = data.pleroma.tags\n output.deactivated = data.pleroma.deactivated\n\n output.notification_settings = data.pleroma.notification_settings\n }\n\n output.tags = output.tags || []\n output.rights = output.rights || {}\n output.notification_settings = output.notification_settings || {}\n\n return output\n}\n\nexport const parseAttachment = (data) => {\n const output = {}\n const masto = !data.hasOwnProperty('oembed')\n\n if (masto) {\n // Not exactly same...\n output.mimetype = data.pleroma ? data.pleroma.mime_type : data.type\n output.meta = data.meta // not present in BE yet\n output.id = data.id\n } else {\n output.mimetype = data.mimetype\n // output.meta = ??? missing\n }\n\n output.url = data.url\n output.description = data.description\n\n return output\n}\nexport const addEmojis = (string, emojis) => {\n const matchOperatorsRegex = /[|\\\\{}()[\\]^$+*?.-]/g\n return emojis.reduce((acc, emoji) => {\n const regexSafeShortCode = emoji.shortcode.replace(matchOperatorsRegex, '\\\\$&')\n return acc.replace(\n new RegExp(`:${regexSafeShortCode}:`, 'g'),\n `<img src='${emoji.url}' alt='${emoji.shortcode}' title='${emoji.shortcode}' class='emoji' />`\n )\n }, string)\n}\n\nexport const parseStatus = (data) => {\n const output = {}\n const masto = data.hasOwnProperty('account')\n\n if (masto) {\n output.favorited = data.favourited\n output.fave_num = data.favourites_count\n\n output.repeated = data.reblogged\n output.repeat_num = data.reblogs_count\n\n output.type = data.reblog ? 'retweet' : 'status'\n output.nsfw = data.sensitive\n\n output.statusnet_html = addEmojis(data.content, data.emojis)\n\n output.tags = data.tags\n\n if (data.pleroma) {\n const { pleroma } = data\n output.text = pleroma.content ? data.pleroma.content['text/plain'] : data.content\n output.summary = pleroma.spoiler_text ? data.pleroma.spoiler_text['text/plain'] : data.spoiler_text\n output.statusnet_conversation_id = data.pleroma.conversation_id\n output.is_local = pleroma.local\n output.in_reply_to_screen_name = data.pleroma.in_reply_to_account_acct\n output.thread_muted = pleroma.thread_muted\n output.emoji_reactions = pleroma.emoji_reactions\n } else {\n output.text = data.content\n output.summary = data.spoiler_text\n }\n\n output.in_reply_to_status_id = data.in_reply_to_id\n output.in_reply_to_user_id = data.in_reply_to_account_id\n output.replies_count = data.replies_count\n\n if (output.type === 'retweet') {\n output.retweeted_status = parseStatus(data.reblog)\n }\n\n output.summary_html = addEmojis(escape(data.spoiler_text), data.emojis)\n output.external_url = data.url\n output.poll = data.poll\n output.pinned = data.pinned\n output.muted = data.muted\n } else {\n output.favorited = data.favorited\n output.fave_num = data.fave_num\n\n output.repeated = data.repeated\n output.repeat_num = data.repeat_num\n\n // catchall, temporary\n // Object.assign(output, data)\n\n output.type = qvitterStatusType(data)\n\n if (data.nsfw === undefined) {\n output.nsfw = isNsfw(data)\n if (data.retweeted_status) {\n output.nsfw = data.retweeted_status.nsfw\n }\n } else {\n output.nsfw = data.nsfw\n }\n\n output.statusnet_html = data.statusnet_html\n output.text = data.text\n\n output.in_reply_to_status_id = data.in_reply_to_status_id\n output.in_reply_to_user_id = data.in_reply_to_user_id\n output.in_reply_to_screen_name = data.in_reply_to_screen_name\n output.statusnet_conversation_id = data.statusnet_conversation_id\n\n if (output.type === 'retweet') {\n output.retweeted_status = parseStatus(data.retweeted_status)\n }\n\n output.summary = data.summary\n output.summary_html = data.summary_html\n output.external_url = data.external_url\n output.is_local = data.is_local\n }\n\n output.id = String(data.id)\n output.visibility = data.visibility\n output.card = data.card\n output.created_at = new Date(data.created_at)\n\n // Converting to string, the right way.\n output.in_reply_to_status_id = output.in_reply_to_status_id\n ? String(output.in_reply_to_status_id)\n : null\n output.in_reply_to_user_id = output.in_reply_to_user_id\n ? String(output.in_reply_to_user_id)\n : null\n\n output.user = parseUser(masto ? data.account : data.user)\n\n output.attentions = ((masto ? data.mentions : data.attentions) || []).map(parseUser)\n\n output.attachments = ((masto ? data.media_attachments : data.attachments) || [])\n .map(parseAttachment)\n\n const retweetedStatus = masto ? data.reblog : data.retweeted_status\n if (retweetedStatus) {\n output.retweeted_status = parseStatus(retweetedStatus)\n }\n\n output.favoritedBy = []\n output.rebloggedBy = []\n\n return output\n}\n\nexport const parseNotification = (data) => {\n const mastoDict = {\n 'favourite': 'like',\n 'reblog': 'repeat'\n }\n const masto = !data.hasOwnProperty('ntype')\n const output = {}\n\n if (masto) {\n output.type = mastoDict[data.type] || data.type\n output.seen = data.pleroma.is_seen\n output.status = isStatusNotification(output.type) ? parseStatus(data.status) : null\n output.action = output.status // TODO: Refactor, this is unneeded\n output.target = output.type !== 'move'\n ? null\n : parseUser(data.target)\n output.from_profile = parseUser(data.account)\n output.emoji = data.emoji\n } else {\n const parsedNotice = parseStatus(data.notice)\n output.type = data.ntype\n output.seen = Boolean(data.is_seen)\n output.status = output.type === 'like'\n ? parseStatus(data.notice.favorited_status)\n : parsedNotice\n output.action = parsedNotice\n output.from_profile = 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 BLOCKS_IMPORT_URL = '/api/pleroma/blocks_import'\nconst FOLLOW_IMPORT_URL = '/api/pleroma/follow_import'\nconst DELETE_ACCOUNT_URL = '/api/pleroma/delete_account'\nconst CHANGE_EMAIL_URL = '/api/pleroma/change_email'\nconst CHANGE_PASSWORD_URL = '/api/pleroma/change_password'\nconst TAG_USER_URL = '/api/pleroma/admin/users/tag'\nconst PERMISSION_GROUP_URL = (screenName, right) => `/api/pleroma/admin/users/${screenName}/permission_group/${right}`\nconst ACTIVATE_USER_URL = '/api/pleroma/admin/users/activate'\nconst DEACTIVATE_USER_URL = '/api/pleroma/admin/users/deactivate'\nconst ADMIN_USERS_URL = '/api/pleroma/admin/users'\nconst SUGGESTIONS_URL = '/api/v1/suggestions'\nconst NOTIFICATION_SETTINGS_URL = '/api/pleroma/notification_settings'\nconst NOTIFICATION_READ_URL = '/api/v1/pleroma/notifications/read'\n\nconst MFA_SETTINGS_URL = '/api/pleroma/accounts/mfa'\nconst MFA_BACKUP_CODES_URL = '/api/pleroma/accounts/mfa/backup_codes'\n\nconst MFA_SETUP_OTP_URL = '/api/pleroma/accounts/mfa/setup/totp'\nconst MFA_CONFIRM_OTP_URL = '/api/pleroma/accounts/mfa/confirm/totp'\nconst MFA_DISABLE_OTP_URL = '/api/pleroma/accounts/mfa/totp'\n\nconst MASTODON_LOGIN_URL = '/api/v1/accounts/verify_credentials'\nconst MASTODON_REGISTRATION_URL = '/api/v1/accounts'\nconst MASTODON_USER_FAVORITES_TIMELINE_URL = '/api/v1/favourites'\nconst MASTODON_USER_NOTIFICATIONS_URL = '/api/v1/notifications'\nconst MASTODON_DISMISS_NOTIFICATION_URL = id => `/api/v1/notifications/${id}/dismiss`\nconst MASTODON_FAVORITE_URL = id => `/api/v1/statuses/${id}/favourite`\nconst MASTODON_UNFAVORITE_URL = id => `/api/v1/statuses/${id}/unfavourite`\nconst MASTODON_RETWEET_URL = id => `/api/v1/statuses/${id}/reblog`\nconst MASTODON_UNRETWEET_URL = id => `/api/v1/statuses/${id}/unreblog`\nconst MASTODON_DELETE_URL = id => `/api/v1/statuses/${id}`\nconst MASTODON_FOLLOW_URL = id => `/api/v1/accounts/${id}/follow`\nconst MASTODON_UNFOLLOW_URL = id => `/api/v1/accounts/${id}/unfollow`\nconst MASTODON_FOLLOWING_URL = id => `/api/v1/accounts/${id}/following`\nconst MASTODON_FOLLOWERS_URL = id => `/api/v1/accounts/${id}/followers`\nconst MASTODON_FOLLOW_REQUESTS_URL = '/api/v1/follow_requests'\nconst MASTODON_APPROVE_USER_URL = id => `/api/v1/follow_requests/${id}/authorize`\nconst MASTODON_DENY_USER_URL = id => `/api/v1/follow_requests/${id}/reject`\nconst MASTODON_DIRECT_MESSAGES_TIMELINE_URL = '/api/v1/timelines/direct'\nconst MASTODON_PUBLIC_TIMELINE = '/api/v1/timelines/public'\nconst MASTODON_USER_HOME_TIMELINE_URL = '/api/v1/timelines/home'\nconst MASTODON_STATUS_URL = id => `/api/v1/statuses/${id}`\nconst MASTODON_STATUS_CONTEXT_URL = id => `/api/v1/statuses/${id}/context`\nconst MASTODON_USER_URL = '/api/v1/accounts'\nconst MASTODON_USER_RELATIONSHIPS_URL = '/api/v1/accounts/relationships'\nconst MASTODON_USER_TIMELINE_URL = id => `/api/v1/accounts/${id}/statuses`\nconst MASTODON_TAG_TIMELINE_URL = tag => `/api/v1/timelines/tag/${tag}`\nconst MASTODON_USER_BLOCKS_URL = '/api/v1/blocks/'\nconst MASTODON_USER_MUTES_URL = '/api/v1/mutes/'\nconst MASTODON_BLOCK_USER_URL = id => `/api/v1/accounts/${id}/block`\nconst MASTODON_UNBLOCK_USER_URL = id => `/api/v1/accounts/${id}/unblock`\nconst MASTODON_MUTE_USER_URL = id => `/api/v1/accounts/${id}/mute`\nconst MASTODON_UNMUTE_USER_URL = id => `/api/v1/accounts/${id}/unmute`\nconst MASTODON_SUBSCRIBE_USER = id => `/api/v1/pleroma/accounts/${id}/subscribe`\nconst MASTODON_UNSUBSCRIBE_USER = id => `/api/v1/pleroma/accounts/${id}/unsubscribe`\nconst MASTODON_POST_STATUS_URL = '/api/v1/statuses'\nconst MASTODON_MEDIA_UPLOAD_URL = '/api/v1/media'\nconst MASTODON_VOTE_URL = id => `/api/v1/polls/${id}/votes`\nconst MASTODON_POLL_URL = id => `/api/v1/polls/${id}`\nconst MASTODON_STATUS_FAVORITEDBY_URL = id => `/api/v1/statuses/${id}/favourited_by`\nconst MASTODON_STATUS_REBLOGGEDBY_URL = id => `/api/v1/statuses/${id}/reblogged_by`\nconst MASTODON_PROFILE_UPDATE_URL = '/api/v1/accounts/update_credentials'\nconst MASTODON_REPORT_USER_URL = '/api/v1/reports'\nconst MASTODON_PIN_OWN_STATUS = id => `/api/v1/statuses/${id}/pin`\nconst MASTODON_UNPIN_OWN_STATUS = id => `/api/v1/statuses/${id}/unpin`\nconst MASTODON_MUTE_CONVERSATION = id => `/api/v1/statuses/${id}/mute`\nconst MASTODON_UNMUTE_CONVERSATION = id => `/api/v1/statuses/${id}/unmute`\nconst MASTODON_SEARCH_2 = `/api/v2/search`\nconst MASTODON_USER_SEARCH_URL = '/api/v1/accounts/search'\nconst MASTODON_MASCOT_URL = '/api/v1/pleroma/mascot'\nconst MASTODON_DOMAIN_BLOCKS_URL = '/api/v1/domain_blocks'\nconst MASTODON_STREAMING = '/api/v1/streaming'\nconst PLEROMA_EMOJI_REACTIONS_URL = id => `/api/v1/pleroma/statuses/${id}/reactions`\nconst PLEROMA_EMOJI_REACT_URL = (id, emoji) => `/api/v1/pleroma/statuses/${id}/reactions/${emoji}`\nconst PLEROMA_EMOJI_UNREACT_URL = (id, emoji) => `/api/v1/pleroma/statuses/${id}/reactions/${emoji}`\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, user }) => {\n const screenName = user.screen_name\n const form = {\n nicknames: [screenName],\n tags: [tag]\n }\n\n const headers = authHeaders(credentials)\n headers['Content-Type'] = 'application/json'\n\n return fetch(TAG_USER_URL, {\n method: 'PUT',\n headers: headers,\n body: JSON.stringify(form)\n })\n}\n\nconst untagUser = ({ tag, credentials, user }) => {\n const screenName = user.screen_name\n const body = {\n nicknames: [screenName],\n tags: [tag]\n }\n\n const headers = authHeaders(credentials)\n headers['Content-Type'] = 'application/json'\n\n return fetch(TAG_USER_URL, {\n method: 'DELETE',\n headers: headers,\n body: JSON.stringify(body)\n })\n}\n\nconst addRight = ({ right, credentials, user }) => {\n const screenName = user.screen_name\n\n return fetch(PERMISSION_GROUP_URL(screenName, right), {\n method: 'POST',\n headers: authHeaders(credentials),\n body: {}\n })\n}\n\nconst deleteRight = ({ right, credentials, user }) => {\n const screenName = user.screen_name\n\n return fetch(PERMISSION_GROUP_URL(screenName, right), {\n method: 'DELETE',\n headers: authHeaders(credentials),\n body: {}\n })\n}\n\nconst activateUser = ({ credentials, user: { screen_name: nickname } }) => {\n return promisedRequest({\n url: ACTIVATE_USER_URL,\n method: 'PATCH',\n credentials,\n payload: {\n nicknames: [nickname]\n }\n }).then(response => get(response, 'users.0'))\n}\n\nconst deactivateUser = ({ credentials, user: { screen_name: nickname } }) => {\n return promisedRequest({\n url: DEACTIVATE_USER_URL,\n method: 'PATCH',\n credentials,\n payload: {\n nicknames: [nickname]\n }\n }).then(response => get(response, 'users.0'))\n}\n\nconst deleteUser = ({ credentials, user }) => {\n const screenName = user.screen_name\n const headers = authHeaders(credentials)\n\n return fetch(`${ADMIN_USERS_URL}?nickname=${screenName}`, {\n method: 'DELETE',\n headers: headers\n })\n}\n\nconst fetchTimeline = ({\n timeline,\n credentials,\n since = false,\n until = false,\n userId = false,\n tag = false,\n withMuted = false\n}) => {\n const timelineUrls = {\n public: MASTODON_PUBLIC_TIMELINE,\n friends: MASTODON_USER_HOME_TIMELINE_URL,\n dms: MASTODON_DIRECT_MESSAGES_TIMELINE_URL,\n notifications: MASTODON_USER_NOTIFICATIONS_URL,\n 'publicAndExternal': MASTODON_PUBLIC_TIMELINE,\n user: MASTODON_USER_TIMELINE_URL,\n media: MASTODON_USER_TIMELINE_URL,\n favorites: MASTODON_USER_FAVORITES_TIMELINE_URL,\n tag: MASTODON_TAG_TIMELINE_URL\n }\n const isNotifications = timeline === 'notifications'\n const params = []\n\n let url = timelineUrls[timeline]\n\n if (timeline === 'user' || timeline === 'media') {\n url = url(userId)\n }\n\n if (since) {\n params.push(['since_id', since])\n }\n if (until) {\n params.push(['max_id', until])\n }\n if (tag) {\n url = url(tag)\n }\n if (timeline === 'media') {\n params.push(['only_media', 1])\n }\n if (timeline === 'public') {\n params.push(['local', true])\n }\n if (timeline === 'public' || timeline === 'publicAndExternal') {\n params.push(['only_media', false])\n }\n\n params.push(['limit', 20])\n params.push(['with_muted', withMuted])\n\n const queryString = map(params, (param) => `${param[0]}=${param[1]}`).join('&')\n url += `?${queryString}`\n let status = ''\n let statusText = ''\n return fetch(url, { headers: authHeaders(credentials) })\n .then((data) => {\n status = data.status\n statusText = data.statusText\n return data\n })\n .then((data) => data.json())\n .then((data) => {\n if (!data.error) {\n return data.map(isNotifications ? parseNotification : parseStatus)\n } else {\n data.status = status\n data.statusText = statusText\n return data\n }\n })\n}\n\nconst fetchPinnedStatuses = ({ id, credentials }) => {\n const url = MASTODON_USER_TIMELINE_URL(id) + '?pinned=true'\n return promisedRequest({ url, credentials })\n .then((data) => data.map(parseStatus))\n}\n\nconst verifyCredentials = (user) => {\n return fetch(MASTODON_LOGIN_URL, {\n headers: authHeaders(user)\n })\n .then((response) => {\n if (response.ok) {\n return response.json()\n } else {\n return {\n error: response\n }\n }\n })\n .then((data) => data.error ? data : parseUser(data))\n}\n\nconst favorite = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_FAVORITE_URL(id), method: 'POST', credentials })\n .then((data) => parseStatus(data))\n}\n\nconst unfavorite = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_UNFAVORITE_URL(id), method: 'POST', credentials })\n .then((data) => parseStatus(data))\n}\n\nconst retweet = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_RETWEET_URL(id), method: 'POST', credentials })\n .then((data) => parseStatus(data))\n}\n\nconst unretweet = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_UNRETWEET_URL(id), method: 'POST', credentials })\n .then((data) => parseStatus(data))\n}\n\nconst postStatus = ({\n credentials,\n status,\n spoilerText,\n visibility,\n sensitive,\n poll,\n mediaIds = [],\n inReplyToStatusId,\n contentType\n}) => {\n const form = new FormData()\n const pollOptions = poll.options || []\n\n form.append('status', status)\n form.append('source', 'Pleroma FE')\n if (spoilerText) form.append('spoiler_text', spoilerText)\n if (visibility) form.append('visibility', visibility)\n if (sensitive) form.append('sensitive', sensitive)\n if (contentType) form.append('content_type', contentType)\n mediaIds.forEach(val => {\n form.append('media_ids[]', val)\n })\n if (pollOptions.some(option => option !== '')) {\n const normalizedPoll = {\n expires_in: poll.expiresIn,\n multiple: poll.multiple\n }\n Object.keys(normalizedPoll).forEach(key => {\n form.append(`poll[${key}]`, normalizedPoll[key])\n })\n\n pollOptions.forEach(option => {\n form.append('poll[options][]', option)\n })\n }\n if (inReplyToStatusId) {\n form.append('in_reply_to_id', inReplyToStatusId)\n }\n\n return fetch(MASTODON_POST_STATUS_URL, {\n body: form,\n method: 'POST',\n headers: authHeaders(credentials)\n })\n .then((response) => {\n if (response.ok) {\n return response.json()\n } else {\n return {\n error: response\n }\n }\n })\n .then((data) => data.error ? data : parseStatus(data))\n}\n\nconst deleteStatus = ({ id, credentials }) => {\n return fetch(MASTODON_DELETE_URL(id), {\n headers: authHeaders(credentials),\n method: 'DELETE'\n })\n}\n\nconst uploadMedia = ({ formData, credentials }) => {\n return fetch(MASTODON_MEDIA_UPLOAD_URL, {\n body: formData,\n method: 'POST',\n headers: authHeaders(credentials)\n })\n .then((data) => data.json())\n .then((data) => parseAttachment(data))\n}\n\nconst importBlocks = ({ file, credentials }) => {\n const formData = new FormData()\n formData.append('list', file)\n return fetch(BLOCKS_IMPORT_URL, {\n body: formData,\n method: 'POST',\n headers: authHeaders(credentials)\n })\n .then((response) => response.ok)\n}\n\nconst importFollows = ({ file, credentials }) => {\n const formData = new FormData()\n formData.append('list', file)\n return fetch(FOLLOW_IMPORT_URL, {\n body: formData,\n method: 'POST',\n headers: authHeaders(credentials)\n })\n .then((response) => response.ok)\n}\n\nconst deleteAccount = ({ credentials, password }) => {\n const form = new FormData()\n\n form.append('password', password)\n\n return fetch(DELETE_ACCOUNT_URL, {\n body: form,\n method: 'POST',\n headers: authHeaders(credentials)\n })\n .then((response) => response.json())\n}\n\nconst changeEmail = ({ credentials, email, password }) => {\n const form = new FormData()\n\n form.append('email', email)\n form.append('password', password)\n\n return fetch(CHANGE_EMAIL_URL, {\n body: form,\n method: 'POST',\n headers: authHeaders(credentials)\n })\n .then((response) => response.json())\n}\n\nconst changePassword = ({ credentials, password, newPassword, newPasswordConfirmation }) => {\n const form = new FormData()\n\n form.append('password', password)\n form.append('new_password', newPassword)\n form.append('new_password_confirmation', newPasswordConfirmation)\n\n return fetch(CHANGE_PASSWORD_URL, {\n body: form,\n method: 'POST',\n headers: authHeaders(credentials)\n })\n .then((response) => response.json())\n}\n\nconst settingsMFA = ({ credentials }) => {\n return fetch(MFA_SETTINGS_URL, {\n headers: authHeaders(credentials),\n method: 'GET'\n }).then((data) => data.json())\n}\n\nconst mfaDisableOTP = ({ credentials, password }) => {\n const form = new FormData()\n\n form.append('password', password)\n\n return fetch(MFA_DISABLE_OTP_URL, {\n body: form,\n method: 'DELETE',\n headers: authHeaders(credentials)\n })\n .then((response) => response.json())\n}\n\nconst mfaConfirmOTP = ({ credentials, password, token }) => {\n const form = new FormData()\n\n form.append('password', password)\n form.append('code', token)\n\n return fetch(MFA_CONFIRM_OTP_URL, {\n body: form,\n headers: authHeaders(credentials),\n method: 'POST'\n }).then((data) => data.json())\n}\nconst mfaSetupOTP = ({ credentials }) => {\n return fetch(MFA_SETUP_OTP_URL, {\n headers: authHeaders(credentials),\n method: 'GET'\n }).then((data) => data.json())\n}\nconst generateMfaBackupCodes = ({ credentials }) => {\n return fetch(MFA_BACKUP_CODES_URL, {\n headers: authHeaders(credentials),\n method: 'GET'\n }).then((data) => data.json())\n}\n\nconst fetchMutes = ({ credentials }) => {\n return promisedRequest({ url: MASTODON_USER_MUTES_URL, credentials })\n .then((users) => users.map(parseUser))\n}\n\nconst muteUser = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_MUTE_USER_URL(id), credentials, method: 'POST' })\n}\n\nconst unmuteUser = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_UNMUTE_USER_URL(id), credentials, method: 'POST' })\n}\n\nconst fetchMascot = ({ credentials }) => {\n return promisedRequest({ url: MASTODON_MASCOT_URL, credentials })\n}\n\nconst updateMascot = ({ mascot, credentials }) => {\n const form = new FormData()\n form.append('file', mascot)\n return fetch(MASTODON_MASCOT_URL, {\n headers: authHeaders(credentials),\n method: 'PUT',\n body: form\n }).then((data) => data.json())\n}\n\nconst subscribeUser = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_SUBSCRIBE_USER(id), credentials, method: 'POST' })\n}\n\nconst unsubscribeUser = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_UNSUBSCRIBE_USER(id), credentials, method: 'POST' })\n}\n\nconst fetchBlocks = ({ credentials }) => {\n return promisedRequest({ url: MASTODON_USER_BLOCKS_URL, credentials })\n .then((users) => users.map(parseUser))\n}\n\nconst fetchOAuthTokens = ({ credentials }) => {\n const url = '/api/oauth_tokens.json'\n\n return fetch(url, {\n headers: authHeaders(credentials)\n }).then((data) => {\n if (data.ok) {\n return data.json()\n }\n throw new Error('Error fetching auth tokens', data)\n })\n}\n\nconst revokeOAuthToken = ({ id, credentials }) => {\n const url = `/api/oauth_tokens/${id}`\n\n return fetch(url, {\n headers: authHeaders(credentials),\n method: 'DELETE'\n })\n}\n\nconst suggestions = ({ credentials }) => {\n return fetch(SUGGESTIONS_URL, {\n headers: authHeaders(credentials)\n }).then((data) => data.json())\n}\n\nconst markNotificationsAsSeen = ({ id, credentials, single = false }) => {\n const body = new FormData()\n\n if (single) {\n body.append('id', id)\n } else {\n body.append('max_id', id)\n }\n\n return fetch(NOTIFICATION_READ_URL, {\n body,\n headers: authHeaders(credentials),\n method: 'POST'\n }).then((data) => data.json())\n}\n\nconst vote = ({ pollId, choices, credentials }) => {\n const form = new FormData()\n form.append('choices', choices)\n\n return promisedRequest({\n url: MASTODON_VOTE_URL(encodeURIComponent(pollId)),\n method: 'POST',\n credentials,\n payload: {\n choices: choices\n }\n })\n}\n\nconst fetchPoll = ({ pollId, credentials }) => {\n return promisedRequest(\n {\n url: MASTODON_POLL_URL(encodeURIComponent(pollId)),\n method: 'GET',\n credentials\n }\n )\n}\n\nconst fetchFavoritedByUsers = ({ id, credentials }) => {\n return promisedRequest({\n url: MASTODON_STATUS_FAVORITEDBY_URL(id),\n method: 'GET',\n credentials\n }).then((users) => users.map(parseUser))\n}\n\nconst fetchRebloggedByUsers = ({ id, credentials }) => {\n return promisedRequest({\n url: MASTODON_STATUS_REBLOGGEDBY_URL(id),\n method: 'GET',\n credentials\n }).then((users) => users.map(parseUser))\n}\n\nconst fetchEmojiReactions = ({ id, credentials }) => {\n return promisedRequest({ url: PLEROMA_EMOJI_REACTIONS_URL(id), credentials })\n .then((reactions) => reactions.map(r => {\n r.accounts = r.accounts.map(parseUser)\n return r\n }))\n}\n\nconst reactWithEmoji = ({ id, emoji, credentials }) => {\n return promisedRequest({\n url: PLEROMA_EMOJI_REACT_URL(id, emoji),\n method: 'PUT',\n credentials\n }).then(parseStatus)\n}\n\nconst unreactWithEmoji = ({ id, emoji, credentials }) => {\n return promisedRequest({\n url: PLEROMA_EMOJI_UNREACT_URL(id, emoji),\n method: 'DELETE',\n credentials\n }).then(parseStatus)\n}\n\nconst reportUser = ({ credentials, userId, statusIds, comment, forward }) => {\n return promisedRequest({\n url: MASTODON_REPORT_USER_URL,\n method: 'POST',\n payload: {\n 'account_id': userId,\n 'status_ids': statusIds,\n comment,\n forward\n },\n credentials\n })\n}\n\nconst searchUsers = ({ credentials, query }) => {\n return promisedRequest({\n url: MASTODON_USER_SEARCH_URL,\n params: {\n q: query,\n resolve: true\n },\n credentials\n })\n .then((data) => data.map(parseUser))\n}\n\nconst search2 = ({ credentials, q, resolve, limit, offset, following }) => {\n let url = MASTODON_SEARCH_2\n let params = []\n\n if (q) {\n params.push(['q', encodeURIComponent(q)])\n }\n\n if (resolve) {\n params.push(['resolve', resolve])\n }\n\n if (limit) {\n params.push(['limit', limit])\n }\n\n if (offset) {\n params.push(['offset', offset])\n }\n\n if (following) {\n params.push(['following', true])\n }\n\n let queryString = map(params, (param) => `${param[0]}=${param[1]}`).join('&')\n url += `?${queryString}`\n\n return fetch(url, { headers: authHeaders(credentials) })\n .then((data) => {\n if (data.ok) {\n return data\n }\n throw new Error('Error fetching search result', data)\n })\n .then((data) => { return data.json() })\n .then((data) => {\n data.accounts = data.accounts.slice(0, limit).map(u => parseUser(u))\n data.statuses = data.statuses.slice(0, limit).map(s => parseStatus(s))\n return data\n })\n}\n\nconst fetchDomainMutes = ({ credentials }) => {\n return promisedRequest({ url: MASTODON_DOMAIN_BLOCKS_URL, credentials })\n}\n\nconst muteDomain = ({ domain, credentials }) => {\n return promisedRequest({\n url: MASTODON_DOMAIN_BLOCKS_URL,\n method: 'POST',\n payload: { domain },\n credentials\n })\n}\n\nconst unmuteDomain = ({ domain, credentials }) => {\n return promisedRequest({\n url: MASTODON_DOMAIN_BLOCKS_URL,\n method: 'DELETE',\n payload: { domain },\n credentials\n })\n}\n\nconst dismissNotification = ({ credentials, id }) => {\n return promisedRequest({\n url: MASTODON_DISMISS_NOTIFICATION_URL(id),\n method: 'POST',\n payload: { id },\n credentials\n })\n}\n\nexport const getMastodonSocketURI = ({ credentials, stream, args = {} }) => {\n return Object.entries({\n ...(credentials\n ? { access_token: credentials }\n : {}\n ),\n stream,\n ...args\n }).reduce((acc, [key, val]) => {\n return acc + `${key}=${val}&`\n }, MASTODON_STREAMING + '?')\n}\n\nconst MASTODON_STREAMING_EVENTS = new Set([\n 'update',\n 'notification',\n 'delete',\n 'filters_changed'\n])\n\n// A thin wrapper around WebSocket API that allows adding a pre-processor to it\n// Uses EventTarget and a CustomEvent to proxy events\nexport const ProcessedWS = ({\n url,\n preprocessor = handleMastoWS,\n id = 'Unknown'\n}) => {\n const eventTarget = new EventTarget()\n const socket = new WebSocket(url)\n if (!socket) throw new Error(`Failed to create socket ${id}`)\n const proxy = (original, eventName, processor = a => a) => {\n original.addEventListener(eventName, (eventData) => {\n eventTarget.dispatchEvent(new CustomEvent(\n eventName,\n { detail: processor(eventData) }\n ))\n })\n }\n socket.addEventListener('open', (wsEvent) => {\n console.debug(`[WS][${id}] Socket connected`, wsEvent)\n })\n socket.addEventListener('error', (wsEvent) => {\n console.debug(`[WS][${id}] Socket errored`, wsEvent)\n })\n socket.addEventListener('close', (wsEvent) => {\n console.debug(\n `[WS][${id}] Socket disconnected with code ${wsEvent.code}`,\n wsEvent\n )\n })\n // Commented code reason: very spammy, uncomment to enable message debug logging\n /*\n socket.addEventListener('message', (wsEvent) => {\n console.debug(\n `[WS][${id}] Message received`,\n wsEvent\n )\n })\n /**/\n\n proxy(socket, 'open')\n proxy(socket, 'close')\n proxy(socket, 'message', preprocessor)\n proxy(socket, 'error')\n\n // 1000 = Normal Closure\n eventTarget.close = () => { socket.close(1000, 'Shutting down socket') }\n\n return eventTarget\n}\n\nexport const handleMastoWS = (wsEvent) => {\n const { data } = wsEvent\n if (!data) return\n const parsedEvent = JSON.parse(data)\n const { event, payload } = parsedEvent\n if (MASTODON_STREAMING_EVENTS.has(event)) {\n // MastoBE and PleromaBE both send payload for delete as a PLAIN string\n if (event === 'delete') {\n return { event, id: payload }\n }\n const data = payload ? JSON.parse(payload) : null\n if (event === 'update') {\n return { event, status: parseStatus(data) }\n } else if (event === 'notification') {\n return { event, notification: parseNotification(data) }\n }\n } else {\n console.warn('Unknown event', wsEvent)\n return null\n }\n}\n\nconst apiService = {\n verifyCredentials,\n fetchTimeline,\n fetchPinnedStatuses,\n fetchConversation,\n fetchStatus,\n fetchFriends,\n exportFriends,\n fetchFollowers,\n followUser,\n unfollowUser,\n pinOwnStatus,\n unpinOwnStatus,\n muteConversation,\n unmuteConversation,\n blockUser,\n unblockUser,\n fetchUser,\n fetchUserRelationship,\n favorite,\n unfavorite,\n retweet,\n unretweet,\n postStatus,\n deleteStatus,\n uploadMedia,\n fetchMutes,\n muteUser,\n unmuteUser,\n subscribeUser,\n unsubscribeUser,\n fetchBlocks,\n fetchOAuthTokens,\n revokeOAuthToken,\n tagUser,\n untagUser,\n deleteUser,\n addRight,\n deleteRight,\n activateUser,\n deactivateUser,\n register,\n getCaptcha,\n updateAvatar,\n updateBg,\n updateProfile,\n updateBanner,\n importBlocks,\n importFollows,\n deleteAccount,\n changeEmail,\n changePassword,\n settingsMFA,\n mfaDisableOTP,\n generateMfaBackupCodes,\n mfaSetupOTP,\n mfaConfirmOTP,\n fetchFollowRequests,\n approveUser,\n denyUser,\n suggestions,\n markNotificationsAsSeen,\n dismissNotification,\n vote,\n fetchPoll,\n fetchFavoritedByUsers,\n fetchRebloggedByUsers,\n fetchMascot,\n updateMascot,\n fetchEmojiReactions,\n reactWithEmoji,\n unreactWithEmoji,\n reportUser,\n updateNotificationSettings,\n search2,\n searchUsers,\n fetchDomainMutes,\n muteDomain,\n unmuteDomain\n}\n\nexport default apiService\n","<template>\n <label\n class=\"checkbox\"\n :class=\"{ disabled, indeterminate }\"\n >\n <input\n type=\"checkbox\"\n :disabled=\"disabled\"\n :checked=\"checked\"\n :indeterminate.prop=\"indeterminate\"\n @change=\"$emit('change', $event.target.checked)\"\n >\n <i class=\"checkbox-indicator\" />\n <span\n v-if=\"!!$slots.default\"\n class=\"label\"\n >\n <slot />\n </span>\n </label>\n</template>\n\n<script>\nexport default {\n model: {\n prop: 'checked',\n event: 'change'\n },\n props: [\n 'checked',\n 'indeterminate',\n 'disabled'\n ]\n}\n</script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n.checkbox {\n position: relative;\n display: inline-block;\n min-height: 1.2em;\n\n &-indicator {\n position: relative;\n padding-left: 1.2em;\n }\n\n &-indicator::before {\n position: absolute;\n right: 0;\n top: 0;\n display: block;\n content: '✔';\n transition: color 200ms;\n width: 1.1em;\n height: 1.1em;\n border-radius: $fallback--checkboxRadius;\n border-radius: var(--checkboxRadius, $fallback--checkboxRadius);\n box-shadow: 0px 0px 2px black inset;\n box-shadow: var(--inputShadow);\n background-color: $fallback--fg;\n background-color: var(--input, $fallback--fg);\n vertical-align: top;\n text-align: center;\n line-height: 1.1em;\n font-size: 1.1em;\n color: transparent;\n overflow: hidden;\n box-sizing: border-box;\n }\n\n &.disabled {\n .checkbox-indicator::before,\n .label {\n opacity: .5;\n }\n .label {\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n }\n }\n\n input[type=checkbox] {\n display: none;\n\n &:checked + .checkbox-indicator::before {\n color: $fallback--text;\n color: var(--inputText, $fallback--text);\n }\n\n &:indeterminate + .checkbox-indicator::before {\n content: '';\n color: $fallback--text;\n color: var(--inputText, $fallback--text);\n }\n\n }\n\n & > span {\n margin-left: .5em;\n }\n}\n</style>\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./checkbox.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./checkbox.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./checkbox.vue\"\n/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-01a5cae8\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./checkbox.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('label',{staticClass:\"checkbox\",class:{ disabled: _vm.disabled, indeterminate: _vm.indeterminate }},[_c('input',{attrs:{\"type\":\"checkbox\",\"disabled\":_vm.disabled},domProps:{\"checked\":_vm.checked,\"indeterminate\":_vm.indeterminate},on:{\"change\":function($event){_vm.$emit('change', $event.target.checked)}}}),_vm._v(\" \"),_c('i',{staticClass:\"checkbox-indicator\"}),_vm._v(\" \"),(!!_vm.$slots.default)?_c('span',{staticClass:\"label\"},[_vm._t(\"default\")],2):_vm._e()])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import { filter, sortBy, includes } from 'lodash'\n\nexport const notificationsFromStore = store => store.state.statuses.notifications.data\n\nexport const visibleTypes = store => ([\n store.state.config.notificationVisibility.likes && 'like',\n store.state.config.notificationVisibility.mentions && 'mention',\n store.state.config.notificationVisibility.repeats && 'repeat',\n store.state.config.notificationVisibility.follows && 'follow',\n store.state.config.notificationVisibility.followRequest && 'follow_request',\n store.state.config.notificationVisibility.moves && 'move',\n store.state.config.notificationVisibility.emojiReactions && 'pleroma:emoji_reaction'\n].filter(_ => _))\n\nconst statusNotifications = ['like', 'mention', 'repeat', 'pleroma:emoji_reaction']\n\nexport const isStatusNotification = (type) => includes(statusNotifications, type)\n\nconst sortById = (a, b) => {\n const seqA = Number(a.id)\n const seqB = Number(b.id)\n const isSeqA = !Number.isNaN(seqA)\n const isSeqB = !Number.isNaN(seqB)\n if (isSeqA && isSeqB) {\n return seqA > seqB ? -1 : 1\n } else if (isSeqA && !isSeqB) {\n return 1\n } else if (!isSeqA && isSeqB) {\n return -1\n } else {\n return a.id > b.id ? -1 : 1\n }\n}\n\nexport const filteredNotificationsFromStore = (store, types) => {\n // map is just to clone the array since sort mutates it and it causes some issues\n let sortedNotifications = notificationsFromStore(store).map(_ => _).sort(sortById)\n sortedNotifications = sortBy(sortedNotifications, 'seen')\n return sortedNotifications.filter(\n (notification) => (types || visibleTypes(store)).includes(notification.type)\n )\n}\n\nexport const unseenNotificationsFromStore = store =>\n filter(filteredNotificationsFromStore(store), ({ seen }) => !seen)\n","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","// 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-70b9d662\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./dialog_modal.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{class:{ 'dark-overlay': _vm.darkOverlay },on:{\"click\":function($event){if($event.target !== $event.currentTarget){ return null; }$event.stopPropagation();_vm.onCancel()}}},[_c('div',{staticClass:\"dialog-modal panel panel-default\",on:{\"click\":function($event){$event.stopPropagation();}}},[_c('div',{staticClass:\"panel-heading dialog-modal-heading\"},[_c('div',{staticClass:\"title\"},[_vm._t(\"header\")],2)]),_vm._v(\" \"),_c('div',{staticClass:\"dialog-modal-content\"},[_vm._t(\"default\")],2),_vm._v(\" \"),_c('div',{staticClass:\"dialog-modal-footer user-interactions panel-footer\"},[_vm._t(\"footer\")],2)])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import DialogModal from '../dialog_modal/dialog_modal.vue'\nimport Popover from '../popover/popover.vue'\n\nconst FORCE_NSFW = 'mrf_tag:media-force-nsfw'\nconst STRIP_MEDIA = 'mrf_tag:media-strip'\nconst FORCE_UNLISTED = 'mrf_tag:force-unlisted'\nconst DISABLE_REMOTE_SUBSCRIPTION = 'mrf_tag:disable-remote-subscription'\nconst DISABLE_ANY_SUBSCRIPTION = 'mrf_tag:disable-any-subscription'\nconst SANDBOX = 'mrf_tag:sandbox'\nconst QUARANTINE = 'mrf_tag:quarantine'\n\nconst ModerationTools = {\n props: [\n 'user'\n ],\n data () {\n return {\n tags: {\n FORCE_NSFW,\n STRIP_MEDIA,\n FORCE_UNLISTED,\n DISABLE_REMOTE_SUBSCRIPTION,\n DISABLE_ANY_SUBSCRIPTION,\n SANDBOX,\n QUARANTINE\n },\n showDeleteUserDialog: false,\n toggled: false\n }\n },\n components: {\n DialogModal,\n Popover\n },\n computed: {\n tagsSet () {\n return new Set(this.user.tags)\n },\n hasTagPolicy () {\n return this.$store.state.instance.tagPolicyAvailable\n }\n },\n methods: {\n hasTag (tagName) {\n return this.tagsSet.has(tagName)\n },\n toggleTag (tag) {\n const store = this.$store\n if (this.tagsSet.has(tag)) {\n store.state.api.backendInteractor.untagUser({ user: this.user, tag }).then(response => {\n if (!response.ok) { return }\n store.commit('untagUser', { user: this.user, tag })\n })\n } else {\n store.state.api.backendInteractor.tagUser({ user: this.user, tag }).then(response => {\n if (!response.ok) { return }\n store.commit('tagUser', { user: this.user, tag })\n })\n }\n },\n toggleRight (right) {\n const store = this.$store\n if (this.user.rights[right]) {\n store.state.api.backendInteractor.deleteRight({ user: this.user, right }).then(response => {\n if (!response.ok) { return }\n store.commit('updateRight', { user: this.user, right, value: false })\n })\n } else {\n store.state.api.backendInteractor.addRight({ user: this.user, right }).then(response => {\n if (!response.ok) { return }\n store.commit('updateRight', { user: this.user, right, value: true })\n })\n }\n },\n toggleActivationStatus () {\n this.$store.dispatch('toggleActivationStatus', { user: this.user })\n },\n deleteUserDialog (show) {\n this.showDeleteUserDialog = show\n },\n deleteUser () {\n const store = this.$store\n const user = this.user\n const { id, name } = user\n store.state.api.backendInteractor.deleteUser({ user })\n .then(e => {\n this.$store.dispatch('markStatusesAsDeleted', status => user.id === status.user.id)\n const isProfile = this.$route.name === 'external-user-profile' || this.$route.name === 'user-profile'\n const isTargetUser = this.$route.params.name === name || this.$route.params.id === id\n if (isProfile && isTargetUser) {\n window.history.back()\n }\n })\n },\n setToggled (value) {\n this.toggled = value\n }\n }\n}\n\nexport default ModerationTools\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./moderation_tools.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./moderation_tools.js\"\nimport __vue_script__ from \"!!babel-loader!./moderation_tools.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-168f1ca6\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./moderation_tools.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('Popover',{staticClass:\"moderation-tools-popover\",attrs:{\"trigger\":\"click\",\"placement\":\"bottom\",\"offset\":{ y: 5 }},on:{\"show\":function($event){_vm.setToggled(true)},\"close\":function($event){_vm.setToggled(false)}}},[_c('div',{attrs:{\"slot\":\"content\"},slot:\"content\"},[_c('div',{staticClass:\"dropdown-menu\"},[(_vm.user.is_local)?_c('span',[_c('button',{staticClass:\"dropdown-item\",on:{\"click\":function($event){_vm.toggleRight(\"admin\")}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t(!!_vm.user.rights.admin ? 'user_card.admin_menu.revoke_admin' : 'user_card.admin_menu.grant_admin'))+\"\\n \")]),_vm._v(\" \"),_c('button',{staticClass:\"dropdown-item\",on:{\"click\":function($event){_vm.toggleRight(\"moderator\")}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t(!!_vm.user.rights.moderator ? 'user_card.admin_menu.revoke_moderator' : 'user_card.admin_menu.grant_moderator'))+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"dropdown-divider\",attrs:{\"role\":\"separator\"}})]):_vm._e(),_vm._v(\" \"),_c('button',{staticClass:\"dropdown-item\",on:{\"click\":function($event){_vm.toggleActivationStatus()}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t(!!_vm.user.deactivated ? 'user_card.admin_menu.activate_account' : 'user_card.admin_menu.deactivate_account'))+\"\\n \")]),_vm._v(\" \"),_c('button',{staticClass:\"dropdown-item\",on:{\"click\":function($event){_vm.deleteUserDialog(true)}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('user_card.admin_menu.delete_account'))+\"\\n \")]),_vm._v(\" \"),(_vm.hasTagPolicy)?_c('div',{staticClass:\"dropdown-divider\",attrs:{\"role\":\"separator\"}}):_vm._e(),_vm._v(\" \"),(_vm.hasTagPolicy)?_c('span',[_c('button',{staticClass:\"dropdown-item\",on:{\"click\":function($event){_vm.toggleTag(_vm.tags.FORCE_NSFW)}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('user_card.admin_menu.force_nsfw'))+\"\\n \"),_c('span',{staticClass:\"menu-checkbox\",class:{ 'menu-checkbox-checked': _vm.hasTag(_vm.tags.FORCE_NSFW) }})]),_vm._v(\" \"),_c('button',{staticClass:\"dropdown-item\",on:{\"click\":function($event){_vm.toggleTag(_vm.tags.STRIP_MEDIA)}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('user_card.admin_menu.strip_media'))+\"\\n \"),_c('span',{staticClass:\"menu-checkbox\",class:{ 'menu-checkbox-checked': _vm.hasTag(_vm.tags.STRIP_MEDIA) }})]),_vm._v(\" \"),_c('button',{staticClass:\"dropdown-item\",on:{\"click\":function($event){_vm.toggleTag(_vm.tags.FORCE_UNLISTED)}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('user_card.admin_menu.force_unlisted'))+\"\\n \"),_c('span',{staticClass:\"menu-checkbox\",class:{ 'menu-checkbox-checked': _vm.hasTag(_vm.tags.FORCE_UNLISTED) }})]),_vm._v(\" \"),_c('button',{staticClass:\"dropdown-item\",on:{\"click\":function($event){_vm.toggleTag(_vm.tags.SANDBOX)}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('user_card.admin_menu.sandbox'))+\"\\n \"),_c('span',{staticClass:\"menu-checkbox\",class:{ 'menu-checkbox-checked': _vm.hasTag(_vm.tags.SANDBOX) }})]),_vm._v(\" \"),(_vm.user.is_local)?_c('button',{staticClass:\"dropdown-item\",on:{\"click\":function($event){_vm.toggleTag(_vm.tags.DISABLE_REMOTE_SUBSCRIPTION)}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('user_card.admin_menu.disable_remote_subscription'))+\"\\n \"),_c('span',{staticClass:\"menu-checkbox\",class:{ 'menu-checkbox-checked': _vm.hasTag(_vm.tags.DISABLE_REMOTE_SUBSCRIPTION) }})]):_vm._e(),_vm._v(\" \"),(_vm.user.is_local)?_c('button',{staticClass:\"dropdown-item\",on:{\"click\":function($event){_vm.toggleTag(_vm.tags.DISABLE_ANY_SUBSCRIPTION)}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('user_card.admin_menu.disable_any_subscription'))+\"\\n \"),_c('span',{staticClass:\"menu-checkbox\",class:{ 'menu-checkbox-checked': _vm.hasTag(_vm.tags.DISABLE_ANY_SUBSCRIPTION) }})]):_vm._e(),_vm._v(\" \"),(_vm.user.is_local)?_c('button',{staticClass:\"dropdown-item\",on:{\"click\":function($event){_vm.toggleTag(_vm.tags.QUARANTINE)}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('user_card.admin_menu.quarantine'))+\"\\n \"),_c('span',{staticClass:\"menu-checkbox\",class:{ 'menu-checkbox-checked': _vm.hasTag(_vm.tags.QUARANTINE) }})]):_vm._e()]):_vm._e()])]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-default btn-block\",class:{ toggled: _vm.toggled },attrs:{\"slot\":\"trigger\"},slot:\"trigger\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('user_card.admin_menu.moderation'))+\"\\n \")])]),_vm._v(\" \"),_c('portal',{attrs:{\"to\":\"modal\"}},[(_vm.showDeleteUserDialog)?_c('DialogModal',{attrs:{\"on-cancel\":_vm.deleteUserDialog.bind(this, false)}},[_c('template',{slot:\"header\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('user_card.admin_menu.delete_user'))+\"\\n \")]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('user_card.admin_menu.delete_user_confirmation')))]),_vm._v(\" \"),_c('template',{slot:\"footer\"},[_c('button',{staticClass:\"btn btn-default\",on:{\"click\":function($event){_vm.deleteUserDialog(false)}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('general.cancel'))+\"\\n \")]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-default danger\",on:{\"click\":function($event){_vm.deleteUser()}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('user_card.admin_menu.delete_user'))+\"\\n \")])])],2):_vm._e()],1)],1)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import ProgressButton from '../progress_button/progress_button.vue'\nimport Popover from '../popover/popover.vue'\n\nconst AccountActions = {\n props: [\n 'user', 'relationship'\n ],\n data () {\n return { }\n },\n components: {\n ProgressButton,\n Popover\n },\n methods: {\n showRepeats () {\n this.$store.dispatch('showReblogs', this.user.id)\n },\n hideRepeats () {\n this.$store.dispatch('hideReblogs', this.user.id)\n },\n blockUser () {\n this.$store.dispatch('blockUser', this.user.id)\n },\n unblockUser () {\n this.$store.dispatch('unblockUser', this.user.id)\n },\n reportUser () {\n this.$store.dispatch('openUserReportingModal', this.user.id)\n }\n }\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-bf5e6e30\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./account_actions.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"account-actions\"},[_c('Popover',{attrs:{\"trigger\":\"click\",\"placement\":\"bottom\"}},[_c('div',{staticClass:\"account-tools-popover\",attrs:{\"slot\":\"content\"},slot:\"content\"},[_c('div',{staticClass:\"dropdown-menu\"},[(_vm.relationship.following)?[(_vm.relationship.showing_reblogs)?_c('button',{staticClass:\"btn btn-default dropdown-item\",on:{\"click\":_vm.hideRepeats}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('user_card.hide_repeats'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(!_vm.relationship.showing_reblogs)?_c('button',{staticClass:\"btn btn-default dropdown-item\",on:{\"click\":_vm.showRepeats}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('user_card.show_repeats'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"dropdown-divider\",attrs:{\"role\":\"separator\"}})]:_vm._e(),_vm._v(\" \"),(_vm.relationship.blocking)?_c('button',{staticClass:\"btn btn-default btn-block dropdown-item\",on:{\"click\":_vm.unblockUser}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('user_card.unblock'))+\"\\n \")]):_c('button',{staticClass:\"btn btn-default btn-block dropdown-item\",on:{\"click\":_vm.blockUser}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('user_card.block'))+\"\\n \")]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-default btn-block dropdown-item\",on:{\"click\":_vm.reportUser}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('user_card.report'))+\"\\n \")])],2)]),_vm._v(\" \"),_c('div',{staticClass:\"btn btn-default ellipsis-button\",attrs:{\"slot\":\"trigger\"},slot:\"trigger\"},[_c('i',{staticClass:\"icon-ellipsis trigger-button\"})])])],1)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import UserAvatar from '../user_avatar/user_avatar.vue'\nimport RemoteFollow from '../remote_follow/remote_follow.vue'\nimport ProgressButton from '../progress_button/progress_button.vue'\nimport FollowButton from '../follow_button/follow_button.vue'\nimport ModerationTools from '../moderation_tools/moderation_tools.vue'\nimport AccountActions from '../account_actions/account_actions.vue'\nimport generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\nimport { mapGetters } from 'vuex'\n\nexport default {\n props: [\n 'userId', 'switcher', 'selected', 'hideBio', 'rounded', 'bordered', 'allowZoomingAvatar'\n ],\n data () {\n return {\n followRequestInProgress: false,\n betterShadow: this.$store.state.interface.browserSupport.cssFilter\n }\n },\n created () {\n this.$store.dispatch('fetchUserRelationship', this.user.id)\n },\n computed: {\n user () {\n return this.$store.getters.findUser(this.userId)\n },\n relationship () {\n return this.$store.getters.relationship(this.userId)\n },\n classes () {\n return [{\n 'user-card-rounded-t': this.rounded === 'top', // set border-top-left-radius and border-top-right-radius\n 'user-card-rounded': this.rounded === true, // set border-radius for all sides\n 'user-card-bordered': this.bordered === true // set border for all sides\n }]\n },\n style () {\n return {\n backgroundImage: [\n `linear-gradient(to bottom, var(--profileTint), var(--profileTint))`,\n `url(${this.user.cover_photo})`\n ].join(', ')\n }\n },\n isOtherUser () {\n return this.user.id !== this.$store.state.users.currentUser.id\n },\n subscribeUrl () {\n // eslint-disable-next-line no-undef\n const serverUrl = new URL(this.user.statusnet_profile_url)\n return `${serverUrl.protocol}//${serverUrl.host}/main/ostatus`\n },\n loggedIn () {\n return this.$store.state.users.currentUser\n },\n dailyAvg () {\n const days = Math.ceil((new Date() - new Date(this.user.created_at)) / (60 * 60 * 24 * 1000))\n return Math.round(this.user.statuses_count / days)\n },\n userHighlightType: {\n get () {\n const data = this.$store.getters.mergedConfig.highlight[this.user.screen_name]\n return (data && data.type) || 'disabled'\n },\n set (type) {\n const data = this.$store.getters.mergedConfig.highlight[this.user.screen_name]\n if (type !== 'disabled') {\n this.$store.dispatch('setHighlight', { user: this.user.screen_name, color: (data && data.color) || '#FFFFFF', type })\n } else {\n this.$store.dispatch('setHighlight', { user: this.user.screen_name, color: undefined })\n }\n },\n ...mapGetters(['mergedConfig'])\n },\n userHighlightColor: {\n get () {\n const data = this.$store.getters.mergedConfig.highlight[this.user.screen_name]\n return data && data.color\n },\n set (color) {\n this.$store.dispatch('setHighlight', { user: this.user.screen_name, color })\n }\n },\n visibleRole () {\n const rights = this.user.rights\n if (!rights) { return }\n const validRole = rights.admin || rights.moderator\n const roleTitle = rights.admin ? 'admin' : 'moderator'\n return validRole && roleTitle\n },\n hideFollowsCount () {\n return this.isOtherUser && this.user.hide_follows_count\n },\n hideFollowersCount () {\n return this.isOtherUser && this.user.hide_followers_count\n },\n ...mapGetters(['mergedConfig'])\n },\n components: {\n UserAvatar,\n RemoteFollow,\n ModerationTools,\n AccountActions,\n ProgressButton,\n FollowButton\n },\n methods: {\n muteUser () {\n this.$store.dispatch('muteUser', this.user.id)\n },\n unmuteUser () {\n this.$store.dispatch('unmuteUser', this.user.id)\n },\n subscribeUser () {\n return this.$store.dispatch('subscribeUser', this.user.id)\n },\n unsubscribeUser () {\n return this.$store.dispatch('unsubscribeUser', this.user.id)\n },\n setProfileView (v) {\n if (this.switcher) {\n const store = this.$store\n store.commit('setProfileView', { v })\n }\n },\n linkClicked ({ target }) {\n if (target.tagName === 'SPAN') {\n target = target.parentNode\n }\n if (target.tagName === 'A') {\n window.open(target.href, '_blank')\n }\n },\n userProfileLink (user) {\n return generateProfileLink(\n user.id, user.screen_name,\n this.$store.state.instance.restrictedNicknames\n )\n },\n zoomAvatar () {\n const attachment = {\n url: this.user.profile_image_url_original,\n mimetype: 'image'\n }\n this.$store.dispatch('setMedia', [attachment])\n this.$store.dispatch('setCurrent', attachment)\n },\n mentionUser () {\n this.$store.dispatch('openPostStatusModal', { replyTo: true, repliedUser: this.user })\n }\n }\n}\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./user_card.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./user_card.js\"\nimport __vue_script__ from \"!!babel-loader!./user_card.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-4d895630\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./user_card.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"user-card\",class:_vm.classes},[_c('div',{staticClass:\"background-image\",class:{ 'hide-bio': _vm.hideBio },style:(_vm.style)}),_vm._v(\" \"),_c('div',{staticClass:\"panel-heading\"},[_c('div',{staticClass:\"user-info\"},[_c('div',{staticClass:\"container\"},[(_vm.allowZoomingAvatar)?_c('a',{staticClass:\"user-info-avatar-link\",on:{\"click\":_vm.zoomAvatar}},[_c('UserAvatar',{attrs:{\"better-shadow\":_vm.betterShadow,\"user\":_vm.user}}),_vm._v(\" \"),_vm._m(0)],1):_c('router-link',{attrs:{\"to\":_vm.userProfileLink(_vm.user)}},[_c('UserAvatar',{attrs:{\"better-shadow\":_vm.betterShadow,\"user\":_vm.user}})],1),_vm._v(\" \"),_c('div',{staticClass:\"user-summary\"},[_c('div',{staticClass:\"top-line\"},[(_vm.user.name_html)?_c('div',{staticClass:\"user-name\",attrs:{\"title\":_vm.user.name},domProps:{\"innerHTML\":_vm._s(_vm.user.name_html)}}):_c('div',{staticClass:\"user-name\",attrs:{\"title\":_vm.user.name}},[_vm._v(\"\\n \"+_vm._s(_vm.user.name)+\"\\n \")]),_vm._v(\" \"),(!_vm.isOtherUser)?_c('router-link',{attrs:{\"to\":{ name: 'user-settings' }}},[_c('i',{staticClass:\"button-icon icon-wrench usersettings\",attrs:{\"title\":_vm.$t('tool_tip.user_settings')}})]):_vm._e(),_vm._v(\" \"),(_vm.isOtherUser && !_vm.user.is_local)?_c('a',{attrs:{\"href\":_vm.user.statusnet_profile_url,\"target\":\"_blank\"}},[_c('i',{staticClass:\"icon-link-ext usersettings\"})]):_vm._e(),_vm._v(\" \"),(_vm.isOtherUser && _vm.loggedIn)?_c('AccountActions',{attrs:{\"user\":_vm.user,\"relationship\":_vm.relationship}}):_vm._e()],1),_vm._v(\" \"),_c('div',{staticClass:\"bottom-line\"},[_c('router-link',{staticClass:\"user-screen-name\",attrs:{\"to\":_vm.userProfileLink(_vm.user)}},[_vm._v(\"\\n @\"+_vm._s(_vm.user.screen_name)+\"\\n \")]),_vm._v(\" \"),(!_vm.hideBio && !!_vm.visibleRole)?_c('span',{staticClass:\"alert staff\"},[_vm._v(_vm._s(_vm.visibleRole))]):_vm._e(),_vm._v(\" \"),(_vm.user.locked)?_c('span',[_c('i',{staticClass:\"icon icon-lock\"})]):_vm._e(),_vm._v(\" \"),(!_vm.mergedConfig.hideUserStats && !_vm.hideBio)?_c('span',{staticClass:\"dailyAvg\"},[_vm._v(_vm._s(_vm.dailyAvg)+\" \"+_vm._s(_vm.$t('user_card.per_day')))]):_vm._e()],1)])],1),_vm._v(\" \"),_c('div',{staticClass:\"user-meta\"},[(_vm.relationship.followed_by && _vm.loggedIn && _vm.isOtherUser)?_c('div',{staticClass:\"following\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('user_card.follows_you'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.isOtherUser && (_vm.loggedIn || !_vm.switcher))?_c('div',{staticClass:\"highlighter\"},[(_vm.userHighlightType !== 'disabled')?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.userHighlightColor),expression:\"userHighlightColor\"}],staticClass:\"userHighlightText\",attrs:{\"id\":'userHighlightColorTx'+_vm.user.id,\"type\":\"text\"},domProps:{\"value\":(_vm.userHighlightColor)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.userHighlightColor=$event.target.value}}}):_vm._e(),_vm._v(\" \"),(_vm.userHighlightType !== 'disabled')?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.userHighlightColor),expression:\"userHighlightColor\"}],staticClass:\"userHighlightCl\",attrs:{\"id\":'userHighlightColor'+_vm.user.id,\"type\":\"color\"},domProps:{\"value\":(_vm.userHighlightColor)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.userHighlightColor=$event.target.value}}}):_vm._e(),_vm._v(\" \"),_c('label',{staticClass:\"userHighlightSel select\",attrs:{\"for\":\"style-switcher\"}},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.userHighlightType),expression:\"userHighlightType\"}],staticClass:\"userHighlightSel\",attrs:{\"id\":'userHighlightSel'+_vm.user.id},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.userHighlightType=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},[_c('option',{attrs:{\"value\":\"disabled\"}},[_vm._v(\"No highlight\")]),_vm._v(\" \"),_c('option',{attrs:{\"value\":\"solid\"}},[_vm._v(\"Solid bg\")]),_vm._v(\" \"),_c('option',{attrs:{\"value\":\"striped\"}},[_vm._v(\"Striped bg\")]),_vm._v(\" \"),_c('option',{attrs:{\"value\":\"side\"}},[_vm._v(\"Side stripe\")])]),_vm._v(\" \"),_c('i',{staticClass:\"icon-down-open\"})])]):_vm._e()]),_vm._v(\" \"),(_vm.loggedIn && _vm.isOtherUser)?_c('div',{staticClass:\"user-interactions\"},[_c('div',{staticClass:\"btn-group\"},[_c('FollowButton',{attrs:{\"relationship\":_vm.relationship}}),_vm._v(\" \"),(_vm.relationship.following)?[(!_vm.relationship.subscribing)?_c('ProgressButton',{staticClass:\"btn btn-default\",attrs:{\"click\":_vm.subscribeUser,\"title\":_vm.$t('user_card.subscribe')}},[_c('i',{staticClass:\"icon-bell-alt\"})]):_c('ProgressButton',{staticClass:\"btn btn-default toggled\",attrs:{\"click\":_vm.unsubscribeUser,\"title\":_vm.$t('user_card.unsubscribe')}},[_c('i',{staticClass:\"icon-bell-ringing-o\"})])]:_vm._e()],2),_vm._v(\" \"),_c('div',[(_vm.relationship.muting)?_c('button',{staticClass:\"btn btn-default btn-block toggled\",on:{\"click\":_vm.unmuteUser}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('user_card.muted'))+\"\\n \")]):_c('button',{staticClass:\"btn btn-default btn-block\",on:{\"click\":_vm.muteUser}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('user_card.mute'))+\"\\n \")])]),_vm._v(\" \"),_c('div',[_c('button',{staticClass:\"btn btn-default btn-block\",on:{\"click\":_vm.mentionUser}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('user_card.mention'))+\"\\n \")])]),_vm._v(\" \"),(_vm.loggedIn.role === \"admin\")?_c('ModerationTools',{attrs:{\"user\":_vm.user}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),(!_vm.loggedIn && _vm.user.is_local)?_c('div',{staticClass:\"user-interactions\"},[_c('RemoteFollow',{attrs:{\"user\":_vm.user}})],1):_vm._e()])]),_vm._v(\" \"),(!_vm.hideBio)?_c('div',{staticClass:\"panel-body\"},[(!_vm.mergedConfig.hideUserStats && _vm.switcher)?_c('div',{staticClass:\"user-counts\"},[_c('div',{staticClass:\"user-count\",on:{\"click\":function($event){$event.preventDefault();_vm.setProfileView('statuses')}}},[_c('h5',[_vm._v(_vm._s(_vm.$t('user_card.statuses')))]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.user.statuses_count)+\" \"),_c('br')])]),_vm._v(\" \"),_c('div',{staticClass:\"user-count\",on:{\"click\":function($event){$event.preventDefault();_vm.setProfileView('friends')}}},[_c('h5',[_vm._v(_vm._s(_vm.$t('user_card.followees')))]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.hideFollowsCount ? _vm.$t('user_card.hidden') : _vm.user.friends_count))])]),_vm._v(\" \"),_c('div',{staticClass:\"user-count\",on:{\"click\":function($event){$event.preventDefault();_vm.setProfileView('followers')}}},[_c('h5',[_vm._v(_vm._s(_vm.$t('user_card.followers')))]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.hideFollowersCount ? _vm.$t('user_card.hidden') : _vm.user.followers_count))])])]):_vm._e(),_vm._v(\" \"),(!_vm.hideBio && _vm.user.description_html)?_c('p',{staticClass:\"user-card-bio\",domProps:{\"innerHTML\":_vm._s(_vm.user.description_html)},on:{\"click\":function($event){$event.preventDefault();return _vm.linkClicked($event)}}}):(!_vm.hideBio)?_c('p',{staticClass:\"user-card-bio\"},[_vm._v(\"\\n \"+_vm._s(_vm.user.description)+\"\\n \")]):_vm._e()]):_vm._e()])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"user-info-avatar-link-overlay\"},[_c('i',{staticClass:\"button-icon icon-zoom-in\"})])}]\nexport { render, staticRenderFns }","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 }","import { mapGetters } from 'vuex'\n\nconst FavoriteButton = {\n props: ['status', 'loggedIn'],\n data () {\n return {\n animated: false\n }\n },\n methods: {\n favorite () {\n if (!this.status.favorited) {\n this.$store.dispatch('favorite', { id: this.status.id })\n } else {\n this.$store.dispatch('unfavorite', { id: this.status.id })\n }\n this.animated = true\n setTimeout(() => {\n this.animated = false\n }, 500)\n }\n },\n computed: {\n classes () {\n return {\n 'icon-star-empty': !this.status.favorited,\n 'icon-star': this.status.favorited,\n 'animate-spin': this.animated\n }\n },\n ...mapGetters(['mergedConfig'])\n }\n}\n\nexport default FavoriteButton\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./favorite_button.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./favorite_button.js\"\nimport __vue_script__ from \"!!babel-loader!./favorite_button.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-2ced002f\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./favorite_button.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.loggedIn)?_c('div',[_c('i',{staticClass:\"button-icon favorite-button fav-active\",class:_vm.classes,attrs:{\"title\":_vm.$t('tool_tip.favorite')},on:{\"click\":function($event){$event.preventDefault();_vm.favorite()}}}),_vm._v(\" \"),(!_vm.mergedConfig.hidePostStats && _vm.status.fave_num > 0)?_c('span',[_vm._v(_vm._s(_vm.status.fave_num))]):_vm._e()]):_c('div',[_c('i',{staticClass:\"button-icon favorite-button\",class:_vm.classes,attrs:{\"title\":_vm.$t('tool_tip.favorite')}}),_vm._v(\" \"),(!_vm.mergedConfig.hidePostStats && _vm.status.fave_num > 0)?_c('span',[_vm._v(_vm._s(_vm.status.fave_num))]):_vm._e()])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import Popover from '../popover/popover.vue'\nimport { mapGetters } from 'vuex'\n\nconst ReactButton = {\n props: ['status'],\n data () {\n return {\n filterWord: ''\n }\n },\n components: {\n Popover\n },\n methods: {\n addReaction (event, emoji, close) {\n const existingReaction = this.status.emoji_reactions.find(r => r.name === emoji)\n if (existingReaction && existingReaction.me) {\n this.$store.dispatch('unreactWithEmoji', { id: this.status.id, emoji })\n } else {\n this.$store.dispatch('reactWithEmoji', { id: this.status.id, emoji })\n }\n close()\n }\n },\n computed: {\n commonEmojis () {\n return ['❤️', '😠', '👀', '😂', '🔥']\n },\n emojis () {\n if (this.filterWord !== '') {\n return this.$store.state.instance.emoji.filter(emoji => emoji.displayText.includes(this.filterWord))\n }\n return this.$store.state.instance.emoji || []\n },\n ...mapGetters(['mergedConfig'])\n }\n}\n\nexport default ReactButton\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./react_button.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./react_button.js\"\nimport __vue_script__ from \"!!babel-loader!./react_button.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-185f65eb\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./react_button.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Popover',{staticClass:\"react-button-popover\",attrs:{\"trigger\":\"click\",\"placement\":\"top\",\"offset\":{ y: 5 }},scopedSlots:_vm._u([{key:\"content\",fn:function(ref){\nvar close = ref.close;\nreturn _c('div',{},[_c('div',{staticClass:\"reaction-picker-filter\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.filterWord),expression:\"filterWord\"}],attrs:{\"placeholder\":_vm.$t('emoji.search_emoji')},domProps:{\"value\":(_vm.filterWord)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.filterWord=$event.target.value}}})]),_vm._v(\" \"),_c('div',{staticClass:\"reaction-picker\"},[_vm._l((_vm.commonEmojis),function(emoji){return _c('span',{key:emoji,staticClass:\"emoji-button\",on:{\"click\":function($event){_vm.addReaction($event, emoji, close)}}},[_vm._v(\"\\n \"+_vm._s(emoji)+\"\\n \")])}),_vm._v(\" \"),_c('div',{staticClass:\"reaction-picker-divider\"}),_vm._v(\" \"),_vm._l((_vm.emojis),function(emoji,key){return _c('span',{key:key,staticClass:\"emoji-button\",on:{\"click\":function($event){_vm.addReaction($event, emoji.replacement, close)}}},[_vm._v(\"\\n \"+_vm._s(emoji.replacement)+\"\\n \")])}),_vm._v(\" \"),_c('div',{staticClass:\"reaction-bottom-fader\"})],2)])}}])},[_c('i',{staticClass:\"icon-smile button-icon add-reaction-button\",attrs:{\"slot\":\"trigger\",\"title\":_vm.$t('tool_tip.add_reaction')},slot:\"trigger\"})])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import { mapGetters } from 'vuex'\n\nconst RetweetButton = {\n props: ['status', 'loggedIn', 'visibility'],\n data () {\n return {\n animated: false\n }\n },\n methods: {\n retweet () {\n if (!this.status.repeated) {\n this.$store.dispatch('retweet', { id: this.status.id })\n } else {\n this.$store.dispatch('unretweet', { id: this.status.id })\n }\n this.animated = true\n setTimeout(() => {\n this.animated = false\n }, 500)\n }\n },\n computed: {\n classes () {\n return {\n 'retweeted': this.status.repeated,\n 'retweeted-empty': !this.status.repeated,\n 'animate-spin': this.animated\n }\n },\n ...mapGetters(['mergedConfig'])\n }\n}\n\nexport default RetweetButton\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./retweet_button.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./retweet_button.js\"\nimport __vue_script__ from \"!!babel-loader!./retweet_button.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-538410cc\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./retweet_button.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.loggedIn)?_c('div',[(_vm.visibility !== 'private' && _vm.visibility !== 'direct')?[_c('i',{staticClass:\"button-icon retweet-button icon-retweet rt-active\",class:_vm.classes,attrs:{\"title\":_vm.$t('tool_tip.repeat')},on:{\"click\":function($event){$event.preventDefault();_vm.retweet()}}}),_vm._v(\" \"),(!_vm.mergedConfig.hidePostStats && _vm.status.repeat_num > 0)?_c('span',[_vm._v(_vm._s(_vm.status.repeat_num))]):_vm._e()]:[_c('i',{staticClass:\"button-icon icon-lock\",class:_vm.classes,attrs:{\"title\":_vm.$t('timeline.no_retweet_hint')}})]],2):(!_vm.loggedIn)?_c('div',[_c('i',{staticClass:\"button-icon icon-retweet\",class:_vm.classes,attrs:{\"title\":_vm.$t('tool_tip.repeat')}}),_vm._v(\" \"),(!_vm.mergedConfig.hidePostStats && _vm.status.repeat_num > 0)?_c('span',[_vm._v(_vm._s(_vm.status.repeat_num))]):_vm._e()]):_vm._e()}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import Popover from '../popover/popover.vue'\n\nconst ExtraButtons = {\n props: [ 'status' ],\n components: { Popover },\n methods: {\n deleteStatus () {\n const confirmed = window.confirm(this.$t('status.delete_confirm'))\n if (confirmed) {\n this.$store.dispatch('deleteStatus', { id: this.status.id })\n }\n },\n pinStatus () {\n this.$store.dispatch('pinStatus', this.status.id)\n .then(() => this.$emit('onSuccess'))\n .catch(err => this.$emit('onError', err.error.error))\n },\n unpinStatus () {\n this.$store.dispatch('unpinStatus', this.status.id)\n .then(() => this.$emit('onSuccess'))\n .catch(err => this.$emit('onError', err.error.error))\n },\n muteConversation () {\n this.$store.dispatch('muteConversation', this.status.id)\n .then(() => this.$emit('onSuccess'))\n .catch(err => this.$emit('onError', err.error.error))\n },\n unmuteConversation () {\n this.$store.dispatch('unmuteConversation', this.status.id)\n .then(() => this.$emit('onSuccess'))\n .catch(err => this.$emit('onError', err.error.error))\n },\n copyLink () {\n navigator.clipboard.writeText(this.statusLink)\n .then(() => this.$emit('onSuccess'))\n .catch(err => this.$emit('onError', err.error.error))\n }\n },\n computed: {\n currentUser () { return this.$store.state.users.currentUser },\n canDelete () {\n if (!this.currentUser) { return }\n const superuser = this.currentUser.rights.moderator || this.currentUser.rights.admin\n return superuser || this.status.user.id === this.currentUser.id\n },\n ownStatus () {\n return this.status.user.id === this.currentUser.id\n },\n canPin () {\n return this.ownStatus && (this.status.visibility === 'public' || this.status.visibility === 'unlisted')\n },\n canMute () {\n return !!this.currentUser\n },\n statusLink () {\n return `${this.$store.state.instance.server}${this.$router.resolve({ name: 'conversation', params: { id: this.status.id } }).href}`\n }\n }\n}\n\nexport default ExtraButtons\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./extra_buttons.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./extra_buttons.js\"\nimport __vue_script__ from \"!!babel-loader!./extra_buttons.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-b30b8de6\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./extra_buttons.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Popover',{staticClass:\"extra-button-popover\",attrs:{\"trigger\":\"click\",\"placement\":\"top\"},scopedSlots:_vm._u([{key:\"content\",fn:function(ref){\nvar close = ref.close;\nreturn _c('div',{},[_c('div',{staticClass:\"dropdown-menu\"},[(_vm.canMute && !_vm.status.thread_muted)?_c('button',{staticClass:\"dropdown-item dropdown-item-icon\",on:{\"click\":function($event){$event.preventDefault();return _vm.muteConversation($event)}}},[_c('i',{staticClass:\"icon-eye-off\"}),_c('span',[_vm._v(_vm._s(_vm.$t(\"status.mute_conversation\")))])]):_vm._e(),_vm._v(\" \"),(_vm.canMute && _vm.status.thread_muted)?_c('button',{staticClass:\"dropdown-item dropdown-item-icon\",on:{\"click\":function($event){$event.preventDefault();return _vm.unmuteConversation($event)}}},[_c('i',{staticClass:\"icon-eye-off\"}),_c('span',[_vm._v(_vm._s(_vm.$t(\"status.unmute_conversation\")))])]):_vm._e(),_vm._v(\" \"),(!_vm.status.pinned && _vm.canPin)?_c('button',{staticClass:\"dropdown-item dropdown-item-icon\",on:{\"click\":[function($event){$event.preventDefault();return _vm.pinStatus($event)},close]}},[_c('i',{staticClass:\"icon-pin\"}),_c('span',[_vm._v(_vm._s(_vm.$t(\"status.pin\")))])]):_vm._e(),_vm._v(\" \"),(_vm.status.pinned && _vm.canPin)?_c('button',{staticClass:\"dropdown-item dropdown-item-icon\",on:{\"click\":[function($event){$event.preventDefault();return _vm.unpinStatus($event)},close]}},[_c('i',{staticClass:\"icon-pin\"}),_c('span',[_vm._v(_vm._s(_vm.$t(\"status.unpin\")))])]):_vm._e(),_vm._v(\" \"),(_vm.canDelete)?_c('button',{staticClass:\"dropdown-item dropdown-item-icon\",on:{\"click\":[function($event){$event.preventDefault();return _vm.deleteStatus($event)},close]}},[_c('i',{staticClass:\"icon-cancel\"}),_c('span',[_vm._v(_vm._s(_vm.$t(\"status.delete\")))])]):_vm._e(),_vm._v(\" \"),_c('button',{staticClass:\"dropdown-item dropdown-item-icon\",on:{\"click\":[function($event){$event.preventDefault();return _vm.copyLink($event)},close]}},[_c('i',{staticClass:\"icon-share\"}),_c('span',[_vm._v(_vm._s(_vm.$t(\"status.copy_link\")))])])])])}}])},[_c('i',{staticClass:\"icon-ellipsis button-icon\",attrs:{\"slot\":\"trigger\"},slot:\"trigger\"})])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import 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 StillImage from '../still-image/still-image.vue'\nimport VideoAttachment from '../video_attachment/video_attachment.vue'\nimport nsfwImage from '../../assets/nsfw.png'\nimport fileTypeService from '../../services/file_type/file_type.service.js'\nimport { mapGetters } from 'vuex'\n\nconst Attachment = {\n props: [\n 'attachment',\n 'nsfw',\n 'statusId',\n 'size',\n 'allowPlay',\n 'setMedia',\n 'naturalSizeLoad'\n ],\n data () {\n return {\n nsfwImage: this.$store.state.instance.nsfwCensorImage || nsfwImage,\n hideNsfwLocal: this.$store.getters.mergedConfig.hideNsfw,\n preloadImage: this.$store.getters.mergedConfig.preloadImage,\n loading: false,\n img: fileTypeService.fileType(this.attachment.mimetype) === 'image' && document.createElement('img'),\n modalOpen: false,\n showHidden: false\n }\n },\n components: {\n StillImage,\n VideoAttachment\n },\n computed: {\n usePlaceHolder () {\n return this.size === 'hide' || this.type === 'unknown'\n },\n referrerpolicy () {\n return this.$store.state.instance.mediaProxyAvailable ? '' : 'no-referrer'\n },\n type () {\n return fileTypeService.fileType(this.attachment.mimetype)\n },\n hidden () {\n return this.nsfw && this.hideNsfwLocal && !this.showHidden\n },\n isEmpty () {\n return (this.type === 'html' && !this.attachment.oembed) || this.type === 'unknown'\n },\n isSmall () {\n return this.size === 'small'\n },\n fullwidth () {\n return this.type === 'html' || this.type === 'audio'\n },\n ...mapGetters(['mergedConfig'])\n },\n methods: {\n linkClicked ({ target }) {\n if (target.tagName === 'A') {\n window.open(target.href, '_blank')\n }\n },\n openModal (event) {\n const modalTypes = this.mergedConfig.playVideosInModal\n ? ['image', 'video']\n : ['image']\n if (fileTypeService.fileMatchesSomeType(modalTypes, this.attachment) ||\n this.usePlaceHolder\n ) {\n event.stopPropagation()\n event.preventDefault()\n this.setMedia()\n this.$store.dispatch('setCurrent', this.attachment)\n }\n },\n toggleHidden (event) {\n if (\n (this.mergedConfig.useOneClickNsfw && !this.showHidden) &&\n (this.type !== 'video' || this.mergedConfig.playVideosInModal)\n ) {\n this.openModal(event)\n return\n }\n if (this.img && !this.preloadImage) {\n if (this.img.onload) {\n this.img.onload()\n } else {\n this.loading = true\n this.img.src = this.attachment.url\n this.img.onload = () => {\n this.loading = false\n this.showHidden = !this.showHidden\n }\n }\n } else {\n this.showHidden = !this.showHidden\n }\n },\n onImageLoad (image) {\n const width = image.naturalWidth\n const height = image.naturalHeight\n this.naturalSizeLoad && this.naturalSizeLoad({ width, height })\n }\n }\n}\n\nexport default Attachment\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./attachment.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./attachment.js\"\nimport __vue_script__ from \"!!babel-loader!./attachment.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-61e0eb0c\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./attachment.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {\nvar _obj;\nvar _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.usePlaceHolder)?_c('div',{on:{\"click\":_vm.openModal}},[(_vm.type !== 'html')?_c('a',{staticClass:\"placeholder\",attrs:{\"target\":\"_blank\",\"href\":_vm.attachment.url}},[_vm._v(\"\\n [\"+_vm._s(_vm.nsfw ? \"NSFW/\" : \"\")+_vm._s(_vm.type.toUpperCase())+\"]\\n \")]):_vm._e()]):_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isEmpty),expression:\"!isEmpty\"}],staticClass:\"attachment\",class:( _obj = {}, _obj[_vm.type] = true, _obj.loading = _vm.loading, _obj['fullwidth'] = _vm.fullwidth, _obj['nsfw-placeholder'] = _vm.hidden, _obj )},[(_vm.hidden)?_c('a',{staticClass:\"image-attachment\",attrs:{\"href\":_vm.attachment.url},on:{\"click\":function($event){$event.preventDefault();return _vm.toggleHidden($event)}}},[_c('img',{key:_vm.nsfwImage,staticClass:\"nsfw\",class:{'small': _vm.isSmall},attrs:{\"src\":_vm.nsfwImage}}),_vm._v(\" \"),(_vm.type === 'video')?_c('i',{staticClass:\"play-icon icon-play-circled\"}):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.nsfw && _vm.hideNsfwLocal && !_vm.hidden)?_c('div',{staticClass:\"hider\"},[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.toggleHidden($event)}}},[_vm._v(\"Hide\")])]):_vm._e(),_vm._v(\" \"),(_vm.type === 'image' && (!_vm.hidden || _vm.preloadImage))?_c('a',{staticClass:\"image-attachment\",class:{'hidden': _vm.hidden && _vm.preloadImage },attrs:{\"href\":_vm.attachment.url,\"target\":\"_blank\",\"title\":_vm.attachment.description},on:{\"click\":_vm.openModal}},[_c('StillImage',{attrs:{\"referrerpolicy\":_vm.referrerpolicy,\"mimetype\":_vm.attachment.mimetype,\"src\":_vm.attachment.large_thumb_url || _vm.attachment.url,\"image-load-handler\":_vm.onImageLoad}})],1):_vm._e(),_vm._v(\" \"),(_vm.type === 'video' && !_vm.hidden)?_c('a',{staticClass:\"video-container\",class:{'small': _vm.isSmall},attrs:{\"href\":_vm.allowPlay ? undefined : _vm.attachment.url},on:{\"click\":_vm.openModal}},[_c('VideoAttachment',{staticClass:\"video\",attrs:{\"attachment\":_vm.attachment,\"controls\":_vm.allowPlay}}),_vm._v(\" \"),(!_vm.allowPlay)?_c('i',{staticClass:\"play-icon icon-play-circled\"}):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.type === 'audio')?_c('audio',{attrs:{\"src\":_vm.attachment.url,\"controls\":\"\"}}):_vm._e(),_vm._v(\" \"),(_vm.type === 'html' && _vm.attachment.oembed)?_c('div',{staticClass:\"oembed\",on:{\"click\":function($event){$event.preventDefault();return _vm.linkClicked($event)}}},[(_vm.attachment.thumb_url)?_c('div',{staticClass:\"image\"},[_c('img',{attrs:{\"src\":_vm.attachment.thumb_url}})]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"text\"},[_c('h1',[_c('a',{attrs:{\"href\":_vm.attachment.url}},[_vm._v(_vm._s(_vm.attachment.oembed.title))])]),_vm._v(\" \"),_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.attachment.oembed.oembedHTML)}})])]):_vm._e()])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import Timeago from '../timeago/timeago.vue'\nimport { forEach, map } from 'lodash'\n\nexport default {\n name: 'Poll',\n props: ['basePoll'],\n components: { Timeago },\n data () {\n return {\n loading: false,\n choices: []\n }\n },\n created () {\n if (!this.$store.state.polls.pollsObject[this.pollId]) {\n this.$store.dispatch('mergeOrAddPoll', this.basePoll)\n }\n this.$store.dispatch('trackPoll', this.pollId)\n },\n destroyed () {\n this.$store.dispatch('untrackPoll', this.pollId)\n },\n computed: {\n pollId () {\n return this.basePoll.id\n },\n poll () {\n const storePoll = this.$store.state.polls.pollsObject[this.pollId]\n return storePoll || {}\n },\n options () {\n return (this.poll && this.poll.options) || []\n },\n expiresAt () {\n return (this.poll && this.poll.expires_at) || 0\n },\n expired () {\n return (this.poll && this.poll.expired) || false\n },\n loggedIn () {\n return this.$store.state.users.currentUser\n },\n showResults () {\n return this.poll.voted || this.expired || !this.loggedIn\n },\n totalVotesCount () {\n return this.poll.votes_count\n },\n containerClass () {\n return {\n loading: this.loading\n }\n },\n choiceIndices () {\n // Convert array of booleans into an array of indices of the\n // items that were 'true', so [true, false, false, true] becomes\n // [0, 3].\n return this.choices\n .map((entry, index) => entry && index)\n .filter(value => typeof value === 'number')\n },\n isDisabled () {\n const noChoice = this.choiceIndices.length === 0\n return this.loading || noChoice\n }\n },\n methods: {\n percentageForOption (count) {\n return this.totalVotesCount === 0 ? 0 : Math.round(count / this.totalVotesCount * 100)\n },\n resultTitle (option) {\n return `${option.votes_count}/${this.totalVotesCount} ${this.$t('polls.votes')}`\n },\n fetchPoll () {\n this.$store.dispatch('refreshPoll', { id: this.statusId, pollId: this.poll.id })\n },\n activateOption (index) {\n // forgive me father: doing checking the radio/checkboxes\n // in code because of customized input elements need either\n // a) an extra element for the actual graphic, or b) use a\n // pseudo element for the label. We use b) which mandates\n // using \"for\" and \"id\" matching which isn't nice when the\n // same poll appears multiple times on the site (notifs and\n // timeline for example). With code we can make sure it just\n // works without altering the pseudo element implementation.\n const allElements = this.$el.querySelectorAll('input')\n const clickedElement = this.$el.querySelector(`input[value=\"${index}\"]`)\n if (this.poll.multiple) {\n // Checkboxes, toggle only the clicked one\n clickedElement.checked = !clickedElement.checked\n } else {\n // Radio button, uncheck everything and check the clicked one\n forEach(allElements, element => { element.checked = false })\n clickedElement.checked = true\n }\n this.choices = map(allElements, e => e.checked)\n },\n optionId (index) {\n return `poll${this.poll.id}-${index}`\n },\n vote () {\n if (this.choiceIndices.length === 0) return\n this.loading = true\n this.$store.dispatch(\n 'votePoll',\n { id: this.statusId, pollId: this.poll.id, choices: this.choiceIndices }\n ).then(poll => {\n this.loading = false\n })\n }\n }\n}\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./poll.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./poll.js\"\nimport __vue_script__ from \"!!babel-loader!./poll.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-db51c57e\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./poll.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"poll\",class:_vm.containerClass},[_vm._l((_vm.options),function(option,index){return _c('div',{key:index,staticClass:\"poll-option\"},[(_vm.showResults)?_c('div',{staticClass:\"option-result\",attrs:{\"title\":_vm.resultTitle(option)}},[_c('div',{staticClass:\"option-result-label\"},[_c('span',{staticClass:\"result-percentage\"},[_vm._v(\"\\n \"+_vm._s(_vm.percentageForOption(option.votes_count))+\"%\\n \")]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(option.title))])]),_vm._v(\" \"),_c('div',{staticClass:\"result-fill\",style:({ 'width': ((_vm.percentageForOption(option.votes_count)) + \"%\") })})]):_c('div',{on:{\"click\":function($event){_vm.activateOption(index)}}},[(_vm.poll.multiple)?_c('input',{attrs:{\"type\":\"checkbox\",\"disabled\":_vm.loading},domProps:{\"value\":index}}):_c('input',{attrs:{\"type\":\"radio\",\"disabled\":_vm.loading},domProps:{\"value\":index}}),_vm._v(\" \"),_c('label',{staticClass:\"option-vote\"},[_c('div',[_vm._v(_vm._s(option.title))])])])])}),_vm._v(\" \"),_c('div',{staticClass:\"footer faint\"},[(!_vm.showResults)?_c('button',{staticClass:\"btn btn-default poll-vote-button\",attrs:{\"type\":\"button\",\"disabled\":_vm.isDisabled},on:{\"click\":_vm.vote}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('polls.vote'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"total\"},[_vm._v(\"\\n \"+_vm._s(_vm.totalVotesCount)+\" \"+_vm._s(_vm.$t(\"polls.votes\"))+\" · \\n \")]),_vm._v(\" \"),_c('i18n',{attrs:{\"path\":_vm.expired ? 'polls.expired' : 'polls.expires_in'}},[_c('Timeago',{attrs:{\"time\":_vm.expiresAt,\"auto-update\":60,\"now-threshold\":0}})],1)],1)],2)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import Attachment from '../attachment/attachment.vue'\nimport { 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 Attachment from '../attachment/attachment.vue'\nimport Poll from '../poll/poll.vue'\nimport Gallery from '../gallery/gallery.vue'\nimport LinkPreview from '../link-preview/link-preview.vue'\nimport generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\nimport fileType from 'src/services/file_type/file_type.service'\nimport { processHtml } from 'src/services/tiny_post_html_processor/tiny_post_html_processor.service.js'\nimport { mentionMatchesUrl, extractTagFromUrl } from 'src/services/matcher/matcher.service.js'\nimport { mapGetters, mapState } from 'vuex'\n\nconst StatusContent = {\n name: 'StatusContent',\n props: [\n 'status',\n 'focused',\n 'noHeading',\n 'fullContent'\n ],\n data () {\n return {\n showingTall: this.inConversation && this.focused,\n showingLongSubject: false,\n // not as computed because it sets the initial state which will be changed later\n expandingSubject: !this.$store.getters.mergedConfig.collapseMessageWithSubject\n }\n },\n computed: {\n localCollapseSubjectDefault () {\n return this.mergedConfig.collapseMessageWithSubject\n },\n hideAttachments () {\n return (this.mergedConfig.hideAttachments && !this.inConversation) ||\n (this.mergedConfig.hideAttachmentsInConv && this.inConversation)\n },\n // This is a bit hacky, but we want to approximate post height before rendering\n // so we count newlines (masto uses <p> for paragraphs, GS uses <br> between them)\n // as well as approximate line count by counting characters and approximating ~80\n // per line.\n //\n // Using max-height + overflow: auto for status components resulted in false positives\n // very often with japanese characters, and it was very annoying.\n tallStatus () {\n const lengthScore = this.status.statusnet_html.split(/<p|<br/).length + this.status.text.length / 80\n return lengthScore > 20\n },\n longSubject () {\n return this.status.summary.length > 900\n },\n // When a status has a subject and is also tall, we should only have one show more/less button. If the default is to collapse statuses with subjects, we just treat it like a status with a subject; otherwise, we just treat it like a tall status.\n mightHideBecauseSubject () {\n return this.status.summary && (!this.tallStatus || this.localCollapseSubjectDefault)\n },\n mightHideBecauseTall () {\n return this.tallStatus && (!this.status.summary || !this.localCollapseSubjectDefault)\n },\n hideSubjectStatus () {\n return this.mightHideBecauseSubject && !this.expandingSubject\n },\n hideTallStatus () {\n return this.mightHideBecauseTall && !this.showingTall\n },\n showingMore () {\n return (this.mightHideBecauseTall && this.showingTall) || (this.mightHideBecauseSubject && this.expandingSubject)\n },\n nsfwClickthrough () {\n if (!this.status.nsfw) {\n return false\n }\n if (this.status.summary && this.localCollapseSubjectDefault) {\n return false\n }\n return true\n },\n attachmentSize () {\n if ((this.mergedConfig.hideAttachments && !this.inConversation) ||\n (this.mergedConfig.hideAttachmentsInConv && this.inConversation) ||\n (this.status.attachments.length > this.maxThumbnails)) {\n return 'hide'\n } else if (this.compact) {\n return 'small'\n }\n return 'normal'\n },\n galleryTypes () {\n if (this.attachmentSize === 'hide') {\n return []\n }\n return this.mergedConfig.playVideosInModal\n ? ['image', 'video']\n : ['image']\n },\n galleryAttachments () {\n return this.status.attachments.filter(\n file => fileType.fileMatchesSomeType(this.galleryTypes, file)\n )\n },\n nonGalleryAttachments () {\n return this.status.attachments.filter(\n file => !fileType.fileMatchesSomeType(this.galleryTypes, file)\n )\n },\n hasImageAttachments () {\n return this.status.attachments.some(\n file => fileType.fileType(file.mimetype) === 'image'\n )\n },\n hasVideoAttachments () {\n return this.status.attachments.some(\n file => fileType.fileType(file.mimetype) === 'video'\n )\n },\n maxThumbnails () {\n return this.mergedConfig.maxThumbnails\n },\n postBodyHtml () {\n const html = this.status.statusnet_html\n\n if (this.mergedConfig.greentext) {\n try {\n if (html.includes('&gt;')) {\n // This checks if post has '>' at the beginning, excluding mentions so that @mention >impying works\n return processHtml(html, (string) => {\n if (string.includes('&gt;') &&\n string\n .replace(/<[^>]+?>/gi, '') // remove all tags\n .replace(/@\\w+/gi, '') // remove mentions (even failed ones)\n .trim()\n .startsWith('&gt;')) {\n return `<span class='greentext'>${string}</span>`\n } else {\n return string\n }\n })\n } else {\n return html\n }\n } catch (e) {\n console.err('Failed to process status html', e)\n return html\n }\n } else {\n return html\n }\n },\n contentHtml () {\n if (!this.status.summary_html) {\n return this.postBodyHtml\n }\n return this.status.summary_html + '<br />' + this.postBodyHtml\n },\n ...mapGetters(['mergedConfig']),\n ...mapState({\n betterShadow: state => state.interface.browserSupport.cssFilter,\n currentUser: state => state.users.currentUser\n })\n },\n components: {\n Attachment,\n Poll,\n Gallery,\n LinkPreview\n },\n methods: {\n linkClicked (event) {\n const target = event.target.closest('.status-content a')\n if (target) {\n if (target.className.match(/mention/)) {\n const href = target.href\n const attn = this.status.attentions.find(attn => mentionMatchesUrl(attn, href))\n if (attn) {\n event.stopPropagation()\n event.preventDefault()\n const link = this.generateUserProfileLink(attn.id, attn.screen_name)\n this.$router.push(link)\n return\n }\n }\n if (target.rel.match(/(?:^|\\s)tag(?:$|\\s)/) || target.className.match(/hashtag/)) {\n // Extract tag name from link url\n const tag = extractTagFromUrl(target.href)\n if (tag) {\n const link = this.generateTagLink(tag)\n this.$router.push(link)\n return\n }\n }\n window.open(target.href, '_blank')\n }\n },\n toggleShowMore () {\n if (this.mightHideBecauseTall) {\n this.showingTall = !this.showingTall\n } else if (this.mightHideBecauseSubject) {\n this.expandingSubject = !this.expandingSubject\n }\n },\n generateUserProfileLink (id, name) {\n return generateProfileLink(id, name, this.$store.state.instance.restrictedNicknames)\n },\n generateTagLink (tag) {\n return `/tag/${tag}`\n },\n setMedia () {\n const attachments = this.attachmentSize === 'hide' ? this.status.attachments : this.galleryAttachments\n return () => this.$store.dispatch('setMedia', attachments)\n }\n }\n}\n\nexport default StatusContent\n","/**\n * This is a tiny purpose-built HTML parser/processor. This basically detects any type of visual newline and\n * allows it to be processed, useful for greentexting, mostly\n *\n * known issue: doesn't handle CDATA so nested CDATA might not work well\n *\n * @param {Object} input - input data\n * @param {(string) => string} processor - function that will be called on every line\n * @return {string} processed html\n */\nexport const processHtml = (html, processor) => {\n const handledTags = new Set(['p', 'br', 'div'])\n const openCloseTags = new Set(['p', 'div'])\n\n let buffer = '' // Current output buffer\n const level = [] // How deep we are in tags and which tags were there\n let textBuffer = '' // Current line content\n let tagBuffer = null // Current tag buffer, if null = we are not currently reading a tag\n\n // Extracts tag name from tag, i.e. <span a=\"b\"> => span\n const getTagName = (tag) => {\n const result = /(?:<\\/(\\w+)>|<(\\w+)\\s?[^/]*?\\/?>)/gi.exec(tag)\n return result && (result[1] || result[2])\n }\n\n const flush = () => { // Processes current line buffer, adds it to output buffer and clears line buffer\n if (textBuffer.trim().length > 0) {\n buffer += processor(textBuffer)\n } else {\n buffer += textBuffer\n }\n textBuffer = ''\n }\n\n const handleBr = (tag) => { // handles single newlines/linebreaks/selfclosing\n flush()\n buffer += tag\n }\n\n const handleOpen = (tag) => { // handles opening tags\n flush()\n buffer += tag\n level.push(tag)\n }\n\n const handleClose = (tag) => { // handles closing tags\n flush()\n buffer += tag\n if (level[level.length - 1] === tag) {\n level.pop()\n }\n }\n\n for (let i = 0; i < html.length; i++) {\n const char = html[i]\n if (char === '<' && tagBuffer === null) {\n tagBuffer = char\n } else if (char !== '>' && tagBuffer !== null) {\n tagBuffer += char\n } else if (char === '>' && tagBuffer !== null) {\n tagBuffer += char\n const tagFull = tagBuffer\n tagBuffer = null\n const tagName = getTagName(tagFull)\n if (handledTags.has(tagName)) {\n if (tagName === 'br') {\n handleBr(tagFull)\n } else if (openCloseTags.has(tagName)) {\n if (tagFull[1] === '/') {\n handleClose(tagFull)\n } else if (tagFull[tagFull.length - 2] === '/') {\n // self-closing\n handleBr(tagFull)\n } else {\n handleOpen(tagFull)\n }\n }\n } else {\n textBuffer += tagFull\n }\n } else if (char === '\\n') {\n handleBr(char)\n } else {\n textBuffer += char\n }\n }\n if (tagBuffer) {\n textBuffer += tagBuffer\n }\n\n flush()\n\n return buffer\n}\n","export const mentionMatchesUrl = (attention, url) => {\n if (url === attention.statusnet_profile_url) {\n return true\n }\n const [namepart, instancepart] = attention.screen_name.split('@')\n const matchstring = new RegExp('://' + instancepart + '/.*' + namepart + '$', 'g')\n\n return !!url.match(matchstring)\n}\n\n/**\n * Extract tag name from pleroma or mastodon url.\n * i.e https://bikeshed.party/tag/photo or https://quey.org/tags/sky\n * @param {string} url\n */\nexport const extractTagFromUrl = (url) => {\n const regex = /tag[s]*\\/(\\w+)$/g\n const result = regex.exec(url)\n if (!result) {\n return false\n }\n return result[1]\n}\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./status_content.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./status_content.js\"\nimport __vue_script__ from \"!!babel-loader!./status_content.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-43c5cfd4\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./status_content.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"status-body\"},[_vm._t(\"header\"),_vm._v(\" \"),(_vm.longSubject)?_c('div',{staticClass:\"status-content-wrapper\",class:{ 'tall-status': !_vm.showingLongSubject }},[(!_vm.showingLongSubject)?_c('a',{staticClass:\"tall-status-hider\",class:{ 'tall-status-hider_focused': _vm.focused },attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();_vm.showingLongSubject=true}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t(\"general.show_more\"))+\"\\n \"),(_vm.hasImageAttachments)?_c('span',{staticClass:\"icon-picture\"}):_vm._e(),_vm._v(\" \"),(_vm.hasVideoAttachments)?_c('span',{staticClass:\"icon-video\"}):_vm._e(),_vm._v(\" \"),(_vm.status.card)?_c('span',{staticClass:\"icon-link\"}):_vm._e()]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"status-content media-body\",domProps:{\"innerHTML\":_vm._s(_vm.contentHtml)},on:{\"click\":function($event){$event.preventDefault();return _vm.linkClicked($event)}}}),_vm._v(\" \"),(_vm.showingLongSubject)?_c('a',{staticClass:\"status-unhider\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();_vm.showingLongSubject=false}}},[_vm._v(_vm._s(_vm.$t(\"general.show_less\")))]):_vm._e()]):_c('div',{staticClass:\"status-content-wrapper\",class:{'tall-status': _vm.hideTallStatus}},[(_vm.hideTallStatus)?_c('a',{staticClass:\"tall-status-hider\",class:{ 'tall-status-hider_focused': _vm.focused },attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.toggleShowMore($event)}}},[_vm._v(_vm._s(_vm.$t(\"general.show_more\")))]):_vm._e(),_vm._v(\" \"),(!_vm.hideSubjectStatus)?_c('div',{staticClass:\"status-content media-body\",domProps:{\"innerHTML\":_vm._s(_vm.contentHtml)},on:{\"click\":function($event){$event.preventDefault();return _vm.linkClicked($event)}}}):_c('div',{staticClass:\"status-content media-body\",domProps:{\"innerHTML\":_vm._s(_vm.status.summary_html)},on:{\"click\":function($event){$event.preventDefault();return _vm.linkClicked($event)}}}),_vm._v(\" \"),(_vm.hideSubjectStatus)?_c('a',{staticClass:\"cw-status-hider\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.toggleShowMore($event)}}},[_vm._v(_vm._s(_vm.$t(\"general.show_more\")))]):_vm._e(),_vm._v(\" \"),(_vm.showingMore)?_c('a',{staticClass:\"status-unhider\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.toggleShowMore($event)}}},[_vm._v(_vm._s(_vm.$t(\"general.show_less\")))]):_vm._e()]),_vm._v(\" \"),(_vm.status.poll && _vm.status.poll.options)?_c('div',[_c('poll',{attrs:{\"base-poll\":_vm.status.poll}})],1):_vm._e(),_vm._v(\" \"),(_vm.status.attachments.length !== 0 && (!_vm.hideSubjectStatus || _vm.showingLongSubject))?_c('div',{staticClass:\"attachments media-body\"},[_vm._l((_vm.nonGalleryAttachments),function(attachment){return _c('attachment',{key:attachment.id,staticClass:\"non-gallery\",attrs:{\"size\":_vm.attachmentSize,\"nsfw\":_vm.nsfwClickthrough,\"attachment\":attachment,\"allow-play\":true,\"set-media\":_vm.setMedia()}})}),_vm._v(\" \"),(_vm.galleryAttachments.length > 0)?_c('gallery',{attrs:{\"nsfw\":_vm.nsfwClickthrough,\"attachments\":_vm.galleryAttachments,\"set-media\":_vm.setMedia()}}):_vm._e()],2):_vm._e(),_vm._v(\" \"),(_vm.status.card && !_vm.hideSubjectStatus && !_vm.noHeading)?_c('div',{staticClass:\"link-preview media-body\"},[_c('link-preview',{attrs:{\"card\":_vm.status.card,\"size\":_vm.attachmentSize,\"nsfw\":_vm.nsfwClickthrough}})],1):_vm._e(),_vm._v(\" \"),_vm._t(\"footer\")],2)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import { find } from 'lodash'\n\nconst StatusPopover = {\n name: 'StatusPopover',\n props: [\n 'statusId'\n ],\n data () {\n return {\n error: false\n }\n },\n computed: {\n status () {\n return find(this.$store.state.statuses.allStatuses, { id: this.statusId })\n }\n },\n components: {\n Status: () => import('../status/status.vue'),\n Popover: () => import('../popover/popover.vue')\n },\n methods: {\n enter () {\n if (!this.status) {\n this.$store.dispatch('fetchStatus', this.statusId)\n .then(data => (this.error = false))\n .catch(e => (this.error = true))\n }\n }\n }\n}\n\nexport default StatusPopover\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./status_popover.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./status_popover.js\"\nimport __vue_script__ from \"!!babel-loader!./status_popover.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-3b873076\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./status_popover.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Popover',{attrs:{\"trigger\":\"hover\",\"popover-class\":\"status-popover\",\"bound-to\":{ x: 'container' }},on:{\"show\":_vm.enter}},[_c('template',{slot:\"trigger\"},[_vm._t(\"default\")],2),_vm._v(\" \"),_c('div',{attrs:{\"slot\":\"content\"},slot:\"content\"},[(_vm.status)?_c('Status',{attrs:{\"is-preview\":true,\"statusoid\":_vm.status,\"compact\":true}}):(_vm.error)?_c('div',{staticClass:\"status-preview-no-content faint\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('status.status_unavailable'))+\"\\n \")]):_c('div',{staticClass:\"status-preview-no-content\"},[_c('i',{staticClass:\"icon-spin4 animate-spin\"})])],1)],2)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import UserAvatar from '../user_avatar/user_avatar.vue'\nimport Popover from '../popover/popover.vue'\n\nconst EMOJI_REACTION_COUNT_CUTOFF = 12\n\nconst EmojiReactions = {\n name: 'EmojiReactions',\n components: {\n UserAvatar,\n Popover\n },\n props: ['status'],\n data: () => ({\n showAll: false\n }),\n computed: {\n tooManyReactions () {\n return this.status.emoji_reactions.length > EMOJI_REACTION_COUNT_CUTOFF\n },\n emojiReactions () {\n return this.showAll\n ? this.status.emoji_reactions\n : this.status.emoji_reactions.slice(0, EMOJI_REACTION_COUNT_CUTOFF)\n },\n showMoreString () {\n return `+${this.status.emoji_reactions.length - EMOJI_REACTION_COUNT_CUTOFF}`\n },\n accountsForEmoji () {\n return this.status.emoji_reactions.reduce((acc, reaction) => {\n acc[reaction.name] = reaction.accounts || []\n return acc\n }, {})\n },\n loggedIn () {\n return !!this.$store.state.users.currentUser\n }\n },\n methods: {\n toggleShowAll () {\n this.showAll = !this.showAll\n },\n reactedWith (emoji) {\n return this.status.emoji_reactions.find(r => r.name === emoji).me\n },\n fetchEmojiReactionsByIfMissing () {\n const hasNoAccounts = this.status.emoji_reactions.find(r => !r.accounts)\n if (hasNoAccounts) {\n this.$store.dispatch('fetchEmojiReactionsBy', this.status.id)\n }\n },\n reactWith (emoji) {\n this.$store.dispatch('reactWithEmoji', { id: this.status.id, emoji })\n },\n unreact (emoji) {\n this.$store.dispatch('unreactWithEmoji', { id: this.status.id, emoji })\n },\n emojiOnClick (emoji, event) {\n if (!this.loggedIn) return\n\n if (this.reactedWith(emoji)) {\n this.unreact(emoji)\n } else {\n this.reactWith(emoji)\n }\n }\n }\n}\n\nexport default EmojiReactions\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./emoji_reactions.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./emoji_reactions.js\"\nimport __vue_script__ from \"!!babel-loader!./emoji_reactions.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-09ec7fb6\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./emoji_reactions.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"emoji-reactions\"},[_vm._l((_vm.emojiReactions),function(reaction){return _c('Popover',{key:reaction.name,attrs:{\"trigger\":\"hover\",\"placement\":\"top\",\"offset\":{ y: 5 }}},[_c('div',{staticClass:\"reacted-users\",attrs:{\"slot\":\"content\"},slot:\"content\"},[(_vm.accountsForEmoji[reaction.name].length)?_c('div',_vm._l((_vm.accountsForEmoji[reaction.name]),function(account){return _c('div',{key:account.id,staticClass:\"reacted-user\"},[_c('UserAvatar',{staticClass:\"avatar-small\",attrs:{\"user\":account,\"compact\":true}}),_vm._v(\" \"),_c('div',{staticClass:\"reacted-user-names\"},[_c('span',{staticClass:\"reacted-user-name\",domProps:{\"innerHTML\":_vm._s(account.name_html)}}),_vm._v(\" \"),_c('span',{staticClass:\"reacted-user-screen-name\"},[_vm._v(_vm._s(account.screen_name))])])],1)}),0):_c('div',[_c('i',{staticClass:\"icon-spin4 animate-spin\"})])]),_vm._v(\" \"),_c('button',{staticClass:\"emoji-reaction btn btn-default\",class:{ 'picked-reaction': _vm.reactedWith(reaction.name), 'not-clickable': !_vm.loggedIn },attrs:{\"slot\":\"trigger\"},on:{\"click\":function($event){_vm.emojiOnClick(reaction.name, $event)},\"mouseenter\":function($event){_vm.fetchEmojiReactionsByIfMissing()}},slot:\"trigger\"},[_c('span',{staticClass:\"reaction-emoji\"},[_vm._v(_vm._s(reaction.name))]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(reaction.count))])])])}),_vm._v(\" \"),(_vm.tooManyReactions)?_c('a',{staticClass:\"emoji-reaction-expand faint\",attrs:{\"href\":\"javascript:void(0)\"},on:{\"click\":_vm.toggleShowAll}},[_vm._v(\"\\n \"+_vm._s(_vm.showAll ? _vm.$t('general.show_less') : _vm.showMoreString)+\"\\n \")]):_vm._e()],2)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import FavoriteButton from '../favorite_button/favorite_button.vue'\nimport ReactButton from '../react_button/react_button.vue'\nimport RetweetButton from '../retweet_button/retweet_button.vue'\nimport ExtraButtons from '../extra_buttons/extra_buttons.vue'\nimport PostStatusForm from '../post_status_form/post_status_form.vue'\nimport UserCard from '../user_card/user_card.vue'\nimport UserAvatar from '../user_avatar/user_avatar.vue'\nimport AvatarList from '../avatar_list/avatar_list.vue'\nimport Timeago from '../timeago/timeago.vue'\nimport StatusContent from '../status_content/status_content.vue'\nimport StatusPopover from '../status_popover/status_popover.vue'\nimport EmojiReactions from '../emoji_reactions/emoji_reactions.vue'\nimport generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\nimport { highlightClass, highlightStyle } from '../../services/user_highlighter/user_highlighter.js'\nimport { filter, unescape, uniqBy } from 'lodash'\nimport { mapGetters, mapState } from 'vuex'\n\nconst Status = {\n name: 'Status',\n props: [\n 'statusoid',\n 'expandable',\n 'inConversation',\n 'focused',\n 'highlight',\n 'compact',\n 'replies',\n 'isPreview',\n 'noHeading',\n 'inlineExpanded',\n 'showPinned',\n 'inProfile',\n 'profileUserId'\n ],\n data () {\n return {\n replying: false,\n unmuted: false,\n userExpanded: false,\n error: null\n }\n },\n computed: {\n muteWords () {\n return this.mergedConfig.muteWords\n },\n repeaterClass () {\n const user = this.statusoid.user\n return highlightClass(user)\n },\n userClass () {\n const user = this.retweet ? (this.statusoid.retweeted_status.user) : this.statusoid.user\n return highlightClass(user)\n },\n deleted () {\n return this.statusoid.deleted\n },\n repeaterStyle () {\n const user = this.statusoid.user\n const highlight = this.mergedConfig.highlight\n return highlightStyle(highlight[user.screen_name])\n },\n userStyle () {\n if (this.noHeading) return\n const user = this.retweet ? (this.statusoid.retweeted_status.user) : this.statusoid.user\n const highlight = this.mergedConfig.highlight\n return highlightStyle(highlight[user.screen_name])\n },\n userProfileLink () {\n return this.generateUserProfileLink(this.status.user.id, this.status.user.screen_name)\n },\n replyProfileLink () {\n if (this.isReply) {\n return this.generateUserProfileLink(this.status.in_reply_to_user_id, this.replyToName)\n }\n },\n retweet () { return !!this.statusoid.retweeted_status },\n retweeter () { return this.statusoid.user.name || this.statusoid.user.screen_name },\n retweeterHtml () { return this.statusoid.user.name_html },\n retweeterProfileLink () { return this.generateUserProfileLink(this.statusoid.user.id, this.statusoid.user.screen_name) },\n status () {\n if (this.retweet) {\n return this.statusoid.retweeted_status\n } else {\n return this.statusoid\n }\n },\n statusFromGlobalRepository () {\n // NOTE: Consider to replace status with statusFromGlobalRepository\n return this.$store.state.statuses.allStatusesObject[this.status.id]\n },\n loggedIn () {\n return !!this.currentUser\n },\n muteWordHits () {\n const statusText = this.status.text.toLowerCase()\n const statusSummary = this.status.summary.toLowerCase()\n const hits = filter(this.muteWords, (muteWord) => {\n return statusText.includes(muteWord.toLowerCase()) || statusSummary.includes(muteWord.toLowerCase())\n })\n\n return hits\n },\n muted () {\n const relationship = this.$store.getters.relationship(this.status.user.id)\n return !this.unmuted && (\n (!(this.inProfile && this.status.user.id === this.profileUserId) && relationship.muting) ||\n (!this.inConversation && this.status.thread_muted) ||\n this.muteWordHits.length > 0)\n },\n hideFilteredStatuses () {\n return this.mergedConfig.hideFilteredStatuses\n },\n hideStatus () {\n return (this.hideReply || this.deleted) || (this.muted && this.hideFilteredStatuses)\n },\n isFocused () {\n // retweet or root of an expanded conversation\n if (this.focused) {\n return true\n } else if (!this.inConversation) {\n return false\n }\n // use conversation highlight only when in conversation\n return this.status.id === this.highlight\n },\n isReply () {\n return !!(this.status.in_reply_to_status_id && this.status.in_reply_to_user_id)\n },\n replyToName () {\n if (this.status.in_reply_to_screen_name) {\n return this.status.in_reply_to_screen_name\n } else {\n const user = this.$store.getters.findUser(this.status.in_reply_to_user_id)\n return user && user.screen_name\n }\n },\n hideReply () {\n if (this.mergedConfig.replyVisibility === 'all') {\n return false\n }\n if (this.inConversation || !this.isReply) {\n return false\n }\n if (this.status.user.id === this.currentUser.id) {\n return false\n }\n if (this.status.type === 'retweet') {\n return false\n }\n const checkFollowing = this.mergedConfig.replyVisibility === 'following'\n for (var i = 0; i < this.status.attentions.length; ++i) {\n if (this.status.user.id === this.status.attentions[i].id) {\n continue\n }\n // There's zero guarantee of this working. If we happen to have that user and their\n // relationship in store then it will work, but there's kinda little chance of having\n // them for people you're not following.\n const relationship = this.$store.state.users.relationships[this.status.attentions[i].id]\n if (checkFollowing && relationship && relationship.following) {\n return false\n }\n if (this.status.attentions[i].id === this.currentUser.id) {\n return false\n }\n }\n return this.status.attentions.length > 0\n },\n replySubject () {\n if (!this.status.summary) return ''\n const decodedSummary = unescape(this.status.summary)\n const behavior = this.mergedConfig.subjectLineBehavior\n const startsWithRe = decodedSummary.match(/^re[: ]/i)\n if ((behavior !== 'noop' && startsWithRe) || behavior === 'masto') {\n return decodedSummary\n } else if (behavior === 'email') {\n return 're: '.concat(decodedSummary)\n } else if (behavior === 'noop') {\n return ''\n }\n },\n combinedFavsAndRepeatsUsers () {\n // Use the status from the global status repository since favs and repeats are saved in it\n const combinedUsers = [].concat(\n this.statusFromGlobalRepository.favoritedBy,\n this.statusFromGlobalRepository.rebloggedBy\n )\n return uniqBy(combinedUsers, 'id')\n },\n tags () {\n return this.status.tags.filter(tagObj => tagObj.hasOwnProperty('name')).map(tagObj => tagObj.name).join(' ')\n },\n hidePostStats () {\n return this.mergedConfig.hidePostStats\n },\n ...mapGetters(['mergedConfig']),\n ...mapState({\n betterShadow: state => state.interface.browserSupport.cssFilter,\n currentUser: state => state.users.currentUser\n })\n },\n components: {\n FavoriteButton,\n ReactButton,\n RetweetButton,\n ExtraButtons,\n PostStatusForm,\n UserCard,\n UserAvatar,\n AvatarList,\n Timeago,\n StatusPopover,\n EmojiReactions,\n StatusContent\n },\n methods: {\n visibilityIcon (visibility) {\n switch (visibility) {\n case 'private':\n return 'icon-lock'\n case 'unlisted':\n return 'icon-lock-open-alt'\n case 'direct':\n return 'icon-mail-alt'\n default:\n return 'icon-globe'\n }\n },\n showError (error) {\n this.error = error\n },\n clearError () {\n this.error = undefined\n },\n toggleReplying () {\n this.replying = !this.replying\n },\n gotoOriginal (id) {\n if (this.inConversation) {\n this.$emit('goto', id)\n }\n },\n toggleExpanded () {\n this.$emit('toggleExpanded')\n },\n toggleMute () {\n this.unmuted = !this.unmuted\n },\n toggleUserExpanded () {\n this.userExpanded = !this.userExpanded\n },\n generateUserProfileLink (id, name) {\n return generateProfileLink(id, name, this.$store.state.instance.restrictedNicknames)\n }\n },\n watch: {\n 'highlight': function (id) {\n if (this.status.id === id) {\n let rect = this.$el.getBoundingClientRect()\n if (rect.top < 100) {\n // Post is above screen, match its top to screen top\n window.scrollBy(0, rect.top - 100)\n } else if (rect.height >= (window.innerHeight - 50)) {\n // Post we want to see is taller than screen so match its top to screen top\n window.scrollBy(0, rect.top - 100)\n } else if (rect.bottom > window.innerHeight - 50) {\n // Post is below screen, match its bottom to screen bottom\n window.scrollBy(0, rect.bottom - window.innerHeight + 50)\n }\n }\n },\n 'status.repeat_num': function (num) {\n // refetch repeats when repeat_num is changed in any way\n if (this.isFocused && this.statusFromGlobalRepository.rebloggedBy && this.statusFromGlobalRepository.rebloggedBy.length !== num) {\n this.$store.dispatch('fetchRepeats', this.status.id)\n }\n },\n 'status.fave_num': function (num) {\n // refetch favs when fave_num is changed in any way\n if (this.isFocused && this.statusFromGlobalRepository.favoritedBy && this.statusFromGlobalRepository.favoritedBy.length !== num) {\n this.$store.dispatch('fetchFavs', this.status.id)\n }\n }\n },\n filters: {\n capitalize: function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n }\n }\n}\n\nexport default Status\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./status.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./status.js\"\nimport __vue_script__ from \"!!babel-loader!./status.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-2d68efa0\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./status.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.hideStatus)?_c('div',{staticClass:\"status-el\",class:[{ 'status-el_focused': _vm.isFocused }, { 'status-conversation': _vm.inlineExpanded }]},[(_vm.error)?_c('div',{staticClass:\"alert error\"},[_vm._v(\"\\n \"+_vm._s(_vm.error)+\"\\n \"),_c('i',{staticClass:\"button-icon icon-cancel\",on:{\"click\":_vm.clearError}})]):_vm._e(),_vm._v(\" \"),(_vm.muted && !_vm.isPreview)?[_c('div',{staticClass:\"media status container muted\"},[_c('small',[_c('router-link',{attrs:{\"to\":_vm.userProfileLink}},[_vm._v(\"\\n \"+_vm._s(_vm.status.user.screen_name)+\"\\n \")])],1),_vm._v(\" \"),_c('small',{staticClass:\"muteWords\"},[_vm._v(_vm._s(_vm.muteWordHits.join(', ')))]),_vm._v(\" \"),_c('a',{staticClass:\"unmute\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.toggleMute($event)}}},[_c('i',{staticClass:\"button-icon icon-eye-off\"})])])]:[(_vm.showPinned)?_c('div',{staticClass:\"status-pin\"},[_c('i',{staticClass:\"fa icon-pin faint\"}),_vm._v(\" \"),_c('span',{staticClass:\"faint\"},[_vm._v(_vm._s(_vm.$t('status.pinned')))])]):_vm._e(),_vm._v(\" \"),(_vm.retweet && !_vm.noHeading && !_vm.inConversation)?_c('div',{staticClass:\"media container retweet-info\",class:[_vm.repeaterClass, { highlighted: _vm.repeaterStyle }],style:([_vm.repeaterStyle])},[(_vm.retweet)?_c('UserAvatar',{staticClass:\"media-left\",attrs:{\"better-shadow\":_vm.betterShadow,\"user\":_vm.statusoid.user}}):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"media-body faint\"},[_c('span',{staticClass:\"user-name\"},[(_vm.retweeterHtml)?_c('router-link',{attrs:{\"to\":_vm.retweeterProfileLink},domProps:{\"innerHTML\":_vm._s(_vm.retweeterHtml)}}):_c('router-link',{attrs:{\"to\":_vm.retweeterProfileLink}},[_vm._v(_vm._s(_vm.retweeter))])],1),_vm._v(\" \"),_c('i',{staticClass:\"fa icon-retweet retweeted\",attrs:{\"title\":_vm.$t('tool_tip.repeat')}}),_vm._v(\"\\n \"+_vm._s(_vm.$t('timeline.repeated'))+\"\\n \")])],1):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"media status\",class:[_vm.userClass, { highlighted: _vm.userStyle, 'is-retweet': _vm.retweet && !_vm.inConversation }],style:([ _vm.userStyle ]),attrs:{\"data-tags\":_vm.tags}},[(!_vm.noHeading)?_c('div',{staticClass:\"media-left\"},[_c('router-link',{attrs:{\"to\":_vm.userProfileLink},nativeOn:{\"!click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.toggleUserExpanded($event)}}},[_c('UserAvatar',{attrs:{\"compact\":_vm.compact,\"better-shadow\":_vm.betterShadow,\"user\":_vm.status.user}})],1)],1):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"status-body\"},[(_vm.userExpanded)?_c('UserCard',{staticClass:\"status-usercard\",attrs:{\"user-id\":_vm.status.user.id,\"rounded\":true,\"bordered\":true}}):_vm._e(),_vm._v(\" \"),(!_vm.noHeading)?_c('div',{staticClass:\"media-heading\"},[_c('div',{staticClass:\"heading-name-row\"},[_c('div',{staticClass:\"name-and-account-name\"},[(_vm.status.user.name_html)?_c('h4',{staticClass:\"user-name\",domProps:{\"innerHTML\":_vm._s(_vm.status.user.name_html)}}):_c('h4',{staticClass:\"user-name\"},[_vm._v(\"\\n \"+_vm._s(_vm.status.user.name)+\"\\n \")]),_vm._v(\" \"),_c('router-link',{staticClass:\"account-name\",attrs:{\"to\":_vm.userProfileLink}},[_vm._v(\"\\n \"+_vm._s(_vm.status.user.screen_name)+\"\\n \")])],1),_vm._v(\" \"),_c('span',{staticClass:\"heading-right\"},[_c('router-link',{staticClass:\"timeago faint-link\",attrs:{\"to\":{ name: 'conversation', params: { id: _vm.status.id } }}},[_c('Timeago',{attrs:{\"time\":_vm.status.created_at,\"auto-update\":60}})],1),_vm._v(\" \"),(_vm.status.visibility)?_c('div',{staticClass:\"button-icon visibility-icon\"},[_c('i',{class:_vm.visibilityIcon(_vm.status.visibility),attrs:{\"title\":_vm._f(\"capitalize\")(_vm.status.visibility)}})]):_vm._e(),_vm._v(\" \"),(!_vm.status.is_local && !_vm.isPreview)?_c('a',{staticClass:\"source_url\",attrs:{\"href\":_vm.status.external_url,\"target\":\"_blank\",\"title\":\"Source\"}},[_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',{staticClass:\"reply-to-popover\",staticStyle:{\"min-width\":\"0\"},attrs:{\"status-id\":_vm.status.in_reply_to_status_id}},[_c('a',{staticClass:\"reply-to\",attrs:{\"href\":\"#\",\"aria-label\":_vm.$t('tool_tip.reply')},on:{\"click\":function($event){$event.preventDefault();_vm.gotoOriginal(_vm.status.in_reply_to_status_id)}}},[_c('i',{staticClass:\"button-icon icon-reply\"}),_vm._v(\" \"),_c('span',{staticClass:\"faint-link reply-to-text\"},[_vm._v(_vm._s(_vm.$t('status.reply_to')))])])]):_c('span',{staticClass:\"reply-to\"},[_c('span',{staticClass:\"reply-to-text\"},[_vm._v(_vm._s(_vm.$t('status.reply_to')))])]),_vm._v(\" \"),_c('router-link',{attrs:{\"to\":_vm.replyProfileLink}},[_vm._v(\"\\n \"+_vm._s(_vm.replyToName)+\"\\n \")]),_vm._v(\" \"),(_vm.replies && _vm.replies.length)?_c('span',{staticClass:\"faint replies-separator\"},[_vm._v(\"\\n -\\n \")]):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.inConversation && !_vm.isPreview && _vm.replies && _vm.replies.length)?_c('div',{staticClass:\"replies\"},[_c('span',{staticClass:\"faint\"},[_vm._v(_vm._s(_vm.$t('status.replies_list')))]),_vm._v(\" \"),_vm._l((_vm.replies),function(reply){return _c('StatusPopover',{key:reply.id,attrs:{\"status-id\":reply.id}},[_c('a',{staticClass:\"reply-link\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();_vm.gotoOriginal(reply.id)}}},[_vm._v(_vm._s(reply.name))])])})],2):_vm._e()])]):_vm._e(),_vm._v(\" \"),_c('StatusContent',{attrs:{\"status\":_vm.status,\"no-heading\":_vm.noHeading,\"highlight\":_vm.highlight,\"focused\":_vm.isFocused}}),_vm._v(\" \"),_c('transition',{attrs:{\"name\":\"fade\"}},[(!_vm.hidePostStats && _vm.isFocused && _vm.combinedFavsAndRepeatsUsers.length > 0)?_c('div',{staticClass:\"favs-repeated-users\"},[_c('div',{staticClass:\"stats\"},[(_vm.statusFromGlobalRepository.rebloggedBy && _vm.statusFromGlobalRepository.rebloggedBy.length > 0)?_c('div',{staticClass:\"stat-count\"},[_c('a',{staticClass:\"stat-title\"},[_vm._v(_vm._s(_vm.$t('status.repeats')))]),_vm._v(\" \"),_c('div',{staticClass:\"stat-number\"},[_vm._v(\"\\n \"+_vm._s(_vm.statusFromGlobalRepository.rebloggedBy.length)+\"\\n \")])]):_vm._e(),_vm._v(\" \"),(_vm.statusFromGlobalRepository.favoritedBy && _vm.statusFromGlobalRepository.favoritedBy.length > 0)?_c('div',{staticClass:\"stat-count\"},[_c('a',{staticClass:\"stat-title\"},[_vm._v(_vm._s(_vm.$t('status.favorites')))]),_vm._v(\" \"),_c('div',{staticClass:\"stat-number\"},[_vm._v(\"\\n \"+_vm._s(_vm.statusFromGlobalRepository.favoritedBy.length)+\"\\n \")])]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"avatar-row\"},[_c('AvatarList',{attrs:{\"users\":_vm.combinedFavsAndRepeatsUsers}})],1)])]):_vm._e()]),_vm._v(\" \"),((_vm.mergedConfig.emojiReactionsOnTimeline || _vm.isFocused) && (!_vm.noHeading && !_vm.isPreview))?_c('EmojiReactions',{attrs:{\"status\":_vm.status}}):_vm._e(),_vm._v(\" \"),(!_vm.noHeading && !_vm.isPreview)?_c('div',{staticClass:\"status-actions media-body\"},[_c('div',[(_vm.loggedIn)?_c('i',{staticClass:\"button-icon icon-reply\",class:{'button-icon-active': _vm.replying},attrs:{\"title\":_vm.$t('tool_tip.reply')},on:{\"click\":function($event){$event.preventDefault();return _vm.toggleReplying($event)}}}):_c('i',{staticClass:\"button-icon button-icon-disabled icon-reply\",attrs:{\"title\":_vm.$t('tool_tip.reply')}}),_vm._v(\" \"),(_vm.status.replies_count > 0)?_c('span',[_vm._v(_vm._s(_vm.status.replies_count))]):_vm._e()]),_vm._v(\" \"),_c('retweet-button',{attrs:{\"visibility\":_vm.status.visibility,\"logged-in\":_vm.loggedIn,\"status\":_vm.status}}),_vm._v(\" \"),_c('favorite-button',{attrs:{\"logged-in\":_vm.loggedIn,\"status\":_vm.status}}),_vm._v(\" \"),(_vm.loggedIn)?_c('ReactButton',{attrs:{\"status\":_vm.status}}):_vm._e(),_vm._v(\" \"),_c('extra-buttons',{attrs:{\"status\":_vm.status},on:{\"onError\":_vm.showError,\"onSuccess\":_vm.clearError}})],1):_vm._e()],1)]),_vm._v(\" \"),(_vm.replying)?_c('div',{staticClass:\"container\"},[_c('PostStatusForm',{staticClass:\"reply-body\",attrs:{\"reply-to\":_vm.status.id,\"attentions\":_vm.status.attentions,\"replied-user\":_vm.status.user,\"copy-message-scope\":_vm.status.visibility,\"subject\":_vm.replySubject},on:{\"posted\":_vm.toggleReplying}})],1):_vm._e()]],2):_vm._e()}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","\nconst Popover = {\n name: 'Popover',\n props: {\n // Action to trigger popover: either 'hover' or 'click'\n trigger: String,\n // Either 'top' or 'bottom'\n placement: String,\n // Takes object with properties 'x' and 'y', values of these can be\n // 'container' for using offsetParent as boundaries for either axis\n // or 'viewport'\n boundTo: Object,\n // Takes a top/bottom/left/right object, how much space to leave\n // between boundary and popover element\n margin: Object,\n // Takes a x/y object and tells how many pixels to offset from\n // anchor point on either axis\n offset: Object,\n // Additional styles you may want for the popover container\n popoverClass: String\n },\n data () {\n return {\n hidden: true,\n styles: { opacity: 0 },\n oldSize: { width: 0, height: 0 }\n }\n },\n methods: {\n updateStyles () {\n if (this.hidden) {\n this.styles = {\n opacity: 0\n }\n return\n }\n\n // Popover will be anchored around this element, trigger ref is the container, so\n // its children are what are inside the slot. Expect only one slot=\"trigger\".\n const anchorEl = (this.$refs.trigger && this.$refs.trigger.children[0]) || this.$el\n const screenBox = anchorEl.getBoundingClientRect()\n // Screen position of the origin point for popover\n const origin = { x: screenBox.left + screenBox.width * 0.5, y: screenBox.top }\n const content = this.$refs.content\n // Minor optimization, don't call a slow reflow call if we don't have to\n const parentBounds = this.boundTo &&\n (this.boundTo.x === 'container' || this.boundTo.y === 'container') &&\n this.$el.offsetParent.getBoundingClientRect()\n const margin = this.margin || {}\n\n // What are the screen bounds for the popover? Viewport vs container\n // when using viewport, using default margin values to dodge the navbar\n const xBounds = this.boundTo && this.boundTo.x === 'container' ? {\n min: parentBounds.left + (margin.left || 0),\n max: parentBounds.right - (margin.right || 0)\n } : {\n min: 0 + (margin.left || 10),\n max: window.innerWidth - (margin.right || 10)\n }\n\n const yBounds = this.boundTo && this.boundTo.y === 'container' ? {\n min: parentBounds.top + (margin.top || 0),\n max: parentBounds.bottom - (margin.bottom || 0)\n } : {\n min: 0 + (margin.top || 50),\n max: window.innerHeight - (margin.bottom || 5)\n }\n\n let horizOffset = 0\n\n // If overflowing from left, move it so that it doesn't\n if ((origin.x - content.offsetWidth * 0.5) < xBounds.min) {\n horizOffset += -(origin.x - content.offsetWidth * 0.5) + xBounds.min\n }\n\n // If overflowing from right, move it so that it doesn't\n if ((origin.x + horizOffset + content.offsetWidth * 0.5) > xBounds.max) {\n horizOffset -= (origin.x + horizOffset + content.offsetWidth * 0.5) - xBounds.max\n }\n\n // Default to whatever user wished with placement prop\n let usingTop = this.placement !== 'bottom'\n\n // Handle special cases, first force to displaying on top if there's not space on bottom,\n // regardless of what placement value was. Then check if there's not space on top, and\n // force to bottom, again regardless of what placement value was.\n if (origin.y + content.offsetHeight > yBounds.max) usingTop = true\n if (origin.y - content.offsetHeight < yBounds.min) usingTop = false\n\n const yOffset = (this.offset && this.offset.y) || 0\n const translateY = usingTop\n ? -anchorEl.offsetHeight - yOffset - content.offsetHeight\n : yOffset\n\n const xOffset = (this.offset && this.offset.x) || 0\n const translateX = (anchorEl.offsetWidth * 0.5) - content.offsetWidth * 0.5 + horizOffset + xOffset\n\n // Note, separate translateX and translateY avoids blurry text on chromium,\n // single translate or translate3d resulted in blurry text.\n this.styles = {\n opacity: 1,\n transform: `translateX(${Math.floor(translateX)}px) translateY(${Math.floor(translateY)}px)`\n }\n },\n showPopover () {\n if (this.hidden) this.$emit('show')\n this.hidden = false\n this.$nextTick(this.updateStyles)\n },\n hidePopover () {\n if (!this.hidden) this.$emit('close')\n this.hidden = true\n this.styles = { opacity: 0 }\n },\n onMouseenter (e) {\n if (this.trigger === 'hover') this.showPopover()\n },\n onMouseleave (e) {\n if (this.trigger === 'hover') this.hidePopover()\n },\n onClick (e) {\n if (this.trigger === 'click') {\n if (this.hidden) {\n this.showPopover()\n } else {\n this.hidePopover()\n }\n }\n },\n onClickOutside (e) {\n if (this.hidden) return\n if (this.$el.contains(e.target)) return\n this.hidePopover()\n }\n },\n updated () {\n // Monitor changes to content size, update styles only when content sizes have changed,\n // that should be the only time we need to move the popover box if we don't care about scroll\n // or resize\n const content = this.$refs.content\n if (!content) return\n if (this.oldSize.width !== content.offsetWidth || this.oldSize.height !== content.offsetHeight) {\n this.updateStyles()\n this.oldSize = { width: content.offsetWidth, height: content.offsetHeight }\n }\n },\n created () {\n document.addEventListener('click', this.onClickOutside)\n },\n destroyed () {\n document.removeEventListener('click', this.onClickOutside)\n this.hidePopover()\n }\n}\n\nexport default Popover\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./popover.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./popover.js\"\nimport __vue_script__ from \"!!babel-loader!./popover.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-10f1984d\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./popover.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{on:{\"mouseenter\":_vm.onMouseenter,\"mouseleave\":_vm.onMouseleave}},[_c('div',{ref:\"trigger\",on:{\"click\":_vm.onClick}},[_vm._t(\"trigger\")],2),_vm._v(\" \"),(!_vm.hidden)?_c('div',{ref:\"content\",staticClass:\"popover\",class:_vm.popoverClass,style:(_vm.styles)},[_vm._t(\"content\",null,{close:_vm.hidePopover})],2):_vm._e()])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","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","<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 }","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 }","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().match(noPrefix))\n .sort((a, b) => {\n let aScore = 0\n let bScore = 0\n\n // An exact match always wins\n aScore += a.displayText.toLowerCase() === noPrefix ? 200 : 0\n bScore += b.displayText.toLowerCase() === noPrefix ? 200 : 0\n\n // Prioritize custom emoji a lot\n aScore += a.imageUrl ? 100 : 0\n bScore += b.imageUrl ? 100 : 0\n\n // Prioritize prefix matches somewhat\n aScore += a.displayText.toLowerCase().startsWith(noPrefix) ? 10 : 0\n bScore += b.displayText.toLowerCase().startsWith(noPrefix) ? 10 : 0\n\n // Sort by length\n aScore -= a.displayText.length\n bScore -= b.displayText.length\n\n // Break ties alphabetically\n const alphabetically = a.displayText > b.displayText ? 0.5 : -0.5\n\n return bScore - aScore + alphabetically\n })\n}\n\nexport const suggestUsers = data => input => {\n const noPrefix = input.toLowerCase().substr(1)\n const users = data.users\n\n const newUsers = users.filter(\n user =>\n user.screen_name.toLowerCase().startsWith(noPrefix) ||\n user.name.toLowerCase().startsWith(noPrefix)\n\n /* taking only 20 results so that sorting is a bit cheaper, we display\n * only 5 anyway. could be inaccurate, but we ideally we should query\n * backend anyway\n */\n ).slice(0, 20).sort((a, b) => {\n let aScore = 0\n let bScore = 0\n\n // Matches on screen name (i.e. user@instance) makes a priority\n aScore += a.screen_name.toLowerCase().startsWith(noPrefix) ? 2 : 0\n bScore += b.screen_name.toLowerCase().startsWith(noPrefix) ? 2 : 0\n\n // Matches on name takes second priority\n aScore += a.name.toLowerCase().startsWith(noPrefix) ? 1 : 0\n bScore += b.name.toLowerCase().startsWith(noPrefix) ? 1 : 0\n\n const diff = (bScore - aScore) * 10\n\n // Then sort alphabetically\n const nameAlphabetically = a.name > b.name ? 1 : -1\n const screenNameAlphabetically = a.screen_name > b.screen_name ? 1 : -1\n\n return diff + nameAlphabetically + screenNameAlphabetically\n /* eslint-disable camelcase */\n }).map(({ screen_name, name, profile_image_url_original }) => ({\n displayText: screen_name,\n detailText: name,\n imageUrl: profile_image_url_original,\n replacement: '@' + screen_name + ' '\n }))\n\n // BE search users if there are no matches\n if (newUsers.length === 0 && data.updateUsersList) {\n debounceUserSearch(data, noPrefix)\n }\n return newUsers\n /* eslint-enable camelcase */\n}\n","import { map } from 'lodash'\nimport apiService from '../api/api.service.js'\n\nconst postStatus = ({ store, status, spoilerText, visibility, sensitive, poll, media = [], inReplyToStatusId = undefined, contentType = 'text/plain' }) => {\n const mediaIds = map(media, 'id')\n\n return apiService.postStatus({\n credentials: store.state.users.currentUser.credentials,\n status,\n spoilerText,\n visibility,\n sensitive,\n mediaIds,\n inReplyToStatusId,\n contentType,\n poll })\n .then((data) => {\n if (!data.error) {\n store.dispatch('addNewStatuses', {\n statuses: [data],\n timeline: 'friends',\n showImmediately: true,\n noIdUpdate: true // To prevent missing notices on next pull.\n })\n }\n return data\n })\n .catch((err) => {\n return {\n error: err.message\n }\n })\n}\n\nconst uploadMedia = ({ store, formData }) => {\n const credentials = store.state.users.currentUser.credentials\n\n return apiService.uploadMedia({ credentials, formData })\n}\n\nconst statusPosterService = {\n postStatus,\n uploadMedia\n}\n\nexport default statusPosterService\n","export const findOffset = (child, parent, { top = 0, left = 0 } = {}, ignorePadding = true) => {\n const result = {\n top: top + child.offsetTop,\n left: left + child.offsetLeft\n }\n if (!ignorePadding && child !== window) {\n const { topPadding, leftPadding } = findPadding(child)\n result.top += ignorePadding ? 0 : topPadding\n result.left += ignorePadding ? 0 : leftPadding\n }\n\n if (child.offsetParent && (parent === window || parent.contains(child.offsetParent) || parent === child.offsetParent)) {\n return findOffset(child.offsetParent, parent, result, false)\n } else {\n if (parent !== window) {\n const { topPadding, leftPadding } = findPadding(parent)\n result.top += topPadding\n result.left += leftPadding\n }\n return result\n }\n}\n\nconst findPadding = (el) => {\n const topPaddingStr = window.getComputedStyle(el)['padding-top']\n const topPadding = Number(topPaddingStr.substring(0, topPaddingStr.length - 2))\n const leftPaddingStr = window.getComputedStyle(el)['padding-left']\n const leftPadding = Number(leftPaddingStr.substring(0, leftPaddingStr.length - 2))\n\n return { topPadding, leftPadding }\n}\n","import { reduce, find } from 'lodash'\n\nexport const replaceWord = (str, toReplace, replacement) => {\n return str.slice(0, toReplace.start) + replacement + str.slice(toReplace.end)\n}\n\nexport const wordAtPosition = (str, pos) => {\n const words = splitIntoWords(str)\n const wordsWithPosition = addPositionToWords(words)\n\n return find(wordsWithPosition, ({ start, end }) => start <= pos && end > pos)\n}\n\nexport const addPositionToWords = (words) => {\n return reduce(words, (result, word) => {\n const data = {\n word,\n start: 0,\n end: word.length\n }\n\n if (result.length > 0) {\n const previous = result.pop()\n\n data.start += previous.end\n data.end += previous.end\n\n result.push(previous)\n }\n\n result.push(data)\n\n return result\n }, [])\n}\n\nexport const splitIntoWords = (str) => {\n // Split at word boundaries\n const regex = /\\b/\n const triggers = /[@#:]+$/\n\n let split = str.split(regex)\n\n // Add trailing @ and # to the following word.\n const words = reduce(split, (result, word) => {\n if (result.length > 0) {\n let previous = result.pop()\n const matches = previous.match(triggers)\n if (matches) {\n previous = previous.replace(triggers, '')\n word = matches[0] + word\n }\n result.push(previous)\n }\n result.push(word)\n\n return result\n }, [])\n\n return words\n}\n\nconst completion = {\n wordAtPosition,\n addPositionToWords,\n splitIntoWords,\n replaceWord\n}\n\nexport default completion\n","import Checkbox from '../checkbox/checkbox.vue'\n\n// At widest, approximately 20 emoji are visible in a row,\n// loading 3 rows, could be overkill for narrow picker\nconst LOAD_EMOJI_BY = 60\n\n// When to start loading new batch emoji, in pixels\nconst LOAD_EMOJI_MARGIN = 64\n\nconst filterByKeyword = (list, keyword = '') => {\n return list.filter(x => x.displayText.includes(keyword))\n}\n\nconst EmojiPicker = {\n props: {\n enableStickerPicker: {\n required: false,\n type: Boolean,\n default: false\n }\n },\n data () {\n return {\n keyword: '',\n activeGroup: 'custom',\n showingStickers: false,\n groupsScrolledClass: 'scrolled-top',\n keepOpen: false,\n customEmojiBufferSlice: LOAD_EMOJI_BY,\n customEmojiTimeout: null,\n customEmojiLoadAllConfirmed: false\n }\n },\n components: {\n StickerPicker: () => import('../sticker_picker/sticker_picker.vue'),\n Checkbox\n },\n methods: {\n onStickerUploaded (e) {\n this.$emit('sticker-uploaded', e)\n },\n onStickerUploadFailed (e) {\n this.$emit('sticker-upload-failed', e)\n },\n onEmoji (emoji) {\n const value = emoji.imageUrl ? `:${emoji.displayText}:` : emoji.replacement\n this.$emit('emoji', { insertion: value, keepOpen: this.keepOpen })\n },\n onScroll (e) {\n const target = (e && e.target) || this.$refs['emoji-groups']\n this.updateScrolledClass(target)\n this.scrolledGroup(target)\n this.triggerLoadMore(target)\n },\n highlight (key) {\n const ref = this.$refs['group-' + key]\n const top = ref[0].offsetTop\n this.setShowStickers(false)\n this.activeGroup = key\n this.$nextTick(() => {\n this.$refs['emoji-groups'].scrollTop = top + 1\n })\n },\n updateScrolledClass (target) {\n if (target.scrollTop <= 5) {\n this.groupsScrolledClass = 'scrolled-top'\n } else if (target.scrollTop >= target.scrollTopMax - 5) {\n this.groupsScrolledClass = 'scrolled-bottom'\n } else {\n this.groupsScrolledClass = 'scrolled-middle'\n }\n },\n triggerLoadMore (target) {\n const ref = this.$refs['group-end-custom'][0]\n if (!ref) return\n const bottom = ref.offsetTop + ref.offsetHeight\n\n const scrollerBottom = target.scrollTop + target.clientHeight\n const scrollerTop = target.scrollTop\n const scrollerMax = target.scrollHeight\n\n // Loads more emoji when they come into view\n const approachingBottom = bottom - scrollerBottom < LOAD_EMOJI_MARGIN\n // Always load when at the very top in case there's no scroll space yet\n const atTop = scrollerTop < 5\n // Don't load when looking at unicode category or at the very bottom\n const bottomAboveViewport = bottom < scrollerTop || scrollerBottom === scrollerMax\n if (!bottomAboveViewport && (approachingBottom || atTop)) {\n this.loadEmoji()\n }\n },\n scrolledGroup (target) {\n const top = target.scrollTop + 5\n this.$nextTick(() => {\n this.emojisView.forEach(group => {\n const ref = this.$refs['group-' + group.id]\n if (ref[0].offsetTop <= top) {\n this.activeGroup = group.id\n }\n })\n })\n },\n loadEmoji () {\n const allLoaded = this.customEmojiBuffer.length === this.filteredEmoji.length\n\n if (allLoaded) {\n return\n }\n\n this.customEmojiBufferSlice += LOAD_EMOJI_BY\n },\n startEmojiLoad (forceUpdate = false) {\n if (!forceUpdate) {\n this.keyword = ''\n }\n this.$nextTick(() => {\n this.$refs['emoji-groups'].scrollTop = 0\n })\n const bufferSize = this.customEmojiBuffer.length\n const bufferPrefilledAll = bufferSize === this.filteredEmoji.length\n if (bufferPrefilledAll && !forceUpdate) {\n return\n }\n this.customEmojiBufferSlice = LOAD_EMOJI_BY\n },\n toggleStickers () {\n this.showingStickers = !this.showingStickers\n },\n setShowStickers (value) {\n this.showingStickers = value\n }\n },\n watch: {\n keyword () {\n this.customEmojiLoadAllConfirmed = false\n this.onScroll()\n this.startEmojiLoad(true)\n }\n },\n computed: {\n activeGroupView () {\n return this.showingStickers ? '' : this.activeGroup\n },\n stickersAvailable () {\n if (this.$store.state.instance.stickers) {\n return this.$store.state.instance.stickers.length > 0\n }\n return 0\n },\n filteredEmoji () {\n return filterByKeyword(\n this.$store.state.instance.customEmoji || [],\n this.keyword\n )\n },\n customEmojiBuffer () {\n return this.filteredEmoji.slice(0, this.customEmojiBufferSlice)\n },\n emojis () {\n const standardEmojis = this.$store.state.instance.emoji || []\n const customEmojis = this.customEmojiBuffer\n\n return [\n {\n id: 'custom',\n text: this.$t('emoji.custom'),\n icon: 'icon-smile',\n emojis: customEmojis\n },\n {\n id: 'standard',\n text: this.$t('emoji.unicode'),\n icon: 'icon-picture',\n emojis: filterByKeyword(standardEmojis, this.keyword)\n }\n ]\n },\n emojisView () {\n return this.emojis.filter(value => value.emojis.length > 0)\n },\n stickerPickerEnabled () {\n return (this.$store.state.instance.stickers || []).length !== 0\n }\n }\n}\n\nexport default EmojiPicker\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!./emoji_picker.scss\")\n}\n/* script */\nexport * from \"!!babel-loader!./emoji_picker.js\"\nimport __vue_script__ from \"!!babel-loader!./emoji_picker.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-47d21b3b\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./emoji_picker.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"emoji-picker panel panel-default panel-body\"},[_c('div',{staticClass:\"heading\"},[_c('span',{staticClass:\"emoji-tabs\"},_vm._l((_vm.emojis),function(group){return _c('span',{key:group.id,staticClass:\"emoji-tabs-item\",class:{\n active: _vm.activeGroupView === group.id,\n disabled: group.emojis.length === 0\n },attrs:{\"title\":group.text},on:{\"click\":function($event){$event.preventDefault();_vm.highlight(group.id)}}},[_c('i',{class:group.icon})])}),0),_vm._v(\" \"),(_vm.stickerPickerEnabled)?_c('span',{staticClass:\"additional-tabs\"},[_c('span',{staticClass:\"stickers-tab-icon additional-tabs-item\",class:{active: _vm.showingStickers},attrs:{\"title\":_vm.$t('emoji.stickers')},on:{\"click\":function($event){$event.preventDefault();return _vm.toggleStickers($event)}}},[_c('i',{staticClass:\"icon-star\"})])]):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"content\"},[_c('div',{staticClass:\"emoji-content\",class:{hidden: _vm.showingStickers}},[_c('div',{staticClass:\"emoji-search\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.keyword),expression:\"keyword\"}],staticClass:\"form-control\",attrs:{\"type\":\"text\",\"placeholder\":_vm.$t('emoji.search_emoji')},domProps:{\"value\":(_vm.keyword)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.keyword=$event.target.value}}})]),_vm._v(\" \"),_c('div',{ref:\"emoji-groups\",staticClass:\"emoji-groups\",class:_vm.groupsScrolledClass,on:{\"scroll\":_vm.onScroll}},_vm._l((_vm.emojisView),function(group){return _c('div',{key:group.id,staticClass:\"emoji-group\"},[_c('h6',{ref:'group-' + group.id,refInFor:true,staticClass:\"emoji-group-title\"},[_vm._v(\"\\n \"+_vm._s(group.text)+\"\\n \")]),_vm._v(\" \"),_vm._l((group.emojis),function(emoji){return _c('span',{key:group.id + emoji.displayText,staticClass:\"emoji-item\",attrs:{\"title\":emoji.displayText},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();_vm.onEmoji(emoji)}}},[(!emoji.imageUrl)?_c('span',[_vm._v(_vm._s(emoji.replacement))]):_c('img',{attrs:{\"src\":emoji.imageUrl}})])}),_vm._v(\" \"),_c('span',{ref:'group-end-' + group.id,refInFor:true})],2)}),0),_vm._v(\" \"),_c('div',{staticClass:\"keep-open\"},[_c('Checkbox',{model:{value:(_vm.keepOpen),callback:function ($$v) {_vm.keepOpen=$$v},expression:\"keepOpen\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('emoji.keep_open'))+\"\\n \")])],1)]),_vm._v(\" \"),(_vm.showingStickers)?_c('div',{staticClass:\"stickers-content\"},[_c('sticker-picker',{on:{\"uploaded\":_vm.onStickerUploaded,\"upload-failed\":_vm.onStickerUploadFailed}})],1):_vm._e()])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import Completion from '../../services/completion/completion.js'\nimport EmojiPicker from '../emoji_picker/emoji_picker.vue'\nimport { take } from 'lodash'\nimport { findOffset } from '../../services/offset_finder/offset_finder.service.js'\n\n/**\n * EmojiInput - augmented inputs for emoji and autocomplete support in inputs\n * without having to give up the comfort of <input/> and <textarea/> elements\n *\n * Intended usage is:\n * <EmojiInput v-model=\"something\">\n * <input v-model=\"something\"/>\n * </EmojiInput>\n *\n * Works only with <input> and <textarea>. Intended to use with only one nested\n * input. It will find first input or textarea and work with that, multiple\n * nested children not tested. You HAVE TO duplicate v-model for both\n * <emoji-input> and <input>/<textarea> otherwise it will not work.\n *\n * Be prepared for CSS troubles though because it still wraps component in a div\n * while TRYING to make it look like nothing happened, but it could break stuff.\n */\n\nconst EmojiInput = {\n props: {\n suggest: {\n /**\n * suggest: function (input: String) => Suggestion[]\n *\n * Function that takes input string which takes string (textAtCaret)\n * and returns an array of Suggestions\n *\n * Suggestion is an object containing following properties:\n * displayText: string. Main display text, what actual suggestion\n * represents (user's screen name/emoji shortcode)\n * replacement: string. Text that should replace the textAtCaret\n * detailText: string, optional. Subtitle text, providing additional info\n * if present (user's nickname)\n * imageUrl: string, optional. Image to display alongside with suggestion,\n * currently if no image is provided, replacement will be used (for\n * unicode emojis)\n *\n * TODO: make it asynchronous when adding proper server-provided user\n * suggestions\n *\n * For commonly used suggestors (emoji, users, both) use suggestor.js\n */\n required: true,\n type: Function\n },\n value: {\n /**\n * Used for v-model\n */\n required: true,\n type: String\n },\n enableEmojiPicker: {\n /**\n * Enables emoji picker support, this implies that custom emoji are supported\n */\n required: false,\n type: Boolean,\n default: false\n },\n hideEmojiButton: {\n /**\n * intended to use with external picker trigger, i.e. you have a button outside\n * input that will open up the picker, see triggerShowPicker()\n */\n required: false,\n type: Boolean,\n default: false\n },\n enableStickerPicker: {\n /**\n * Enables sticker picker support, only makes sense when enableEmojiPicker=true\n */\n required: false,\n type: Boolean,\n default: false\n }\n },\n data () {\n return {\n input: undefined,\n highlighted: 0,\n caret: 0,\n focused: false,\n blurTimeout: null,\n showPicker: false,\n temporarilyHideSuggestions: false,\n keepOpen: false,\n disableClickOutside: false\n }\n },\n components: {\n EmojiPicker\n },\n computed: {\n padEmoji () {\n return this.$store.getters.mergedConfig.padEmoji\n },\n suggestions () {\n const firstchar = this.textAtCaret.charAt(0)\n if (this.textAtCaret === firstchar) { return [] }\n const matchedSuggestions = this.suggest(this.textAtCaret)\n if (matchedSuggestions.length <= 0) {\n return []\n }\n return take(matchedSuggestions, 5)\n .map(({ imageUrl, ...rest }, index) => ({\n ...rest,\n // eslint-disable-next-line camelcase\n img: imageUrl || '',\n highlighted: index === this.highlighted\n }))\n },\n showSuggestions () {\n return this.focused &&\n this.suggestions &&\n this.suggestions.length > 0 &&\n !this.showPicker &&\n !this.temporarilyHideSuggestions\n },\n textAtCaret () {\n return (this.wordAtCaret || {}).word || ''\n },\n wordAtCaret () {\n if (this.value && this.caret) {\n const word = Completion.wordAtPosition(this.value, this.caret - 1) || {}\n return word\n }\n }\n },\n mounted () {\n const slots = this.$slots.default\n if (!slots || slots.length === 0) return\n const input = slots.find(slot => ['input', 'textarea'].includes(slot.tag))\n if (!input) return\n this.input = input\n this.resize()\n input.elm.addEventListener('blur', this.onBlur)\n input.elm.addEventListener('focus', this.onFocus)\n input.elm.addEventListener('paste', this.onPaste)\n input.elm.addEventListener('keyup', this.onKeyUp)\n input.elm.addEventListener('keydown', this.onKeyDown)\n input.elm.addEventListener('click', this.onClickInput)\n input.elm.addEventListener('transitionend', this.onTransition)\n input.elm.addEventListener('input', this.onInput)\n },\n unmounted () {\n const { input } = this\n if (input) {\n input.elm.removeEventListener('blur', this.onBlur)\n input.elm.removeEventListener('focus', this.onFocus)\n input.elm.removeEventListener('paste', this.onPaste)\n input.elm.removeEventListener('keyup', this.onKeyUp)\n input.elm.removeEventListener('keydown', this.onKeyDown)\n input.elm.removeEventListener('click', this.onClickInput)\n input.elm.removeEventListener('transitionend', this.onTransition)\n input.elm.removeEventListener('input', this.onInput)\n }\n },\n methods: {\n triggerShowPicker () {\n this.showPicker = true\n this.$refs.picker.startEmojiLoad()\n this.$nextTick(() => {\n this.scrollIntoView()\n })\n // This temporarily disables \"click outside\" handler\n // since external trigger also means click originates\n // from outside, thus preventing picker from opening\n this.disableClickOutside = true\n setTimeout(() => {\n this.disableClickOutside = false\n }, 0)\n },\n togglePicker () {\n this.input.elm.focus()\n this.showPicker = !this.showPicker\n if (this.showPicker) {\n this.scrollIntoView()\n this.$refs.picker.startEmojiLoad()\n }\n },\n replace (replacement) {\n const newValue = Completion.replaceWord(this.value, this.wordAtCaret, replacement)\n this.$emit('input', newValue)\n this.caret = 0\n },\n insert ({ insertion, keepOpen }) {\n const before = this.value.substring(0, this.caret) || ''\n const after = this.value.substring(this.caret) || ''\n\n /* Using a bit more smart approach to padding emojis with spaces:\n * - put a space before cursor if there isn't one already, unless we\n * are at the beginning of post or in spam mode\n * - put a space after emoji if there isn't one already unless we are\n * in spam mode\n *\n * The idea is that when you put a cursor somewhere in between sentence\n * inserting just ' :emoji: ' will add more spaces to post which might\n * break the flow/spacing, as well as the case where user ends sentence\n * with a space before adding emoji.\n *\n * Spam mode is intended for creating multi-part emojis and overall spamming\n * them, masto seem to be rendering :emoji::emoji: correctly now so why not\n */\n const isSpaceRegex = /\\s/\n const spaceBefore = !isSpaceRegex.exec(before.slice(-1)) && before.length && this.padEmoji > 0 ? ' ' : ''\n const spaceAfter = !isSpaceRegex.exec(after[0]) && this.padEmoji ? ' ' : ''\n\n const newValue = [\n before,\n spaceBefore,\n insertion,\n spaceAfter,\n after\n ].join('')\n this.keepOpen = keepOpen\n this.$emit('input', newValue)\n const position = this.caret + (insertion + spaceAfter + spaceBefore).length\n if (!keepOpen) {\n this.input.elm.focus()\n }\n\n this.$nextTick(function () {\n // Re-focus inputbox after clicking suggestion\n // Set selection right after the replacement instead of the very end\n this.input.elm.setSelectionRange(position, position)\n this.caret = position\n })\n },\n replaceText (e, suggestion) {\n const len = this.suggestions.length || 0\n if (this.textAtCaret.length === 1) { return }\n if (len > 0 || suggestion) {\n const chosenSuggestion = suggestion || this.suggestions[this.highlighted]\n const replacement = chosenSuggestion.replacement\n const newValue = Completion.replaceWord(this.value, this.wordAtCaret, replacement)\n this.$emit('input', newValue)\n this.highlighted = 0\n const position = this.wordAtCaret.start + replacement.length\n\n this.$nextTick(function () {\n // Re-focus inputbox after clicking suggestion\n this.input.elm.focus()\n // Set selection right after the replacement instead of the very end\n this.input.elm.setSelectionRange(position, position)\n this.caret = position\n })\n e.preventDefault()\n }\n },\n cycleBackward (e) {\n const len = this.suggestions.length || 0\n if (len > 1) {\n this.highlighted -= 1\n if (this.highlighted < 0) {\n this.highlighted = this.suggestions.length - 1\n }\n e.preventDefault()\n } else {\n this.highlighted = 0\n }\n },\n cycleForward (e) {\n const len = this.suggestions.length || 0\n if (len > 1) {\n this.highlighted += 1\n if (this.highlighted >= len) {\n this.highlighted = 0\n }\n e.preventDefault()\n } else {\n this.highlighted = 0\n }\n },\n scrollIntoView () {\n const rootRef = this.$refs['picker'].$el\n /* Scroller is either `window` (replies in TL), sidebar (main post form,\n * replies in notifs) or mobile post form. Note that getting and setting\n * scroll is different for `Window` and `Element`s\n */\n const scrollerRef = this.$el.closest('.sidebar-scroller') ||\n this.$el.closest('.post-form-modal-view') ||\n window\n const currentScroll = scrollerRef === window\n ? scrollerRef.scrollY\n : scrollerRef.scrollTop\n const scrollerHeight = scrollerRef === window\n ? scrollerRef.innerHeight\n : scrollerRef.offsetHeight\n\n const scrollerBottomBorder = currentScroll + scrollerHeight\n // We check where the bottom border of root element is, this uses findOffset\n // to find offset relative to scrollable container (scroller)\n const rootBottomBorder = rootRef.offsetHeight + findOffset(rootRef, scrollerRef).top\n\n const bottomDelta = Math.max(0, rootBottomBorder - scrollerBottomBorder)\n // could also check top delta but there's no case for it\n const targetScroll = currentScroll + bottomDelta\n\n if (scrollerRef === window) {\n scrollerRef.scroll(0, targetScroll)\n } else {\n scrollerRef.scrollTop = targetScroll\n }\n\n this.$nextTick(() => {\n const { offsetHeight } = this.input.elm\n const { picker } = this.$refs\n const pickerBottom = picker.$el.getBoundingClientRect().bottom\n if (pickerBottom > window.innerHeight) {\n picker.$el.style.top = 'auto'\n picker.$el.style.bottom = offsetHeight + 'px'\n }\n })\n },\n onTransition (e) {\n this.resize()\n },\n onBlur (e) {\n // Clicking on any suggestion removes focus from autocomplete,\n // preventing click handler ever executing.\n this.blurTimeout = setTimeout(() => {\n this.focused = false\n this.setCaret(e)\n this.resize()\n }, 200)\n },\n onClick (e, suggestion) {\n this.replaceText(e, suggestion)\n },\n onFocus (e) {\n if (this.blurTimeout) {\n clearTimeout(this.blurTimeout)\n this.blurTimeout = null\n }\n\n if (!this.keepOpen) {\n this.showPicker = false\n }\n this.focused = true\n this.setCaret(e)\n this.resize()\n this.temporarilyHideSuggestions = false\n },\n onKeyUp (e) {\n const { key } = e\n this.setCaret(e)\n this.resize()\n\n // Setting hider in keyUp to prevent suggestions from blinking\n // when moving away from suggested spot\n if (key === 'Escape') {\n this.temporarilyHideSuggestions = true\n } else {\n this.temporarilyHideSuggestions = false\n }\n },\n onPaste (e) {\n this.setCaret(e)\n this.resize()\n },\n onKeyDown (e) {\n const { ctrlKey, shiftKey, key } = e\n // Disable suggestions hotkeys if suggestions are hidden\n if (!this.temporarilyHideSuggestions) {\n if (key === 'Tab') {\n if (shiftKey) {\n this.cycleBackward(e)\n } else {\n this.cycleForward(e)\n }\n }\n if (key === 'ArrowUp') {\n this.cycleBackward(e)\n } else if (key === 'ArrowDown') {\n this.cycleForward(e)\n }\n if (key === 'Enter') {\n if (!ctrlKey) {\n this.replaceText(e)\n }\n }\n }\n // Probably add optional keyboard controls for emoji picker?\n\n // Escape hides suggestions, if suggestions are hidden it\n // de-focuses the element (i.e. default browser behavior)\n if (key === 'Escape') {\n if (!this.temporarilyHideSuggestions) {\n this.input.elm.focus()\n }\n }\n\n this.showPicker = false\n this.resize()\n },\n onInput (e) {\n this.showPicker = false\n this.setCaret(e)\n this.resize()\n this.$emit('input', e.target.value)\n },\n onClickInput (e) {\n this.showPicker = false\n },\n onClickOutside (e) {\n if (this.disableClickOutside) return\n this.showPicker = false\n },\n onStickerUploaded (e) {\n this.showPicker = false\n this.$emit('sticker-uploaded', e)\n },\n onStickerUploadFailed (e) {\n this.showPicker = false\n this.$emit('sticker-upload-Failed', e)\n },\n setCaret ({ target: { selectionStart } }) {\n this.caret = selectionStart\n },\n resize () {\n const { panel, picker } = this.$refs\n if (!panel) return\n const { offsetHeight, offsetTop } = this.input.elm\n const offsetBottom = offsetTop + offsetHeight\n\n panel.style.top = offsetBottom + 'px'\n picker.$el.style.top = offsetBottom + 'px'\n picker.$el.style.bottom = 'auto'\n }\n }\n}\n\nexport default EmojiInput\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./emoji_input.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./emoji_input.js\"\nimport __vue_script__ from \"!!babel-loader!./emoji_input.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-4184a282\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./emoji_input.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"click-outside\",rawName:\"v-click-outside\",value:(_vm.onClickOutside),expression:\"onClickOutside\"}],staticClass:\"emoji-input\",class:{ 'with-picker': !_vm.hideEmojiButton }},[_vm._t(\"default\"),_vm._v(\" \"),(_vm.enableEmojiPicker)?[(!_vm.hideEmojiButton)?_c('div',{staticClass:\"emoji-picker-icon\",on:{\"click\":function($event){$event.preventDefault();return _vm.togglePicker($event)}}},[_c('i',{staticClass:\"icon-smile\"})]):_vm._e(),_vm._v(\" \"),(_vm.enableEmojiPicker)?_c('EmojiPicker',{ref:\"picker\",staticClass:\"emoji-picker-panel\",class:{ hide: !_vm.showPicker },attrs:{\"enable-sticker-picker\":_vm.enableStickerPicker},on:{\"emoji\":_vm.insert,\"sticker-uploaded\":_vm.onStickerUploaded,\"sticker-upload-failed\":_vm.onStickerUploadFailed}}):_vm._e()]:_vm._e(),_vm._v(\" \"),_c('div',{ref:\"panel\",staticClass:\"autocomplete-panel\",class:{ hide: !_vm.showSuggestions }},[_c('div',{staticClass:\"autocomplete-panel-body\"},_vm._l((_vm.suggestions),function(suggestion,index){return _c('div',{key:index,staticClass:\"autocomplete-item\",class:{ highlighted: suggestion.highlighted },on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();_vm.onClick($event, suggestion)}}},[_c('span',{staticClass:\"image\"},[(suggestion.img)?_c('img',{attrs:{\"src\":suggestion.img}}):_c('span',[_vm._v(_vm._s(suggestion.replacement))])]),_vm._v(\" \"),_c('div',{staticClass:\"label\"},[_c('span',{staticClass:\"displayText\"},[_vm._v(_vm._s(suggestion.displayText))]),_vm._v(\" \"),_c('span',{staticClass:\"detailText\"},[_vm._v(_vm._s(suggestion.detailText))])])])}),0)])],2)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","const fetchRelationship = (attempt, userId, store) => new Promise((resolve, reject) => {\n setTimeout(() => {\n store.state.api.backendInteractor.fetchUserRelationship({ id: userId })\n .then((relationship) => {\n store.commit('updateUserRelationship', [relationship])\n return relationship\n })\n .then((relationship) => resolve([relationship.following, relationship.requested, relationship.locked, attempt]))\n .catch((e) => reject(e))\n }, 500)\n}).then(([following, sent, locked, attempt]) => {\n if (!following && !(locked && sent) && attempt <= 3) {\n // If we BE reports that we still not following that user - retry,\n // increment attempts by one\n fetchRelationship(++attempt, userId, store)\n }\n})\n\nexport const requestFollow = (userId, store) => new Promise((resolve, reject) => {\n store.state.api.backendInteractor.followUser({ id: userId })\n .then((updated) => {\n store.commit('updateUserRelationship', [updated])\n\n if (updated.following || (updated.locked && updated.requested)) {\n // If we get result immediately or the account is locked, just stop.\n resolve()\n return\n }\n\n // But usually we don't get result immediately, so we ask server\n // for updated user profile to confirm if we are following them\n // Sometimes it takes several tries. Sometimes we end up not following\n // user anyway, probably because they locked themselves and we\n // don't know that yet.\n // Recursive Promise, it will call itself up to 3 times.\n\n return fetchRelationship(1, updated, store)\n .then(() => {\n resolve()\n })\n })\n})\n\nexport const requestUnfollow = (userId, store) => new Promise((resolve, reject) => {\n store.state.api.backendInteractor.unfollowUser({ id: userId })\n .then((updated) => {\n store.commit('updateUserRelationship', [updated])\n resolve({\n updated\n })\n })\n})\n","import { requestFollow, requestUnfollow } from '../../services/follow_manipulate/follow_manipulate'\nexport default {\n props: ['relationship', 'labelFollowing', 'buttonClass'],\n data () {\n return {\n inProgress: false\n }\n },\n computed: {\n isPressed () {\n return this.inProgress || this.relationship.following\n },\n title () {\n if (this.inProgress || this.relationship.following) {\n return this.$t('user_card.follow_unfollow')\n } else if (this.relationship.requested) {\n return this.$t('user_card.follow_again')\n } else {\n return this.$t('user_card.follow')\n }\n },\n label () {\n if (this.inProgress) {\n return this.$t('user_card.follow_progress')\n } else if (this.relationship.following) {\n return this.labelFollowing || this.$t('user_card.following')\n } else if (this.relationship.requested) {\n return this.$t('user_card.follow_sent')\n } else {\n return this.$t('user_card.follow')\n }\n }\n },\n methods: {\n onClick () {\n this.relationship.following ? this.unfollow() : this.follow()\n },\n follow () {\n this.inProgress = true\n requestFollow(this.relationship.id, this.$store).then(() => {\n this.inProgress = false\n })\n },\n unfollow () {\n const store = this.$store\n this.inProgress = true\n requestUnfollow(this.relationship.id, store).then(() => {\n this.inProgress = false\n store.commit('removeStatus', { timeline: 'friends', userId: this.relationship.id })\n })\n }\n }\n}\n","/* script */\nexport * from \"!!babel-loader!./follow_button.js\"\nimport __vue_script__ from \"!!babel-loader!./follow_button.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-fae84d0a\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./follow_button.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('button',{staticClass:\"btn btn-default follow-button\",class:{ toggled: _vm.isPressed },attrs:{\"disabled\":_vm.inProgress,\"title\":_vm.title},on:{\"click\":_vm.onClick}},[_vm._v(\"\\n \"+_vm._s(_vm.label)+\"\\n\")])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","const ScopeSelector = {\n props: [\n 'showAll',\n 'userDefault',\n 'originalScope',\n 'initialScope',\n 'onScopeChange'\n ],\n data () {\n return {\n currentScope: this.initialScope\n }\n },\n computed: {\n showNothing () {\n return !this.showPublic && !this.showUnlisted && !this.showPrivate && !this.showDirect\n },\n showPublic () {\n return this.originalScope !== 'direct' && this.shouldShow('public')\n },\n showUnlisted () {\n return this.originalScope !== 'direct' && this.shouldShow('unlisted')\n },\n showPrivate () {\n return this.originalScope !== 'direct' && this.shouldShow('private')\n },\n showDirect () {\n return this.shouldShow('direct')\n },\n css () {\n return {\n public: { selected: this.currentScope === 'public' },\n unlisted: { selected: this.currentScope === 'unlisted' },\n private: { selected: this.currentScope === 'private' },\n direct: { selected: this.currentScope === 'direct' }\n }\n }\n },\n methods: {\n shouldShow (scope) {\n return this.showAll ||\n this.currentScope === scope ||\n this.originalScope === scope ||\n this.userDefault === scope ||\n scope === 'direct'\n },\n changeVis (scope) {\n this.currentScope = scope\n this.onScopeChange && this.onScopeChange(scope)\n }\n }\n}\n\nexport default ScopeSelector\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./scope_selector.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./scope_selector.js\"\nimport __vue_script__ from \"!!babel-loader!./scope_selector.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-28e8cbf1\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./scope_selector.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.showNothing)?_c('div',{staticClass:\"scope-selector\"},[(_vm.showDirect)?_c('i',{staticClass:\"icon-mail-alt\",class:_vm.css.direct,attrs:{\"title\":_vm.$t('post_status.scope.direct')},on:{\"click\":function($event){_vm.changeVis('direct')}}}):_vm._e(),_vm._v(\" \"),(_vm.showPrivate)?_c('i',{staticClass:\"icon-lock\",class:_vm.css.private,attrs:{\"title\":_vm.$t('post_status.scope.private')},on:{\"click\":function($event){_vm.changeVis('private')}}}):_vm._e(),_vm._v(\" \"),(_vm.showUnlisted)?_c('i',{staticClass:\"icon-lock-open-alt\",class:_vm.css.unlisted,attrs:{\"title\":_vm.$t('post_status.scope.unlisted')},on:{\"click\":function($event){_vm.changeVis('unlisted')}}}):_vm._e(),_vm._v(\" \"),(_vm.showPublic)?_c('i',{staticClass:\"icon-globe\",class:_vm.css.public,attrs:{\"title\":_vm.$t('post_status.scope.public')},on:{\"click\":function($event){_vm.changeVis('public')}}}):_vm._e()]):_vm._e()}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","\nconst VideoAttachment = {\n props: ['attachment', 'controls'],\n data () {\n return {\n loopVideo: this.$store.getters.mergedConfig.loopVideo\n }\n },\n methods: {\n onVideoDataLoad (e) {\n const target = e.srcElement || e.target\n if (typeof target.webkitAudioDecodedByteCount !== 'undefined') {\n // non-zero if video has audio track\n if (target.webkitAudioDecodedByteCount > 0) {\n this.loopVideo = this.loopVideo && !this.$store.getters.mergedConfig.loopVideoSilentOnly\n }\n } else if (typeof target.mozHasAudio !== 'undefined') {\n // true if video has audio track\n if (target.mozHasAudio) {\n this.loopVideo = this.loopVideo && !this.$store.getters.mergedConfig.loopVideoSilentOnly\n }\n } else if (typeof target.audioTracks !== 'undefined') {\n if (target.audioTracks.length > 0) {\n this.loopVideo = this.loopVideo && !this.$store.getters.mergedConfig.loopVideoSilentOnly\n }\n }\n }\n }\n}\n\nexport default VideoAttachment\n","/* script */\nexport * from \"!!babel-loader!./video_attachment.js\"\nimport __vue_script__ from \"!!babel-loader!./video_attachment.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-6fce6a82\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./video_attachment.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('video',{staticClass:\"video\",attrs:{\"src\":_vm.attachment.url,\"loop\":_vm.loopVideo,\"controls\":_vm.controls,\"playsinline\":\"\"},on:{\"loadeddata\":_vm.onVideoDataLoad}})}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","export default {\n props: [ 'user' ],\n computed: {\n subscribeUrl () {\n // eslint-disable-next-line no-undef\n const serverUrl = new URL(this.user.statusnet_profile_url)\n return `${serverUrl.protocol}//${serverUrl.host}/main/ostatus`\n }\n }\n}\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./remote_follow.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./remote_follow.js\"\nimport __vue_script__ from \"!!babel-loader!./remote_follow.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-e95e446e\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./remote_follow.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"remote-follow\"},[_c('form',{attrs:{\"method\":\"POST\",\"action\":_vm.subscribeUrl}},[_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"nickname\"},domProps:{\"value\":_vm.user.screen_name}}),_vm._v(\" \"),_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"profile\",\"value\":\"\"}}),_vm._v(\" \"),_c('button',{staticClass:\"remote-button\",attrs:{\"click\":\"submit\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('user_card.remote_follow'))+\"\\n \")])])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","module.exports = __webpack_public_path__ + \"static/img/nsfw.74818f9.png\";","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./timeline.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"0084eb3d\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".timeline .loadmore-text{opacity:1}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./status.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"ce58e9e8\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".status-body{-ms-flex:1;flex:1;min-width:0}.status-pin{padding:.75em .75em 0;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end}.media-left{margin-right:.75em}.status-el{overflow-wrap:break-word;word-wrap:break-word;word-break:break-word;border-left-width:0;min-width:0;border-color:#222;border-color:var(--border,#222);border-left:4px red;border-left:4px var(--cRed,red)}.status-el_focused{background-color:#151e2a;background-color:var(--selectedPost,#151e2a);color:#b9b9ba;color:var(--selectedPostText,#b9b9ba);--lightText:var(--selectedPostLightText,$fallback--light);--faint:var(--selectedPostFaintText,$fallback--faint);--faintLink:var(--selectedPostFaintLink,$fallback--faint);--postLink:var(--selectedPostPostLink,$fallback--faint);--postFaintLink:var(--selectedPostFaintPostLink,$fallback--faint);--icon:var(--selectedPostIcon,$fallback--icon)}.timeline .status-el{border-bottom-width:1px;border-bottom-style:solid}.status-el .media-body{-ms-flex:1;flex:1;padding:0}.status-el .status-usercard{margin-bottom:.75em}.status-el .user-name{white-space:nowrap;font-size:14px;overflow:hidden;-ms-flex-negative:0;flex-shrink:0;max-width:85%;font-weight:700}.status-el .user-name img{width:14px;height:14px;vertical-align:middle;-o-object-fit:contain;object-fit:contain}.status-el .media-heading{padding:0;vertical-align:bottom;-ms-flex-preferred-size:100%;flex-basis:100%;margin-bottom:.5em}.status-el .media-heading small{font-weight:lighter}.status-el .media-heading .heading-name-row{padding:0;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;line-height:18px}.status-el .media-heading .heading-name-row a{display:inline-block;word-break:break-all}.status-el .media-heading .heading-name-row .name-and-account-name{display:-ms-flexbox;display:flex;min-width:0}.status-el .media-heading .heading-name-row .user-name{-ms-flex-negative:1;flex-shrink:1;margin-right:.4em;overflow:hidden;text-overflow:ellipsis}.status-el .media-heading .heading-name-row .account-name{min-width:1.6em;margin-right:.4em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-ms-flex:1 1 0px;flex:1 1 0}.status-el .media-heading .heading-right{display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0}.status-el .media-heading .timeago{margin-right:.2em}.status-el .media-heading .heading-reply-row{position:relative;-ms-flex-line-pack:baseline;align-content:baseline;font-size:12px;line-height:18px;max-width:100%;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch}.status-el .media-heading .heading-reply-row>.reply-to-and-accountname>a{overflow:hidden;max-width:100%;text-overflow:ellipsis;white-space:nowrap;word-break:break-all}.status-el .media-heading .reply-to-and-accountname{display:-ms-flexbox;display:flex;height:18px;margin-right:.5em;max-width:100%}.status-el .media-heading .reply-to-and-accountname .icon-reply{transform:scaleX(-1)}.status-el .media-heading .reply-info{display:-ms-flexbox;display:flex}.status-el .media-heading .reply-to-popover{min-width:0}.status-el .media-heading .reply-to{display:-ms-flexbox;display:flex}.status-el .media-heading .reply-to-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:0 .4em 0 .2em}.status-el .media-heading .replies-separator{margin-left:.4em}.status-el .media-heading .replies{line-height:18px;font-size:12px;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.status-el .media-heading .replies>*{margin-right:.4em}.status-el .media-heading .reply-link{height:17px}.status-el .retweet-info{padding:.4em .75em;margin:0}.status-el .retweet-info .avatar.still-image{border-radius:10px;border-radius:var(--avatarAltRadius,10px);margin-left:28px;width:20px;height:20px}.status-el .retweet-info .media-body{font-size:1em;line-height:22px;display:-ms-flexbox;display:flex;-ms-flex-line-pack:center;align-content:center;-ms-flex-wrap:wrap;flex-wrap:wrap}.status-el .retweet-info .media-body .user-name{font-weight:700;overflow:hidden;text-overflow:ellipsis}.status-el .retweet-info .media-body .user-name img{width:14px;height:14px;vertical-align:middle;-o-object-fit:contain;object-fit:contain}.status-el .retweet-info .media-body i{padding:0 .2em}.status-el .retweet-info .media-body a{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-fadein{animation-duration:.4s;animation-name:fadein}@keyframes fadein{0%{opacity:0}to{opacity:1}}.status-conversation{border-left-style:solid}.status-actions{position:relative;width:100%;display:-ms-flexbox;display:flex;margin-top:.75em}.status-actions>*{max-width:4em;-ms-flex:1;flex:1}.button-icon.icon-reply.button-icon-active,.button-icon.icon-reply:not(.button-icon-disabled):hover{color:#0095ff;color:var(--cBlue,#0095ff)}.button-icon.icon-reply:not(.button-icon-disabled){cursor:pointer}.status:hover .animated.avatar canvas{display:none}.status:hover .animated.avatar img{visibility:visible}.status{display:-ms-flexbox;display:flex;padding:.75em}.status.is-retweet{padding-top:0}.status-conversation:last-child{border-bottom:none}.muted{padding:.25em .5em}.muted button{margin-left:auto}.muted .muteWords{margin-left:10px}a.unmute{display:block;margin-left:auto}.reply-body{-ms-flex:1;flex:1}.favs-repeated-users{margin-top:.75em}.favs-repeated-users .stats{width:100%;display:-ms-flexbox;display:flex;line-height:1em}.favs-repeated-users .stats .stat-count{margin-right:.75em}.favs-repeated-users .stats .stat-count .stat-title{color:var(--faint,hsla(240,1%,73%,.5));font-size:12px;text-transform:uppercase;position:relative}.favs-repeated-users .stats .stat-count .stat-number{font-weight:bolder;font-size:16px;line-height:1em}.favs-repeated-users .stats .avatar-row{-ms-flex:1;flex:1;overflow:hidden;position:relative;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.favs-repeated-users .stats .avatar-row:before{content:\\\"\\\";position:absolute;height:100%;width:1px;left:0;background-color:var(--faint,hsla(240,1%,73%,.5))}@media (max-width:800px){.status-el .retweet-info .avatar.still-image{margin-left:20px}.status{max-width:100%}.status .avatar.still-image{width:40px;height:40px}.status .avatar.still-image.avatar-compact{width:32px;height:32px}}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./favorite_button.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"7d4fb47f\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".fav-active{cursor:pointer;animation-duration:.6s}.fav-active:hover,.favorite-button.icon-star{color:orange;color:var(--cOrange,orange)}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./react_button.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"b98558e8\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".reaction-picker-filter{padding:.5em;display:-ms-flexbox;display:flex}.reaction-picker-filter input{-ms-flex:1;flex:1}.reaction-picker-divider{height:1px;width:100%;margin:.5em;background-color:var(--border,#222)}.reaction-picker{width:10em;height:9em;font-size:1.5em;overflow-y:scroll;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.5em;text-align:center;-ms-flex-line-pack:start;align-content:flex-start;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-mask:linear-gradient(0deg,#fff 0,transparent) bottom no-repeat,linear-gradient(180deg,#fff 0,transparent) top no-repeat,linear-gradient(0deg,#fff,#fff);mask:linear-gradient(0deg,#fff 0,transparent) bottom no-repeat,linear-gradient(180deg,#fff 0,transparent) top no-repeat,linear-gradient(0deg,#fff,#fff);transition:-webkit-mask-size .15s;transition:mask-size .15s;transition:mask-size .15s,-webkit-mask-size .15s;-webkit-mask-size:100% 20px,100% 20px,auto;mask-size:100% 20px,100% 20px,auto;-webkit-mask-composite:xor;mask-composite:exclude}.reaction-picker .emoji-button{cursor:pointer;-ms-flex-preferred-size:20%;flex-basis:20%;line-height:1.5em;-ms-flex-line-pack:center;align-content:center}.reaction-picker .emoji-button:hover{transform:scale(1.25)}.add-reaction-button{cursor:pointer}.add-reaction-button:hover{color:#b9b9ba;color:var(--text,#b9b9ba)}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./popover.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"92bf6e22\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".popover{z-index:8;position:absolute;min-width:0;transition:opacity .3s;box-shadow:1px 1px 4px rgba(0,0,0,.6);box-shadow:var(--panelShadow);border-radius:4px;border-radius:var(--btnRadius,4px);background-color:#121a24;background-color:var(--popover,#121a24);color:#b9b9ba;color:var(--popoverText,#b9b9ba);--faint:var(--popoverFaintText,$fallback--faint);--faintLink:var(--popoverFaintLink,$fallback--faint);--lightText:var(--popoverLightText,$fallback--lightText);--postLink:var(--popoverPostLink,$fallback--link);--postFaintLink:var(--popoverPostFaintLink,$fallback--link);--icon:var(--popoverIcon,$fallback--icon)}.dropdown-menu{display:block;padding:.5rem 0;font-size:1rem;text-align:left;list-style:none;max-width:100vw;z-index:10;white-space:nowrap}.dropdown-menu .dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #222;border-top:1px solid var(--border,#222)}.dropdown-menu .dropdown-item{line-height:21px;margin-right:5px;overflow:auto;display:block;padding:.25rem 1rem .25rem 1.5rem;clear:both;font-weight:400;text-align:inherit;white-space:nowrap;border:none;border-radius:0;background-color:transparent;box-shadow:none;width:100%;height:100%;--btnText:var(--popoverText,$fallback--text)}.dropdown-menu .dropdown-item-icon{padding-left:.5rem}.dropdown-menu .dropdown-item-icon i{margin-right:.25rem;color:var(--menuPopoverIcon,#666)}.dropdown-menu .dropdown-item:active,.dropdown-menu .dropdown-item:hover{background-color:#151e2a;background-color:var(--selectedMenuPopover,#151e2a);color:#d8a070;color:var(--selectedMenuPopoverText,#d8a070);--faint:var(--selectedMenuPopoverFaintText,$fallback--faint);--faintLink:var(--selectedMenuPopoverFaintLink,$fallback--faint);--lightText:var(--selectedMenuPopoverLightText,$fallback--lightText);--icon:var(--selectedMenuPopoverIcon,$fallback--icon)}.dropdown-menu .dropdown-item:active i,.dropdown-menu .dropdown-item:hover i{color:var(--selectedMenuPopoverIcon,#666)}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./retweet_button.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"2c52cbcb\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".rt-active{cursor:pointer;animation-duration:.6s}.icon-retweet.retweeted,.rt-active:hover{color:#0fa00f;color:var(--cGreen,#0fa00f)}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./extra_buttons.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"0d2c533c\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".icon-ellipsis{cursor:pointer}.extra-button-popover.open .icon-ellipsis,.icon-ellipsis:hover{color:#b9b9ba;color:var(--text,#b9b9ba)}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./post_status_form.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"ce7966a8\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".tribute-container ul{padding:0}.tribute-container ul li{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.tribute-container img{padding:3px;width:16px;height:16px;border-radius:10px;border-radius:var(--avatarAltRadius,10px)}.post-status-form .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-color:#121a24;background-color:var(--popover,#121a24);color:#d8a070;color:var(--popoverText,#d8a070);--faint:var(--popoverFaintText,$fallback--faint);--faintLink:var(--popoverFaintLink,$fallback--faint);--lightText:var(--popoverLightText,$fallback--lightText);--postLink:var(--popoverPostLink,$fallback--link);--postFaintLink:var(--popoverPostFaintLink,$fallback--link);--icon:var(--popoverIcon,$fallback--icon)}.emoji-input .autocomplete-item{display:-ms-flexbox;display:flex;cursor:pointer;padding:.2em .4em;border-bottom:1px solid rgba(0,0,0,.4);height:32px}.emoji-input .autocomplete-item .image{width:32px;height:32px;line-height:32px;text-align:center;font-size:32px;margin-right:4px}.emoji-input .autocomplete-item .image img{width:32px;height:32px;-o-object-fit:contain;object-fit:contain}.emoji-input .autocomplete-item .label{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;margin:0 .1em 0 .2em}.emoji-input .autocomplete-item .label .displayText{line-height:1.5}.emoji-input .autocomplete-item .label .detailText{font-size:9px;line-height:9px}.emoji-input .autocomplete-item.highlighted{background-color:#182230;background-color:var(--selectedMenuPopover,#182230);color:var(--selectedMenuPopoverText,#b9b9ba);--faint:var(--selectedMenuPopoverFaintText,$fallback--faint);--faintLink:var(--selectedMenuPopoverFaintLink,$fallback--faint);--lightText:var(--selectedMenuPopoverLightText,$fallback--lightText);--icon:var(--selectedMenuPopoverIcon,$fallback--icon)}.emoji-input input,.emoji-input textarea{-ms-flex:1 0 auto;flex:1 0 auto}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!./emoji_picker.scss\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"7bb72e68\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".emoji-picker{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;position:absolute;right:0;left:0;margin:0!important;z-index:1;background-color:#121a24;background-color:var(--popover,#121a24);color:#d8a070;color:var(--popoverText,#d8a070);--lightText:var(--popoverLightText,$fallback--faint);--faint:var(--popoverFaintText,$fallback--faint);--faintLink:var(--popoverFaintLink,$fallback--faint);--lightText:var(--popoverLightText,$fallback--lightText);--icon:var(--popoverIcon,$fallback--icon)}.emoji-picker .keep-open,.emoji-picker .too-many-emoji{padding:7px;line-height:normal}.emoji-picker .too-many-emoji{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.emoji-picker .keep-open-label{padding:0 7px;display:-ms-flexbox;display:flex}.emoji-picker .heading{display:-ms-flexbox;display:flex;height:32px;padding:10px 7px 5px}.emoji-picker .content{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex:1 1 auto;flex:1 1 auto;min-height:0}.emoji-picker .emoji-tabs{-ms-flex-positive:1;flex-grow:1}.emoji-picker .emoji-groups{min-height:200px}.emoji-picker .additional-tabs{border-left:1px solid;border-left-color:#666;border-left-color:var(--icon,#666);padding-left:7px;-ms-flex:0 0 auto;flex:0 0 auto}.emoji-picker .additional-tabs,.emoji-picker .emoji-tabs{display:block;min-width:0;-ms-flex-preferred-size:auto;flex-basis:auto;-ms-flex-negative:1;flex-shrink:1}.emoji-picker .additional-tabs-item,.emoji-picker .emoji-tabs-item{padding:0 7px;cursor:pointer;font-size:24px}.emoji-picker .additional-tabs-item.disabled,.emoji-picker .emoji-tabs-item.disabled{opacity:.5;pointer-events:none}.emoji-picker .additional-tabs-item.active,.emoji-picker .emoji-tabs-item.active{border-bottom:4px solid}.emoji-picker .additional-tabs-item.active i,.emoji-picker .emoji-tabs-item.active i{color:#b9b9ba;color:var(--lightText,#b9b9ba)}.emoji-picker .sticker-picker{-ms-flex:1 1 auto;flex:1 1 auto}.emoji-picker .emoji-content,.emoji-picker .stickers-content{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex:1 1 auto;flex:1 1 auto;min-height:0}.emoji-picker .emoji-content.hidden,.emoji-picker .stickers-content.hidden{opacity:0;pointer-events:none;position:absolute}.emoji-picker .emoji-search{padding:5px;-ms-flex:0 0 auto;flex:0 0 auto}.emoji-picker .emoji-search input{width:100%}.emoji-picker .emoji-groups{-ms-flex:1 1 1px;flex:1 1 1px;position:relative;overflow:auto;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-mask:linear-gradient(0deg,#fff 0,transparent) bottom no-repeat,linear-gradient(180deg,#fff 0,transparent) top no-repeat,linear-gradient(0deg,#fff,#fff);mask:linear-gradient(0deg,#fff 0,transparent) bottom no-repeat,linear-gradient(180deg,#fff 0,transparent) top no-repeat,linear-gradient(0deg,#fff,#fff);transition:-webkit-mask-size .15s;transition:mask-size .15s;transition:mask-size .15s,-webkit-mask-size .15s;-webkit-mask-size:100% 20px,100% 20px,auto;mask-size:100% 20px,100% 20px,auto;-webkit-mask-composite:xor;mask-composite:exclude}.emoji-picker .emoji-groups.scrolled-top{-webkit-mask-size:100% 20px,100% 0,auto;mask-size:100% 20px,100% 0,auto}.emoji-picker .emoji-groups.scrolled-bottom{-webkit-mask-size:100% 0,100% 20px,auto;mask-size:100% 0,100% 20px,auto}.emoji-picker .emoji-group{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:5px;-ms-flex-pack:left;justify-content:left}.emoji-picker .emoji-group-title{font-size:12px;width:100%;margin:0}.emoji-picker .emoji-group-title.disabled{display:none}.emoji-picker .emoji-item{width:32px;height:32px;box-sizing:border-box;display:-ms-flexbox;display:flex;font-size:32px;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin:4px;cursor:pointer}.emoji-picker .emoji-item img{-o-object-fit:contain;object-fit:contain;max-width:100%;max-height:100%}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./checkbox.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"002629bb\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".checkbox{position:relative;display:inline-block;min-height:1.2em}.checkbox-indicator{position:relative;padding-left:1.2em}.checkbox-indicator:before{position:absolute;right:0;top:0;display:block;content:\\\"\\\\2714\\\";transition:color .2s;width:1.1em;height:1.1em;border-radius:2px;border-radius:var(--checkboxRadius,2px);box-shadow:inset 0 0 2px #000;box-shadow:var(--inputShadow);background-color:#182230;background-color:var(--input,#182230);vertical-align:top;text-align:center;line-height:1.1em;font-size:1.1em;color:transparent;overflow:hidden;box-sizing:border-box}.checkbox.disabled .checkbox-indicator:before,.checkbox.disabled .label{opacity:.5}.checkbox.disabled .label{color:hsla(240,1%,73%,.5);color:var(--faint,hsla(240,1%,73%,.5))}.checkbox input[type=checkbox]{display:none}.checkbox input[type=checkbox]:checked+.checkbox-indicator:before{color:#b9b9ba;color:var(--inputText,#b9b9ba)}.checkbox input[type=checkbox]:indeterminate+.checkbox-indicator:before{content:\\\"\\\\2013\\\";color:#b9b9ba;color:var(--inputText,#b9b9ba)}.checkbox>span{margin-left:.5em}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./poll_form.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"60db0262\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".poll-form{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding:0 .5em .5em}.poll-form .add-option{-ms-flex-item-align:start;align-self:flex-start;padding-top:.25em;cursor:pointer}.poll-form .poll-option{display:-ms-flexbox;display:flex;-ms-flex-align:baseline;align-items:baseline;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:.25em}.poll-form .input-container{width:100%}.poll-form .input-container input{padding-right:2.5em;width:100%}.poll-form .icon-container{width:2em;margin-left:-2em;z-index:1}.poll-form .poll-type-expiry{margin-top:.5em;display:-ms-flexbox;display:flex;width:100%}.poll-form .poll-type{margin-right:.75em;-ms-flex:1 1 60%;flex:1 1 60%}.poll-form .poll-type .select{border:none;box-shadow:none;background-color:transparent}.poll-form .poll-expiry{display:-ms-flexbox;display:flex}.poll-form .poll-expiry .expiry-amount{width:3em;text-align:right}.poll-form .poll-expiry .expiry-unit{border:none;box-shadow:none;background-color:transparent}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./user_card.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"0060b6a4\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".user-card{position:relative}.user-card .panel-heading{padding:.5em 0;text-align:center;box-shadow:none;background:transparent;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:stretch;align-items:stretch;position:relative}.user-card .panel-body{word-wrap:break-word;border-bottom-right-radius:inherit;border-bottom-left-radius:inherit;position:relative}.user-card .background-image{position:absolute;top:0;left:0;right:0;bottom:0;-webkit-mask:linear-gradient(0deg,#fff,transparent) bottom no-repeat,linear-gradient(0deg,#fff,#fff);mask:linear-gradient(0deg,#fff,transparent) bottom no-repeat,linear-gradient(0deg,#fff,#fff);-webkit-mask-composite:xor;mask-composite:exclude;background-size:cover;-webkit-mask-size:100% 60%;mask-size:100% 60%;border-top-left-radius:calc(var(--panelRadius) - 1px);border-top-right-radius:calc(var(--panelRadius) - 1px);background-color:var(--profileBg)}.user-card .background-image.hide-bio{-webkit-mask-size:100% 40px;mask-size:100% 40px}.user-card p{margin-bottom:0}.user-card-bio{text-align:center}.user-card-bio a{color:#d8a070;color:var(--postLink,#d8a070)}.user-card-bio img{-o-object-fit:contain;object-fit:contain;vertical-align:middle;max-width:100%;max-height:400px}.user-card-bio img.emoji{width:32px;height:32px}.user-card-rounded-t{border-top-left-radius:10px;border-top-left-radius:var(--panelRadius,10px);border-top-right-radius:10px;border-top-right-radius:var(--panelRadius,10px)}.user-card-rounded{border-radius:10px;border-radius:var(--panelRadius,10px)}.user-card-bordered{border-color:#222;border:1px solid var(--border,#222)}.user-info{color:#b9b9ba;color:var(--lightText,#b9b9ba);padding:0 26px}.user-info .container{padding:16px 0 6px;display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;max-height:56px}.user-info .container .avatar{-ms-flex:1 0 100%;flex:1 0 100%;width:56px;height:56px;box-shadow:0 1px 8px rgba(0,0,0,.75);box-shadow:var(--avatarShadow);-o-object-fit:cover;object-fit:cover}.user-info:hover .animated.avatar canvas{display:none}.user-info:hover .animated.avatar img{visibility:visible}.user-info-avatar-link{position:relative;cursor:pointer}.user-info-avatar-link-overlay{position:absolute;left:0;top:0;right:0;bottom:0;background-color:rgba(0,0,0,.3);display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;border-radius:4px;border-radius:var(--avatarRadius,4px);opacity:0;transition:opacity .2s ease}.user-info-avatar-link-overlay i{color:#fff}.user-info-avatar-link:hover .user-info-avatar-link-overlay{opacity:1}.user-info .usersettings{color:#b9b9ba;color:var(--lightText,#b9b9ba);opacity:.8}.user-info .user-summary{display:block;margin-left:.6em;text-align:left;text-overflow:ellipsis;white-space:nowrap;-ms-flex:1 1 0px;flex:1 1 0;z-index:1}.user-info .user-summary img{width:26px;height:26px;vertical-align:middle;-o-object-fit:contain;object-fit:contain}.user-info .user-summary .top-line{display:-ms-flexbox;display:flex}.user-info .user-name{text-overflow:ellipsis;overflow:hidden;-ms-flex:1 1 auto;flex:1 1 auto;margin-right:1em;font-size:15px}.user-info .user-name img{-o-object-fit:contain;object-fit:contain;height:16px;width:16px;vertical-align:middle}.user-info .bottom-line{display:-ms-flexbox;display:flex;font-weight:light;font-size:15px}.user-info .bottom-line .user-screen-name{min-width:1px;-ms-flex:0 1 auto;flex:0 1 auto;text-overflow:ellipsis;overflow:hidden;color:#b9b9ba;color:var(--lightText,#b9b9ba)}.user-info .bottom-line .dailyAvg{min-width:1px;-ms-flex:0 0 auto;flex:0 0 auto;margin-left:1em;font-size:.7em;color:#b9b9ba;color:var(--text,#b9b9ba)}.user-info .bottom-line .staff{-ms-flex:none;flex:none;text-transform:capitalize;color:#b9b9ba;color:var(--alertNeutralText,#b9b9ba);background-color:#182230;background-color:var(--alertNeutral,#182230)}.user-info .user-meta{margin-bottom:.15em;display:-ms-flexbox;display:flex;-ms-flex-align:baseline;align-items:baseline;font-size:14px;line-height:22px;-ms-flex-wrap:wrap;flex-wrap:wrap}.user-info .user-meta .following{-ms-flex:1 0 auto;flex:1 0 auto;margin:0;margin-bottom:.25em;text-align:left}.user-info .user-meta .highlighter{-ms-flex:0 1 auto;flex:0 1 auto;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-.5em;-ms-flex-item-align:start;align-self:start}.user-info .user-meta .highlighter .userHighlightCl{padding:2px 10px;-ms-flex:1 0 auto;flex:1 0 auto}.user-info .user-meta .highlighter .userHighlightSel,.user-info .user-meta .highlighter .userHighlightSel.select{padding-top:0;padding-bottom:0;-ms-flex:1 0 auto;flex:1 0 auto}.user-info .user-meta .highlighter .userHighlightSel.select i{line-height:22px}.user-info .user-meta .highlighter .userHighlightText{width:70px;-ms-flex:1 0 auto;flex:1 0 auto}.user-info .user-meta .highlighter .userHighlightCl,.user-info .user-meta .highlighter .userHighlightSel,.user-info .user-meta .highlighter .userHighlightSel.select,.user-info .user-meta .highlighter .userHighlightText{height:22px;vertical-align:top;margin-right:.5em;margin-bottom:.25em}.user-info .user-interactions{position:relative;display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-.75em}.user-info .user-interactions>*{margin:0 .75em .6em 0;white-space:nowrap;min-width:95px}.user-info .user-interactions button{margin:0}.user-counts{display:-ms-flexbox;display:flex;line-height:16px;padding:.5em 1.5em 0;text-align:center;-ms-flex-pack:justify;justify-content:space-between;color:#b9b9ba;color:var(--lightText,#b9b9ba);-ms-flex-wrap:wrap;flex-wrap:wrap}.user-count{-ms-flex:1 0 auto;flex:1 0 auto;padding:.5em 0;margin:0 .5em}.user-count h5{font-size:1em;font-weight:bolder;margin:0 0 .25em}.user-count a{text-decoration:none}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./user_avatar.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"6b6f3617\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".avatar.still-image{width:48px;height:48px;box-shadow:var(--avatarStatusShadow);border-radius:4px;border-radius:var(--avatarRadius,4px)}.avatar.still-image img{width:100%;height:100%}.avatar.still-image.better-shadow{box-shadow:var(--avatarStatusShadowInset);filter:var(--avatarStatusShadowFilter)}.avatar.still-image.animated:before{display:none}.avatar.still-image.avatar-compact{width:32px;height:32px;border-radius:10px;border-radius:var(--avatarAltRadius,10px)}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./still-image.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"24ab97e0\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".still-image{position:relative;line-height:0;overflow:hidden;width:100%;height:100%}.still-image:hover canvas{display:none}.still-image img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.still-image.animated:hover:before,.still-image.animated img{visibility:hidden}.still-image.animated:hover img{visibility:visible}.still-image.animated:before{content:\\\"gif\\\";position:absolute;line-height:10px;font-size:10px;top:5px;left:5px;background:hsla(0,0%,50%,.5);color:#fff;display:block;padding:2px 4px;border-radius:5px;border-radius:var(--tooltipRadius,5px);z-index:2}.still-image canvas{position:absolute;top:0;bottom:0;left:0;right:0;width:100%;height:100%;-o-object-fit:contain;object-fit:contain}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./remote_follow.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"4852bbb4\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".remote-follow{max-width:220px}.remote-follow .remote-button{width:100%;min-height:28px}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./moderation_tools.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"2c0672fc\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".menu-checkbox{float:right;min-width:22px;max-width:22px;min-height:22px;max-height:22px;line-height:22px;text-align:center;border-radius:0;background-color:#182230;background-color:var(--input,#182230);box-shadow:inset 0 0 2px #000;box-shadow:var(--inputShadow)}.menu-checkbox.menu-checkbox-checked:after{content:\\\"\\\\2714\\\"}.moderation-tools-popover{height:100%}.moderation-tools-popover .trigger{display:-ms-flexbox!important;display:flex!important;height:100%}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./dialog_modal.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"56d82e88\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".dark-overlay:before{bottom:0;content:\\\" \\\";left:0;right:0;background:rgba(27,31,35,.5);z-index:99}.dark-overlay:before,.dialog-modal.panel{display:block;cursor:default;position:fixed;top:0}.dialog-modal.panel{left:50%;max-height:80vh;max-width:90vw;margin:15vh auto;transform:translateX(-50%);z-index:999;background-color:#121a24;background-color:var(--bg,#121a24)}.dialog-modal.panel .dialog-modal-heading{padding:.5em;margin-right:auto;margin-bottom:0;white-space:nowrap;color:var(--panelText);background-color:#182230;background-color:var(--panel,#182230)}.dialog-modal.panel .dialog-modal-heading .title{margin-bottom:0;text-align:center}.dialog-modal.panel .dialog-modal-content{margin:0;padding:1rem;background-color:#121a24;background-color:var(--bg,#121a24);white-space:normal}.dialog-modal.panel .dialog-modal-footer{margin:0;padding:.5em;background-color:#121a24;background-color:var(--bg,#121a24);border-top:1px solid #222;border-top:1px solid var(--border,#222);display:-ms-flexbox;display:flex;-ms-flex-pack:end;justify-content:flex-end}.dialog-modal.panel .dialog-modal-footer button{width:auto;margin-left:.5rem}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./account_actions.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"8c9d5016\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".account-actions{margin:0 .8em}.account-actions button.dropdown-item{margin-left:0}.account-actions .trigger-button{color:#b9b9ba;color:var(--lightText,#b9b9ba);opacity:.8;cursor:pointer}.account-actions .trigger-button:hover{color:#b9b9ba;color:var(--text,#b9b9ba)}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./avatar_list.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"7096a06e\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".avatars{display:-ms-flexbox;display:flex;margin:0;padding:0;-ms-flex-wrap:wrap;flex-wrap:wrap;height:24px}.avatars .avatars-item{margin:0 0 5px 5px}.avatars .avatars-item:first-child{padding-left:5px}.avatars .avatars-item .avatar-small{border-radius:10px;border-radius:var(--avatarAltRadius,10px);height:24px;width:24px}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./status_content.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"af4a4f5c\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".status-body{-ms-flex:1;flex:1;min-width:0}.status-body .tall-status{position:relative;height:220px;overflow-x:hidden;overflow-y:hidden;z-index:1}.status-body .tall-status .status-content{height:100%;-webkit-mask:linear-gradient(0deg,#fff,transparent) bottom/100% 70px no-repeat,linear-gradient(0deg,#fff,#fff);mask:linear-gradient(0deg,#fff,transparent) bottom/100% 70px no-repeat,linear-gradient(0deg,#fff,#fff);-webkit-mask-composite:xor;mask-composite:exclude}.status-body .tall-status-hider{position:absolute;height:70px;margin-top:150px;line-height:110px;z-index:2}.status-body .cw-status-hider,.status-body .status-unhider,.status-body .tall-status-hider{display:inline-block;word-break:break-all;width:100%;text-align:center}.status-body .status-content{font-family:var(--postFont,sans-serif);line-height:1.4em;white-space:pre-wrap}.status-body .status-content img,.status-body .status-content video{max-width:100%;max-height:400px;vertical-align:middle;-o-object-fit:contain;object-fit:contain}.status-body .status-content img.emoji,.status-body .status-content video.emoji{width:32px;height:32px}.status-body .status-content blockquote{margin:.2em 0 .2em 2em;font-style:italic}.status-body .status-content pre{overflow:auto}.status-body .status-content code,.status-body .status-content kbd,.status-body .status-content pre,.status-body .status-content samp,.status-body .status-content var{font-family:var(--postCodeFont,monospace)}.status-body .status-content p{margin:0 0 1em}.status-body .status-content p:last-child{margin:0}.status-body .status-content h1{font-size:1.1em;line-height:1.2em;margin:1.4em 0}.status-body .status-content h2{font-size:1.1em;margin:1em 0}.status-body .status-content h3{font-size:1em;margin:1.2em 0}.status-body .status-content h4{margin:1.1em 0}.greentext{color:#0fa00f;color:var(--cGreen,#0fa00f)}.timeline :not(.panel-disabled)>.status-el:last-child{border-radius:0 0 10px 10px;border-radius:0 0 var(--panelRadius,10px) var(--panelRadius,10px);border-bottom:none}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./attachment.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"60b296ca\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".attachments{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.attachments .attachment.media-upload-container{-ms-flex:0 0 auto;flex:0 0 auto;max-height:200px;max-width:100%;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.attachments .attachment.media-upload-container video{max-width:100%}.attachments .placeholder{margin-right:8px;margin-bottom:4px;color:#d8a070;color:var(--postLink,#d8a070)}.attachments .nsfw-placeholder{cursor:pointer}.attachments .nsfw-placeholder.loading{cursor:progress}.attachments .attachment{position:relative;margin-top:.5em;-ms-flex-item-align:start;align-self:flex-start;line-height:0;border-radius:10px;border-radius:var(--attachmentRadius,10px);border-color:#222;border:1px solid var(--border,#222);overflow:hidden}.attachments .non-gallery.attachment.video{-ms-flex:1 0 40%;flex:1 0 40%}.attachments .non-gallery.attachment .nsfw{height:260px}.attachments .non-gallery.attachment .small{height:120px;-ms-flex-positive:0;flex-grow:0}.attachments .non-gallery.attachment .video{height:260px;display:-ms-flexbox;display:flex}.attachments .non-gallery.attachment video{max-height:100%;-o-object-fit:contain;object-fit:contain}.attachments .fullwidth{-ms-flex-preferred-size:100%;flex-basis:100%}.attachments.video{line-height:0}.attachments .video-container{display:-ms-flexbox;display:flex;max-height:100%}.attachments .video{width:100%;height:100%}.attachments .play-icon{position:absolute;font-size:64px;top:calc(50% - 32px);left:calc(50% - 32px);color:hsla(0,0%,100%,.75);text-shadow:0 0 2px rgba(0,0,0,.4)}.attachments .play-icon:before{margin:0}.attachments.html{-ms-flex-preferred-size:90%;flex-basis:90%;width:100%;display:-ms-flexbox;display:flex}.attachments .hider{position:absolute;right:0;white-space:nowrap;margin:10px;padding:5px;background:hsla(0,0%,90%,.6);font-weight:700;z-index:4;line-height:1;border-radius:5px;border-radius:var(--tooltipRadius,5px)}.attachments video{z-index:0}.attachments audio{width:100%}.attachments img.media-upload{line-height:0;max-height:200px;max-width:100%}.attachments .oembed{line-height:1.2em;-ms-flex:1 0 100%;flex:1 0 100%;width:100%;margin-right:15px;display:-ms-flexbox;display:flex}.attachments .oembed img{width:100%}.attachments .oembed .image{-ms-flex:1;flex:1}.attachments .oembed .image img{border:0;border-radius:5px;height:100%;-o-object-fit:cover;object-fit:cover}.attachments .oembed .text{-ms-flex:2;flex:2;margin:8px;word-break:break-all}.attachments .oembed .text h1{font-size:14px;margin:0}.attachments .image-attachment{width:100%;height:100%}.attachments .image-attachment.hidden{display:none}.attachments .image-attachment .nsfw{-o-object-fit:cover;object-fit:cover;width:100%;height:100%}.attachments .image-attachment img{image-orientation:from-image}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./poll.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"1a8b173f\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".poll .votes{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;margin:0 0 .5em}.poll .poll-option{margin:.75em .5em}.poll .option-result{height:100%;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;position:relative;color:#b9b9ba;color:var(--lightText,#b9b9ba)}.poll .option-result-label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.1em .25em;z-index:1}.poll .result-percentage{width:3.5em;-ms-flex-negative:0;flex-shrink:0}.poll .result-fill{height:100%;position:absolute;color:#b9b9ba;color:var(--pollText,#b9b9ba);background-color:#151e2a;background-color:var(--poll,#151e2a);border-radius:10px;border-radius:var(--panelRadius,10px);top:0;left:0;transition:width .5s}.poll .option-vote{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.poll input{width:3.5em}.poll .footer{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.poll.loading *{cursor:progress}.poll .poll-vote-button{padding:0 .5em;margin-right:.5em}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./gallery.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"6c9d5cbc\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".gallery-row{position:relative;height:0;width:100%;-ms-flex-positive:1;flex-grow:1;margin-top:.5em}.gallery-row .gallery-row-inner{position:absolute;top:0;left:0;right:0;bottom:0;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-line-pack:stretch;align-content:stretch}.gallery-row .attachment.image{margin:0 .5em 0 0;-ms-flex-positive:1;flex-grow:1;height:100%;box-sizing:border-box;min-width:2em}.gallery-row .attachment.image:last-child{margin:0}.gallery-row .image-attachment{width:100%;height:100%}.gallery-row .video-container{height:100%}.gallery-row.contain-fit canvas,.gallery-row.contain-fit img,.gallery-row.contain-fit video{-o-object-fit:contain;object-fit:contain}.gallery-row.cover-fit canvas,.gallery-row.cover-fit img,.gallery-row.cover-fit video{-o-object-fit:cover;object-fit:cover}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./link-preview.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"c13d6bee\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".link-preview-card{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;cursor:pointer;overflow:hidden;margin-top:.5em;color:#b9b9ba;color:var(--text,#b9b9ba);border-radius:10px;border-radius:var(--attachmentRadius,10px);border-color:#222;border:1px solid var(--border,#222)}.link-preview-card .card-image{-ms-flex-negative:0;flex-shrink:0;width:120px;max-width:25%}.link-preview-card .card-image img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;border-radius:10px;border-radius:var(--attachmentRadius,10px)}.link-preview-card .small-image{width:80px}.link-preview-card .card-content{max-height:100%;margin:.5em;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.link-preview-card .card-host{font-size:12px}.link-preview-card .card-description{margin:.5em 0 0;overflow:hidden;text-overflow:ellipsis;word-break:break-word;line-height:1.2em;max-height:calc(1.2em * 3 - 1px)}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./status_popover.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"14cff5b4\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".status-popover{font-size:1rem;min-width:15em;max-width:95%;border-color:#222;border:1px solid var(--border,#222);border-radius:5px;border-radius:var(--tooltipRadius,5px);box-shadow:2px 2px 3px rgba(0,0,0,.5);box-shadow:var(--popupShadow)}.status-popover .status-el.status-el{border:none}.status-popover .status-preview-no-content{padding:1em;text-align:center}.status-popover .status-preview-no-content i{font-size:2em}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./emoji_reactions.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"cf35b50a\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".emoji-reactions{display:-ms-flexbox;display:flex;margin-top:.25em;-ms-flex-wrap:wrap;flex-wrap:wrap}.reacted-users{padding:.5em}.reacted-user{padding:.25em;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row}.reacted-user .reacted-user-names{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;margin-left:.5em;min-width:5em}.reacted-user .reacted-user-names img{width:1em;height:1em}.reacted-user .reacted-user-screen-name{font-size:9px}.emoji-reaction{padding:0 .5em;margin-right:.5em;margin-top:.5em;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;box-sizing:border-box}.emoji-reaction .reaction-emoji{width:1.25em;margin-right:.25em}.emoji-reaction:focus{outline:none}.emoji-reaction.not-clickable{cursor:default}.emoji-reaction.not-clickable:hover{box-shadow:0 0 2px 0 #000,inset 0 1px 0 0 hsla(0,0%,100%,.2),inset 0 -1px 0 0 rgba(0,0,0,.2);box-shadow:var(--buttonShadow)}.emoji-reaction-expand{padding:0 .5em;margin-right:.5em;margin-top:.5em;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.emoji-reaction-expand:hover{text-decoration:underline}.picked-reaction{border:1px solid var(--accent,#d8a070);margin-left:-1px;margin-right:calc(.5em - 1px)}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./conversation.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"93498d0a\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".timeline .panel-disabled .status-el{border-left:none;border-bottom-width:1px;border-bottom-style:solid;border-color:var(--border,#222);border-radius:0}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!./notifications.scss\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"87e1cf2e\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".notifications:not(.minimal){padding-bottom:15em}.notifications .loadmore-error{color:#b9b9ba;color:var(--text,#b9b9ba)}.notifications .notification{position:relative}.notifications .notification .notification-overlay{position:absolute;top:0;right:0;left:0;bottom:0;pointer-events:none}.notifications .notification.unseen .notification-overlay{background-image:linear-gradient(135deg,var(--badgeNotification,red) 4px,transparent 10px)}.notification{box-sizing:border-box;border-bottom:1px solid;border-color:#222;border-color:var(--border,#222)}.notification:hover .animated.avatar canvas{display:none}.notification:hover .animated.avatar img{visibility:visible}.notification .muted{padding:.25em .6em}.notification .non-mention{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-wrap:nowrap;flex-wrap:nowrap;padding:.6em;min-width:0}.notification .non-mention .avatar-container{width:32px;height:32px}.notification .non-mention .status-el{padding:0}.notification .non-mention .status-el .status{padding:.25em 0;color:hsla(240,1%,73%,.5);color:var(--faint,hsla(240,1%,73%,.5))}.notification .non-mention .status-el .status a{color:var(--faintLink)}.notification .non-mention .status-el .status .status-content a{color:var(--postFaintLink)}.notification .non-mention .status-el .media-body{margin:0}.notification .follow-request-accept{cursor:pointer}.notification .follow-request-accept:hover{color:#b9b9ba;color:var(--text,#b9b9ba)}.notification .follow-request-reject{cursor:pointer}.notification .follow-request-reject:hover{color:red;color:var(--cRed,red)}.notification .follow-text,.notification .move-text{padding:.5em 0;overflow-wrap:break-word;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}.notification .follow-text .follow-name,.notification .move-text .follow-name{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notification .status-el{-ms-flex:1;flex:1}.notification time{white-space:nowrap}.notification .notification-right{-ms-flex:1;flex:1;padding-left:.8em;min-width:0}.notification .emoji-reaction-emoji{font-size:16px}.notification .notification-details{min-width:0;word-wrap:break-word;line-height:18px;position:relative;overflow:hidden;width:100%;-ms-flex:1 1 0px;flex:1 1 0;display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-pack:justify;justify-content:space-between}.notification .notification-details .name-and-action{-ms-flex:1;flex:1;overflow:hidden;text-overflow:ellipsis}.notification .notification-details .username{font-weight:bolder;max-width:100%;text-overflow:ellipsis;white-space:nowrap}.notification .notification-details .username img{width:14px;height:14px;vertical-align:middle;-o-object-fit:contain;object-fit:contain}.notification .notification-details .timeago{margin-right:.2em}.notification .notification-details .icon-retweet.lit{color:#0fa00f;color:var(--cGreen,#0fa00f)}.notification .notification-details .icon-reply.lit,.notification .notification-details .icon-user-plus.lit,.notification .notification-details .icon-user.lit{color:#0095ff;color:var(--cBlue,#0095ff)}.notification .notification-details .icon-star.lit{color:orange;color:var(--cOrange,orange)}.notification .notification-details .icon-arrow-curved.lit{color:#0095ff;color:var(--cBlue,#0095ff)}.notification .notification-details .status-content{margin:0;max-height:300px}.notification .notification-details h1{word-break:break-all;margin:0 0 .3em;padding:0;font-size:1em;line-height:20px}.notification .notification-details h1 small{font-weight:lighter}.notification .notification-details p{margin:0;margin-top:0;margin-bottom:.3em}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./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 .theme-warning{display:-ms-flexbox;display:flex;-ms-flex-align:baseline;align-items:baseline;margin-bottom:.5em}.style-switcher .theme-warning .buttons .btn{margin-bottom:.5em}.style-switcher .preset-switcher{margin-right:1em}.style-switcher .style-control{display:-ms-flexbox;display:flex;-ms-flex-align:baseline;align-items:baseline;margin-bottom:5px}.style-switcher .style-control .label{-ms-flex:1;flex:1}.style-switcher .style-control.disabled input,.style-switcher .style-control.disabled select{opacity:.5}.style-switcher .style-control .opt{margin:.5em}.style-switcher .style-control .color-input{-ms-flex:0 0 0px;flex:0 0 0}.style-switcher .style-control input,.style-switcher .style-control select{min-width:3em;margin:0;-ms-flex:0;flex:0}.style-switcher .style-control input[type=number],.style-switcher .style-control select[type=number]{min-width:5em}.style-switcher .style-control input[type=range],.style-switcher .style-control select[type=range]{-ms-flex:1;flex:1;min-width:3em;-ms-flex-item-align:start;align-self:flex-start}.style-switcher .tab-switcher{margin:0 -1em}.style-switcher .reset-container{-ms-flex-wrap:wrap;flex-wrap:wrap}.style-switcher .apply-container,.style-switcher .color-container,.style-switcher .fonts-container,.style-switcher .radius-container,.style-switcher .reset-container{display:-ms-flexbox;display:flex}.style-switcher .fonts-container,.style-switcher .radius-container{-ms-flex-direction:column;flex-direction:column}.style-switcher .color-container{-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:justify;justify-content:space-between}.style-switcher .color-container>h4{width:99%}.style-switcher .color-container,.style-switcher .fonts-container,.style-switcher .presets-container,.style-switcher .radius-container,.style-switcher .shadow-container{margin:1em 1em 0}.style-switcher .tab-header{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:baseline;align-items:baseline;width:100%;min-height:30px;margin-bottom:1em}.style-switcher .tab-header .btn{min-width:1px;-ms-flex:0 auto;flex:0 auto;padding:0 1em}.style-switcher .tab-header p{-ms-flex:1;flex:1;margin:0;margin-right:.5em}.style-switcher .shadow-selector .override{-ms-flex:1;flex:1;margin-left:.5em}.style-switcher .shadow-selector .select-container{margin-top:-4px;margin-bottom:-3px}.style-switcher .save-load,.style-switcher .save-load-options{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:baseline;align-items:baseline;-ms-flex-wrap:wrap;flex-wrap:wrap}.style-switcher .save-load-options .import-export,.style-switcher .save-load-options .presets,.style-switcher .save-load .import-export,.style-switcher .save-load .presets{margin-bottom:.5em}.style-switcher .save-load-options .import-export,.style-switcher .save-load .import-export{display:-ms-flexbox;display:flex}.style-switcher .save-load-options .override,.style-switcher .save-load .override{margin-left:.5em}.style-switcher .save-load-options{-ms-flex-wrap:wrap;flex-wrap:wrap;margin-top:.5em;-ms-flex-pack:center;justify-content:center}.style-switcher .save-load-options .keep-option{margin:0 .5em .5em;min-width:25%}.style-switcher .preview-container{border-top:1px dashed;border-bottom:1px dashed;border-color:#222;border-color:var(--border,#222);margin:1em -1em 0;padding:1em;background:var(--body-background-image);background-size:cover;background-position:50% 50%}.style-switcher .preview-container .dummy .post{font-family:var(--postFont);display:-ms-flexbox;display:flex}.style-switcher .preview-container .dummy .post .content{-ms-flex:1;flex:1}.style-switcher .preview-container .dummy .post .content h4{margin-bottom:.25em}.style-switcher .preview-container .dummy .post .content .icons{margin-top:.5em;display:-ms-flexbox;display:flex}.style-switcher .preview-container .dummy .post .content .icons i{margin-right:1em}.style-switcher .preview-container .dummy .after-post{margin-top:1em;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.style-switcher .preview-container .dummy .avatar,.style-switcher .preview-container .dummy .avatar-alt{background:linear-gradient(135deg,#b8e1fc,#a9d2f3 10%,#90bae4 25%,#90bcea 37%,#90bff0 50%,#6ba8e5 51%,#a2daf5 83%,#bdf3fd);color:#000;font-family:sans-serif;text-align:center;margin-right:1em}.style-switcher .preview-container .dummy .avatar-alt{-ms-flex:0 auto;flex:0 auto;margin-left:28px;font-size:12px;min-width:20px;min-height:20px;line-height:20px;border-radius:10px;border-radius:var(--avatarAltRadius,10px)}.style-switcher .preview-container .dummy .avatar{-ms-flex:0 auto;flex:0 auto;width:48px;height:48px;font-size:14px;line-height:48px}.style-switcher .preview-container .dummy .actions{display:-ms-flexbox;display:flex;-ms-flex-align:baseline;align-items:baseline}.style-switcher .preview-container .dummy .actions .checkbox{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:baseline;align-items:baseline;margin-right:1em;-ms-flex:1;flex:1}.style-switcher .preview-container .dummy .separator{margin:1em;border-bottom:1px solid;border-color:#222;border-color:var(--border,#222)}.style-switcher .preview-container .dummy .panel-heading .alert,.style-switcher .preview-container .dummy .panel-heading .badge,.style-switcher .preview-container .dummy .panel-heading .btn,.style-switcher .preview-container .dummy .panel-heading .faint{margin-left:1em;white-space:nowrap}.style-switcher .preview-container .dummy .panel-heading .faint{text-overflow:ellipsis;min-width:2em;overflow-x:hidden}.style-switcher .preview-container .dummy .panel-heading .flex-spacer{-ms-flex:1;flex:1}.style-switcher .preview-container .dummy .btn{margin-left:0;padding:0 1em;min-width:3em;min-height:30px}.style-switcher .apply-container{-ms-flex-pack:center;justify-content:center}.style-switcher .color-item,.style-switcher .radius-item{min-width:20em;margin:5px 6px 0 0;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex:1 1 0px;flex:1 1 0}.style-switcher .color-item.wide,.style-switcher .radius-item.wide{min-width:60%}.style-switcher .color-item:not(.wide):nth-child(odd),.style-switcher .radius-item:not(.wide):nth-child(odd){margin-right:7px}.style-switcher .color-item .color,.style-switcher .color-item .opacity,.style-switcher .radius-item .color,.style-switcher .radius-item .opacity{display:-ms-flexbox;display:flex;-ms-flex-align:baseline;align-items:baseline}.style-switcher .radius-item{-ms-flex-preferred-size:auto;flex-basis:auto}.style-switcher .theme-color-cl,.style-switcher .theme-radius-rn{border:0;box-shadow:none;background:transparent;color:var(--faint,hsla(240,1%,73%,.5));-ms-flex-item-align:stretch;-ms-grid-row-align:stretch;align-self:stretch}.style-switcher .theme-color-cl,.style-switcher .theme-color-in,.style-switcher .theme-radius-in{margin-left:4px}.style-switcher .theme-radius-in{min-width:1em;max-width:7em;-ms-flex:1;flex:1}.style-switcher .theme-radius-lb{max-width:50em}.style-switcher .theme-preview-content{padding:20px}.style-switcher .btn{margin-left:.25em;margin-right:.25em}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!./color_input.scss\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"7e57f952\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".color-input,.color-input-field.input{display:-ms-inline-flexbox;display:inline-flex}.color-input-field.input{-ms-flex:0 0 0px;flex:0 0 0;max-width:9em;-ms-flex-align:stretch;align-items:stretch;padding:.2em 8px}.color-input-field.input input{background:none;color:#b9b9ba;color:var(--inputText,#b9b9ba);border:none;padding:0;margin:0}.color-input-field.input input.textColor{-ms-flex:1 0 3em;flex:1 0 3em;min-width:3em;padding:0}.color-input-field.input .computedIndicator,.color-input-field.input .transparentIndicator,.color-input-field.input input.nativeColor{-ms-flex:0 0 2em;flex:0 0 2em;min-width:2em;-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center;height:100%}.color-input-field.input .transparentIndicator{background-color:#f0f;position:relative}.color-input-field.input .transparentIndicator:after,.color-input-field.input .transparentIndicator:before{display:block;content:\\\"\\\";background-color:#000;position:absolute;height:50%;width:50%}.color-input-field.input .transparentIndicator:after{top:0;left:0}.color-input-field.input .transparentIndicator:before{bottom:0;right:0}.color-input .label{-ms-flex:1 1 auto;flex:1 1 auto}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=1!./color_input.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"6c632637\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".color-control input.text-input{max-width:7em;-ms-flex:1;flex:1}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./shadow_control.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"d219da80\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".shadow-control{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:center;justify-content:center;margin-bottom:1em}.shadow-control .shadow-preview-container,.shadow-control .shadow-tweak{margin:5px 6px 0 0}.shadow-control .shadow-preview-container{-ms-flex:0;flex:0;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.shadow-control .shadow-preview-container input[type=number]{width:5em;min-width:2em}.shadow-control .shadow-preview-container .x-shift-control,.shadow-control .shadow-preview-container .y-shift-control{display:-ms-flexbox;display:flex;-ms-flex:0;flex:0}.shadow-control .shadow-preview-container .x-shift-control[disabled=disabled] *,.shadow-control .shadow-preview-container .y-shift-control[disabled=disabled] *{opacity:.5}.shadow-control .shadow-preview-container .x-shift-control{-ms-flex-align:start;align-items:flex-start}.shadow-control .shadow-preview-container .x-shift-control .wrap,.shadow-control .shadow-preview-container input[type=range]{margin:0;width:15em;height:2em}.shadow-control .shadow-preview-container .y-shift-control{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:end;align-items:flex-end}.shadow-control .shadow-preview-container .y-shift-control .wrap{width:2em;height:15em}.shadow-control .shadow-preview-container .y-shift-control input[type=range]{transform-origin:1em 1em;transform:rotate(90deg)}.shadow-control .shadow-preview-container .preview-window{-ms-flex:1;flex:1;background-color:#999;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;background-image:linear-gradient(45deg,#666 25%,transparent 0),linear-gradient(-45deg,#666 25%,transparent 0),linear-gradient(45deg,transparent 75%,#666 0),linear-gradient(-45deg,transparent 75%,#666 0);background-size:20px 20px;background-position:0 0,0 10px,10px -10px,-10px 0;border-radius:4px;border-radius:var(--inputRadius,4px)}.shadow-control .shadow-preview-container .preview-window .preview-block{width:33%;height:33%;background-color:#121a24;background-color:var(--bg,#121a24);border-radius:10px;border-radius:var(--panelRadius,10px)}.shadow-control .shadow-tweak{-ms-flex:1;flex:1;min-width:280px}.shadow-control .shadow-tweak .id-control{-ms-flex-align:stretch;align-items:stretch}.shadow-control .shadow-tweak .id-control .btn,.shadow-control .shadow-tweak .id-control .select{min-width:1px;margin-right:5px}.shadow-control .shadow-tweak .id-control .btn{padding:0 .4em;margin:0 .1em}.shadow-control .shadow-tweak .id-control .select{-ms-flex:1;flex:1}.shadow-control .shadow-tweak .id-control .select select{-ms-flex-item-align:initial;-ms-grid-row-align:initial;align-self:auto}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./font_control.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"d9c0acde\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".font-control input.custom-font{min-width:10em}.font-control.custom .select{border-top-right-radius:0;border-bottom-right-radius:0}.font-control.custom .custom-font{border-top-left-radius:0;border-bottom-left-radius:0}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./contrast_ratio.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"b94bc120\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".contrast-ratio{display:-ms-flexbox;display:flex;-ms-flex-pack:end;justify-content:flex-end;margin-top:-4px;margin-bottom:5px}.contrast-ratio .label{margin-right:1em}.contrast-ratio .rating{display:inline-block;text-align:center}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./preview.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"8d67a4f2\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".preview-container{position:relative}.underlay-preview{position:absolute;top:0;bottom:0;left:10px;right:10px}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./export_import.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"66a4eaba\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".import-export-container{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:baseline;align-items:baseline;-ms-flex-pack:center;justify-content:center}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./registration.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"16815f76\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".registration-form{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;margin:.6em}.registration-form .container{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row}.registration-form .terms-of-service{-ms-flex:0 1 50%;flex:0 1 50%;margin:.8em}.registration-form .text-fields{margin-top:.6em;-ms-flex:1 0;flex:1 0;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.registration-form textarea{min-height:100px;resize:vertical}.registration-form .form-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding:.3em 0;line-height:24px;margin-bottom:1em}.registration-form .form-group--error{animation-name:shakeError;animation-duration:.6s;animation-timing-function:ease-in-out}.registration-form .form-group--error .form--label{color:#f04124;color:var(--cRed,#f04124)}.registration-form .form-error{margin-top:-.7em;text-align:left}.registration-form .form-error span{font-size:12px}.registration-form .form-error ul{list-style:none;padding:0 0 0 5px;margin-top:0}.registration-form .form-error ul li:before{content:\\\"\\\\2022 \\\"}.registration-form form textarea{line-height:16px;resize:vertical}.registration-form .captcha{max-width:350px;margin-bottom:.4em}.registration-form .btn{margin-top:.6em;height:28px}.registration-form .error{text-align:center}@media (max-width:800px){.registration-form .container{-ms-flex-direction:column-reverse;flex-direction:column-reverse}}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./password_reset.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"1ef4fd93\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".password-reset-form{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;margin:.6em}.password-reset-form .container{display:-ms-flexbox;display:flex;-ms-flex:1 0;flex:1 0;-ms-flex-direction:column;flex-direction:column;margin-top:.6em;max-width:18rem}.password-reset-form .form-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;margin-bottom:1em;padding:.3em 0;line-height:24px}.password-reset-form .error{text-align:center;animation-name:shakeError;animation-duration:.4s;animation-timing-function:ease-in-out}.password-reset-form .alert{padding:.5em;margin:.3em 0 1em}.password-reset-form .password-reset-required{background-color:var(--alertError,rgba(211,16,20,.5));padding:10px 0}.password-reset-form .notice-dismissible{padding-right:2rem}.password-reset-form .icon-cancel{cursor:pointer}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./user_settings.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"298db8e1\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".profile-edit .bio{margin:0}.profile-edit .visibility-tray{padding-top:5px}.profile-edit input[type=file]{padding:5px;height:auto}.profile-edit .banner{max-width:100%}.profile-edit .uploading{font-size:1.5em;margin:.25em}.profile-edit .name-changer{width:100%}.profile-edit .bg{max-width:100%}.profile-edit .current-avatar{display:block;width:150px;height:150px;border-radius:4px;border-radius:var(--avatarRadius,4px)}.profile-edit .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-domain-mute-form{padding:1em;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.profile-edit-domain-mute-form button{-ms-flex-item-align:end;align-self:flex-end;margin-top:1em;width:10em}.profile-edit .setting-subitem{margin-left:1.75em}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./image_cropper.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"0dfd0b33\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".image-cropper-img-input{display:none}.image-cropper-image-container{position:relative}.image-cropper-image-container img{display:block;max-width:100%}.image-cropper-buttons-wrapper{margin-top:10px}.image-cropper-buttons-wrapper button{margin-top:5px}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./block_card.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"211aa67c\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".block-card-content-container{margin-top:.5em;text-align:right}.block-card-content-container button{width:10em}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./mute_card.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"7ea980e0\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".mute-card-content-container{margin-top:.5em;text-align:right}.mute-card-content-container button{width:10em}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./domain_mute_card.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"39a942c3\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".domain-mute-card{-ms-flex:1 0;flex:1 0;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center;padding:.6em 1em .6em 0}.domain-mute-card-domain{margin-right:1em;overflow:hidden;text-overflow:ellipsis}.domain-mute-card button{width:10em}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./selectable_list.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"3724291e\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".selectable-list-item-inner{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.selectable-list-item-inner>*{min-width:0}.selectable-list-item-selected-inner{background-color:#151e2a;background-color:var(--selectedMenu,#151e2a);color:var(--selectedMenuText,#b9b9ba);--faint:var(--selectedMenuFaintText,$fallback--faint);--faintLink:var(--selectedMenuFaintLink,$fallback--faint);--lightText:var(--selectedMenuLightText,$fallback--lightText);--icon:var(--selectedMenuIcon,$fallback--icon)}.selectable-list-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.6em 0;border-bottom:2px solid;border-bottom-color:#222;border-bottom-color:var(--border,#222)}.selectable-list-header-actions{-ms-flex:1;flex:1}.selectable-list-checkbox-wrapper{padding:0 10px;-ms-flex:none;flex:none}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./autosuggest.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"3a9ec1bf\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".autosuggest{position:relative}.autosuggest-input{display:block;width:100%}.autosuggest-results{position:absolute;left:0;top:100%;right:0;max-height:400px;background-color:#121a24;background-color:var(--bg,#121a24);border-color:#222;border:1px solid var(--border,#222);border-radius:4px;border-radius:var(--inputRadius,4px);border-top-left-radius:0;border-top-right-radius:0;box-shadow:1px 1px 4px rgba(0,0,0,.6);box-shadow:var(--panelShadow);overflow-y:auto;z-index:1}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./importer.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"5bed876c\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".importer-uploading{font-size:1.5em;margin:.25em}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./exporter.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"432fc7c6\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".exporter-processing{font-size:1.5em;margin:.25em}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./mfa.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"9a989dfe\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".warning{color:orange;color:var(--cOrange,orange)}.mfa-settings .method-item,.mfa-settings .mfa-heading{overflow:hidden;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:baseline;align-items:baseline}.mfa-settings .setup-otp{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-wrap:wrap;flex-wrap:wrap}.mfa-settings .setup-otp .qr-code{-ms-flex:1;flex:1;padding-right:10px}.mfa-settings .setup-otp .verify{-ms-flex:1;flex:1}.mfa-settings .setup-otp .error{margin:4px 0 0}.mfa-settings .setup-otp .confirm-otp-actions button{width:15em;margin-top:5px}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./mfa_backup_codes.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"12659079\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".warning{color:orange;color:var(--cOrange,orange)}.backup-codes{font-family:var(--postCodeFont,monospace)}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./follow_request_card.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"ad510f10\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".follow-request-card-content-container{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap}.follow-request-card-content-container button{margin-top:.5em;margin-right:.5em;-ms-flex:1 1;flex:1 1;max-width:12em;min-width:8em}.follow-request-card-content-container button:last-child{margin-right:0}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./login_form.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"42704024\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".login-form{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding:.6em}.login-form .btn{min-height:28px;width:10em}.login-form .register{-ms-flex:1 1;flex:1 1}.login-form .login-bottom{margin-top:1em;display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.login-form .form-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding:.3em .5em .6em;line-height:24px}.login-form .form-bottom{display:-ms-flexbox;display:flex;padding:.5em;height:32px}.login-form .form-bottom button{width:10em}.login-form .form-bottom p{margin:.35em;padding:.35em;display:-ms-flexbox;display:flex}.login-form .error{text-align:center;animation-name:shakeError;animation-duration:.4s;animation-timing-function:ease-in-out}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./chat_panel.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"2c0040e1\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".floating-chat{position:fixed;right:0;bottom:0;z-index:1000;max-width:25em}.chat-heading{cursor:pointer}.chat-heading .icon-comment-empty{color:#b9b9ba;color:var(--text,#b9b9ba)}.chat-window{overflow-y:auto;overflow-x:hidden;max-height:20em}.chat-window-container{height:100%}.chat-message{display:-ms-flexbox;display:flex;padding:.2em .5em}.chat-avatar img{height:24px;width:24px;border-radius:4px;border-radius:var(--avatarRadius,4px);margin-right:.5em;margin-top:.25em}.chat-input{display:-ms-flexbox;display:flex}.chat-input textarea{-ms-flex:1;flex:1;margin:.6em;min-height:3.5em;resize:none}.chat-panel .title{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./who_to_follow.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"c74f4f44\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./about.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"7dfaed97\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./features_panel.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"55ca8508\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".features-panel li{line-height:24px}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./terms_of_service_panel.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"42aabc98\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".tos-content{margin:1em}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./staff_panel.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"5aa588af\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./mrf_transparency_panel.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"72647543\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".mrf-section{margin:1em}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./remote_user_resolver.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"67a8aa3d\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../node_modules/css-loader/index.js?minimize!../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../node_modules/sass-loader/lib/loader.js!./App.scss\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"5c806d03\", content, true, {});","exports = module.exports = require(\"../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"#app{min-height:100vh;max-width:100%;overflow:hidden}.app-bg-wrapper{position:fixed;z-index:-1;height:100%;left:0;right:-20px;background-size:cover;background-repeat:no-repeat;background-position:0 50%}i[class^=icon-]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}h4{margin:0}#content{box-sizing:border-box;padding-top:60px;margin:auto;min-height:100vh;max-width:980px;-ms-flex-line-pack:start;align-content:flex-start}.underlay{background-color:rgba(0,0,0,.15);background-color:var(--underlay,rgba(0,0,0,.15))}.text-center{text-align:center}html{font-size:14px}body{font-family:sans-serif;font-family:var(--interfaceFont,sans-serif);margin:0;color:#b9b9ba;color:var(--text,#b9b9ba);max-width:100vw;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body.hidden{display:none}a{text-decoration:none;color:#d8a070;color:var(--link,#d8a070)}button{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#182230;background-color:var(--btn,#182230);border:none;border-radius:4px;border-radius:var(--btnRadius,4px);cursor:pointer;box-shadow:0 0 2px 0 #000,inset 0 1px 0 0 hsla(0,0%,100%,.2),inset 0 -1px 0 0 rgba(0,0,0,.2);box-shadow:var(--buttonShadow);font-size:14px;font-family:sans-serif;font-family:var(--interfaceFont,sans-serif)}button,button i[class*=icon-]{color:#b9b9ba;color:var(--btnText,#b9b9ba)}button::-moz-focus-inner{border:none}button:hover{box-shadow:0 0 4px hsla(0,0%,100%,.3);box-shadow:var(--buttonHoverShadow)}button:active{box-shadow:0 0 4px 0 hsla(0,0%,100%,.3),inset 0 1px 0 0 rgba(0,0,0,.2),inset 0 -1px 0 0 hsla(0,0%,100%,.2);box-shadow:var(--buttonPressedShadow);background-color:#182230;background-color:var(--btnPressed,#182230)}button:active,button:active i{color:#b9b9ba;color:var(--btnPressedText,#b9b9ba)}button:disabled{cursor:not-allowed;background-color:#182230;background-color:var(--btnDisabled,#182230)}button:disabled,button:disabled i{color:#b9b9ba;color:var(--btnDisabledText,#b9b9ba)}button.toggled{background-color:#182230;background-color:var(--btnToggled,#182230);box-shadow:0 0 4px 0 hsla(0,0%,100%,.3),inset 0 1px 0 0 rgba(0,0,0,.2),inset 0 -1px 0 0 hsla(0,0%,100%,.2);box-shadow:var(--buttonPressedShadow)}button.toggled,button.toggled i{color:#b9b9ba;color:var(--btnToggledText,#b9b9ba)}button.danger{color:#b9b9ba;color:var(--alertErrorPanelText,#b9b9ba);background-color:rgba(211,16,20,.5);background-color:var(--alertError,rgba(211,16,20,.5))}.input,.select,input,textarea{border:none;border-radius:4px;border-radius:var(--inputRadius,4px);box-shadow:inset 0 1px 0 0 rgba(0,0,0,.2),inset 0 -1px 0 0 hsla(0,0%,100%,.2),inset 0 0 2px 0 #000;box-shadow:var(--inputShadow);background-color:#182230;background-color:var(--input,#182230);color:#b9b9ba;color:var(--inputText,#b9b9ba);font-family:sans-serif;font-family:var(--inputFont,sans-serif);font-size:14px;margin:0;box-sizing:border-box;display:inline-block;position:relative;height:28px;line-height:16px;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none;padding:8px .5em}.input.unstyled,.select.unstyled,input.unstyled,textarea.unstyled{border-radius:0;background:none;box-shadow:none;height:unset}.input.select,.select.select,input.select,textarea.select{padding:0}.input:disabled,.input[disabled=disabled],.select:disabled,.select[disabled=disabled],input:disabled,input[disabled=disabled],textarea:disabled,textarea[disabled=disabled]{cursor:not-allowed;opacity:.5}.input .icon-down-open,.select .icon-down-open,input .icon-down-open,textarea .icon-down-open{position:absolute;top:0;bottom:0;right:5px;height:100%;color:#b9b9ba;color:var(--inputText,#b9b9ba);line-height:28px;z-index:0;pointer-events:none}.input select,.select select,input select,textarea select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:none;color:#b9b9ba;color:var(--inputText,--text,#b9b9ba);margin:0;padding:0 2em 0 .2em;font-family:sans-serif;font-family:var(--inputFont,sans-serif);font-size:14px;width:100%;z-index:1;height:28px;line-height:16px}.input[type=range],.select[type=range],input[type=range],textarea[type=range]{background:none;border:none;margin:0;box-shadow:none;-ms-flex:1;flex:1}.input[type=radio],.select[type=radio],input[type=radio],textarea[type=radio]{display:none}.input[type=radio]:checked+label:before,.select[type=radio]:checked+label:before,input[type=radio]:checked+label:before,textarea[type=radio]:checked+label:before{box-shadow:inset 0 0 2px #000,inset 0 0 0 4px #182230;box-shadow:var(--inputShadow),0 0 0 4px var(--fg,#182230) inset;background-color:var(--accent,#d8a070)}.input[type=radio]:disabled,.input[type=radio]:disabled+label,.input[type=radio]:disabled+label:before,.select[type=radio]:disabled,.select[type=radio]:disabled+label,.select[type=radio]:disabled+label:before,input[type=radio]:disabled,input[type=radio]:disabled+label,input[type=radio]:disabled+label:before,textarea[type=radio]:disabled,textarea[type=radio]:disabled+label,textarea[type=radio]:disabled+label:before{opacity:.5}.input[type=radio]+label:before,.select[type=radio]+label:before,input[type=radio]+label:before,textarea[type=radio]+label:before{-ms-flex-negative:0;flex-shrink:0;display:inline-block;content:\\\"\\\";transition:box-shadow .2s;width:1.1em;height:1.1em;border-radius:100%;box-shadow:inset 0 0 2px #000;box-shadow:var(--inputShadow);margin-right:.5em;background-color:#182230;background-color:var(--input,#182230);vertical-align:top;text-align:center;line-height:1.1em;font-size:1.1em;color:transparent;overflow:hidden;box-sizing:border-box}.input[type=checkbox],.select[type=checkbox],input[type=checkbox],textarea[type=checkbox]{display:none}.input[type=checkbox]:checked+label:before,.select[type=checkbox]:checked+label:before,input[type=checkbox]:checked+label:before,textarea[type=checkbox]:checked+label:before{color:#b9b9ba;color:var(--inputText,#b9b9ba)}.input[type=checkbox]:disabled,.input[type=checkbox]:disabled+label,.input[type=checkbox]:disabled+label:before,.select[type=checkbox]:disabled,.select[type=checkbox]:disabled+label,.select[type=checkbox]:disabled+label:before,input[type=checkbox]:disabled,input[type=checkbox]:disabled+label,input[type=checkbox]:disabled+label:before,textarea[type=checkbox]:disabled,textarea[type=checkbox]:disabled+label,textarea[type=checkbox]:disabled+label:before{opacity:.5}.input[type=checkbox]+label:before,.select[type=checkbox]+label:before,input[type=checkbox]+label:before,textarea[type=checkbox]+label:before{-ms-flex-negative:0;flex-shrink:0;display:inline-block;content:\\\"\\\\2714\\\";transition:color .2s;width:1.1em;height:1.1em;border-radius:2px;border-radius:var(--checkboxRadius,2px);box-shadow:inset 0 0 2px #000;box-shadow:var(--inputShadow);margin-right:.5em;background-color:#182230;background-color:var(--input,#182230);vertical-align:top;text-align:center;line-height:1.1em;font-size:1.1em;color:transparent;overflow:hidden;box-sizing:border-box}option{color:#b9b9ba;color:var(--text,#b9b9ba);background-color:#121a24;background-color:var(--bg,#121a24)}.hide-number-spinner{-moz-appearance:textfield}.hide-number-spinner[type=number]::-webkit-inner-spin-button,.hide-number-spinner[type=number]::-webkit-outer-spin-button{opacity:0;display:none}i[class*=icon-]{color:#666;color:var(--icon,#666)}.btn-block{display:block;width:100%}.btn-group{position:relative;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group button{position:relative;-ms-flex:1 1 auto;flex:1 1 auto}.btn-group button:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group button:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.container{-ms-flex-wrap:wrap;flex-wrap:wrap;margin:0;padding:0 10px}.container,.item{display:-ms-flexbox;display:flex}.item{-ms-flex:1;flex:1;line-height:50px;height:50px;overflow:hidden;-ms-flex-wrap:wrap;flex-wrap:wrap}.item .nav-icon{margin-left:.4em}.item.right{-ms-flex-pack:end;justify-content:flex-end}.auto-size{-ms-flex:1;flex:1}.nav-bar{padding:0;width:100%;-ms-flex-align:center;align-items:center;position:fixed;height:50px;box-sizing:border-box}.nav-bar button,.nav-bar button i[class*=icon-]{color:#b9b9ba;color:var(--btnTopBarText,#b9b9ba)}.nav-bar button:active{background-color:#182230;background-color:var(--btnPressedTopBar,#182230);color:#b9b9ba;color:var(--btnPressedTopBarText,#b9b9ba)}.nav-bar button:disabled{color:#b9b9ba;color:var(--btnDisabledTopBarText,#b9b9ba)}.nav-bar button.toggled{color:#b9b9ba;color:var(--btnToggledTopBarText,#b9b9ba);background-color:#182230;background-color:var(--btnToggledTopBar,#182230)}.nav-bar .logo{display:-ms-flexbox;display:flex;-ms-flex-align:stretch;align-items:stretch;-ms-flex-pack:center;justify-content:center;-ms-flex:0 0 auto;flex:0 0 auto;z-index:-1;transition:opacity;transition-timing-function:ease-out;transition-duration:.1s}.nav-bar .logo,.nav-bar .logo .mask{position:absolute;top:0;bottom:0;left:0;right:0}.nav-bar .logo .mask{-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain;background-color:#182230;background-color:var(--topBarText,#182230)}.nav-bar .logo img{height:100%;-o-object-fit:contain;object-fit:contain;display:block;-ms-flex:0;flex:0}.nav-bar .inner-nav{position:relative;margin:auto;box-sizing:border-box;padding-left:10px;padding-right:10px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-preferred-size:970px;flex-basis:970px;height:50px}.nav-bar .inner-nav a,.nav-bar .inner-nav a i{color:#d8a070;color:var(--topBarLink,#d8a070)}main-router{-ms-flex:1;flex:1}.status.compact{color:rgba(0,0,0,.42);font-weight:300}.status.compact p{margin:0;font-size:.8em}.panel{display:-ms-flexbox;display:flex;position:relative;-ms-flex-direction:column;flex-direction:column;margin:.5em;background-color:#121a24;background-color:var(--bg,#121a24)}.panel,.panel:after{border-radius:10px;border-radius:var(--panelRadius,10px)}.panel:after{content:\\\"\\\";position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:none;box-shadow:1px 1px 4px rgba(0,0,0,.6);box-shadow:var(--panelShadow)}.panel-body:empty:before{content:\\\"\\\\AF\\\\\\\\_(\\\\30C4)_/\\\\AF\\\";display:block;margin:1em;text-align:center}.panel-heading{display:-ms-flexbox;display:flex;-ms-flex:none;flex:none;border-radius:10px 10px 0 0;border-radius:var(--panelRadius,10px) var(--panelRadius,10px) 0 0;background-size:cover;padding:.6em;text-align:left;line-height:28px;color:var(--panelText);background-color:#182230;background-color:var(--panel,#182230);-ms-flex-align:baseline;align-items:baseline;box-shadow:var(--panelHeaderShadow)}.panel-heading .title{-ms-flex:1 0 auto;flex:1 0 auto;font-size:1.3em}.panel-heading .faint{background-color:transparent;color:hsla(240,1%,73%,.5);color:var(--panelFaint,hsla(240,1%,73%,.5))}.panel-heading .faint-link{color:hsla(240,1%,73%,.5);color:var(--faintLink,hsla(240,1%,73%,.5))}.panel-heading .alert{white-space:nowrap;text-overflow:ellipsis;overflow-x:hidden}.panel-heading button{-ms-flex-negative:0;flex-shrink:0}.panel-heading .alert,.panel-heading button{line-height:21px;min-height:0;box-sizing:border-box;margin:0;margin-left:.25em;min-width:1px;-ms-flex-item-align:stretch;-ms-grid-row-align:stretch;align-self:stretch}.panel-heading button,.panel-heading button i[class*=icon-]{color:#b9b9ba;color:var(--btnPanelText,#b9b9ba)}.panel-heading button:active{background-color:#182230;background-color:var(--btnPressedPanel,#182230);color:#b9b9ba;color:var(--btnPressedPanelText,#b9b9ba)}.panel-heading button:disabled{color:#b9b9ba;color:var(--btnDisabledPanelText,#b9b9ba)}.panel-heading button.toggled{color:#b9b9ba;color:var(--btnToggledPanelText,#b9b9ba)}.panel-heading a{color:#d8a070;color:var(--panelLink,#d8a070)}.panel-heading.stub{border-radius:10px;border-radius:var(--panelRadius,10px)}.panel-footer{border-radius:0 0 10px 10px;border-radius:0 0 var(--panelRadius,10px) var(--panelRadius,10px)}.panel-footer .faint{color:hsla(240,1%,73%,.5);color:var(--panelFaint,hsla(240,1%,73%,.5))}.panel-footer a{color:#d8a070;color:var(--panelLink,#d8a070)}.panel-body>p{line-height:18px;padding:1em;margin:0}.container>*{min-width:0}.fa{color:grey}nav{z-index:1000;color:var(--topBarText);background-color:#182230;background-color:var(--topBar,#182230);color:hsla(240,1%,73%,.5);color:var(--faint,hsla(240,1%,73%,.5));box-shadow:0 0 4px rgba(0,0,0,.6);box-shadow:var(--topBarShadow)}.fade-enter-active,.fade-leave-active{transition:opacity .2s}.fade-enter,.fade-leave-active{opacity:0}.main{-ms-flex-preferred-size:50%;flex-basis:50%;-ms-flex-positive:1;flex-grow:1;-ms-flex-negative:1;flex-shrink:1}.sidebar-bounds{-ms-flex:0;flex:0;-ms-flex-preferred-size:35%;flex-basis:35%}.sidebar-flexer{-ms-flex:1;flex:1;-ms-flex-preferred-size:345px;flex-basis:345px;width:365px}.mobile-shown{display:none}@media (min-width:800px){body{overflow-y:scroll}.sidebar-bounds{overflow:hidden;max-height:100vh;width:345px;position:fixed;margin-top:-10px}.sidebar-bounds .sidebar-scroller{height:96vh;width:365px;padding-top:10px;padding-right:50px;overflow-x:hidden;overflow-y:scroll}.sidebar-bounds .sidebar{width:345px}.sidebar-flexer{max-height:96vh;-ms-flex-negative:0;flex-shrink:0;-ms-flex-positive:0;flex-grow:0}}.badge{display:inline-block;border-radius:99px;min-width:22px;max-width:22px;min-height:22px;max-height:22px;font-size:15px;line-height:22px;text-align:center;vertical-align:middle;white-space:nowrap;padding:0}.badge.badge-notification{background-color:red;background-color:var(--badgeNotification,red);color:#fff;color:var(--badgeNotificationText,#fff)}.alert{margin:.35em;padding:.25em;border-radius:5px;border-radius:var(--tooltipRadius,5px);min-height:28px;line-height:28px}.alert.error{background-color:rgba(211,16,20,.5);background-color:var(--alertError,rgba(211,16,20,.5));color:#b9b9ba;color:var(--alertErrorText,#b9b9ba)}.panel-heading .alert.error{color:#b9b9ba;color:var(--alertErrorPanelText,#b9b9ba)}.alert.warning{background-color:rgba(111,111,20,.5);background-color:var(--alertWarning,rgba(111,111,20,.5));color:#b9b9ba;color:var(--alertWarningText,#b9b9ba)}.panel-heading .alert.warning{color:#b9b9ba;color:var(--alertWarningPanelText,#b9b9ba)}.faint,.faint-link{color:hsla(240,1%,73%,.5);color:var(--faint,hsla(240,1%,73%,.5))}.faint-link:hover{text-decoration:underline}@media (min-width:800px){.logo{opacity:1!important}}.item.right{text-align:right}.visibility-notice{padding:.5em;border:1px solid hsla(240,1%,73%,.5);border:1px solid var(--faint,hsla(240,1%,73%,.5));border-radius:4px;border-radius:var(--inputRadius,4px)}.notice-dismissible{padding-right:4rem;position:relative}.notice-dismissible .dismiss{position:absolute;top:0;right:0;padding:.5em;color:inherit}.button-icon{font-size:1.2em}@keyframes shakeError{0%{transform:translateX(0)}15%{transform:translateX(.375rem)}30%{transform:translateX(-.375rem)}45%{transform:translateX(.375rem)}60%{transform:translateX(-.375rem)}75%{transform:translateX(.375rem)}90%{transform:translateX(-.375rem)}to{transform:translateX(0)}}@media (max-width:800px){.mobile-hidden{display:none}.panel-switcher{display:-ms-flexbox;display:flex}.container{padding:0}.panel{margin:.5em 0}.menu-button{display:block;margin-right:.8em}}.setting-item{border-bottom:2px solid var(--fg,#182230);margin:1em 1em 1.4em;padding-bottom:1.4em}.setting-item>div{margin-bottom:.5em}.setting-item>div:last-child{margin-bottom:0}.setting-item:last-child{border-bottom:none;padding-bottom:0;margin-bottom:1em}.setting-item select{min-width:10em}.setting-item textarea{width:100%;max-width:100%;height:100px}.setting-item .unavailable,.setting-item .unavailable i{color:var(--cRed,red);color:red}.setting-item .btn{min-height:28px;min-width:10em;padding:0 2em}.setting-item .number-input{max-width:6em}.select-multiple{display:-ms-flexbox;display:flex}.select-multiple .option-list{margin:0;padding-left:.5em}.option-list,.setting-list{list-style-type:none;padding-left:2em}.option-list li,.setting-list li{margin-bottom:.5em}.option-list .suboptions,.setting-list .suboptions{margin-top:.3em}.login-hint{text-align:center}@media (min-width:801px){.login-hint{display:none}}.login-hint a{display:inline-block;padding:1em 0;width:100%}.btn.btn-default{min-height:28px}.animate-spin{animation:spin 2s infinite linear;display:inline-block}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}.new-status-notification{position:relative;margin-top:-1px;font-size:1.1em;border-width:1px 0 0;border-style:solid;border-color:var(--border,#222);padding:10px;z-index:1;background-color:#182230;background-color:var(--panel,#182230)}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./user_panel.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"04d46dee\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".user-panel .signed-in{overflow:visible}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./nav_panel.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"b030addc\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".nav-panel .panel{overflow:hidden;box-shadow:var(--panelShadow)}.nav-panel ul{list-style:none;margin:0;padding:0}.follow-request-count{margin:-6px 10px;background-color:#121a24;background-color:var(--input,hsla(240,1%,73%,.5))}.nav-panel li{border-bottom:1px solid;border-color:#222;border-color:var(--border,#222);padding:0}.nav-panel li:first-child a{border-top-right-radius:10px;border-top-right-radius:var(--panelRadius,10px);border-top-left-radius:10px;border-top-left-radius:var(--panelRadius,10px)}.nav-panel li:last-child a{border-bottom-right-radius:10px;border-bottom-right-radius:var(--panelRadius,10px);border-bottom-left-radius:10px;border-bottom-left-radius:var(--panelRadius,10px)}.nav-panel li:last-child{border:none}.nav-panel a{display:block;padding:.8em .85em}.nav-panel a:hover{color:#d8a070;color:var(--selectedMenuText,#d8a070)}.nav-panel a.router-link-active,.nav-panel a:hover{background-color:#151e2a;background-color:var(--selectedMenu,#151e2a);--faint:var(--selectedMenuFaintText,$fallback--faint);--faintLink:var(--selectedMenuFaintLink,$fallback--faint);--lightText:var(--selectedMenuLightText,$fallback--lightText);--icon:var(--selectedMenuIcon,$fallback--icon)}.nav-panel a.router-link-active{font-weight:bolder;color:#b9b9ba;color:var(--selectedMenuText,#b9b9ba)}.nav-panel a.router-link-active:hover{text-decoration:underline}.nav-panel .button-icon:before{width:1.1em}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./search_bar.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"0ea9aafc\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".search-bar-container{max-width:100%;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:baseline;align-items:baseline;vertical-align:baseline;-ms-flex-pack:end;justify-content:flex-end}.search-bar-container .search-bar-input,.search-bar-container .search-button{height:29px}.search-bar-container .search-bar-input{max-width:calc(100% - 30px - 30px - 20px)}.search-bar-container .search-button{margin-left:.5em;margin-right:.5em}.search-bar-container .icon-cancel{cursor:pointer}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./who_to_follow_panel.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"2f18dd03\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".who-to-follow *{vertical-align:middle}.who-to-follow img{width:32px;height:32px}.who-to-follow{padding:0 1em;margin:0}.who-to-follow-items{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0;margin:1em 0}.who-to-follow-more{padding:0;margin:1em 0;text-align:center}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./media_modal.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"23b00cfc\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".modal-view.media-modal-view{z-index:1001}.modal-view.media-modal-view .modal-view-button-arrow{opacity:.75}.modal-view.media-modal-view .modal-view-button-arrow:focus,.modal-view.media-modal-view .modal-view-button-arrow:hover{outline:none;box-shadow:none}.modal-view.media-modal-view .modal-view-button-arrow:hover{opacity:1}.modal-image{max-width:90%;max-height:90%;box-shadow:0 5px 15px 0 rgba(0,0,0,.5);image-orientation:from-image}.modal-view-button-arrow{position:absolute;display:block;top:50%;margin-top:-50px;width:70px;height:100px;border:0;padding:0;opacity:0;box-shadow:none;background:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;overflow:visible;cursor:pointer;transition:opacity 333ms cubic-bezier(.4,0,.22,1)}.modal-view-button-arrow .arrow-icon{position:absolute;top:35px;height:30px;width:32px;font-size:14px;line-height:30px;color:#fff;text-align:center;background-color:rgba(0,0,0,.3)}.modal-view-button-arrow--prev{left:0}.modal-view-button-arrow--prev .arrow-icon{left:6px}.modal-view-button-arrow--next{right:0}.modal-view-button-arrow--next .arrow-icon{right:6px}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./modal.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"f7395e92\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".modal-view{z-index:1000;position:fixed;top:0;left:0;right:0;bottom:0;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;overflow:auto;animation-duration:.2s;background-color:rgba(0,0,0,.5);animation-name:modal-background-fadein}body:not(.scroll-locked) .modal-view{opacity:0}@keyframes modal-background-fadein{0%{background-color:transparent}to{background-color:rgba(0,0,0,.5)}}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./side_drawer.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"34992fba\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".side-drawer-container{position:fixed;z-index:1000;top:0;left:0;width:100%;height:100%;display:-ms-flexbox;display:flex;-ms-flex-align:stretch;align-items:stretch;transition-duration:0s;transition-property:transform}.side-drawer-container-open{transform:translate(0)}.side-drawer-container-closed{transition-delay:.35s;transform:translate(-100%)}.side-drawer-darken{top:0;left:0;width:100vw;height:100vh;position:fixed;z-index:-1;transition:.35s;transition-property:background-color;background-color:rgba(0,0,0,.5)}.side-drawer-darken-closed{background-color:transparent}.side-drawer-click-outside{-ms-flex:1 1 100%;flex:1 1 100%}.side-drawer{overflow-x:hidden;transition-timing-function:cubic-bezier(0,1,.5,1);transition:.35s;transition-property:transform;margin:0 0 0 -100px;padding:0 0 1em 100px;width:80%;max-width:20em;-ms-flex:0 0 80%;flex:0 0 80%;box-shadow:1px 1px 4px rgba(0,0,0,.6);box-shadow:var(--panelShadow);background-color:#121a24;background-color:var(--popover,#121a24);color:#d8a070;color:var(--popoverText,#d8a070);--faint:var(--popoverFaintText,$fallback--faint);--faintLink:var(--popoverFaintLink,$fallback--faint);--lightText:var(--popoverLightText,$fallback--lightText);--icon:var(--popoverIcon,$fallback--icon)}.side-drawer .button-icon:before{width:1.1em}.side-drawer-logo-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.85em}.side-drawer-logo-wrapper img{-ms-flex:none;flex:none;height:50px;margin-right:.85em}.side-drawer-logo-wrapper span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.side-drawer-click-outside-closed{-ms-flex:0 0 0px;flex:0 0 0}.side-drawer-closed{transform:translate(-100%)}.side-drawer-heading{background:transparent;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:stretch;align-items:stretch;display:-ms-flexbox;display:flex;padding:0;margin:0}.side-drawer ul{list-style:none;margin:0;padding:0;border-bottom:1px solid;border-color:#222;border-color:var(--border,#222);margin:.2em 0}.side-drawer ul:last-child{border:0}.side-drawer li{padding:0}.side-drawer li a{display:block;padding:.5em .85em}.side-drawer li a:hover{background-color:#151e2a;background-color:var(--selectedMenuPopover,#151e2a);color:#b9b9ba;color:var(--selectedMenuPopoverText,#b9b9ba);--faint:var(--selectedMenuPopoverFaintText,$fallback--faint);--faintLink:var(--selectedMenuPopoverFaintLink,$fallback--faint);--lightText:var(--selectedMenuPopoverLightText,$fallback--lightText);--icon:var(--selectedMenuPopoverIcon,$fallback--icon)}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./mobile_post_status_button.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"7f8eca07\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".new-status-button{width:5em;height:5em;border-radius:100%;position:fixed;bottom:1.5em;right:1.5em;background-color:#182230;background-color:var(--btn,#182230);display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center;box-shadow:0 2px 2px rgba(0,0,0,.3),0 4px 6px rgba(0,0,0,.3);z-index:10;transition:transform .35s;transition-timing-function:cubic-bezier(0,1,.5,1)}.new-status-button.hidden{transform:translateY(150%)}.new-status-button i{font-size:1.5em;color:#b9b9ba;color:var(--text,#b9b9ba)}@media (min-width:801px){.new-status-button{display:none}}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./mobile_nav.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"1e0fbcf8\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".mobile-inner-nav{width:100%;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.mobile-nav-button{display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;width:50px;position:relative;cursor:pointer}.alert-dot{border-radius:100%;height:8px;width:8px;position:absolute;left:calc(50% - 4px);top:calc(50% - 4px);margin-left:6px;margin-top:-6px;background-color:red;background-color:var(--badgeNotification,red)}.mobile-notifications-drawer{width:100%;height:100vh;overflow-x:hidden;position:fixed;top:0;left:0;box-shadow:1px 1px 4px rgba(0,0,0,.6);box-shadow:var(--panelShadow);transition-property:transform;transition-duration:.25s;transform:translateX(0);z-index:1001;-webkit-overflow-scrolling:touch}.mobile-notifications-drawer.closed{transform:translateX(100%)}.mobile-notifications-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;z-index:1;width:100%;height:50px;line-height:50px;position:absolute;color:var(--topBarText);background-color:#182230;background-color:var(--topBar,#182230);box-shadow:0 0 4px rgba(0,0,0,.6);box-shadow:var(--topBarShadow)}.mobile-notifications-header .title{font-size:1.3em;margin-left:.6em}.mobile-notifications{margin-top:50px;width:100vw;height:calc(100vh - 50px);overflow-x:hidden;overflow-y:scroll;color:#b9b9ba;color:var(--text,#b9b9ba);background-color:#121a24;background-color:var(--bg,#121a24)}.mobile-notifications .notifications{padding:0;border-radius:0;box-shadow:none}.mobile-notifications .notifications .panel{border-radius:0;margin:0;box-shadow:none}.mobile-notifications .notifications .panel:after{border-radius:0}.mobile-notifications .notifications .panel .panel-heading{border-radius:0;box-shadow:none}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./user_reporting_modal.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"10c04f96\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".user-reporting-panel{width:90vw;max-width:700px;min-height:20vh;max-height:80vh}.user-reporting-panel .panel-heading .title{text-align:center;-ms-flex:1;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-reporting-panel .panel-body{display:-ms-flexbox;display:flex;-ms-flex-direction:column-reverse;flex-direction:column-reverse;border-top:1px solid;border-color:#222;border-color:var(--border,#222);overflow:hidden}.user-reporting-panel-left{padding:1.1em .7em .7em;line-height:1.4em;box-sizing:border-box}.user-reporting-panel-left>div{margin-bottom:1em}.user-reporting-panel-left>div:last-child{margin-bottom:0}.user-reporting-panel-left p{margin-top:0}.user-reporting-panel-left textarea.form-control{line-height:16px;resize:none;overflow:hidden;transition:min-height .2s .1s;min-height:44px;width:100%}.user-reporting-panel-left .btn{min-width:10em;padding:0 2em}.user-reporting-panel-left .alert{margin:1em 0 0;line-height:1.3em}.user-reporting-panel-right{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;overflow-y:auto}.user-reporting-panel-sitem{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}.user-reporting-panel-sitem>.status-el{-ms-flex:1;flex:1}.user-reporting-panel-sitem>.checkbox{margin:.75em}@media (min-width:801px){.user-reporting-panel .panel-body{-ms-flex-direction:row;flex-direction:row}.user-reporting-panel-left{width:50%;max-width:320px;border-right:1px solid;border-color:#222;border-color:var(--border,#222);padding:1.1em}.user-reporting-panel-left>div{margin-bottom:2em}.user-reporting-panel-right{width:50%;-ms-flex:1 1 auto;flex:1 1 auto;margin-bottom:12px}}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js?minimize!../../../node_modules/vue-loader/lib/style-compiler/index.js?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/selector.js?type=styles&index=0!./post_status_modal.vue\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"7628c2ae\", content, true, {});","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".modal-view.post-form-modal-view{-ms-flex-align:start;align-items:flex-start}.post-form-modal-panel{-ms-flex-negative:0;flex-shrink:0;margin-top:25%;margin-bottom:2em;width:100%;max-width:700px}@media (orientation:landscape){.post-form-modal-panel{margin-top:8%}}\", \"\"]);\n\n// exports\n","import EventTargetPolyfill from '@ungap/event-target'\n\ntry {\n /* eslint-disable no-new */\n new EventTarget()\n /* eslint-enable no-new */\n} catch (e) {\n window.EventTarget = EventTargetPolyfill\n}\n","import { set, delete as del } from 'vue'\n\nconst defaultState = {\n settings: {\n currentSaveStateNotice: null,\n noticeClearTimeout: null,\n notificationPermission: null\n },\n browserSupport: {\n cssFilter: window.CSS && window.CSS.supports && (\n window.CSS.supports('filter', 'drop-shadow(0 0)') ||\n window.CSS.supports('-webkit-filter', 'drop-shadow(0 0)')\n )\n },\n mobileLayout: false\n}\n\nconst interfaceMod = {\n state: defaultState,\n mutations: {\n settingsSaved (state, { success, error }) {\n if (success) {\n if (state.noticeClearTimeout) {\n clearTimeout(state.noticeClearTimeout)\n }\n set(state.settings, 'currentSaveStateNotice', { error: false, data: success })\n set(state.settings, 'noticeClearTimeout',\n setTimeout(() => del(state.settings, 'currentSaveStateNotice'), 2000))\n } else {\n set(state.settings, 'currentSaveStateNotice', { error: true, errorData: error })\n }\n },\n setNotificationPermission (state, permission) {\n state.notificationPermission = permission\n },\n setMobileLayout (state, value) {\n state.mobileLayout = value\n }\n },\n actions: {\n setPageTitle ({ rootState }, option = '') {\n document.title = `${option} ${rootState.instance.name}`\n },\n settingsSaved ({ commit, dispatch }, { success, error }) {\n commit('settingsSaved', { success, error })\n },\n setNotificationPermission ({ commit }, permission) {\n commit('setNotificationPermission', permission)\n },\n setMobileLayout ({ commit }, value) {\n commit('setMobileLayout', value)\n }\n }\n}\n\nexport default interfaceMod\n","import { invertLightness, brightness } from 'chromatism'\nimport { alphaBlend, mixrgb } from '../color_convert/color_convert.js'\n/* This is a definition of all layer combinations\n * each key is a topmost layer, each value represents layer underneath\n * this is essentially a simplified tree\n */\nexport const LAYERS = {\n undelay: null, // root\n topBar: null, // no transparency support\n badge: null, // no transparency support\n profileTint: null, // doesn't matter\n fg: null,\n bg: 'underlay',\n highlight: 'bg',\n panel: 'bg',\n popover: 'bg',\n selectedMenu: 'popover',\n btn: 'bg',\n btnPanel: 'panel',\n btnTopBar: 'topBar',\n input: 'bg',\n inputPanel: 'panel',\n inputTopBar: 'topBar',\n alert: 'bg',\n alertPanel: 'panel',\n poll: 'bg'\n}\n\n/* By default opacity slots have 1 as default opacity\n * this allows redefining it to something else\n */\nexport const DEFAULT_OPACITY = {\n profileTint: 0.5,\n alert: 0.5,\n input: 0.5,\n faint: 0.5,\n underlay: 0.15\n}\n\n/** SUBJECT TO CHANGE IN THE FUTURE, this is all beta\n * Color and opacity slots definitions. Each key represents a slot.\n *\n * Short-hands:\n * String beginning with `--` - value after dashes treated as sole\n * dependency - i.e. `--value` equivalent to { depends: ['value']}\n * String beginning with `#` - value would be treated as solid color\n * defined in hexadecimal representation (i.e. #FFFFFF) and will be\n * used as default. `#FFFFFF` is equivalent to { default: '#FFFFFF'}\n *\n * Full definition:\n * @property {String[]} depends - color slot names this color depends ones.\n * cyclic dependencies are supported to some extent but not recommended.\n * @property {String} [opacity] - opacity slot used by this color slot.\n * opacity is inherited from parents. To break inheritance graph use null\n * @property {Number} [priority] - EXPERIMENTAL. used to pre-sort slots so\n * that slots with higher priority come earlier\n * @property {Function(mod, ...colors)} [color] - function that will be\n * used to determine the color. By default it just copies first color in\n * dependency list.\n * @argument {Number} mod - `1` (light-on-dark) or `-1` (dark-on-light)\n * depending on background color (for textColor)/given color.\n * @argument {...Object} deps - each argument after mod represents each\n * color from `depends` array. All colors take user customizations into\n * account and represented by { r, g, b } objects.\n * @returns {Object} resulting color, should be in { r, g, b } form\n *\n * @property {Boolean|String} [textColor] - true to mark color slot as text\n * color. This enables automatic text color generation for the slot. Use\n * 'preserve' string if you don't want text color to fall back to\n * black/white. Use 'bw' to only ever use black or white. This also makes\n * following properties required:\n * @property {String} [layer] - which layer the text sit on top on - used\n * to account for transparency in text color calculation\n * layer is inherited from parents. To break inheritance graph use null\n * @property {String} [variant] - which color slot is background (same as\n * above, used to account for transparency)\n */\nexport const SLOT_INHERITANCE = {\n bg: {\n depends: [],\n opacity: 'bg',\n priority: 1\n },\n fg: {\n depends: [],\n priority: 1\n },\n text: {\n depends: [],\n layer: 'bg',\n opacity: null,\n priority: 1\n },\n underlay: {\n default: '#000000',\n opacity: 'underlay'\n },\n link: {\n depends: ['accent'],\n priority: 1\n },\n accent: {\n depends: ['link'],\n priority: 1\n },\n faint: {\n depends: ['text'],\n opacity: 'faint'\n },\n faintLink: {\n depends: ['link'],\n opacity: 'faint'\n },\n postFaintLink: {\n depends: ['postLink'],\n opacity: 'faint'\n },\n\n cBlue: '#0000ff',\n cRed: '#FF0000',\n cGreen: '#00FF00',\n cOrange: '#E3FF00',\n\n profileBg: {\n depends: ['bg'],\n color: (mod, bg) => ({\n r: Math.floor(bg.r * 0.53),\n g: Math.floor(bg.g * 0.56),\n b: Math.floor(bg.b * 0.59)\n })\n },\n profileTint: {\n depends: ['bg'],\n layer: 'profileTint',\n opacity: 'profileTint'\n },\n\n highlight: {\n depends: ['bg'],\n color: (mod, bg) => brightness(5 * mod, bg).rgb\n },\n highlightLightText: {\n depends: ['lightText'],\n layer: 'highlight',\n textColor: true\n },\n highlightPostLink: {\n depends: ['postLink'],\n layer: 'highlight',\n textColor: 'preserve'\n },\n highlightFaintText: {\n depends: ['faint'],\n layer: 'highlight',\n textColor: true\n },\n highlightFaintLink: {\n depends: ['faintLink'],\n layer: 'highlight',\n textColor: 'preserve'\n },\n highlightPostFaintLink: {\n depends: ['postFaintLink'],\n layer: 'highlight',\n textColor: 'preserve'\n },\n highlightText: {\n depends: ['text'],\n layer: 'highlight',\n textColor: true\n },\n highlightLink: {\n depends: ['link'],\n layer: 'highlight',\n textColor: 'preserve'\n },\n highlightIcon: {\n depends: ['highlight', 'highlightText'],\n color: (mod, bg, text) => mixrgb(bg, text)\n },\n\n popover: {\n depends: ['bg'],\n opacity: 'popover'\n },\n popoverLightText: {\n depends: ['lightText'],\n layer: 'popover',\n textColor: true\n },\n popoverPostLink: {\n depends: ['postLink'],\n layer: 'popover',\n textColor: 'preserve'\n },\n popoverFaintText: {\n depends: ['faint'],\n layer: 'popover',\n textColor: true\n },\n popoverFaintLink: {\n depends: ['faintLink'],\n layer: 'popover',\n textColor: 'preserve'\n },\n popoverPostFaintLink: {\n depends: ['postFaintLink'],\n layer: 'popover',\n textColor: 'preserve'\n },\n popoverText: {\n depends: ['text'],\n layer: 'popover',\n textColor: true\n },\n popoverLink: {\n depends: ['link'],\n layer: 'popover',\n textColor: 'preserve'\n },\n popoverIcon: {\n depends: ['popover', 'popoverText'],\n color: (mod, bg, text) => mixrgb(bg, text)\n },\n\n selectedPost: '--highlight',\n selectedPostFaintText: {\n depends: ['highlightFaintText'],\n layer: 'highlight',\n variant: 'selectedPost',\n textColor: true\n },\n selectedPostLightText: {\n depends: ['highlightLightText'],\n layer: 'highlight',\n variant: 'selectedPost',\n textColor: true\n },\n selectedPostPostLink: {\n depends: ['highlightPostLink'],\n layer: 'highlight',\n variant: 'selectedPost',\n textColor: 'preserve'\n },\n selectedPostFaintLink: {\n depends: ['highlightFaintLink'],\n layer: 'highlight',\n variant: 'selectedPost',\n textColor: 'preserve'\n },\n selectedPostText: {\n depends: ['highlightText'],\n layer: 'highlight',\n variant: 'selectedPost',\n textColor: true\n },\n selectedPostLink: {\n depends: ['highlightLink'],\n layer: 'highlight',\n variant: 'selectedPost',\n textColor: 'preserve'\n },\n selectedPostIcon: {\n depends: ['selectedPost', 'selectedPostText'],\n color: (mod, bg, text) => mixrgb(bg, text)\n },\n\n selectedMenu: {\n depends: ['bg'],\n color: (mod, bg) => brightness(5 * mod, bg).rgb\n },\n selectedMenuLightText: {\n depends: ['highlightLightText'],\n layer: 'selectedMenu',\n variant: 'selectedMenu',\n textColor: true\n },\n selectedMenuFaintText: {\n depends: ['highlightFaintText'],\n layer: 'selectedMenu',\n variant: 'selectedMenu',\n textColor: true\n },\n selectedMenuFaintLink: {\n depends: ['highlightFaintLink'],\n layer: 'selectedMenu',\n variant: 'selectedMenu',\n textColor: 'preserve'\n },\n selectedMenuText: {\n depends: ['highlightText'],\n layer: 'selectedMenu',\n variant: 'selectedMenu',\n textColor: true\n },\n selectedMenuLink: {\n depends: ['highlightLink'],\n layer: 'selectedMenu',\n variant: 'selectedMenu',\n textColor: 'preserve'\n },\n selectedMenuIcon: {\n depends: ['selectedMenu', 'selectedMenuText'],\n color: (mod, bg, text) => mixrgb(bg, text)\n },\n\n selectedMenuPopover: {\n depends: ['popover'],\n color: (mod, bg) => brightness(5 * mod, bg).rgb\n },\n selectedMenuPopoverLightText: {\n depends: ['selectedMenuLightText'],\n layer: 'selectedMenuPopover',\n variant: 'selectedMenuPopover',\n textColor: true\n },\n selectedMenuPopoverFaintText: {\n depends: ['selectedMenuFaintText'],\n layer: 'selectedMenuPopover',\n variant: 'selectedMenuPopover',\n textColor: true\n },\n selectedMenuPopoverFaintLink: {\n depends: ['selectedMenuFaintLink'],\n layer: 'selectedMenuPopover',\n variant: 'selectedMenuPopover',\n textColor: 'preserve'\n },\n selectedMenuPopoverText: {\n depends: ['selectedMenuText'],\n layer: 'selectedMenuPopover',\n variant: 'selectedMenuPopover',\n textColor: true\n },\n selectedMenuPopoverLink: {\n depends: ['selectedMenuLink'],\n layer: 'selectedMenuPopover',\n variant: 'selectedMenuPopover',\n textColor: 'preserve'\n },\n selectedMenuPopoverIcon: {\n depends: ['selectedMenuPopover', 'selectedMenuText'],\n color: (mod, bg, text) => mixrgb(bg, text)\n },\n\n lightText: {\n depends: ['text'],\n layer: 'bg',\n textColor: 'preserve',\n color: (mod, text) => brightness(20 * mod, text).rgb\n },\n\n postLink: {\n depends: ['link'],\n layer: 'bg',\n textColor: 'preserve'\n },\n\n border: {\n depends: ['fg'],\n opacity: 'border',\n color: (mod, fg) => brightness(2 * mod, fg).rgb\n },\n\n poll: {\n depends: ['accent', 'bg'],\n copacity: 'poll',\n color: (mod, accent, bg) => alphaBlend(accent, 0.4, bg)\n },\n pollText: {\n depends: ['text'],\n layer: 'poll',\n textColor: true\n },\n\n icon: {\n depends: ['bg', 'text'],\n inheritsOpacity: false,\n color: (mod, bg, text) => mixrgb(bg, text)\n },\n\n // Foreground\n fgText: {\n depends: ['text'],\n layer: 'fg',\n textColor: true\n },\n fgLink: {\n depends: ['link'],\n layer: 'fg',\n textColor: 'preserve'\n },\n\n // Panel header\n panel: {\n depends: ['fg'],\n opacity: 'panel'\n },\n panelText: {\n depends: ['text'],\n layer: 'panel',\n textColor: true\n },\n panelFaint: {\n depends: ['fgText'],\n layer: 'panel',\n opacity: 'faint',\n textColor: true\n },\n panelLink: {\n depends: ['fgLink'],\n layer: 'panel',\n textColor: 'preserve'\n },\n\n // Top bar\n topBar: '--fg',\n topBarText: {\n depends: ['fgText'],\n layer: 'topBar',\n textColor: true\n },\n topBarLink: {\n depends: ['fgLink'],\n layer: 'topBar',\n textColor: 'preserve'\n },\n\n // Tabs\n tab: {\n depends: ['btn']\n },\n tabText: {\n depends: ['btnText'],\n layer: 'btn',\n textColor: true\n },\n tabActiveText: {\n depends: ['text'],\n layer: 'bg',\n textColor: true\n },\n\n // Buttons\n btn: {\n depends: ['fg'],\n variant: 'btn',\n opacity: 'btn'\n },\n btnText: {\n depends: ['fgText'],\n layer: 'btn',\n textColor: true\n },\n btnPanelText: {\n depends: ['btnText'],\n layer: 'btnPanel',\n variant: 'btn',\n textColor: true\n },\n btnTopBarText: {\n depends: ['btnText'],\n layer: 'btnTopBar',\n variant: 'btn',\n textColor: true\n },\n\n // Buttons: pressed\n btnPressed: {\n depends: ['btn'],\n layer: 'btn'\n },\n btnPressedText: {\n depends: ['btnText'],\n layer: 'btn',\n variant: 'btnPressed',\n textColor: true\n },\n btnPressedPanel: {\n depends: ['btnPressed'],\n layer: 'btn'\n },\n btnPressedPanelText: {\n depends: ['btnPanelText'],\n layer: 'btnPanel',\n variant: 'btnPressed',\n textColor: true\n },\n btnPressedTopBar: {\n depends: ['btnPressed'],\n layer: 'btn'\n },\n btnPressedTopBarText: {\n depends: ['btnTopBarText'],\n layer: 'btnTopBar',\n variant: 'btnPressed',\n textColor: true\n },\n\n // Buttons: toggled\n btnToggled: {\n depends: ['btn'],\n layer: 'btn',\n color: (mod, btn) => brightness(mod * 20, btn).rgb\n },\n btnToggledText: {\n depends: ['btnText'],\n layer: 'btn',\n variant: 'btnToggled',\n textColor: true\n },\n btnToggledPanelText: {\n depends: ['btnPanelText'],\n layer: 'btnPanel',\n variant: 'btnToggled',\n textColor: true\n },\n btnToggledTopBarText: {\n depends: ['btnTopBarText'],\n layer: 'btnTopBar',\n variant: 'btnToggled',\n textColor: true\n },\n\n // Buttons: disabled\n btnDisabled: {\n depends: ['btn', 'bg'],\n color: (mod, btn, bg) => alphaBlend(btn, 0.25, bg)\n },\n btnDisabledText: {\n depends: ['btnText', 'btnDisabled'],\n layer: 'btn',\n variant: 'btnDisabled',\n color: (mod, text, btn) => alphaBlend(text, 0.25, btn)\n },\n btnDisabledPanelText: {\n depends: ['btnPanelText', 'btnDisabled'],\n layer: 'btnPanel',\n variant: 'btnDisabled',\n color: (mod, text, btn) => alphaBlend(text, 0.25, btn)\n },\n btnDisabledTopBarText: {\n depends: ['btnTopBarText', 'btnDisabled'],\n layer: 'btnTopBar',\n variant: 'btnDisabled',\n color: (mod, text, btn) => alphaBlend(text, 0.25, btn)\n },\n\n // Input fields\n input: {\n depends: ['fg'],\n opacity: 'input'\n },\n inputText: {\n depends: ['text'],\n layer: 'input',\n textColor: true\n },\n inputPanelText: {\n depends: ['panelText'],\n layer: 'inputPanel',\n variant: 'input',\n textColor: true\n },\n inputTopbarText: {\n depends: ['topBarText'],\n layer: 'inputTopBar',\n variant: 'input',\n textColor: true\n },\n\n alertError: {\n depends: ['cRed'],\n opacity: 'alert'\n },\n alertErrorText: {\n depends: ['text'],\n layer: 'alert',\n variant: 'alertError',\n textColor: true\n },\n alertErrorPanelText: {\n depends: ['panelText'],\n layer: 'alertPanel',\n variant: 'alertError',\n textColor: true\n },\n\n alertWarning: {\n depends: ['cOrange'],\n opacity: 'alert'\n },\n alertWarningText: {\n depends: ['text'],\n layer: 'alert',\n variant: 'alertWarning',\n textColor: true\n },\n alertWarningPanelText: {\n depends: ['panelText'],\n layer: 'alertPanel',\n variant: 'alertWarning',\n textColor: true\n },\n\n alertNeutral: {\n depends: ['text'],\n opacity: 'alert'\n },\n alertNeutralText: {\n depends: ['text'],\n layer: 'alert',\n variant: 'alertNeutral',\n color: (mod, text) => invertLightness(text).rgb,\n textColor: true\n },\n alertNeutralPanelText: {\n depends: ['panelText'],\n layer: 'alertPanel',\n variant: 'alertNeutral',\n textColor: true\n },\n\n badgeNotification: '--cRed',\n badgeNotificationText: {\n depends: ['text', 'badgeNotification'],\n layer: 'badge',\n variant: 'badgeNotification',\n textColor: 'bw'\n }\n}\n","import { convert, brightness, contrastRatio } from 'chromatism'\nimport { alphaBlendLayers, getTextColor, relativeLuminance } from '../color_convert/color_convert.js'\nimport { LAYERS, DEFAULT_OPACITY, SLOT_INHERITANCE } from './pleromafe.js'\n\n/*\n * # What's all this?\n * Here be theme engine for pleromafe. All of this supposed to ease look\n * and feel customization, making widget styles and make developer's life\n * easier when it comes to supporting themes. Like many other theme systems\n * it operates on color definitions, or \"slots\" - for example you define\n * \"button\" color slot and then in UI component Button's CSS you refer to\n * it as a CSS3 Variable.\n *\n * Some applications allow you to customize colors for certain things.\n * Some UI toolkits allow you to define colors for each type of widget.\n * Most of them are pretty barebones and have no assistance for common\n * problems and cases, and in general themes themselves are very hard to\n * maintain in all aspects. This theme engine tries to solve all of the\n * common problems with themes.\n *\n * You don't have redefine several similar colors if you just want to\n * change one color - all color slots are derived from other ones, so you\n * can have at least one or two \"basic\" colors defined and have all other\n * components inherit and modify basic ones.\n *\n * You don't have to test contrast ratio for colors or pick text color for\n * each element even if you have light-on-dark elements in dark-on-light\n * theme.\n *\n * You don't have to maintain order of code for inheriting slots from othet\n * slots - dependency graph resolving does it for you.\n */\n\n/* This indicates that this version of code outputs similar theme data and\n * should be incremented if output changes - for instance if getTextColor\n * function changes and older themes no longer render text colors as\n * author intended previously.\n */\nexport const CURRENT_VERSION = 3\n\nexport const getLayersArray = (layer, data = LAYERS) => {\n let array = [layer]\n let parent = data[layer]\n while (parent) {\n array.unshift(parent)\n parent = data[parent]\n }\n return array\n}\n\nexport const getLayers = (layer, variant = layer, opacitySlot, colors, opacity) => {\n return getLayersArray(layer).map((currentLayer) => ([\n currentLayer === layer\n ? colors[variant]\n : colors[currentLayer],\n currentLayer === layer\n ? opacity[opacitySlot] || 1\n : opacity[currentLayer]\n ]))\n}\n\nconst getDependencies = (key, inheritance) => {\n const data = inheritance[key]\n if (typeof data === 'string' && data.startsWith('--')) {\n return [data.substring(2)]\n } else {\n if (data === null) return []\n const { depends, layer, variant } = data\n const layerDeps = layer\n ? getLayersArray(layer).map(currentLayer => {\n return currentLayer === layer\n ? variant || layer\n : currentLayer\n })\n : []\n if (Array.isArray(depends)) {\n return [...depends, ...layerDeps]\n } else {\n return [...layerDeps]\n }\n }\n}\n\n/**\n * Sorts inheritance object topologically - dependant slots come after\n * dependencies\n *\n * @property {Object} inheritance - object defining the nodes\n * @property {Function} getDeps - function that returns dependencies for\n * given value and inheritance object.\n * @returns {String[]} keys of inheritance object, sorted in topological\n * order. Additionally, dependency-less nodes will always be first in line\n */\nexport const topoSort = (\n inheritance = SLOT_INHERITANCE,\n getDeps = getDependencies\n) => {\n // This is an implementation of https://en.wikipedia.org/wiki/Tarjan%27s_strongly_connected_components_algorithm\n\n const allKeys = Object.keys(inheritance)\n const whites = new Set(allKeys)\n const grays = new Set()\n const blacks = new Set()\n const unprocessed = [...allKeys]\n const output = []\n\n const step = (node) => {\n if (whites.has(node)) {\n // Make node \"gray\"\n whites.delete(node)\n grays.add(node)\n // Do step for each node connected to it (one way)\n getDeps(node, inheritance).forEach(step)\n // Make node \"black\"\n grays.delete(node)\n blacks.add(node)\n // Put it into the output list\n output.push(node)\n } else if (grays.has(node)) {\n console.debug('Cyclic depenency in topoSort, ignoring')\n output.push(node)\n } else if (blacks.has(node)) {\n // do nothing\n } else {\n throw new Error('Unintended condition in topoSort!')\n }\n }\n while (unprocessed.length > 0) {\n step(unprocessed.pop())\n }\n return output.sort((a, b) => {\n const depsA = getDeps(a, inheritance).length\n const depsB = getDeps(b, inheritance).length\n\n if (depsA === depsB || (depsB !== 0 && depsA !== 0)) return 0\n if (depsA === 0 && depsB !== 0) return -1\n if (depsB === 0 && depsA !== 0) return 1\n })\n}\n\nconst expandSlotValue = (value) => {\n if (typeof value === 'object') return value\n return {\n depends: value.startsWith('--') ? [value.substring(2)] : [],\n default: value.startsWith('#') ? value : undefined\n }\n}\n/**\n * retrieves opacity slot for given slot. This goes up the depenency graph\n * to find which parent has opacity slot defined for it.\n * TODO refactor this\n */\nexport const getOpacitySlot = (\n k,\n inheritance = SLOT_INHERITANCE,\n getDeps = getDependencies\n) => {\n const value = expandSlotValue(inheritance[k])\n if (value.opacity === null) return\n if (value.opacity) return value.opacity\n const findInheritedOpacity = (key, visited = [k]) => {\n const depSlot = getDeps(key, inheritance)[0]\n if (depSlot === undefined) return\n const dependency = inheritance[depSlot]\n if (dependency === undefined) return\n if (dependency.opacity || dependency === null) {\n return dependency.opacity\n } else if (dependency.depends && visited.includes(depSlot)) {\n return findInheritedOpacity(depSlot, [...visited, depSlot])\n } else {\n return null\n }\n }\n if (value.depends) {\n return findInheritedOpacity(k)\n }\n}\n\n/**\n * retrieves layer slot for given slot. This goes up the depenency graph\n * to find which parent has opacity slot defined for it.\n * this is basically copypaste of getOpacitySlot except it checks if key is\n * in LAYERS\n * TODO refactor this\n */\nexport const getLayerSlot = (\n k,\n inheritance = SLOT_INHERITANCE,\n getDeps = getDependencies\n) => {\n const value = expandSlotValue(inheritance[k])\n if (LAYERS[k]) return k\n if (value.layer === null) return\n if (value.layer) return value.layer\n const findInheritedLayer = (key, visited = [k]) => {\n const depSlot = getDeps(key, inheritance)[0]\n if (depSlot === undefined) return\n const dependency = inheritance[depSlot]\n if (dependency === undefined) return\n if (dependency.layer || dependency === null) {\n return dependency.layer\n } else if (dependency.depends) {\n return findInheritedLayer(dependency, [...visited, depSlot])\n } else {\n return null\n }\n }\n if (value.depends) {\n return findInheritedLayer(k)\n }\n}\n\n/**\n * topologically sorted SLOT_INHERITANCE\n */\nexport const SLOT_ORDERED = topoSort(\n Object.entries(SLOT_INHERITANCE)\n .sort(([aK, aV], [bK, bV]) => ((aV && aV.priority) || 0) - ((bV && bV.priority) || 0))\n .reduce((acc, [k, v]) => ({ ...acc, [k]: v }), {})\n)\n\n/**\n * All opacity slots used in color slots, their default values and affected\n * color slots.\n */\nexport const OPACITIES = Object.entries(SLOT_INHERITANCE).reduce((acc, [k, v]) => {\n const opacity = getOpacitySlot(k, SLOT_INHERITANCE, getDependencies)\n if (opacity) {\n return {\n ...acc,\n [opacity]: {\n defaultValue: DEFAULT_OPACITY[opacity] || 1,\n affectedSlots: [...((acc[opacity] && acc[opacity].affectedSlots) || []), k]\n }\n }\n } else {\n return acc\n }\n}, {})\n\n/**\n * Handle dynamic color\n */\nexport const computeDynamicColor = (sourceColor, getColor, mod) => {\n if (typeof sourceColor !== 'string' || !sourceColor.startsWith('--')) return sourceColor\n let targetColor = null\n // Color references other color\n const [variable, modifier] = sourceColor.split(/,/g).map(str => str.trim())\n const variableSlot = variable.substring(2)\n targetColor = getColor(variableSlot)\n if (modifier) {\n targetColor = brightness(Number.parseFloat(modifier) * mod, targetColor).rgb\n }\n return targetColor\n}\n\n/**\n * THE function you want to use. Takes provided colors and opacities\n * value and uses inheritance data to figure out color needed for the slot.\n */\nexport const getColors = (sourceColors, sourceOpacity) => SLOT_ORDERED.reduce(({ colors, opacity }, key) => {\n const sourceColor = sourceColors[key]\n const value = expandSlotValue(SLOT_INHERITANCE[key])\n const deps = getDependencies(key, SLOT_INHERITANCE)\n const isTextColor = !!value.textColor\n const variant = value.variant || value.layer\n\n let backgroundColor = null\n\n if (isTextColor) {\n backgroundColor = alphaBlendLayers(\n { ...(colors[deps[0]] || convert(sourceColors[key] || '#FF00FF').rgb) },\n getLayers(\n getLayerSlot(key) || 'bg',\n variant || 'bg',\n getOpacitySlot(variant),\n colors,\n opacity\n )\n )\n } else if (variant && variant !== key) {\n backgroundColor = colors[variant] || convert(sourceColors[variant]).rgb\n } else {\n backgroundColor = colors.bg || convert(sourceColors.bg)\n }\n\n const isLightOnDark = relativeLuminance(backgroundColor) < 0.5\n const mod = isLightOnDark ? 1 : -1\n\n let outputColor = null\n if (sourceColor) {\n // Color is defined in source color\n let targetColor = sourceColor\n if (targetColor === 'transparent') {\n // We take only layers below current one\n const layers = getLayers(\n getLayerSlot(key),\n key,\n getOpacitySlot(key) || key,\n colors,\n opacity\n ).slice(0, -1)\n targetColor = {\n ...alphaBlendLayers(\n convert('#FF00FF').rgb,\n layers\n ),\n a: 0\n }\n } else if (typeof sourceColor === 'string' && sourceColor.startsWith('--')) {\n targetColor = computeDynamicColor(\n sourceColor,\n variableSlot => colors[variableSlot] || sourceColors[variableSlot],\n mod\n )\n } else if (typeof sourceColor === 'string' && sourceColor.startsWith('#')) {\n targetColor = convert(targetColor).rgb\n }\n outputColor = { ...targetColor }\n } else if (value.default) {\n // same as above except in object form\n outputColor = convert(value.default).rgb\n } else {\n // calculate color\n const defaultColorFunc = (mod, dep) => ({ ...dep })\n const colorFunc = value.color || defaultColorFunc\n\n if (value.textColor) {\n if (value.textColor === 'bw') {\n outputColor = contrastRatio(backgroundColor).rgb\n } else {\n let color = { ...colors[deps[0]] }\n if (value.color) {\n color = colorFunc(mod, ...deps.map((dep) => ({ ...colors[dep] })))\n }\n outputColor = getTextColor(\n backgroundColor,\n { ...color },\n value.textColor === 'preserve'\n )\n }\n } else {\n // background color case\n outputColor = colorFunc(\n mod,\n ...deps.map((dep) => ({ ...colors[dep] }))\n )\n }\n }\n if (!outputColor) {\n throw new Error('Couldn\\'t generate color for ' + key)\n }\n\n const opacitySlot = value.opacity || getOpacitySlot(key)\n const ownOpacitySlot = value.opacity\n\n if (ownOpacitySlot === null) {\n outputColor.a = 1\n } else if (sourceColor === 'transparent') {\n outputColor.a = 0\n } else {\n const opacityOverriden = ownOpacitySlot && sourceOpacity[opacitySlot] !== undefined\n\n const dependencySlot = deps[0]\n const dependencyColor = dependencySlot && colors[dependencySlot]\n\n if (!ownOpacitySlot && dependencyColor && !value.textColor && ownOpacitySlot !== null) {\n // Inheriting color from dependency (weird, i know)\n // except if it's a text color or opacity slot is set to 'null'\n outputColor.a = dependencyColor.a\n } else if (!dependencyColor && !opacitySlot) {\n // Remove any alpha channel if no dependency and no opacitySlot found\n delete outputColor.a\n } else {\n // Otherwise try to assign opacity\n if (dependencyColor && dependencyColor.a === 0) {\n // transparent dependency shall make dependents transparent too\n outputColor.a = 0\n } else {\n // Otherwise check if opacity is overriden and use that or default value instead\n outputColor.a = Number(\n opacityOverriden\n ? sourceOpacity[opacitySlot]\n : (OPACITIES[opacitySlot] || {}).defaultValue\n )\n }\n }\n }\n\n if (Number.isNaN(outputColor.a) || outputColor.a === undefined) {\n outputColor.a = 1\n }\n\n if (opacitySlot) {\n return {\n colors: { ...colors, [key]: outputColor },\n opacity: { ...opacity, [opacitySlot]: outputColor.a }\n }\n } else {\n return {\n colors: { ...colors, [key]: outputColor },\n opacity\n }\n }\n}, { colors: {}, opacity: {} })\n","import { convert } from 'chromatism'\nimport { rgb2hex, hex2rgb, rgba2css, getCssColor, relativeLuminance } from '../color_convert/color_convert.js'\nimport { getColors, computeDynamicColor, getOpacitySlot } from '../theme_data/theme_data.service.js'\n\nexport const applyTheme = (input) => {\n const { rules } = generatePreset(input)\n const head = document.head\n const body = document.body\n body.classList.add('hidden')\n\n const styleEl = document.createElement('style')\n head.appendChild(styleEl)\n const styleSheet = styleEl.sheet\n\n styleSheet.toString()\n styleSheet.insertRule(`body { ${rules.radii} }`, 'index-max')\n styleSheet.insertRule(`body { ${rules.colors} }`, 'index-max')\n styleSheet.insertRule(`body { ${rules.shadows} }`, 'index-max')\n styleSheet.insertRule(`body { ${rules.fonts} }`, 'index-max')\n body.classList.remove('hidden')\n}\n\nexport const getCssShadow = (input, usesDropShadow) => {\n if (input.length === 0) {\n return 'none'\n }\n\n return input\n .filter(_ => usesDropShadow ? _.inset : _)\n .map((shad) => [\n shad.x,\n shad.y,\n shad.blur,\n shad.spread\n ].map(_ => _ + 'px').concat([\n getCssColor(shad.color, shad.alpha),\n shad.inset ? 'inset' : ''\n ]).join(' ')).join(', ')\n}\n\nconst getCssShadowFilter = (input) => {\n if (input.length === 0) {\n return 'none'\n }\n\n return input\n // drop-shadow doesn't support inset or spread\n .filter((shad) => !shad.inset && Number(shad.spread) === 0)\n .map((shad) => [\n shad.x,\n shad.y,\n // drop-shadow's blur is twice as strong compared to box-shadow\n shad.blur / 2\n ].map(_ => _ + 'px').concat([\n getCssColor(shad.color, shad.alpha)\n ]).join(' '))\n .map(_ => `drop-shadow(${_})`)\n .join(' ')\n}\n\nexport const generateColors = (themeData) => {\n const sourceColors = !themeData.themeEngineVersion\n ? colors2to3(themeData.colors || themeData)\n : themeData.colors || themeData\n\n const { colors, opacity } = getColors(sourceColors, themeData.opacity || {})\n\n const htmlColors = Object.entries(colors)\n .reduce((acc, [k, v]) => {\n if (!v) return acc\n acc.solid[k] = rgb2hex(v)\n acc.complete[k] = typeof v.a === 'undefined' ? rgb2hex(v) : rgba2css(v)\n return acc\n }, { complete: {}, solid: {} })\n return {\n rules: {\n colors: Object.entries(htmlColors.complete)\n .filter(([k, v]) => v)\n .map(([k, v]) => `--${k}: ${v}`)\n .join(';')\n },\n theme: {\n colors: htmlColors.solid,\n opacity\n }\n }\n}\n\nexport const generateRadii = (input) => {\n let inputRadii = input.radii || {}\n // v1 -> v2\n if (typeof input.btnRadius !== 'undefined') {\n inputRadii = Object\n .entries(input)\n .filter(([k, v]) => k.endsWith('Radius'))\n .reduce((acc, e) => { acc[e[0].split('Radius')[0]] = e[1]; return acc }, {})\n }\n const radii = Object.entries(inputRadii).filter(([k, v]) => v).reduce((acc, [k, v]) => {\n acc[k] = v\n return acc\n }, {\n btn: 4,\n input: 4,\n checkbox: 2,\n panel: 10,\n avatar: 5,\n avatarAlt: 50,\n tooltip: 2,\n attachment: 5\n })\n\n return {\n rules: {\n radii: Object.entries(radii).filter(([k, v]) => v).map(([k, v]) => `--${k}Radius: ${v}px`).join(';')\n },\n theme: {\n radii\n }\n }\n}\n\nexport const generateFonts = (input) => {\n const fonts = Object.entries(input.fonts || {}).filter(([k, v]) => v).reduce((acc, [k, v]) => {\n acc[k] = Object.entries(v).filter(([k, v]) => v).reduce((acc, [k, v]) => {\n acc[k] = v\n return acc\n }, acc[k])\n return acc\n }, {\n interface: {\n family: 'sans-serif'\n },\n input: {\n family: 'inherit'\n },\n post: {\n family: 'inherit'\n },\n postCode: {\n family: 'monospace'\n }\n })\n\n return {\n rules: {\n fonts: Object\n .entries(fonts)\n .filter(([k, v]) => v)\n .map(([k, v]) => `--${k}Font: ${v.family}`).join(';')\n },\n theme: {\n fonts\n }\n }\n}\n\nconst border = (top, shadow) => ({\n x: 0,\n y: top ? 1 : -1,\n blur: 0,\n spread: 0,\n color: shadow ? '#000000' : '#FFFFFF',\n alpha: 0.2,\n inset: true\n})\nconst buttonInsetFakeBorders = [border(true, false), border(false, true)]\nconst inputInsetFakeBorders = [border(true, true), border(false, false)]\nconst hoverGlow = {\n x: 0,\n y: 0,\n blur: 4,\n spread: 0,\n color: '--faint',\n alpha: 1\n}\n\nexport const DEFAULT_SHADOWS = {\n panel: [{\n x: 1,\n y: 1,\n blur: 4,\n spread: 0,\n color: '#000000',\n alpha: 0.6\n }],\n topBar: [{\n x: 0,\n y: 0,\n blur: 4,\n spread: 0,\n color: '#000000',\n alpha: 0.6\n }],\n popup: [{\n x: 2,\n y: 2,\n blur: 3,\n spread: 0,\n color: '#000000',\n alpha: 0.5\n }],\n avatar: [{\n x: 0,\n y: 1,\n blur: 8,\n spread: 0,\n color: '#000000',\n alpha: 0.7\n }],\n avatarStatus: [],\n panelHeader: [],\n button: [{\n x: 0,\n y: 0,\n blur: 2,\n spread: 0,\n color: '#000000',\n alpha: 1\n }, ...buttonInsetFakeBorders],\n buttonHover: [hoverGlow, ...buttonInsetFakeBorders],\n buttonPressed: [hoverGlow, ...inputInsetFakeBorders],\n input: [...inputInsetFakeBorders, {\n x: 0,\n y: 0,\n blur: 2,\n inset: true,\n spread: 0,\n color: '#000000',\n alpha: 1\n }]\n}\nexport const generateShadows = (input, colors) => {\n // TODO this is a small hack for `mod` to work with shadows\n // this is used to get the \"context\" of shadow, i.e. for `mod` properly depend on background color of element\n const hackContextDict = {\n button: 'btn',\n panel: 'bg',\n top: 'topBar',\n popup: 'popover',\n avatar: 'bg',\n panelHeader: 'panel',\n input: 'input'\n }\n const inputShadows = input.shadows && !input.themeEngineVersion\n ? shadows2to3(input.shadows, input.opacity)\n : input.shadows || {}\n const shadows = Object.entries({\n ...DEFAULT_SHADOWS,\n ...inputShadows\n }).reduce((shadowsAcc, [slotName, shadowDefs]) => {\n const slotFirstWord = slotName.replace(/[A-Z].*$/, '')\n const colorSlotName = hackContextDict[slotFirstWord]\n const isLightOnDark = relativeLuminance(convert(colors[colorSlotName]).rgb) < 0.5\n const mod = isLightOnDark ? 1 : -1\n const newShadow = shadowDefs.reduce((shadowAcc, def) => [\n ...shadowAcc,\n {\n ...def,\n color: rgb2hex(computeDynamicColor(\n def.color,\n (variableSlot) => convert(colors[variableSlot]).rgb,\n mod\n ))\n }\n ], [])\n return { ...shadowsAcc, [slotName]: newShadow }\n }, {})\n\n return {\n rules: {\n shadows: Object\n .entries(shadows)\n // TODO for v2.2: if shadow doesn't have non-inset shadows with spread > 0 - optionally\n // convert all non-inset shadows into filter: drop-shadow() to boost performance\n .map(([k, v]) => [\n `--${k}Shadow: ${getCssShadow(v)}`,\n `--${k}ShadowFilter: ${getCssShadowFilter(v)}`,\n `--${k}ShadowInset: ${getCssShadow(v, true)}`\n ].join(';'))\n .join(';')\n },\n theme: {\n shadows\n }\n }\n}\n\nexport const composePreset = (colors, radii, shadows, fonts) => {\n return {\n rules: {\n ...shadows.rules,\n ...colors.rules,\n ...radii.rules,\n ...fonts.rules\n },\n theme: {\n ...shadows.theme,\n ...colors.theme,\n ...radii.theme,\n ...fonts.theme\n }\n }\n}\n\nexport const generatePreset = (input) => {\n const colors = generateColors(input)\n return composePreset(\n colors,\n generateRadii(input),\n generateShadows(input, colors.theme.colors, colors.mod),\n generateFonts(input)\n )\n}\n\nexport const getThemes = () => {\n const cache = 'no-store'\n\n return window.fetch('/static/styles.json', { cache })\n .then((data) => data.json())\n .then((themes) => {\n return Object.entries(themes).map(([k, v]) => {\n let promise = null\n if (typeof v === 'object') {\n promise = Promise.resolve(v)\n } else if (typeof v === 'string') {\n promise = window.fetch(v, { cache })\n .then((data) => data.json())\n .catch((e) => {\n console.error(e)\n return null\n })\n }\n return [k, promise]\n })\n })\n .then((promises) => {\n return promises\n .reduce((acc, [k, v]) => {\n acc[k] = v\n return acc\n }, {})\n })\n}\nexport const colors2to3 = (colors) => {\n return Object.entries(colors).reduce((acc, [slotName, color]) => {\n const btnPositions = ['', 'Panel', 'TopBar']\n switch (slotName) {\n case 'lightBg':\n return { ...acc, highlight: color }\n case 'btnText':\n return {\n ...acc,\n ...btnPositions\n .reduce(\n (statePositionAcc, position) =>\n ({ ...statePositionAcc, ['btn' + position + 'Text']: color })\n , {}\n )\n }\n default:\n return { ...acc, [slotName]: color }\n }\n }, {})\n}\n\n/**\n * This handles compatibility issues when importing v2 theme's shadows to current format\n *\n * Back in v2 shadows allowed you to use dynamic colors however those used pure CSS3 variables\n */\nexport const shadows2to3 = (shadows, opacity) => {\n return Object.entries(shadows).reduce((shadowsAcc, [slotName, shadowDefs]) => {\n const isDynamic = ({ color }) => color.startsWith('--')\n const getOpacity = ({ color }) => opacity[getOpacitySlot(color.substring(2).split(',')[0])]\n const newShadow = shadowDefs.reduce((shadowAcc, def) => [\n ...shadowAcc,\n {\n ...def,\n alpha: isDynamic(def) ? getOpacity(def) || 1 : def.alpha\n }\n ], [])\n return { ...shadowsAcc, [slotName]: newShadow }\n }, {})\n}\n\nexport const getPreset = (val) => {\n return getThemes()\n .then((themes) => themes[val] ? themes[val] : themes['pleroma-dark'])\n .then((theme) => {\n const isV1 = Array.isArray(theme)\n const data = isV1 ? {} : theme.theme\n\n if (isV1) {\n const bg = hex2rgb(theme[1])\n const fg = hex2rgb(theme[2])\n const text = hex2rgb(theme[3])\n const link = hex2rgb(theme[4])\n\n const cRed = hex2rgb(theme[5] || '#FF0000')\n const cGreen = hex2rgb(theme[6] || '#00FF00')\n const cBlue = hex2rgb(theme[7] || '#0000FF')\n const cOrange = hex2rgb(theme[8] || '#E3FF00')\n\n data.colors = { bg, fg, text, link, cRed, cBlue, cGreen, cOrange }\n }\n\n return { theme: data, source: theme.source }\n })\n}\n\nexport const setPreset = (val) => getPreset(val).then(data => applyTheme(data.theme))\n","import { set, delete as del } from 'vue'\nimport { setPreset, applyTheme } from '../services/style_setter/style_setter.js'\n\nconst browserLocale = (window.navigator.language || 'en').split('-')[0]\n\nexport const defaultState = {\n colors: {},\n theme: undefined,\n customTheme: undefined,\n customThemeSource: undefined,\n hideISP: false,\n // bad name: actually hides posts of muted USERS\n hideMutedPosts: undefined, // instance default\n collapseMessageWithSubject: undefined, // instance default\n padEmoji: true,\n hideAttachments: false,\n hideAttachmentsInConv: false,\n maxThumbnails: 16,\n hideNsfw: true,\n preloadImage: true,\n loopVideo: true,\n loopVideoSilentOnly: true,\n autoLoad: true,\n streaming: false,\n hoverPreview: true,\n emojiReactionsOnTimeline: true,\n autohideFloatingPostButton: false,\n pauseOnUnfocused: true,\n stopGifs: false,\n replyVisibility: 'all',\n notificationVisibility: {\n follows: true,\n mentions: true,\n likes: true,\n repeats: true,\n moves: true,\n emojiReactions: false,\n followRequest: true\n },\n webPushNotifications: false,\n muteWords: [],\n highlight: {},\n interfaceLanguage: browserLocale,\n hideScopeNotice: false,\n useStreamingApi: false,\n scopeCopy: undefined, // instance default\n subjectLineBehavior: undefined, // instance default\n alwaysShowSubjectInput: undefined, // instance default\n postContentType: undefined, // instance default\n minimalScopesMode: undefined, // instance default\n // This hides statuses filtered via a word filter\n hideFilteredStatuses: undefined, // instance default\n playVideosInModal: false,\n useOneClickNsfw: false,\n useContainFit: false,\n greentext: undefined, // instance default\n hidePostStats: undefined, // instance default\n hideUserStats: undefined // instance default\n}\n\n// caching the instance default properties\nexport const instanceDefaultProperties = Object.entries(defaultState)\n .filter(([key, value]) => value === undefined)\n .map(([key, value]) => key)\n\nconst config = {\n state: defaultState,\n getters: {\n mergedConfig (state, getters, rootState, rootGetters) {\n const { instance } = rootState\n return {\n ...state,\n ...instanceDefaultProperties\n .map(key => [key, state[key] === undefined\n ? instance[key]\n : state[key]\n ])\n .reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {})\n }\n }\n },\n mutations: {\n setOption (state, { name, value }) {\n set(state, name, value)\n },\n setHighlight (state, { user, color, type }) {\n const data = this.state.config.highlight[user]\n if (color || type) {\n set(state.highlight, user, { color: color || data.color, type: type || data.type })\n } else {\n del(state.highlight, user)\n }\n }\n },\n actions: {\n setHighlight ({ commit, dispatch }, { user, color, type }) {\n commit('setHighlight', { user, color, type })\n },\n setOption ({ commit, dispatch }, { name, value }) {\n commit('setOption', { name, value })\n switch (name) {\n case 'theme':\n setPreset(value)\n break\n case 'customTheme':\n case 'customThemeSource':\n applyTheme(value)\n }\n }\n }\n}\n\nexport default config\n","import { set } from 'vue'\nimport { getPreset, applyTheme } from '../services/style_setter/style_setter.js'\nimport { CURRENT_VERSION } from '../services/theme_data/theme_data.service.js'\nimport { instanceDefaultProperties } from './config.js'\n\nconst defaultState = {\n // Stuff from 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 themeData: undefined,\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 case 'theme':\n dispatch('setTheme', value)\n break\n }\n },\n async getStaticEmoji ({ commit }) {\n try {\n const res = await window.fetch('/static/emoji.json')\n if (res.ok) {\n const values = await res.json()\n const emoji = Object.keys(values).map((key) => {\n return {\n displayText: key,\n imageUrl: false,\n replacement: values[key]\n }\n }).sort((a, b) => a.displayText - b.displayText)\n commit('setInstanceOption', { name: 'emoji', value: emoji })\n } else {\n throw (res)\n }\n } catch (e) {\n console.warn(\"Can't load static emoji\")\n console.warn(e)\n }\n },\n\n async getCustomEmoji ({ commit, state }) {\n try {\n const res = await window.fetch('/api/pleroma/emoji.json')\n if (res.ok) {\n const result = await res.json()\n const values = Array.isArray(result) ? Object.assign({}, ...result) : result\n const emoji = Object.entries(values).map(([key, value]) => {\n const imageUrl = value.image_url\n return {\n displayText: key,\n imageUrl: imageUrl ? state.server + imageUrl : value,\n tags: imageUrl ? value.tags.sort((a, b) => a > b ? 1 : 0) : ['utf'],\n replacement: `:${key}: `\n }\n // Technically could use tags but those are kinda useless right now,\n // should have been \"pack\" field, that would be more useful\n }).sort((a, b) => a.displayText.toLowerCase() > b.displayText.toLowerCase() ? 1 : 0)\n commit('setInstanceOption', { name: 'customEmoji', value: emoji })\n } else {\n throw (res)\n }\n } catch (e) {\n console.warn(\"Can't load custom emojis\")\n console.warn(e)\n }\n },\n\n setTheme ({ commit, rootState }, themeName) {\n commit('setInstanceOption', { name: 'theme', value: themeName })\n getPreset(themeName)\n .then(themeData => {\n commit('setInstanceOption', { name: 'themeData', value: themeData })\n // No need to apply theme if there's user theme already\n const { customTheme } = rootState.config\n if (customTheme) return\n\n // New theme presets don't have 'theme' property, they use 'source'\n const themeSource = themeData.source\n if (!themeData.theme || (themeSource && themeSource.themeEngineVersion === CURRENT_VERSION)) {\n applyTheme(themeSource)\n } else {\n applyTheme(themeData.theme)\n }\n })\n },\n fetchEmoji ({ dispatch, state }) {\n if (!state.customEmojiFetched) {\n state.customEmojiFetched = true\n dispatch('getCustomEmoji')\n }\n if (!state.emojiFetched) {\n state.emojiFetched = true\n dispatch('getStaticEmoji')\n }\n }\n }\n}\n\nexport default instance\n","import {\n remove,\n slice,\n each,\n findIndex,\n find,\n maxBy,\n minBy,\n merge,\n first,\n last,\n isArray,\n omitBy\n} from 'lodash'\nimport { set } from 'vue'\nimport { isStatusNotification } from '../services/notification_utils/notification_utils.js'\nimport apiService from '../services/api/api.service.js'\n// import parse from '../services/status_parser/status_parser.js'\n\nconst emptyTl = (userId = 0) => ({\n statuses: [],\n statusesObject: {},\n faves: [],\n visibleStatuses: [],\n visibleStatusesObject: {},\n newStatusCount: 0,\n maxId: 0,\n minId: 0,\n minVisibleId: 0,\n loading: false,\n followers: [],\n friends: [],\n userId,\n flushMarker: 0\n})\n\nconst emptyNotifications = () => ({\n desktopNotificationSilence: true,\n maxId: 0,\n minId: Number.POSITIVE_INFINITY,\n data: [],\n idStore: {},\n loading: false,\n error: false\n})\n\nexport const defaultState = () => ({\n allStatuses: [],\n allStatusesObject: {},\n conversationsObject: {},\n maxId: 0,\n notifications: emptyNotifications(),\n favorites: new Set(),\n error: false,\n errorData: null,\n timelines: {\n mentions: emptyTl(),\n public: emptyTl(),\n user: emptyTl(),\n favorites: emptyTl(),\n media: emptyTl(),\n publicAndExternal: emptyTl(),\n friends: emptyTl(),\n tag: emptyTl(),\n dms: emptyTl()\n }\n})\n\nexport const prepareStatus = (status) => {\n // Set deleted flag\n status.deleted = false\n\n // To make the array reactive\n status.attachments = status.attachments || []\n\n return status\n}\n\nconst visibleNotificationTypes = (rootState) => {\n return [\n rootState.config.notificationVisibility.likes && 'like',\n rootState.config.notificationVisibility.mentions && 'mention',\n rootState.config.notificationVisibility.repeats && 'repeat',\n rootState.config.notificationVisibility.follows && 'follow',\n rootState.config.notificationVisibility.moves && 'move',\n rootState.config.notificationVisibility.emojiReactions && 'pleroma:emoji_reactions'\n ].filter(_ => _)\n}\n\nconst mergeOrAdd = (arr, obj, item) => {\n const oldItem = obj[item.id]\n\n if (oldItem) {\n // We already have this, so only merge the new info.\n // We ignore null values to avoid overwriting existing properties with missing data\n // we also skip 'user' because that is handled by users module\n merge(oldItem, omitBy(item, (v, k) => v === null || k === 'user'))\n // Reactivity fix.\n oldItem.attachments.splice(oldItem.attachments.length)\n return { item: oldItem, new: false }\n } else {\n // This is a new item, prepare it\n prepareStatus(item)\n arr.push(item)\n set(obj, item.id, item)\n return { item, new: true }\n }\n}\n\nconst sortById = (a, b) => {\n const seqA = Number(a.id)\n const seqB = Number(b.id)\n const isSeqA = !Number.isNaN(seqA)\n const isSeqB = !Number.isNaN(seqB)\n if (isSeqA && isSeqB) {\n return seqA > seqB ? -1 : 1\n } else if (isSeqA && !isSeqB) {\n return 1\n } else if (!isSeqA && isSeqB) {\n return -1\n } else {\n return a.id > b.id ? -1 : 1\n }\n}\n\nconst sortTimeline = (timeline) => {\n timeline.visibleStatuses = timeline.visibleStatuses.sort(sortById)\n timeline.statuses = timeline.statuses.sort(sortById)\n timeline.minVisibleId = (last(timeline.visibleStatuses) || {}).id\n return timeline\n}\n\n// Add status to the global storages (arrays and objects maintaining statuses) except timelines\nconst addStatusToGlobalStorage = (state, data) => {\n const result = mergeOrAdd(state.allStatuses, state.allStatusesObject, data)\n if (result.new) {\n // Add to conversation\n const status = result.item\n const conversationsObject = state.conversationsObject\n const conversationId = status.statusnet_conversation_id\n if (conversationsObject[conversationId]) {\n conversationsObject[conversationId].push(status)\n } else {\n set(conversationsObject, conversationId, [status])\n }\n }\n return result\n}\n\n// Remove status from the global storages (arrays and objects maintaining statuses) except timelines\nconst removeStatusFromGlobalStorage = (state, status) => {\n remove(state.allStatuses, { id: status.id })\n\n // TODO: Need to remove from allStatusesObject?\n\n // Remove possible notification\n remove(state.notifications.data, ({ action: { id } }) => id === status.id)\n\n // Remove from conversation\n const conversationId = status.statusnet_conversation_id\n if (state.conversationsObject[conversationId]) {\n remove(state.conversationsObject[conversationId], { id: status.id })\n }\n}\n\nconst addNewStatuses = (state, { statuses, showImmediately = false, timeline, user = {},\n noIdUpdate = false, userId }) => {\n // Sanity check\n if (!isArray(statuses)) {\n return false\n }\n\n const allStatuses = state.allStatuses\n const timelineObject = state.timelines[timeline]\n\n const maxNew = statuses.length > 0 ? maxBy(statuses, 'id').id : 0\n const minNew = statuses.length > 0 ? minBy(statuses, 'id').id : 0\n const newer = timeline && (maxNew > timelineObject.maxId || timelineObject.maxId === 0) && statuses.length > 0\n const older = timeline && (minNew < timelineObject.minId || timelineObject.minId === 0) && statuses.length > 0\n\n if (!noIdUpdate && newer) {\n timelineObject.maxId = maxNew\n }\n if (!noIdUpdate && older) {\n timelineObject.minId = minNew\n }\n\n // This makes sure that user timeline won't get data meant for other\n // user. I.e. opening different user profiles makes request which could\n // return data late after user already viewing different user profile\n if ((timeline === 'user' || timeline === 'media') && timelineObject.userId !== userId) {\n return\n }\n\n const addStatus = (data, showImmediately, addToTimeline = true) => {\n const result = addStatusToGlobalStorage(state, data)\n const status = result.item\n\n if (result.new) {\n // We are mentioned in a post\n if (status.type === 'status' && find(status.attentions, { id: user.id })) {\n const mentions = state.timelines.mentions\n\n // Add the mention to the mentions timeline\n if (timelineObject !== mentions) {\n mergeOrAdd(mentions.statuses, mentions.statusesObject, status)\n mentions.newStatusCount += 1\n\n sortTimeline(mentions)\n }\n }\n if (status.visibility === 'direct') {\n const dms = state.timelines.dms\n\n mergeOrAdd(dms.statuses, dms.statusesObject, status)\n dms.newStatusCount += 1\n\n sortTimeline(dms)\n }\n }\n\n // Decide if we should treat the status as new for this timeline.\n let resultForCurrentTimeline\n // Some statuses should only be added to the global status repository.\n if (timeline && addToTimeline) {\n resultForCurrentTimeline = mergeOrAdd(timelineObject.statuses, timelineObject.statusesObject, status)\n }\n\n if (timeline && showImmediately) {\n // Add it directly to the visibleStatuses, don't change\n // newStatusCount\n mergeOrAdd(timelineObject.visibleStatuses, timelineObject.visibleStatusesObject, status)\n } else if (timeline && addToTimeline && resultForCurrentTimeline.new) {\n // Just change newStatuscount\n timelineObject.newStatusCount += 1\n }\n\n return status\n }\n\n const favoriteStatus = (favorite, counter) => {\n const status = find(allStatuses, { id: favorite.in_reply_to_status_id })\n if (status) {\n // This is our favorite, so the relevant bit.\n if (favorite.user.id === user.id) {\n status.favorited = true\n } else {\n status.fave_num += 1\n }\n }\n return status\n }\n\n const processors = {\n 'status': (status) => {\n addStatus(status, showImmediately)\n },\n 'retweet': (status) => {\n // RetweetedStatuses are never shown immediately\n const retweetedStatus = addStatus(status.retweeted_status, false, false)\n\n let retweet\n // If the retweeted status is already there, don't add the retweet\n // to the timeline.\n if (timeline && find(timelineObject.statuses, (s) => {\n if (s.retweeted_status) {\n return s.id === retweetedStatus.id || s.retweeted_status.id === retweetedStatus.id\n } else {\n return s.id === retweetedStatus.id\n }\n })) {\n // Already have it visible (either as the original or another RT), don't add to timeline, don't show.\n retweet = addStatus(status, false, false)\n } else {\n retweet = addStatus(status, showImmediately)\n }\n\n retweet.retweeted_status = retweetedStatus\n },\n 'favorite': (favorite) => {\n // Only update if this is a new favorite.\n // Ignore our own favorites because we get info about likes as response to like request\n if (!state.favorites.has(favorite.id)) {\n state.favorites.add(favorite.id)\n favoriteStatus(favorite)\n }\n },\n 'deletion': (deletion) => {\n const uri = deletion.uri\n const status = find(allStatuses, { uri })\n if (!status) {\n return\n }\n\n removeStatusFromGlobalStorage(state, status)\n\n if (timeline) {\n remove(timelineObject.statuses, { uri })\n remove(timelineObject.visibleStatuses, { uri })\n }\n },\n 'follow': (follow) => {\n // NOOP, it is known status but we don't do anything about it for now\n },\n 'default': (unknown) => {\n console.log('unknown status type')\n console.log(unknown)\n }\n }\n\n each(statuses, (status) => {\n const type = status.type\n const processor = processors[type] || processors['default']\n processor(status)\n })\n\n // Keep the visible statuses sorted\n if (timeline) {\n sortTimeline(timelineObject)\n }\n}\n\nconst addNewNotifications = (state, { dispatch, notifications, older, visibleNotificationTypes, rootGetters }) => {\n each(notifications, (notification) => {\n if (isStatusNotification(notification.type)) {\n notification.action = addStatusToGlobalStorage(state, notification.action).item\n notification.status = notification.status && addStatusToGlobalStorage(state, notification.status).item\n }\n\n if (notification.type === 'pleroma:emoji_reaction') {\n dispatch('fetchEmojiReactionsBy', notification.status.id)\n }\n\n // Only add a new notification if we don't have one for the same action\n if (!state.notifications.idStore.hasOwnProperty(notification.id)) {\n state.notifications.maxId = notification.id > state.notifications.maxId\n ? notification.id\n : state.notifications.maxId\n state.notifications.minId = notification.id < state.notifications.minId\n ? notification.id\n : state.notifications.minId\n\n state.notifications.data.push(notification)\n state.notifications.idStore[notification.id] = notification\n\n if ('Notification' in window && window.Notification.permission === 'granted') {\n const notifObj = {}\n const status = notification.status\n const title = notification.from_profile.name\n notifObj.icon = notification.from_profile.profile_image_url\n let i18nString\n switch (notification.type) {\n case 'like':\n i18nString = 'favorited_you'\n break\n case 'repeat':\n i18nString = 'repeated_you'\n break\n case 'follow':\n i18nString = 'followed_you'\n break\n case 'move':\n i18nString = 'migrated_to'\n break\n case 'follow_request':\n i18nString = 'follow_request'\n break\n }\n\n if (notification.type === 'pleroma:emoji_reaction') {\n notifObj.body = rootGetters.i18n.t('notifications.reacted_with', [notification.emoji])\n } else if (i18nString) {\n notifObj.body = rootGetters.i18n.t('notifications.' + i18nString)\n } else if (isStatusNotification(notification.type)) {\n notifObj.body = notification.status.text\n }\n\n // Shows first attached non-nsfw image, if any. Should add configuration for this somehow...\n if (status && status.attachments && status.attachments.length > 0 && !status.nsfw &&\n status.attachments[0].mimetype.startsWith('image/')) {\n notifObj.image = status.attachments[0].url\n }\n\n if (!notification.seen && !state.notifications.desktopNotificationSilence && visibleNotificationTypes.includes(notification.type)) {\n let desktopNotification = new window.Notification(title, notifObj)\n // Chrome is known for not closing notifications automatically\n // according to MDN, anyway.\n setTimeout(desktopNotification.close.bind(desktopNotification), 5000)\n }\n }\n } else if (notification.seen) {\n state.notifications.idStore[notification.id].seen = true\n }\n })\n}\n\nconst removeStatus = (state, { timeline, userId }) => {\n const timelineObject = state.timelines[timeline]\n if (userId) {\n remove(timelineObject.statuses, { user: { id: userId } })\n remove(timelineObject.visibleStatuses, { user: { id: userId } })\n timelineObject.minVisibleId = timelineObject.visibleStatuses.length > 0 ? last(timelineObject.visibleStatuses).id : 0\n timelineObject.maxId = timelineObject.statuses.length > 0 ? first(timelineObject.statuses).id : 0\n }\n}\n\nexport const mutations = {\n addNewStatuses,\n addNewNotifications,\n removeStatus,\n showNewStatuses (state, { timeline }) {\n const oldTimeline = (state.timelines[timeline])\n\n oldTimeline.newStatusCount = 0\n oldTimeline.visibleStatuses = slice(oldTimeline.statuses, 0, 50)\n oldTimeline.minVisibleId = last(oldTimeline.visibleStatuses).id\n oldTimeline.minId = oldTimeline.minVisibleId\n oldTimeline.visibleStatusesObject = {}\n each(oldTimeline.visibleStatuses, (status) => { oldTimeline.visibleStatusesObject[status.id] = status })\n },\n resetStatuses (state) {\n const emptyState = defaultState()\n Object.entries(emptyState).forEach(([key, value]) => {\n state[key] = value\n })\n },\n clearTimeline (state, { timeline, excludeUserId = false }) {\n const userId = excludeUserId ? state.timelines[timeline].userId : undefined\n state.timelines[timeline] = emptyTl(userId)\n },\n clearNotifications (state) {\n state.notifications = emptyNotifications()\n },\n setFavorited (state, { status, value }) {\n const newStatus = state.allStatusesObject[status.id]\n\n if (newStatus.favorited !== value) {\n if (value) {\n newStatus.fave_num++\n } else {\n newStatus.fave_num--\n }\n }\n\n newStatus.favorited = value\n },\n setFavoritedConfirm (state, { status, user }) {\n const newStatus = state.allStatusesObject[status.id]\n newStatus.favorited = status.favorited\n newStatus.fave_num = status.fave_num\n const index = findIndex(newStatus.favoritedBy, { id: user.id })\n if (index !== -1 && !newStatus.favorited) {\n newStatus.favoritedBy.splice(index, 1)\n } else if (index === -1 && newStatus.favorited) {\n newStatus.favoritedBy.push(user)\n }\n },\n setMutedStatus (state, status) {\n const newStatus = state.allStatusesObject[status.id]\n newStatus.thread_muted = status.thread_muted\n\n if (newStatus.thread_muted !== undefined) {\n state.conversationsObject[newStatus.statusnet_conversation_id].forEach(status => { status.thread_muted = newStatus.thread_muted })\n }\n },\n setRetweeted (state, { status, value }) {\n const newStatus = state.allStatusesObject[status.id]\n\n if (newStatus.repeated !== value) {\n if (value) {\n newStatus.repeat_num++\n } else {\n newStatus.repeat_num--\n }\n }\n\n newStatus.repeated = value\n },\n setRetweetedConfirm (state, { status, user }) {\n const newStatus = state.allStatusesObject[status.id]\n newStatus.repeated = status.repeated\n newStatus.repeat_num = status.repeat_num\n const index = findIndex(newStatus.rebloggedBy, { id: user.id })\n if (index !== -1 && !newStatus.repeated) {\n newStatus.rebloggedBy.splice(index, 1)\n } else if (index === -1 && newStatus.repeated) {\n newStatus.rebloggedBy.push(user)\n }\n },\n setDeleted (state, { status }) {\n const newStatus = state.allStatusesObject[status.id]\n newStatus.deleted = true\n },\n setManyDeleted (state, condition) {\n Object.values(state.allStatusesObject).forEach(status => {\n if (condition(status)) {\n status.deleted = true\n }\n })\n },\n setLoading (state, { timeline, value }) {\n state.timelines[timeline].loading = value\n },\n setNsfw (state, { id, nsfw }) {\n const newStatus = state.allStatusesObject[id]\n newStatus.nsfw = nsfw\n },\n setError (state, { value }) {\n state.error = value\n },\n setErrorData (state, { value }) {\n state.errorData = value\n },\n setNotificationsLoading (state, { value }) {\n state.notifications.loading = value\n },\n setNotificationsError (state, { value }) {\n state.notifications.error = value\n },\n setNotificationsSilence (state, { value }) {\n state.notifications.desktopNotificationSilence = value\n },\n markNotificationsAsSeen (state) {\n each(state.notifications.data, (notification) => {\n notification.seen = true\n })\n },\n markSingleNotificationAsSeen (state, { id }) {\n const notification = find(state.notifications.data, n => n.id === id)\n if (notification) notification.seen = true\n },\n dismissNotification (state, { id }) {\n state.notifications.data = state.notifications.data.filter(n => n.id !== id)\n },\n updateNotification (state, { id, updater }) {\n const notification = find(state.notifications.data, n => n.id === id)\n notification && updater(notification)\n },\n queueFlush (state, { timeline, id }) {\n state.timelines[timeline].flushMarker = id\n },\n addRepeats (state, { id, rebloggedByUsers, currentUser }) {\n const newStatus = state.allStatusesObject[id]\n newStatus.rebloggedBy = rebloggedByUsers.filter(_ => _)\n // repeats stats can be incorrect based on polling condition, let's update them using the most recent data\n newStatus.repeat_num = newStatus.rebloggedBy.length\n newStatus.repeated = !!newStatus.rebloggedBy.find(({ id }) => currentUser.id === id)\n },\n addFavs (state, { id, favoritedByUsers, currentUser }) {\n const newStatus = state.allStatusesObject[id]\n newStatus.favoritedBy = favoritedByUsers.filter(_ => _)\n // favorites stats can be incorrect based on polling condition, let's update them using the most recent data\n newStatus.fave_num = newStatus.favoritedBy.length\n newStatus.favorited = !!newStatus.favoritedBy.find(({ id }) => currentUser.id === id)\n },\n addEmojiReactionsBy (state, { id, emojiReactions, currentUser }) {\n const status = state.allStatusesObject[id]\n set(status, 'emoji_reactions', emojiReactions)\n },\n addOwnReaction (state, { id, emoji, currentUser }) {\n const status = state.allStatusesObject[id]\n const reactionIndex = findIndex(status.emoji_reactions, { name: emoji })\n const reaction = status.emoji_reactions[reactionIndex] || { name: emoji, count: 0, accounts: [] }\n\n const newReaction = {\n ...reaction,\n count: reaction.count + 1,\n me: true,\n accounts: [\n ...reaction.accounts,\n currentUser\n ]\n }\n\n // Update count of existing reaction if it exists, otherwise append at the end\n if (reactionIndex >= 0) {\n set(status.emoji_reactions, reactionIndex, newReaction)\n } else {\n set(status, 'emoji_reactions', [...status.emoji_reactions, newReaction])\n }\n },\n removeOwnReaction (state, { id, emoji, currentUser }) {\n const status = state.allStatusesObject[id]\n const reactionIndex = findIndex(status.emoji_reactions, { name: emoji })\n if (reactionIndex < 0) return\n\n const reaction = status.emoji_reactions[reactionIndex]\n const accounts = reaction.accounts || []\n\n const newReaction = {\n ...reaction,\n count: reaction.count - 1,\n me: false,\n accounts: accounts.filter(acc => acc.id !== currentUser.id)\n }\n\n if (newReaction.count > 0) {\n set(status.emoji_reactions, reactionIndex, newReaction)\n } else {\n set(status, 'emoji_reactions', status.emoji_reactions.filter(r => r.name !== emoji))\n }\n },\n updateStatusWithPoll (state, { id, poll }) {\n const status = state.allStatusesObject[id]\n status.poll = poll\n }\n}\n\nconst statuses = {\n state: defaultState(),\n actions: {\n addNewStatuses ({ rootState, commit }, { statuses, showImmediately = false, timeline = false, noIdUpdate = false, userId }) {\n commit('addNewStatuses', { statuses, showImmediately, timeline, noIdUpdate, user: rootState.users.currentUser, userId })\n },\n addNewNotifications ({ rootState, commit, dispatch, rootGetters }, { notifications, older }) {\n commit('addNewNotifications', { visibleNotificationTypes: visibleNotificationTypes(rootState), dispatch, notifications, older, rootGetters })\n },\n setError ({ rootState, commit }, { value }) {\n commit('setError', { value })\n },\n setErrorData ({ rootState, commit }, { value }) {\n commit('setErrorData', { value })\n },\n setNotificationsLoading ({ rootState, commit }, { value }) {\n commit('setNotificationsLoading', { value })\n },\n setNotificationsError ({ rootState, commit }, { value }) {\n commit('setNotificationsError', { value })\n },\n setNotificationsSilence ({ rootState, commit }, { value }) {\n commit('setNotificationsSilence', { value })\n },\n fetchStatus ({ rootState, dispatch }, id) {\n return rootState.api.backendInteractor.fetchStatus({ id })\n .then((status) => dispatch('addNewStatuses', { statuses: [status] }))\n },\n deleteStatus ({ rootState, commit }, status) {\n commit('setDeleted', { status })\n apiService.deleteStatus({ id: status.id, credentials: rootState.users.currentUser.credentials })\n },\n markStatusesAsDeleted ({ commit }, condition) {\n commit('setManyDeleted', condition)\n },\n favorite ({ rootState, commit }, status) {\n // Optimistic favoriting...\n commit('setFavorited', { status, value: true })\n rootState.api.backendInteractor.favorite({ id: status.id })\n .then(status => commit('setFavoritedConfirm', { status, user: rootState.users.currentUser }))\n },\n unfavorite ({ rootState, commit }, status) {\n // Optimistic unfavoriting...\n commit('setFavorited', { status, value: false })\n rootState.api.backendInteractor.unfavorite({ id: status.id })\n .then(status => commit('setFavoritedConfirm', { status, user: rootState.users.currentUser }))\n },\n fetchPinnedStatuses ({ rootState, dispatch }, userId) {\n rootState.api.backendInteractor.fetchPinnedStatuses({ id: userId })\n .then(statuses => dispatch('addNewStatuses', { statuses, timeline: 'user', userId, showImmediately: true, noIdUpdate: true }))\n },\n pinStatus ({ rootState, dispatch }, statusId) {\n return rootState.api.backendInteractor.pinOwnStatus({ id: statusId })\n .then((status) => dispatch('addNewStatuses', { statuses: [status] }))\n },\n unpinStatus ({ rootState, dispatch }, statusId) {\n rootState.api.backendInteractor.unpinOwnStatus({ id: statusId })\n .then((status) => dispatch('addNewStatuses', { statuses: [status] }))\n },\n muteConversation ({ rootState, commit }, statusId) {\n return rootState.api.backendInteractor.muteConversation({ id: statusId })\n .then((status) => commit('setMutedStatus', status))\n },\n unmuteConversation ({ rootState, commit }, statusId) {\n return rootState.api.backendInteractor.unmuteConversation({ id: statusId })\n .then((status) => commit('setMutedStatus', status))\n },\n retweet ({ rootState, commit }, status) {\n // Optimistic retweeting...\n commit('setRetweeted', { status, value: true })\n rootState.api.backendInteractor.retweet({ id: status.id })\n .then(status => commit('setRetweetedConfirm', { status: status.retweeted_status, user: rootState.users.currentUser }))\n },\n unretweet ({ rootState, commit }, status) {\n // Optimistic unretweeting...\n commit('setRetweeted', { status, value: false })\n rootState.api.backendInteractor.unretweet({ id: status.id })\n .then(status => commit('setRetweetedConfirm', { status, user: rootState.users.currentUser }))\n },\n queueFlush ({ rootState, commit }, { timeline, id }) {\n commit('queueFlush', { timeline, id })\n },\n markNotificationsAsSeen ({ rootState, commit }) {\n commit('markNotificationsAsSeen')\n apiService.markNotificationsAsSeen({\n id: rootState.statuses.notifications.maxId,\n credentials: rootState.users.currentUser.credentials\n })\n },\n markSingleNotificationAsSeen ({ rootState, commit }, { id }) {\n commit('markSingleNotificationAsSeen', { id })\n apiService.markNotificationsAsSeen({\n single: true,\n id,\n credentials: rootState.users.currentUser.credentials\n })\n },\n dismissNotificationLocal ({ rootState, commit }, { id }) {\n commit('dismissNotification', { id })\n },\n dismissNotification ({ rootState, commit }, { id }) {\n commit('dismissNotification', { id })\n rootState.api.backendInteractor.dismissNotification({ id })\n },\n updateNotification ({ rootState, commit }, { id, updater }) {\n commit('updateNotification', { id, updater })\n },\n fetchFavsAndRepeats ({ rootState, commit }, id) {\n Promise.all([\n rootState.api.backendInteractor.fetchFavoritedByUsers({ id }),\n rootState.api.backendInteractor.fetchRebloggedByUsers({ id })\n ]).then(([favoritedByUsers, rebloggedByUsers]) => {\n commit('addFavs', { id, favoritedByUsers, currentUser: rootState.users.currentUser })\n commit('addRepeats', { id, rebloggedByUsers, currentUser: rootState.users.currentUser })\n })\n },\n reactWithEmoji ({ rootState, dispatch, commit }, { id, emoji }) {\n const currentUser = rootState.users.currentUser\n if (!currentUser) return\n\n commit('addOwnReaction', { id, emoji, currentUser })\n rootState.api.backendInteractor.reactWithEmoji({ id, emoji }).then(\n ok => {\n dispatch('fetchEmojiReactionsBy', id)\n }\n )\n },\n unreactWithEmoji ({ rootState, dispatch, commit }, { id, emoji }) {\n const currentUser = rootState.users.currentUser\n if (!currentUser) return\n\n commit('removeOwnReaction', { id, emoji, currentUser })\n rootState.api.backendInteractor.unreactWithEmoji({ id, emoji }).then(\n ok => {\n dispatch('fetchEmojiReactionsBy', id)\n }\n )\n },\n fetchEmojiReactionsBy ({ rootState, commit }, id) {\n rootState.api.backendInteractor.fetchEmojiReactions({ id }).then(\n emojiReactions => {\n commit('addEmojiReactionsBy', { id, emojiReactions, currentUser: rootState.users.currentUser })\n }\n )\n },\n fetchFavs ({ rootState, commit }, id) {\n rootState.api.backendInteractor.fetchFavoritedByUsers({ id })\n .then(favoritedByUsers => commit('addFavs', { id, favoritedByUsers, currentUser: rootState.users.currentUser }))\n },\n fetchRepeats ({ rootState, commit }, id) {\n rootState.api.backendInteractor.fetchRebloggedByUsers({ id })\n .then(rebloggedByUsers => commit('addRepeats', { id, rebloggedByUsers, currentUser: rootState.users.currentUser }))\n },\n search (store, { q, resolve, limit, offset, following }) {\n return store.rootState.api.backendInteractor.search2({ q, resolve, limit, offset, following })\n .then((data) => {\n store.commit('addNewUsers', data.accounts)\n store.commit('addNewStatuses', { statuses: data.statuses })\n return data\n })\n }\n },\n mutations\n}\n\nexport default statuses\n","import { camelCase } from 'lodash'\n\nimport apiService from '../api/api.service.js'\n\nconst update = ({ store, statuses, timeline, showImmediately, userId }) => {\n const ccTimeline = camelCase(timeline)\n\n store.dispatch('setError', { value: false })\n store.dispatch('setErrorData', { value: null })\n\n store.dispatch('addNewStatuses', {\n timeline: ccTimeline,\n userId,\n statuses,\n showImmediately\n })\n}\n\nconst fetchAndUpdate = ({\n store,\n credentials,\n timeline = 'friends',\n older = false,\n showImmediately = false,\n userId = false,\n tag = false,\n until\n}) => {\n const args = { timeline, credentials }\n const rootState = store.rootState || store.state\n const { getters } = store\n const timelineData = rootState.statuses.timelines[camelCase(timeline)]\n const hideMutedPosts = getters.mergedConfig.hideMutedPosts\n\n if (older) {\n args['until'] = until || timelineData.minId\n } else {\n args['since'] = timelineData.maxId\n }\n\n args['userId'] = userId\n args['tag'] = tag\n args['withMuted'] = !hideMutedPosts\n\n const numStatusesBeforeFetch = timelineData.statuses.length\n\n return apiService.fetchTimeline(args)\n .then((statuses) => {\n if (statuses.error) {\n store.dispatch('setErrorData', { value: statuses })\n return\n }\n if (!older && statuses.length >= 20 && !timelineData.loading && numStatusesBeforeFetch > 0) {\n store.dispatch('queueFlush', { timeline: timeline, id: timelineData.maxId })\n }\n update({ store, statuses, timeline, showImmediately, userId })\n return statuses\n }, () => store.dispatch('setError', { value: true }))\n}\n\nconst startFetching = ({ timeline = 'friends', credentials, store, userId = false, tag = false }) => {\n const rootState = store.rootState || store.state\n const timelineData = rootState.statuses.timelines[camelCase(timeline)]\n const showImmediately = timelineData.visibleStatuses.length === 0\n timelineData.userId = userId\n fetchAndUpdate({ timeline, credentials, store, showImmediately, userId, tag })\n const boundFetchAndUpdate = () => fetchAndUpdate({ timeline, credentials, store, userId, tag })\n return setInterval(boundFetchAndUpdate, 10000)\n}\nconst timelineFetcher = {\n fetchAndUpdate,\n startFetching\n}\n\nexport default timelineFetcher\n","import apiService from '../api/api.service.js'\n\nconst update = ({ store, notifications, older }) => {\n store.dispatch('setNotificationsError', { value: false })\n store.dispatch('addNewNotifications', { notifications, older })\n}\n\nconst fetchAndUpdate = ({ store, credentials, older = false }) => {\n const args = { credentials }\n const { getters } = store\n const rootState = store.rootState || store.state\n const timelineData = rootState.statuses.notifications\n const hideMutedPosts = getters.mergedConfig.hideMutedPosts\n\n args['withMuted'] = !hideMutedPosts\n\n args['timeline'] = 'notifications'\n if (older) {\n if (timelineData.minId !== Number.POSITIVE_INFINITY) {\n args['until'] = timelineData.minId\n }\n return fetchNotifications({ store, args, older })\n } else {\n // fetch new notifications\n if (timelineData.maxId !== Number.POSITIVE_INFINITY) {\n args['since'] = timelineData.maxId\n }\n const result = fetchNotifications({ store, args, older })\n\n // load unread notifications repeatedly to provide consistency between browser tabs\n const notifications = timelineData.data\n const readNotifsIds = notifications.filter(n => n.seen).map(n => n.id)\n if (readNotifsIds.length) {\n args['since'] = Math.max(...readNotifsIds)\n fetchNotifications({ store, args, older })\n }\n\n return result\n }\n}\n\nconst fetchNotifications = ({ store, args, older }) => {\n return apiService.fetchTimeline(args)\n .then((notifications) => {\n update({ store, notifications, older })\n return notifications\n }, () => store.dispatch('setNotificationsError', { value: true }))\n .catch(() => store.dispatch('setNotificationsError', { value: true }))\n}\n\nconst startFetching = ({ credentials, store }) => {\n fetchAndUpdate({ credentials, store })\n const boundFetchAndUpdate = () => fetchAndUpdate({ credentials, store })\n // Initially there's set flag to silence all desktop notifications so\n // that there won't spam of them when user just opened up the FE we\n // reset that flag after a while to show new notifications once again.\n setTimeout(() => store.dispatch('setNotificationsSilence', false), 10000)\n return setInterval(boundFetchAndUpdate, 10000)\n}\n\nconst notificationsFetcher = {\n fetchAndUpdate,\n startFetching\n}\n\nexport default notificationsFetcher\n","import apiService from '../api/api.service.js'\n\nconst fetchAndUpdate = ({ store, credentials }) => {\n return apiService.fetchFollowRequests({ credentials })\n .then((requests) => {\n store.commit('setFollowRequests', requests)\n }, () => {})\n .catch(() => {})\n}\n\nconst startFetching = ({ credentials, store }) => {\n fetchAndUpdate({ credentials, store })\n const boundFetchAndUpdate = () => fetchAndUpdate({ credentials, store })\n return setInterval(boundFetchAndUpdate, 10000)\n}\n\nconst followRequestFetcher = {\n startFetching\n}\n\nexport default followRequestFetcher\n","import apiService, { getMastodonSocketURI, ProcessedWS } from '../api/api.service.js'\nimport timelineFetcherService from '../timeline_fetcher/timeline_fetcher.service.js'\nimport notificationsFetcher from '../notifications_fetcher/notifications_fetcher.service.js'\nimport followRequestFetcher from '../../services/follow_request_fetcher/follow_request_fetcher.service'\n\nconst backendInteractorService = credentials => ({\n startFetchingTimeline ({ timeline, store, userId = false, tag }) {\n return timelineFetcherService.startFetching({ timeline, store, credentials, userId, tag })\n },\n\n startFetchingNotifications ({ store }) {\n return notificationsFetcher.startFetching({ store, credentials })\n },\n\n fetchAndUpdateNotifications ({ store }) {\n return notificationsFetcher.fetchAndUpdate({ store, credentials })\n },\n\n startFetchingFollowRequests ({ store }) {\n return followRequestFetcher.startFetching({ store, credentials })\n },\n\n startUserSocket ({ store }) {\n const serv = store.rootState.instance.server.replace('http', 'ws')\n const url = serv + getMastodonSocketURI({ credentials, stream: 'user' })\n return ProcessedWS({ url, id: 'User' })\n },\n\n ...Object.entries(apiService).reduce((acc, [key, func]) => {\n return {\n ...acc,\n [key]: (args) => func({ credentials, ...args })\n }\n }, {}),\n\n verifyCredentials: apiService.verifyCredentials\n})\n\nexport default backendInteractorService\n","import { reduce } from 'lodash'\n\nconst REDIRECT_URI = `${window.location.origin}/oauth-callback`\n\nexport const getOrCreateApp = ({ clientId, clientSecret, instance, commit }) => {\n if (clientId && clientSecret) {\n return Promise.resolve({ clientId, clientSecret })\n }\n\n const url = `${instance}/api/v1/apps`\n const form = new window.FormData()\n\n form.append('client_name', `PleromaFE_${window.___pleromafe_commit_hash}_${(new Date()).toISOString()}`)\n form.append('redirect_uris', REDIRECT_URI)\n form.append('scopes', 'read write follow push admin')\n\n return window.fetch(url, {\n method: 'POST',\n body: form\n })\n .then((data) => data.json())\n .then((app) => ({ clientId: app.client_id, clientSecret: app.client_secret }))\n .then((app) => commit('setClientData', app) || app)\n}\n\nconst login = ({ instance, clientId }) => {\n const data = {\n response_type: 'code',\n client_id: clientId,\n redirect_uri: REDIRECT_URI,\n scope: 'read write follow push admin'\n }\n\n const dataString = reduce(data, (acc, v, k) => {\n const encoded = `${k}=${encodeURIComponent(v)}`\n if (!acc) {\n return encoded\n } else {\n return `${acc}&${encoded}`\n }\n }, false)\n\n // Do the redirect...\n const url = `${instance}/oauth/authorize?${dataString}`\n\n window.location.href = url\n}\n\nconst getTokenWithCredentials = ({ clientId, clientSecret, instance, username, password }) => {\n const url = `${instance}/oauth/token`\n const form = new window.FormData()\n\n form.append('client_id', clientId)\n form.append('client_secret', clientSecret)\n form.append('grant_type', 'password')\n form.append('username', username)\n form.append('password', password)\n\n return window.fetch(url, {\n method: 'POST',\n body: form\n }).then((data) => data.json())\n}\n\nconst getToken = ({ clientId, clientSecret, instance, code }) => {\n const url = `${instance}/oauth/token`\n const form = new window.FormData()\n\n form.append('client_id', clientId)\n form.append('client_secret', clientSecret)\n form.append('grant_type', 'authorization_code')\n form.append('code', code)\n form.append('redirect_uri', `${window.location.origin}/oauth-callback`)\n\n return window.fetch(url, {\n method: 'POST',\n body: form\n })\n .then((data) => data.json())\n}\n\nexport const getClientToken = ({ clientId, clientSecret, instance }) => {\n const url = `${instance}/oauth/token`\n const form = new window.FormData()\n\n form.append('client_id', clientId)\n form.append('client_secret', clientSecret)\n form.append('grant_type', 'client_credentials')\n form.append('redirect_uri', `${window.location.origin}/oauth-callback`)\n\n return window.fetch(url, {\n method: 'POST',\n body: form\n }).then((data) => data.json())\n}\nconst verifyOTPCode = ({ app, instance, mfaToken, code }) => {\n const url = `${instance}/oauth/mfa/challenge`\n const form = new window.FormData()\n\n form.append('client_id', app.client_id)\n form.append('client_secret', app.client_secret)\n form.append('mfa_token', mfaToken)\n form.append('code', code)\n form.append('challenge_type', 'totp')\n\n return window.fetch(url, {\n method: 'POST',\n body: form\n }).then((data) => data.json())\n}\n\nconst verifyRecoveryCode = ({ app, instance, mfaToken, code }) => {\n const url = `${instance}/oauth/mfa/challenge`\n const form = new window.FormData()\n\n form.append('client_id', app.client_id)\n form.append('client_secret', app.client_secret)\n form.append('mfa_token', mfaToken)\n form.append('code', code)\n form.append('challenge_type', 'recovery')\n\n return window.fetch(url, {\n method: 'POST',\n body: form\n }).then((data) => data.json())\n}\n\nconst revokeToken = ({ app, instance, token }) => {\n const url = `${instance}/oauth/revoke`\n const form = new window.FormData()\n\n form.append('client_id', app.clientId)\n form.append('client_secret', app.clientSecret)\n form.append('token', token)\n\n return window.fetch(url, {\n method: 'POST',\n body: form\n }).then((data) => data.json())\n}\n\nconst oauth = {\n login,\n getToken,\n getTokenWithCredentials,\n getOrCreateApp,\n verifyOTPCode,\n verifyRecoveryCode,\n revokeToken\n}\n\nexport default oauth\n","import runtime from 'serviceworker-webpack-plugin/lib/runtime'\n\nfunction urlBase64ToUint8Array (base64String) {\n const padding = '='.repeat((4 - base64String.length % 4) % 4)\n const base64 = (base64String + padding)\n .replace(/-/g, '+')\n .replace(/_/g, '/')\n\n const rawData = window.atob(base64)\n return Uint8Array.from([...rawData].map((char) => char.charCodeAt(0)))\n}\n\nfunction isPushSupported () {\n return 'serviceWorker' in navigator && 'PushManager' in window\n}\n\nfunction getOrCreateServiceWorker () {\n return runtime.register()\n .catch((err) => console.error('Unable to get or create a service worker.', err))\n}\n\nfunction subscribePush (registration, isEnabled, vapidPublicKey) {\n if (!isEnabled) return Promise.reject(new Error('Web Push is disabled in config'))\n if (!vapidPublicKey) return Promise.reject(new Error('VAPID public key is not found'))\n\n const subscribeOptions = {\n userVisibleOnly: true,\n applicationServerKey: urlBase64ToUint8Array(vapidPublicKey)\n }\n return registration.pushManager.subscribe(subscribeOptions)\n}\n\nfunction unsubscribePush (registration) {\n return registration.pushManager.getSubscription()\n .then((subscribtion) => {\n if (subscribtion === null) { return }\n return subscribtion.unsubscribe()\n })\n}\n\nfunction deleteSubscriptionFromBackEnd (token) {\n return window.fetch('/api/v1/push/subscription/', {\n method: 'DELETE',\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${token}`\n }\n }).then((response) => {\n if (!response.ok) throw new Error('Bad status code from server.')\n return response\n })\n}\n\nfunction sendSubscriptionToBackEnd (subscription, token, notificationVisibility) {\n return window.fetch('/api/v1/push/subscription/', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${token}`\n },\n body: JSON.stringify({\n subscription,\n data: {\n alerts: {\n follow: notificationVisibility.follows,\n favourite: notificationVisibility.likes,\n mention: notificationVisibility.mentions,\n reblog: notificationVisibility.repeats,\n move: notificationVisibility.moves\n }\n }\n })\n }).then((response) => {\n if (!response.ok) throw new Error('Bad status code from server.')\n return response.json()\n }).then((responseData) => {\n if (!responseData.id) throw new Error('Bad response from server.')\n return responseData\n })\n}\n\nexport function registerPushNotifications (isEnabled, vapidPublicKey, token, notificationVisibility) {\n if (isPushSupported()) {\n getOrCreateServiceWorker()\n .then((registration) => subscribePush(registration, isEnabled, vapidPublicKey))\n .then((subscription) => sendSubscriptionToBackEnd(subscription, token, notificationVisibility))\n .catch((e) => console.warn(`Failed to setup Web Push Notifications: ${e.message}`))\n }\n}\n\nexport function unregisterPushNotifications (token) {\n if (isPushSupported()) {\n Promise.all([\n deleteSubscriptionFromBackEnd(token),\n getOrCreateServiceWorker()\n .then((registration) => {\n return unsubscribePush(registration).then((result) => [registration, result])\n })\n .then(([registration, unsubResult]) => {\n if (!unsubResult) {\n console.warn('Push subscription cancellation wasn\\'t successful, killing SW anyway...')\n }\n return registration.unregister().then((result) => {\n if (!result) {\n console.warn('Failed to kill SW')\n }\n })\n })\n ]).catch((e) => console.warn(`Failed to disable Web Push Notifications: ${e.message}`))\n }\n}\n","import backendInteractorService from '../services/backend_interactor_service/backend_interactor_service.js'\nimport oauthApi from '../services/new_api/oauth.js'\nimport { compact, map, each, merge, last, concat, uniq } from 'lodash'\nimport { set } from 'vue'\nimport { registerPushNotifications, unregisterPushNotifications } from '../services/push/push.js'\n\n// TODO: Unify with mergeOrAdd in statuses.js\nexport const mergeOrAdd = (arr, obj, item) => {\n if (!item) { return false }\n const oldItem = obj[item.id]\n if (oldItem) {\n // We already have this, so only merge the new info.\n merge(oldItem, item)\n return { item: oldItem, new: false }\n } else {\n // This is a new item, prepare it\n arr.push(item)\n set(obj, item.id, item)\n if (item.screen_name && !item.screen_name.includes('@')) {\n set(obj, item.screen_name.toLowerCase(), item)\n }\n return { item, new: true }\n }\n}\n\nconst getNotificationPermission = () => {\n const Notification = window.Notification\n\n if (!Notification) return Promise.resolve(null)\n if (Notification.permission === 'default') return Notification.requestPermission()\n return Promise.resolve(Notification.permission)\n}\n\nconst blockUser = (store, id) => {\n return store.rootState.api.backendInteractor.blockUser({ id })\n .then((relationship) => {\n store.commit('updateUserRelationship', [relationship])\n store.commit('addBlockId', id)\n store.commit('removeStatus', { timeline: 'friends', userId: id })\n store.commit('removeStatus', { timeline: 'public', userId: id })\n store.commit('removeStatus', { timeline: 'publicAndExternal', userId: id })\n })\n}\n\nconst unblockUser = (store, id) => {\n return store.rootState.api.backendInteractor.unblockUser({ id })\n .then((relationship) => store.commit('updateUserRelationship', [relationship]))\n}\n\nconst muteUser = (store, id) => {\n const predictedRelationship = store.state.relationships[id] || { id }\n predictedRelationship.muting = true\n store.commit('updateUserRelationship', [predictedRelationship])\n store.commit('addMuteId', id)\n\n return store.rootState.api.backendInteractor.muteUser({ id })\n .then((relationship) => {\n store.commit('updateUserRelationship', [relationship])\n store.commit('addMuteId', id)\n })\n}\n\nconst unmuteUser = (store, id) => {\n const predictedRelationship = store.state.relationships[id] || { id }\n predictedRelationship.muting = false\n store.commit('updateUserRelationship', [predictedRelationship])\n\n return store.rootState.api.backendInteractor.unmuteUser({ id })\n .then((relationship) => store.commit('updateUserRelationship', [relationship]))\n}\n\nconst hideReblogs = (store, userId) => {\n return store.rootState.api.backendInteractor.followUser({ id: userId, reblogs: false })\n .then((relationship) => {\n store.commit('updateUserRelationship', [relationship])\n })\n}\n\nconst showReblogs = (store, userId) => {\n return store.rootState.api.backendInteractor.followUser({ id: userId, reblogs: true })\n .then((relationship) => store.commit('updateUserRelationship', [relationship]))\n}\n\nconst fetchMascot = (store) => {\n return store.rootState.api.backendInteractor.fetchMascot()\n .then(({ url }) => store.commit('updateMascot', url))\n}\nconst muteDomain = (store, domain) => {\n return store.rootState.api.backendInteractor.muteDomain({ domain })\n .then(() => store.commit('addDomainMute', domain))\n}\n\nconst unmuteDomain = (store, domain) => {\n return store.rootState.api.backendInteractor.unmuteDomain({ domain })\n .then(() => store.commit('removeDomainMute', domain))\n}\n\nexport const mutations = {\n tagUser (state, { user: { id }, tag }) {\n const user = state.usersObject[id]\n const tags = user.tags || []\n const newTags = tags.concat([tag])\n set(user, 'tags', newTags)\n },\n untagUser (state, { user: { id }, tag }) {\n const user = state.usersObject[id]\n const tags = user.tags || []\n const newTags = tags.filter(t => t !== tag)\n set(user, 'tags', newTags)\n },\n updateRight (state, { user: { id }, right, value }) {\n const user = state.usersObject[id]\n let newRights = user.rights\n newRights[right] = value\n set(user, 'rights', newRights)\n },\n updateActivationStatus (state, { user: { id }, deactivated }) {\n const user = state.usersObject[id]\n set(user, 'deactivated', deactivated)\n },\n setCurrentUser (state, user) {\n state.lastLoginName = user.screen_name\n state.currentUser = merge(state.currentUser || {}, user)\n },\n clearCurrentUser (state) {\n state.currentUser = false\n state.lastLoginName = false\n },\n beginLogin (state) {\n state.loggingIn = true\n },\n endLogin (state) {\n state.loggingIn = false\n },\n saveFriendIds (state, { id, friendIds }) {\n const user = state.usersObject[id]\n user.friendIds = uniq(concat(user.friendIds, friendIds))\n },\n saveFollowerIds (state, { id, followerIds }) {\n const user = state.usersObject[id]\n user.followerIds = uniq(concat(user.followerIds, followerIds))\n },\n // Because frontend doesn't have a reason to keep these stuff in memory\n // outside of viewing someones user profile.\n clearFriends (state, userId) {\n const user = state.usersObject[userId]\n if (user) {\n set(user, 'friendIds', [])\n }\n },\n clearFollowers (state, userId) {\n const user = state.usersObject[userId]\n if (user) {\n set(user, 'followerIds', [])\n }\n },\n addNewUsers (state, users) {\n each(users, (user) => {\n if (user.relationship) {\n set(state.relationships, user.relationship.id, user.relationship)\n }\n mergeOrAdd(state.users, state.usersObject, user)\n })\n },\n updateUserRelationship (state, relationships) {\n relationships.forEach((relationship) => {\n set(state.relationships, relationship.id, relationship)\n })\n },\n saveBlockIds (state, blockIds) {\n state.currentUser.blockIds = blockIds\n },\n addBlockId (state, blockId) {\n if (state.currentUser.blockIds.indexOf(blockId) === -1) {\n state.currentUser.blockIds.push(blockId)\n }\n },\n saveMuteIds (state, muteIds) {\n state.currentUser.muteIds = muteIds\n },\n addMuteId (state, muteId) {\n if (state.currentUser.muteIds.indexOf(muteId) === -1) {\n state.currentUser.muteIds.push(muteId)\n }\n },\n updateMascot (state, mascotUrl) {\n state.currentUser.mascot = mascotUrl\n },\n saveDomainMutes (state, domainMutes) {\n state.currentUser.domainMutes = domainMutes\n },\n addDomainMute (state, domain) {\n if (state.currentUser.domainMutes.indexOf(domain) === -1) {\n state.currentUser.domainMutes.push(domain)\n }\n },\n removeDomainMute (state, domain) {\n const index = state.currentUser.domainMutes.indexOf(domain)\n if (index !== -1) {\n state.currentUser.domainMutes.splice(index, 1)\n }\n },\n setPinnedToUser (state, status) {\n const user = state.usersObject[status.user.id]\n const index = user.pinnedStatusIds.indexOf(status.id)\n if (status.pinned && index === -1) {\n user.pinnedStatusIds.push(status.id)\n } else if (!status.pinned && index !== -1) {\n user.pinnedStatusIds.splice(index, 1)\n }\n },\n setUserForStatus (state, status) {\n status.user = state.usersObject[status.user.id]\n },\n setUserForNotification (state, notification) {\n if (notification.type !== 'follow') {\n notification.action.user = state.usersObject[notification.action.user.id]\n }\n notification.from_profile = state.usersObject[notification.from_profile.id]\n },\n setColor (state, { user: { id }, highlighted }) {\n const user = state.usersObject[id]\n set(user, 'highlight', highlighted)\n },\n signUpPending (state) {\n state.signUpPending = true\n state.signUpErrors = []\n },\n signUpSuccess (state) {\n state.signUpPending = false\n },\n signUpFailure (state, errors) {\n state.signUpPending = false\n state.signUpErrors = errors\n }\n}\n\nexport const getters = {\n findUser: state => query => {\n const result = state.usersObject[query]\n // In case it's a screen_name, we can try searching case-insensitive\n if (!result && typeof query === 'string') {\n return state.usersObject[query.toLowerCase()]\n }\n return result\n },\n relationship: state => id => {\n const rel = id && state.relationships[id]\n return rel || { id, loading: true }\n }\n}\n\nexport const defaultState = {\n loggingIn: false,\n lastLoginName: false,\n currentUser: false,\n users: [],\n usersObject: {},\n signUpPending: false,\n signUpErrors: [],\n relationships: {}\n}\n\nconst users = {\n state: defaultState,\n mutations,\n getters,\n actions: {\n fetchUser (store, id) {\n return store.rootState.api.backendInteractor.fetchUser({ id })\n .then((user) => {\n store.commit('addNewUsers', [user])\n return user\n })\n },\n fetchUserRelationship (store, id) {\n if (store.state.currentUser) {\n store.rootState.api.backendInteractor.fetchUserRelationship({ id })\n .then((relationships) => store.commit('updateUserRelationship', relationships))\n }\n },\n fetchBlocks (store) {\n return store.rootState.api.backendInteractor.fetchBlocks()\n .then((blocks) => {\n store.commit('saveBlockIds', map(blocks, 'id'))\n store.commit('addNewUsers', blocks)\n return blocks\n })\n },\n blockUser (store, id) {\n return blockUser(store, id)\n },\n unblockUser (store, id) {\n return unblockUser(store, id)\n },\n blockUsers (store, ids = []) {\n return Promise.all(ids.map(id => blockUser(store, id)))\n },\n unblockUsers (store, ids = []) {\n return Promise.all(ids.map(id => unblockUser(store, id)))\n },\n fetchMutes (store) {\n return store.rootState.api.backendInteractor.fetchMutes()\n .then((mutes) => {\n store.commit('saveMuteIds', map(mutes, 'id'))\n store.commit('addNewUsers', mutes)\n return mutes\n })\n },\n muteUser (store, id) {\n return muteUser(store, id)\n },\n unmuteUser (store, id) {\n return unmuteUser(store, id)\n },\n hideReblogs (store, id) {\n return hideReblogs(store, id)\n },\n showReblogs (store, id) {\n return showReblogs(store, id)\n },\n muteUsers (store, ids = []) {\n return Promise.all(ids.map(id => muteUser(store, id)))\n },\n unmuteUsers (store, ids = []) {\n return Promise.all(ids.map(id => unmuteUser(store, id)))\n },\n fetchMascot (store) {\n return fetchMascot(store)\n },\n fetchDomainMutes (store) {\n return store.rootState.api.backendInteractor.fetchDomainMutes()\n .then((domainMutes) => {\n store.commit('saveDomainMutes', domainMutes)\n return domainMutes\n })\n },\n muteDomain (store, domain) {\n return muteDomain(store, domain)\n },\n unmuteDomain (store, domain) {\n return unmuteDomain(store, domain)\n },\n muteDomains (store, domains = []) {\n return Promise.all(domains.map(domain => muteDomain(store, domain)))\n },\n unmuteDomains (store, domain = []) {\n return Promise.all(domain.map(domain => unmuteDomain(store, domain)))\n },\n fetchFriends ({ rootState, commit }, id) {\n const user = rootState.users.usersObject[id]\n const maxId = last(user.friendIds)\n return rootState.api.backendInteractor.fetchFriends({ id, maxId })\n .then((friends) => {\n commit('addNewUsers', friends)\n commit('saveFriendIds', { id, friendIds: map(friends, 'id') })\n return friends\n })\n },\n fetchFollowers ({ rootState, commit }, id) {\n const user = rootState.users.usersObject[id]\n const maxId = last(user.followerIds)\n return rootState.api.backendInteractor.fetchFollowers({ id, maxId })\n .then((followers) => {\n commit('addNewUsers', followers)\n commit('saveFollowerIds', { id, followerIds: map(followers, 'id') })\n return followers\n })\n },\n clearFriends ({ commit }, userId) {\n commit('clearFriends', userId)\n },\n clearFollowers ({ commit }, userId) {\n commit('clearFollowers', userId)\n },\n subscribeUser ({ rootState, commit }, id) {\n return rootState.api.backendInteractor.subscribeUser({ id })\n .then((relationship) => commit('updateUserRelationship', [relationship]))\n },\n unsubscribeUser ({ rootState, commit }, id) {\n return rootState.api.backendInteractor.unsubscribeUser({ id })\n .then((relationship) => commit('updateUserRelationship', [relationship]))\n },\n toggleActivationStatus ({ rootState, commit }, { user }) {\n const api = user.deactivated ? rootState.api.backendInteractor.activateUser : rootState.api.backendInteractor.deactivateUser\n api({ user })\n .then(({ deactivated }) => commit('updateActivationStatus', { user, deactivated }))\n },\n registerPushNotifications (store) {\n const token = store.state.currentUser.credentials\n const vapidPublicKey = store.rootState.instance.vapidPublicKey\n const isEnabled = store.rootState.config.webPushNotifications\n const notificationVisibility = store.rootState.config.notificationVisibility\n\n registerPushNotifications(isEnabled, vapidPublicKey, token, notificationVisibility)\n },\n unregisterPushNotifications (store) {\n const token = store.state.currentUser.credentials\n\n unregisterPushNotifications(token)\n },\n addNewUsers ({ commit }, users) {\n commit('addNewUsers', users)\n },\n addNewStatuses (store, { statuses }) {\n const users = map(statuses, 'user')\n const retweetedUsers = compact(map(statuses, 'retweeted_status.user'))\n store.commit('addNewUsers', users)\n store.commit('addNewUsers', retweetedUsers)\n\n each(statuses, (status) => {\n // Reconnect users to statuses\n store.commit('setUserForStatus', status)\n // Set pinned statuses to user\n store.commit('setPinnedToUser', status)\n })\n each(compact(map(statuses, 'retweeted_status')), (status) => {\n // Reconnect users to retweets\n store.commit('setUserForStatus', status)\n // Set pinned retweets to user\n store.commit('setPinnedToUser', status)\n })\n },\n addNewNotifications (store, { notifications }) {\n const users = map(notifications, 'from_profile')\n const targetUsers = map(notifications, 'target').filter(_ => _)\n const notificationIds = notifications.map(_ => _.id)\n store.commit('addNewUsers', users)\n store.commit('addNewUsers', targetUsers)\n\n const notificationsObject = store.rootState.statuses.notifications.idStore\n const relevantNotifications = Object.entries(notificationsObject)\n .filter(([k, val]) => notificationIds.includes(k))\n .map(([k, val]) => val)\n\n // Reconnect users to notifications\n each(relevantNotifications, (notification) => {\n store.commit('setUserForNotification', notification)\n })\n },\n searchUsers (store, query) {\n return store.rootState.api.backendInteractor.searchUsers({ query })\n .then((users) => {\n store.commit('addNewUsers', users)\n return users\n })\n },\n async signUp (store, userInfo) {\n store.commit('signUpPending')\n\n let rootState = store.rootState\n\n try {\n let data = await rootState.api.backendInteractor.register(\n { params: { ...userInfo } }\n )\n store.commit('signUpSuccess')\n store.commit('setToken', data.access_token)\n store.dispatch('loginUser', data.access_token)\n } catch (e) {\n let errors = e.message\n store.commit('signUpFailure', errors)\n throw e\n }\n },\n async getCaptcha (store) {\n return store.rootState.api.backendInteractor.getCaptcha()\n },\n\n logout (store) {\n const { oauth, instance } = store.rootState\n\n const data = {\n ...oauth,\n commit: store.commit,\n instance: instance.server\n }\n\n return oauthApi.getOrCreateApp(data)\n .then((app) => {\n const params = {\n app,\n instance: data.instance,\n token: oauth.userToken\n }\n\n return oauthApi.revokeToken(params)\n })\n .then(() => {\n store.commit('clearCurrentUser')\n store.dispatch('disconnectFromSocket')\n store.commit('clearToken')\n store.dispatch('stopFetchingTimeline', 'friends')\n store.commit('setBackendInteractor', backendInteractorService(store.getters.getToken()))\n store.dispatch('stopFetchingNotifications')\n store.dispatch('stopFetchingFollowRequests')\n store.commit('clearNotifications')\n store.commit('resetStatuses')\n })\n },\n loginUser (store, accessToken) {\n return new Promise((resolve, reject) => {\n const commit = store.commit\n commit('beginLogin')\n store.rootState.api.backendInteractor.verifyCredentials(accessToken)\n .then((data) => {\n if (!data.error) {\n const user = data\n // user.credentials = userCredentials\n user.credentials = accessToken\n user.blockIds = []\n user.muteIds = []\n user.domainMutes = []\n commit('setCurrentUser', user)\n commit('addNewUsers', [user])\n\n store.dispatch('fetchEmoji')\n\n getNotificationPermission()\n .then(permission => commit('setNotificationPermission', permission))\n\n // Set our new backend interactor\n commit('setBackendInteractor', backendInteractorService(accessToken))\n\n if (user.token) {\n store.dispatch('setWsToken', user.token)\n\n // Initialize the chat socket.\n store.dispatch('initializeSocket')\n }\n\n const startPolling = () => {\n // Start getting fresh posts.\n store.dispatch('startFetchingTimeline', { timeline: 'friends' })\n\n // Start fetching notifications\n store.dispatch('startFetchingNotifications')\n }\n\n if (store.getters.mergedConfig.useStreamingApi) {\n store.dispatch('enableMastoSockets').catch((error) => {\n console.error('Failed initializing MastoAPI Streaming socket', error)\n startPolling()\n }).then(() => {\n setTimeout(() => store.dispatch('setNotificationsSilence', false), 10000)\n })\n } else {\n startPolling()\n }\n\n // Get user mutes\n store.dispatch('fetchMutes')\n\n // Fetch our friends\n store.rootState.api.backendInteractor.fetchFriends({ id: user.id })\n .then((friends) => commit('addNewUsers', friends))\n } else {\n const response = data.error\n // Authentication failed\n commit('endLogin')\n if (response.status === 401) {\n reject(new Error('Wrong username or password'))\n } else {\n reject(new Error('An error occurred, please try again'))\n }\n }\n commit('endLogin')\n resolve()\n })\n .catch((error) => {\n console.log(error)\n commit('endLogin')\n reject(new Error('Failed to connect to server, try again'))\n })\n })\n }\n }\n}\n\nexport default users\n","import backendInteractorService from '../services/backend_interactor_service/backend_interactor_service.js'\nimport { Socket } from 'phoenix'\n\nconst api = {\n state: {\n backendInteractor: backendInteractorService(),\n fetchers: {},\n socket: null,\n mastoUserSocket: null,\n followRequests: []\n },\n mutations: {\n setBackendInteractor (state, backendInteractor) {\n state.backendInteractor = backendInteractor\n },\n addFetcher (state, { fetcherName, fetcher }) {\n state.fetchers[fetcherName] = fetcher\n },\n removeFetcher (state, { fetcherName, fetcher }) {\n window.clearInterval(fetcher)\n delete state.fetchers[fetcherName]\n },\n setWsToken (state, token) {\n state.wsToken = token\n },\n setSocket (state, socket) {\n state.socket = socket\n },\n setFollowRequests (state, value) {\n state.followRequests = value\n }\n },\n actions: {\n // Global MastoAPI socket control, in future should disable ALL sockets/(re)start relevant sockets\n enableMastoSockets (store) {\n const { state, dispatch } = store\n if (state.mastoUserSocket) return\n return dispatch('startMastoUserSocket')\n },\n disableMastoSockets (store) {\n const { state, dispatch } = store\n if (!state.mastoUserSocket) return\n return dispatch('stopMastoUserSocket')\n },\n\n // MastoAPI 'User' sockets\n startMastoUserSocket (store) {\n return new Promise((resolve, reject) => {\n try {\n const { state, dispatch, rootState } = store\n const timelineData = rootState.statuses.timelines.friends\n state.mastoUserSocket = state.backendInteractor.startUserSocket({ store })\n state.mastoUserSocket.addEventListener(\n 'message',\n ({ detail: message }) => {\n if (!message) return // pings\n if (message.event === 'notification') {\n dispatch('addNewNotifications', {\n notifications: [message.notification],\n older: false\n })\n } else if (message.event === 'update') {\n dispatch('addNewStatuses', {\n statuses: [message.status],\n userId: false,\n showImmediately: timelineData.visibleStatuses.length === 0,\n timeline: 'friends'\n })\n }\n }\n )\n state.mastoUserSocket.addEventListener('error', ({ detail: error }) => {\n console.error('Error in MastoAPI websocket:', error)\n })\n state.mastoUserSocket.addEventListener('close', ({ detail: closeEvent }) => {\n const ignoreCodes = new Set([\n 1000, // Normal (intended) closure\n 1001 // Going away\n ])\n const { code } = closeEvent\n if (ignoreCodes.has(code)) {\n console.debug(`Not restarting socket becasue of closure code ${code} is in ignore list`)\n } else {\n console.warn(`MastoAPI websocket disconnected, restarting. CloseEvent code: ${code}`)\n dispatch('startFetchingTimeline', { timeline: 'friends' })\n dispatch('startFetchingNotifications')\n dispatch('restartMastoUserSocket')\n }\n })\n resolve()\n } catch (e) {\n reject(e)\n }\n })\n },\n restartMastoUserSocket ({ dispatch }) {\n // This basically starts MastoAPI user socket and stops conventional\n // fetchers when connection reestablished\n return dispatch('startMastoUserSocket').then(() => {\n dispatch('stopFetchingTimeline', { timeline: 'friends' })\n dispatch('stopFetchingNotifications')\n })\n },\n stopMastoUserSocket ({ state, dispatch }) {\n dispatch('startFetchingTimeline', { timeline: 'friends' })\n dispatch('startFetchingNotifications')\n console.log(state.mastoUserSocket)\n state.mastoUserSocket.close()\n },\n\n // Timelines\n startFetchingTimeline (store, {\n timeline = 'friends',\n tag = false,\n userId = false\n }) {\n if (store.state.fetchers[timeline]) return\n\n const fetcher = store.state.backendInteractor.startFetchingTimeline({\n timeline, store, userId, tag\n })\n store.commit('addFetcher', { fetcherName: timeline, fetcher })\n },\n stopFetchingTimeline (store, timeline) {\n const fetcher = store.state.fetchers[timeline]\n if (!fetcher) return\n store.commit('removeFetcher', { fetcherName: timeline, fetcher })\n },\n\n // Notifications\n startFetchingNotifications (store) {\n if (store.state.fetchers.notifications) return\n const fetcher = store.state.backendInteractor.startFetchingNotifications({ store })\n store.commit('addFetcher', { fetcherName: 'notifications', fetcher })\n },\n stopFetchingNotifications (store) {\n const fetcher = store.state.fetchers.notifications\n if (!fetcher) return\n store.commit('removeFetcher', { fetcherName: 'notifications', fetcher })\n },\n fetchAndUpdateNotifications (store) {\n store.state.backendInteractor.fetchAndUpdateNotifications({ store })\n },\n\n // Follow requests\n startFetchingFollowRequests (store) {\n if (store.state.fetchers['followRequests']) return\n const fetcher = store.state.backendInteractor.startFetchingFollowRequests({ store })\n\n store.commit('addFetcher', { fetcherName: 'followRequests', fetcher })\n },\n stopFetchingFollowRequests (store) {\n const fetcher = store.state.fetchers.followRequests\n if (!fetcher) return\n store.commit('removeFetcher', { fetcherName: 'followRequests', fetcher })\n },\n removeFollowRequest (store, request) {\n let requests = store.state.followRequests.filter((it) => it !== request)\n store.commit('setFollowRequests', requests)\n },\n\n // Pleroma websocket\n setWsToken (store, token) {\n store.commit('setWsToken', token)\n },\n initializeSocket ({ dispatch, commit, state, rootState }) {\n // Set up websocket connection\n const token = state.wsToken\n if (rootState.instance.chatAvailable && typeof token !== 'undefined' && state.socket === null) {\n const socket = new Socket('/socket', { params: { token } })\n socket.connect()\n\n commit('setSocket', socket)\n dispatch('initializeChat', socket)\n }\n },\n disconnectFromSocket ({ commit, state }) {\n state.socket && state.socket.disconnect()\n commit('setSocket', null)\n }\n }\n}\n\nexport default api\n","const chat = {\n state: {\n messages: [],\n channel: { state: '' }\n },\n mutations: {\n setChannel (state, channel) {\n state.channel = channel\n },\n addMessage (state, message) {\n state.messages.push(message)\n state.messages = state.messages.slice(-19, 20)\n },\n setMessages (state, messages) {\n state.messages = messages.slice(-19, 20)\n }\n },\n actions: {\n initializeChat (store, socket) {\n const channel = socket.channel('chat:public')\n channel.on('new_msg', (msg) => {\n store.commit('addMessage', msg)\n })\n channel.on('messages', ({ messages }) => {\n store.commit('setMessages', messages)\n })\n channel.join()\n store.commit('setChannel', channel)\n }\n }\n}\n\nexport default chat\n","import { delete as del } from 'vue'\n\nconst oauth = {\n state: {\n clientId: false,\n clientSecret: false,\n /* App token is authentication for app without any user, used mostly for\n * MastoAPI's registration of new users, stored so that we can fall back to\n * it on logout\n */\n appToken: false,\n /* User token is authentication for app with user, this is for every calls\n * that need authorized user to be successful (i.e. posting, liking etc)\n */\n userToken: false\n },\n mutations: {\n setClientData (state, { clientId, clientSecret }) {\n state.clientId = clientId\n state.clientSecret = clientSecret\n },\n setAppToken (state, token) {\n state.appToken = token\n },\n setToken (state, token) {\n state.userToken = token\n },\n clearToken (state) {\n state.userToken = false\n // state.token is userToken with older name, coming from persistent state\n // let's clear it as well, since it is being used as a fallback of state.userToken\n del(state, 'token')\n }\n },\n getters: {\n getToken: state => () => {\n // state.token is userToken with older name, coming from persistent state\n // added here for smoother transition, otherwise user will be logged out\n return state.userToken || state.token || state.appToken\n },\n getUserToken: state => () => {\n // state.token is userToken with older name, coming from persistent state\n // added here for smoother transition, otherwise user will be logged out\n return state.userToken || state.token\n }\n }\n}\n\nexport default oauth\n","const PASSWORD_STRATEGY = 'password'\nconst TOKEN_STRATEGY = 'token'\n\n// MFA strategies\nconst TOTP_STRATEGY = 'totp'\nconst RECOVERY_STRATEGY = 'recovery'\n\n// initial state\nconst state = {\n settings: {},\n strategy: PASSWORD_STRATEGY,\n initStrategy: PASSWORD_STRATEGY // default strategy from config\n}\n\nconst resetState = (state) => {\n state.strategy = state.initStrategy\n state.settings = {}\n}\n\n// getters\nconst getters = {\n settings: (state, getters) => {\n return state.settings\n },\n requiredPassword: (state, getters, rootState) => {\n return state.strategy === PASSWORD_STRATEGY\n },\n requiredToken: (state, getters, rootState) => {\n return state.strategy === TOKEN_STRATEGY\n },\n requiredTOTP: (state, getters, rootState) => {\n return state.strategy === TOTP_STRATEGY\n },\n requiredRecovery: (state, getters, rootState) => {\n return state.strategy === RECOVERY_STRATEGY\n }\n}\n\n// mutations\nconst mutations = {\n setInitialStrategy (state, strategy) {\n if (strategy) {\n state.initStrategy = strategy\n state.strategy = strategy\n }\n },\n requirePassword (state) {\n state.strategy = PASSWORD_STRATEGY\n },\n requireToken (state) {\n state.strategy = TOKEN_STRATEGY\n },\n requireMFA (state, { settings }) {\n state.settings = settings\n state.strategy = TOTP_STRATEGY // default strategy of MFA\n },\n requireRecovery (state) {\n state.strategy = RECOVERY_STRATEGY\n },\n requireTOTP (state) {\n state.strategy = TOTP_STRATEGY\n },\n abortMFA (state) {\n resetState(state)\n }\n}\n\n// actions\nconst actions = {\n // eslint-disable-next-line camelcase\n async login ({ state, dispatch, commit }, { access_token }) {\n commit('setToken', access_token, { root: true })\n await dispatch('loginUser', access_token, { root: true })\n resetState(state)\n }\n}\n\nexport default {\n namespaced: true,\n state,\n getters,\n mutations,\n actions\n}\n","import fileTypeService from '../services/file_type/file_type.service.js'\n\nconst mediaViewer = {\n state: {\n media: [],\n currentIndex: 0,\n activated: false\n },\n mutations: {\n setMedia (state, media) {\n state.media = media\n },\n setCurrent (state, index) {\n state.activated = true\n state.currentIndex = index\n },\n close (state) {\n state.activated = false\n }\n },\n actions: {\n setMedia ({ commit }, attachments) {\n const media = attachments.filter(attachment => {\n const type = fileTypeService.fileType(attachment.mimetype)\n return type === 'image' || type === 'video'\n })\n commit('setMedia', media)\n },\n setCurrent ({ commit, state }, current) {\n const index = state.media.indexOf(current)\n commit('setCurrent', index || 0)\n },\n closeMediaViewer ({ commit }) {\n commit('close')\n }\n }\n}\n\nexport default mediaViewer\n","const oauthTokens = {\n state: {\n tokens: []\n },\n actions: {\n fetchTokens ({ rootState, commit }) {\n rootState.api.backendInteractor.fetchOAuthTokens().then((tokens) => {\n commit('swapTokens', tokens)\n })\n },\n revokeToken ({ rootState, commit, state }, id) {\n rootState.api.backendInteractor.revokeOAuthToken({ id }).then((response) => {\n if (response.status === 201) {\n commit('swapTokens', state.tokens.filter(token => token.id !== id))\n }\n })\n }\n },\n mutations: {\n swapTokens (state, tokens) {\n state.tokens = tokens\n }\n }\n}\n\nexport default oauthTokens\n","import filter from 'lodash/filter'\n\nconst reports = {\n state: {\n userId: null,\n statuses: [],\n modalActivated: false\n },\n mutations: {\n openUserReportingModal (state, { userId, statuses }) {\n state.userId = userId\n state.statuses = statuses\n state.modalActivated = true\n },\n closeUserReportingModal (state) {\n state.modalActivated = false\n }\n },\n actions: {\n openUserReportingModal ({ rootState, commit }, userId) {\n const statuses = filter(rootState.statuses.allStatuses, status => status.user.id === userId)\n commit('openUserReportingModal', { userId, statuses })\n },\n closeUserReportingModal ({ commit }) {\n commit('closeUserReportingModal')\n }\n }\n}\n\nexport default reports\n","import { merge } from 'lodash'\nimport { set } from 'vue'\n\nconst polls = {\n state: {\n // Contains key = id, value = number of trackers for this poll\n trackedPolls: {},\n pollsObject: {}\n },\n mutations: {\n mergeOrAddPoll (state, poll) {\n const existingPoll = state.pollsObject[poll.id]\n // Make expired-state change trigger re-renders properly\n poll.expired = Date.now() > Date.parse(poll.expires_at)\n if (existingPoll) {\n set(state.pollsObject, poll.id, merge(existingPoll, poll))\n } else {\n set(state.pollsObject, poll.id, poll)\n }\n },\n trackPoll (state, pollId) {\n const currentValue = state.trackedPolls[pollId]\n if (currentValue) {\n set(state.trackedPolls, pollId, currentValue + 1)\n } else {\n set(state.trackedPolls, pollId, 1)\n }\n },\n untrackPoll (state, pollId) {\n const currentValue = state.trackedPolls[pollId]\n if (currentValue) {\n set(state.trackedPolls, pollId, currentValue - 1)\n } else {\n set(state.trackedPolls, pollId, 0)\n }\n }\n },\n actions: {\n mergeOrAddPoll ({ commit }, poll) {\n commit('mergeOrAddPoll', poll)\n },\n updateTrackedPoll ({ rootState, dispatch, commit }, pollId) {\n rootState.api.backendInteractor.fetchPoll({ pollId }).then(poll => {\n setTimeout(() => {\n if (rootState.polls.trackedPolls[pollId]) {\n dispatch('updateTrackedPoll', pollId)\n }\n }, 30 * 1000)\n commit('mergeOrAddPoll', poll)\n })\n },\n trackPoll ({ rootState, commit, dispatch }, pollId) {\n if (!rootState.polls.trackedPolls[pollId]) {\n setTimeout(() => dispatch('updateTrackedPoll', pollId), 30 * 1000)\n }\n commit('trackPoll', pollId)\n },\n untrackPoll ({ commit }, pollId) {\n commit('untrackPoll', pollId)\n },\n votePoll ({ rootState, commit }, { id, pollId, choices }) {\n return rootState.api.backendInteractor.vote({ pollId, choices }).then(poll => {\n commit('mergeOrAddPoll', poll)\n return poll\n })\n }\n }\n}\n\nexport default polls\n","const postStatus = {\n state: {\n params: null,\n modalActivated: false\n },\n mutations: {\n openPostStatusModal (state, params) {\n state.params = params\n state.modalActivated = true\n },\n closePostStatusModal (state) {\n state.modalActivated = false\n }\n },\n actions: {\n openPostStatusModal ({ commit }, params) {\n commit('openPostStatusModal', params)\n },\n closePostStatusModal ({ commit }) {\n commit('closePostStatusModal')\n }\n }\n}\n\nexport default postStatus\n","import merge from 'lodash.merge'\nimport objectPath from 'object-path'\nimport localforage from 'localforage'\nimport { each } from 'lodash'\n\nlet loaded = false\n\nconst defaultReducer = (state, paths) => (\n paths.length === 0 ? state : paths.reduce((substate, path) => {\n objectPath.set(substate, path, objectPath.get(state, path))\n return substate\n }, {})\n)\n\nconst saveImmedeatelyActions = [\n 'markNotificationsAsSeen',\n 'clearCurrentUser',\n 'setCurrentUser',\n 'setHighlight',\n 'setOption',\n 'setClientData',\n 'setToken',\n 'clearToken'\n]\n\nconst defaultStorage = (() => {\n return localforage\n})()\n\nexport default function createPersistedState ({\n key = 'vuex-lz',\n paths = [],\n getState = (key, storage) => {\n let value = storage.getItem(key)\n return value\n },\n setState = (key, state, storage) => {\n if (!loaded) {\n console.log('waiting for old state to be loaded...')\n return Promise.resolve()\n } else {\n return storage.setItem(key, state)\n }\n },\n reducer = defaultReducer,\n storage = defaultStorage,\n subscriber = store => handler => store.subscribe(handler)\n} = {}) {\n return getState(key, storage).then((savedState) => {\n return store => {\n try {\n if (savedState !== null && typeof savedState === 'object') {\n // build user cache\n const usersState = savedState.users || {}\n usersState.usersObject = {}\n const users = usersState.users || []\n each(users, (user) => { usersState.usersObject[user.id] = user })\n savedState.users = usersState\n\n store.replaceState(\n merge({}, store.state, savedState)\n )\n }\n loaded = true\n } catch (e) {\n console.log(\"Couldn't load state\")\n console.error(e)\n loaded = true\n }\n subscriber(store)((mutation, state) => {\n try {\n if (saveImmedeatelyActions.includes(mutation.type)) {\n setState(key, reducer(state, paths), storage)\n .then(success => {\n if (typeof success !== 'undefined') {\n if (mutation.type === 'setOption' || mutation.type === 'setCurrentUser') {\n store.dispatch('settingsSaved', { success })\n }\n }\n }, error => {\n if (mutation.type === 'setOption' || mutation.type === 'setCurrentUser') {\n store.dispatch('settingsSaved', { error })\n }\n })\n }\n } catch (e) {\n console.log(\"Couldn't persist state:\")\n console.log(e)\n }\n })\n }\n })\n}\n","export default (store) => {\n store.subscribe((mutation, state) => {\n const vapidPublicKey = state.instance.vapidPublicKey\n const webPushNotification = state.config.webPushNotifications\n const permission = state.interface.notificationPermission === 'granted'\n const user = state.users.currentUser\n\n const isUserMutation = mutation.type === 'setCurrentUser'\n const isVapidMutation = mutation.type === 'setInstanceOption' && mutation.payload.name === 'vapidPublicKey'\n const isPermMutation = mutation.type === 'setNotificationPermission' && mutation.payload === 'granted'\n const isUserConfigMutation = mutation.type === 'setOption' && mutation.payload.name === 'webPushNotifications'\n const isVisibilityMutation = mutation.type === 'setOption' && mutation.payload.name === 'notificationVisibility'\n\n if (isUserMutation || isVapidMutation || isPermMutation || isUserConfigMutation || isVisibilityMutation) {\n if (user && vapidPublicKey && permission && webPushNotification) {\n return store.dispatch('registerPushNotifications')\n } else if (isUserConfigMutation && !webPushNotification) {\n return store.dispatch('unregisterPushNotifications')\n }\n }\n })\n}\n","import * as bodyScrollLock from 'body-scroll-lock'\n\nlet previousNavPaddingRight\nlet previousAppBgWrapperRight\nconst lockerEls = new Set([])\n\nconst disableBodyScroll = (el) => {\n const scrollBarGap = window.innerWidth - document.documentElement.clientWidth\n bodyScrollLock.disableBodyScroll(el, {\n reserveScrollBarGap: true\n })\n lockerEls.add(el)\n setTimeout(() => {\n if (lockerEls.size <= 1) {\n // If previousNavPaddingRight is already set, don't set it again.\n if (previousNavPaddingRight === undefined) {\n const navEl = document.getElementById('nav')\n previousNavPaddingRight = window.getComputedStyle(navEl).getPropertyValue('padding-right')\n navEl.style.paddingRight = previousNavPaddingRight ? `calc(${previousNavPaddingRight} + ${scrollBarGap}px)` : `${scrollBarGap}px`\n }\n // If previousAppBgWrapeprRight is already set, don't set it again.\n if (previousAppBgWrapperRight === undefined) {\n const appBgWrapperEl = document.getElementById('app_bg_wrapper')\n previousAppBgWrapperRight = window.getComputedStyle(appBgWrapperEl).getPropertyValue('right')\n appBgWrapperEl.style.right = previousAppBgWrapperRight ? `calc(${previousAppBgWrapperRight} + ${scrollBarGap}px)` : `${scrollBarGap}px`\n }\n document.body.classList.add('scroll-locked')\n }\n })\n}\n\nconst enableBodyScroll = (el) => {\n lockerEls.delete(el)\n setTimeout(() => {\n if (lockerEls.size === 0) {\n if (previousNavPaddingRight !== undefined) {\n document.getElementById('nav').style.paddingRight = previousNavPaddingRight\n // Restore previousNavPaddingRight to undefined so disableBodyScroll knows it can be set again.\n previousNavPaddingRight = undefined\n }\n if (previousAppBgWrapperRight !== undefined) {\n document.getElementById('app_bg_wrapper').style.right = previousAppBgWrapperRight\n // Restore previousAppBgWrapperRight to undefined so disableBodyScroll knows it can be set again.\n previousAppBgWrapperRight = undefined\n }\n document.body.classList.remove('scroll-locked')\n }\n })\n bodyScrollLock.enableBodyScroll(el)\n}\n\nconst directive = {\n inserted: (el, binding) => {\n if (binding.value) {\n disableBodyScroll(el)\n }\n },\n componentUpdated: (el, binding) => {\n if (binding.oldValue === binding.value) {\n return\n }\n\n if (binding.value) {\n disableBodyScroll(el)\n } else {\n enableBodyScroll(el)\n }\n },\n unbind: (el) => {\n enableBodyScroll(el)\n }\n}\n\nexport default (Vue) => {\n Vue.directive('body-scroll-lock', directive)\n}\n","// When contributing, please sort JSON before committing so it would be easier to see what's missing and what's being added compared to English and other languages. It's not obligatory, but just an advice.\n// To sort json use jq https://stedolan.github.io/jq and invoke it like `jq -S . xx.json > xx.sorted.json`, AFAIK, there's no inplace edit option like in sed\n// Also, when adding a new language to \"messages\" variable, please do it alphabetically by language code so that users can search or check their custom language easily.\n\n// For anyone contributing to old huge messages.js and in need to quickly convert it to JSON\n// sed command for converting currently formatted JS to JSON:\n// sed -i -e \"s/'//gm\" -e 's/\"/\\\\\"/gm' -re 's/^( +)(.+?): ((.+?))?(,?)(\\{?)$/\\1\"\\2\": \"\\4\"/gm' -e 's/\\\"\\{\\\"/{/g' -e 's/,\"$/\",/g' file.json\n// There's only problem that apostrophe character ' gets replaced by \\\\ so you have to fix it manually, sorry.\n\nconst messages = {\n ar: require('./ar.json'),\n ca: require('./ca.json'),\n cs: require('./cs.json'),\n de: require('./de.json'),\n en: require('./en.json'),\n eo: require('./eo.json'),\n es: require('./es.json'),\n et: require('./et.json'),\n eu: require('./eu.json'),\n fi: require('./fi.json'),\n fr: require('./fr.json'),\n ga: require('./ga.json'),\n he: require('./he.json'),\n hu: require('./hu.json'),\n it: require('./it.json'),\n ja: require('./ja_pedantic.json'),\n ja_easy: require('./ja_easy.json'),\n ko: require('./ko.json'),\n nb: require('./nb.json'),\n nl: require('./nl.json'),\n oc: require('./oc.json'),\n pl: require('./pl.json'),\n pt: require('./pt.json'),\n ro: require('./ro.json'),\n ru: require('./ru.json'),\n te: require('./te.json'),\n zh: require('./zh.json')\n}\n\nexport default messages\n","import { reduce, filter, findIndex, clone, get } from 'lodash'\nimport Status from '../status/status.vue'\n\nconst sortById = (a, b) => {\n const idA = a.type === 'retweet' ? a.retweeted_status.id : a.id\n const idB = b.type === 'retweet' ? b.retweeted_status.id : b.id\n const seqA = Number(idA)\n const seqB = Number(idB)\n const isSeqA = !Number.isNaN(seqA)\n const isSeqB = !Number.isNaN(seqB)\n if (isSeqA && isSeqB) {\n return seqA < seqB ? -1 : 1\n } else if (isSeqA && !isSeqB) {\n return -1\n } else if (!isSeqA && isSeqB) {\n return 1\n } else {\n return idA < idB ? -1 : 1\n }\n}\n\nconst sortAndFilterConversation = (conversation, statusoid) => {\n if (statusoid.type === 'retweet') {\n conversation = filter(\n conversation,\n (status) => (status.type === 'retweet' || status.id !== statusoid.retweeted_status.id)\n )\n } else {\n conversation = filter(conversation, (status) => status.type !== 'retweet')\n }\n return conversation.filter(_ => _).sort(sortById)\n}\n\nconst conversation = {\n data () {\n return {\n highlight: null,\n expanded: false\n }\n },\n props: [\n 'statusId',\n 'collapsable',\n 'isPage',\n 'pinnedStatusIdsObject',\n 'inProfile',\n 'profileUserId'\n ],\n created () {\n if (this.isPage) {\n this.fetchConversation()\n }\n },\n computed: {\n status () {\n return this.$store.state.statuses.allStatusesObject[this.statusId]\n },\n originalStatusId () {\n if (this.status.retweeted_status) {\n return this.status.retweeted_status.id\n } else {\n return this.statusId\n }\n },\n conversationId () {\n return this.getConversationId(this.statusId)\n },\n conversation () {\n if (!this.status) {\n return []\n }\n\n if (!this.isExpanded) {\n return [this.status]\n }\n\n const conversation = clone(this.$store.state.statuses.conversationsObject[this.conversationId])\n const statusIndex = findIndex(conversation, { id: this.originalStatusId })\n if (statusIndex !== -1) {\n conversation[statusIndex] = this.status\n }\n\n return sortAndFilterConversation(conversation, this.status)\n },\n replies () {\n let i = 1\n // eslint-disable-next-line camelcase\n return reduce(this.conversation, (result, { id, in_reply_to_status_id }) => {\n /* eslint-disable camelcase */\n const irid = in_reply_to_status_id\n /* eslint-enable camelcase */\n if (irid) {\n result[irid] = result[irid] || []\n result[irid].push({\n name: `#${i}`,\n id: id\n })\n }\n i++\n return result\n }, {})\n },\n isExpanded () {\n return this.expanded || this.isPage\n }\n },\n components: {\n Status\n },\n watch: {\n statusId (newVal, oldVal) {\n const newConversationId = this.getConversationId(newVal)\n const oldConversationId = this.getConversationId(oldVal)\n if (newConversationId && oldConversationId && newConversationId === oldConversationId) {\n this.setHighlight(this.originalStatusId)\n } else {\n this.fetchConversation()\n }\n },\n expanded (value) {\n if (value) {\n this.fetchConversation()\n }\n }\n },\n methods: {\n fetchConversation () {\n if (this.status) {\n this.$store.state.api.backendInteractor.fetchConversation({ id: this.statusId })\n .then(({ ancestors, descendants }) => {\n this.$store.dispatch('addNewStatuses', { statuses: ancestors })\n this.$store.dispatch('addNewStatuses', { statuses: descendants })\n this.setHighlight(this.originalStatusId)\n })\n } else {\n this.$store.state.api.backendInteractor.fetchStatus({ id: this.statusId })\n .then((status) => {\n this.$store.dispatch('addNewStatuses', { statuses: [status] })\n this.fetchConversation()\n })\n }\n },\n getReplies (id) {\n return this.replies[id] || []\n },\n focused (id) {\n return (this.isExpanded) && id === this.statusId\n },\n setHighlight (id) {\n if (!id) return\n this.highlight = id\n this.$store.dispatch('fetchFavsAndRepeats', id)\n this.$store.dispatch('fetchEmojiReactionsBy', id)\n },\n getHighlight () {\n return this.isExpanded ? this.highlight : null\n },\n toggleExpanded () {\n this.expanded = !this.expanded\n },\n getConversationId (statusId) {\n const status = this.$store.state.statuses.allStatusesObject[statusId]\n return get(status, 'retweeted_status.statusnet_conversation_id', get(status, 'statusnet_conversation_id'))\n }\n }\n}\n\nexport default conversation\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./conversation.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./conversation.js\"\nimport __vue_script__ from \"!!babel-loader!./conversation.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-ea37054e\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./conversation.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"timeline panel-default\",class:[_vm.isExpanded ? 'panel' : 'panel-disabled']},[(_vm.isExpanded)?_c('div',{staticClass:\"panel-heading conversation-heading\"},[_c('span',{staticClass:\"title\"},[_vm._v(\" \"+_vm._s(_vm.$t('timeline.conversation'))+\" \")]),_vm._v(\" \"),(_vm.collapsable)?_c('span',[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.toggleExpanded($event)}}},[_vm._v(_vm._s(_vm.$t('timeline.collapse')))])]):_vm._e()]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.conversation),function(status){return _c('status',{key:status.id,staticClass:\"status-fadein panel-body\",attrs:{\"inline-expanded\":_vm.collapsable && _vm.isExpanded,\"statusoid\":status,\"expandable\":!_vm.isExpanded,\"show-pinned\":_vm.pinnedStatusIdsObject && _vm.pinnedStatusIdsObject[status.id],\"focused\":_vm.focused(status.id),\"in-conversation\":_vm.isExpanded,\"highlight\":_vm.getHighlight(),\"replies\":_vm.getReplies(status.id),\"in-profile\":_vm.inProfile,\"profile-user-id\":_vm.profileUserId},on:{\"goto\":_vm.setHighlight,\"toggleExpanded\":_vm.toggleExpanded}})})],2)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import Status from '../status/status.vue'\nimport timelineFetcher from '../../services/timeline_fetcher/timeline_fetcher.service.js'\nimport Conversation from '../conversation/conversation.vue'\nimport { throttle, keyBy } from 'lodash'\n\nexport const getExcludedStatusIdsByPinning = (statuses, pinnedStatusIds) => {\n const ids = []\n if (pinnedStatusIds && pinnedStatusIds.length > 0) {\n for (let status of statuses) {\n if (!pinnedStatusIds.includes(status.id)) {\n break\n }\n ids.push(status.id)\n }\n }\n return ids\n}\n\nconst Timeline = {\n props: [\n 'timeline',\n 'timelineName',\n 'title',\n 'userId',\n 'tag',\n 'embedded',\n 'count',\n 'pinnedStatusIds',\n 'inProfile'\n ],\n data () {\n return {\n paused: false,\n unfocused: false,\n bottomedOut: false\n }\n },\n computed: {\n timelineError () {\n return this.$store.state.statuses.error\n },\n errorData () {\n return this.$store.state.statuses.errorData\n },\n newStatusCount () {\n return this.timeline.newStatusCount\n },\n newStatusCountStr () {\n if (this.timeline.flushMarker !== 0) {\n return ''\n } else {\n return ` (${this.newStatusCount})`\n }\n },\n classes () {\n return {\n root: ['timeline'].concat(!this.embedded ? ['panel', 'panel-default'] : []),\n header: ['timeline-heading'].concat(!this.embedded ? ['panel-heading'] : []),\n body: ['timeline-body'].concat(!this.embedded ? ['panel-body'] : []),\n footer: ['timeline-footer'].concat(!this.embedded ? ['panel-footer'] : [])\n }\n },\n // id map of statuses which need to be hidden in the main list due to pinning logic\n excludedStatusIdsObject () {\n const ids = getExcludedStatusIdsByPinning(this.timeline.visibleStatuses, this.pinnedStatusIds)\n // Convert id array to object\n return keyBy(ids)\n },\n pinnedStatusIdsObject () {\n return keyBy(this.pinnedStatusIds)\n }\n },\n components: {\n Status,\n Conversation\n },\n created () {\n const store = this.$store\n const credentials = store.state.users.currentUser.credentials\n const showImmediately = this.timeline.visibleStatuses.length === 0\n\n window.addEventListener('scroll', this.scrollLoad)\n\n if (store.state.api.fetchers[this.timelineName]) { return false }\n\n timelineFetcher.fetchAndUpdate({\n store,\n credentials,\n timeline: this.timelineName,\n showImmediately,\n userId: this.userId,\n tag: this.tag\n })\n },\n mounted () {\n if (typeof document.hidden !== 'undefined') {\n document.addEventListener('visibilitychange', this.handleVisibilityChange, false)\n this.unfocused = document.hidden\n }\n window.addEventListener('keydown', this.handleShortKey)\n },\n destroyed () {\n window.removeEventListener('scroll', this.scrollLoad)\n window.removeEventListener('keydown', this.handleShortKey)\n if (typeof document.hidden !== 'undefined') document.removeEventListener('visibilitychange', this.handleVisibilityChange, false)\n this.$store.commit('setLoading', { timeline: this.timelineName, value: false })\n },\n methods: {\n handleShortKey (e) {\n // Ignore when input fields are focused\n if (['textarea', 'input'].includes(e.target.tagName.toLowerCase())) return\n if (e.key === '.') this.showNewStatuses()\n },\n showNewStatuses () {\n if (this.newStatusCount === 0) return\n\n if (this.timeline.flushMarker !== 0) {\n this.$store.commit('clearTimeline', { timeline: this.timelineName, excludeUserId: true })\n this.$store.commit('queueFlush', { timeline: this.timelineName, id: 0 })\n this.fetchOlderStatuses()\n } else {\n this.$store.commit('showNewStatuses', { timeline: this.timelineName })\n this.paused = false\n }\n },\n fetchOlderStatuses: throttle(function () {\n const store = this.$store\n const credentials = store.state.users.currentUser.credentials\n store.commit('setLoading', { timeline: this.timelineName, value: true })\n timelineFetcher.fetchAndUpdate({\n store,\n credentials,\n timeline: this.timelineName,\n older: true,\n showImmediately: true,\n userId: this.userId,\n tag: this.tag\n }).then(statuses => {\n store.commit('setLoading', { timeline: this.timelineName, value: false })\n if (statuses && statuses.length === 0) {\n this.bottomedOut = true\n }\n })\n }, 1000, this),\n scrollLoad (e) {\n const bodyBRect = document.body.getBoundingClientRect()\n const height = Math.max(bodyBRect.height, -(bodyBRect.y))\n if (this.timeline.loading === false &&\n this.$store.getters.mergedConfig.autoLoad &&\n this.$el.offsetHeight > 0 &&\n (window.innerHeight + window.pageYOffset) >= (height - 750)) {\n this.fetchOlderStatuses()\n }\n },\n handleVisibilityChange () {\n this.unfocused = document.hidden\n }\n },\n watch: {\n newStatusCount (count) {\n if (!this.$store.getters.mergedConfig.streaming) {\n return\n }\n if (count > 0) {\n // only 'stream' them when you're scrolled to the top\n const doc = document.documentElement\n const top = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0)\n if (top < 15 &&\n !this.paused &&\n !(this.unfocused && this.$store.getters.mergedConfig.pauseOnUnfocused)\n ) {\n this.showNewStatuses()\n } else {\n this.paused = true\n }\n }\n }\n }\n}\n\nexport default Timeline\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./timeline.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./timeline.js\"\nimport __vue_script__ from \"!!babel-loader!./timeline.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-1b95cb52\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./timeline.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:_vm.classes.root},[_c('div',{class:_vm.classes.header},[_c('div',{staticClass:\"title\"},[_vm._v(\"\\n \"+_vm._s(_vm.title)+\"\\n \")]),_vm._v(\" \"),(_vm.timelineError)?_c('div',{staticClass:\"loadmore-error alert error\",on:{\"click\":function($event){$event.preventDefault();}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('timeline.error_fetching'))+\"\\n \")]):(_vm.errorData)?_c('div',{staticClass:\"loadmore-error alert error\",on:{\"click\":function($event){$event.preventDefault();}}},[_vm._v(\"\\n \"+_vm._s(_vm.errorData.statusText)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.timeline.newStatusCount > 0 && !_vm.timelineError && !_vm.errorData)?_c('button',{staticClass:\"loadmore-button\",on:{\"click\":function($event){$event.preventDefault();return _vm.showNewStatuses($event)}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('timeline.show_new'))+_vm._s(_vm.newStatusCountStr)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(!_vm.timeline.newStatusCount > 0 && !_vm.timelineError && !_vm.errorData)?_c('div',{staticClass:\"loadmore-text faint\",on:{\"click\":function($event){$event.preventDefault();}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('timeline.up_to_date'))+\"\\n \")]):_vm._e()]),_vm._v(\" \"),_c('div',{class:_vm.classes.body},[_c('div',{staticClass:\"timeline\"},[_vm._l((_vm.pinnedStatusIds),function(statusId){return [(_vm.timeline.statusesObject[statusId])?_c('conversation',{key:statusId + '-pinned',staticClass:\"status-fadein\",attrs:{\"status-id\":statusId,\"collapsable\":true,\"pinned-status-ids-object\":_vm.pinnedStatusIdsObject,\"in-profile\":_vm.inProfile,\"profile-user-id\":_vm.userId}}):_vm._e()]}),_vm._v(\" \"),_vm._l((_vm.timeline.visibleStatuses),function(status){return [(!_vm.excludedStatusIdsObject[status.id])?_c('conversation',{key:status.id,staticClass:\"status-fadein\",attrs:{\"status-id\":status.id,\"collapsable\":true,\"in-profile\":_vm.inProfile,\"profile-user-id\":_vm.userId}}):_vm._e()]})],2)]),_vm._v(\" \"),_c('div',{class:_vm.classes.footer},[(_vm.count===0)?_c('div',{staticClass:\"new-status-notification text-center panel-footer faint\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('timeline.no_statuses'))+\"\\n \")]):(_vm.bottomedOut)?_c('div',{staticClass:\"new-status-notification text-center panel-footer faint\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('timeline.no_more_statuses'))+\"\\n \")]):(!_vm.timeline.loading && !_vm.errorData)?_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();_vm.fetchOlderStatuses()}}},[_c('div',{staticClass:\"new-status-notification text-center panel-footer\"},[_vm._v(_vm._s(_vm.$t('timeline.load_older')))])]):(_vm.errorData)?_c('a',{attrs:{\"href\":\"#\"}},[_c('div',{staticClass:\"new-status-notification text-center panel-footer\"},[_vm._v(_vm._s(_vm.errorData.error))])]):_c('div',{staticClass:\"new-status-notification text-center panel-footer\"},[_c('i',{staticClass:\"icon-spin3 animate-spin\"})])])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import Timeline from '../timeline/timeline.vue'\nconst PublicTimeline = {\n components: {\n Timeline\n },\n computed: {\n timeline () { return this.$store.state.statuses.timelines.public }\n },\n created () {\n this.$store.dispatch('startFetchingTimeline', { timeline: 'public' })\n },\n destroyed () {\n this.$store.dispatch('stopFetchingTimeline', 'public')\n }\n\n}\n\nexport default PublicTimeline\n","/* script */\nexport * from \"!!babel-loader!./public_timeline.js\"\nimport __vue_script__ from \"!!babel-loader!./public_timeline.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-5f2a502e\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./public_timeline.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Timeline',{attrs:{\"title\":_vm.$t('nav.public_tl'),\"timeline\":_vm.timeline,\"timeline-name\":'public'}})}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import Timeline from '../timeline/timeline.vue'\nconst PublicAndExternalTimeline = {\n components: {\n Timeline\n },\n computed: {\n timeline () { return this.$store.state.statuses.timelines.publicAndExternal }\n },\n created () {\n this.$store.dispatch('startFetchingTimeline', { timeline: 'publicAndExternal' })\n },\n destroyed () {\n this.$store.dispatch('stopFetchingTimeline', 'publicAndExternal')\n }\n}\n\nexport default PublicAndExternalTimeline\n","/* script */\nexport * from \"!!babel-loader!./public_and_external_timeline.js\"\nimport __vue_script__ from \"!!babel-loader!./public_and_external_timeline.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-f6923484\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./public_and_external_timeline.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Timeline',{attrs:{\"title\":_vm.$t('nav.twkn'),\"timeline\":_vm.timeline,\"timeline-name\":'publicAndExternal'}})}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import Timeline from '../timeline/timeline.vue'\nconst FriendsTimeline = {\n components: {\n Timeline\n },\n computed: {\n timeline () { return this.$store.state.statuses.timelines.friends }\n }\n}\n\nexport default FriendsTimeline\n","/* script */\nexport * from \"!!babel-loader!./friends_timeline.js\"\nimport __vue_script__ from \"!!babel-loader!./friends_timeline.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-22490669\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./friends_timeline.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Timeline',{attrs:{\"title\":_vm.$t('nav.timeline'),\"timeline\":_vm.timeline,\"timeline-name\":'friends'}})}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import Timeline from '../timeline/timeline.vue'\n\nconst TagTimeline = {\n created () {\n this.$store.commit('clearTimeline', { timeline: 'tag' })\n this.$store.dispatch('startFetchingTimeline', { timeline: 'tag', tag: this.tag })\n },\n components: {\n Timeline\n },\n computed: {\n tag () { return this.$route.params.tag },\n timeline () { return this.$store.state.statuses.timelines.tag }\n },\n watch: {\n tag () {\n this.$store.commit('clearTimeline', { timeline: 'tag' })\n this.$store.dispatch('startFetchingTimeline', { timeline: 'tag', tag: this.tag })\n }\n },\n destroyed () {\n this.$store.dispatch('stopFetchingTimeline', 'tag')\n }\n}\n\nexport default TagTimeline\n","/* script */\nexport * from \"!!babel-loader!./tag_timeline.js\"\nimport __vue_script__ from \"!!babel-loader!./tag_timeline.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-047310d3\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./tag_timeline.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Timeline',{attrs:{\"title\":_vm.tag,\"timeline\":_vm.timeline,\"timeline-name\":'tag',\"tag\":_vm.tag}})}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import Conversation from '../conversation/conversation.vue'\n\nconst conversationPage = {\n components: {\n Conversation\n },\n computed: {\n statusId () {\n return this.$route.params.id\n }\n }\n}\n\nexport default conversationPage\n","/* script */\nexport * from \"!!babel-loader!./conversation-page.js\"\nimport __vue_script__ from \"!!babel-loader!./conversation-page.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-46654d24\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./conversation-page.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('conversation',{attrs:{\"collapsable\":false,\"is-page\":\"true\",\"status-id\":_vm.statusId}})}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import 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 { isStatusNotification } from '../../services/notification_utils/notification_utils.js'\nimport { highlightClass, highlightStyle } from '../../services/user_highlighter/user_highlighter.js'\nimport generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\n\nconst Notification = {\n data () {\n return {\n userExpanded: false,\n betterShadow: this.$store.state.interface.browserSupport.cssFilter,\n unmuted: false\n }\n },\n props: [ 'notification' ],\n components: {\n Status,\n UserAvatar,\n UserCard,\n Timeago\n },\n methods: {\n toggleUserExpanded () {\n this.userExpanded = !this.userExpanded\n },\n generateUserProfileLink (user) {\n return generateProfileLink(user.id, user.screen_name, this.$store.state.instance.restrictedNicknames)\n },\n getUser (notification) {\n return this.$store.state.users.usersObject[notification.from_profile.id]\n },\n toggleMute () {\n this.unmuted = !this.unmuted\n },\n approveUser () {\n this.$store.state.api.backendInteractor.approveUser({ id: this.user.id })\n this.$store.dispatch('removeFollowRequest', this.user)\n this.$store.dispatch('markSingleNotificationAsSeen', { id: this.notification.id })\n this.$store.dispatch('updateNotification', {\n id: this.notification.id,\n updater: notification => {\n notification.type = 'follow'\n }\n })\n },\n denyUser () {\n this.$store.state.api.backendInteractor.denyUser({ id: this.user.id })\n .then(() => {\n this.$store.dispatch('dismissNotificationLocal', { id: this.notification.id })\n this.$store.dispatch('removeFollowRequest', this.user)\n })\n }\n },\n computed: {\n userClass () {\n return highlightClass(this.notification.from_profile)\n },\n userStyle () {\n const highlight = this.$store.getters.mergedConfig.highlight\n const user = this.notification.from_profile\n return highlightStyle(highlight[user.screen_name])\n },\n user () {\n return this.$store.getters.findUser(this.notification.from_profile.id)\n },\n userProfileLink () {\n return this.generateUserProfileLink(this.user)\n },\n targetUser () {\n return this.$store.getters.findUser(this.notification.target.id)\n },\n targetUserProfileLink () {\n return this.generateUserProfileLink(this.targetUser)\n },\n needMute () {\n return this.$store.getters.relationship(this.user.id).muting\n },\n isStatusNotification () {\n return isStatusNotification(this.notification.type)\n }\n }\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-0b3fbfb4\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./notification.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.notification.type === 'mention')?_c('status',{attrs:{\"compact\":true,\"statusoid\":_vm.notification.status}}):_c('div',[(_vm.needMute && !_vm.unmuted)?_c('div',{staticClass:\"container muted\"},[_c('small',[_c('router-link',{attrs:{\"to\":_vm.userProfileLink}},[_vm._v(\"\\n \"+_vm._s(_vm.notification.from_profile.screen_name)+\"\\n \")])],1),_vm._v(\" \"),_c('a',{staticClass:\"unmute\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.toggleMute($event)}}},[_c('i',{staticClass:\"button-icon icon-eye-off\"})])]):_c('div',{staticClass:\"non-mention\",class:[_vm.userClass, { highlighted: _vm.userStyle }],style:([ _vm.userStyle ])},[_c('a',{staticClass:\"avatar-container\",attrs:{\"href\":_vm.notification.from_profile.statusnet_profile_url},on:{\"!click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.toggleUserExpanded($event)}}},[_c('UserAvatar',{attrs:{\"compact\":true,\"better-shadow\":_vm.betterShadow,\"user\":_vm.notification.from_profile}})],1),_vm._v(\" \"),_c('div',{staticClass:\"notification-right\"},[(_vm.userExpanded)?_c('UserCard',{attrs:{\"user-id\":_vm.getUser(_vm.notification).id,\"rounded\":true,\"bordered\":true}}):_vm._e(),_vm._v(\" \"),_c('span',{staticClass:\"notification-details\"},[_c('div',{staticClass:\"name-and-action\"},[(!!_vm.notification.from_profile.name_html)?_c('bdi',{staticClass:\"username\",attrs:{\"title\":'@'+_vm.notification.from_profile.screen_name},domProps:{\"innerHTML\":_vm._s(_vm.notification.from_profile.name_html)}}):_c('span',{staticClass:\"username\",attrs:{\"title\":'@'+_vm.notification.from_profile.screen_name}},[_vm._v(_vm._s(_vm.notification.from_profile.name))]),_vm._v(\" \"),(_vm.notification.type === 'like')?_c('span',[_c('i',{staticClass:\"fa icon-star lit\"}),_vm._v(\" \"),_c('small',[_vm._v(_vm._s(_vm.$t('notifications.favorited_you')))])]):_vm._e(),_vm._v(\" \"),(_vm.notification.type === 'repeat')?_c('span',[_c('i',{staticClass:\"fa icon-retweet lit\",attrs:{\"title\":_vm.$t('tool_tip.repeat')}}),_vm._v(\" \"),_c('small',[_vm._v(_vm._s(_vm.$t('notifications.repeated_you')))])]):_vm._e(),_vm._v(\" \"),(_vm.notification.type === 'follow')?_c('span',[_c('i',{staticClass:\"fa icon-user-plus lit\"}),_vm._v(\" \"),_c('small',[_vm._v(_vm._s(_vm.$t('notifications.followed_you')))])]):_vm._e(),_vm._v(\" \"),(_vm.notification.type === 'follow_request')?_c('span',[_c('i',{staticClass:\"fa icon-user lit\"}),_vm._v(\" \"),_c('small',[_vm._v(_vm._s(_vm.$t('notifications.follow_request')))])]):_vm._e(),_vm._v(\" \"),(_vm.notification.type === 'move')?_c('span',[_c('i',{staticClass:\"fa icon-arrow-curved lit\"}),_vm._v(\" \"),_c('small',[_vm._v(_vm._s(_vm.$t('notifications.migrated_to')))])]):_vm._e(),_vm._v(\" \"),(_vm.notification.type === 'pleroma:emoji_reaction')?_c('span',[_c('small',[_c('i18n',{attrs:{\"path\":\"notifications.reacted_with\"}},[_c('span',{staticClass:\"emoji-reaction-emoji\"},[_vm._v(_vm._s(_vm.notification.emoji))])])],1)]):_vm._e()]),_vm._v(\" \"),(_vm.isStatusNotification)?_c('div',{staticClass:\"timeago\"},[(_vm.notification.status)?_c('router-link',{staticClass:\"faint-link\",attrs:{\"to\":{ name: 'conversation', params: { id: _vm.notification.status.id } }}},[_c('Timeago',{attrs:{\"time\":_vm.notification.created_at,\"auto-update\":240}})],1):_vm._e()],1):_c('div',{staticClass:\"timeago\"},[_c('span',{staticClass:\"faint\"},[_c('Timeago',{attrs:{\"time\":_vm.notification.created_at,\"auto-update\":240}})],1)]),_vm._v(\" \"),(_vm.needMute)?_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.toggleMute($event)}}},[_c('i',{staticClass:\"button-icon icon-eye-off\"})]):_vm._e()]),_vm._v(\" \"),(_vm.notification.type === 'follow' || _vm.notification.type === 'follow_request')?_c('div',{staticClass:\"follow-text\"},[_c('router-link',{staticClass:\"follow-name\",attrs:{\"to\":_vm.userProfileLink}},[_vm._v(\"\\n @\"+_vm._s(_vm.notification.from_profile.screen_name)+\"\\n \")]),_vm._v(\" \"),(_vm.notification.type === 'follow_request')?_c('div',{staticStyle:{\"white-space\":\"nowrap\"}},[_c('i',{staticClass:\"icon-ok button-icon follow-request-accept\",attrs:{\"title\":_vm.$t('tool_tip.accept_follow_request')},on:{\"click\":function($event){_vm.approveUser()}}}),_vm._v(\" \"),_c('i',{staticClass:\"icon-cancel button-icon follow-request-reject\",attrs:{\"title\":_vm.$t('tool_tip.reject_follow_request')},on:{\"click\":function($event){_vm.denyUser()}}})]):_vm._e()],1):(_vm.notification.type === 'move')?_c('div',{staticClass:\"move-text\"},[_c('router-link',{attrs:{\"to\":_vm.targetUserProfileLink}},[_vm._v(\"\\n @\"+_vm._s(_vm.notification.target.screen_name)+\"\\n \")])],1):[_c('status',{staticClass:\"faint\",attrs:{\"compact\":true,\"statusoid\":_vm.notification.action,\"no-heading\":true}})]],2)])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import Notification from '../notification/notification.vue'\nimport notificationsFetcher from '../../services/notifications_fetcher/notifications_fetcher.service.js'\nimport {\n notificationsFromStore,\n filteredNotificationsFromStore,\n unseenNotificationsFromStore\n} from '../../services/notification_utils/notification_utils.js'\n\nconst DEFAULT_SEEN_TO_DISPLAY_COUNT = 30\n\nconst Notifications = {\n props: {\n // Disables display of panel header\n noHeading: Boolean,\n // Disables panel styles, unread mark, potentially other notification-related actions\n // meant for \"Interactions\" timeline\n minimalMode: Boolean,\n // Custom filter mode, an array of strings, possible values 'mention', 'repeat', 'like', 'follow', used to override global filter for use in \"Interactions\" timeline\n filterMode: Array\n },\n data () {\n return {\n bottomedOut: false,\n // How many seen notifications to display in the list. The more there are,\n // the heavier the page becomes. This count is increased when loading\n // older notifications, and cut back to default whenever hitting \"Read!\".\n seenToDisplayCount: DEFAULT_SEEN_TO_DISPLAY_COUNT\n }\n },\n computed: {\n mainClass () {\n return this.minimalMode ? '' : 'panel panel-default'\n },\n notifications () {\n return notificationsFromStore(this.$store)\n },\n error () {\n return this.$store.state.statuses.notifications.error\n },\n unseenNotifications () {\n return unseenNotificationsFromStore(this.$store)\n },\n filteredNotifications () {\n return filteredNotificationsFromStore(this.$store, this.filterMode)\n },\n unseenCount () {\n return this.unseenNotifications.length\n },\n loading () {\n return this.$store.state.statuses.notifications.loading\n },\n notificationsToDisplay () {\n return this.filteredNotifications.slice(0, this.unseenCount + this.seenToDisplayCount)\n }\n },\n components: {\n Notification\n },\n created () {\n const { dispatch } = this.$store\n\n dispatch('fetchAndUpdateNotifications')\n },\n watch: {\n unseenCount (count) {\n if (count > 0) {\n this.$store.dispatch('setPageTitle', `(${count})`)\n } else {\n this.$store.dispatch('setPageTitle', '')\n }\n }\n },\n methods: {\n markAsSeen () {\n this.$store.dispatch('markNotificationsAsSeen')\n this.seenToDisplayCount = DEFAULT_SEEN_TO_DISPLAY_COUNT\n },\n fetchOlderNotifications () {\n if (this.loading) {\n return\n }\n\n const seenCount = this.filteredNotifications.length - this.unseenCount\n if (this.seenToDisplayCount < seenCount) {\n this.seenToDisplayCount = Math.min(this.seenToDisplayCount + 20, seenCount)\n return\n } else if (this.seenToDisplayCount > seenCount) {\n this.seenToDisplayCount = seenCount\n }\n\n const store = this.$store\n const credentials = store.state.users.currentUser.credentials\n store.commit('setNotificationsLoading', { value: true })\n notificationsFetcher.fetchAndUpdate({\n store,\n credentials,\n older: true\n }).then(notifs => {\n store.commit('setNotificationsLoading', { value: false })\n if (notifs.length === 0) {\n this.bottomedOut = true\n }\n this.seenToDisplayCount += notifs.length\n })\n }\n }\n}\n\nexport default Notifications\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!./notifications.scss\")\n}\n/* script */\nexport * from \"!!babel-loader!./notifications.js\"\nimport __vue_script__ from \"!!babel-loader!./notifications.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-4be57e6f\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./notifications.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"notifications\",class:{ minimal: _vm.minimalMode }},[_c('div',{class:_vm.mainClass},[(!_vm.noHeading)?_c('div',{staticClass:\"panel-heading\"},[_c('div',{staticClass:\"title\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('notifications.notifications'))+\"\\n \"),(_vm.unseenCount)?_c('span',{staticClass:\"badge badge-notification unseen-count\"},[_vm._v(_vm._s(_vm.unseenCount))]):_vm._e()]),_vm._v(\" \"),(_vm.error)?_c('div',{staticClass:\"loadmore-error alert error\",on:{\"click\":function($event){$event.preventDefault();}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('timeline.error_fetching'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.unseenCount)?_c('button',{staticClass:\"read-button\",on:{\"click\":function($event){$event.preventDefault();return _vm.markAsSeen($event)}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('notifications.read'))+\"\\n \")]):_vm._e()]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"panel-body\"},_vm._l((_vm.notificationsToDisplay),function(notification){return _c('div',{key:notification.id,staticClass:\"notification\",class:{\"unseen\": !_vm.minimalMode && !notification.seen}},[_c('div',{staticClass:\"notification-overlay\"}),_vm._v(\" \"),_c('notification',{attrs:{\"notification\":notification}})],1)}),0),_vm._v(\" \"),_c('div',{staticClass:\"panel-footer\"},[(_vm.bottomedOut)?_c('div',{staticClass:\"new-status-notification text-center panel-footer faint\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('notifications.no_more_notifications'))+\"\\n \")]):(!_vm.loading)?_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();_vm.fetchOlderNotifications()}}},[_c('div',{staticClass:\"new-status-notification text-center panel-footer\"},[_vm._v(\"\\n \"+_vm._s(_vm.minimalMode ? _vm.$t('interactions.load_older') : _vm.$t('notifications.load_older'))+\"\\n \")])]):_c('div',{staticClass:\"new-status-notification text-center panel-footer\"},[_c('i',{staticClass:\"icon-spin3 animate-spin\"})])])])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import Notifications from '../notifications/notifications.vue'\n\nconst tabModeDict = {\n mentions: ['mention'],\n 'likes+repeats': ['repeat', 'like'],\n follows: ['follow'],\n moves: ['move']\n}\n\nconst Interactions = {\n data () {\n return {\n allowFollowingMove: this.$store.state.users.currentUser.allow_following_move,\n filterMode: tabModeDict['mentions']\n }\n },\n methods: {\n onModeSwitch (key) {\n this.filterMode = tabModeDict[key]\n }\n },\n components: {\n Notifications\n }\n}\n\nexport default Interactions\n","/* script */\nexport * from \"!!babel-loader!./interactions.js\"\nimport __vue_script__ from \"!!babel-loader!./interactions.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-109005c8\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./interactions.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"panel panel-default\"},[_c('div',{staticClass:\"panel-heading\"},[_c('div',{staticClass:\"title\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t(\"nav.interactions\"))+\"\\n \")])]),_vm._v(\" \"),_c('tab-switcher',{ref:\"tabSwitcher\",attrs:{\"on-switch\":_vm.onModeSwitch}},[_c('span',{key:\"mentions\",attrs:{\"label\":_vm.$t('nav.mentions')}}),_vm._v(\" \"),_c('span',{key:\"likes+repeats\",attrs:{\"label\":_vm.$t('interactions.favs_repeats')}}),_vm._v(\" \"),_c('span',{key:\"follows\",attrs:{\"label\":_vm.$t('interactions.follows')}}),_vm._v(\" \"),(!_vm.allowFollowingMove)?_c('span',{key:\"moves\",attrs:{\"label\":_vm.$t('interactions.moves')}}):_vm._e()]),_vm._v(\" \"),_c('Notifications',{ref:\"notifications\",attrs:{\"no-heading\":true,\"minimal-mode\":true,\"filter-mode\":_vm.filterMode}})],1)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import Timeline from '../timeline/timeline.vue'\n\nconst DMs = {\n computed: {\n timeline () {\n return this.$store.state.statuses.timelines.dms\n }\n },\n components: {\n Timeline\n }\n}\n\nexport default DMs\n","/* script */\nexport * from \"!!babel-loader!./dm_timeline.js\"\nimport __vue_script__ from \"!!babel-loader!./dm_timeline.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-294f8b6d\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./dm_timeline.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Timeline',{attrs:{\"title\":_vm.$t('nav.dms'),\"timeline\":_vm.timeline,\"timeline-name\":'dms'}})}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import UserCard from '../user_card/user_card.vue'\nimport UserAvatar from '../user_avatar/user_avatar.vue'\nimport generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\n\nconst BasicUserCard = {\n props: [\n 'user'\n ],\n data () {\n return {\n userExpanded: false\n }\n },\n components: {\n UserCard,\n UserAvatar\n },\n methods: {\n toggleUserExpanded () {\n this.userExpanded = !this.userExpanded\n },\n userProfileLink (user) {\n return generateProfileLink(user.id, user.screen_name, this.$store.state.instance.restrictedNicknames)\n }\n }\n}\n\nexport default BasicUserCard\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./basic_user_card.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./basic_user_card.js\"\nimport __vue_script__ from \"!!babel-loader!./basic_user_card.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-4d2bc0bb\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./basic_user_card.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"basic-user-card\"},[_c('router-link',{attrs:{\"to\":_vm.userProfileLink(_vm.user)}},[_c('UserAvatar',{staticClass:\"avatar\",attrs:{\"user\":_vm.user},nativeOn:{\"click\":function($event){$event.preventDefault();return _vm.toggleUserExpanded($event)}}})],1),_vm._v(\" \"),(_vm.userExpanded)?_c('div',{staticClass:\"basic-user-card-expanded-content\"},[_c('UserCard',{attrs:{\"user-id\":_vm.user.id,\"rounded\":true,\"bordered\":true}})],1):_c('div',{staticClass:\"basic-user-card-collapsed-content\"},[_c('div',{staticClass:\"basic-user-card-user-name\",attrs:{\"title\":_vm.user.name}},[(_vm.user.name_html)?_c('span',{staticClass:\"basic-user-card-user-name-value\",domProps:{\"innerHTML\":_vm._s(_vm.user.name_html)}}):_c('span',{staticClass:\"basic-user-card-user-name-value\"},[_vm._v(_vm._s(_vm.user.name))])]),_vm._v(\" \"),_c('div',[_c('router-link',{staticClass:\"basic-user-card-screen-name\",attrs:{\"to\":_vm.userProfileLink(_vm.user)}},[_vm._v(\"\\n @\"+_vm._s(_vm.user.screen_name)+\"\\n \")])],1),_vm._v(\" \"),_vm._t(\"default\")],2)],1)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import BasicUserCard from '../basic_user_card/basic_user_card.vue'\nimport RemoteFollow from '../remote_follow/remote_follow.vue'\nimport FollowButton from '../follow_button/follow_button.vue'\n\nconst FollowCard = {\n props: [\n 'user',\n 'noFollowsYou'\n ],\n components: {\n BasicUserCard,\n RemoteFollow,\n FollowButton\n },\n computed: {\n isMe () {\n return this.$store.state.users.currentUser.id === this.user.id\n },\n loggedIn () {\n return this.$store.state.users.currentUser\n },\n relationship () {\n return this.$store.getters.relationship(this.user.id)\n }\n }\n}\n\nexport default FollowCard\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./follow_card.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./follow_card.js\"\nimport __vue_script__ from \"!!babel-loader!./follow_card.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-070e8e0f\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./follow_card.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('basic-user-card',{attrs:{\"user\":_vm.user}},[_c('div',{staticClass:\"follow-card-content-container\"},[(!_vm.noFollowsYou && _vm.relationship.followed_by)?_c('span',{staticClass:\"faint\"},[_vm._v(\"\\n \"+_vm._s(_vm.isMe ? _vm.$t('user_card.its_you') : _vm.$t('user_card.follows_you'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(!_vm.loggedIn)?[(!_vm.relationship.following)?_c('div',{staticClass:\"follow-card-follow-button\"},[_c('RemoteFollow',{attrs:{\"user\":_vm.user}})],1):_vm._e()]:[_c('FollowButton',{staticClass:\"follow-card-follow-button\",attrs:{\"relationship\":_vm.relationship,\"label-following\":_vm.$t('user_card.follow_unfollow')}})]],2)])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","<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-21b328ed\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./user_profile.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.user)?_c('div',{staticClass:\"user-profile panel panel-default\"},[_c('UserCard',{attrs:{\"user-id\":_vm.userId,\"switcher\":true,\"selected\":_vm.timeline.viewing,\"allow-zooming-avatar\":true,\"rounded\":\"top\"}}),_vm._v(\" \"),_c('tab-switcher',{attrs:{\"active-tab\":_vm.tab,\"render-only-focused\":true,\"on-switch\":_vm.onTabSwitch}},[_c('Timeline',{key:\"statuses\",attrs:{\"label\":_vm.$t('user_card.statuses'),\"count\":_vm.user.statuses_count,\"embedded\":true,\"title\":_vm.$t('user_profile.timeline_title'),\"timeline\":_vm.timeline,\"timeline-name\":\"user\",\"user-id\":_vm.userId,\"pinned-status-ids\":_vm.user.pinnedStatusIds,\"in-profile\":true}}),_vm._v(\" \"),(_vm.followsTabVisible)?_c('div',{key:\"followees\",attrs:{\"label\":_vm.$t('user_card.followees'),\"disabled\":!_vm.user.friends_count}},[_c('FriendList',{attrs:{\"user-id\":_vm.userId},scopedSlots:_vm._u([{key:\"item\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('FollowCard',{attrs:{\"user\":item}})]}}])})],1):_vm._e(),_vm._v(\" \"),(_vm.followersTabVisible)?_c('div',{key:\"followers\",attrs:{\"label\":_vm.$t('user_card.followers'),\"disabled\":!_vm.user.followers_count}},[_c('FollowerList',{attrs:{\"user-id\":_vm.userId},scopedSlots:_vm._u([{key:\"item\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('FollowCard',{attrs:{\"user\":item,\"no-follows-you\":_vm.isUs}})]}}])})],1):_vm._e(),_vm._v(\" \"),_c('Timeline',{key:\"media\",attrs:{\"label\":_vm.$t('user_card.media'),\"disabled\":!_vm.media.visibleStatuses.length,\"embedded\":true,\"title\":_vm.$t('user_card.media'),\"timeline-name\":\"media\",\"timeline\":_vm.media,\"user-id\":_vm.userId,\"in-profile\":true}}),_vm._v(\" \"),(_vm.isUs)?_c('Timeline',{key:\"favorites\",attrs:{\"label\":_vm.$t('user_card.favorites'),\"disabled\":!_vm.favorites.visibleStatuses.length,\"embedded\":true,\"title\":_vm.$t('user_card.favorites'),\"timeline-name\":\"favorites\",\"timeline\":_vm.favorites,\"in-profile\":true}}):_vm._e()],1)],1):_c('div',{staticClass:\"panel user-profile-placeholder\"},[_c('div',{staticClass:\"panel-heading\"},[_c('div',{staticClass:\"title\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.profile_tab'))+\"\\n \")])]),_vm._v(\" \"),_c('div',{staticClass:\"panel-body\"},[(_vm.error)?_c('span',[_vm._v(_vm._s(_vm.error))]):_c('i',{staticClass:\"icon-spin3 animate-spin\"})])])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import FollowCard from '../follow_card/follow_card.vue'\nimport Conversation from '../conversation/conversation.vue'\nimport Status from '../status/status.vue'\nimport map from 'lodash/map'\n\nconst Search = {\n components: {\n FollowCard,\n Conversation,\n Status\n },\n props: [\n 'query'\n ],\n data () {\n return {\n loaded: false,\n loading: false,\n searchTerm: this.query || '',\n userIds: [],\n statuses: [],\n hashtags: [],\n currenResultTab: 'statuses'\n }\n },\n computed: {\n users () {\n return this.userIds.map(userId => this.$store.getters.findUser(userId))\n },\n visibleStatuses () {\n const allStatusesObject = this.$store.state.statuses.allStatusesObject\n\n return this.statuses.filter(status =>\n allStatusesObject[status.id] && !allStatusesObject[status.id].deleted\n )\n }\n },\n mounted () {\n this.search(this.query)\n },\n watch: {\n query (newValue) {\n this.searchTerm = newValue\n this.search(newValue)\n }\n },\n methods: {\n newQuery (query) {\n this.$router.push({ name: 'search', query: { query } })\n this.$refs.searchInput.focus()\n },\n search (query) {\n if (!query) {\n this.loading = false\n return\n }\n\n this.loading = true\n this.userIds = []\n this.statuses = []\n this.hashtags = []\n this.$refs.searchInput.blur()\n\n this.$store.dispatch('search', { q: query, resolve: true })\n .then(data => {\n this.loading = false\n this.userIds = map(data.accounts, 'id')\n this.statuses = data.statuses\n this.hashtags = data.hashtags\n this.currenResultTab = this.getActiveTab()\n this.loaded = true\n })\n },\n resultCount (tabName) {\n const length = this[tabName].length\n return length === 0 ? '' : ` (${length})`\n },\n onResultTabSwitch (key) {\n this.currenResultTab = key\n },\n getActiveTab () {\n if (this.visibleStatuses.length > 0) {\n return 'statuses'\n } else if (this.users.length > 0) {\n return 'people'\n } else if (this.hashtags.length > 0) {\n return 'hashtags'\n }\n\n return 'statuses'\n },\n lastHistoryRecord (hashtag) {\n return hashtag.history && hashtag.history[0]\n }\n }\n}\n\nexport default Search\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./search.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./search.js\"\nimport __vue_script__ from \"!!babel-loader!./search.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-3962ec42\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./search.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"panel panel-default\"},[_c('div',{staticClass:\"panel-heading\"},[_c('div',{staticClass:\"title\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('nav.search'))+\"\\n \")])]),_vm._v(\" \"),_c('div',{staticClass:\"search-input-container\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.searchTerm),expression:\"searchTerm\"}],ref:\"searchInput\",staticClass:\"search-input\",attrs:{\"placeholder\":_vm.$t('nav.search')},domProps:{\"value\":(_vm.searchTerm)},on:{\"keyup\":function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }_vm.newQuery(_vm.searchTerm)},\"input\":function($event){if($event.target.composing){ return; }_vm.searchTerm=$event.target.value}}}),_vm._v(\" \"),_c('button',{staticClass:\"btn search-button\",on:{\"click\":function($event){_vm.newQuery(_vm.searchTerm)}}},[_c('i',{staticClass:\"icon-search\"})])]),_vm._v(\" \"),(_vm.loading)?_c('div',{staticClass:\"text-center loading-icon\"},[_c('i',{staticClass:\"icon-spin3 animate-spin\"})]):(_vm.loaded)?_c('div',[_c('div',{staticClass:\"search-nav-heading\"},[_c('tab-switcher',{ref:\"tabSwitcher\",attrs:{\"on-switch\":_vm.onResultTabSwitch,\"active-tab\":_vm.currenResultTab}},[_c('span',{key:\"statuses\",attrs:{\"label\":_vm.$t('user_card.statuses') + _vm.resultCount('visibleStatuses')}}),_vm._v(\" \"),_c('span',{key:\"people\",attrs:{\"label\":_vm.$t('search.people') + _vm.resultCount('users')}}),_vm._v(\" \"),_c('span',{key:\"hashtags\",attrs:{\"label\":_vm.$t('search.hashtags') + _vm.resultCount('hashtags')}})])],1)]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"panel-body\"},[(_vm.currenResultTab === 'statuses')?_c('div',[(_vm.visibleStatuses.length === 0 && !_vm.loading && _vm.loaded)?_c('div',{staticClass:\"search-result-heading\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('search.no_results')))])]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.visibleStatuses),function(status){return _c('Status',{key:status.id,staticClass:\"search-result\",attrs:{\"collapsable\":false,\"expandable\":false,\"compact\":false,\"statusoid\":status,\"no-heading\":false}})})],2):(_vm.currenResultTab === 'people')?_c('div',[(_vm.users.length === 0 && !_vm.loading && _vm.loaded)?_c('div',{staticClass:\"search-result-heading\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('search.no_results')))])]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.users),function(user){return _c('FollowCard',{key:user.id,staticClass:\"list-item search-result\",attrs:{\"user\":user}})})],2):(_vm.currenResultTab === 'hashtags')?_c('div',[(_vm.hashtags.length === 0 && !_vm.loading && _vm.loaded)?_c('div',{staticClass:\"search-result-heading\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('search.no_results')))])]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.hashtags),function(hashtag){return _c('div',{key:hashtag.url,staticClass:\"status trend search-result\"},[_c('div',{staticClass:\"hashtag\"},[_c('router-link',{attrs:{\"to\":{ name: 'tag-timeline', params: { tag: hashtag.name } }}},[_vm._v(\"\\n #\"+_vm._s(hashtag.name)+\"\\n \")]),_vm._v(\" \"),(_vm.lastHistoryRecord(hashtag))?_c('div',[(_vm.lastHistoryRecord(hashtag).accounts == 1)?_c('span',[_vm._v(\"\\n \"+_vm._s(_vm.$t('search.person_talking', { count: _vm.lastHistoryRecord(hashtag).accounts }))+\"\\n \")]):_c('span',[_vm._v(\"\\n \"+_vm._s(_vm.$t('search.people_talking', { count: _vm.lastHistoryRecord(hashtag).accounts }))+\"\\n \")])]):_vm._e()],1),_vm._v(\" \"),(_vm.lastHistoryRecord(hashtag))?_c('div',{staticClass:\"count\"},[_vm._v(\"\\n \"+_vm._s(_vm.lastHistoryRecord(hashtag).uses)+\"\\n \")]):_vm._e()])})],2):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"search-result-footer text-center panel-footer faint\"})])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","<template>\n <div\n class=\"color-input style-control\"\n :class=\"{ disabled: !present || disabled }\"\n >\n <label\n :for=\"name\"\n class=\"label\"\n >\n {{ label }}\n </label>\n <Checkbox\n v-if=\"typeof fallback !== 'undefined' && showOptionalTickbox\"\n :checked=\"present\"\n :disabled=\"disabled\"\n class=\"opt\"\n @change=\"$emit('input', typeof value === 'undefined' ? fallback : undefined)\"\n />\n <div class=\"input color-input-field\">\n <input\n :id=\"name + '-t'\"\n class=\"textColor unstyled\"\n type=\"text\"\n :value=\"value || fallback\"\n :disabled=\"!present || disabled\"\n @input=\"$emit('input', $event.target.value)\"\n >\n <input\n v-if=\"validColor\"\n :id=\"name\"\n class=\"nativeColor unstyled\"\n type=\"color\"\n :value=\"value || fallback\"\n :disabled=\"!present || disabled\"\n @input=\"$emit('input', $event.target.value)\"\n >\n <div\n v-if=\"transparentColor\"\n class=\"transparentIndicator\"\n />\n <div\n v-if=\"computedColor\"\n class=\"computedIndicator\"\n :style=\"{backgroundColor: fallback}\"\n />\n </div>\n </div>\n</template>\n<style lang=\"scss\" src=\"./color_input.scss\"></style>\n<script>\nimport Checkbox from '../checkbox/checkbox.vue'\nimport { hex2rgb } from '../../services/color_convert/color_convert.js'\nexport default {\n components: {\n Checkbox\n },\n props: {\n // Name of color, used for identifying\n name: {\n required: true,\n type: String\n },\n // Readable label\n label: {\n required: true,\n type: String\n },\n // Color value, should be required but vue cannot tell the difference\n // between \"property missing\" and \"property set to undefined\"\n value: {\n required: false,\n type: String,\n default: undefined\n },\n // Color fallback to use when value is not defeind\n fallback: {\n required: false,\n type: String,\n default: undefined\n },\n // Disable the control\n disabled: {\n required: false,\n type: Boolean,\n default: false\n },\n // Show \"optional\" tickbox, for when value might become mandatory\n showOptionalTickbox: {\n required: false,\n type: Boolean,\n default: true\n }\n },\n computed: {\n present () {\n return typeof this.value !== 'undefined'\n },\n validColor () {\n return hex2rgb(this.value || this.fallback)\n },\n transparentColor () {\n return this.value === 'transparent'\n },\n computedColor () {\n return this.value && this.value.startsWith('--')\n }\n }\n}\n</script>\n\n<style lang=\"scss\">\n.color-control {\n input.text-input {\n max-width: 7em;\n flex: 1;\n }\n}\n</style>\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!./color_input.scss\")\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=1!./color_input.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./color_input.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./color_input.vue\"\n/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-77e407b6\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./color_input.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"color-input style-control\",class:{ disabled: !_vm.present || _vm.disabled }},[_c('label',{staticClass:\"label\",attrs:{\"for\":_vm.name}},[_vm._v(\"\\n \"+_vm._s(_vm.label)+\"\\n \")]),_vm._v(\" \"),(typeof _vm.fallback !== 'undefined' && _vm.showOptionalTickbox)?_c('Checkbox',{staticClass:\"opt\",attrs:{\"checked\":_vm.present,\"disabled\":_vm.disabled},on:{\"change\":function($event){_vm.$emit('input', typeof _vm.value === 'undefined' ? _vm.fallback : undefined)}}}):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"input color-input-field\"},[_c('input',{staticClass:\"textColor unstyled\",attrs:{\"id\":_vm.name + '-t',\"type\":\"text\",\"disabled\":!_vm.present || _vm.disabled},domProps:{\"value\":_vm.value || _vm.fallback},on:{\"input\":function($event){_vm.$emit('input', $event.target.value)}}}),_vm._v(\" \"),(_vm.validColor)?_c('input',{staticClass:\"nativeColor unstyled\",attrs:{\"id\":_vm.name,\"type\":\"color\",\"disabled\":!_vm.present || _vm.disabled},domProps:{\"value\":_vm.value || _vm.fallback},on:{\"input\":function($event){_vm.$emit('input', $event.target.value)}}}):_vm._e(),_vm._v(\" \"),(_vm.transparentColor)?_c('div',{staticClass:\"transparentIndicator\"}):_vm._e(),_vm._v(\" \"),(_vm.computedColor)?_c('div',{staticClass:\"computedIndicator\",style:({backgroundColor: _vm.fallback})}):_vm._e()])],1)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./range_input.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./range_input.vue\"\n/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-6a3c1a26\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./range_input.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","<template>\n <div\n class=\"range-control style-control\"\n :class=\"{ disabled: !present || disabled }\"\n >\n <label\n :for=\"name\"\n class=\"label\"\n >\n {{ label }}\n </label>\n <input\n v-if=\"typeof fallback !== 'undefined'\"\n :id=\"name + '-o'\"\n class=\"opt\"\n type=\"checkbox\"\n :checked=\"present\"\n @input=\"$emit('input', !present ? fallback : undefined)\"\n >\n <label\n v-if=\"typeof fallback !== 'undefined'\"\n class=\"opt-l\"\n :for=\"name + '-o'\"\n />\n <input\n :id=\"name\"\n class=\"input-number\"\n type=\"range\"\n :value=\"value || fallback\"\n :disabled=\"!present || disabled\"\n :max=\"max || hardMax || 100\"\n :min=\"min || hardMin || 0\"\n :step=\"step || 1\"\n @input=\"$emit('input', $event.target.value)\"\n >\n <input\n :id=\"name\"\n class=\"input-number\"\n type=\"number\"\n :value=\"value || fallback\"\n :disabled=\"!present || disabled\"\n :max=\"hardMax\"\n :min=\"hardMin\"\n :step=\"step || 1\"\n @input=\"$emit('input', $event.target.value)\"\n >\n </div>\n</template>\n\n<script>\nexport default {\n props: [\n 'name', 'value', 'fallback', 'disabled', 'label', 'max', 'min', 'step', 'hardMin', 'hardMax'\n ],\n computed: {\n present () {\n return typeof this.value !== 'undefined'\n }\n }\n}\n</script>\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"range-control style-control\",class:{ disabled: !_vm.present || _vm.disabled }},[_c('label',{staticClass:\"label\",attrs:{\"for\":_vm.name}},[_vm._v(\"\\n \"+_vm._s(_vm.label)+\"\\n \")]),_vm._v(\" \"),(typeof _vm.fallback !== 'undefined')?_c('input',{staticClass:\"opt\",attrs:{\"id\":_vm.name + '-o',\"type\":\"checkbox\"},domProps:{\"checked\":_vm.present},on:{\"input\":function($event){_vm.$emit('input', !_vm.present ? _vm.fallback : undefined)}}}):_vm._e(),_vm._v(\" \"),(typeof _vm.fallback !== 'undefined')?_c('label',{staticClass:\"opt-l\",attrs:{\"for\":_vm.name + '-o'}}):_vm._e(),_vm._v(\" \"),_c('input',{staticClass:\"input-number\",attrs:{\"id\":_vm.name,\"type\":\"range\",\"disabled\":!_vm.present || _vm.disabled,\"max\":_vm.max || _vm.hardMax || 100,\"min\":_vm.min || _vm.hardMin || 0,\"step\":_vm.step || 1},domProps:{\"value\":_vm.value || _vm.fallback},on:{\"input\":function($event){_vm.$emit('input', $event.target.value)}}}),_vm._v(\" \"),_c('input',{staticClass:\"input-number\",attrs:{\"id\":_vm.name,\"type\":\"number\",\"disabled\":!_vm.present || _vm.disabled,\"max\":_vm.hardMax,\"min\":_vm.hardMin,\"step\":_vm.step || 1},domProps:{\"value\":_vm.value || _vm.fallback},on:{\"input\":function($event){_vm.$emit('input', $event.target.value)}}})])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","<template>\n <div\n class=\"opacity-control style-control\"\n :class=\"{ disabled: !present || disabled }\"\n >\n <label\n :for=\"name\"\n class=\"label\"\n >\n {{ $t('settings.style.common.opacity') }}\n </label>\n <Checkbox\n v-if=\"typeof fallback !== 'undefined'\"\n :checked=\"present\"\n :disabled=\"disabled\"\n class=\"opt\"\n @change=\"$emit('input', !present ? fallback : undefined)\"\n />\n <input\n :id=\"name\"\n class=\"input-number\"\n type=\"number\"\n :value=\"value || fallback\"\n :disabled=\"!present || disabled\"\n max=\"1\"\n min=\"0\"\n step=\".05\"\n @input=\"$emit('input', $event.target.value)\"\n >\n </div>\n</template>\n\n<script>\nimport Checkbox from '../checkbox/checkbox.vue'\nexport default {\n components: {\n Checkbox\n },\n props: [\n 'name', 'value', 'fallback', 'disabled'\n ],\n computed: {\n present () {\n return typeof this.value !== 'undefined'\n }\n }\n}\n</script>\n","/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./opacity_input.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./opacity_input.vue\"\n/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-3b48fa39\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./opacity_input.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"opacity-control style-control\",class:{ disabled: !_vm.present || _vm.disabled }},[_c('label',{staticClass:\"label\",attrs:{\"for\":_vm.name}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.style.common.opacity'))+\"\\n \")]),_vm._v(\" \"),(typeof _vm.fallback !== 'undefined')?_c('Checkbox',{staticClass:\"opt\",attrs:{\"checked\":_vm.present,\"disabled\":_vm.disabled},on:{\"change\":function($event){_vm.$emit('input', !_vm.present ? _vm.fallback : undefined)}}}):_vm._e(),_vm._v(\" \"),_c('input',{staticClass:\"input-number\",attrs:{\"id\":_vm.name,\"type\":\"number\",\"disabled\":!_vm.present || _vm.disabled,\"max\":\"1\",\"min\":\"0\",\"step\":\".05\"},domProps:{\"value\":_vm.value || _vm.fallback},on:{\"input\":function($event){_vm.$emit('input', $event.target.value)}}})],1)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import ColorInput from '../color_input/color_input.vue'\nimport OpacityInput from '../opacity_input/opacity_input.vue'\nimport { getCssShadow } from '../../services/style_setter/style_setter.js'\nimport { hex2rgb } from '../../services/color_convert/color_convert.js'\n\nconst toModel = (object = {}) => ({\n x: 0,\n y: 0,\n blur: 0,\n spread: 0,\n inset: false,\n color: '#000000',\n alpha: 1,\n ...object\n})\n\nexport default {\n // 'Value' and 'Fallback' can be undefined, but if they are\n // initially vue won't detect it when they become something else\n // therefore i'm using \"ready\" which should be passed as true when\n // data becomes available\n props: [\n 'value', 'fallback', 'ready'\n ],\n data () {\n return {\n selectedId: 0,\n // TODO there are some bugs regarding display of array (it's not getting updated when deleting for some reason)\n cValue: (this.value || this.fallback || []).map(toModel)\n }\n },\n components: {\n ColorInput,\n OpacityInput\n },\n methods: {\n add () {\n this.cValue.push(toModel(this.selected))\n this.selectedId = this.cValue.length - 1\n },\n del () {\n this.cValue.splice(this.selectedId, 1)\n this.selectedId = this.cValue.length === 0 ? undefined : Math.max(this.selectedId - 1, 0)\n },\n moveUp () {\n const movable = this.cValue.splice(this.selectedId, 1)[0]\n this.cValue.splice(this.selectedId - 1, 0, movable)\n this.selectedId -= 1\n },\n moveDn () {\n const movable = this.cValue.splice(this.selectedId, 1)[0]\n this.cValue.splice(this.selectedId + 1, 0, movable)\n this.selectedId += 1\n }\n },\n beforeUpdate () {\n this.cValue = this.value || this.fallback\n },\n computed: {\n anyShadows () {\n return this.cValue.length > 0\n },\n anyShadowsFallback () {\n return this.fallback.length > 0\n },\n selected () {\n if (this.ready && this.anyShadows) {\n return this.cValue[this.selectedId]\n } else {\n return toModel({})\n }\n },\n currentFallback () {\n if (this.ready && this.anyShadowsFallback) {\n return this.fallback[this.selectedId]\n } else {\n return toModel({})\n }\n },\n moveUpValid () {\n return this.ready && this.selectedId > 0\n },\n moveDnValid () {\n return this.ready && this.selectedId < this.cValue.length - 1\n },\n present () {\n return this.ready &&\n typeof this.cValue[this.selectedId] !== 'undefined' &&\n !this.usingFallback\n },\n usingFallback () {\n return typeof this.value === 'undefined'\n },\n rgb () {\n return hex2rgb(this.selected.color)\n },\n style () {\n return this.ready ? {\n boxShadow: getCssShadow(this.fallback)\n } : {}\n }\n }\n}\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./shadow_control.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./shadow_control.js\"\nimport __vue_script__ from \"!!babel-loader!./shadow_control.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-5c532734\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./shadow_control.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"shadow-control\",class:{ disabled: !_vm.present }},[_c('div',{staticClass:\"shadow-preview-container\"},[_c('div',{staticClass:\"y-shift-control\",attrs:{\"disabled\":!_vm.present}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selected.y),expression:\"selected.y\"}],staticClass:\"input-number\",attrs:{\"disabled\":!_vm.present,\"type\":\"number\"},domProps:{\"value\":(_vm.selected.y)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.selected, \"y\", $event.target.value)}}}),_vm._v(\" \"),_c('div',{staticClass:\"wrap\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selected.y),expression:\"selected.y\"}],staticClass:\"input-range\",attrs:{\"disabled\":!_vm.present,\"type\":\"range\",\"max\":\"20\",\"min\":\"-20\"},domProps:{\"value\":(_vm.selected.y)},on:{\"__r\":function($event){_vm.$set(_vm.selected, \"y\", $event.target.value)}}})])]),_vm._v(\" \"),_c('div',{staticClass:\"preview-window\"},[_c('div',{staticClass:\"preview-block\",style:(_vm.style)})]),_vm._v(\" \"),_c('div',{staticClass:\"x-shift-control\",attrs:{\"disabled\":!_vm.present}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selected.x),expression:\"selected.x\"}],staticClass:\"input-number\",attrs:{\"disabled\":!_vm.present,\"type\":\"number\"},domProps:{\"value\":(_vm.selected.x)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.selected, \"x\", $event.target.value)}}}),_vm._v(\" \"),_c('div',{staticClass:\"wrap\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selected.x),expression:\"selected.x\"}],staticClass:\"input-range\",attrs:{\"disabled\":!_vm.present,\"type\":\"range\",\"max\":\"20\",\"min\":\"-20\"},domProps:{\"value\":(_vm.selected.x)},on:{\"__r\":function($event){_vm.$set(_vm.selected, \"x\", $event.target.value)}}})])])]),_vm._v(\" \"),_c('div',{staticClass:\"shadow-tweak\"},[_c('div',{staticClass:\"id-control style-control\",attrs:{\"disabled\":_vm.usingFallback}},[_c('label',{staticClass:\"select\",attrs:{\"for\":\"shadow-switcher\",\"disabled\":!_vm.ready || _vm.usingFallback}},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selectedId),expression:\"selectedId\"}],staticClass:\"shadow-switcher\",attrs:{\"id\":\"shadow-switcher\",\"disabled\":!_vm.ready || _vm.usingFallback},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.selectedId=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.cValue),function(shadow,index){return _c('option',{key:index,domProps:{\"value\":index}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.style.shadows.shadow_id', { value: index }))+\"\\n \")])}),0),_vm._v(\" \"),_c('i',{staticClass:\"icon-down-open\"})]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-default\",attrs:{\"disabled\":!_vm.ready || !_vm.present},on:{\"click\":_vm.del}},[_c('i',{staticClass:\"icon-cancel\"})]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-default\",attrs:{\"disabled\":!_vm.moveUpValid},on:{\"click\":_vm.moveUp}},[_c('i',{staticClass:\"icon-up-open\"})]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-default\",attrs:{\"disabled\":!_vm.moveDnValid},on:{\"click\":_vm.moveDn}},[_c('i',{staticClass:\"icon-down-open\"})]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-default\",attrs:{\"disabled\":_vm.usingFallback},on:{\"click\":_vm.add}},[_c('i',{staticClass:\"icon-plus\"})])]),_vm._v(\" \"),_c('div',{staticClass:\"inset-control style-control\",attrs:{\"disabled\":!_vm.present}},[_c('label',{staticClass:\"label\",attrs:{\"for\":\"inset\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.style.shadows.inset'))+\"\\n \")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selected.inset),expression:\"selected.inset\"}],staticClass:\"input-inset\",attrs:{\"id\":\"inset\",\"disabled\":!_vm.present,\"name\":\"inset\",\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.selected.inset)?_vm._i(_vm.selected.inset,null)>-1:(_vm.selected.inset)},on:{\"change\":function($event){var $$a=_vm.selected.inset,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(_vm.selected, \"inset\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(_vm.selected, \"inset\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(_vm.selected, \"inset\", $$c)}}}}),_vm._v(\" \"),_c('label',{staticClass:\"checkbox-label\",attrs:{\"for\":\"inset\"}})]),_vm._v(\" \"),_c('div',{staticClass:\"blur-control style-control\",attrs:{\"disabled\":!_vm.present}},[_c('label',{staticClass:\"label\",attrs:{\"for\":\"spread\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.style.shadows.blur'))+\"\\n \")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selected.blur),expression:\"selected.blur\"}],staticClass:\"input-range\",attrs:{\"id\":\"blur\",\"disabled\":!_vm.present,\"name\":\"blur\",\"type\":\"range\",\"max\":\"20\",\"min\":\"0\"},domProps:{\"value\":(_vm.selected.blur)},on:{\"__r\":function($event){_vm.$set(_vm.selected, \"blur\", $event.target.value)}}}),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selected.blur),expression:\"selected.blur\"}],staticClass:\"input-number\",attrs:{\"disabled\":!_vm.present,\"type\":\"number\",\"min\":\"0\"},domProps:{\"value\":(_vm.selected.blur)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.selected, \"blur\", $event.target.value)}}})]),_vm._v(\" \"),_c('div',{staticClass:\"spread-control style-control\",attrs:{\"disabled\":!_vm.present}},[_c('label',{staticClass:\"label\",attrs:{\"for\":\"spread\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.style.shadows.spread'))+\"\\n \")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selected.spread),expression:\"selected.spread\"}],staticClass:\"input-range\",attrs:{\"id\":\"spread\",\"disabled\":!_vm.present,\"name\":\"spread\",\"type\":\"range\",\"max\":\"20\",\"min\":\"-20\"},domProps:{\"value\":(_vm.selected.spread)},on:{\"__r\":function($event){_vm.$set(_vm.selected, \"spread\", $event.target.value)}}}),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selected.spread),expression:\"selected.spread\"}],staticClass:\"input-number\",attrs:{\"disabled\":!_vm.present,\"type\":\"number\"},domProps:{\"value\":(_vm.selected.spread)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.selected, \"spread\", $event.target.value)}}})]),_vm._v(\" \"),_c('ColorInput',{attrs:{\"disabled\":!_vm.present,\"label\":_vm.$t('settings.style.common.color'),\"fallback\":_vm.currentFallback.color,\"show-optional-tickbox\":false,\"name\":\"shadow\"},model:{value:(_vm.selected.color),callback:function ($$v) {_vm.$set(_vm.selected, \"color\", $$v)},expression:\"selected.color\"}}),_vm._v(\" \"),_c('OpacityInput',{attrs:{\"disabled\":!_vm.present},model:{value:(_vm.selected.alpha),callback:function ($$v) {_vm.$set(_vm.selected, \"alpha\", $$v)},expression:\"selected.alpha\"}}),_vm._v(\" \"),_c('i18n',{attrs:{\"path\":\"settings.style.shadows.hintV3\",\"tag\":\"p\"}},[_c('code',[_vm._v(\"--variable,mod\")])])],1)])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import { set } from 'vue'\n\nexport default {\n props: [\n 'name', 'label', 'value', 'fallback', 'options', 'no-inherit'\n ],\n data () {\n return {\n lValue: this.value,\n availableOptions: [\n this.noInherit ? '' : 'inherit',\n 'custom',\n ...(this.options || []),\n 'serif',\n 'monospace',\n 'sans-serif'\n ].filter(_ => _)\n }\n },\n beforeUpdate () {\n this.lValue = this.value\n },\n computed: {\n present () {\n return typeof this.lValue !== 'undefined'\n },\n dValue () {\n return this.lValue || this.fallback || {}\n },\n family: {\n get () {\n return this.dValue.family\n },\n set (v) {\n set(this.lValue, 'family', v)\n this.$emit('input', this.lValue)\n }\n },\n isCustom () {\n return this.preset === 'custom'\n },\n preset: {\n get () {\n if (this.family === 'serif' ||\n this.family === 'sans-serif' ||\n this.family === 'monospace' ||\n this.family === 'inherit') {\n return this.family\n } else {\n return 'custom'\n }\n },\n set (v) {\n this.family = v === 'custom' ? '' : v\n }\n }\n }\n}\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./font_control.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./font_control.js\"\nimport __vue_script__ from \"!!babel-loader!./font_control.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-0edf8dfc\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./font_control.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"font-control style-control\",class:{ custom: _vm.isCustom }},[_c('label',{staticClass:\"label\",attrs:{\"for\":_vm.preset === 'custom' ? _vm.name : _vm.name + '-font-switcher'}},[_vm._v(\"\\n \"+_vm._s(_vm.label)+\"\\n \")]),_vm._v(\" \"),(typeof _vm.fallback !== 'undefined')?_c('input',{staticClass:\"opt exlcude-disabled\",attrs:{\"id\":_vm.name + '-o',\"type\":\"checkbox\"},domProps:{\"checked\":_vm.present},on:{\"input\":function($event){_vm.$emit('input', typeof _vm.value === 'undefined' ? _vm.fallback : undefined)}}}):_vm._e(),_vm._v(\" \"),(typeof _vm.fallback !== 'undefined')?_c('label',{staticClass:\"opt-l\",attrs:{\"for\":_vm.name + '-o'}}):_vm._e(),_vm._v(\" \"),_c('label',{staticClass:\"select\",attrs:{\"for\":_vm.name + '-font-switcher',\"disabled\":!_vm.present}},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.preset),expression:\"preset\"}],staticClass:\"font-switcher\",attrs:{\"id\":_vm.name + '-font-switcher',\"disabled\":!_vm.present},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.preset=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.availableOptions),function(option){return _c('option',{key:option,domProps:{\"value\":option}},[_vm._v(\"\\n \"+_vm._s(option === 'custom' ? _vm.$t('settings.style.fonts.custom') : option)+\"\\n \")])}),0),_vm._v(\" \"),_c('i',{staticClass:\"icon-down-open\"})]),_vm._v(\" \"),(_vm.isCustom)?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.family),expression:\"family\"}],staticClass:\"custom-font\",attrs:{\"id\":_vm.name,\"type\":\"text\"},domProps:{\"value\":(_vm.family)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.family=$event.target.value}}}):_vm._e()])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","<template>\n <span\n v-if=\"contrast\"\n class=\"contrast-ratio\"\n >\n <span\n :title=\"hint\"\n class=\"rating\"\n >\n <span v-if=\"contrast.aaa\">\n <i class=\"icon-thumbs-up-alt\" />\n </span>\n <span v-if=\"!contrast.aaa && contrast.aa\">\n <i class=\"icon-adjust\" />\n </span>\n <span v-if=\"!contrast.aaa && !contrast.aa\">\n <i class=\"icon-attention\" />\n </span>\n </span>\n <span\n v-if=\"contrast && large\"\n class=\"rating\"\n :title=\"hint_18pt\"\n >\n <span v-if=\"contrast.laaa\">\n <i class=\"icon-thumbs-up-alt\" />\n </span>\n <span v-if=\"!contrast.laaa && contrast.laa\">\n <i class=\"icon-adjust\" />\n </span>\n <span v-if=\"!contrast.laaa && !contrast.laa\">\n <i class=\"icon-attention\" />\n </span>\n </span>\n </span>\n</template>\n\n<script>\nexport default {\n props: {\n large: {\n required: false\n },\n // TODO: Make theme switcher compute theme initially so that contrast\n // component won't be called without contrast data\n contrast: {\n required: false,\n type: Object\n }\n },\n computed: {\n hint () {\n const levelVal = this.contrast.aaa ? 'aaa' : (this.contrast.aa ? 'aa' : 'bad')\n const level = this.$t(`settings.style.common.contrast.level.${levelVal}`)\n const context = this.$t('settings.style.common.contrast.context.text')\n const ratio = this.contrast.text\n return this.$t('settings.style.common.contrast.hint', { level, context, ratio })\n },\n hint_18pt () {\n const levelVal = this.contrast.laaa ? 'aaa' : (this.contrast.laa ? 'aa' : 'bad')\n const level = this.$t(`settings.style.common.contrast.level.${levelVal}`)\n const context = this.$t('settings.style.common.contrast.context.18pt')\n const ratio = this.contrast.text\n return this.$t('settings.style.common.contrast.hint', { level, context, ratio })\n }\n }\n}\n</script>\n\n<style lang=\"scss\">\n.contrast-ratio {\n display: flex;\n justify-content: flex-end;\n\n margin-top: -4px;\n margin-bottom: 5px;\n\n .label {\n margin-right: 1em;\n }\n\n .rating {\n display: inline-block;\n text-align: center;\n }\n}\n</style>\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./contrast_ratio.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./contrast_ratio.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./contrast_ratio.vue\"\n/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-2507acc6\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./contrast_ratio.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.contrast)?_c('span',{staticClass:\"contrast-ratio\"},[_c('span',{staticClass:\"rating\",attrs:{\"title\":_vm.hint}},[(_vm.contrast.aaa)?_c('span',[_c('i',{staticClass:\"icon-thumbs-up-alt\"})]):_vm._e(),_vm._v(\" \"),(!_vm.contrast.aaa && _vm.contrast.aa)?_c('span',[_c('i',{staticClass:\"icon-adjust\"})]):_vm._e(),_vm._v(\" \"),(!_vm.contrast.aaa && !_vm.contrast.aa)?_c('span',[_c('i',{staticClass:\"icon-attention\"})]):_vm._e()]),_vm._v(\" \"),(_vm.contrast && _vm.large)?_c('span',{staticClass:\"rating\",attrs:{\"title\":_vm.hint_18pt}},[(_vm.contrast.laaa)?_c('span',[_c('i',{staticClass:\"icon-thumbs-up-alt\"})]):_vm._e(),_vm._v(\" \"),(!_vm.contrast.laaa && _vm.contrast.laa)?_c('span',[_c('i',{staticClass:\"icon-adjust\"})]):_vm._e(),_vm._v(\" \"),(!_vm.contrast.laaa && !_vm.contrast.laa)?_c('span',[_c('i',{staticClass:\"icon-attention\"})]):_vm._e()]):_vm._e()]):_vm._e()}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./preview.vue\")\n}\n/* script */\nvar __vue_script__ = null\n/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-395e9872\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./preview.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"preview-container\"},[_c('div',{staticClass:\"underlay underlay-preview\"}),_vm._v(\" \"),_c('div',{staticClass:\"panel dummy\"},[_c('div',{staticClass:\"panel-heading\"},[_c('div',{staticClass:\"title\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.style.preview.header'))+\"\\n \"),_c('span',{staticClass:\"badge badge-notification\"},[_vm._v(\"\\n 99\\n \")])]),_vm._v(\" \"),_c('span',{staticClass:\"faint\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.style.preview.header_faint'))+\"\\n \")]),_vm._v(\" \"),_c('span',{staticClass:\"alert error\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.style.preview.error'))+\"\\n \")]),_vm._v(\" \"),_c('button',{staticClass:\"btn\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.style.preview.button'))+\"\\n \")])]),_vm._v(\" \"),_c('div',{staticClass:\"panel-body theme-preview-content\"},[_c('div',{staticClass:\"post\"},[_c('div',{staticClass:\"avatar still-image\"},[_vm._v(\"\\n ( ͡° ͜ʖ ͡°)\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"content\"},[_c('h4',[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.style.preview.content'))+\"\\n \")]),_vm._v(\" \"),_c('i18n',{attrs:{\"path\":\"settings.style.preview.text\"}},[_c('code',{staticStyle:{\"font-family\":\"var(--postCodeFont)\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.style.preview.mono'))+\"\\n \")]),_vm._v(\" \"),_c('a',{staticStyle:{\"color\":\"var(--link)\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.style.preview.link'))+\"\\n \")])]),_vm._v(\" \"),_vm._m(0)],1)]),_vm._v(\" \"),_c('div',{staticClass:\"after-post\"},[_c('div',{staticClass:\"avatar-alt\"},[_vm._v(\"\\n :^)\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"content\"},[_c('i18n',{staticClass:\"faint\",attrs:{\"path\":\"settings.style.preview.fine_print\",\"tag\":\"span\"}},[_c('a',{staticStyle:{\"color\":\"var(--faintLink)\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.style.preview.faint_link'))+\"\\n \")])])],1)]),_vm._v(\" \"),_c('div',{staticClass:\"separator\"}),_vm._v(\" \"),_c('span',{staticClass:\"alert error\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.style.preview.error'))+\"\\n \")]),_vm._v(\" \"),_c('input',{attrs:{\"type\":\"text\"},domProps:{\"value\":_vm.$t('settings.style.preview.input')}}),_vm._v(\" \"),_c('div',{staticClass:\"actions\"},[_c('span',{staticClass:\"checkbox\"},[_c('input',{attrs:{\"id\":\"preview_checkbox\",\"checked\":\"very yes\",\"type\":\"checkbox\"}}),_vm._v(\" \"),_c('label',{attrs:{\"for\":\"preview_checkbox\"}},[_vm._v(_vm._s(_vm.$t('settings.style.preview.checkbox')))])]),_vm._v(\" \"),_c('button',{staticClass:\"btn\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.style.preview.button'))+\"\\n \")])])])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"icons\"},[_c('i',{staticClass:\"button-icon icon-reply\",staticStyle:{\"color\":\"var(--cBlue)\"}}),_vm._v(\" \"),_c('i',{staticClass:\"button-icon icon-retweet\",staticStyle:{\"color\":\"var(--cGreen)\"}}),_vm._v(\" \"),_c('i',{staticClass:\"button-icon icon-star\",staticStyle:{\"color\":\"var(--cOrange)\"}}),_vm._v(\" \"),_c('i',{staticClass:\"button-icon icon-cancel\",staticStyle:{\"color\":\"var(--cRed)\"}})])}]\nexport { render, staticRenderFns }","<template>\n <div class=\"import-export-container\">\n <slot name=\"before\" />\n <button\n class=\"btn\"\n @click=\"exportData\"\n >\n {{ exportLabel }}\n </button>\n <button\n class=\"btn\"\n @click=\"importData\"\n >\n {{ importLabel }}\n </button>\n <slot name=\"afterButtons\" />\n <p\n v-if=\"importFailed\"\n class=\"alert error\"\n >\n {{ importFailedText }}\n </p>\n <slot name=\"afterError\" />\n </div>\n</template>\n\n<script>\nexport default {\n props: [\n 'exportObject',\n 'importLabel',\n 'exportLabel',\n 'importFailedText',\n 'validator',\n 'onImport',\n 'onImportFailure'\n ],\n data () {\n return {\n importFailed: false\n }\n },\n methods: {\n exportData () {\n const stringified = JSON.stringify(this.exportObject, null, 2) // Pretty-print and indent with 2 spaces\n\n // Create an invisible link with a data url and simulate a click\n const e = document.createElement('a')\n e.setAttribute('download', 'pleroma_theme.json')\n e.setAttribute('href', 'data:application/json;base64,' + window.btoa(stringified))\n e.style.display = 'none'\n\n document.body.appendChild(e)\n e.click()\n document.body.removeChild(e)\n },\n importData () {\n this.importFailed = false\n const filePicker = document.createElement('input')\n filePicker.setAttribute('type', 'file')\n filePicker.setAttribute('accept', '.json')\n\n filePicker.addEventListener('change', event => {\n if (event.target.files[0]) {\n // eslint-disable-next-line no-undef\n const reader = new FileReader()\n reader.onload = ({ target }) => {\n try {\n const parsed = JSON.parse(target.result)\n const valid = this.validator(parsed)\n if (valid) {\n this.onImport(parsed)\n } else {\n this.importFailed = true\n // this.onImportFailure(valid)\n }\n } catch (e) {\n // This will happen both if there is a JSON syntax error or the theme is missing components\n this.importFailed = true\n // this.onImportFailure(e)\n }\n }\n reader.readAsText(event.target.files[0])\n }\n })\n\n document.body.appendChild(filePicker)\n filePicker.click()\n document.body.removeChild(filePicker)\n }\n }\n}\n</script>\n\n<style lang=\"scss\">\n.import-export-container {\n display: flex;\n flex-wrap: wrap;\n align-items: baseline;\n justify-content: center;\n}\n</style>\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./export_import.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./export_import.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./export_import.vue\"\n/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-3d9b5a74\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./export_import.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"import-export-container\"},[_vm._t(\"before\"),_vm._v(\" \"),_c('button',{staticClass:\"btn\",on:{\"click\":_vm.exportData}},[_vm._v(\"\\n \"+_vm._s(_vm.exportLabel)+\"\\n \")]),_vm._v(\" \"),_c('button',{staticClass:\"btn\",on:{\"click\":_vm.importData}},[_vm._v(\"\\n \"+_vm._s(_vm.importLabel)+\"\\n \")]),_vm._v(\" \"),_vm._t(\"afterButtons\"),_vm._v(\" \"),(_vm.importFailed)?_c('p',{staticClass:\"alert error\"},[_vm._v(\"\\n \"+_vm._s(_vm.importFailedText)+\"\\n \")]):_vm._e(),_vm._v(\" \"),_vm._t(\"afterError\")],2)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import { set, delete as del } from 'vue'\nimport {\n rgb2hex,\n hex2rgb,\n getContrastRatioLayers\n} from '../../services/color_convert/color_convert.js'\nimport {\n DEFAULT_SHADOWS,\n generateColors,\n generateShadows,\n generateRadii,\n generateFonts,\n composePreset,\n getThemes,\n shadows2to3,\n colors2to3\n} from '../../services/style_setter/style_setter.js'\nimport {\n SLOT_INHERITANCE\n} from '../../services/theme_data/pleromafe.js'\nimport {\n CURRENT_VERSION,\n OPACITIES,\n getLayers,\n getOpacitySlot\n} from '../../services/theme_data/theme_data.service.js'\nimport ColorInput from '../color_input/color_input.vue'\nimport RangeInput from '../range_input/range_input.vue'\nimport OpacityInput from '../opacity_input/opacity_input.vue'\nimport ShadowControl from '../shadow_control/shadow_control.vue'\nimport FontControl from '../font_control/font_control.vue'\nimport ContrastRatio from '../contrast_ratio/contrast_ratio.vue'\nimport TabSwitcher from '../tab_switcher/tab_switcher.js'\nimport Preview from './preview.vue'\nimport ExportImport from '../export_import/export_import.vue'\nimport Checkbox from '../checkbox/checkbox.vue'\n\n// List of color values used in v1\nconst v1OnlyNames = [\n 'bg',\n 'fg',\n 'text',\n 'link',\n 'cRed',\n 'cGreen',\n 'cBlue',\n 'cOrange'\n].map(_ => _ + 'ColorLocal')\n\nconst colorConvert = (color) => {\n if (color.startsWith('--') || color === 'transparent') {\n return color\n } else {\n return hex2rgb(color)\n }\n}\n\nexport default {\n data () {\n return {\n availableStyles: [],\n selected: this.$store.getters.mergedConfig.theme,\n themeWarning: undefined,\n tempImportFile: undefined,\n engineVersion: 0,\n\n previewShadows: {},\n previewColors: {},\n previewRadii: {},\n previewFonts: {},\n\n shadowsInvalid: true,\n colorsInvalid: true,\n radiiInvalid: true,\n\n keepColor: false,\n keepShadows: false,\n keepOpacity: false,\n keepRoundness: false,\n keepFonts: false,\n\n ...Object.keys(SLOT_INHERITANCE)\n .map(key => [key, ''])\n .reduce((acc, [key, val]) => ({ ...acc, [ key + 'ColorLocal' ]: val }), {}),\n\n ...Object.keys(OPACITIES)\n .map(key => [key, ''])\n .reduce((acc, [key, val]) => ({ ...acc, [ key + 'OpacityLocal' ]: val }), {}),\n\n shadowSelected: undefined,\n shadowsLocal: {},\n fontsLocal: {},\n\n btnRadiusLocal: '',\n inputRadiusLocal: '',\n checkboxRadiusLocal: '',\n panelRadiusLocal: '',\n avatarRadiusLocal: '',\n avatarAltRadiusLocal: '',\n attachmentRadiusLocal: '',\n tooltipRadiusLocal: ''\n }\n },\n created () {\n const self = this\n\n getThemes()\n .then((promises) => {\n return Promise.all(\n Object.entries(promises)\n .map(([k, v]) => v.then(res => [k, res]))\n )\n })\n .then(themes => themes.reduce((acc, [k, v]) => {\n if (v) {\n return {\n ...acc,\n [k]: v\n }\n } else {\n return acc\n }\n }, {}))\n .then((themesComplete) => {\n self.availableStyles = themesComplete\n })\n },\n mounted () {\n this.loadThemeFromLocalStorage()\n if (typeof this.shadowSelected === 'undefined') {\n this.shadowSelected = this.shadowsAvailable[0]\n }\n },\n computed: {\n themeWarningHelp () {\n if (!this.themeWarning) return\n const t = this.$t\n const pre = 'settings.style.switcher.help.'\n const {\n origin,\n themeEngineVersion,\n type,\n noActionsPossible\n } = this.themeWarning\n if (origin === 'file') {\n // Loaded v2 theme from file\n if (themeEngineVersion === 2 && type === 'wrong_version') {\n return t(pre + 'v2_imported')\n }\n if (themeEngineVersion > CURRENT_VERSION) {\n return t(pre + 'future_version_imported') + ' ' +\n (\n noActionsPossible\n ? t(pre + 'snapshot_missing')\n : t(pre + 'snapshot_present')\n )\n }\n if (themeEngineVersion < CURRENT_VERSION) {\n return t(pre + 'future_version_imported') + ' ' +\n (\n noActionsPossible\n ? t(pre + 'snapshot_missing')\n : t(pre + 'snapshot_present')\n )\n }\n } else if (origin === 'localStorage') {\n if (type === 'snapshot_source_mismatch') {\n return t(pre + 'snapshot_source_mismatch')\n }\n // FE upgraded from v2\n if (themeEngineVersion === 2) {\n return t(pre + 'upgraded_from_v2')\n }\n // Admin downgraded FE\n if (themeEngineVersion > CURRENT_VERSION) {\n return t(pre + 'fe_downgraded') + ' ' +\n (\n noActionsPossible\n ? t(pre + 'migration_snapshot_ok')\n : t(pre + 'migration_snapshot_gone')\n )\n }\n // Admin upgraded FE\n if (themeEngineVersion < CURRENT_VERSION) {\n return t(pre + 'fe_upgraded') + ' ' +\n (\n noActionsPossible\n ? t(pre + 'migration_snapshot_ok')\n : t(pre + 'migration_snapshot_gone')\n )\n }\n }\n },\n selectedVersion () {\n return Array.isArray(this.selected) ? 1 : 2\n },\n currentColors () {\n return Object.keys(SLOT_INHERITANCE)\n .map(key => [key, this[key + 'ColorLocal']])\n .reduce((acc, [key, val]) => ({ ...acc, [ key ]: val }), {})\n },\n currentOpacity () {\n return Object.keys(OPACITIES)\n .map(key => [key, this[key + 'OpacityLocal']])\n .reduce((acc, [key, val]) => ({ ...acc, [ key ]: val }), {})\n },\n currentRadii () {\n return {\n btn: this.btnRadiusLocal,\n input: this.inputRadiusLocal,\n checkbox: this.checkboxRadiusLocal,\n panel: this.panelRadiusLocal,\n avatar: this.avatarRadiusLocal,\n avatarAlt: this.avatarAltRadiusLocal,\n tooltip: this.tooltipRadiusLocal,\n attachment: this.attachmentRadiusLocal\n }\n },\n preview () {\n return composePreset(this.previewColors, this.previewRadii, this.previewShadows, this.previewFonts)\n },\n previewTheme () {\n if (!this.preview.theme.colors) return { colors: {}, opacity: {}, radii: {}, shadows: {}, fonts: {} }\n return this.preview.theme\n },\n // This needs optimization maybe\n previewContrast () {\n try {\n if (!this.previewTheme.colors.bg) return {}\n const colors = this.previewTheme.colors\n const opacity = this.previewTheme.opacity\n if (!colors.bg) return {}\n const hints = (ratio) => ({\n text: ratio.toPrecision(3) + ':1',\n // AA level, AAA level\n aa: ratio >= 4.5,\n aaa: ratio >= 7,\n // same but for 18pt+ texts\n laa: ratio >= 3,\n laaa: ratio >= 4.5\n })\n const colorsConverted = Object.entries(colors).reduce((acc, [key, value]) => ({ ...acc, [key]: colorConvert(value) }), {})\n\n const ratios = Object.entries(SLOT_INHERITANCE).reduce((acc, [key, value]) => {\n const slotIsBaseText = key === 'text' || key === 'link'\n const slotIsText = slotIsBaseText || (\n typeof value === 'object' && value !== null && value.textColor\n )\n if (!slotIsText) return acc\n const { layer, variant } = slotIsBaseText ? { layer: 'bg' } : value\n const background = variant || layer\n const opacitySlot = getOpacitySlot(background)\n const textColors = [\n key,\n ...(background === 'bg' ? ['cRed', 'cGreen', 'cBlue', 'cOrange'] : [])\n ]\n\n const layers = getLayers(\n layer,\n variant || layer,\n opacitySlot,\n colorsConverted,\n opacity\n )\n\n return {\n ...acc,\n ...textColors.reduce((acc, textColorKey) => {\n const newKey = slotIsBaseText\n ? 'bg' + textColorKey[0].toUpperCase() + textColorKey.slice(1)\n : textColorKey\n return {\n ...acc,\n [newKey]: getContrastRatioLayers(\n colorsConverted[textColorKey],\n layers,\n colorsConverted[textColorKey]\n )\n }\n }, {})\n }\n }, {})\n\n return Object.entries(ratios).reduce((acc, [k, v]) => { acc[k] = hints(v); return acc }, {})\n } catch (e) {\n console.warn('Failure computing contrasts', e)\n }\n },\n previewRules () {\n if (!this.preview.rules) return ''\n return [\n ...Object.values(this.preview.rules),\n 'color: var(--text)',\n 'font-family: var(--interfaceFont, sans-serif)'\n ].join(';')\n },\n shadowsAvailable () {\n return Object.keys(DEFAULT_SHADOWS).sort()\n },\n currentShadowOverriden: {\n get () {\n return !!this.currentShadow\n },\n set (val) {\n if (val) {\n set(this.shadowsLocal, this.shadowSelected, this.currentShadowFallback.map(_ => Object.assign({}, _)))\n } else {\n del(this.shadowsLocal, this.shadowSelected)\n }\n }\n },\n currentShadowFallback () {\n return (this.previewTheme.shadows || {})[this.shadowSelected]\n },\n currentShadow: {\n get () {\n return this.shadowsLocal[this.shadowSelected]\n },\n set (v) {\n set(this.shadowsLocal, this.shadowSelected, v)\n }\n },\n themeValid () {\n return !this.shadowsInvalid && !this.colorsInvalid && !this.radiiInvalid\n },\n exportedTheme () {\n const saveEverything = (\n !this.keepFonts &&\n !this.keepShadows &&\n !this.keepOpacity &&\n !this.keepRoundness &&\n !this.keepColor\n )\n\n const source = {\n themeEngineVersion: CURRENT_VERSION\n }\n\n if (this.keepFonts || saveEverything) {\n source.fonts = this.fontsLocal\n }\n if (this.keepShadows || saveEverything) {\n source.shadows = this.shadowsLocal\n }\n if (this.keepOpacity || saveEverything) {\n source.opacity = this.currentOpacity\n }\n if (this.keepColor || saveEverything) {\n source.colors = this.currentColors\n }\n if (this.keepRoundness || saveEverything) {\n source.radii = this.currentRadii\n }\n\n const theme = {\n themeEngineVersion: CURRENT_VERSION,\n ...this.previewTheme\n }\n\n return {\n // To separate from other random JSON files and possible future source formats\n _pleroma_theme_version: 2, theme, source\n }\n }\n },\n components: {\n ColorInput,\n OpacityInput,\n RangeInput,\n ContrastRatio,\n ShadowControl,\n FontControl,\n TabSwitcher,\n Preview,\n ExportImport,\n Checkbox\n },\n methods: {\n loadTheme (\n {\n theme,\n source,\n _pleroma_theme_version: fileVersion\n },\n origin,\n forceUseSource = false\n ) {\n this.dismissWarning()\n if (!source && !theme) {\n throw new Error('Can\\'t load theme: empty')\n }\n const version = (origin === 'localStorage' && !theme.colors)\n ? 'l1'\n : fileVersion\n const snapshotEngineVersion = (theme || {}).themeEngineVersion\n const themeEngineVersion = (source || {}).themeEngineVersion || 2\n const versionsMatch = themeEngineVersion === CURRENT_VERSION\n const sourceSnapshotMismatch = (\n theme !== undefined &&\n source !== undefined &&\n themeEngineVersion !== snapshotEngineVersion\n )\n // Force loading of source if user requested it or if snapshot\n // is unavailable\n const forcedSourceLoad = (source && forceUseSource) || !theme\n if (!(versionsMatch && !sourceSnapshotMismatch) &&\n !forcedSourceLoad &&\n version !== 'l1' &&\n origin !== 'defaults'\n ) {\n if (sourceSnapshotMismatch && origin === 'localStorage') {\n this.themeWarning = {\n origin,\n themeEngineVersion,\n type: 'snapshot_source_mismatch'\n }\n } else if (!theme) {\n this.themeWarning = {\n origin,\n noActionsPossible: true,\n themeEngineVersion,\n type: 'no_snapshot_old_version'\n }\n } else if (!versionsMatch) {\n this.themeWarning = {\n origin,\n noActionsPossible: !source,\n themeEngineVersion,\n type: 'wrong_version'\n }\n }\n }\n this.normalizeLocalState(theme, version, source, forcedSourceLoad)\n },\n forceLoadLocalStorage () {\n this.loadThemeFromLocalStorage(true)\n },\n dismissWarning () {\n this.themeWarning = undefined\n this.tempImportFile = undefined\n },\n forceLoad () {\n const { origin } = this.themeWarning\n switch (origin) {\n case 'localStorage':\n this.loadThemeFromLocalStorage(true)\n break\n case 'file':\n this.onImport(this.tempImportFile, true)\n break\n }\n this.dismissWarning()\n },\n forceSnapshot () {\n const { origin } = this.themeWarning\n switch (origin) {\n case 'localStorage':\n this.loadThemeFromLocalStorage(false, true)\n break\n case 'file':\n console.err('Forcing snapshout from file is not supported yet')\n break\n }\n this.dismissWarning()\n },\n loadThemeFromLocalStorage (confirmLoadSource = false, forceSnapshot = false) {\n const {\n customTheme: theme,\n customThemeSource: source\n } = this.$store.getters.mergedConfig\n if (!theme && !source) {\n // Anon user or never touched themes\n this.loadTheme(\n this.$store.state.instance.themeData,\n 'defaults',\n confirmLoadSource\n )\n } else {\n this.loadTheme(\n {\n theme,\n source: forceSnapshot ? theme : source\n },\n 'localStorage',\n confirmLoadSource\n )\n }\n },\n setCustomTheme () {\n this.$store.dispatch('setOption', {\n name: 'customTheme',\n value: {\n themeEngineVersion: CURRENT_VERSION,\n ...this.previewTheme\n }\n })\n this.$store.dispatch('setOption', {\n name: 'customThemeSource',\n value: {\n themeEngineVersion: CURRENT_VERSION,\n shadows: this.shadowsLocal,\n fonts: this.fontsLocal,\n opacity: this.currentOpacity,\n colors: this.currentColors,\n radii: this.currentRadii\n }\n })\n },\n updatePreviewColorsAndShadows () {\n this.previewColors = generateColors({\n opacity: this.currentOpacity,\n colors: this.currentColors\n })\n this.previewShadows = generateShadows(\n { shadows: this.shadowsLocal, opacity: this.previewTheme.opacity, themeEngineVersion: this.engineVersion },\n this.previewColors.theme.colors,\n this.previewColors.mod\n )\n },\n onImport (parsed, forceSource = false) {\n this.tempImportFile = parsed\n this.loadTheme(parsed, 'file', forceSource)\n },\n importValidator (parsed) {\n const version = parsed._pleroma_theme_version\n return version >= 1 || version <= 2\n },\n clearAll () {\n this.loadThemeFromLocalStorage()\n },\n\n // Clears all the extra stuff when loading V1 theme\n clearV1 () {\n Object.keys(this.$data)\n .filter(_ => _.endsWith('ColorLocal') || _.endsWith('OpacityLocal'))\n .filter(_ => !v1OnlyNames.includes(_))\n .forEach(key => {\n set(this.$data, key, undefined)\n })\n },\n\n clearRoundness () {\n Object.keys(this.$data)\n .filter(_ => _.endsWith('RadiusLocal'))\n .forEach(key => {\n set(this.$data, key, undefined)\n })\n },\n\n clearOpacity () {\n Object.keys(this.$data)\n .filter(_ => _.endsWith('OpacityLocal'))\n .forEach(key => {\n set(this.$data, key, undefined)\n })\n },\n\n clearShadows () {\n this.shadowsLocal = {}\n },\n\n clearFonts () {\n this.fontsLocal = {}\n },\n\n /**\n * This applies stored theme data onto form. Supports three versions of data:\n * v3 (version >= 3) - newest version of themes which supports snapshots for better compatiblity\n * v2 (version = 2) - newer version of themes.\n * v1 (version = 1) - older version of themes (import from file)\n * v1l (version = l1) - older version of theme (load from local storage)\n * v1 and v1l differ because of way themes were stored/exported.\n * @param {Object} theme - theme data (snapshot)\n * @param {Number} version - version of data. 0 means try to guess based on data. \"l1\" means v1, locastorage type\n * @param {Object} source - theme source - this will be used if compatible\n * @param {Boolean} source - by default source won't be used if version doesn't match since it might render differently\n * this allows importing source anyway\n */\n normalizeLocalState (theme, version = 0, source, forceSource = false) {\n let input\n if (typeof source !== 'undefined') {\n if (forceSource || source.themeEngineVersion === CURRENT_VERSION) {\n input = source\n version = source.themeEngineVersion\n } else {\n input = theme\n }\n } else {\n input = theme\n }\n\n const radii = input.radii || input\n const opacity = input.opacity\n const shadows = input.shadows || {}\n const fonts = input.fonts || {}\n const colors = !input.themeEngineVersion\n ? colors2to3(input.colors || input)\n : input.colors || input\n\n if (version === 0) {\n if (input.version) version = input.version\n // Old v1 naming: fg is text, btn is foreground\n if (typeof colors.text === 'undefined' && typeof colors.fg !== 'undefined') {\n version = 1\n }\n // New v2 naming: text is text, fg is foreground\n if (typeof colors.text !== 'undefined' && typeof colors.fg !== 'undefined') {\n version = 2\n }\n }\n\n this.engineVersion = version\n\n // Stuff that differs between V1 and V2\n if (version === 1) {\n this.fgColorLocal = rgb2hex(colors.btn)\n this.textColorLocal = rgb2hex(colors.fg)\n }\n\n if (!this.keepColor) {\n this.clearV1()\n const keys = new Set(version !== 1 ? Object.keys(SLOT_INHERITANCE) : [])\n if (version === 1 || version === 'l1') {\n keys\n .add('bg')\n .add('link')\n .add('cRed')\n .add('cBlue')\n .add('cGreen')\n .add('cOrange')\n }\n\n keys.forEach(key => {\n const color = colors[key]\n const hex = rgb2hex(colors[key])\n this[key + 'ColorLocal'] = hex === '#aN' ? color : hex\n })\n }\n\n if (opacity && !this.keepOpacity) {\n this.clearOpacity()\n Object.entries(opacity).forEach(([k, v]) => {\n if (typeof v === 'undefined' || v === null || Number.isNaN(v)) return\n this[k + 'OpacityLocal'] = v\n })\n }\n\n if (!this.keepRoundness) {\n this.clearRoundness()\n Object.entries(radii).forEach(([k, v]) => {\n // 'Radius' is kept mostly for v1->v2 localstorage transition\n const key = k.endsWith('Radius') ? k.split('Radius')[0] : k\n this[key + 'RadiusLocal'] = v\n })\n }\n\n if (!this.keepShadows) {\n this.clearShadows()\n if (version === 2) {\n this.shadowsLocal = shadows2to3(shadows, this.previewTheme.opacity)\n } else {\n this.shadowsLocal = shadows\n }\n this.shadowSelected = this.shadowsAvailable[0]\n }\n\n if (!this.keepFonts) {\n this.clearFonts()\n this.fontsLocal = fonts\n }\n }\n },\n watch: {\n currentRadii () {\n try {\n this.previewRadii = generateRadii({ radii: this.currentRadii })\n this.radiiInvalid = false\n } catch (e) {\n this.radiiInvalid = true\n console.warn(e)\n }\n },\n shadowsLocal: {\n handler () {\n if (Object.getOwnPropertyNames(this.previewColors).length === 1) return\n try {\n this.updatePreviewColorsAndShadows()\n this.shadowsInvalid = false\n } catch (e) {\n this.shadowsInvalid = true\n console.warn(e)\n }\n },\n deep: true\n },\n fontsLocal: {\n handler () {\n try {\n this.previewFonts = generateFonts({ fonts: this.fontsLocal })\n this.fontsInvalid = false\n } catch (e) {\n this.fontsInvalid = true\n console.warn(e)\n }\n },\n deep: true\n },\n currentColors () {\n try {\n this.updatePreviewColorsAndShadows()\n this.colorsInvalid = false\n this.shadowsInvalid = false\n } catch (e) {\n this.colorsInvalid = true\n this.shadowsInvalid = true\n console.warn(e)\n }\n },\n currentOpacity () {\n try {\n this.updatePreviewColorsAndShadows()\n } catch (e) {\n console.warn(e)\n }\n },\n selected () {\n this.dismissWarning()\n if (this.selectedVersion === 1) {\n if (!this.keepRoundness) {\n this.clearRoundness()\n }\n\n if (!this.keepShadows) {\n this.clearShadows()\n }\n\n if (!this.keepOpacity) {\n this.clearOpacity()\n }\n\n if (!this.keepColor) {\n this.clearV1()\n\n this.bgColorLocal = this.selected[1]\n this.fgColorLocal = this.selected[2]\n this.textColorLocal = this.selected[3]\n this.linkColorLocal = this.selected[4]\n this.cRedColorLocal = this.selected[5]\n this.cGreenColorLocal = this.selected[6]\n this.cBlueColorLocal = this.selected[7]\n this.cOrangeColorLocal = this.selected[8]\n }\n } else if (this.selectedVersion >= 2) {\n this.normalizeLocalState(this.selected.theme, 2, this.selected.source)\n }\n }\n }\n}\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!./style_switcher.scss\")\n}\n/* script */\nexport * from \"!!babel-loader!./style_switcher.js\"\nimport __vue_script__ from \"!!babel-loader!./style_switcher.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-4263524f\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./style_switcher.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"style-switcher\"},[_c('div',{staticClass:\"presets-container\"},[_c('div',{staticClass:\"save-load\"},[(_vm.themeWarning)?_c('div',{staticClass:\"theme-warning\"},[_c('div',{staticClass:\"alert warning\"},[_vm._v(\"\\n \"+_vm._s(_vm.themeWarningHelp)+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"buttons\"},[(_vm.themeWarning.type === 'snapshot_source_mismatch')?[_c('button',{staticClass:\"btn\",on:{\"click\":_vm.forceLoad}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.style.switcher.use_source'))+\"\\n \")]),_vm._v(\" \"),_c('button',{staticClass:\"btn\",on:{\"click\":_vm.forceSnapshot}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.style.switcher.use_snapshot'))+\"\\n \")])]:(_vm.themeWarning.noActionsPossible)?[_c('button',{staticClass:\"btn\",on:{\"click\":_vm.dismissWarning}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('general.dismiss'))+\"\\n \")])]:[_c('button',{staticClass:\"btn\",on:{\"click\":_vm.forceLoad}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.style.switcher.load_theme'))+\"\\n \")]),_vm._v(\" \"),_c('button',{staticClass:\"btn\",on:{\"click\":_vm.dismissWarning}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.style.switcher.keep_as_is'))+\"\\n \")])]],2)]):_vm._e(),_vm._v(\" \"),_c('ExportImport',{attrs:{\"export-object\":_vm.exportedTheme,\"export-label\":_vm.$t(\"settings.export_theme\"),\"import-label\":_vm.$t(\"settings.import_theme\"),\"import-failed-text\":_vm.$t(\"settings.invalid_theme_imported\"),\"on-import\":_vm.onImport,\"validator\":_vm.importValidator}},[_c('template',{slot:\"before\"},[_c('div',{staticClass:\"presets\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.presets'))+\"\\n \"),_c('label',{staticClass:\"select\",attrs:{\"for\":\"preset-switcher\"}},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selected),expression:\"selected\"}],staticClass:\"preset-switcher\",attrs:{\"id\":\"preset-switcher\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.selected=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.availableStyles),function(style){return _c('option',{key:style.name,style:({\n backgroundColor: style[1] || (style.theme || style.source).colors.bg,\n color: style[3] || (style.theme || style.source).colors.text\n }),domProps:{\"value\":style}},[_vm._v(\"\\n \"+_vm._s(style[0] || style.name)+\"\\n \")])}),0),_vm._v(\" \"),_c('i',{staticClass:\"icon-down-open\"})])])])],2)],1),_vm._v(\" \"),_c('div',{staticClass:\"save-load-options\"},[_c('span',{staticClass:\"keep-option\"},[_c('Checkbox',{model:{value:(_vm.keepColor),callback:function ($$v) {_vm.keepColor=$$v},expression:\"keepColor\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.style.switcher.keep_color'))+\"\\n \")])],1),_vm._v(\" \"),_c('span',{staticClass:\"keep-option\"},[_c('Checkbox',{model:{value:(_vm.keepShadows),callback:function ($$v) {_vm.keepShadows=$$v},expression:\"keepShadows\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.style.switcher.keep_shadows'))+\"\\n \")])],1),_vm._v(\" \"),_c('span',{staticClass:\"keep-option\"},[_c('Checkbox',{model:{value:(_vm.keepOpacity),callback:function ($$v) {_vm.keepOpacity=$$v},expression:\"keepOpacity\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.style.switcher.keep_opacity'))+\"\\n \")])],1),_vm._v(\" \"),_c('span',{staticClass:\"keep-option\"},[_c('Checkbox',{model:{value:(_vm.keepRoundness),callback:function ($$v) {_vm.keepRoundness=$$v},expression:\"keepRoundness\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.style.switcher.keep_roundness'))+\"\\n \")])],1),_vm._v(\" \"),_c('span',{staticClass:\"keep-option\"},[_c('Checkbox',{model:{value:(_vm.keepFonts),callback:function ($$v) {_vm.keepFonts=$$v},expression:\"keepFonts\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.style.switcher.keep_fonts'))+\"\\n \")])],1),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('settings.style.switcher.save_load_hint')))])])]),_vm._v(\" \"),_c('preview',{style:(_vm.previewRules)}),_vm._v(\" \"),_c('keep-alive',[_c('tab-switcher',{key:\"style-tweak\"},[_c('div',{staticClass:\"color-container\",attrs:{\"label\":_vm.$t('settings.style.common_colors._tab_label')}},[_c('div',{staticClass:\"tab-header\"},[_c('p',[_vm._v(_vm._s(_vm.$t('settings.theme_help')))]),_vm._v(\" \"),_c('button',{staticClass:\"btn\",on:{\"click\":_vm.clearOpacity}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.style.switcher.clear_opacity'))+\"\\n \")]),_vm._v(\" \"),_c('button',{staticClass:\"btn\",on:{\"click\":_vm.clearV1}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.style.switcher.clear_all'))+\"\\n \")])]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('settings.theme_help_v2_1')))]),_vm._v(\" \"),_c('h4',[_vm._v(_vm._s(_vm.$t('settings.style.common_colors.main')))]),_vm._v(\" \"),_c('div',{staticClass:\"color-item\"},[_c('ColorInput',{attrs:{\"name\":\"bgColor\",\"label\":_vm.$t('settings.background')},model:{value:(_vm.bgColorLocal),callback:function ($$v) {_vm.bgColorLocal=$$v},expression:\"bgColorLocal\"}}),_vm._v(\" \"),_c('OpacityInput',{attrs:{\"name\":\"bgOpacity\",\"fallback\":_vm.previewTheme.opacity.bg},model:{value:(_vm.bgOpacityLocal),callback:function ($$v) {_vm.bgOpacityLocal=$$v},expression:\"bgOpacityLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"textColor\",\"label\":_vm.$t('settings.text')},model:{value:(_vm.textColorLocal),callback:function ($$v) {_vm.textColorLocal=$$v},expression:\"textColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.bgText}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"accentColor\",\"fallback\":_vm.previewTheme.colors.link,\"label\":_vm.$t('settings.accent'),\"show-optional-tickbox\":typeof _vm.linkColorLocal !== 'undefined'},model:{value:(_vm.accentColorLocal),callback:function ($$v) {_vm.accentColorLocal=$$v},expression:\"accentColorLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"linkColor\",\"fallback\":_vm.previewTheme.colors.accent,\"label\":_vm.$t('settings.links'),\"show-optional-tickbox\":typeof _vm.accentColorLocal !== 'undefined'},model:{value:(_vm.linkColorLocal),callback:function ($$v) {_vm.linkColorLocal=$$v},expression:\"linkColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.bgLink}})],1),_vm._v(\" \"),_c('div',{staticClass:\"color-item\"},[_c('ColorInput',{attrs:{\"name\":\"fgColor\",\"label\":_vm.$t('settings.foreground')},model:{value:(_vm.fgColorLocal),callback:function ($$v) {_vm.fgColorLocal=$$v},expression:\"fgColorLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"fgTextColor\",\"label\":_vm.$t('settings.text'),\"fallback\":_vm.previewTheme.colors.fgText},model:{value:(_vm.fgTextColorLocal),callback:function ($$v) {_vm.fgTextColorLocal=$$v},expression:\"fgTextColorLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"fgLinkColor\",\"label\":_vm.$t('settings.links'),\"fallback\":_vm.previewTheme.colors.fgLink},model:{value:(_vm.fgLinkColorLocal),callback:function ($$v) {_vm.fgLinkColorLocal=$$v},expression:\"fgLinkColorLocal\"}}),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('settings.style.common_colors.foreground_hint')))])],1),_vm._v(\" \"),_c('h4',[_vm._v(_vm._s(_vm.$t('settings.style.common_colors.rgbo')))]),_vm._v(\" \"),_c('div',{staticClass:\"color-item\"},[_c('ColorInput',{attrs:{\"name\":\"cRedColor\",\"label\":_vm.$t('settings.cRed')},model:{value:(_vm.cRedColorLocal),callback:function ($$v) {_vm.cRedColorLocal=$$v},expression:\"cRedColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.bgCRed}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"cBlueColor\",\"label\":_vm.$t('settings.cBlue')},model:{value:(_vm.cBlueColorLocal),callback:function ($$v) {_vm.cBlueColorLocal=$$v},expression:\"cBlueColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.bgCBlue}})],1),_vm._v(\" \"),_c('div',{staticClass:\"color-item\"},[_c('ColorInput',{attrs:{\"name\":\"cGreenColor\",\"label\":_vm.$t('settings.cGreen')},model:{value:(_vm.cGreenColorLocal),callback:function ($$v) {_vm.cGreenColorLocal=$$v},expression:\"cGreenColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.bgCGreen}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"cOrangeColor\",\"label\":_vm.$t('settings.cOrange')},model:{value:(_vm.cOrangeColorLocal),callback:function ($$v) {_vm.cOrangeColorLocal=$$v},expression:\"cOrangeColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.bgCOrange}})],1),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('settings.theme_help_v2_2')))])]),_vm._v(\" \"),_c('div',{staticClass:\"color-container\",attrs:{\"label\":_vm.$t('settings.style.advanced_colors._tab_label')}},[_c('div',{staticClass:\"tab-header\"},[_c('p',[_vm._v(_vm._s(_vm.$t('settings.theme_help')))]),_vm._v(\" \"),_c('button',{staticClass:\"btn\",on:{\"click\":_vm.clearOpacity}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.style.switcher.clear_opacity'))+\"\\n \")]),_vm._v(\" \"),_c('button',{staticClass:\"btn\",on:{\"click\":_vm.clearV1}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.style.switcher.clear_all'))+\"\\n \")])]),_vm._v(\" \"),_c('div',{staticClass:\"color-item\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('settings.style.advanced_colors.post')))]),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"postLinkColor\",\"fallback\":_vm.previewTheme.colors.accent,\"label\":_vm.$t('settings.links')},model:{value:(_vm.postLinkColorLocal),callback:function ($$v) {_vm.postLinkColorLocal=$$v},expression:\"postLinkColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.postLink}}),_vm._v(\" \"),_c('h4',[_vm._v(_vm._s(_vm.$t('settings.style.advanced_colors.alert')))]),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"alertError\",\"label\":_vm.$t('settings.style.advanced_colors.alert_error'),\"fallback\":_vm.previewTheme.colors.alertError},model:{value:(_vm.alertErrorColorLocal),callback:function ($$v) {_vm.alertErrorColorLocal=$$v},expression:\"alertErrorColorLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"alertErrorText\",\"label\":_vm.$t('settings.text'),\"fallback\":_vm.previewTheme.colors.alertErrorText},model:{value:(_vm.alertErrorTextColorLocal),callback:function ($$v) {_vm.alertErrorTextColorLocal=$$v},expression:\"alertErrorTextColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.alertErrorText,\"large\":\"true\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"alertWarning\",\"label\":_vm.$t('settings.style.advanced_colors.alert_warning'),\"fallback\":_vm.previewTheme.colors.alertWarning},model:{value:(_vm.alertWarningColorLocal),callback:function ($$v) {_vm.alertWarningColorLocal=$$v},expression:\"alertWarningColorLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"alertWarningText\",\"label\":_vm.$t('settings.text'),\"fallback\":_vm.previewTheme.colors.alertWarningText},model:{value:(_vm.alertWarningTextColorLocal),callback:function ($$v) {_vm.alertWarningTextColorLocal=$$v},expression:\"alertWarningTextColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.alertWarningText,\"large\":\"true\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"alertNeutral\",\"label\":_vm.$t('settings.style.advanced_colors.alert_neutral'),\"fallback\":_vm.previewTheme.colors.alertNeutral},model:{value:(_vm.alertNeutralColorLocal),callback:function ($$v) {_vm.alertNeutralColorLocal=$$v},expression:\"alertNeutralColorLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"alertNeutralText\",\"label\":_vm.$t('settings.text'),\"fallback\":_vm.previewTheme.colors.alertNeutralText},model:{value:(_vm.alertNeutralTextColorLocal),callback:function ($$v) {_vm.alertNeutralTextColorLocal=$$v},expression:\"alertNeutralTextColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.alertNeutralText,\"large\":\"true\"}}),_vm._v(\" \"),_c('OpacityInput',{attrs:{\"name\":\"alertOpacity\",\"fallback\":_vm.previewTheme.opacity.alert},model:{value:(_vm.alertOpacityLocal),callback:function ($$v) {_vm.alertOpacityLocal=$$v},expression:\"alertOpacityLocal\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"color-item\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('settings.style.advanced_colors.badge')))]),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"badgeNotification\",\"label\":_vm.$t('settings.style.advanced_colors.badge_notification'),\"fallback\":_vm.previewTheme.colors.badgeNotification},model:{value:(_vm.badgeNotificationColorLocal),callback:function ($$v) {_vm.badgeNotificationColorLocal=$$v},expression:\"badgeNotificationColorLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"badgeNotificationText\",\"label\":_vm.$t('settings.text'),\"fallback\":_vm.previewTheme.colors.badgeNotificationText},model:{value:(_vm.badgeNotificationTextColorLocal),callback:function ($$v) {_vm.badgeNotificationTextColorLocal=$$v},expression:\"badgeNotificationTextColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.badgeNotificationText,\"large\":\"true\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"color-item\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('settings.style.advanced_colors.panel_header')))]),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"panelColor\",\"fallback\":_vm.previewTheme.colors.panel,\"label\":_vm.$t('settings.background')},model:{value:(_vm.panelColorLocal),callback:function ($$v) {_vm.panelColorLocal=$$v},expression:\"panelColorLocal\"}}),_vm._v(\" \"),_c('OpacityInput',{attrs:{\"name\":\"panelOpacity\",\"fallback\":_vm.previewTheme.opacity.panel,\"disabled\":_vm.panelColorLocal === 'transparent'},model:{value:(_vm.panelOpacityLocal),callback:function ($$v) {_vm.panelOpacityLocal=$$v},expression:\"panelOpacityLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"panelTextColor\",\"fallback\":_vm.previewTheme.colors.panelText,\"label\":_vm.$t('settings.text')},model:{value:(_vm.panelTextColorLocal),callback:function ($$v) {_vm.panelTextColorLocal=$$v},expression:\"panelTextColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.panelText,\"large\":\"true\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"panelLinkColor\",\"fallback\":_vm.previewTheme.colors.panelLink,\"label\":_vm.$t('settings.links')},model:{value:(_vm.panelLinkColorLocal),callback:function ($$v) {_vm.panelLinkColorLocal=$$v},expression:\"panelLinkColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.panelLink,\"large\":\"true\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"color-item\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('settings.style.advanced_colors.top_bar')))]),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"topBarColor\",\"fallback\":_vm.previewTheme.colors.topBar,\"label\":_vm.$t('settings.background')},model:{value:(_vm.topBarColorLocal),callback:function ($$v) {_vm.topBarColorLocal=$$v},expression:\"topBarColorLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"topBarTextColor\",\"fallback\":_vm.previewTheme.colors.topBarText,\"label\":_vm.$t('settings.text')},model:{value:(_vm.topBarTextColorLocal),callback:function ($$v) {_vm.topBarTextColorLocal=$$v},expression:\"topBarTextColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.topBarText}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"topBarLinkColor\",\"fallback\":_vm.previewTheme.colors.topBarLink,\"label\":_vm.$t('settings.links')},model:{value:(_vm.topBarLinkColorLocal),callback:function ($$v) {_vm.topBarLinkColorLocal=$$v},expression:\"topBarLinkColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.topBarLink}})],1),_vm._v(\" \"),_c('div',{staticClass:\"color-item\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('settings.style.advanced_colors.inputs')))]),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"inputColor\",\"fallback\":_vm.previewTheme.colors.input,\"label\":_vm.$t('settings.background')},model:{value:(_vm.inputColorLocal),callback:function ($$v) {_vm.inputColorLocal=$$v},expression:\"inputColorLocal\"}}),_vm._v(\" \"),_c('OpacityInput',{attrs:{\"name\":\"inputOpacity\",\"fallback\":_vm.previewTheme.opacity.input,\"disabled\":_vm.inputColorLocal === 'transparent'},model:{value:(_vm.inputOpacityLocal),callback:function ($$v) {_vm.inputOpacityLocal=$$v},expression:\"inputOpacityLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"inputTextColor\",\"fallback\":_vm.previewTheme.colors.inputText,\"label\":_vm.$t('settings.text')},model:{value:(_vm.inputTextColorLocal),callback:function ($$v) {_vm.inputTextColorLocal=$$v},expression:\"inputTextColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.inputText}})],1),_vm._v(\" \"),_c('div',{staticClass:\"color-item\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('settings.style.advanced_colors.buttons')))]),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"btnColor\",\"fallback\":_vm.previewTheme.colors.btn,\"label\":_vm.$t('settings.background')},model:{value:(_vm.btnColorLocal),callback:function ($$v) {_vm.btnColorLocal=$$v},expression:\"btnColorLocal\"}}),_vm._v(\" \"),_c('OpacityInput',{attrs:{\"name\":\"btnOpacity\",\"fallback\":_vm.previewTheme.opacity.btn,\"disabled\":_vm.btnColorLocal === 'transparent'},model:{value:(_vm.btnOpacityLocal),callback:function ($$v) {_vm.btnOpacityLocal=$$v},expression:\"btnOpacityLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"btnTextColor\",\"fallback\":_vm.previewTheme.colors.btnText,\"label\":_vm.$t('settings.text')},model:{value:(_vm.btnTextColorLocal),callback:function ($$v) {_vm.btnTextColorLocal=$$v},expression:\"btnTextColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.btnText}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"btnPanelTextColor\",\"fallback\":_vm.previewTheme.colors.btnPanelText,\"label\":_vm.$t('settings.style.advanced_colors.panel_header')},model:{value:(_vm.btnPanelTextColorLocal),callback:function ($$v) {_vm.btnPanelTextColorLocal=$$v},expression:\"btnPanelTextColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.btnPanelText}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"btnTopBarTextColor\",\"fallback\":_vm.previewTheme.colors.btnTopBarText,\"label\":_vm.$t('settings.style.advanced_colors.top_bar')},model:{value:(_vm.btnTopBarTextColorLocal),callback:function ($$v) {_vm.btnTopBarTextColorLocal=$$v},expression:\"btnTopBarTextColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.btnTopBarText}}),_vm._v(\" \"),_c('h5',[_vm._v(_vm._s(_vm.$t('settings.style.advanced_colors.pressed')))]),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"btnPressedColor\",\"fallback\":_vm.previewTheme.colors.btnPressed,\"label\":_vm.$t('settings.background')},model:{value:(_vm.btnPressedColorLocal),callback:function ($$v) {_vm.btnPressedColorLocal=$$v},expression:\"btnPressedColorLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"btnPressedTextColor\",\"fallback\":_vm.previewTheme.colors.btnPressedText,\"label\":_vm.$t('settings.text')},model:{value:(_vm.btnPressedTextColorLocal),callback:function ($$v) {_vm.btnPressedTextColorLocal=$$v},expression:\"btnPressedTextColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.btnPressedText}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"btnPressedPanelTextColor\",\"fallback\":_vm.previewTheme.colors.btnPressedPanelText,\"label\":_vm.$t('settings.style.advanced_colors.panel_header')},model:{value:(_vm.btnPressedPanelTextColorLocal),callback:function ($$v) {_vm.btnPressedPanelTextColorLocal=$$v},expression:\"btnPressedPanelTextColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.btnPressedPanelText}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"btnPressedTopBarTextColor\",\"fallback\":_vm.previewTheme.colors.btnPressedTopBarText,\"label\":_vm.$t('settings.style.advanced_colors.top_bar')},model:{value:(_vm.btnPressedTopBarTextColorLocal),callback:function ($$v) {_vm.btnPressedTopBarTextColorLocal=$$v},expression:\"btnPressedTopBarTextColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.btnPressedTopBarText}}),_vm._v(\" \"),_c('h5',[_vm._v(_vm._s(_vm.$t('settings.style.advanced_colors.disabled')))]),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"btnDisabledColor\",\"fallback\":_vm.previewTheme.colors.btnDisabled,\"label\":_vm.$t('settings.background')},model:{value:(_vm.btnDisabledColorLocal),callback:function ($$v) {_vm.btnDisabledColorLocal=$$v},expression:\"btnDisabledColorLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"btnDisabledTextColor\",\"fallback\":_vm.previewTheme.colors.btnDisabledText,\"label\":_vm.$t('settings.text')},model:{value:(_vm.btnDisabledTextColorLocal),callback:function ($$v) {_vm.btnDisabledTextColorLocal=$$v},expression:\"btnDisabledTextColorLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"btnDisabledPanelTextColor\",\"fallback\":_vm.previewTheme.colors.btnDisabledPanelText,\"label\":_vm.$t('settings.style.advanced_colors.panel_header')},model:{value:(_vm.btnDisabledPanelTextColorLocal),callback:function ($$v) {_vm.btnDisabledPanelTextColorLocal=$$v},expression:\"btnDisabledPanelTextColorLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"btnDisabledTopBarTextColor\",\"fallback\":_vm.previewTheme.colors.btnDisabledTopBarText,\"label\":_vm.$t('settings.style.advanced_colors.top_bar')},model:{value:(_vm.btnDisabledTopBarTextColorLocal),callback:function ($$v) {_vm.btnDisabledTopBarTextColorLocal=$$v},expression:\"btnDisabledTopBarTextColorLocal\"}}),_vm._v(\" \"),_c('h5',[_vm._v(_vm._s(_vm.$t('settings.style.advanced_colors.toggled')))]),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"btnToggledColor\",\"fallback\":_vm.previewTheme.colors.btnToggled,\"label\":_vm.$t('settings.background')},model:{value:(_vm.btnToggledColorLocal),callback:function ($$v) {_vm.btnToggledColorLocal=$$v},expression:\"btnToggledColorLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"btnToggledTextColor\",\"fallback\":_vm.previewTheme.colors.btnToggledText,\"label\":_vm.$t('settings.text')},model:{value:(_vm.btnToggledTextColorLocal),callback:function ($$v) {_vm.btnToggledTextColorLocal=$$v},expression:\"btnToggledTextColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.btnToggledText}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"btnToggledPanelTextColor\",\"fallback\":_vm.previewTheme.colors.btnToggledPanelText,\"label\":_vm.$t('settings.style.advanced_colors.panel_header')},model:{value:(_vm.btnToggledPanelTextColorLocal),callback:function ($$v) {_vm.btnToggledPanelTextColorLocal=$$v},expression:\"btnToggledPanelTextColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.btnToggledPanelText}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"btnToggledTopBarTextColor\",\"fallback\":_vm.previewTheme.colors.btnToggledTopBarText,\"label\":_vm.$t('settings.style.advanced_colors.top_bar')},model:{value:(_vm.btnToggledTopBarTextColorLocal),callback:function ($$v) {_vm.btnToggledTopBarTextColorLocal=$$v},expression:\"btnToggledTopBarTextColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.btnToggledTopBarText}})],1),_vm._v(\" \"),_c('div',{staticClass:\"color-item\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('settings.style.advanced_colors.tabs')))]),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"tabColor\",\"fallback\":_vm.previewTheme.colors.tab,\"label\":_vm.$t('settings.background')},model:{value:(_vm.tabColorLocal),callback:function ($$v) {_vm.tabColorLocal=$$v},expression:\"tabColorLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"tabTextColor\",\"fallback\":_vm.previewTheme.colors.tabText,\"label\":_vm.$t('settings.text')},model:{value:(_vm.tabTextColorLocal),callback:function ($$v) {_vm.tabTextColorLocal=$$v},expression:\"tabTextColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.tabText}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"tabActiveTextColor\",\"fallback\":_vm.previewTheme.colors.tabActiveText,\"label\":_vm.$t('settings.text')},model:{value:(_vm.tabActiveTextColorLocal),callback:function ($$v) {_vm.tabActiveTextColorLocal=$$v},expression:\"tabActiveTextColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.tabActiveText}})],1),_vm._v(\" \"),_c('div',{staticClass:\"color-item\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('settings.style.advanced_colors.borders')))]),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"borderColor\",\"fallback\":_vm.previewTheme.colors.border,\"label\":_vm.$t('settings.style.common.color')},model:{value:(_vm.borderColorLocal),callback:function ($$v) {_vm.borderColorLocal=$$v},expression:\"borderColorLocal\"}}),_vm._v(\" \"),_c('OpacityInput',{attrs:{\"name\":\"borderOpacity\",\"fallback\":_vm.previewTheme.opacity.border,\"disabled\":_vm.borderColorLocal === 'transparent'},model:{value:(_vm.borderOpacityLocal),callback:function ($$v) {_vm.borderOpacityLocal=$$v},expression:\"borderOpacityLocal\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"color-item\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('settings.style.advanced_colors.faint_text')))]),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"faintColor\",\"fallback\":_vm.previewTheme.colors.faint,\"label\":_vm.$t('settings.text')},model:{value:(_vm.faintColorLocal),callback:function ($$v) {_vm.faintColorLocal=$$v},expression:\"faintColorLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"faintLinkColor\",\"fallback\":_vm.previewTheme.colors.faintLink,\"label\":_vm.$t('settings.links')},model:{value:(_vm.faintLinkColorLocal),callback:function ($$v) {_vm.faintLinkColorLocal=$$v},expression:\"faintLinkColorLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"panelFaintColor\",\"fallback\":_vm.previewTheme.colors.panelFaint,\"label\":_vm.$t('settings.style.advanced_colors.panel_header')},model:{value:(_vm.panelFaintColorLocal),callback:function ($$v) {_vm.panelFaintColorLocal=$$v},expression:\"panelFaintColorLocal\"}}),_vm._v(\" \"),_c('OpacityInput',{attrs:{\"name\":\"faintOpacity\",\"fallback\":_vm.previewTheme.opacity.faint},model:{value:(_vm.faintOpacityLocal),callback:function ($$v) {_vm.faintOpacityLocal=$$v},expression:\"faintOpacityLocal\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"color-item\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('settings.style.advanced_colors.underlay')))]),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"underlay\",\"label\":_vm.$t('settings.style.advanced_colors.underlay'),\"fallback\":_vm.previewTheme.colors.underlay},model:{value:(_vm.underlayColorLocal),callback:function ($$v) {_vm.underlayColorLocal=$$v},expression:\"underlayColorLocal\"}}),_vm._v(\" \"),_c('OpacityInput',{attrs:{\"name\":\"underlayOpacity\",\"fallback\":_vm.previewTheme.opacity.underlay,\"disabled\":_vm.underlayOpacityLocal === 'transparent'},model:{value:(_vm.underlayOpacityLocal),callback:function ($$v) {_vm.underlayOpacityLocal=$$v},expression:\"underlayOpacityLocal\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"color-item\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('settings.style.advanced_colors.poll')))]),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"poll\",\"label\":_vm.$t('settings.background'),\"fallback\":_vm.previewTheme.colors.poll},model:{value:(_vm.pollColorLocal),callback:function ($$v) {_vm.pollColorLocal=$$v},expression:\"pollColorLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"pollText\",\"label\":_vm.$t('settings.text'),\"fallback\":_vm.previewTheme.colors.pollText},model:{value:(_vm.pollTextColorLocal),callback:function ($$v) {_vm.pollTextColorLocal=$$v},expression:\"pollTextColorLocal\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"color-item\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('settings.style.advanced_colors.icons')))]),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"icon\",\"label\":_vm.$t('settings.style.advanced_colors.icons'),\"fallback\":_vm.previewTheme.colors.icon},model:{value:(_vm.iconColorLocal),callback:function ($$v) {_vm.iconColorLocal=$$v},expression:\"iconColorLocal\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"color-item\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('settings.style.advanced_colors.highlight')))]),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"highlight\",\"label\":_vm.$t('settings.background'),\"fallback\":_vm.previewTheme.colors.highlight},model:{value:(_vm.highlightColorLocal),callback:function ($$v) {_vm.highlightColorLocal=$$v},expression:\"highlightColorLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"highlightText\",\"label\":_vm.$t('settings.text'),\"fallback\":_vm.previewTheme.colors.highlightText},model:{value:(_vm.highlightTextColorLocal),callback:function ($$v) {_vm.highlightTextColorLocal=$$v},expression:\"highlightTextColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.highlightText}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"highlightLink\",\"label\":_vm.$t('settings.links'),\"fallback\":_vm.previewTheme.colors.highlightLink},model:{value:(_vm.highlightLinkColorLocal),callback:function ($$v) {_vm.highlightLinkColorLocal=$$v},expression:\"highlightLinkColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.highlightLink}})],1),_vm._v(\" \"),_c('div',{staticClass:\"color-item\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('settings.style.advanced_colors.popover')))]),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"popover\",\"label\":_vm.$t('settings.background'),\"fallback\":_vm.previewTheme.colors.popover},model:{value:(_vm.popoverColorLocal),callback:function ($$v) {_vm.popoverColorLocal=$$v},expression:\"popoverColorLocal\"}}),_vm._v(\" \"),_c('OpacityInput',{attrs:{\"name\":\"popoverOpacity\",\"fallback\":_vm.previewTheme.opacity.popover,\"disabled\":_vm.popoverOpacityLocal === 'transparent'},model:{value:(_vm.popoverOpacityLocal),callback:function ($$v) {_vm.popoverOpacityLocal=$$v},expression:\"popoverOpacityLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"popoverText\",\"label\":_vm.$t('settings.text'),\"fallback\":_vm.previewTheme.colors.popoverText},model:{value:(_vm.popoverTextColorLocal),callback:function ($$v) {_vm.popoverTextColorLocal=$$v},expression:\"popoverTextColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.popoverText}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"popoverLink\",\"label\":_vm.$t('settings.links'),\"fallback\":_vm.previewTheme.colors.popoverLink},model:{value:(_vm.popoverLinkColorLocal),callback:function ($$v) {_vm.popoverLinkColorLocal=$$v},expression:\"popoverLinkColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.popoverLink}})],1),_vm._v(\" \"),_c('div',{staticClass:\"color-item\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('settings.style.advanced_colors.selectedPost')))]),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"selectedPost\",\"label\":_vm.$t('settings.background'),\"fallback\":_vm.previewTheme.colors.selectedPost},model:{value:(_vm.selectedPostColorLocal),callback:function ($$v) {_vm.selectedPostColorLocal=$$v},expression:\"selectedPostColorLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"selectedPostText\",\"label\":_vm.$t('settings.text'),\"fallback\":_vm.previewTheme.colors.selectedPostText},model:{value:(_vm.selectedPostTextColorLocal),callback:function ($$v) {_vm.selectedPostTextColorLocal=$$v},expression:\"selectedPostTextColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.selectedPostText}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"selectedPostLink\",\"label\":_vm.$t('settings.links'),\"fallback\":_vm.previewTheme.colors.selectedPostLink},model:{value:(_vm.selectedPostLinkColorLocal),callback:function ($$v) {_vm.selectedPostLinkColorLocal=$$v},expression:\"selectedPostLinkColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.selectedPostLink}})],1),_vm._v(\" \"),_c('div',{staticClass:\"color-item\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('settings.style.advanced_colors.selectedMenu')))]),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"selectedMenu\",\"label\":_vm.$t('settings.background'),\"fallback\":_vm.previewTheme.colors.selectedMenu},model:{value:(_vm.selectedMenuColorLocal),callback:function ($$v) {_vm.selectedMenuColorLocal=$$v},expression:\"selectedMenuColorLocal\"}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"selectedMenuText\",\"label\":_vm.$t('settings.text'),\"fallback\":_vm.previewTheme.colors.selectedMenuText},model:{value:(_vm.selectedMenuTextColorLocal),callback:function ($$v) {_vm.selectedMenuTextColorLocal=$$v},expression:\"selectedMenuTextColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.selectedMenuText}}),_vm._v(\" \"),_c('ColorInput',{attrs:{\"name\":\"selectedMenuLink\",\"label\":_vm.$t('settings.links'),\"fallback\":_vm.previewTheme.colors.selectedMenuLink},model:{value:(_vm.selectedMenuLinkColorLocal),callback:function ($$v) {_vm.selectedMenuLinkColorLocal=$$v},expression:\"selectedMenuLinkColorLocal\"}}),_vm._v(\" \"),_c('ContrastRatio',{attrs:{\"contrast\":_vm.previewContrast.selectedMenuLink}})],1)]),_vm._v(\" \"),_c('div',{staticClass:\"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('ShadowControl',{attrs:{\"ready\":!!_vm.currentShadowFallback,\"fallback\":_vm.currentShadowFallback},model:{value:(_vm.currentShadow),callback:function ($$v) {_vm.currentShadow=$$v},expression:\"currentShadow\"}}),_vm._v(\" \"),(_vm.shadowSelected === 'avatar' || _vm.shadowSelected === 'avatarStatus')?_c('div',[_c('i18n',{attrs:{\"path\":\"settings.style.shadows.filter_hint.always_drop_shadow\",\"tag\":\"p\"}},[_c('code',[_vm._v(\"filter: drop-shadow()\")])]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('settings.style.shadows.filter_hint.avatar_inset')))]),_vm._v(\" \"),_c('i18n',{attrs:{\"path\":\"settings.style.shadows.filter_hint.drop_shadow_syntax\",\"tag\":\"p\"}},[_c('code',[_vm._v(\"drop-shadow\")]),_vm._v(\" \"),_c('code',[_vm._v(\"spread-radius\")]),_vm._v(\" \"),_c('code',[_vm._v(\"inset\")])]),_vm._v(\" \"),_c('i18n',{attrs:{\"path\":\"settings.style.shadows.filter_hint.inset_classic\",\"tag\":\"p\"}},[_c('code',[_vm._v(\"box-shadow\")])]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('settings.style.shadows.filter_hint.spread_zero')))])],1):_vm._e()],1),_vm._v(\" \"),_c('div',{staticClass:\"fonts-container\",attrs:{\"label\":_vm.$t('settings.style.fonts._tab_label')}},[_c('div',{staticClass:\"tab-header\"},[_c('p',[_vm._v(_vm._s(_vm.$t('settings.style.fonts.help')))]),_vm._v(\" \"),_c('button',{staticClass:\"btn\",on:{\"click\":_vm.clearFonts}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.style.switcher.clear_all'))+\"\\n \")])]),_vm._v(\" \"),_c('FontControl',{attrs:{\"name\":\"ui\",\"label\":_vm.$t('settings.style.fonts.components.interface'),\"fallback\":_vm.previewTheme.fonts.interface,\"no-inherit\":\"1\"},model:{value:(_vm.fontsLocal.interface),callback:function ($$v) {_vm.$set(_vm.fontsLocal, \"interface\", $$v)},expression:\"fontsLocal.interface\"}}),_vm._v(\" \"),_c('FontControl',{attrs:{\"name\":\"input\",\"label\":_vm.$t('settings.style.fonts.components.input'),\"fallback\":_vm.previewTheme.fonts.input},model:{value:(_vm.fontsLocal.input),callback:function ($$v) {_vm.$set(_vm.fontsLocal, \"input\", $$v)},expression:\"fontsLocal.input\"}}),_vm._v(\" \"),_c('FontControl',{attrs:{\"name\":\"post\",\"label\":_vm.$t('settings.style.fonts.components.post'),\"fallback\":_vm.previewTheme.fonts.post},model:{value:(_vm.fontsLocal.post),callback:function ($$v) {_vm.$set(_vm.fontsLocal, \"post\", $$v)},expression:\"fontsLocal.post\"}}),_vm._v(\" \"),_c('FontControl',{attrs:{\"name\":\"postCode\",\"label\":_vm.$t('settings.style.fonts.components.postCode'),\"fallback\":_vm.previewTheme.fonts.postCode},model:{value:(_vm.fontsLocal.postCode),callback:function ($$v) {_vm.$set(_vm.fontsLocal, \"postCode\", $$v)},expression:\"fontsLocal.postCode\"}})],1)])],1),_vm._v(\" \"),_c('div',{staticClass:\"apply-container\"},[_c('button',{staticClass:\"btn submit\",attrs:{\"disabled\":!_vm.themeValid},on:{\"click\":_vm.setCustomTheme}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('general.apply'))+\"\\n \")]),_vm._v(\" \"),_c('button',{staticClass:\"btn\",on:{\"click\":_vm.clearAll}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.style.switcher.reset'))+\"\\n \")])])],1)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","<template>\n <div>\n <label for=\"interface-language-switcher\">\n {{ $t('settings.interfaceLanguage') }}\n </label>\n <label\n for=\"interface-language-switcher\"\n class=\"select\"\n >\n <select\n id=\"interface-language-switcher\"\n v-model=\"language\"\n >\n <option\n v-for=\"(langCode, i) in languageCodes\"\n :key=\"langCode\"\n :value=\"langCode\"\n >\n {{ languageNames[i] }}\n </option>\n </select>\n <i class=\"icon-down-open\" />\n </label>\n </div>\n</template>\n\n<script>\nimport languagesObject from '../../i18n/messages'\nimport ISO6391 from 'iso-639-1'\nimport _ from 'lodash'\n\nexport default {\n computed: {\n languageCodes () {\n return Object.keys(languagesObject)\n },\n\n languageNames () {\n return _.map(this.languageCodes, this.getLanguageName)\n },\n\n language: {\n get: function () { return this.$store.getters.mergedConfig.interfaceLanguage },\n set: function (val) {\n this.$store.dispatch('setOption', { name: 'interfaceLanguage', value: val })\n this.$i18n.locale = val\n }\n }\n },\n\n methods: {\n getLanguageName (code) {\n const specialLanguageNames = {\n 'ja': 'Japanese (日本語)',\n 'ja_easy': 'Japanese (やさしいにほんご)',\n 'zh': 'Chinese (简体中文)'\n }\n return specialLanguageNames[code] || ISO6391.getName(code)\n }\n }\n}\n</script>\n","/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./interface_language_switcher.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./interface_language_switcher.vue\"\n/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-25d06bfd\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./interface_language_switcher.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('label',{attrs:{\"for\":\"interface-language-switcher\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.interfaceLanguage'))+\"\\n \")]),_vm._v(\" \"),_c('label',{staticClass:\"select\",attrs:{\"for\":\"interface-language-switcher\"}},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.language),expression:\"language\"}],attrs:{\"id\":\"interface-language-switcher\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.language=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.languageCodes),function(langCode,i){return _c('option',{key:langCode,domProps:{\"value\":langCode}},[_vm._v(\"\\n \"+_vm._s(_vm.languageNames[i])+\"\\n \")])}),0),_vm._v(\" \"),_c('i',{staticClass:\"icon-down-open\"})])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","/* eslint-env browser */\nimport { filter, trim } from 'lodash'\n\nimport TabSwitcher from '../tab_switcher/tab_switcher.js'\nimport StyleSwitcher from '../style_switcher/style_switcher.vue'\nimport InterfaceLanguageSwitcher from '../interface_language_switcher/interface_language_switcher.vue'\nimport { extractCommit } from '../../services/version/version.service'\nimport { instanceDefaultProperties, defaultState as configDefaultState } from '../../modules/config.js'\nimport Checkbox from '../checkbox/checkbox.vue'\n\nconst pleromaFeCommitUrl = 'https://git.pleroma.social/pleroma/pleroma-fe/commit/'\nconst pleromaBeCommitUrl = 'https://git.pleroma.social/pleroma/pleroma/commit/'\n\nconst multiChoiceProperties = [\n 'postContentType',\n 'subjectLineBehavior'\n]\n\nconst settings = {\n data () {\n const instance = this.$store.state.instance\n\n return {\n loopSilentAvailable:\n // Firefox\n Object.getOwnPropertyDescriptor(HTMLVideoElement.prototype, 'mozHasAudio') ||\n // Chrome-likes\n Object.getOwnPropertyDescriptor(HTMLMediaElement.prototype, 'webkitAudioDecodedByteCount') ||\n // Future spec, still not supported in Nightly 63 as of 08/2018\n Object.getOwnPropertyDescriptor(HTMLMediaElement.prototype, 'audioTracks'),\n\n backendVersion: instance.backendVersion,\n frontendVersion: instance.frontendVersion\n }\n },\n components: {\n TabSwitcher,\n StyleSwitcher,\n InterfaceLanguageSwitcher,\n Checkbox\n },\n computed: {\n user () {\n return this.$store.state.users.currentUser\n },\n currentSaveStateNotice () {\n return this.$store.state.interface.settings.currentSaveStateNotice\n },\n postFormats () {\n return this.$store.state.instance.postFormats || []\n },\n instanceSpecificPanelPresent () { return this.$store.state.instance.showInstanceSpecificPanel },\n frontendVersionLink () {\n return pleromaFeCommitUrl + this.frontendVersion\n },\n backendVersionLink () {\n return pleromaBeCommitUrl + extractCommit(this.backendVersion)\n },\n // Getting localized values for instance-default properties\n ...instanceDefaultProperties\n .filter(key => multiChoiceProperties.includes(key))\n .map(key => [\n key + 'DefaultValue',\n function () {\n return this.$store.getters.instanceDefaultConfig[key]\n }\n ])\n .reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {}),\n ...instanceDefaultProperties\n .filter(key => !multiChoiceProperties.includes(key))\n .map(key => [\n key + 'LocalizedValue',\n function () {\n return this.$t('settings.values.' + this.$store.getters.instanceDefaultConfig[key])\n }\n ])\n .reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {}),\n // Generating computed values for vuex properties\n ...Object.keys(configDefaultState)\n .map(key => [key, {\n get () { return this.$store.getters.mergedConfig[key] },\n set (value) {\n this.$store.dispatch('setOption', { name: key, value })\n }\n }])\n .reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {}),\n // Special cases (need to transform values or perform actions first)\n muteWordsString: {\n get () { return this.$store.getters.mergedConfig.muteWords.join('\\n') },\n set (value) {\n this.$store.dispatch('setOption', {\n name: 'muteWords',\n value: filter(value.split('\\n'), (word) => trim(word).length > 0)\n })\n }\n },\n useStreamingApi: {\n get () { return this.$store.getters.mergedConfig.useStreamingApi },\n set (value) {\n const promise = value\n ? this.$store.dispatch('enableMastoSockets')\n : this.$store.dispatch('disableMastoSockets')\n\n promise.then(() => {\n this.$store.dispatch('setOption', { name: 'useStreamingApi', value })\n }).catch((e) => {\n console.error('Failed starting MastoAPI Streaming socket', e)\n this.$store.dispatch('disableMastoSockets')\n this.$store.dispatch('setOption', { name: 'useStreamingApi', value: false })\n })\n }\n }\n },\n // Updating nested properties\n watch: {\n notificationVisibility: {\n handler (value) {\n this.$store.dispatch('setOption', {\n name: 'notificationVisibility',\n value: this.$store.getters.mergedConfig.notificationVisibility\n })\n },\n deep: true\n }\n }\n}\n\nexport default settings\n","\nexport const extractCommit = versionString => {\n const regex = /-g(\\w+)/i\n const matches = versionString.match(regex)\n return matches ? matches[1] : ''\n}\n","/* script */\nexport * from \"!!babel-loader!./settings.js\"\nimport __vue_script__ from \"!!babel-loader!./settings.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-8726eb48\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./settings.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"settings panel panel-default\"},[_c('div',{staticClass:\"panel-heading\"},[_c('div',{staticClass:\"title\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.settings'))+\"\\n \")]),_vm._v(\" \"),_c('transition',{attrs:{\"name\":\"fade\"}},[(_vm.currentSaveStateNotice)?[(_vm.currentSaveStateNotice.error)?_c('div',{staticClass:\"alert error\",on:{\"click\":function($event){$event.preventDefault();}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.saving_err'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(!_vm.currentSaveStateNotice.error)?_c('div',{staticClass:\"alert transparent\",on:{\"click\":function($event){$event.preventDefault();}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.saving_ok'))+\"\\n \")]):_vm._e()]:_vm._e()],2)],1),_vm._v(\" \"),_c('div',{staticClass:\"panel-body\"},[_c('keep-alive',[_c('tab-switcher',[_c('div',{attrs:{\"label\":_vm.$t('settings.general')}},[_c('div',{staticClass:\"setting-item\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('settings.interface')))]),_vm._v(\" \"),_c('ul',{staticClass:\"setting-list\"},[_c('li',[_c('interface-language-switcher')],1),_vm._v(\" \"),(_vm.instanceSpecificPanelPresent)?_c('li',[_c('Checkbox',{model:{value:(_vm.hideISP),callback:function ($$v) {_vm.hideISP=$$v},expression:\"hideISP\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.hide_isp'))+\"\\n \")])],1):_vm._e()])]),_vm._v(\" \"),_c('div',{staticClass:\"setting-item\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('nav.timeline')))]),_vm._v(\" \"),_c('ul',{staticClass:\"setting-list\"},[_c('li',[_c('Checkbox',{model:{value:(_vm.hideMutedPosts),callback:function ($$v) {_vm.hideMutedPosts=$$v},expression:\"hideMutedPosts\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.hide_muted_posts'))+\" \"+_vm._s(_vm.$t('settings.instance_default', { value: _vm.hideMutedPostsLocalizedValue }))+\"\\n \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.collapseMessageWithSubject),callback:function ($$v) {_vm.collapseMessageWithSubject=$$v},expression:\"collapseMessageWithSubject\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.collapse_subject'))+\" \"+_vm._s(_vm.$t('settings.instance_default', { value: _vm.collapseMessageWithSubjectLocalizedValue }))+\"\\n \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.streaming),callback:function ($$v) {_vm.streaming=$$v},expression:\"streaming\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.streaming'))+\"\\n \")]),_vm._v(\" \"),_c('ul',{staticClass:\"setting-list suboptions\",class:[{disabled: !_vm.streaming}]},[_c('li',[_c('Checkbox',{attrs:{\"disabled\":!_vm.streaming},model:{value:(_vm.pauseOnUnfocused),callback:function ($$v) {_vm.pauseOnUnfocused=$$v},expression:\"pauseOnUnfocused\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.pause_on_unfocused'))+\"\\n \")])],1)])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.useStreamingApi),callback:function ($$v) {_vm.useStreamingApi=$$v},expression:\"useStreamingApi\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.useStreamingApi'))+\"\\n \"),_c('br'),_vm._v(\" \"),_c('small',[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.useStreamingApiWarning'))+\"\\n \")])])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.autoLoad),callback:function ($$v) {_vm.autoLoad=$$v},expression:\"autoLoad\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.autoload'))+\"\\n \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.hoverPreview),callback:function ($$v) {_vm.hoverPreview=$$v},expression:\"hoverPreview\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.reply_link_preview'))+\"\\n \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.emojiReactionsOnTimeline),callback:function ($$v) {_vm.emojiReactionsOnTimeline=$$v},expression:\"emojiReactionsOnTimeline\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.emoji_reactions_on_timeline'))+\"\\n \")])],1)])]),_vm._v(\" \"),_c('div',{staticClass:\"setting-item\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('settings.composing')))]),_vm._v(\" \"),_c('ul',{staticClass:\"setting-list\"},[_c('li',[_c('Checkbox',{model:{value:(_vm.scopeCopy),callback:function ($$v) {_vm.scopeCopy=$$v},expression:\"scopeCopy\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.scope_copy'))+\" \"+_vm._s(_vm.$t('settings.instance_default', { value: _vm.scopeCopyLocalizedValue }))+\"\\n \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.alwaysShowSubjectInput),callback:function ($$v) {_vm.alwaysShowSubjectInput=$$v},expression:\"alwaysShowSubjectInput\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.subject_input_always_show'))+\" \"+_vm._s(_vm.$t('settings.instance_default', { value: _vm.alwaysShowSubjectInputLocalizedValue }))+\"\\n \")])],1),_vm._v(\" \"),_c('li',[_c('div',[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.subject_line_behavior'))+\"\\n \"),_c('label',{staticClass:\"select\",attrs:{\"for\":\"subjectLineBehavior\"}},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.subjectLineBehavior),expression:\"subjectLineBehavior\"}],attrs:{\"id\":\"subjectLineBehavior\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.subjectLineBehavior=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},[_c('option',{attrs:{\"value\":\"email\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.subject_line_email'))+\"\\n \"+_vm._s(_vm.subjectLineBehaviorDefaultValue == 'email' ? _vm.$t('settings.instance_default_simple') : '')+\"\\n \")]),_vm._v(\" \"),_c('option',{attrs:{\"value\":\"masto\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.subject_line_mastodon'))+\"\\n \"+_vm._s(_vm.subjectLineBehaviorDefaultValue == 'mastodon' ? _vm.$t('settings.instance_default_simple') : '')+\"\\n \")]),_vm._v(\" \"),_c('option',{attrs:{\"value\":\"noop\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.subject_line_noop'))+\"\\n \"+_vm._s(_vm.subjectLineBehaviorDefaultValue == 'noop' ? _vm.$t('settings.instance_default_simple') : '')+\"\\n \")])]),_vm._v(\" \"),_c('i',{staticClass:\"icon-down-open\"})])])]),_vm._v(\" \"),(_vm.postFormats.length > 0)?_c('li',[_c('div',[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.post_status_content_type'))+\"\\n \"),_c('label',{staticClass:\"select\",attrs:{\"for\":\"postContentType\"}},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.postContentType),expression:\"postContentType\"}],attrs:{\"id\":\"postContentType\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.postContentType=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.postFormats),function(postFormat){return _c('option',{key:postFormat,domProps:{\"value\":postFormat}},[_vm._v(\"\\n \"+_vm._s(_vm.$t((\"post_status.content_type[\\\"\" + postFormat + \"\\\"]\")))+\"\\n \"+_vm._s(_vm.postContentTypeDefaultValue === postFormat ? _vm.$t('settings.instance_default_simple') : '')+\"\\n \")])}),0),_vm._v(\" \"),_c('i',{staticClass:\"icon-down-open\"})])])]):_vm._e(),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.minimalScopesMode),callback:function ($$v) {_vm.minimalScopesMode=$$v},expression:\"minimalScopesMode\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.minimal_scopes_mode'))+\" \"+_vm._s(_vm.$t('settings.instance_default', { value: _vm.minimalScopesModeLocalizedValue }))+\"\\n \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.autohideFloatingPostButton),callback:function ($$v) {_vm.autohideFloatingPostButton=$$v},expression:\"autohideFloatingPostButton\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.autohide_floating_post_button'))+\"\\n \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.padEmoji),callback:function ($$v) {_vm.padEmoji=$$v},expression:\"padEmoji\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.pad_emoji'))+\"\\n \")])],1)])]),_vm._v(\" \"),_c('div',{staticClass:\"setting-item\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('settings.attachments')))]),_vm._v(\" \"),_c('ul',{staticClass:\"setting-list\"},[_c('li',[_c('Checkbox',{model:{value:(_vm.hideAttachments),callback:function ($$v) {_vm.hideAttachments=$$v},expression:\"hideAttachments\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.hide_attachments_in_tl'))+\"\\n \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.hideAttachmentsInConv),callback:function ($$v) {_vm.hideAttachmentsInConv=$$v},expression:\"hideAttachmentsInConv\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.hide_attachments_in_convo'))+\"\\n \")])],1),_vm._v(\" \"),_c('li',[_c('label',{attrs:{\"for\":\"maxThumbnails\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.max_thumbnails'))+\"\\n \")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model.number\",value:(_vm.maxThumbnails),expression:\"maxThumbnails\",modifiers:{\"number\":true}}],staticClass:\"number-input\",attrs:{\"id\":\"maxThumbnails\",\"type\":\"number\",\"min\":\"0\",\"step\":\"1\"},domProps:{\"value\":(_vm.maxThumbnails)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.maxThumbnails=_vm._n($event.target.value)},\"blur\":function($event){_vm.$forceUpdate()}}})]),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.hideNsfw),callback:function ($$v) {_vm.hideNsfw=$$v},expression:\"hideNsfw\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.nsfw_clickthrough'))+\"\\n \")])],1),_vm._v(\" \"),_c('ul',{staticClass:\"setting-list suboptions\"},[_c('li',[_c('Checkbox',{attrs:{\"disabled\":!_vm.hideNsfw},model:{value:(_vm.preloadImage),callback:function ($$v) {_vm.preloadImage=$$v},expression:\"preloadImage\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.preload_images'))+\"\\n \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{attrs:{\"disabled\":!_vm.hideNsfw},model:{value:(_vm.useOneClickNsfw),callback:function ($$v) {_vm.useOneClickNsfw=$$v},expression:\"useOneClickNsfw\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.use_one_click_nsfw'))+\"\\n \")])],1)]),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.stopGifs),callback:function ($$v) {_vm.stopGifs=$$v},expression:\"stopGifs\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.stop_gifs'))+\"\\n \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.loopVideo),callback:function ($$v) {_vm.loopVideo=$$v},expression:\"loopVideo\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.loop_video'))+\"\\n \")]),_vm._v(\" \"),_c('ul',{staticClass:\"setting-list suboptions\",class:[{disabled: !_vm.streaming}]},[_c('li',[_c('Checkbox',{attrs:{\"disabled\":!_vm.loopVideo || !_vm.loopSilentAvailable},model:{value:(_vm.loopVideoSilentOnly),callback:function ($$v) {_vm.loopVideoSilentOnly=$$v},expression:\"loopVideoSilentOnly\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.loop_video_silent_only'))+\"\\n \")]),_vm._v(\" \"),(!_vm.loopSilentAvailable)?_c('div',{staticClass:\"unavailable\"},[_c('i',{staticClass:\"icon-globe\"}),_vm._v(\"! \"+_vm._s(_vm.$t('settings.limited_availability'))+\"\\n \")]):_vm._e()],1)])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.playVideosInModal),callback:function ($$v) {_vm.playVideosInModal=$$v},expression:\"playVideosInModal\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.play_videos_in_modal'))+\"\\n \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.useContainFit),callback:function ($$v) {_vm.useContainFit=$$v},expression:\"useContainFit\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.use_contain_fit'))+\"\\n \")])],1)])]),_vm._v(\" \"),_c('div',{staticClass:\"setting-item\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('settings.notifications')))]),_vm._v(\" \"),_c('ul',{staticClass:\"setting-list\"},[_c('li',[_c('Checkbox',{model:{value:(_vm.webPushNotifications),callback:function ($$v) {_vm.webPushNotifications=$$v},expression:\"webPushNotifications\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.enable_web_push_notifications'))+\"\\n \")])],1)])]),_vm._v(\" \"),_c('div',{staticClass:\"setting-item\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('settings.fun')))]),_vm._v(\" \"),_c('ul',{staticClass:\"setting-list\"},[_c('li',[_c('Checkbox',{model:{value:(_vm.greentext),callback:function ($$v) {_vm.greentext=$$v},expression:\"greentext\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.greentext'))+\" \"+_vm._s(_vm.$t('settings.instance_default', { value: _vm.greentextLocalizedValue }))+\"\\n \")])],1)])])]),_vm._v(\" \"),_c('div',{attrs:{\"label\":_vm.$t('settings.theme')}},[_c('div',{staticClass:\"setting-item\"},[_c('style-switcher')],1)]),_vm._v(\" \"),_c('div',{attrs:{\"label\":_vm.$t('settings.filtering')}},[_c('div',{staticClass:\"setting-item\"},[_c('div',{staticClass:\"select-multiple\"},[_c('span',{staticClass:\"label\"},[_vm._v(_vm._s(_vm.$t('settings.notification_visibility')))]),_vm._v(\" \"),_c('ul',{staticClass:\"option-list\"},[_c('li',[_c('Checkbox',{model:{value:(_vm.notificationVisibility.likes),callback:function ($$v) {_vm.$set(_vm.notificationVisibility, \"likes\", $$v)},expression:\"notificationVisibility.likes\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.notification_visibility_likes'))+\"\\n \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.notificationVisibility.repeats),callback:function ($$v) {_vm.$set(_vm.notificationVisibility, \"repeats\", $$v)},expression:\"notificationVisibility.repeats\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.notification_visibility_repeats'))+\"\\n \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.notificationVisibility.follows),callback:function ($$v) {_vm.$set(_vm.notificationVisibility, \"follows\", $$v)},expression:\"notificationVisibility.follows\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.notification_visibility_follows'))+\"\\n \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.notificationVisibility.mentions),callback:function ($$v) {_vm.$set(_vm.notificationVisibility, \"mentions\", $$v)},expression:\"notificationVisibility.mentions\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.notification_visibility_mentions'))+\"\\n \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.notificationVisibility.moves),callback:function ($$v) {_vm.$set(_vm.notificationVisibility, \"moves\", $$v)},expression:\"notificationVisibility.moves\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.notification_visibility_moves'))+\"\\n \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.notificationVisibility.emojiReactions),callback:function ($$v) {_vm.$set(_vm.notificationVisibility, \"emojiReactions\", $$v)},expression:\"notificationVisibility.emojiReactions\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.notification_visibility_emoji_reactions'))+\"\\n \")])],1)])]),_vm._v(\" \"),_c('div',[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.replies_in_timeline'))+\"\\n \"),_c('label',{staticClass:\"select\",attrs:{\"for\":\"replyVisibility\"}},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.replyVisibility),expression:\"replyVisibility\"}],attrs:{\"id\":\"replyVisibility\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.replyVisibility=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},[_c('option',{attrs:{\"value\":\"all\",\"selected\":\"\"}},[_vm._v(_vm._s(_vm.$t('settings.reply_visibility_all')))]),_vm._v(\" \"),_c('option',{attrs:{\"value\":\"following\"}},[_vm._v(_vm._s(_vm.$t('settings.reply_visibility_following')))]),_vm._v(\" \"),_c('option',{attrs:{\"value\":\"self\"}},[_vm._v(_vm._s(_vm.$t('settings.reply_visibility_self')))])]),_vm._v(\" \"),_c('i',{staticClass:\"icon-down-open\"})])]),_vm._v(\" \"),_c('div',[_c('Checkbox',{model:{value:(_vm.hidePostStats),callback:function ($$v) {_vm.hidePostStats=$$v},expression:\"hidePostStats\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.hide_post_stats'))+\" \"+_vm._s(_vm.$t('settings.instance_default', { value: _vm.hidePostStatsLocalizedValue }))+\"\\n \")])],1),_vm._v(\" \"),_c('div',[_c('Checkbox',{model:{value:(_vm.hideUserStats),callback:function ($$v) {_vm.hideUserStats=$$v},expression:\"hideUserStats\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.hide_user_stats'))+\" \"+_vm._s(_vm.$t('settings.instance_default', { value: _vm.hideUserStatsLocalizedValue }))+\"\\n \")])],1)]),_vm._v(\" \"),_c('div',{staticClass:\"setting-item\"},[_c('div',[_c('p',[_vm._v(_vm._s(_vm.$t('settings.filtering_explanation')))]),_vm._v(\" \"),_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.muteWordsString),expression:\"muteWordsString\"}],attrs:{\"id\":\"muteWords\"},domProps:{\"value\":(_vm.muteWordsString)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.muteWordsString=$event.target.value}}})]),_vm._v(\" \"),_c('div',[_c('Checkbox',{model:{value:(_vm.hideFilteredStatuses),callback:function ($$v) {_vm.hideFilteredStatuses=$$v},expression:\"hideFilteredStatuses\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.hide_filtered_statuses'))+\" \"+_vm._s(_vm.$t('settings.instance_default', { value: _vm.hideFilteredStatusesLocalizedValue }))+\"\\n \")])],1)])]),_vm._v(\" \"),_c('div',{attrs:{\"label\":_vm.$t('settings.version.title')}},[_c('div',{staticClass:\"setting-item\"},[_c('ul',{staticClass:\"setting-list\"},[_c('li',[_c('p',[_vm._v(_vm._s(_vm.$t('settings.version.backend_version')))]),_vm._v(\" \"),_c('ul',{staticClass:\"option-list\"},[_c('li',[_c('a',{attrs:{\"href\":_vm.backendVersionLink,\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.backendVersion))])])])]),_vm._v(\" \"),_c('li',[_c('p',[_vm._v(_vm._s(_vm.$t('settings.version.frontend_version')))]),_vm._v(\" \"),_c('ul',{staticClass:\"option-list\"},[_c('li',[_c('a',{attrs:{\"href\":_vm.frontendVersionLink,\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.frontendVersion))])])])])])])])])],1)],1)])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import { validationMixin } from 'vuelidate'\nimport { required, requiredIf, sameAs } from 'vuelidate/lib/validators'\nimport { mapActions, mapState } from 'vuex'\n\nconst registration = {\n mixins: [validationMixin],\n data: () => ({\n user: {\n email: '',\n fullname: '',\n username: '',\n password: '',\n confirm: ''\n },\n captcha: {}\n }),\n validations () {\n return {\n user: {\n email: { required: requiredIf(() => this.accountActivationRequired) },\n username: { required },\n fullname: { required },\n password: { required },\n confirm: {\n required,\n sameAsPassword: sameAs('password')\n }\n }\n }\n },\n created () {\n if ((!this.registrationOpen && !this.token) || this.signedIn) {\n this.$router.push({ name: 'root' })\n }\n\n this.setCaptcha()\n },\n computed: {\n token () { return this.$route.params.token },\n bioPlaceholder () {\n return this.$t('registration.bio_placeholder').replace(/\\s*\\n\\s*/g, ' \\n')\n },\n ...mapState({\n registrationOpen: (state) => state.instance.registrationOpen,\n signedIn: (state) => !!state.users.currentUser,\n isPending: (state) => state.users.signUpPending,\n serverValidationErrors: (state) => state.users.signUpErrors,\n termsOfService: (state) => state.instance.tos,\n accountActivationRequired: (state) => state.instance.accountActivationRequired\n })\n },\n methods: {\n ...mapActions(['signUp', 'getCaptcha']),\n async submit () {\n this.user.nickname = this.user.username\n this.user.token = this.token\n\n this.user.captcha_solution = this.captcha.solution\n this.user.captcha_token = this.captcha.token\n this.user.captcha_answer_data = this.captcha.answer_data\n\n this.$v.$touch()\n\n if (!this.$v.$invalid) {\n try {\n await this.signUp(this.user)\n this.$router.push({ name: 'friends' })\n } catch (error) {\n console.warn('Registration failed: ', error)\n this.setCaptcha()\n }\n }\n },\n setCaptcha () {\n this.getCaptcha().then(cpt => { this.captcha = cpt })\n }\n }\n}\n\nexport default registration\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./registration.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./registration.js\"\nimport __vue_script__ from \"!!babel-loader!./registration.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-456dfbf7\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./registration.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"settings panel panel-default\"},[_c('div',{staticClass:\"panel-heading\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('registration.registration'))+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"panel-body\"},[_c('form',{staticClass:\"registration-form\",on:{\"submit\":function($event){$event.preventDefault();_vm.submit(_vm.user)}}},[_c('div',{staticClass:\"container\"},[_c('div',{staticClass:\"text-fields\"},[_c('div',{staticClass:\"form-group\",class:{ 'form-group--error': _vm.$v.user.username.$error }},[_c('label',{staticClass:\"form--label\",attrs:{\"for\":\"sign-up-username\"}},[_vm._v(_vm._s(_vm.$t('login.username')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model.trim\",value:(_vm.$v.user.username.$model),expression:\"$v.user.username.$model\",modifiers:{\"trim\":true}}],staticClass:\"form-control\",attrs:{\"id\":\"sign-up-username\",\"disabled\":_vm.isPending,\"placeholder\":_vm.$t('registration.username_placeholder')},domProps:{\"value\":(_vm.$v.user.username.$model)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.$v.user.username, \"$model\", $event.target.value.trim())},\"blur\":function($event){_vm.$forceUpdate()}}})]),_vm._v(\" \"),(_vm.$v.user.username.$dirty)?_c('div',{staticClass:\"form-error\"},[_c('ul',[(!_vm.$v.user.username.required)?_c('li',[_c('span',[_vm._v(_vm._s(_vm.$t('registration.validations.username_required')))])]):_vm._e()])]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"form-group\",class:{ 'form-group--error': _vm.$v.user.fullname.$error }},[_c('label',{staticClass:\"form--label\",attrs:{\"for\":\"sign-up-fullname\"}},[_vm._v(_vm._s(_vm.$t('registration.fullname')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model.trim\",value:(_vm.$v.user.fullname.$model),expression:\"$v.user.fullname.$model\",modifiers:{\"trim\":true}}],staticClass:\"form-control\",attrs:{\"id\":\"sign-up-fullname\",\"disabled\":_vm.isPending,\"placeholder\":_vm.$t('registration.fullname_placeholder')},domProps:{\"value\":(_vm.$v.user.fullname.$model)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.$v.user.fullname, \"$model\", $event.target.value.trim())},\"blur\":function($event){_vm.$forceUpdate()}}})]),_vm._v(\" \"),(_vm.$v.user.fullname.$dirty)?_c('div',{staticClass:\"form-error\"},[_c('ul',[(!_vm.$v.user.fullname.required)?_c('li',[_c('span',[_vm._v(_vm._s(_vm.$t('registration.validations.fullname_required')))])]):_vm._e()])]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"form-group\",class:{ 'form-group--error': _vm.$v.user.email.$error }},[_c('label',{staticClass:\"form--label\",attrs:{\"for\":\"email\"}},[_vm._v(_vm._s(_vm.$t('registration.email')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.$v.user.email.$model),expression:\"$v.user.email.$model\"}],staticClass:\"form-control\",attrs:{\"id\":\"email\",\"disabled\":_vm.isPending,\"type\":\"email\"},domProps:{\"value\":(_vm.$v.user.email.$model)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.$v.user.email, \"$model\", $event.target.value)}}})]),_vm._v(\" \"),(_vm.$v.user.email.$dirty)?_c('div',{staticClass:\"form-error\"},[_c('ul',[(!_vm.$v.user.email.required)?_c('li',[_c('span',[_vm._v(_vm._s(_vm.$t('registration.validations.email_required')))])]):_vm._e()])]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('label',{staticClass:\"form--label\",attrs:{\"for\":\"bio\"}},[_vm._v(_vm._s(_vm.$t('registration.bio'))+\" (\"+_vm._s(_vm.$t('general.optional'))+\")\")]),_vm._v(\" \"),_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.user.bio),expression:\"user.bio\"}],staticClass:\"form-control\",attrs:{\"id\":\"bio\",\"disabled\":_vm.isPending,\"placeholder\":_vm.bioPlaceholder},domProps:{\"value\":(_vm.user.bio)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.user, \"bio\", $event.target.value)}}})]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\",class:{ 'form-group--error': _vm.$v.user.password.$error }},[_c('label',{staticClass:\"form--label\",attrs:{\"for\":\"sign-up-password\"}},[_vm._v(_vm._s(_vm.$t('login.password')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.user.password),expression:\"user.password\"}],staticClass:\"form-control\",attrs:{\"id\":\"sign-up-password\",\"disabled\":_vm.isPending,\"type\":\"password\"},domProps:{\"value\":(_vm.user.password)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.user, \"password\", $event.target.value)}}})]),_vm._v(\" \"),(_vm.$v.user.password.$dirty)?_c('div',{staticClass:\"form-error\"},[_c('ul',[(!_vm.$v.user.password.required)?_c('li',[_c('span',[_vm._v(_vm._s(_vm.$t('registration.validations.password_required')))])]):_vm._e()])]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"form-group\",class:{ 'form-group--error': _vm.$v.user.confirm.$error }},[_c('label',{staticClass:\"form--label\",attrs:{\"for\":\"sign-up-password-confirmation\"}},[_vm._v(_vm._s(_vm.$t('registration.password_confirm')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.user.confirm),expression:\"user.confirm\"}],staticClass:\"form-control\",attrs:{\"id\":\"sign-up-password-confirmation\",\"disabled\":_vm.isPending,\"type\":\"password\"},domProps:{\"value\":(_vm.user.confirm)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.user, \"confirm\", $event.target.value)}}})]),_vm._v(\" \"),(_vm.$v.user.confirm.$dirty)?_c('div',{staticClass:\"form-error\"},[_c('ul',[(!_vm.$v.user.confirm.required)?_c('li',[_c('span',[_vm._v(_vm._s(_vm.$t('registration.validations.password_confirmation_required')))])]):_vm._e(),_vm._v(\" \"),(!_vm.$v.user.confirm.sameAsPassword)?_c('li',[_c('span',[_vm._v(_vm._s(_vm.$t('registration.validations.password_confirmation_match')))])]):_vm._e()])]):_vm._e(),_vm._v(\" \"),(_vm.captcha.type != 'none')?_c('div',{staticClass:\"form-group\",attrs:{\"id\":\"captcha-group\"}},[_c('label',{staticClass:\"form--label\",attrs:{\"for\":\"captcha-label\"}},[_vm._v(_vm._s(_vm.$t('registration.captcha')))]),_vm._v(\" \"),(['kocaptcha', 'native'].includes(_vm.captcha.type))?[_c('img',{attrs:{\"src\":_vm.captcha.url},on:{\"click\":_vm.setCaptcha}}),_vm._v(\" \"),_c('sub',[_vm._v(_vm._s(_vm.$t('registration.new_captcha')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.captcha.solution),expression:\"captcha.solution\"}],staticClass:\"form-control\",attrs:{\"id\":\"captcha-answer\",\"disabled\":_vm.isPending,\"type\":\"text\",\"autocomplete\":\"off\",\"autocorrect\":\"off\",\"autocapitalize\":\"off\",\"spellcheck\":\"false\"},domProps:{\"value\":(_vm.captcha.solution)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.captcha, \"solution\", $event.target.value)}}})]:_vm._e()],2):_vm._e(),_vm._v(\" \"),(_vm.token)?_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"token\"}},[_vm._v(_vm._s(_vm.$t('registration.token')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.token),expression:\"token\"}],staticClass:\"form-control\",attrs:{\"id\":\"token\",\"disabled\":\"true\",\"type\":\"text\"},domProps:{\"value\":(_vm.token)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.token=$event.target.value}}})]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('button',{staticClass:\"btn btn-default\",attrs:{\"disabled\":_vm.isPending,\"type\":\"submit\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('general.submit'))+\"\\n \")])])]),_vm._v(\" \"),_c('div',{staticClass:\"terms-of-service\",domProps:{\"innerHTML\":_vm._s(_vm.termsOfService)}})]),_vm._v(\" \"),(_vm.serverValidationErrors.length)?_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"alert error\"},_vm._l((_vm.serverValidationErrors),function(error){return _c('span',{key:error},[_vm._v(_vm._s(error))])}),0)]):_vm._e()])])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import { reduce } from 'lodash'\n\nconst MASTODON_PASSWORD_RESET_URL = `/auth/password`\n\nconst resetPassword = ({ instance, email }) => {\n const params = { email }\n const query = reduce(params, (acc, v, k) => {\n const encoded = `${k}=${encodeURIComponent(v)}`\n return `${acc}&${encoded}`\n }, '')\n const url = `${instance}${MASTODON_PASSWORD_RESET_URL}?${query}`\n\n return window.fetch(url, {\n method: 'POST'\n })\n}\n\nexport default resetPassword\n","import { mapState } from 'vuex'\nimport passwordResetApi from '../../services/new_api/password_reset.js'\n\nconst passwordReset = {\n data: () => ({\n user: {\n email: ''\n },\n isPending: false,\n success: false,\n throttled: false,\n error: null\n }),\n computed: {\n ...mapState({\n signedIn: (state) => !!state.users.currentUser,\n instance: state => state.instance\n }),\n mailerEnabled () {\n return this.instance.mailerEnabled\n }\n },\n created () {\n if (this.signedIn) {\n this.$router.push({ name: 'root' })\n }\n },\n props: {\n passwordResetRequested: {\n default: false,\n type: Boolean\n }\n },\n methods: {\n dismissError () {\n this.error = null\n },\n submit () {\n this.isPending = true\n const email = this.user.email\n const instance = this.instance.server\n\n passwordResetApi({ instance, email }).then(({ status }) => {\n this.isPending = false\n this.user.email = ''\n\n if (status === 204) {\n this.success = true\n this.error = null\n } else if (status === 404 || status === 400) {\n this.error = this.$t('password_reset.not_found')\n this.$nextTick(() => {\n this.$refs.email.focus()\n })\n } else if (status === 429) {\n this.throttled = true\n this.error = this.$t('password_reset.too_many_requests')\n }\n }).catch(() => {\n this.isPending = false\n this.user.email = ''\n this.error = this.$t('general.generic_error')\n })\n }\n }\n}\n\nexport default passwordReset\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./password_reset.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./password_reset.js\"\nimport __vue_script__ from \"!!babel-loader!./password_reset.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-750c6ec4\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./password_reset.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"settings panel panel-default\"},[_c('div',{staticClass:\"panel-heading\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('password_reset.password_reset'))+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"panel-body\"},[_c('form',{staticClass:\"password-reset-form\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submit($event)}}},[_c('div',{staticClass:\"container\"},[(!_vm.mailerEnabled)?_c('div',[(_vm.passwordResetRequested)?_c('p',[_vm._v(\"\\n \"+_vm._s(_vm.$t('password_reset.password_reset_required_but_mailer_is_disabled'))+\"\\n \")]):_c('p',[_vm._v(\"\\n \"+_vm._s(_vm.$t('password_reset.password_reset_disabled'))+\"\\n \")])]):(_vm.success || _vm.throttled)?_c('div',[(_vm.success)?_c('p',[_vm._v(\"\\n \"+_vm._s(_vm.$t('password_reset.check_email'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"form-group text-center\"},[_c('router-link',{attrs:{\"to\":{name: 'root'}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('password_reset.return_home'))+\"\\n \")])],1)]):_c('div',[(_vm.passwordResetRequested)?_c('p',{staticClass:\"password-reset-required error\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('password_reset.password_reset_required'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),_c('p',[_vm._v(\"\\n \"+_vm._s(_vm.$t('password_reset.instruction'))+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.user.email),expression:\"user.email\"}],ref:\"email\",staticClass:\"form-control\",attrs:{\"disabled\":_vm.isPending,\"placeholder\":_vm.$t('password_reset.placeholder'),\"type\":\"input\"},domProps:{\"value\":(_vm.user.email)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.user, \"email\", $event.target.value)}}})]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('button',{staticClass:\"btn btn-default btn-block\",attrs:{\"disabled\":_vm.isPending,\"type\":\"submit\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('general.submit'))+\"\\n \")])])]),_vm._v(\" \"),(_vm.error)?_c('p',{staticClass:\"alert error notice-dismissible\"},[_c('span',[_vm._v(_vm._s(_vm.error))]),_vm._v(\" \"),_c('a',{staticClass:\"button-icon dismiss\",on:{\"click\":function($event){$event.preventDefault();_vm.dismissError()}}},[_c('i',{staticClass:\"icon-cancel\"})])]):_vm._e()])])])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import Cropper from 'cropperjs'\nimport 'cropperjs/dist/cropper.css'\n\nconst ImageCropper = {\n props: {\n trigger: {\n type: [String, window.Element],\n required: true\n },\n submitHandler: {\n type: Function,\n required: true\n },\n cropperOptions: {\n type: Object,\n default () {\n return {\n aspectRatio: 1,\n autoCropArea: 1,\n viewMode: 1,\n movable: false,\n zoomable: false,\n guides: false\n }\n }\n },\n mimes: {\n type: String,\n default: 'image/png, image/gif, image/jpeg, image/bmp, image/x-icon'\n },\n saveButtonLabel: {\n type: String\n },\n saveWithoutCroppingButtonlabel: {\n type: String\n },\n cancelButtonLabel: {\n type: String\n }\n },\n data () {\n return {\n cropper: undefined,\n dataUrl: undefined,\n filename: undefined,\n submitting: false,\n submitError: null\n }\n },\n computed: {\n saveText () {\n return this.saveButtonLabel || this.$t('image_cropper.save')\n },\n saveWithoutCroppingText () {\n return this.saveWithoutCroppingButtonlabel || this.$t('image_cropper.save_without_cropping')\n },\n cancelText () {\n return this.cancelButtonLabel || this.$t('image_cropper.cancel')\n },\n submitErrorMsg () {\n return this.submitError && this.submitError instanceof Error ? this.submitError.toString() : this.submitError\n }\n },\n methods: {\n destroy () {\n if (this.cropper) {\n this.cropper.destroy()\n }\n this.$refs.input.value = ''\n this.dataUrl = undefined\n this.$emit('close')\n },\n submit (cropping = true) {\n this.submitting = true\n this.avatarUploadError = null\n this.submitHandler(cropping && this.cropper, this.file)\n .then(() => this.destroy())\n .catch((err) => {\n this.submitError = err\n })\n .finally(() => {\n this.submitting = false\n })\n },\n pickImage () {\n this.$refs.input.click()\n },\n createCropper () {\n this.cropper = new Cropper(this.$refs.img, this.cropperOptions)\n },\n getTriggerDOM () {\n return typeof this.trigger === 'object' ? this.trigger : document.querySelector(this.trigger)\n },\n readFile () {\n const fileInput = this.$refs.input\n if (fileInput.files != null && fileInput.files[0] != null) {\n this.file = fileInput.files[0]\n let reader = new window.FileReader()\n reader.onload = (e) => {\n this.dataUrl = e.target.result\n this.$emit('open')\n }\n reader.readAsDataURL(this.file)\n this.$emit('changed', this.file, reader)\n }\n },\n clearError () {\n this.submitError = null\n }\n },\n mounted () {\n // listen for click event on trigger\n const trigger = this.getTriggerDOM()\n if (!trigger) {\n this.$emit('error', 'No image make trigger found.', 'user')\n } else {\n trigger.addEventListener('click', this.pickImage)\n }\n // listen for input file changes\n const fileInput = this.$refs.input\n fileInput.addEventListener('change', this.readFile)\n },\n beforeDestroy: function () {\n // remove the event listeners\n const trigger = this.getTriggerDOM()\n if (trigger) {\n trigger.removeEventListener('click', this.pickImage)\n }\n const fileInput = this.$refs.input\n fileInput.removeEventListener('change', this.readFile)\n }\n}\n\nexport default ImageCropper\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./image_cropper.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./image_cropper.js\"\nimport __vue_script__ from \"!!babel-loader!./image_cropper.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-3babea86\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./image_cropper.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"image-cropper\"},[(_vm.dataUrl)?_c('div',[_c('div',{staticClass:\"image-cropper-image-container\"},[_c('img',{ref:\"img\",attrs:{\"src\":_vm.dataUrl,\"alt\":\"\"},on:{\"load\":function($event){$event.stopPropagation();return _vm.createCropper($event)}}})]),_vm._v(\" \"),_c('div',{staticClass:\"image-cropper-buttons-wrapper\"},[_c('button',{staticClass:\"btn\",attrs:{\"type\":\"button\",\"disabled\":_vm.submitting},domProps:{\"textContent\":_vm._s(_vm.saveText)},on:{\"click\":function($event){_vm.submit()}}}),_vm._v(\" \"),_c('button',{staticClass:\"btn\",attrs:{\"type\":\"button\",\"disabled\":_vm.submitting},domProps:{\"textContent\":_vm._s(_vm.cancelText)},on:{\"click\":_vm.destroy}}),_vm._v(\" \"),_c('button',{staticClass:\"btn\",attrs:{\"type\":\"button\",\"disabled\":_vm.submitting},domProps:{\"textContent\":_vm._s(_vm.saveWithoutCroppingText)},on:{\"click\":function($event){_vm.submit(false)}}}),_vm._v(\" \"),(_vm.submitting)?_c('i',{staticClass:\"icon-spin4 animate-spin\"}):_vm._e()]),_vm._v(\" \"),(_vm.submitError)?_c('div',{staticClass:\"alert error\"},[_vm._v(\"\\n \"+_vm._s(_vm.submitErrorMsg)+\"\\n \"),_c('i',{staticClass:\"button-icon icon-cancel\",on:{\"click\":_vm.clearError}})]):_vm._e()]):_vm._e(),_vm._v(\" \"),_c('input',{ref:\"input\",staticClass:\"image-cropper-img-input\",attrs:{\"type\":\"file\",\"accept\":_vm.mimes}})])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import BasicUserCard from '../basic_user_card/basic_user_card.vue'\n\nconst BlockCard = {\n props: ['userId'],\n data () {\n return {\n progress: false\n }\n },\n computed: {\n user () {\n return this.$store.getters.findUser(this.userId)\n },\n relationship () {\n return this.$store.getters.relationship(this.userId)\n },\n blocked () {\n return this.relationship.blocking\n }\n },\n components: {\n BasicUserCard\n },\n methods: {\n unblockUser () {\n this.progress = true\n this.$store.dispatch('unblockUser', this.user.id).then(() => {\n this.progress = false\n })\n },\n blockUser () {\n this.progress = true\n this.$store.dispatch('blockUser', this.user.id).then(() => {\n this.progress = false\n })\n }\n }\n}\n\nexport default BlockCard\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./block_card.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./block_card.js\"\nimport __vue_script__ from \"!!babel-loader!./block_card.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-633eab92\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./block_card.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('basic-user-card',{attrs:{\"user\":_vm.user}},[_c('div',{staticClass:\"block-card-content-container\"},[(_vm.blocked)?_c('button',{staticClass:\"btn btn-default\",attrs:{\"disabled\":_vm.progress},on:{\"click\":_vm.unblockUser}},[(_vm.progress)?[_vm._v(\"\\n \"+_vm._s(_vm.$t('user_card.unblock_progress'))+\"\\n \")]:[_vm._v(\"\\n \"+_vm._s(_vm.$t('user_card.unblock'))+\"\\n \")]],2):_c('button',{staticClass:\"btn btn-default\",attrs:{\"disabled\":_vm.progress},on:{\"click\":_vm.blockUser}},[(_vm.progress)?[_vm._v(\"\\n \"+_vm._s(_vm.$t('user_card.block_progress'))+\"\\n \")]:[_vm._v(\"\\n \"+_vm._s(_vm.$t('user_card.block'))+\"\\n \")]],2)])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import BasicUserCard from '../basic_user_card/basic_user_card.vue'\n\nconst MuteCard = {\n props: ['userId'],\n data () {\n return {\n progress: false\n }\n },\n computed: {\n user () {\n return this.$store.getters.findUser(this.userId)\n },\n relationship () {\n return this.$store.getters.relationship(this.userId)\n },\n muted () {\n return this.relationship.muting\n }\n },\n components: {\n BasicUserCard\n },\n methods: {\n unmuteUser () {\n this.progress = true\n this.$store.dispatch('unmuteUser', this.userId).then(() => {\n this.progress = false\n })\n },\n muteUser () {\n this.progress = true\n this.$store.dispatch('muteUser', this.userId).then(() => {\n this.progress = false\n })\n }\n }\n}\n\nexport default MuteCard\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./mute_card.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./mute_card.js\"\nimport __vue_script__ from \"!!babel-loader!./mute_card.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-4de27707\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./mute_card.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('basic-user-card',{attrs:{\"user\":_vm.user}},[_c('div',{staticClass:\"mute-card-content-container\"},[(_vm.muted)?_c('button',{staticClass:\"btn btn-default\",attrs:{\"disabled\":_vm.progress},on:{\"click\":_vm.unmuteUser}},[(_vm.progress)?[_vm._v(\"\\n \"+_vm._s(_vm.$t('user_card.unmute_progress'))+\"\\n \")]:[_vm._v(\"\\n \"+_vm._s(_vm.$t('user_card.unmute'))+\"\\n \")]],2):_c('button',{staticClass:\"btn btn-default\",attrs:{\"disabled\":_vm.progress},on:{\"click\":_vm.muteUser}},[(_vm.progress)?[_vm._v(\"\\n \"+_vm._s(_vm.$t('user_card.mute_progress'))+\"\\n \")]:[_vm._v(\"\\n \"+_vm._s(_vm.$t('user_card.mute'))+\"\\n \")]],2)])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import ProgressButton from '../progress_button/progress_button.vue'\n\nconst DomainMuteCard = {\n props: ['domain'],\n components: {\n ProgressButton\n },\n methods: {\n unmuteDomain () {\n return this.$store.dispatch('unmuteDomain', this.domain)\n }\n }\n}\n\nexport default DomainMuteCard\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./domain_mute_card.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./domain_mute_card.js\"\nimport __vue_script__ from \"!!babel-loader!./domain_mute_card.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-77eaeb9c\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./domain_mute_card.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"domain-mute-card\"},[_c('div',{staticClass:\"domain-mute-card-domain\"},[_vm._v(\"\\n \"+_vm._s(_vm.domain)+\"\\n \")]),_vm._v(\" \"),_c('ProgressButton',{staticClass:\"btn btn-default\",attrs:{\"click\":_vm.unmuteDomain}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('domain_mute_card.unmute'))+\"\\n \"),_c('template',{slot:\"progress\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('domain_mute_card.unmute_progress'))+\"\\n \")])],2)],1)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import List from '../list/list.vue'\nimport Checkbox from '../checkbox/checkbox.vue'\n\nconst SelectableList = {\n components: {\n List,\n Checkbox\n },\n props: {\n items: {\n type: Array,\n default: () => []\n },\n getKey: {\n type: Function,\n default: item => item.id\n }\n },\n data () {\n return {\n selected: []\n }\n },\n computed: {\n allKeys () {\n return this.items.map(this.getKey)\n },\n filteredSelected () {\n return this.allKeys.filter(key => this.selected.indexOf(key) !== -1)\n },\n allSelected () {\n return this.filteredSelected.length === this.items.length\n },\n noneSelected () {\n return this.filteredSelected.length === 0\n },\n someSelected () {\n return !this.allSelected && !this.noneSelected\n }\n },\n methods: {\n isSelected (item) {\n return this.filteredSelected.indexOf(this.getKey(item)) !== -1\n },\n toggle (checked, item) {\n const key = this.getKey(item)\n const oldChecked = this.isSelected(key)\n if (checked !== oldChecked) {\n if (checked) {\n this.selected.push(key)\n } else {\n this.selected.splice(this.selected.indexOf(key), 1)\n }\n }\n },\n toggleAll (value) {\n if (value) {\n this.selected = this.allKeys.slice(0)\n } else {\n this.selected = []\n }\n }\n }\n}\n\nexport default SelectableList\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./selectable_list.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./selectable_list.js\"\nimport __vue_script__ from \"!!babel-loader!./selectable_list.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-059c811c\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./selectable_list.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"selectable-list\"},[(_vm.items.length > 0)?_c('div',{staticClass:\"selectable-list-header\"},[_c('div',{staticClass:\"selectable-list-checkbox-wrapper\"},[_c('Checkbox',{attrs:{\"checked\":_vm.allSelected,\"indeterminate\":_vm.someSelected},on:{\"change\":_vm.toggleAll}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('selectable_list.select_all'))+\"\\n \")])],1),_vm._v(\" \"),_c('div',{staticClass:\"selectable-list-header-actions\"},[_vm._t(\"header\",null,{selected:_vm.filteredSelected})],2)]):_vm._e(),_vm._v(\" \"),_c('List',{attrs:{\"items\":_vm.items,\"get-key\":_vm.getKey},scopedSlots:_vm._u([{key:\"item\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('div',{staticClass:\"selectable-list-item-inner\",class:{ 'selectable-list-item-selected-inner': _vm.isSelected(item) }},[_c('div',{staticClass:\"selectable-list-checkbox-wrapper\"},[_c('Checkbox',{attrs:{\"checked\":_vm.isSelected(item)},on:{\"change\":function (checked) { return _vm.toggle(checked, item); }}})],1),_vm._v(\" \"),_vm._t(\"item\",null,{item:item})],2)]}}])},[_c('template',{slot:\"empty\"},[_vm._t(\"empty\")],2)],2)],1)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","const debounceMilliseconds = 500\n\nexport default {\n props: {\n query: { // function to query results and return a promise\n type: Function,\n required: true\n },\n filter: { // function to filter results in real time\n type: Function\n },\n placeholder: {\n type: String,\n default: 'Search...'\n }\n },\n data () {\n return {\n term: '',\n timeout: null,\n results: [],\n resultsVisible: false\n }\n },\n computed: {\n filtered () {\n return this.filter ? this.filter(this.results) : this.results\n }\n },\n watch: {\n term (val) {\n this.fetchResults(val)\n }\n },\n methods: {\n fetchResults (term) {\n clearTimeout(this.timeout)\n this.timeout = setTimeout(() => {\n this.results = []\n if (term) {\n this.query(term).then((results) => { this.results = results })\n }\n }, debounceMilliseconds)\n },\n onInputClick () {\n this.resultsVisible = true\n },\n onClickOutside () {\n this.resultsVisible = false\n }\n }\n}\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./autosuggest.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./autosuggest.js\"\nimport __vue_script__ from \"!!babel-loader!./autosuggest.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-105e6799\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./autosuggest.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"click-outside\",rawName:\"v-click-outside\",value:(_vm.onClickOutside),expression:\"onClickOutside\"}],staticClass:\"autosuggest\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.term),expression:\"term\"}],staticClass:\"autosuggest-input\",attrs:{\"placeholder\":_vm.placeholder},domProps:{\"value\":(_vm.term)},on:{\"click\":_vm.onInputClick,\"input\":function($event){if($event.target.composing){ return; }_vm.term=$event.target.value}}}),_vm._v(\" \"),(_vm.resultsVisible && _vm.filtered.length > 0)?_c('div',{staticClass:\"autosuggest-results\"},[_vm._l((_vm.filtered),function(item){return _vm._t(\"default\",null,{item:item})})],2):_vm._e()])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","const Importer = {\n props: {\n submitHandler: {\n type: Function,\n required: true\n },\n submitButtonLabel: {\n type: String,\n default () {\n return this.$t('importer.submit')\n }\n },\n successMessage: {\n type: String,\n default () {\n return this.$t('importer.success')\n }\n },\n errorMessage: {\n type: String,\n default () {\n return this.$t('importer.error')\n }\n }\n },\n data () {\n return {\n file: null,\n error: false,\n success: false,\n submitting: false\n }\n },\n methods: {\n change () {\n this.file = this.$refs.input.files[0]\n },\n submit () {\n this.dismiss()\n this.submitting = true\n this.submitHandler(this.file)\n .then(() => { this.success = true })\n .catch(() => { this.error = true })\n .finally(() => { this.submitting = false })\n },\n dismiss () {\n this.success = false\n this.error = false\n }\n }\n}\n\nexport default Importer\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./importer.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./importer.js\"\nimport __vue_script__ from \"!!babel-loader!./importer.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-4927596c\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./importer.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"importer\"},[_c('form',[_c('input',{ref:\"input\",attrs:{\"type\":\"file\"},on:{\"change\":_vm.change}})]),_vm._v(\" \"),(_vm.submitting)?_c('i',{staticClass:\"icon-spin4 animate-spin importer-uploading\"}):_c('button',{staticClass:\"btn btn-default\",on:{\"click\":_vm.submit}},[_vm._v(\"\\n \"+_vm._s(_vm.submitButtonLabel)+\"\\n \")]),_vm._v(\" \"),(_vm.success)?_c('div',[_c('i',{staticClass:\"icon-cross\",on:{\"click\":_vm.dismiss}}),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.successMessage))])]):(_vm.error)?_c('div',[_c('i',{staticClass:\"icon-cross\",on:{\"click\":_vm.dismiss}}),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.errorMessage))])]):_vm._e()])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","const Exporter = {\n props: {\n getContent: {\n type: Function,\n required: true\n },\n filename: {\n type: String,\n default: 'export.csv'\n },\n exportButtonLabel: {\n type: String,\n default () {\n return this.$t('exporter.export')\n }\n },\n processingMessage: {\n type: String,\n default () {\n return this.$t('exporter.processing')\n }\n }\n },\n data () {\n return {\n processing: false\n }\n },\n methods: {\n process () {\n this.processing = true\n this.getContent()\n .then((content) => {\n const fileToDownload = document.createElement('a')\n fileToDownload.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(content))\n fileToDownload.setAttribute('download', this.filename)\n fileToDownload.style.display = 'none'\n document.body.appendChild(fileToDownload)\n fileToDownload.click()\n document.body.removeChild(fileToDownload)\n // Add delay before hiding processing state since browser takes some time to handle file download\n setTimeout(() => { this.processing = false }, 2000)\n })\n }\n }\n}\n\nexport default Exporter\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./exporter.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./exporter.js\"\nimport __vue_script__ from \"!!babel-loader!./exporter.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-7229517a\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./exporter.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"exporter\"},[(_vm.processing)?_c('div',[_c('i',{staticClass:\"icon-spin4 animate-spin exporter-processing\"}),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.processingMessage))])]):_c('button',{staticClass:\"btn btn-default\",on:{\"click\":_vm.process}},[_vm._v(\"\\n \"+_vm._s(_vm.exportButtonLabel)+\"\\n \")])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import Vue from 'vue'\nimport isEmpty from 'lodash/isEmpty'\nimport { getComponentProps } from '../../services/component_utils/component_utils'\nimport './with_subscription.scss'\n\nconst withSubscription = ({\n fetch, // function to fetch entries and return a promise\n select, // function to select data from store\n childPropName = 'content', // name of the prop to be passed into the wrapped component\n additionalPropNames = [] // additional prop name list of the wrapper component\n}) => (WrappedComponent) => {\n const originalProps = Object.keys(getComponentProps(WrappedComponent))\n const props = originalProps.filter(v => v !== childPropName).concat(additionalPropNames)\n\n return Vue.component('withSubscription', {\n props: [\n ...props,\n 'refresh' // boolean saying to force-fetch data whenever created\n ],\n data () {\n return {\n loading: false,\n error: false\n }\n },\n computed: {\n fetchedData () {\n return select(this.$props, this.$store)\n }\n },\n created () {\n if (this.refresh || isEmpty(this.fetchedData)) {\n this.fetchData()\n }\n },\n methods: {\n fetchData () {\n if (!this.loading) {\n this.loading = true\n this.error = false\n fetch(this.$props, this.$store)\n .then(() => {\n this.loading = false\n })\n .catch(() => {\n this.error = true\n this.loading = false\n })\n }\n }\n },\n render (h) {\n if (!this.error && !this.loading) {\n const props = {\n props: {\n ...this.$props,\n [childPropName]: this.fetchedData\n },\n on: this.$listeners,\n scopedSlots: this.$scopedSlots\n }\n const children = Object.entries(this.$slots).map(([key, value]) => h('template', { slot: key }, value))\n return (\n <div class=\"with-subscription\">\n <WrappedComponent {...props}>\n {children}\n </WrappedComponent>\n </div>\n )\n } else {\n return (\n <div class=\"with-subscription-loading\">\n {this.error\n ? <a onClick={this.fetchData} class=\"alert error\">{this.$t('general.generic_error')}</a>\n : <i class=\"icon-spin3 animate-spin\"/>\n }\n </div>\n )\n }\n }\n })\n}\n\nexport default withSubscription\n","export default {\n props: {\n backupCodes: {\n type: Object,\n default: () => ({\n inProgress: false,\n codes: []\n })\n }\n },\n data: () => ({}),\n computed: {\n inProgress () { return this.backupCodes.inProgress },\n ready () { return this.backupCodes.codes.length > 0 },\n displayTitle () { return this.inProgress || this.ready }\n }\n}\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./mfa_backup_codes.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./mfa_backup_codes.js\"\nimport __vue_script__ from \"!!babel-loader!./mfa_backup_codes.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-613f1377\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./mfa_backup_codes.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.displayTitle)?_c('h4',[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.mfa.recovery_codes'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.inProgress)?_c('i',[_vm._v(_vm._s(_vm.$t('settings.mfa.waiting_a_recovery_codes')))]):_vm._e(),_vm._v(\" \"),(_vm.ready)?[_c('p',{staticClass:\"alert warning\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.mfa.recovery_codes_warning'))+\"\\n \")]),_vm._v(\" \"),_c('ul',{staticClass:\"backup-codes\"},_vm._l((_vm.backupCodes.codes),function(code){return _c('li',{key:code},[_vm._v(\"\\n \"+_vm._s(code)+\"\\n \")])}),0)]:_vm._e()],2)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","const Confirm = {\n props: ['disabled'],\n data: () => ({}),\n methods: {\n confirm () { this.$emit('confirm') },\n cancel () { this.$emit('cancel') }\n }\n}\nexport default Confirm\n","/* script */\nexport * from \"!!babel-loader!./confirm.js\"\nimport __vue_script__ from \"!!babel-loader!./confirm.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-20b6e7b3\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./confirm.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_vm._t(\"default\"),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-default\",attrs:{\"disabled\":_vm.disabled},on:{\"click\":_vm.confirm}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('general.confirm'))+\"\\n \")]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-default\",attrs:{\"disabled\":_vm.disabled},on:{\"click\":_vm.cancel}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('general.cancel'))+\"\\n \")])],2)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import Confirm from './confirm.vue'\nimport { mapState } from 'vuex'\n\nexport default {\n props: ['settings'],\n data: () => ({\n error: false,\n currentPassword: '',\n deactivate: false,\n inProgress: false // progress peform request to disable otp method\n }),\n components: {\n 'confirm': Confirm\n },\n computed: {\n isActivated () {\n return this.settings.totp\n },\n ...mapState({\n backendInteractor: (state) => state.api.backendInteractor\n })\n },\n methods: {\n doActivate () {\n this.$emit('activate')\n },\n cancelDeactivate () { this.deactivate = false },\n doDeactivate () {\n this.error = null\n this.deactivate = true\n },\n confirmDeactivate () { // confirm deactivate TOTP method\n this.error = null\n this.inProgress = true\n this.backendInteractor.mfaDisableOTP({\n password: this.currentPassword\n })\n .then((res) => {\n this.inProgress = false\n if (res.error) {\n this.error = res.error\n return\n }\n this.deactivate = false\n this.$emit('deactivate')\n })\n }\n }\n}\n","import RecoveryCodes from './mfa_backup_codes.vue'\nimport TOTP from './mfa_totp.vue'\nimport Confirm from './confirm.vue'\nimport VueQrcode from '@chenfengyuan/vue-qrcode'\nimport { mapState } from 'vuex'\n\nconst Mfa = {\n data: () => ({\n settings: { // current settings of MFA\n available: false,\n enabled: false,\n totp: false\n },\n setupState: { // setup mfa\n state: '', // state of setup. '' -> 'getBackupCodes' -> 'setupOTP' -> 'complete'\n setupOTPState: '' // state of setup otp. '' -> 'prepare' -> 'confirm' -> 'complete'\n },\n backupCodes: {\n getNewCodes: false,\n inProgress: false, // progress of fetch codes\n codes: []\n },\n otpSettings: { // pre-setup setting of OTP. secret key, qrcode url.\n provisioning_uri: '',\n key: ''\n },\n currentPassword: null,\n otpConfirmToken: null,\n error: null,\n readyInit: false\n }),\n components: {\n 'recovery-codes': RecoveryCodes,\n 'totp-item': TOTP,\n 'qrcode': VueQrcode,\n 'confirm': Confirm\n },\n computed: {\n canSetupOTP () {\n return (\n (this.setupInProgress && this.backupCodesPrepared) ||\n this.settings.enabled\n ) && !this.settings.totp && !this.setupOTPInProgress\n },\n setupInProgress () {\n return this.setupState.state !== '' && this.setupState.state !== 'complete'\n },\n setupOTPInProgress () {\n return this.setupState.state === 'setupOTP' && !this.completedOTP\n },\n prepareOTP () {\n return this.setupState.setupOTPState === 'prepare'\n },\n confirmOTP () {\n return this.setupState.setupOTPState === 'confirm'\n },\n completedOTP () {\n return this.setupState.setupOTPState === 'completed'\n },\n backupCodesPrepared () {\n return !this.backupCodes.inProgress && this.backupCodes.codes.length > 0\n },\n confirmNewBackupCodes () {\n return this.backupCodes.getNewCodes\n },\n ...mapState({\n backendInteractor: (state) => state.api.backendInteractor\n })\n },\n\n methods: {\n activateOTP () {\n if (!this.settings.enabled) {\n this.setupState.state = 'getBackupcodes'\n this.fetchBackupCodes()\n }\n },\n fetchBackupCodes () {\n this.backupCodes.inProgress = true\n this.backupCodes.codes = []\n\n return this.backendInteractor.generateMfaBackupCodes()\n .then((res) => {\n this.backupCodes.codes = res.codes\n this.backupCodes.inProgress = false\n })\n },\n getBackupCodes () { // get a new backup codes\n this.backupCodes.getNewCodes = true\n },\n confirmBackupCodes () { // confirm getting new backup codes\n this.fetchBackupCodes().then((res) => {\n this.backupCodes.getNewCodes = false\n })\n },\n cancelBackupCodes () { // cancel confirm form of new backup codes\n this.backupCodes.getNewCodes = false\n },\n\n // Setup OTP\n setupOTP () { // prepare setup OTP\n this.setupState.state = 'setupOTP'\n this.setupState.setupOTPState = 'prepare'\n this.backendInteractor.mfaSetupOTP()\n .then((res) => {\n this.otpSettings = res\n this.setupState.setupOTPState = 'confirm'\n })\n },\n doConfirmOTP () { // handler confirm enable OTP\n this.error = null\n this.backendInteractor.mfaConfirmOTP({\n token: this.otpConfirmToken,\n password: this.currentPassword\n })\n .then((res) => {\n if (res.error) {\n this.error = res.error\n return\n }\n this.completeSetup()\n })\n },\n\n completeSetup () {\n this.setupState.setupOTPState = 'complete'\n this.setupState.state = 'complete'\n this.currentPassword = null\n this.error = null\n this.fetchSettings()\n },\n cancelSetup () { // cancel setup\n this.setupState.setupOTPState = ''\n this.setupState.state = ''\n this.currentPassword = null\n this.error = null\n },\n // end Setup OTP\n\n // fetch settings from server\n async fetchSettings () {\n let result = await this.backendInteractor.settingsMFA()\n if (result.error) return\n this.settings = result.settings\n this.settings.available = true\n return result\n }\n },\n mounted () {\n this.fetchSettings().then(() => {\n this.readyInit = true\n })\n }\n}\nexport default Mfa\n","/* script */\nexport * from \"!!babel-loader!./mfa_totp.js\"\nimport __vue_script__ from \"!!babel-loader!./mfa_totp.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-df66df96\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./mfa_totp.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"method-item\"},[_c('strong',[_vm._v(_vm._s(_vm.$t('settings.mfa.otp')))]),_vm._v(\" \"),(!_vm.isActivated)?_c('button',{staticClass:\"btn btn-default\",on:{\"click\":_vm.doActivate}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('general.enable'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.isActivated)?_c('button',{staticClass:\"btn btn-default\",attrs:{\"disabled\":_vm.deactivate},on:{\"click\":_vm.doDeactivate}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('general.disable'))+\"\\n \")]):_vm._e()]),_vm._v(\" \"),(_vm.deactivate)?_c('confirm',{attrs:{\"disabled\":_vm.inProgress},on:{\"confirm\":_vm.confirmDeactivate,\"cancel\":_vm.cancelDeactivate}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.enter_current_password_to_confirm'))+\":\\n \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.currentPassword),expression:\"currentPassword\"}],attrs:{\"type\":\"password\"},domProps:{\"value\":(_vm.currentPassword)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.currentPassword=$event.target.value}}})]):_vm._e(),_vm._v(\" \"),(_vm.error)?_c('div',{staticClass:\"alert error\"},[_vm._v(\"\\n \"+_vm._s(_vm.error)+\"\\n \")]):_vm._e()],1)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./mfa.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./mfa.js\"\nimport __vue_script__ from \"!!babel-loader!./mfa.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-e9d3ba70\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./mfa.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.readyInit && _vm.settings.available)?_c('div',{staticClass:\"setting-item mfa-settings\"},[_c('div',{staticClass:\"mfa-heading\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('settings.mfa.title')))])]),_vm._v(\" \"),_c('div',[(!_vm.setupInProgress)?_c('div',{staticClass:\"setting-item\"},[_c('h3',[_vm._v(_vm._s(_vm.$t('settings.mfa.authentication_methods')))]),_vm._v(\" \"),_c('totp-item',{attrs:{\"settings\":_vm.settings},on:{\"deactivate\":_vm.fetchSettings,\"activate\":_vm.activateOTP}}),_vm._v(\" \"),_c('br'),_vm._v(\" \"),(_vm.settings.enabled)?_c('div',[(!_vm.confirmNewBackupCodes)?_c('recovery-codes',{attrs:{\"backup-codes\":_vm.backupCodes}}):_vm._e(),_vm._v(\" \"),(!_vm.confirmNewBackupCodes)?_c('button',{staticClass:\"btn btn-default\",on:{\"click\":_vm.getBackupCodes}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.mfa.generate_new_recovery_codes'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.confirmNewBackupCodes)?_c('div',[_c('confirm',{attrs:{\"disabled\":_vm.backupCodes.inProgress},on:{\"confirm\":_vm.confirmBackupCodes,\"cancel\":_vm.cancelBackupCodes}},[_c('p',{staticClass:\"warning\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.mfa.warning_of_generate_new_codes'))+\"\\n \")])])],1):_vm._e()],1):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.setupInProgress)?_c('div',[_c('h3',[_vm._v(_vm._s(_vm.$t('settings.mfa.setup_otp')))]),_vm._v(\" \"),(!_vm.setupOTPInProgress)?_c('recovery-codes',{attrs:{\"backup-codes\":_vm.backupCodes}}):_vm._e(),_vm._v(\" \"),(_vm.canSetupOTP)?_c('button',{staticClass:\"btn btn-default\",on:{\"click\":_vm.cancelSetup}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('general.cancel'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.canSetupOTP)?_c('button',{staticClass:\"btn btn-default\",on:{\"click\":_vm.setupOTP}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.mfa.setup_otp'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.setupOTPInProgress)?[(_vm.prepareOTP)?_c('i',[_vm._v(_vm._s(_vm.$t('settings.mfa.wait_pre_setup_otp')))]):_vm._e(),_vm._v(\" \"),(_vm.confirmOTP)?_c('div',[_c('div',{staticClass:\"setup-otp\"},[_c('div',{staticClass:\"qr-code\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('settings.mfa.scan.title')))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('settings.mfa.scan.desc')))]),_vm._v(\" \"),_c('qrcode',{attrs:{\"value\":_vm.otpSettings.provisioning_uri,\"options\":{ width: 200 }}}),_vm._v(\" \"),_c('p',[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.mfa.scan.secret_code'))+\":\\n \"+_vm._s(_vm.otpSettings.key)+\"\\n \")])],1),_vm._v(\" \"),_c('div',{staticClass:\"verify\"},[_c('h4',[_vm._v(_vm._s(_vm.$t('general.verify')))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('settings.mfa.verify.desc')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.otpConfirmToken),expression:\"otpConfirmToken\"}],attrs:{\"type\":\"text\"},domProps:{\"value\":(_vm.otpConfirmToken)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.otpConfirmToken=$event.target.value}}}),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('settings.enter_current_password_to_confirm'))+\":\")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.currentPassword),expression:\"currentPassword\"}],attrs:{\"type\":\"password\"},domProps:{\"value\":(_vm.currentPassword)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.currentPassword=$event.target.value}}}),_vm._v(\" \"),_c('div',{staticClass:\"confirm-otp-actions\"},[_c('button',{staticClass:\"btn btn-default\",on:{\"click\":_vm.doConfirmOTP}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.mfa.confirm_and_enable'))+\"\\n \")]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-default\",on:{\"click\":_vm.cancelSetup}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('general.cancel'))+\"\\n \")])]),_vm._v(\" \"),(_vm.error)?_c('div',{staticClass:\"alert error\"},[_vm._v(\"\\n \"+_vm._s(_vm.error)+\"\\n \")]):_vm._e()])])]):_vm._e()]:_vm._e()],2):_vm._e()])]):_vm._e()}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import unescape from 'lodash/unescape'\nimport get from 'lodash/get'\nimport map from 'lodash/map'\nimport reject from 'lodash/reject'\nimport TabSwitcher from '../tab_switcher/tab_switcher.js'\nimport ImageCropper from '../image_cropper/image_cropper.vue'\nimport StyleSwitcher from '../style_switcher/style_switcher.vue'\nimport ScopeSelector from '../scope_selector/scope_selector.vue'\nimport fileSizeFormatService from '../../services/file_size_format/file_size_format.js'\nimport BlockCard from '../block_card/block_card.vue'\nimport MuteCard from '../mute_card/mute_card.vue'\nimport DomainMuteCard from '../domain_mute_card/domain_mute_card.vue'\nimport SelectableList from '../selectable_list/selectable_list.vue'\nimport ProgressButton from '../progress_button/progress_button.vue'\nimport EmojiInput from '../emoji_input/emoji_input.vue'\nimport suggestor from '../emoji_input/suggestor.js'\nimport Autosuggest from '../autosuggest/autosuggest.vue'\nimport Importer from '../importer/importer.vue'\nimport Exporter from '../exporter/exporter.vue'\nimport withSubscription from '../../hocs/with_subscription/with_subscription'\nimport Checkbox from '../checkbox/checkbox.vue'\nimport Mfa from './mfa.vue'\n\nconst BlockList = withSubscription({\n fetch: (props, $store) => $store.dispatch('fetchBlocks'),\n select: (props, $store) => get($store.state.users.currentUser, 'blockIds', []),\n childPropName: 'items'\n})(SelectableList)\n\nconst MuteList = withSubscription({\n fetch: (props, $store) => $store.dispatch('fetchMutes'),\n select: (props, $store) => get($store.state.users.currentUser, 'muteIds', []),\n childPropName: 'items'\n})(SelectableList)\n\nconst DomainMuteList = withSubscription({\n fetch: (props, $store) => $store.dispatch('fetchDomainMutes'),\n select: (props, $store) => get($store.state.users.currentUser, 'domainMutes', []),\n childPropName: 'items'\n})(SelectableList)\n\nconst UserSettings = {\n data () {\n return {\n newEmail: '',\n newName: this.$store.state.users.currentUser.name,\n newBio: unescape(this.$store.state.users.currentUser.description),\n newLocked: this.$store.state.users.currentUser.locked,\n newNoRichText: this.$store.state.users.currentUser.no_rich_text,\n newDefaultScope: this.$store.state.users.currentUser.default_scope,\n hideFollows: this.$store.state.users.currentUser.hide_follows,\n hideFollowers: this.$store.state.users.currentUser.hide_followers,\n hideFollowsCount: this.$store.state.users.currentUser.hide_follows_count,\n hideFollowersCount: this.$store.state.users.currentUser.hide_followers_count,\n showRole: this.$store.state.users.currentUser.show_role,\n role: this.$store.state.users.currentUser.role,\n discoverable: this.$store.state.users.currentUser.discoverable,\n allowFollowingMove: this.$store.state.users.currentUser.allow_following_move,\n pickAvatarBtnVisible: true,\n bannerUploading: false,\n backgroundUploading: false,\n banner: null,\n bannerPreview: null,\n background: null,\n backgroundPreview: null,\n bannerUploadError: null,\n backgroundUploadError: null,\n 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 newDomainToMute: ''\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 DomainMuteList,\n EmojiInput,\n Autosuggest,\n BlockCard,\n MuteCard,\n DomainMuteCard,\n ProgressButton,\n Importer,\n Exporter,\n Mfa,\n Checkbox\n },\n computed: {\n user () {\n return this.$store.state.users.currentUser\n },\n emojiUserSuggestor () {\n return suggestor({\n emoji: [\n ...this.$store.state.instance.emoji,\n ...this.$store.state.instance.customEmoji\n ],\n users: this.$store.state.users.users,\n updateUsersList: (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 allow_following_move: this.allowFollowingMove,\n hide_follows_count: this.hideFollowsCount,\n hide_followers_count: this.hideFollowersCount,\n show_role: this.showRole\n /* eslint-enable camelcase */\n } }).then((user) => {\n this.$store.commit('addNewUsers', [user])\n this.$store.commit('setCurrentUser', user)\n })\n },\n updateNotificationSettings () {\n this.$store.state.api.backendInteractor\n .updateNotificationSettings({ settings: this.notificationSettings })\n },\n changeVis (visibility) {\n this.newDefaultScope = visibility\n },\n uploadFile (slot, e) {\n const file = e.target.files[0]\n if (!file) { return }\n if (file.size > this.$store.state.instance[slot + 'limit']) {\n const filesize = fileSizeFormatService.fileSizeFormat(file.size)\n const allowedsize = fileSizeFormatService.fileSizeFormat(this.$store.state.instance[slot + 'limit'])\n this[slot + 'UploadError'] = this.$t('upload.error.base') + ' ' + this.$t('upload.error.file_too_big', { filesize: filesize.num, filesizeunit: filesize.unit, allowedsize: allowedsize.num, allowedsizeunit: allowedsize.unit })\n return\n }\n // eslint-disable-next-line no-undef\n const reader = new FileReader()\n reader.onload = ({ target }) => {\n const img = target.result\n this[slot + 'Preview'] = img\n this[slot] = file\n }\n reader.readAsDataURL(file)\n },\n submitAvatar (cropper, file) {\n const that = this\n return new Promise((resolve, reject) => {\n function updateAvatar (avatar) {\n that.$store.state.api.backendInteractor.updateAvatar({ avatar })\n .then((user) => {\n that.$store.commit('addNewUsers', [user])\n that.$store.commit('setCurrentUser', user)\n resolve()\n })\n .catch((err) => {\n reject(new Error(that.$t('upload.error.base') + ' ' + err.message))\n })\n }\n\n if (cropper) {\n cropper.getCroppedCanvas().toBlob(updateAvatar, file.type)\n } else {\n updateAvatar(file)\n }\n })\n },\n clearUploadError (slot) {\n this[slot + 'UploadError'] = null\n },\n submitBanner () {\n if (!this.bannerPreview) { return }\n\n this.bannerUploading = true\n this.$store.state.api.backendInteractor.updateBanner({ banner: this.banner })\n .then((user) => {\n this.$store.commit('addNewUsers', [user])\n this.$store.commit('setCurrentUser', user)\n this.bannerPreview = null\n })\n .catch((err) => {\n this.bannerUploadError = this.$t('upload.error.base') + ' ' + err.message\n })\n .then(() => { this.bannerUploading = false })\n },\n submitBg () {\n if (!this.backgroundPreview) { return }\n let background = this.background\n this.backgroundUploading = true\n this.$store.state.api.backendInteractor.updateBg({ background }).then((data) => {\n if (!data.error) {\n this.$store.commit('addNewUsers', [data])\n this.$store.commit('setCurrentUser', data)\n this.backgroundPreview = null\n } else {\n this.backgroundUploadError = this.$t('upload.error.base') + data.error\n }\n this.backgroundUploading = false\n })\n },\n 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 relationship = this.$store.getters.relationship(this.userId)\n return relationship.blocking || userId === this.$store.state.users.currentUser.id\n })\n },\n filterUnMutedUsers (userIds) {\n return reject(userIds, (userId) => {\n const relationship = this.$store.getters.relationship(this.userId)\n return relationship.muting || userId === this.$store.state.users.currentUser.id\n })\n },\n queryUserIds (query) {\n return this.$store.dispatch('searchUsers', query)\n .then((users) => map(users, 'id'))\n },\n blockUsers (ids) {\n return this.$store.dispatch('blockUsers', ids)\n },\n unblockUsers (ids) {\n return this.$store.dispatch('unblockUsers', ids)\n },\n muteUsers (ids) {\n return this.$store.dispatch('muteUsers', ids)\n },\n unmuteUsers (ids) {\n return this.$store.dispatch('unmuteUsers', ids)\n },\n unmuteDomains (domains) {\n return this.$store.dispatch('unmuteDomains', domains)\n },\n muteDomain () {\n return this.$store.dispatch('muteDomain', this.newDomainToMute)\n .then(() => { this.newDomainToMute = '' })\n },\n identity (value) {\n return value\n }\n }\n}\n\nexport default UserSettings\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./user_settings.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./user_settings.js\"\nimport __vue_script__ from \"!!babel-loader!./user_settings.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-7f601130\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./user_settings.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"settings panel panel-default\"},[_c('div',{staticClass:\"panel-heading\"},[_c('div',{staticClass:\"title\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.user_settings'))+\"\\n \")]),_vm._v(\" \"),_c('transition',{attrs:{\"name\":\"fade\"}},[(_vm.currentSaveStateNotice)?[(_vm.currentSaveStateNotice.error)?_c('div',{staticClass:\"alert error\",on:{\"click\":function($event){$event.preventDefault();}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.saving_err'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(!_vm.currentSaveStateNotice.error)?_c('div',{staticClass:\"alert transparent\",on:{\"click\":function($event){$event.preventDefault();}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.saving_ok'))+\"\\n \")]):_vm._e()]:_vm._e()],2)],1),_vm._v(\" \"),_c('div',{staticClass:\"panel-body profile-edit\"},[_c('tab-switcher',[_c('div',{attrs:{\"label\":_vm.$t('settings.profile_tab')}},[_c('div',{staticClass:\"setting-item\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('settings.name_bio')))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('settings.name')))]),_vm._v(\" \"),_c('EmojiInput',{attrs:{\"enable-emoji-picker\":\"\",\"suggest\":_vm.emojiSuggestor},model:{value:(_vm.newName),callback:function ($$v) {_vm.newName=$$v},expression:\"newName\"}},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.newName),expression:\"newName\"}],attrs:{\"id\":\"username\",\"classname\":\"name-changer\"},domProps:{\"value\":(_vm.newName)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.newName=$event.target.value}}})]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('settings.bio')))]),_vm._v(\" \"),_c('EmojiInput',{attrs:{\"enable-emoji-picker\":\"\",\"suggest\":_vm.emojiUserSuggestor},model:{value:(_vm.newBio),callback:function ($$v) {_vm.newBio=$$v},expression:\"newBio\"}},[_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.newBio),expression:\"newBio\"}],attrs:{\"classname\":\"bio\"},domProps:{\"value\":(_vm.newBio)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.newBio=$event.target.value}}})]),_vm._v(\" \"),_c('p',[_c('Checkbox',{model:{value:(_vm.newLocked),callback:function ($$v) {_vm.newLocked=$$v},expression:\"newLocked\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.lock_account_description'))+\"\\n \")])],1),_vm._v(\" \"),_c('div',[_c('label',{attrs:{\"for\":\"default-vis\"}},[_vm._v(_vm._s(_vm.$t('settings.default_vis')))]),_vm._v(\" \"),_c('div',{staticClass:\"visibility-tray\",attrs:{\"id\":\"default-vis\"}},[_c('scope-selector',{attrs:{\"show-all\":true,\"user-default\":_vm.newDefaultScope,\"initial-scope\":_vm.newDefaultScope,\"on-scope-change\":_vm.changeVis}})],1)]),_vm._v(\" \"),_c('p',[_c('Checkbox',{model:{value:(_vm.newNoRichText),callback:function ($$v) {_vm.newNoRichText=$$v},expression:\"newNoRichText\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.no_rich_text_description'))+\"\\n \")])],1),_vm._v(\" \"),_c('p',[_c('Checkbox',{model:{value:(_vm.hideFollows),callback:function ($$v) {_vm.hideFollows=$$v},expression:\"hideFollows\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.hide_follows_description'))+\"\\n \")])],1),_vm._v(\" \"),_c('p',{staticClass:\"setting-subitem\"},[_c('Checkbox',{attrs:{\"disabled\":!_vm.hideFollows},model:{value:(_vm.hideFollowsCount),callback:function ($$v) {_vm.hideFollowsCount=$$v},expression:\"hideFollowsCount\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.hide_follows_count_description'))+\"\\n \")])],1),_vm._v(\" \"),_c('p',[_c('Checkbox',{model:{value:(_vm.hideFollowers),callback:function ($$v) {_vm.hideFollowers=$$v},expression:\"hideFollowers\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.hide_followers_description'))+\"\\n \")])],1),_vm._v(\" \"),_c('p',{staticClass:\"setting-subitem\"},[_c('Checkbox',{attrs:{\"disabled\":!_vm.hideFollowers},model:{value:(_vm.hideFollowersCount),callback:function ($$v) {_vm.hideFollowersCount=$$v},expression:\"hideFollowersCount\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.hide_followers_count_description'))+\"\\n \")])],1),_vm._v(\" \"),_c('p',[_c('Checkbox',{model:{value:(_vm.allowFollowingMove),callback:function ($$v) {_vm.allowFollowingMove=$$v},expression:\"allowFollowingMove\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.allow_following_move'))+\"\\n \")])],1),_vm._v(\" \"),(_vm.role === 'admin' || _vm.role === 'moderator')?_c('p',[_c('Checkbox',{model:{value:(_vm.showRole),callback:function ($$v) {_vm.showRole=$$v},expression:\"showRole\"}},[(_vm.role === 'admin')?[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.show_admin_badge'))+\"\\n \")]:_vm._e(),_vm._v(\" \"),(_vm.role === 'moderator')?[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.show_moderator_badge'))+\"\\n \")]:_vm._e()],2)],1):_vm._e(),_vm._v(\" \"),_c('p',[_c('Checkbox',{model:{value:(_vm.discoverable),callback:function ($$v) {_vm.discoverable=$$v},expression:\"discoverable\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.discoverable'))+\"\\n \")])],1),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-default\",attrs:{\"disabled\":_vm.newName && _vm.newName.length === 0},on:{\"click\":_vm.updateProfile}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('general.submit'))+\"\\n \")])],1),_vm._v(\" \"),_c('div',{staticClass:\"setting-item\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('settings.avatar')))]),_vm._v(\" \"),_c('p',{staticClass:\"visibility-notice\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.avatar_size_instruction'))+\"\\n \")]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('settings.current_avatar')))]),_vm._v(\" \"),_c('img',{staticClass:\"current-avatar\",attrs:{\"src\":_vm.user.profile_image_url_original}}),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('settings.set_new_avatar')))]),_vm._v(\" \"),_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.pickAvatarBtnVisible),expression:\"pickAvatarBtnVisible\"}],staticClass:\"btn\",attrs:{\"id\":\"pick-avatar\",\"type\":\"button\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.upload_a_photo'))+\"\\n \")]),_vm._v(\" \"),_c('image-cropper',{attrs:{\"trigger\":\"#pick-avatar\",\"submit-handler\":_vm.submitAvatar},on:{\"open\":function($event){_vm.pickAvatarBtnVisible=false},\"close\":function($event){_vm.pickAvatarBtnVisible=true}}})],1),_vm._v(\" \"),_c('div',{staticClass:\"setting-item\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('settings.profile_banner')))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('settings.current_profile_banner')))]),_vm._v(\" \"),_c('img',{staticClass:\"banner\",attrs:{\"src\":_vm.user.cover_photo}}),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('settings.set_new_profile_banner')))]),_vm._v(\" \"),(_vm.bannerPreview)?_c('img',{staticClass:\"banner\",attrs:{\"src\":_vm.bannerPreview}}):_vm._e(),_vm._v(\" \"),_c('div',[_c('input',{attrs:{\"type\":\"file\"},on:{\"change\":function($event){_vm.uploadFile('banner', $event)}}})]),_vm._v(\" \"),(_vm.bannerUploading)?_c('i',{staticClass:\" icon-spin4 animate-spin uploading\"}):(_vm.bannerPreview)?_c('button',{staticClass:\"btn btn-default\",on:{\"click\":_vm.submitBanner}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('general.submit'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.bannerUploadError)?_c('div',{staticClass:\"alert error\"},[_vm._v(\"\\n Error: \"+_vm._s(_vm.bannerUploadError)+\"\\n \"),_c('i',{staticClass:\"button-icon icon-cancel\",on:{\"click\":function($event){_vm.clearUploadError('banner')}}})]):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"setting-item\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('settings.profile_background')))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('settings.set_new_profile_background')))]),_vm._v(\" \"),(_vm.backgroundPreview)?_c('img',{staticClass:\"bg\",attrs:{\"src\":_vm.backgroundPreview}}):_vm._e(),_vm._v(\" \"),_c('div',[_c('input',{attrs:{\"type\":\"file\"},on:{\"change\":function($event){_vm.uploadFile('background', $event)}}})]),_vm._v(\" \"),(_vm.backgroundUploading)?_c('i',{staticClass:\" icon-spin4 animate-spin uploading\"}):(_vm.backgroundPreview)?_c('button',{staticClass:\"btn btn-default\",on:{\"click\":_vm.submitBg}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('general.submit'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.backgroundUploadError)?_c('div',{staticClass:\"alert error\"},[_vm._v(\"\\n Error: \"+_vm._s(_vm.backgroundUploadError)+\"\\n \"),_c('i',{staticClass:\"button-icon icon-cancel\",on:{\"click\":function($event){_vm.clearUploadError('background')}}})]):_vm._e()]),_vm._v(\" \"),_c('div',{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('h2',[_vm._v(_vm._s(_vm.$t('settings.notification_setting_filters')))]),_vm._v(\" \"),_c('div',{staticClass:\"select-multiple\"},[_c('span',{staticClass:\"label\"},[_vm._v(_vm._s(_vm.$t('settings.notification_setting')))]),_vm._v(\" \"),_c('ul',{staticClass:\"option-list\"},[_c('li',[_c('Checkbox',{model:{value:(_vm.notificationSettings.follows),callback:function ($$v) {_vm.$set(_vm.notificationSettings, \"follows\", $$v)},expression:\"notificationSettings.follows\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.notification_setting_follows'))+\"\\n \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.notificationSettings.followers),callback:function ($$v) {_vm.$set(_vm.notificationSettings, \"followers\", $$v)},expression:\"notificationSettings.followers\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.notification_setting_followers'))+\"\\n \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.notificationSettings.non_follows),callback:function ($$v) {_vm.$set(_vm.notificationSettings, \"non_follows\", $$v)},expression:\"notificationSettings.non_follows\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.notification_setting_non_follows'))+\"\\n \")])],1),_vm._v(\" \"),_c('li',[_c('Checkbox',{model:{value:(_vm.notificationSettings.non_followers),callback:function ($$v) {_vm.$set(_vm.notificationSettings, \"non_followers\", $$v)},expression:\"notificationSettings.non_followers\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.notification_setting_non_followers'))+\"\\n \")])],1)])])]),_vm._v(\" \"),_c('div',{staticClass:\"setting-item\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('settings.notification_setting_privacy')))]),_vm._v(\" \"),_c('p',[_c('Checkbox',{model:{value:(_vm.notificationSettings.privacy_option),callback:function ($$v) {_vm.$set(_vm.notificationSettings, \"privacy_option\", $$v)},expression:\"notificationSettings.privacy_option\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.notification_setting_privacy_option'))+\"\\n \")])],1)]),_vm._v(\" \"),_c('div',{staticClass:\"setting-item\"},[_c('p',[_vm._v(_vm._s(_vm.$t('settings.notification_mutes')))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('settings.notification_blocks')))]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-default\",on:{\"click\":_vm.updateNotificationSettings}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('general.submit'))+\"\\n \")])])]):_vm._e(),_vm._v(\" \"),(_vm.pleromaBackend)?_c('div',{attrs:{\"label\":_vm.$t('settings.data_import_export_tab')}},[_c('div',{staticClass:\"setting-item\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('settings.follow_import')))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('settings.import_followers_from_a_csv_file')))]),_vm._v(\" \"),_c('Importer',{attrs:{\"submit-handler\":_vm.importFollows,\"success-message\":_vm.$t('settings.follows_imported'),\"error-message\":_vm.$t('settings.follow_import_error')}})],1),_vm._v(\" \"),_c('div',{staticClass:\"setting-item\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('settings.follow_export')))]),_vm._v(\" \"),_c('Exporter',{attrs:{\"get-content\":_vm.getFollowsContent,\"filename\":\"friends.csv\",\"export-button-label\":_vm.$t('settings.follow_export_button')}})],1),_vm._v(\" \"),_c('div',{staticClass:\"setting-item\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('settings.block_import')))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('settings.import_blocks_from_a_csv_file')))]),_vm._v(\" \"),_c('Importer',{attrs:{\"submit-handler\":_vm.importBlocks,\"success-message\":_vm.$t('settings.blocks_imported'),\"error-message\":_vm.$t('settings.block_import_error')}})],1),_vm._v(\" \"),_c('div',{staticClass:\"setting-item\"},[_c('h2',[_vm._v(_vm._s(_vm.$t('settings.block_export')))]),_vm._v(\" \"),_c('Exporter',{attrs:{\"get-content\":_vm.getBlocksContent,\"filename\":\"blocks.csv\",\"export-button-label\":_vm.$t('settings.block_export_button')}})],1)]):_vm._e(),_vm._v(\" \"),_c('div',{attrs:{\"label\":_vm.$t('settings.blocks_tab')}},[_c('div',{staticClass:\"profile-edit-usersearch-wrapper\"},[_c('Autosuggest',{attrs:{\"filter\":_vm.filterUnblockedUsers,\"query\":_vm.queryUserIds,\"placeholder\":_vm.$t('settings.search_user_to_block')},scopedSlots:_vm._u([{key:\"default\",fn:function(row){return _c('BlockCard',{attrs:{\"user-id\":row.item}})}}])})],1),_vm._v(\" \"),_c('BlockList',{attrs:{\"refresh\":true,\"get-key\":_vm.identity},scopedSlots:_vm._u([{key:\"header\",fn:function(ref){\nvar selected = ref.selected;\nreturn [_c('div',{staticClass:\"profile-edit-bulk-actions\"},[(selected.length > 0)?_c('ProgressButton',{staticClass:\"btn btn-default\",attrs:{\"click\":function () { return _vm.blockUsers(selected); }}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('user_card.block'))+\"\\n \"),_c('template',{slot:\"progress\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('user_card.block_progress'))+\"\\n \")])],2):_vm._e(),_vm._v(\" \"),(selected.length > 0)?_c('ProgressButton',{staticClass:\"btn btn-default\",attrs:{\"click\":function () { return _vm.unblockUsers(selected); }}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('user_card.unblock'))+\"\\n \"),_c('template',{slot:\"progress\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('user_card.unblock_progress'))+\"\\n \")])],2):_vm._e()],1)]}},{key:\"item\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('BlockCard',{attrs:{\"user-id\":item}})]}}])},[_c('template',{slot:\"empty\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.no_blocks'))+\"\\n \")])],2)],1),_vm._v(\" \"),_c('div',{attrs:{\"label\":_vm.$t('settings.mutes_tab')}},[_c('tab-switcher',[_c('div',{attrs:{\"label\":\"Users\"}},[_c('div',{staticClass:\"profile-edit-usersearch-wrapper\"},[_c('Autosuggest',{attrs:{\"filter\":_vm.filterUnMutedUsers,\"query\":_vm.queryUserIds,\"placeholder\":_vm.$t('settings.search_user_to_mute')},scopedSlots:_vm._u([{key:\"default\",fn:function(row){return _c('MuteCard',{attrs:{\"user-id\":row.item}})}}])})],1),_vm._v(\" \"),_c('MuteList',{attrs:{\"refresh\":true,\"get-key\":_vm.identity},scopedSlots:_vm._u([{key:\"header\",fn:function(ref){\nvar selected = ref.selected;\nreturn [_c('div',{staticClass:\"profile-edit-bulk-actions\"},[(selected.length > 0)?_c('ProgressButton',{staticClass:\"btn btn-default\",attrs:{\"click\":function () { return _vm.muteUsers(selected); }}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('user_card.mute'))+\"\\n \"),_c('template',{slot:\"progress\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('user_card.mute_progress'))+\"\\n \")])],2):_vm._e(),_vm._v(\" \"),(selected.length > 0)?_c('ProgressButton',{staticClass:\"btn btn-default\",attrs:{\"click\":function () { return _vm.unmuteUsers(selected); }}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('user_card.unmute'))+\"\\n \"),_c('template',{slot:\"progress\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('user_card.unmute_progress'))+\"\\n \")])],2):_vm._e()],1)]}},{key:\"item\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('MuteCard',{attrs:{\"user-id\":item}})]}}])},[_c('template',{slot:\"empty\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.no_mutes'))+\"\\n \")])],2)],1),_vm._v(\" \"),_c('div',{attrs:{\"label\":_vm.$t('settings.domain_mutes')}},[_c('div',{staticClass:\"profile-edit-domain-mute-form\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.newDomainToMute),expression:\"newDomainToMute\"}],attrs:{\"placeholder\":_vm.$t('settings.type_domains_to_mute'),\"type\":\"text\"},domProps:{\"value\":(_vm.newDomainToMute)},on:{\"keyup\":function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.muteDomain($event)},\"input\":function($event){if($event.target.composing){ return; }_vm.newDomainToMute=$event.target.value}}}),_vm._v(\" \"),_c('ProgressButton',{staticClass:\"btn btn-default\",attrs:{\"click\":_vm.muteDomain}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('domain_mute_card.mute'))+\"\\n \"),_c('template',{slot:\"progress\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('domain_mute_card.mute_progress'))+\"\\n \")])],2)],1),_vm._v(\" \"),_c('DomainMuteList',{attrs:{\"refresh\":true,\"get-key\":_vm.identity},scopedSlots:_vm._u([{key:\"header\",fn:function(ref){\nvar selected = ref.selected;\nreturn [_c('div',{staticClass:\"profile-edit-bulk-actions\"},[(selected.length > 0)?_c('ProgressButton',{staticClass:\"btn btn-default\",attrs:{\"click\":function () { return _vm.unmuteDomains(selected); }}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('domain_mute_card.unmute'))+\"\\n \"),_c('template',{slot:\"progress\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('domain_mute_card.unmute_progress'))+\"\\n \")])],2):_vm._e()],1)]}},{key:\"item\",fn:function(ref){\nvar item = ref.item;\nreturn [_c('DomainMuteCard',{attrs:{\"domain\":item}})]}}])},[_c('template',{slot:\"empty\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.no_mutes'))+\"\\n \")])],2)],1)])],1)])],1)])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import BasicUserCard from '../basic_user_card/basic_user_card.vue'\nimport { notificationsFromStore } from '../../services/notification_utils/notification_utils.js'\n\nconst FollowRequestCard = {\n props: ['user'],\n components: {\n BasicUserCard\n },\n methods: {\n findFollowRequestNotificationId () {\n const notif = notificationsFromStore(this.$store).find(\n (notif) => notif.from_profile.id === this.user.id && notif.type === 'follow_request'\n )\n return notif && notif.id\n },\n approveUser () {\n this.$store.state.api.backendInteractor.approveUser({ id: this.user.id })\n this.$store.dispatch('removeFollowRequest', this.user)\n\n const notifId = this.findFollowRequestNotificationId()\n this.$store.dispatch('markSingleNotificationAsSeen', { id: notifId })\n this.$store.dispatch('updateNotification', {\n id: notifId,\n updater: notification => {\n notification.type = 'follow'\n }\n })\n },\n denyUser () {\n const notifId = this.findFollowRequestNotificationId()\n this.$store.state.api.backendInteractor.denyUser({ id: this.user.id })\n .then(() => {\n this.$store.dispatch('dismissNotificationLocal', { id: notifId })\n this.$store.dispatch('removeFollowRequest', this.user)\n })\n }\n }\n}\n\nexport default FollowRequestCard\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./follow_request_card.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./follow_request_card.js\"\nimport __vue_script__ from \"!!babel-loader!./follow_request_card.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-1edf2e22\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./follow_request_card.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","import FollowRequestCard from '../follow_request_card/follow_request_card.vue'\n\nconst FollowRequests = {\n components: {\n FollowRequestCard\n },\n computed: {\n requests () {\n return this.$store.state.api.followRequests\n }\n }\n}\n\nexport default FollowRequests\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('basic-user-card',{attrs:{\"user\":_vm.user}},[_c('div',{staticClass:\"follow-request-card-content-container\"},[_c('button',{staticClass:\"btn btn-default\",on:{\"click\":_vm.approveUser}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('user_card.approve'))+\"\\n \")]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-default\",on:{\"click\":_vm.denyUser}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('user_card.deny'))+\"\\n \")])])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","/* script */\nexport * from \"!!babel-loader!./follow_requests.js\"\nimport __vue_script__ from \"!!babel-loader!./follow_requests.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-9c427644\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./follow_requests.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"settings panel panel-default\"},[_c('div',{staticClass:\"panel-heading\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('nav.friend_requests'))+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"panel-body\"},_vm._l((_vm.requests),function(request){return _c('FollowRequestCard',{key:request.id,staticClass:\"list-item\",attrs:{\"user\":request}})}),1)])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import oauth from '../../services/new_api/oauth.js'\n\nconst oac = {\n props: ['code'],\n mounted () {\n if (this.code) {\n const { clientId, clientSecret } = this.$store.state.oauth\n\n oauth.getToken({\n clientId,\n clientSecret,\n instance: this.$store.state.instance.server,\n code: this.code\n }).then((result) => {\n this.$store.commit('setToken', result.access_token)\n this.$store.dispatch('loginUser', result.access_token)\n this.$router.push({ name: 'friends' })\n })\n }\n }\n}\n\nexport default oac\n","/* script */\nexport * from \"!!babel-loader!./oauth_callback.js\"\nimport __vue_script__ from \"!!babel-loader!./oauth_callback.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-f514124c\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./oauth_callback.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h1',[_vm._v(\"...\")])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import { mapState, mapGetters, mapActions, mapMutations } from 'vuex'\nimport oauthApi from '../../services/new_api/oauth.js'\n\nconst LoginForm = {\n data: () => ({\n user: {},\n error: false\n }),\n computed: {\n isPasswordAuth () { return this.requiredPassword },\n isTokenAuth () { return this.requiredToken },\n ...mapState({\n registrationOpen: state => state.instance.registrationOpen,\n instance: state => state.instance,\n loggingIn: state => state.users.loggingIn,\n oauth: state => state.oauth\n }),\n ...mapGetters(\n 'authFlow', ['requiredPassword', 'requiredToken', 'requiredMFA']\n )\n },\n methods: {\n ...mapMutations('authFlow', ['requireMFA']),\n ...mapActions({ login: 'authFlow/login' }),\n submit () {\n this.isTokenAuth ? this.submitToken() : this.submitPassword()\n },\n submitToken () {\n const { clientId, clientSecret } = this.oauth\n const data = {\n clientId,\n clientSecret,\n instance: this.instance.server,\n commit: this.$store.commit\n }\n\n oauthApi.getOrCreateApp(data)\n .then((app) => { oauthApi.login({ ...app, ...data }) })\n },\n submitPassword () {\n const { clientId } = this.oauth\n const data = {\n clientId,\n oauth: this.oauth,\n instance: this.instance.server,\n commit: this.$store.commit\n }\n this.error = false\n\n oauthApi.getOrCreateApp(data).then((app) => {\n oauthApi.getTokenWithCredentials(\n {\n ...app,\n instance: data.instance,\n username: this.user.username,\n password: this.user.password\n }\n ).then((result) => {\n if (result.error) {\n if (result.error === 'mfa_required') {\n this.requireMFA({ settings: result })\n } else if (result.identifier === 'password_reset_required') {\n this.$router.push({ name: 'password-reset', params: { passwordResetRequested: true } })\n } else {\n this.error = result.error\n this.focusOnPasswordInput()\n }\n return\n }\n this.login(result).then(() => {\n this.$router.push({ name: 'friends' })\n })\n })\n })\n },\n clearError () { this.error = false },\n focusOnPasswordInput () {\n let passwordInput = this.$refs.passwordInput\n passwordInput.focus()\n passwordInput.setSelectionRange(0, passwordInput.value.length)\n }\n }\n}\n\nexport default LoginForm\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./login_form.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./login_form.js\"\nimport __vue_script__ from \"!!babel-loader!./login_form.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-38aaa196\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./login_form.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"login panel panel-default\"},[_c('div',{staticClass:\"panel-heading\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('login.login'))+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"panel-body\"},[_c('form',{staticClass:\"login-form\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submit($event)}}},[(_vm.isPasswordAuth)?[_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"username\"}},[_vm._v(_vm._s(_vm.$t('login.username')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.user.username),expression:\"user.username\"}],staticClass:\"form-control\",attrs:{\"id\":\"username\",\"disabled\":_vm.loggingIn,\"placeholder\":_vm.$t('login.placeholder')},domProps:{\"value\":(_vm.user.username)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.user, \"username\", $event.target.value)}}})]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"password\"}},[_vm._v(_vm._s(_vm.$t('login.password')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.user.password),expression:\"user.password\"}],ref:\"passwordInput\",staticClass:\"form-control\",attrs:{\"id\":\"password\",\"disabled\":_vm.loggingIn,\"type\":\"password\"},domProps:{\"value\":(_vm.user.password)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.user, \"password\", $event.target.value)}}})]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('router-link',{attrs:{\"to\":{name: 'password-reset'}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('password_reset.forgot_password'))+\"\\n \")])],1)]:_vm._e(),_vm._v(\" \"),(_vm.isTokenAuth)?_c('div',{staticClass:\"form-group\"},[_c('p',[_vm._v(_vm._s(_vm.$t('login.description')))])]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"login-bottom\"},[_c('div',[(_vm.registrationOpen)?_c('router-link',{staticClass:\"register\",attrs:{\"to\":{name: 'registration'}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('login.register'))+\"\\n \")]):_vm._e()],1),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-default\",attrs:{\"disabled\":_vm.loggingIn,\"type\":\"submit\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('login.login'))+\"\\n \")])])])],2)]),_vm._v(\" \"),(_vm.error)?_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"alert error\"},[_vm._v(\"\\n \"+_vm._s(_vm.error)+\"\\n \"),_c('i',{staticClass:\"button-icon icon-cancel\",on:{\"click\":_vm.clearError}})])]):_vm._e()])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","const verifyOTPCode = ({ clientId, clientSecret, instance, mfaToken, code }) => {\n const url = `${instance}/oauth/mfa/challenge`\n const form = new window.FormData()\n\n form.append('client_id', clientId)\n form.append('client_secret', clientSecret)\n form.append('mfa_token', mfaToken)\n form.append('code', code)\n form.append('challenge_type', 'totp')\n\n return window.fetch(url, {\n method: 'POST',\n body: form\n }).then((data) => data.json())\n}\n\nconst verifyRecoveryCode = ({ clientId, clientSecret, instance, mfaToken, code }) => {\n const url = `${instance}/oauth/mfa/challenge`\n const form = new window.FormData()\n\n form.append('client_id', clientId)\n form.append('client_secret', clientSecret)\n form.append('mfa_token', mfaToken)\n form.append('code', code)\n form.append('challenge_type', 'recovery')\n\n return window.fetch(url, {\n method: 'POST',\n body: form\n }).then((data) => data.json())\n}\n\nconst mfa = {\n verifyOTPCode,\n verifyRecoveryCode\n}\n\nexport default mfa\n","import mfaApi from '../../services/new_api/mfa.js'\nimport { mapState, mapGetters, mapActions, mapMutations } from 'vuex'\n\nexport default {\n data: () => ({\n code: null,\n error: false\n }),\n computed: {\n ...mapGetters({\n authSettings: 'authFlow/settings'\n }),\n ...mapState({\n instance: 'instance',\n oauth: 'oauth'\n })\n },\n methods: {\n ...mapMutations('authFlow', ['requireTOTP', 'abortMFA']),\n ...mapActions({ login: 'authFlow/login' }),\n clearError () { this.error = false },\n submit () {\n const { clientId, clientSecret } = this.oauth\n\n const data = {\n clientId,\n clientSecret,\n instance: this.instance.server,\n mfaToken: this.authSettings.mfa_token,\n code: this.code\n }\n\n mfaApi.verifyRecoveryCode(data).then((result) => {\n if (result.error) {\n this.error = result.error\n this.code = null\n return\n }\n\n this.login(result).then(() => {\n this.$router.push({ name: 'friends' })\n })\n })\n }\n }\n}\n","/* script */\nexport * from \"!!babel-loader!./recovery_form.js\"\nimport __vue_script__ from \"!!babel-loader!./recovery_form.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-129661d4\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./recovery_form.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"login panel panel-default\"},[_c('div',{staticClass:\"panel-heading\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('login.heading.recovery'))+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"panel-body\"},[_c('form',{staticClass:\"login-form\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submit($event)}}},[_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"code\"}},[_vm._v(_vm._s(_vm.$t('login.recovery_code')))]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.code),expression:\"code\"}],staticClass:\"form-control\",attrs:{\"id\":\"code\"},domProps:{\"value\":(_vm.code)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.code=$event.target.value}}})]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"login-bottom\"},[_c('div',[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.requireTOTP($event)}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('login.enter_two_factor_code'))+\"\\n \")]),_vm._v(\" \"),_c('br'),_vm._v(\" \"),_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.abortMFA($event)}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('general.cancel'))+\"\\n \")])]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-default\",attrs:{\"type\":\"submit\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('general.verify'))+\"\\n \")])])])])]),_vm._v(\" \"),(_vm.error)?_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"alert error\"},[_vm._v(\"\\n \"+_vm._s(_vm.error)+\"\\n \"),_c('i',{staticClass:\"button-icon icon-cancel\",on:{\"click\":_vm.clearError}})])]):_vm._e()])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import mfaApi from '../../services/new_api/mfa.js'\nimport { mapState, mapGetters, mapActions, mapMutations } from 'vuex'\nexport default {\n data: () => ({\n code: null,\n error: false\n }),\n computed: {\n ...mapGetters({\n authSettings: 'authFlow/settings'\n }),\n ...mapState({\n instance: 'instance',\n oauth: 'oauth'\n })\n },\n methods: {\n ...mapMutations('authFlow', ['requireRecovery', 'abortMFA']),\n ...mapActions({ login: 'authFlow/login' }),\n clearError () { this.error = false },\n submit () {\n const { clientId, clientSecret } = this.oauth\n\n const data = {\n clientId,\n clientSecret,\n instance: this.instance.server,\n mfaToken: this.authSettings.mfa_token,\n code: this.code\n }\n\n mfaApi.verifyOTPCode(data).then((result) => {\n if (result.error) {\n this.error = result.error\n this.code = null\n return\n }\n\n this.login(result).then(() => {\n this.$router.push({ name: 'friends' })\n })\n })\n }\n }\n}\n","/* script */\nexport * from \"!!babel-loader!./totp_form.js\"\nimport __vue_script__ from \"!!babel-loader!./totp_form.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-b4428228\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./totp_form.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"login panel panel-default\"},[_c('div',{staticClass:\"panel-heading\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('login.heading.totp'))+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"panel-body\"},[_c('form',{staticClass:\"login-form\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submit($event)}}},[_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"code\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('login.authentication_code'))+\"\\n \")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.code),expression:\"code\"}],staticClass:\"form-control\",attrs:{\"id\":\"code\"},domProps:{\"value\":(_vm.code)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.code=$event.target.value}}})]),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"login-bottom\"},[_c('div',[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.requireRecovery($event)}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('login.enter_recovery_code'))+\"\\n \")]),_vm._v(\" \"),_c('br'),_vm._v(\" \"),_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.abortMFA($event)}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('general.cancel'))+\"\\n \")])]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-default\",attrs:{\"type\":\"submit\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('general.verify'))+\"\\n \")])])])])]),_vm._v(\" \"),(_vm.error)?_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"alert error\"},[_vm._v(\"\\n \"+_vm._s(_vm.error)+\"\\n \"),_c('i',{staticClass:\"button-icon icon-cancel\",on:{\"click\":_vm.clearError}})])]):_vm._e()])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import LoginForm from '../login_form/login_form.vue'\nimport MFARecoveryForm from '../mfa_form/recovery_form.vue'\nimport MFATOTPForm from '../mfa_form/totp_form.vue'\nimport { mapGetters } from 'vuex'\n\nconst AuthForm = {\n name: 'AuthForm',\n render (createElement) {\n return createElement('component', { is: this.authForm })\n },\n computed: {\n authForm () {\n if (this.requiredTOTP) { return 'MFATOTPForm' }\n if (this.requiredRecovery) { return 'MFARecoveryForm' }\n return 'LoginForm'\n },\n ...mapGetters('authFlow', ['requiredTOTP', 'requiredRecovery'])\n },\n components: {\n MFARecoveryForm,\n MFATOTPForm,\n LoginForm\n }\n}\n\nexport default AuthForm\n","import generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\n\nconst chatPanel = {\n props: [ 'floating' ],\n data () {\n return {\n currentMessage: '',\n channel: null,\n collapsed: true\n }\n },\n computed: {\n messages () {\n return this.$store.state.chat.messages\n }\n },\n methods: {\n submit (message) {\n this.$store.state.chat.channel.push('new_msg', { text: message }, 10000)\n this.currentMessage = ''\n },\n togglePanel () {\n this.collapsed = !this.collapsed\n },\n userProfileLink (user) {\n return generateProfileLink(user.id, user.username, this.$store.state.instance.restrictedNicknames)\n }\n }\n}\n\nexport default chatPanel\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./chat_panel.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./chat_panel.js\"\nimport __vue_script__ from \"!!babel-loader!./chat_panel.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-7ea51572\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./chat_panel.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.collapsed || !_vm.floating)?_c('div',{staticClass:\"chat-panel\"},[_c('div',{staticClass:\"panel panel-default\"},[_c('div',{staticClass:\"panel-heading timeline-heading\",class:{ 'chat-heading': _vm.floating },on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.togglePanel($event)}}},[_c('div',{staticClass:\"title\"},[_c('span',[_vm._v(_vm._s(_vm.$t('chat.title')))]),_vm._v(\" \"),(_vm.floating)?_c('i',{staticClass:\"icon-cancel\"}):_vm._e()])]),_vm._v(\" \"),_c('div',{directives:[{name:\"chat-scroll\",rawName:\"v-chat-scroll\"}],staticClass:\"chat-window\"},_vm._l((_vm.messages),function(message){return _c('div',{key:message.id,staticClass:\"chat-message\"},[_c('span',{staticClass:\"chat-avatar\"},[_c('img',{attrs:{\"src\":message.author.avatar}})]),_vm._v(\" \"),_c('div',{staticClass:\"chat-content\"},[_c('router-link',{staticClass:\"chat-name\",attrs:{\"to\":_vm.userProfileLink(message.author)}},[_vm._v(\"\\n \"+_vm._s(message.author.username)+\"\\n \")]),_vm._v(\" \"),_c('br'),_vm._v(\" \"),_c('span',{staticClass:\"chat-text\"},[_vm._v(\"\\n \"+_vm._s(message.text)+\"\\n \")])],1)])}),0),_vm._v(\" \"),_c('div',{staticClass:\"chat-input\"},[_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.currentMessage),expression:\"currentMessage\"}],staticClass:\"chat-input-textarea\",attrs:{\"rows\":\"1\"},domProps:{\"value\":(_vm.currentMessage)},on:{\"keyup\":function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }_vm.submit(_vm.currentMessage)},\"input\":function($event){if($event.target.composing){ return; }_vm.currentMessage=$event.target.value}}})])])]):_c('div',{staticClass:\"chat-panel\"},[_c('div',{staticClass:\"panel panel-default\"},[_c('div',{staticClass:\"panel-heading stub timeline-heading chat-heading\",on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.togglePanel($event)}}},[_c('div',{staticClass:\"title\"},[_c('i',{staticClass:\"icon-comment-empty\"}),_vm._v(\"\\n \"+_vm._s(_vm.$t('chat.title'))+\"\\n \")])])])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import apiService from '../../services/api/api.service.js'\nimport FollowCard from '../follow_card/follow_card.vue'\n\nconst WhoToFollow = {\n components: {\n FollowCard\n },\n data () {\n return {\n users: []\n }\n },\n mounted () {\n this.getWhoToFollow()\n },\n methods: {\n showWhoToFollow (reply) {\n reply.forEach((i, index) => {\n this.$store.state.api.backendInteractor.fetchUser({ id: i.acct })\n .then((externalUser) => {\n if (!externalUser.error) {\n this.$store.commit('addNewUsers', [externalUser])\n this.users.push(externalUser)\n }\n })\n })\n },\n getWhoToFollow () {\n const credentials = this.$store.state.users.currentUser.credentials\n if (credentials) {\n apiService.suggestions({ credentials: credentials })\n .then((reply) => {\n this.showWhoToFollow(reply)\n })\n }\n }\n }\n}\n\nexport default WhoToFollow\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./who_to_follow.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./who_to_follow.js\"\nimport __vue_script__ from \"!!babel-loader!./who_to_follow.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-4f8c3288\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./who_to_follow.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"panel panel-default\"},[_c('div',{staticClass:\"panel-heading\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('who_to_follow.who_to_follow'))+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"panel-body\"},_vm._l((_vm.users),function(user){return _c('FollowCard',{key:user.id,staticClass:\"list-item\",attrs:{\"user\":user}})}),1)])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","const InstanceSpecificPanel = {\n computed: {\n instanceSpecificPanelContent () {\n return this.$store.state.instance.instanceSpecificPanelContent\n }\n }\n}\n\nexport default InstanceSpecificPanel\n","/* script */\nexport * from \"!!babel-loader!./instance_specific_panel.js\"\nimport __vue_script__ from \"!!babel-loader!./instance_specific_panel.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-5b01187b\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./instance_specific_panel.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"instance-specific-panel\"},[_c('div',{staticClass:\"panel panel-default\"},[_c('div',{staticClass:\"panel-body\"},[_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.instanceSpecificPanelContent)}})])])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","const FeaturesPanel = {\n computed: {\n chat: function () { return this.$store.state.instance.chatAvailable },\n gopher: function () { return this.$store.state.instance.gopherAvailable },\n whoToFollow: function () { return this.$store.state.instance.suggestionsEnabled },\n mediaProxy: function () { return this.$store.state.instance.mediaProxyAvailable },\n minimalScopesMode: function () { return this.$store.state.instance.minimalScopesMode },\n textlimit: function () { return this.$store.state.instance.textlimit }\n }\n}\n\nexport default FeaturesPanel\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./features_panel.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./features_panel.js\"\nimport __vue_script__ from \"!!babel-loader!./features_panel.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-3443e05c\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./features_panel.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"features-panel\"},[_c('div',{staticClass:\"panel panel-default base01-background\"},[_c('div',{staticClass:\"panel-heading timeline-heading base02-background base04\"},[_c('div',{staticClass:\"title\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('features_panel.title'))+\"\\n \")])]),_vm._v(\" \"),_c('div',{staticClass:\"panel-body features-panel\"},[_c('ul',[(_vm.chat)?_c('li',[_vm._v(\"\\n \"+_vm._s(_vm.$t('features_panel.chat'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.gopher)?_c('li',[_vm._v(\"\\n \"+_vm._s(_vm.$t('features_panel.gopher'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.whoToFollow)?_c('li',[_vm._v(\"\\n \"+_vm._s(_vm.$t('features_panel.who_to_follow'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.mediaProxy)?_c('li',[_vm._v(\"\\n \"+_vm._s(_vm.$t('features_panel.media_proxy'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),_c('li',[_vm._v(_vm._s(_vm.$t('features_panel.scope_options')))]),_vm._v(\" \"),_c('li',[_vm._v(_vm._s(_vm.$t('features_panel.text_limit'))+\" = \"+_vm._s(_vm.textlimit))])])])])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","const TermsOfServicePanel = {\n computed: {\n content () {\n return this.$store.state.instance.tos\n }\n }\n}\n\nexport default TermsOfServicePanel\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./terms_of_service_panel.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./terms_of_service_panel.js\"\nimport __vue_script__ from \"!!babel-loader!./terms_of_service_panel.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-687e38f6\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./terms_of_service_panel.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"panel panel-default\"},[_c('div',{staticClass:\"panel-body\"},[_c('div',{staticClass:\"tos-content\",domProps:{\"innerHTML\":_vm._s(_vm.content)}})])])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import map from 'lodash/map'\nimport BasicUserCard from '../basic_user_card/basic_user_card.vue'\n\nconst StaffPanel = {\n components: {\n BasicUserCard\n },\n computed: {\n staffAccounts () {\n return map(this.$store.state.instance.staffAccounts, nickname => this.$store.getters.findUser(nickname)).filter(_ => _)\n }\n }\n}\n\nexport default StaffPanel\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./staff_panel.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./staff_panel.js\"\nimport __vue_script__ from \"!!babel-loader!./staff_panel.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-0a6a2c3a\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./staff_panel.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"staff-panel\"},[_c('div',{staticClass:\"panel panel-default base01-background\"},[_c('div',{staticClass:\"panel-heading timeline-heading base02-background\"},[_c('div',{staticClass:\"title\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t(\"about.staff\"))+\"\\n \")])]),_vm._v(\" \"),_c('div',{staticClass:\"panel-body\"},_vm._l((_vm.staffAccounts),function(user){return _c('basic-user-card',{key:user.screen_name,attrs:{\"user\":user}})}),1)])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import { mapState } from 'vuex'\nimport { get } from 'lodash'\n\nconst MRFTransparencyPanel = {\n computed: {\n ...mapState({\n federationPolicy: state => get(state, 'instance.federationPolicy'),\n mrfPolicies: state => get(state, 'instance.federationPolicy.mrf_policies', []),\n quarantineInstances: state => get(state, 'instance.federationPolicy.quarantined_instances', []),\n acceptInstances: state => get(state, 'instance.federationPolicy.mrf_simple.accept', []),\n rejectInstances: state => get(state, 'instance.federationPolicy.mrf_simple.reject', []),\n ftlRemovalInstances: state => get(state, 'instance.federationPolicy.mrf_simple.federated_timeline_removal', []),\n mediaNsfwInstances: state => get(state, 'instance.federationPolicy.mrf_simple.media_nsfw', []),\n mediaRemovalInstances: state => get(state, 'instance.federationPolicy.mrf_simple.media_removal', []),\n keywordsFtlRemoval: state => get(state, 'instance.federationPolicy.mrf_keyword.federated_timeline_removal', []),\n keywordsReject: state => get(state, 'instance.federationPolicy.mrf_keyword.reject', []),\n keywordsReplace: state => get(state, 'instance.federationPolicy.mrf_keyword.replace', [])\n }),\n hasInstanceSpecificPolicies () {\n return this.quarantineInstances.length ||\n this.acceptInstances.length ||\n this.rejectInstances.length ||\n this.ftlRemovalInstances.length ||\n this.mediaNsfwInstances.length ||\n this.mediaRemovalInstances.length\n },\n hasKeywordPolicies () {\n return this.keywordsFtlRemoval.length ||\n this.keywordsReject.length ||\n this.keywordsReplace.length\n }\n }\n}\n\nexport default MRFTransparencyPanel\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./mrf_transparency_panel.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./mrf_transparency_panel.js\"\nimport __vue_script__ from \"!!babel-loader!./mrf_transparency_panel.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-3de10442\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./mrf_transparency_panel.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","import InstanceSpecificPanel from '../instance_specific_panel/instance_specific_panel.vue'\nimport FeaturesPanel from '../features_panel/features_panel.vue'\nimport TermsOfServicePanel from '../terms_of_service_panel/terms_of_service_panel.vue'\nimport StaffPanel from '../staff_panel/staff_panel.vue'\nimport MRFTransparencyPanel from '../mrf_transparency_panel/mrf_transparency_panel.vue'\n\nconst About = {\n components: {\n InstanceSpecificPanel,\n FeaturesPanel,\n TermsOfServicePanel,\n StaffPanel,\n MRFTransparencyPanel\n },\n computed: {\n showFeaturesPanel () { return this.$store.state.instance.showFeaturesPanel },\n showInstanceSpecificPanel () {\n return this.$store.state.instance.showInstanceSpecificPanel &&\n !this.$store.getters.mergedConfig.hideISP &&\n this.$store.state.instance.instanceSpecificPanelContent\n }\n }\n}\n\nexport default About\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.federationPolicy)?_c('div',{staticClass:\"mrf-transparency-panel\"},[_c('div',{staticClass:\"panel panel-default base01-background\"},[_c('div',{staticClass:\"panel-heading timeline-heading base02-background\"},[_c('div',{staticClass:\"title\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t(\"about.mrf.federation\"))+\"\\n \")])]),_vm._v(\" \"),_c('div',{staticClass:\"panel-body\"},[_c('div',{staticClass:\"mrf-section\"},[_c('h2',[_vm._v(_vm._s(_vm.$t(\"about.mrf.mrf_policies\")))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t(\"about.mrf.mrf_policies_desc\")))]),_vm._v(\" \"),_c('ul',_vm._l((_vm.mrfPolicies),function(policy){return _c('li',{key:policy,domProps:{\"textContent\":_vm._s(policy)}})}),0),_vm._v(\" \"),(_vm.hasInstanceSpecificPolicies)?_c('h2',[_vm._v(\"\\n \"+_vm._s(_vm.$t(\"about.mrf.simple.simple_policies\"))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.acceptInstances.length)?_c('div',[_c('h4',[_vm._v(_vm._s(_vm.$t(\"about.mrf.simple.accept\")))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t(\"about.mrf.simple.accept_desc\")))]),_vm._v(\" \"),_c('ul',_vm._l((_vm.acceptInstances),function(instance){return _c('li',{key:instance,domProps:{\"textContent\":_vm._s(instance)}})}),0)]):_vm._e(),_vm._v(\" \"),(_vm.rejectInstances.length)?_c('div',[_c('h4',[_vm._v(_vm._s(_vm.$t(\"about.mrf.simple.reject\")))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t(\"about.mrf.simple.reject_desc\")))]),_vm._v(\" \"),_c('ul',_vm._l((_vm.rejectInstances),function(instance){return _c('li',{key:instance,domProps:{\"textContent\":_vm._s(instance)}})}),0)]):_vm._e(),_vm._v(\" \"),(_vm.quarantineInstances.length)?_c('div',[_c('h4',[_vm._v(_vm._s(_vm.$t(\"about.mrf.simple.quarantine\")))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t(\"about.mrf.simple.quarantine_desc\")))]),_vm._v(\" \"),_c('ul',_vm._l((_vm.quarantineInstances),function(instance){return _c('li',{key:instance,domProps:{\"textContent\":_vm._s(instance)}})}),0)]):_vm._e(),_vm._v(\" \"),(_vm.ftlRemovalInstances.length)?_c('div',[_c('h4',[_vm._v(_vm._s(_vm.$t(\"about.mrf.simple.ftl_removal\")))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t(\"about.mrf.simple.ftl_removal_desc\")))]),_vm._v(\" \"),_c('ul',_vm._l((_vm.ftlRemovalInstances),function(instance){return _c('li',{key:instance,domProps:{\"textContent\":_vm._s(instance)}})}),0)]):_vm._e(),_vm._v(\" \"),(_vm.mediaNsfwInstances.length)?_c('div',[_c('h4',[_vm._v(_vm._s(_vm.$t(\"about.mrf.simple.media_nsfw\")))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t(\"about.mrf.simple.media_nsfw_desc\")))]),_vm._v(\" \"),_c('ul',_vm._l((_vm.mediaNsfwInstances),function(instance){return _c('li',{key:instance,domProps:{\"textContent\":_vm._s(instance)}})}),0)]):_vm._e(),_vm._v(\" \"),(_vm.mediaRemovalInstances.length)?_c('div',[_c('h4',[_vm._v(_vm._s(_vm.$t(\"about.mrf.simple.media_removal\")))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t(\"about.mrf.simple.media_removal_desc\")))]),_vm._v(\" \"),_c('ul',_vm._l((_vm.mediaRemovalInstances),function(instance){return _c('li',{key:instance,domProps:{\"textContent\":_vm._s(instance)}})}),0)]):_vm._e(),_vm._v(\" \"),(_vm.hasKeywordPolicies)?_c('h2',[_vm._v(\"\\n \"+_vm._s(_vm.$t(\"about.mrf.keyword.keyword_policies\"))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.keywordsFtlRemoval.length)?_c('div',[_c('h4',[_vm._v(_vm._s(_vm.$t(\"about.mrf.keyword.ftl_removal\")))]),_vm._v(\" \"),_c('ul',_vm._l((_vm.keywordsFtlRemoval),function(keyword){return _c('li',{key:keyword,domProps:{\"textContent\":_vm._s(keyword)}})}),0)]):_vm._e(),_vm._v(\" \"),(_vm.keywordsReject.length)?_c('div',[_c('h4',[_vm._v(_vm._s(_vm.$t(\"about.mrf.keyword.reject\")))]),_vm._v(\" \"),_c('ul',_vm._l((_vm.keywordsReject),function(keyword){return _c('li',{key:keyword,domProps:{\"textContent\":_vm._s(keyword)}})}),0)]):_vm._e(),_vm._v(\" \"),(_vm.keywordsReplace.length)?_c('div',[_c('h4',[_vm._v(_vm._s(_vm.$t(\"about.mrf.keyword.replace\")))]),_vm._v(\" \"),_c('ul',_vm._l((_vm.keywordsReplace),function(keyword){return _c('li',{key:keyword},[_vm._v(\"\\n \"+_vm._s(keyword.pattern)+\"\\n \"+_vm._s(_vm.$t(\"about.mrf.keyword.is_replaced_by\"))+\"\\n \"+_vm._s(keyword.replacement)+\"\\n \")])}),0)]):_vm._e()])])])]):_vm._e()}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./about.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./about.js\"\nimport __vue_script__ from \"!!babel-loader!./about.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-acd3d67e\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./about.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"sidebar\"},[(_vm.showInstanceSpecificPanel)?_c('instance-specific-panel'):_vm._e(),_vm._v(\" \"),_c('staff-panel'),_vm._v(\" \"),_c('terms-of-service-panel'),_vm._v(\" \"),_c('MRFTransparencyPanel'),_vm._v(\" \"),(_vm.showFeaturesPanel)?_c('features-panel'):_vm._e()],1)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","const RemoteUserResolver = {\n data: () => ({\n error: false\n }),\n mounted () {\n this.redirect()\n },\n methods: {\n redirect () {\n const acct = this.$route.params.username + '@' + this.$route.params.hostname\n this.$store.state.api.backendInteractor.fetchUser({ id: acct })\n .then((externalUser) => {\n if (externalUser.error) {\n this.error = true\n } else {\n this.$store.commit('addNewUsers', [externalUser])\n const id = externalUser.id\n this.$router.replace({\n name: 'external-user-profile',\n params: { id }\n })\n }\n })\n .catch(() => {\n this.error = true\n })\n }\n }\n}\n\nexport default RemoteUserResolver\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./remote_user_resolver.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./remote_user_resolver.js\"\nimport __vue_script__ from \"!!babel-loader!./remote_user_resolver.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-198402c4\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./remote_user_resolver.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"panel panel-default\"},[_c('div',{staticClass:\"panel-heading\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('remote_user_resolver.remote_user_resolver'))+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"panel-body\"},[_c('p',[_vm._v(\"\\n \"+_vm._s(_vm.$t('remote_user_resolver.searching_for'))+\" @\"+_vm._s(_vm.$route.params.username)+\"@\"+_vm._s(_vm.$route.params.hostname)+\"\\n \")]),_vm._v(\" \"),(_vm.error)?_c('p',[_vm._v(\"\\n \"+_vm._s(_vm.$t('remote_user_resolver.error'))+\"\\n \")]):_vm._e()])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import PublicTimeline from 'components/public_timeline/public_timeline.vue'\nimport PublicAndExternalTimeline from 'components/public_and_external_timeline/public_and_external_timeline.vue'\nimport FriendsTimeline from 'components/friends_timeline/friends_timeline.vue'\nimport TagTimeline from 'components/tag_timeline/tag_timeline.vue'\nimport ConversationPage from 'components/conversation-page/conversation-page.vue'\nimport Interactions from 'components/interactions/interactions.vue'\nimport DMs from 'components/dm_timeline/dm_timeline.vue'\nimport 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-51c2d26e\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./user_panel.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"user-panel\"},[(_vm.signedIn)?_c('div',{key:\"user-panel\",staticClass:\"panel panel-default signed-in\"},[_c('UserCard',{attrs:{\"user-id\":_vm.user.id,\"hide-bio\":true,\"rounded\":\"top\"}}),_vm._v(\" \"),_c('div',{staticClass:\"panel-footer\"},[_c('PostStatusForm')],1)],1):_c('auth-form',{key:\"user-panel\"})],1)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import { mapState } from 'vuex'\n\nconst NavPanel = {\n created () {\n if (this.currentUser && this.currentUser.locked) {\n this.$store.dispatch('startFetchingFollowRequests')\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-dcb46fd0\\\",\\\"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.currentUser || !_vm.privateMode))?_c('li',[_c('router-link',{attrs:{\"to\":{ name: 'public-external-timeline' }}},[_c('i',{staticClass:\"button-icon icon-globe\"}),_vm._v(\" \"+_vm._s(_vm.$t(\"nav.twkn\"))+\"\\n \")])],1):_vm._e(),_vm._v(\" \"),_c('li',[_c('router-link',{attrs:{\"to\":{ name: 'about' }}},[_c('i',{staticClass:\"button-icon icon-info-circled\"}),_vm._v(\" \"+_vm._s(_vm.$t(\"nav.about\"))+\"\\n \")])],1)])])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","const SearchBar = {\n data: () => ({\n searchTerm: undefined,\n hidden: true,\n error: false,\n loading: false\n }),\n watch: {\n '$route': function (route) {\n if (route.name === 'search') {\n this.searchTerm = route.query.query\n }\n }\n },\n methods: {\n find (searchTerm) {\n this.$router.push({ name: 'search', query: { query: searchTerm } })\n this.$refs.searchInput.focus()\n },\n toggleHidden () {\n this.hidden = !this.hidden\n this.$emit('toggled', this.hidden)\n this.$nextTick(() => {\n if (!this.hidden) {\n this.$refs.searchInput.focus()\n }\n })\n }\n }\n}\n\nexport default SearchBar\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./search_bar.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./search_bar.js\"\nimport __vue_script__ from \"!!babel-loader!./search_bar.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-723d6cec\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./search_bar.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"search-bar-container\"},[(_vm.loading)?_c('i',{staticClass:\"icon-spin4 finder-icon animate-spin-slow\"}):_vm._e(),_vm._v(\" \"),(_vm.hidden)?_c('a',{attrs:{\"href\":\"#\",\"title\":_vm.$t('nav.search')}},[_c('i',{staticClass:\"button-icon icon-search\",on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.toggleHidden($event)}}})]):[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.searchTerm),expression:\"searchTerm\"}],ref:\"searchInput\",staticClass:\"search-bar-input\",attrs:{\"id\":\"search-bar-input\",\"placeholder\":_vm.$t('nav.search'),\"type\":\"text\"},domProps:{\"value\":(_vm.searchTerm)},on:{\"keyup\":function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }_vm.find(_vm.searchTerm)},\"input\":function($event){if($event.target.composing){ return; }_vm.searchTerm=$event.target.value}}}),_vm._v(\" \"),_c('button',{staticClass:\"btn search-button\",on:{\"click\":function($event){_vm.find(_vm.searchTerm)}}},[_c('i',{staticClass:\"icon-search\"})]),_vm._v(\" \"),_c('i',{staticClass:\"button-icon icon-cancel\",on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.toggleHidden($event)}}})]],2)])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import apiService from '../../services/api/api.service.js'\nimport generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\nimport { shuffle } from 'lodash'\n\nfunction showWhoToFollow (panel, reply) {\n const shuffled = shuffle(reply)\n\n panel.usersToFollow.forEach((toFollow, index) => {\n let user = shuffled[index]\n let img = user.avatar || '/images/avi.png'\n let name = user.acct\n\n toFollow.img = img\n toFollow.name = name\n\n panel.$store.state.api.backendInteractor.fetchUser({ id: name })\n .then((externalUser) => {\n if (!externalUser.error) {\n panel.$store.commit('addNewUsers', [externalUser])\n toFollow.id = externalUser.id\n }\n })\n })\n}\n\nfunction getWhoToFollow (panel) {\n var credentials = panel.$store.state.users.currentUser.credentials\n if (credentials) {\n panel.usersToFollow.forEach(toFollow => {\n toFollow.name = 'Loading...'\n })\n apiService.suggestions({ credentials: credentials })\n .then((reply) => {\n showWhoToFollow(panel, reply)\n })\n }\n}\n\nconst WhoToFollowPanel = {\n data: () => ({\n usersToFollow: new Array(3).fill().map(x => (\n {\n img: '/images/avi.png',\n name: '',\n id: 0\n }\n ))\n }),\n computed: {\n user: function () {\n return this.$store.state.users.currentUser.screen_name\n },\n suggestionsEnabled () {\n return this.$store.state.instance.suggestionsEnabled\n }\n },\n methods: {\n userProfileLink (id, name) {\n return generateProfileLink(id, name, this.$store.state.instance.restrictedNicknames)\n }\n },\n watch: {\n user: function (user, oldUser) {\n if (this.suggestionsEnabled) {\n getWhoToFollow(this)\n }\n }\n },\n mounted:\n function () {\n if (this.suggestionsEnabled) {\n getWhoToFollow(this)\n }\n }\n}\n\nexport default WhoToFollowPanel\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./who_to_follow_panel.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./who_to_follow_panel.js\"\nimport __vue_script__ from \"!!babel-loader!./who_to_follow_panel.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-b4d31272\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./who_to_follow_panel.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"who-to-follow-panel\"},[_c('div',{staticClass:\"panel panel-default base01-background\"},[_c('div',{staticClass:\"panel-heading timeline-heading base02-background base04\"},[_c('div',{staticClass:\"title\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('who_to_follow.who_to_follow'))+\"\\n \")])]),_vm._v(\" \"),_c('div',{staticClass:\"who-to-follow\"},[_vm._l((_vm.usersToFollow),function(user){return _c('p',{key:user.id,staticClass:\"who-to-follow-items\"},[_c('img',{attrs:{\"src\":user.img}}),_vm._v(\" \"),_c('router-link',{attrs:{\"to\":_vm.userProfileLink(user.id, user.name)}},[_vm._v(\"\\n \"+_vm._s(user.name)+\"\\n \")]),_c('br')],1)}),_vm._v(\" \"),_c('p',{staticClass:\"who-to-follow-more\"},[_c('router-link',{attrs:{\"to\":{ name: 'who-to-follow' }}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('who_to_follow.more'))+\"\\n \")])],1)],2)])])}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","<template>\n <div\n v-show=\"isOpen\"\n v-body-scroll-lock=\"isOpen\"\n class=\"modal-view\"\n @click.self=\"$emit('backdropClicked')\"\n >\n <slot />\n </div>\n</template>\n\n<script>\nexport default {\n props: {\n isOpen: {\n type: Boolean,\n default: true\n }\n }\n}\n</script>\n\n<style lang=\"scss\">\n.modal-view {\n z-index: 1000;\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n overflow: auto;\n animation-duration: 0.2s;\n background-color: rgba(0, 0, 0, 0.5);\n animation-name: modal-background-fadein;\n\n body:not(.scroll-locked) & {\n opacity: 0;\n }\n}\n\n@keyframes modal-background-fadein {\n from {\n background-color: rgba(0, 0, 0, 0);\n }\n to {\n background-color: rgba(0, 0, 0, 0.5);\n }\n}\n</style>\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./modal.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./modal.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../node_modules/vue-loader/lib/selector?type=script&index=0!./modal.vue\"\n/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-068d175e\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./modal.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isOpen),expression:\"isOpen\"},{name:\"body-scroll-lock\",rawName:\"v-body-scroll-lock\",value:(_vm.isOpen),expression:\"isOpen\"}],staticClass:\"modal-view\",on:{\"click\":function($event){if($event.target !== $event.currentTarget){ return null; }_vm.$emit('backdropClicked')}}},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","\nconst DIRECTION_LEFT = [-1, 0]\nconst DIRECTION_RIGHT = [1, 0]\nconst DIRECTION_UP = [0, -1]\nconst DIRECTION_DOWN = [0, 1]\n\nconst deltaCoord = (oldCoord, newCoord) => [newCoord[0] - oldCoord[0], newCoord[1] - oldCoord[1]]\n\nconst touchEventCoord = e => ([e.touches[0].screenX, e.touches[0].screenY])\n\nconst vectorLength = v => Math.sqrt(v[0] * v[0] + v[1] * v[1])\n\nconst perpendicular = v => [v[1], -v[0]]\n\nconst dotProduct = (v1, v2) => v1[0] * v2[0] + v1[1] * v2[1]\n\nconst project = (v1, v2) => {\n const scalar = (dotProduct(v1, v2) / dotProduct(v2, v2))\n return [scalar * v2[0], scalar * v2[1]]\n}\n\n// direction: either use the constants above or an arbitrary 2d vector.\n// threshold: how many Px to move from touch origin before checking if the\n// callback should be called.\n// divergentTolerance: a scalar for much of divergent direction we tolerate when\n// above threshold. for example, with 1.0 we only call the callback if\n// divergent component of delta is < 1.0 * direction component of delta.\nconst swipeGesture = (direction, onSwipe, threshold = 30, perpendicularTolerance = 1.0) => {\n return {\n direction,\n onSwipe,\n threshold,\n perpendicularTolerance,\n _startPos: [0, 0],\n _swiping: false\n }\n}\n\nconst beginSwipe = (event, gesture) => {\n gesture._startPos = touchEventCoord(event)\n gesture._swiping = true\n}\n\nconst updateSwipe = (event, gesture) => {\n if (!gesture._swiping) return\n // movement too small\n const delta = deltaCoord(gesture._startPos, touchEventCoord(event))\n if (vectorLength(delta) < gesture.threshold) return\n // movement is opposite from direction\n if (dotProduct(delta, gesture.direction) < 0) return\n // movement perpendicular to direction is too much\n const towardsDir = project(delta, gesture.direction)\n const perpendicularDir = perpendicular(gesture.direction)\n const towardsPerpendicular = project(delta, perpendicularDir)\n if (\n vectorLength(towardsDir) * gesture.perpendicularTolerance <\n vectorLength(towardsPerpendicular)\n ) return\n\n gesture.onSwipe()\n gesture._swiping = false\n}\n\nconst GestureService = {\n DIRECTION_LEFT,\n DIRECTION_RIGHT,\n DIRECTION_UP,\n DIRECTION_DOWN,\n swipeGesture,\n beginSwipe,\n updateSwipe\n}\n\nexport default GestureService\n","import StillImage from '../still-image/still-image.vue'\nimport VideoAttachment from '../video_attachment/video_attachment.vue'\nimport Modal from '../modal/modal.vue'\nimport fileTypeService from '../../services/file_type/file_type.service.js'\nimport GestureService from '../../services/gesture_service/gesture_service'\n\nconst MediaModal = {\n components: {\n StillImage,\n VideoAttachment,\n Modal\n },\n computed: {\n showing () {\n return this.$store.state.mediaViewer.activated\n },\n media () {\n return this.$store.state.mediaViewer.media\n },\n currentIndex () {\n return this.$store.state.mediaViewer.currentIndex\n },\n currentMedia () {\n return this.media[this.currentIndex]\n },\n canNavigate () {\n return this.media.length > 1\n },\n type () {\n return this.currentMedia ? fileTypeService.fileType(this.currentMedia.mimetype) : null\n }\n },\n created () {\n this.mediaSwipeGestureRight = GestureService.swipeGesture(\n GestureService.DIRECTION_RIGHT,\n this.goPrev,\n 50\n )\n this.mediaSwipeGestureLeft = GestureService.swipeGesture(\n GestureService.DIRECTION_LEFT,\n this.goNext,\n 50\n )\n },\n methods: {\n mediaTouchStart (e) {\n GestureService.beginSwipe(e, this.mediaSwipeGestureRight)\n GestureService.beginSwipe(e, this.mediaSwipeGestureLeft)\n },\n mediaTouchMove (e) {\n GestureService.updateSwipe(e, this.mediaSwipeGestureRight)\n GestureService.updateSwipe(e, this.mediaSwipeGestureLeft)\n },\n hide () {\n this.$store.dispatch('closeMediaViewer')\n },\n goPrev () {\n if (this.canNavigate) {\n const prevIndex = this.currentIndex === 0 ? this.media.length - 1 : (this.currentIndex - 1)\n this.$store.dispatch('setCurrent', this.media[prevIndex])\n }\n },\n goNext () {\n if (this.canNavigate) {\n const nextIndex = this.currentIndex === this.media.length - 1 ? 0 : (this.currentIndex + 1)\n this.$store.dispatch('setCurrent', this.media[nextIndex])\n }\n },\n handleKeyupEvent (e) {\n if (this.showing && e.keyCode === 27) { // escape\n this.hide()\n }\n },\n handleKeydownEvent (e) {\n if (!this.showing) {\n return\n }\n\n if (e.keyCode === 39) { // arrow right\n this.goNext()\n } else if (e.keyCode === 37) { // arrow left\n this.goPrev()\n }\n }\n },\n mounted () {\n document.addEventListener('keyup', this.handleKeyupEvent)\n document.addEventListener('keydown', this.handleKeydownEvent)\n },\n destroyed () {\n document.removeEventListener('keyup', this.handleKeyupEvent)\n document.removeEventListener('keydown', this.handleKeydownEvent)\n }\n}\n\nexport default MediaModal\n","function injectStyle (context) {\n require(\"!!vue-style-loader!css-loader?minimize!../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"optionsId\\\":\\\"0\\\",\\\"vue\\\":true,\\\"scoped\\\":false,\\\"sourceMap\\\":false}!sass-loader!../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./media_modal.vue\")\n}\n/* script */\nexport * from \"!!babel-loader!./media_modal.js\"\nimport __vue_script__ from \"!!babel-loader!./media_modal.js\"/* template */\nimport {render as __vue_render__, staticRenderFns as __vue_static_render_fns__} from \"!!../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-c0e28422\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./media_modal.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.showing)?_c('Modal',{staticClass:\"media-modal-view\",on:{\"backdropClicked\":_vm.hide}},[(_vm.type === 'image')?_c('img',{staticClass:\"modal-image\",attrs:{\"src\":_vm.currentMedia.url},on:{\"touchstart\":function($event){$event.stopPropagation();return _vm.mediaTouchStart($event)},\"touchmove\":function($event){$event.stopPropagation();return _vm.mediaTouchMove($event)},\"click\":_vm.hide}}):_vm._e(),_vm._v(\" \"),(_vm.type === 'video')?_c('VideoAttachment',{staticClass:\"modal-image\",attrs:{\"attachment\":_vm.currentMedia,\"controls\":true}}):_vm._e(),_vm._v(\" \"),(_vm.canNavigate)?_c('button',{staticClass:\"modal-view-button-arrow modal-view-button-arrow--prev\",attrs:{\"title\":_vm.$t('media_modal.previous')},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.goPrev($event)}}},[_c('i',{staticClass:\"icon-left-open arrow-icon\"})]):_vm._e(),_vm._v(\" \"),(_vm.canNavigate)?_c('button',{staticClass:\"modal-view-button-arrow modal-view-button-arrow--next\",attrs:{\"title\":_vm.$t('media_modal.next')},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.goNext($event)}}},[_c('i',{staticClass:\"icon-right-open arrow-icon\"})]):_vm._e()],1):_vm._e()}\nvar staticRenderFns = []\nexport { render, staticRenderFns }","import UserCard from '../user_card/user_card.vue'\nimport { unseenNotificationsFromStore } from '../../services/notification_utils/notification_utils'\nimport GestureService from '../../services/gesture_service/gesture_service'\n\nconst SideDrawer = {\n props: [ 'logout' ],\n data: () => ({\n closed: true,\n closeGesture: undefined\n }),\n created () {\n this.closeGesture = GestureService.swipeGesture(GestureService.DIRECTION_LEFT, this.toggleDrawer)\n\n if (this.currentUser && this.currentUser.locked) {\n this.$store.dispatch('startFetchingFollowRequests')\n }\n },\n components: { UserCard },\n computed: {\n currentUser () {\n return this.$store.state.users.currentUser\n },\n chat () { return this.$store.state.chat.channel.state === 'joined' },\n unseenNotifications () {\n return unseenNotificationsFromStore(this.$store)\n },\n unseenNotificationsCount () {\n return this.unseenNotifications.length\n },\n suggestionsEnabled () {\n return this.$store.state.instance.suggestionsEnabled\n },\n logo () {\n return this.$store.state.instance.logo\n },\n hideSitename () {\n return this.$store.state.instance.hideSitename\n },\n sitename () {\n return this.$store.state.instance.name\n },\n followRequestCount () {\n return this.$store.state.api.followRequests.length\n },\n privateMode () {\n return this.$store.state.instance.private\n },\n federating () {\n return this.$store.state.instance.federating\n }\n },\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-f3e56db6\\\",\\\"hasScoped\\\":false,\\\"optionsId\\\":\\\"0\\\",\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../node_modules/vue-loader/lib/selector?type=template&index=0!./side_drawer.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nimport normalizeComponent from \"!../../../node_modules/vue-loader/lib/runtime/component-normalizer\"\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_render__,\n __vue_static_render_fns__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"side-drawer-container\",class:{ 'side-drawer-container-closed': _vm.closed, 'side-drawer-container-open': !_vm.closed }},[_c('div',{staticClass:\"side-drawer-darken\",class:{ 'side-drawer-darken-closed': _vm.closed}}),_vm._v(\" \"),_c('div',{staticClass:\"side-drawer\",class:{'side-drawer-closed': _vm.closed},on:{\"touchstart\":_vm.touchStart,\"touchmove\":_vm.touchMove}},[_c('div',{staticClass:\"side-drawer-heading\",on:{\"click\":_vm.toggleDrawer}},[(_vm.currentUser)?_c('UserCard',{attrs:{\"user-id\":_vm.currentUser.id,\"hide-bio\":true}}):_c('div',{staticClass:\"side-drawer-logo-wrapper\"},[_c('img',{attrs:{\"src\":_vm.logo}}),_vm._v(\" \"),(!_vm.hideSitename)?_c('span',[_vm._v(_vm._s(_vm.sitename))]):_vm._e()])],1),_vm._v(\" \"),_c('ul',[(!_vm.currentUser)?_c('li',{on:{\"click\":_vm.toggleDrawer}},[_c('router-link',{attrs:{\"to\":{ name: 'login' }}},[_c('i',{staticClass:\"button-icon icon-login\"}),_vm._v(\" \"+_vm._s(_vm.$t(\"login.login\"))+\"\\n \")])],1):_vm._e(),_vm._v(\" \"),(_vm.currentUser)?_c('li',{on:{\"click\":_vm.toggleDrawer}},[_c('router-link',{attrs:{\"to\":{ name: 'dms', params: { username: _vm.currentUser.screen_name } }}},[_c('i',{staticClass:\"button-icon icon-mail-alt\"}),_vm._v(\" \"+_vm._s(_vm.$t(\"nav.dms\"))+\"\\n \")])],1):_vm._e(),_vm._v(\" \"),(_vm.currentUser)?_c('li',{on:{\"click\":_vm.toggleDrawer}},[_c('router-link',{attrs:{\"to\":{ name: 'interactions', params: { username: _vm.currentUser.screen_name } }}},[_c('i',{staticClass:\"button-icon icon-bell-alt\"}),_vm._v(\" \"+_vm._s(_vm.$t(\"nav.interactions\"))+\"\\n \")])],1):_vm._e()]),_vm._v(\" \"),_c('ul',[(_vm.currentUser)?_c('li',{on:{\"click\":_vm.toggleDrawer}},[_c('router-link',{attrs:{\"to\":{ name: 'friends' }}},[_c('i',{staticClass:\"button-icon icon-home-2\"}),_vm._v(\" \"+_vm._s(_vm.$t(\"nav.timeline\"))+\"\\n \")])],1):_vm._e(),_vm._v(\" \"),(_vm.currentUser && _vm.currentUser.locked)?_c('li',{on:{\"click\":_vm.toggleDrawer}},[_c('router-link',{attrs:{\"to\":\"/friend-requests\"}},[_c('i',{staticClass:\"button-icon icon-user-plus\"}),_vm._v(\" \"+_vm._s(_vm.$t(\"nav.friend_requests\"))+\"\\n \"),(_vm.followRequestCount > 0)?_c('span',{staticClass:\"badge follow-request-count\"},[_vm._v(\"\\n \"+_vm._s(_vm.followRequestCount)+\"\\n \")]):_vm._e()])],1):_vm._e(),_vm._v(\" \"),(_vm.currentUser || !_vm.privateMode)?_c('li',{on:{\"click\":_vm.toggleDrawer}},[_c('router-link',{attrs:{\"to\":\"/main/public\"}},[_c('i',{staticClass:\"button-icon icon-users\"}),_vm._v(\" \"+_vm._s(_vm.$t(\"nav.public_tl\"))+\"\\n \")])],1):_vm._e(),_vm._v(\" \"),(_vm.federating && (_vm.currentUser || !_vm.privateMode))?_c('li',{on:{\"click\":_vm.toggleDrawer}},[_c('router-link',{attrs:{\"to\":\"/main/all\"}},[_c('i',{staticClass:\"button-icon icon-globe\"}),_vm._v(\" \"+_vm._s(_vm.$t(\"nav.twkn\"))+\"\\n \")])],1):_vm._e(),_vm._v(\" \"),(_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-e59c2fa4\\\",\\\"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 underlay\",attrs:{\"id\":\"content\"}},[_c('div',{staticClass:\"sidebar-flexer mobile-hidden\"},[_c('div',{staticClass:\"sidebar-bounds\"},[_c('div',{staticClass:\"sidebar-scroller\"},[_c('div',{staticClass:\"sidebar\"},[_c('user-panel'),_vm._v(\" \"),(!_vm.isMobileLayout)?_c('div',[_c('nav-panel'),_vm._v(\" \"),(_vm.showInstanceSpecificPanel)?_c('instance-specific-panel'):_vm._e(),_vm._v(\" \"),(!_vm.currentUser && _vm.showFeaturesPanel)?_c('features-panel'):_vm._e(),_vm._v(\" \"),(_vm.currentUser && _vm.suggestionsEnabled)?_c('who-to-follow-panel'):_vm._e(),_vm._v(\" \"),(_vm.currentUser)?_c('notifications'):_vm._e()],1):_vm._e()],1)])])]),_vm._v(\" \"),_c('div',{staticClass:\"main\"},[(!_vm.currentUser)?_c('div',{staticClass:\"login-hint panel panel-default\"},[_c('router-link',{staticClass:\"panel-body\",attrs:{\"to\":{ name: 'login' }}},[_vm._v(\"\\n \"+_vm._s(_vm.$t(\"login.hint\"))+\"\\n \")])],1):_vm._e(),_vm._v(\" \"),_c('transition',{attrs:{\"name\":\"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'\nimport { CURRENT_VERSION } from '../services/theme_data/theme_data.service.js'\nimport { applyTheme } from '../services/style_setter/style_setter.js'\n\nconst getStatusnetConfig = async ({ store }) => {\n try {\n const res = await window.fetch('/api/statusnet/config.json')\n if (res.ok) {\n const data = await res.json()\n const { name, closed: registrationClosed, textlimit, uploadlimit, server, vapidPublicKey, safeDMMentionsEnabled } = data.site\n\n store.dispatch('setInstanceOption', { name: 'name', value: name })\n store.dispatch('setInstanceOption', { name: 'registrationOpen', value: (registrationClosed === '0') })\n store.dispatch('setInstanceOption', { name: 'textlimit', value: parseInt(textlimit) })\n store.dispatch('setInstanceOption', { name: 'server', value: server })\n store.dispatch('setInstanceOption', { name: 'safeDM', value: safeDMMentionsEnabled !== '0' })\n\n // TODO: default values for this stuff, added if to not make it break on\n // my dev config out of the box.\n if (uploadlimit) {\n store.dispatch('setInstanceOption', { name: 'uploadlimit', value: parseInt(uploadlimit.uploadlimit) })\n store.dispatch('setInstanceOption', { name: 'avatarlimit', value: parseInt(uploadlimit.avatarlimit) })\n store.dispatch('setInstanceOption', { name: 'backgroundlimit', value: parseInt(uploadlimit.backgroundlimit) })\n store.dispatch('setInstanceOption', { name: 'bannerlimit', value: parseInt(uploadlimit.bannerlimit) })\n }\n\n if (vapidPublicKey) {\n store.dispatch('setInstanceOption', { name: 'vapidPublicKey', value: vapidPublicKey })\n }\n\n return data.site.pleromafe\n } else {\n throw (res)\n }\n } catch (error) {\n console.error('Could not load statusnet config, potentially fatal')\n console.error(error)\n }\n}\n\nconst getStaticConfig = async () => {\n try {\n const res = await window.fetch('/static/config.json')\n if (res.ok) {\n return res.json()\n } else {\n throw (res)\n }\n } catch (error) {\n console.warn('Failed to load static/config.json, continuing without it.')\n console.warn(error)\n return {}\n }\n}\n\nconst setSettings = async ({ apiConfig, staticConfig, store }) => {\n const overrides = window.___pleromafe_dev_overrides || {}\n const env = window.___pleromafe_mode.NODE_ENV\n\n // This takes static config and overrides properties that are present in apiConfig\n let config = {}\n if (overrides.staticConfigPreference && env === 'development') {\n console.warn('OVERRIDING API CONFIG WITH STATIC CONFIG')\n config = Object.assign({}, apiConfig, staticConfig)\n } else {\n config = Object.assign({}, staticConfig, apiConfig)\n }\n\n const copyInstanceOption = (name) => {\n store.dispatch('setInstanceOption', { name, value: config[name] })\n }\n\n copyInstanceOption('nsfwCensorImage')\n copyInstanceOption('background')\n copyInstanceOption('hidePostStats')\n copyInstanceOption('hideUserStats')\n copyInstanceOption('hideFilteredStatuses')\n copyInstanceOption('logo')\n\n store.dispatch('setInstanceOption', {\n name: 'logoMask',\n value: typeof config.logoMask === 'undefined'\n ? true\n : config.logoMask\n })\n\n store.dispatch('setInstanceOption', {\n name: 'logoMargin',\n value: typeof config.logoMargin === 'undefined'\n ? 0\n : config.logoMargin\n })\n store.commit('authFlow/setInitialStrategy', config.loginMethod)\n\n copyInstanceOption('redirectRootNoLogin')\n copyInstanceOption('redirectRootLogin')\n copyInstanceOption('showInstanceSpecificPanel')\n copyInstanceOption('minimalScopesMode')\n copyInstanceOption('hideMutedPosts')\n copyInstanceOption('collapseMessageWithSubject')\n copyInstanceOption('scopeCopy')\n copyInstanceOption('subjectLineBehavior')\n copyInstanceOption('postContentType')\n copyInstanceOption('alwaysShowSubjectInput')\n copyInstanceOption('noAttachmentLinks')\n copyInstanceOption('showFeaturesPanel')\n copyInstanceOption('hideSitename')\n\n return store.dispatch('setTheme', config['theme'])\n}\n\nconst getTOS = async ({ store }) => {\n try {\n const res = await window.fetch('/static/terms-of-service.html')\n if (res.ok) {\n const html = await res.text()\n store.dispatch('setInstanceOption', { name: 'tos', value: html })\n } else {\n throw (res)\n }\n } catch (e) {\n console.warn(\"Can't load TOS\")\n console.warn(e)\n }\n}\n\nconst getInstancePanel = async ({ store }) => {\n try {\n const res = await window.fetch('/instance/panel.html')\n if (res.ok) {\n const html = await res.text()\n store.dispatch('setInstanceOption', { name: 'instanceSpecificPanelContent', value: html })\n } else {\n throw (res)\n }\n } catch (e) {\n console.warn(\"Can't load instance panel\")\n console.warn(e)\n }\n}\n\nconst getStickers = async ({ store }) => {\n try {\n const res = await window.fetch('/static/stickers.json')\n if (res.ok) {\n const values = await res.json()\n const stickers = (await Promise.all(\n Object.entries(values).map(async ([name, path]) => {\n const resPack = await window.fetch(path + 'pack.json')\n var meta = {}\n if (resPack.ok) {\n meta = await resPack.json()\n }\n return {\n pack: name,\n path,\n meta\n }\n })\n )).sort((a, b) => {\n return a.meta.title.localeCompare(b.meta.title)\n })\n store.dispatch('setInstanceOption', { name: 'stickers', value: stickers })\n } else {\n throw (res)\n }\n } catch (e) {\n console.warn(\"Can't load stickers\")\n console.warn(e)\n }\n}\n\nconst getAppSecret = async ({ store }) => {\n const { state, commit } = store\n const { oauth, instance } = state\n return getOrCreateApp({ ...oauth, instance: instance.server, commit })\n .then((app) => getClientToken({ ...app, instance: instance.server }))\n .then((token) => {\n commit('setAppToken', token.access_token)\n commit('setBackendInteractor', backendInteractorService(store.getters.getToken()))\n })\n}\n\nconst resolveStaffAccounts = ({ store, accounts }) => {\n const nicknames = accounts.map(uri => uri.split('/').pop())\n nicknames.map(nickname => store.dispatch('fetchUser', nickname))\n store.dispatch('setInstanceOption', { name: 'staffAccounts', value: nicknames })\n}\n\nconst getNodeInfo = async ({ store }) => {\n try {\n const res = await window.fetch('/nodeinfo/2.0.json')\n if (res.ok) {\n const data = await res.json()\n const metadata = data.metadata\n const features = metadata.features\n store.dispatch('setInstanceOption', { name: 'mediaProxyAvailable', value: features.includes('media_proxy') })\n store.dispatch('setInstanceOption', { name: 'chatAvailable', value: features.includes('chat') })\n store.dispatch('setInstanceOption', { name: 'gopherAvailable', value: features.includes('gopher') })\n store.dispatch('setInstanceOption', { name: 'pollsAvailable', value: features.includes('polls') })\n store.dispatch('setInstanceOption', { name: 'pollLimits', value: metadata.pollLimits })\n store.dispatch('setInstanceOption', { name: 'mailerEnabled', value: metadata.mailerEnabled })\n\n store.dispatch('setInstanceOption', { name: 'restrictedNicknames', value: metadata.restrictedNicknames })\n store.dispatch('setInstanceOption', { name: 'postFormats', value: metadata.postFormats })\n\n const suggestions = metadata.suggestions\n store.dispatch('setInstanceOption', { name: 'suggestionsEnabled', value: suggestions.enabled })\n store.dispatch('setInstanceOption', { name: 'suggestionsWeb', value: suggestions.web })\n\n const software = data.software\n store.dispatch('setInstanceOption', { name: 'backendVersion', value: software.version })\n store.dispatch('setInstanceOption', { name: 'pleromaBackend', value: software.name === 'pleroma' })\n\n const priv = metadata.private\n store.dispatch('setInstanceOption', { name: 'private', value: priv })\n\n const frontendVersion = window.___pleromafe_commit_hash\n store.dispatch('setInstanceOption', { name: 'frontendVersion', value: frontendVersion })\n\n const federation = metadata.federation\n\n store.dispatch('setInstanceOption', {\n name: 'tagPolicyAvailable',\n value: typeof federation.mrf_policies === 'undefined'\n ? false\n : metadata.federation.mrf_policies.includes('TagPolicy')\n })\n\n store.dispatch('setInstanceOption', { name: 'federationPolicy', value: federation })\n store.dispatch('setInstanceOption', {\n name: 'federating',\n value: typeof federation.enabled === 'undefined'\n ? true\n : federation.enabled\n })\n\n const accountActivationRequired = metadata.accountActivationRequired\n store.dispatch('setInstanceOption', { name: 'accountActivationRequired', value: accountActivationRequired })\n\n const accounts = metadata.staffAccounts\n resolveStaffAccounts({ store, accounts })\n } else {\n throw (res)\n }\n } catch (e) {\n console.warn('Could not load nodeinfo')\n console.warn(e)\n }\n}\n\nconst setConfig = async ({ store }) => {\n // apiConfig, staticConfig\n const configInfos = await Promise.all([getStatusnetConfig({ store }), getStaticConfig()])\n const apiConfig = configInfos[0]\n const staticConfig = configInfos[1]\n\n await setSettings({ store, apiConfig, staticConfig }).then(getAppSecret({ store }))\n}\n\nconst checkOAuthToken = async ({ store }) => {\n return new Promise(async (resolve, reject) => {\n if (store.getters.getUserToken()) {\n try {\n await store.dispatch('loginUser', store.getters.getUserToken())\n } catch (e) {\n console.error(e)\n }\n }\n resolve()\n })\n}\n\nconst afterStoreSetup = async ({ store, i18n }) => {\n const width = windowWidth()\n store.dispatch('setMobileLayout', width <= 800)\n await setConfig({ store })\n\n const { customTheme, customThemeSource } = store.state.config\n const { theme } = store.state.instance\n const customThemePresent = customThemeSource || customTheme\n\n if (customThemePresent) {\n if (customThemeSource && customThemeSource.themeEngineVersion === CURRENT_VERSION) {\n applyTheme(customThemeSource)\n } else {\n applyTheme(customTheme)\n }\n } else if (theme) {\n // do nothing, it will load asynchronously\n } else {\n console.error('Failed to load any theme!')\n }\n\n // Now we can try getting the server settings and logging in\n await Promise.all([\n checkOAuthToken({ store }),\n getTOS({ store }),\n getInstancePanel({ store }),\n getStickers({ store }),\n getNodeInfo({ store })\n ])\n\n // Start fetching things that don't need to block the UI\n store.dispatch('fetchMutes')\n\n const router = new VueRouter({\n mode: 'history',\n routes: routes(store),\n scrollBehavior: (to, _from, savedPosition) => {\n if (to.matched.some(m => m.meta.dontScroll)) {\n return false\n }\n return savedPosition || { x: 0, y: 0 }\n }\n })\n\n /* eslint-disable no-new */\n return new Vue({\n router,\n store,\n i18n,\n el: '#app',\n render: h => h(App)\n })\n}\n\nexport default afterStoreSetup\n","import Vue from 'vue'\nimport VueRouter from 'vue-router'\nimport Vuex from 'vuex'\n\nimport 'custom-event-polyfill'\nimport './lib/event_target_polyfill.js'\n\nimport interfaceModule from './modules/interface.js'\nimport instanceModule from './modules/instance.js'\nimport statusesModule from './modules/statuses.js'\nimport usersModule from './modules/users.js'\nimport apiModule from './modules/api.js'\nimport configModule from './modules/config.js'\nimport chatModule from './modules/chat.js'\nimport oauthModule from './modules/oauth.js'\nimport authFlowModule from './modules/auth_flow.js'\nimport mediaViewerModule from './modules/media_viewer.js'\nimport oauthTokensModule from './modules/oauth_tokens.js'\nimport reportsModule from './modules/reports.js'\nimport pollsModule from './modules/polls.js'\nimport postStatusModule from './modules/postStatus.js'\n\nimport VueI18n from 'vue-i18n'\n\nimport createPersistedState from './lib/persisted_state.js'\nimport pushNotifications from './lib/push_notifications_plugin.js'\n\nimport messages from './i18n/messages.js'\n\nimport VueChatScroll from 'vue-chat-scroll'\nimport VueClickOutside from 'v-click-outside'\nimport PortalVue from 'portal-vue'\nimport VBodyScrollLock from './directives/body_scroll_lock'\n\nimport afterStoreSetup from './boot/after_store.js'\n\nconst currentLocale = (window.navigator.language || 'en').split('-')[0]\n\nVue.use(Vuex)\nVue.use(VueRouter)\nVue.use(VueI18n)\nVue.use(VueChatScroll)\nVue.use(VueClickOutside)\nVue.use(PortalVue)\nVue.use(VBodyScrollLock)\n\nconst i18n = new VueI18n({\n // By default, use the browser locale, we will update it if neccessary\n locale: currentLocale,\n fallbackLocale: 'en',\n messages\n})\n\nconst persistedStateOptions = {\n paths: [\n 'config',\n 'users.lastLoginName',\n 'oauth'\n ]\n};\n\n(async () => {\n const persistedState = await createPersistedState(persistedStateOptions)\n const store = new Vuex.Store({\n modules: {\n i18n: {\n getters: {\n i18n: () => i18n\n }\n },\n interface: interfaceModule,\n instance: instanceModule,\n statuses: statusesModule,\n users: usersModule,\n api: apiModule,\n config: configModule,\n chat: chatModule,\n oauth: oauthModule,\n authFlow: authFlowModule,\n mediaViewer: mediaViewerModule,\n oauthTokens: oauthTokensModule,\n reports: reportsModule,\n polls: pollsModule,\n postStatus: postStatusModule\n },\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":""}