summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLain Soykaf <lain@lain.com>2023-12-16 13:44:15 +0400
committerLain Soykaf <lain@lain.com>2023-12-16 13:44:15 +0400
commit6bd4d25ce81a549161820529fc7dee280972b8a8 (patch)
tree884c494d9060fe8d5167d84ed893f3c8169d4c00
parent5a1834a392d0982e63080b9a176cd502ffb02437 (diff)
parent147b37b89324055d92f7230a7d504a4a82deaf1e (diff)
Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into docker-composedocker-compose
-rw-r--r--CHANGELOG.md11
-rw-r--r--changelog.d/2.6.1-mergeback.skip0
-rw-r--r--changelog.d/akkoma-xml-remote-entities.security1
-rw-r--r--changelog.d/check-attachment-attribution.security1
-rw-r--r--changelog.d/emoji-pack-sanitization.security1
-rw-r--r--changelog.d/otp_perms.security1
-rw-r--r--mix.exs2
-rw-r--r--priv/static/index.html2
-rw-r--r--priv/static/static/css/8859.d26a3b0841a7beb8fd4a.css2
-rw-r--r--priv/static/static/css/8859.d26a3b0841a7beb8fd4a.css.map1
-rw-r--r--priv/static/static/css/9801.cfe503d4c949ae0c3813.css2
-rw-r--r--priv/static/static/css/9801.cfe503d4c949ae0c3813.css.map1
-rw-r--r--priv/static/static/css/app.a7f63ee9107a77599942.css (renamed from priv/static/static/css/app.c18a2c80794a1b699a61.css)4
-rw-r--r--priv/static/static/css/app.a7f63ee9107a77599942.css.map (renamed from priv/static/static/css/app.c18a2c80794a1b699a61.css.map)2
-rw-r--r--priv/static/static/js/7586.628f729b9c8b2e6f4e1f.js2
-rw-r--r--priv/static/static/js/7586.628f729b9c8b2e6f4e1f.js.map (renamed from priv/static/static/js/7586.981b2305a0019f6042a5.js.map)2
-rw-r--r--priv/static/static/js/7586.981b2305a0019f6042a5.js2
-rw-r--r--priv/static/static/js/8859.c76b0a0c3a4b5acbef11.js2
-rw-r--r--priv/static/static/js/8859.c76b0a0c3a4b5acbef11.js.map1
-rw-r--r--priv/static/static/js/9801.99ace6b5dc657bf1a65b.js2
-rw-r--r--priv/static/static/js/9801.99ace6b5dc657bf1a65b.js.map1
-rw-r--r--priv/static/static/js/app.7c4b412b26221a7c8572.js2
-rw-r--r--priv/static/static/js/app.7c4b412b26221a7c8572.js.map1
-rw-r--r--priv/static/static/js/app.d42ab31e1d50a3265a82.js2
-rw-r--r--priv/static/static/js/app.d42ab31e1d50a3265a82.js.map1
-rw-r--r--priv/static/static/js/i18n/zh-json.5831b903c3e6d281f122.js.map1
-rw-r--r--priv/static/static/js/i18n/zh-json.a0a26f6d62ddbe0b49cc.js (renamed from priv/static/static/js/i18n/zh-json.5831b903c3e6d281f122.js)4
-rw-r--r--priv/static/static/js/i18n/zh-json.a0a26f6d62ddbe0b49cc.js.map1
-rw-r--r--priv/static/sw-pleroma.js2
29 files changed, 32 insertions, 25 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 394eb5179..83b3065ce 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,17 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
+## 2.6.1
+### Changed
+- - Document maximum supported version of Erlang & Elixir
+
+### Added
+- [docs] add frontends management documentation
+
+### Fixed
+- TwitterAPI: Return proper error when healthcheck is disabled
+- Fix eblurhash and elixir-captcha not using system cflags
+
## 2.6.0
### Security
- Preload: Make generated JSON html-safe. It already was html safe because it only consists of config data that is base64 encoded, but this will keep it safe it that ever changes.
diff --git a/changelog.d/2.6.1-mergeback.skip b/changelog.d/2.6.1-mergeback.skip
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/changelog.d/2.6.1-mergeback.skip
diff --git a/changelog.d/akkoma-xml-remote-entities.security b/changelog.d/akkoma-xml-remote-entities.security
deleted file mode 100644
index 5e6725e5b..000000000
--- a/changelog.d/akkoma-xml-remote-entities.security
+++ /dev/null
@@ -1 +0,0 @@
-Fix XML External Entity (XXE) loading vulnerability allowing to fetch arbitary files from the server's filesystem
diff --git a/changelog.d/check-attachment-attribution.security b/changelog.d/check-attachment-attribution.security
deleted file mode 100644
index e0e46525b..000000000
--- a/changelog.d/check-attachment-attribution.security
+++ /dev/null
@@ -1 +0,0 @@
-CommonAPI: Prevent users from accessing media of other users by creating a status with reused attachment ID
diff --git a/changelog.d/emoji-pack-sanitization.security b/changelog.d/emoji-pack-sanitization.security
deleted file mode 100644
index f3218abd4..000000000
--- a/changelog.d/emoji-pack-sanitization.security
+++ /dev/null
@@ -1 +0,0 @@
-Emoji pack loader sanitizes pack names
diff --git a/changelog.d/otp_perms.security b/changelog.d/otp_perms.security
deleted file mode 100644
index a3da1c677..000000000
--- a/changelog.d/otp_perms.security
+++ /dev/null
@@ -1 +0,0 @@
-- Reduced permissions of config files and directories, distros requiring greater permissions like group-read need to pre-create the directories \ No newline at end of file
diff --git a/mix.exs b/mix.exs
index 653e5694b..b4b77b161 100644
--- a/mix.exs
+++ b/mix.exs
@@ -4,7 +4,7 @@ defmodule Pleroma.Mixfile do
def project do
[
app: :pleroma,
- version: version("2.6.50"),
+ version: version("2.6.51"),
elixir: "~> 1.11",
elixirc_paths: elixirc_paths(Mix.env()),
compilers: Mix.compilers(),
diff --git a/priv/static/index.html b/priv/static/index.html
index 52ff685c0..760a70fbe 100644
--- a/priv/static/index.html
+++ b/priv/static/index.html
@@ -1 +1 @@
-<!DOCTYPE html><html lang=en><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,user-scalable=no"><!--server-generated-meta--><link rel=icon type=image/png href=/favicon.png><script defer=defer src=/static/js/3733.7060d1e6bca813125a0c.js></script><script defer=defer src=/static/js/app.7c4b412b26221a7c8572.js></script><link href=/static/css/app.c18a2c80794a1b699a61.css rel=stylesheet></head><body class=hidden><noscript>To use Pleroma, please enable JavaScript.</noscript><div id=app></div><div id=modal></div><div id=popovers></body></html> \ No newline at end of file
+<!DOCTYPE html><html lang=en><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1,user-scalable=no"><link rel=icon type=image/png href=/favicon.png><!--server-generated-meta--><script defer=defer src=/static/js/3733.7060d1e6bca813125a0c.js></script><script defer=defer src=/static/js/app.d42ab31e1d50a3265a82.js></script><link href=/static/css/app.a7f63ee9107a77599942.css rel=stylesheet></head><body class=hidden><noscript>To use Pleroma, please enable JavaScript.</noscript><div id=app></div><div id=modal></div><div id=popovers></body></html> \ No newline at end of file
diff --git a/priv/static/static/css/8859.d26a3b0841a7beb8fd4a.css b/priv/static/static/css/8859.d26a3b0841a7beb8fd4a.css
new file mode 100644
index 000000000..b89695d29
--- /dev/null
+++ b/priv/static/static/css/8859.d26a3b0841a7beb8fd4a.css
@@ -0,0 +1,2 @@
+.ModifiedIndicator{display:inline-block;position:relative}.modified-tooltip{margin:.5em 1em;min-width:10em;text-align:center}.ProfileSettingIndicator{display:inline-block;position:relative}.profilesetting-tooltip{margin:.5em 1em;min-width:10em;text-align:center}.DraftButtons{display:inline-block;position:relative}.DraftButtons .button-default{margin-left:.5em}.draft-tooltip{margin:.5em 1em;min-width:10em;text-align:center}.AttachmentSetting .attachment{display:block;height:15em;margin-bottom:.5em;width:100%}.AttachmentSetting .attachment-input{display:flex;flex-direction:column;margin-left:1em;width:20em}.AttachmentSetting.-compact .attachment-input{align-items:flex-end;flex-direction:row}.AttachmentSetting.-compact .attachment{align-self:center;display:block;flex:0;height:4em;margin-bottom:0;min-width:4em;order:0}.AttachmentSetting.-compact .control-field{margin-left:.5em;min-width:12em;order:1}.AttachmentSetting.-compact .control-upload{min-width:12em;order:2;padding:0 .5em}.AttachmentSetting .controls{margin-bottom:.5em}.AttachmentSetting .controls button,.AttachmentSetting .controls input{width:100%}.frontends-tab .cards-list{padding:0}.frontends-tab .relative{position:relative}.frontends-tab .overlay{background:var(--bg);bottom:0;left:0;opacity:.9;position:absolute;right:0;top:0;z-index:2}.frontends-tab dd{word-wrap:nowrap;max-width:10em;overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}.settings_tab-switcher{height:100%}.settings_tab-switcher .setting-item{border-bottom:2px solid var(--fg,#182230);margin:1em 1em 1.4em;padding-bottom:1.4em}.settings_tab-switcher .setting-item>div,.settings_tab-switcher .setting-item>label{display:block;margin-bottom:.5em}.settings_tab-switcher .setting-item>div:last-child,.settings_tab-switcher .setting-item>label:last-child{margin-bottom:0}.settings_tab-switcher .setting-item .select-multiple{display:flex}.settings_tab-switcher .setting-item .select-multiple .option-list{margin:0;padding-left:.5em}.settings_tab-switcher .setting-item:last-child{border-bottom:none;margin-bottom:1em;padding-bottom:0}.settings_tab-switcher .setting-item select{min-width:10em}.settings_tab-switcher .setting-item textarea{height:100px;max-width:100%;width:100%}.settings_tab-switcher .setting-item .unavailable,.settings_tab-switcher .setting-item .unavailable svg{color:var(--cRed,red);color:red}
+/*# sourceMappingURL=8859.d26a3b0841a7beb8fd4a.css.map*/ \ No newline at end of file
diff --git a/priv/static/static/css/8859.d26a3b0841a7beb8fd4a.css.map b/priv/static/static/css/8859.d26a3b0841a7beb8fd4a.css.map
new file mode 100644
index 000000000..c0ebb3d85
--- /dev/null
+++ b/priv/static/static/css/8859.d26a3b0841a7beb8fd4a.css.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/css/8859.d26a3b0841a7beb8fd4a.css","mappings":"AACA,mBACE,qBACA,kBAGF,kBACE,gBACA,eACA,kBCRF,yBACE,qBACA,kBAGF,wBACE,gBACA,eACA,kBCRF,cACE,qBACA,kBAEA,8BACE,iBAIJ,eACE,gBACA,eACA,kBCXA,+BACE,cAEA,YACA,mBAFA,UAEA,CAGF,qCAEE,aACA,sBAFA,gBAGA,WAIA,8CAEE,qBADA,kBACA,CAGF,wCAME,kBAHA,cAFA,OAIA,WAEA,eAAc,CAHd,cAFA,OAKA,CAGF,2CAGE,iBADA,eADA,OAEA,CAGF,4CAEE,eADA,QAEA,eAIJ,6BACE,mBAEA,uEAEE,WCjDJ,2BACE,UAGF,yBACE,kBAGF,wBAEE,qBAKA,SACA,OAHA,WAJA,kBAQA,OAAM,CAHN,MAFA,SAKA,CAGF,kBAEE,iBAGA,eADA,kBAHA,uBAEA,kBAEA,CCxBJ,uBACE,YAEA,qCACE,0CACA,qBACA,qBAEA,oFAEE,cACA,mBAEA,0GACE,gBAIJ,sDACE,aAEA,mEACE,SACA,kBAIJ,gDACE,mBAEA,kBADA,gBACA,CAGF,4CACE,eAGF,8CAGE,aADA,eADA,UAEA,CAGF,wGAEE,sBACA,SCnCW","sources":["webpack://pleroma_fe/./src/components/settings_modal/helpers/modified_indicator.vue","webpack://pleroma_fe/./src/components/settings_modal/helpers/profile_setting_indicator.vue","webpack://pleroma_fe/./src/components/settings_modal/helpers/draft_buttons.vue","webpack://pleroma_fe/./src/components/settings_modal/helpers/attachment_setting.vue","webpack://pleroma_fe/./src/components/settings_modal/admin_tabs/frontends_tab.scss","webpack://pleroma_fe/./src/components/settings_modal/settings_modal_admin_content.scss","webpack://pleroma_fe/./src/_variables.scss"],"sourcesContent":["\n.ModifiedIndicator {\n display: inline-block;\n position: relative;\n}\n\n.modified-tooltip {\n margin: 0.5em 1em;\n min-width: 10em;\n text-align: center;\n}\n","\n.ProfileSettingIndicator {\n display: inline-block;\n position: relative;\n}\n\n.profilesetting-tooltip {\n margin: 0.5em 1em;\n min-width: 10em;\n text-align: center;\n}\n","\n.DraftButtons {\n display: inline-block;\n position: relative;\n\n .button-default {\n margin-left: 0.5em;\n }\n}\n\n.draft-tooltip {\n margin: 0.5em 1em;\n min-width: 10em;\n text-align: center;\n}\n","\n.AttachmentSetting {\n .attachment {\n display: block;\n width: 100%;\n height: 15em;\n margin-bottom: 0.5em;\n }\n\n .attachment-input {\n margin-left: 1em;\n display: flex;\n flex-direction: column;\n width: 20em;\n }\n\n &.-compact {\n .attachment-input {\n flex-direction: row;\n align-items: flex-end;\n }\n\n .attachment {\n flex: 0;\n order: 0;\n display: block;\n min-width: 4em;\n height: 4em;\n align-self: center;\n margin-bottom: 0;\n }\n\n .control-field {\n order: 1;\n min-width: 12em;\n margin-left: 0.5em;\n }\n\n .control-upload {\n order: 2;\n min-width: 12em;\n padding: 0 0.5em;\n }\n }\n\n .controls {\n margin-bottom: 0.5em;\n\n input,\n button {\n width: 100%;\n }\n }\n}\n",".frontends-tab {\n .cards-list {\n padding: 0;\n }\n\n .relative {\n position: relative;\n }\n\n .overlay {\n position: absolute;\n background: var(--bg);\n // fix buttons showing through\n z-index: 2;\n opacity: 0.9;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n }\n\n dd {\n text-overflow: ellipsis;\n word-wrap: nowrap;\n white-space: nowrap;\n overflow-x: hidden;\n max-width: 10em;\n }\n}\n","@import \"src/variables\";\n\n.settings_tab-switcher {\n height: 100%;\n\n .setting-item {\n border-bottom: 2px solid var(--fg, $fallback--fg);\n margin: 1em 1em 1.4em;\n padding-bottom: 1.4em;\n\n > div,\n > label {\n display: block;\n margin-bottom: 0.5em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .select-multiple {\n display: flex;\n\n .option-list {\n margin: 0;\n padding-left: 0.5em;\n }\n }\n\n &:last-child {\n border-bottom: none;\n padding-bottom: 0;\n margin-bottom: 1em;\n }\n\n select {\n min-width: 10em;\n }\n\n textarea {\n width: 100%;\n max-width: 100%;\n height: 100px;\n }\n\n .unavailable,\n .unavailable svg {\n color: var(--cRed, $fallback--cRed);\n color: $fallback--cRed;\n }\n }\n}\n","$main-color: #f58d2c;\n$main-background: white;\n$darkened-background: whitesmoke;\n\n$fallback--bg: #121a24;\n$fallback--fg: #182230;\n$fallback--faint: rgb(185 185 186 / 50%);\n$fallback--text: #b9b9ba;\n$fallback--link: #d8a070;\n$fallback--icon: #666;\n$fallback--lightBg: rgb(21 30 42);\n$fallback--lightText: #b9b9ba;\n$fallback--border: #222;\n$fallback--cRed: #f00;\n$fallback--cBlue: #0095ff;\n$fallback--cGreen: #0fa00f;\n$fallback--cOrange: orange;\n\n$fallback--alertError: rgb(211 16 20 / 50%);\n$fallback--alertWarning: rgb(111 111 20 / 50%);\n\n$fallback--panelRadius: 10px;\n$fallback--checkboxRadius: 2px;\n$fallback--btnRadius: 4px;\n$fallback--inputRadius: 4px;\n$fallback--tooltipRadius: 5px;\n$fallback--avatarRadius: 4px;\n$fallback--avatarAltRadius: 10px;\n$fallback--attachmentRadius: 10px;\n$fallback--chatMessageRadius: 10px;\n\n$fallback--buttonShadow: 0 0 2px 0 rgb(0 0 0 / 100%),\n 0 1px 0 0 rgb(255 255 255 / 20%) inset,\n 0 -1px 0 0 rgb(0 0 0 / 20%) inset;\n\n$status-margin: 0.75em;\n"],"names":[],"sourceRoot":""} \ No newline at end of file
diff --git a/priv/static/static/css/9801.cfe503d4c949ae0c3813.css b/priv/static/static/css/9801.cfe503d4c949ae0c3813.css
deleted file mode 100644
index b27df4a19..000000000
--- a/priv/static/static/css/9801.cfe503d4c949ae0c3813.css
+++ /dev/null
@@ -1,2 +0,0 @@
-.ModifiedIndicator{display:inline-block;position:relative}.modified-tooltip{margin:.5em 1em;min-width:10em;text-align:center}.ProfileSettingIndicator{display:inline-block;position:relative}.profilesetting-tooltip{margin:.5em 1em;min-width:10em;text-align:center}.DraftButtons{display:inline-block;position:relative}.DraftButtons .button-default{margin-left:.5em}.draft-tooltip{margin:.5em 1em;min-width:10em;text-align:center}.AttachmentSetting .attachment{display:block;height:15em;margin-bottom:.5em;width:100%}.AttachmentSetting .attachment-input{display:flex;flex-direction:column;margin-left:1em;width:20em}.AttachmentSetting .controls{margin-bottom:.5em}.AttachmentSetting .controls button,.AttachmentSetting .controls input{width:100%}.frontends-tab .cards-list{padding:0}.frontends-tab dd{word-wrap:nowrap;max-width:10em;overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}.settings_tab-switcher{height:100%}.settings_tab-switcher .setting-item{border-bottom:2px solid var(--fg,#182230);margin:1em 1em 1.4em;padding-bottom:1.4em}.settings_tab-switcher .setting-item>div,.settings_tab-switcher .setting-item>label{display:block;margin-bottom:.5em}.settings_tab-switcher .setting-item>div:last-child,.settings_tab-switcher .setting-item>label:last-child{margin-bottom:0}.settings_tab-switcher .setting-item .select-multiple{display:flex}.settings_tab-switcher .setting-item .select-multiple .option-list{margin:0;padding-left:.5em}.settings_tab-switcher .setting-item:last-child{border-bottom:none;margin-bottom:1em;padding-bottom:0}.settings_tab-switcher .setting-item select{min-width:10em}.settings_tab-switcher .setting-item textarea{height:100px;max-width:100%;width:100%}.settings_tab-switcher .setting-item .unavailable,.settings_tab-switcher .setting-item .unavailable svg{color:var(--cRed,red);color:red}
-/*# sourceMappingURL=9801.cfe503d4c949ae0c3813.css.map*/ \ No newline at end of file
diff --git a/priv/static/static/css/9801.cfe503d4c949ae0c3813.css.map b/priv/static/static/css/9801.cfe503d4c949ae0c3813.css.map
deleted file mode 100644
index 7ab561567..000000000
--- a/priv/static/static/css/9801.cfe503d4c949ae0c3813.css.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/css/9801.cfe503d4c949ae0c3813.css","mappings":"AACA,mBACE,qBACA,kBAGF,kBACE,gBACA,eACA,kBCRF,yBACE,qBACA,kBAGF,wBACE,gBACA,eACA,kBCRF,cACE,qBACA,kBAEA,8BACE,iBAIJ,eACE,gBACA,eACA,kBCXA,+BACE,cAEA,YACA,mBAFA,UAEA,CAGF,qCAEE,aACA,sBAFA,gBAGA,WAGF,6BACE,mBAEA,uEAEE,WCpBJ,2BACE,UAGF,kBAEE,iBAGA,eADA,kBAHA,uBAEA,kBAEA,CCRJ,uBACE,YAEA,qCACE,0CACA,qBACA,qBAEA,oFAEE,cACA,mBAEA,0GACE,gBAIJ,sDACE,aAEA,mEACE,SACA,kBAIJ,gDACE,mBAEA,kBADA,gBACA,CAGF,4CACE,eAGF,8CAGE,aADA,eADA,UAEA,CAGF,wGAEE,sBACA,SCnCW","sources":["webpack://pleroma_fe/./src/components/settings_modal/helpers/modified_indicator.vue","webpack://pleroma_fe/./src/components/settings_modal/helpers/profile_setting_indicator.vue","webpack://pleroma_fe/./src/components/settings_modal/helpers/draft_buttons.vue","webpack://pleroma_fe/./src/components/settings_modal/helpers/attachment_setting.vue","webpack://pleroma_fe/./src/components/settings_modal/admin_tabs/frontends_tab.scss","webpack://pleroma_fe/./src/components/settings_modal/settings_modal_admin_content.scss","webpack://pleroma_fe/./src/_variables.scss"],"sourcesContent":["\n.ModifiedIndicator {\n display: inline-block;\n position: relative;\n}\n\n.modified-tooltip {\n margin: 0.5em 1em;\n min-width: 10em;\n text-align: center;\n}\n","\n.ProfileSettingIndicator {\n display: inline-block;\n position: relative;\n}\n\n.profilesetting-tooltip {\n margin: 0.5em 1em;\n min-width: 10em;\n text-align: center;\n}\n","\n.DraftButtons {\n display: inline-block;\n position: relative;\n\n .button-default {\n margin-left: 0.5em;\n }\n}\n\n.draft-tooltip {\n margin: 0.5em 1em;\n min-width: 10em;\n text-align: center;\n}\n","\n.AttachmentSetting {\n .attachment {\n display: block;\n width: 100%;\n height: 15em;\n margin-bottom: 0.5em;\n }\n\n .attachment-input {\n margin-left: 1em;\n display: flex;\n flex-direction: column;\n width: 20em;\n }\n\n .controls {\n margin-bottom: 0.5em;\n\n input,\n button {\n width: 100%;\n }\n }\n}\n",".frontends-tab {\n .cards-list {\n padding: 0;\n }\n\n dd {\n text-overflow: ellipsis;\n word-wrap: nowrap;\n white-space: nowrap;\n overflow-x: hidden;\n max-width: 10em;\n }\n}\n","@import \"src/variables\";\n\n.settings_tab-switcher {\n height: 100%;\n\n .setting-item {\n border-bottom: 2px solid var(--fg, $fallback--fg);\n margin: 1em 1em 1.4em;\n padding-bottom: 1.4em;\n\n > div,\n > label {\n display: block;\n margin-bottom: 0.5em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n .select-multiple {\n display: flex;\n\n .option-list {\n margin: 0;\n padding-left: 0.5em;\n }\n }\n\n &:last-child {\n border-bottom: none;\n padding-bottom: 0;\n margin-bottom: 1em;\n }\n\n select {\n min-width: 10em;\n }\n\n textarea {\n width: 100%;\n max-width: 100%;\n height: 100px;\n }\n\n .unavailable,\n .unavailable svg {\n color: var(--cRed, $fallback--cRed);\n color: $fallback--cRed;\n }\n }\n}\n","$main-color: #f58d2c;\n$main-background: white;\n$darkened-background: whitesmoke;\n\n$fallback--bg: #121a24;\n$fallback--fg: #182230;\n$fallback--faint: rgb(185 185 186 / 50%);\n$fallback--text: #b9b9ba;\n$fallback--link: #d8a070;\n$fallback--icon: #666;\n$fallback--lightBg: rgb(21 30 42);\n$fallback--lightText: #b9b9ba;\n$fallback--border: #222;\n$fallback--cRed: #f00;\n$fallback--cBlue: #0095ff;\n$fallback--cGreen: #0fa00f;\n$fallback--cOrange: orange;\n\n$fallback--alertError: rgb(211 16 20 / 50%);\n$fallback--alertWarning: rgb(111 111 20 / 50%);\n\n$fallback--panelRadius: 10px;\n$fallback--checkboxRadius: 2px;\n$fallback--btnRadius: 4px;\n$fallback--inputRadius: 4px;\n$fallback--tooltipRadius: 5px;\n$fallback--avatarRadius: 4px;\n$fallback--avatarAltRadius: 10px;\n$fallback--attachmentRadius: 10px;\n$fallback--chatMessageRadius: 10px;\n\n$fallback--buttonShadow: 0 0 2px 0 rgb(0 0 0 / 100%),\n 0 1px 0 0 rgb(255 255 255 / 20%) inset,\n 0 -1px 0 0 rgb(0 0 0 / 20%) inset;\n\n$status-margin: 0.75em;\n"],"names":[],"sourceRoot":""} \ No newline at end of file
diff --git a/priv/static/static/css/app.c18a2c80794a1b699a61.css b/priv/static/static/css/app.a7f63ee9107a77599942.css
index 9d523427e..a4f192bc8 100644
--- a/priv/static/static/css/app.c18a2c80794a1b699a61.css
+++ b/priv/static/static/css/app.a7f63ee9107a77599942.css
@@ -1,2 +1,2 @@
-.modal-view{align-items:center;animation-duration:.2s;animation-name:modal-background-fadein;bottom:0;display:flex;justify-content:center;left:0;opacity:0;overflow:auto;pointer-events:none;position:fixed;right:0;top:0;z-index:var(--ZI_modals)}.modal-view>*{pointer-events:auto}.modal-view.modal-background{background-color:rgba(0,0,0,.5);pointer-events:auto}.modal-view.open{opacity:1}@keyframes modal-background-fadein{0%{background-color:transparent}to{background-color:rgba(0,0,0,.5)}}.vue-recycle-scroller{position:relative}.vue-recycle-scroller.direction-vertical:not(.page-mode){overflow-y:auto}.vue-recycle-scroller.direction-horizontal:not(.page-mode){overflow-x:auto}.vue-recycle-scroller.direction-horizontal{display:-webkit-box;display:-ms-flexbox;display:flex}.vue-recycle-scroller__slot{-webkit-box-flex:1;-ms-flex:auto 0 0px;flex:auto 0 0}.vue-recycle-scroller__item-wrapper{-webkit-box-flex:1;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex:1;flex:1;overflow:hidden;position:relative}.vue-recycle-scroller.ready .vue-recycle-scroller__item-view{left:0;position:absolute;top:0;will-change:transform}.vue-recycle-scroller.direction-vertical .vue-recycle-scroller__item-wrapper{width:100%}.vue-recycle-scroller.direction-horizontal .vue-recycle-scroller__item-wrapper{height:100%}.vue-recycle-scroller.ready.direction-vertical .vue-recycle-scroller__item-view{width:100%}.vue-recycle-scroller.ready.direction-horizontal .vue-recycle-scroller__item-view{height:100%}.resize-observer[data-v-b329ee4c]{background-color:transparent;border:none;opacity:0}.resize-observer[data-v-b329ee4c],.resize-observer[data-v-b329ee4c] object{display:block;height:100%;left:0;overflow:hidden;pointer-events:none;position:absolute;top:0;width:100%;z-index:-1}.login-form{display:flex;flex-direction:column;padding:.6em}.login-form .btn{min-height:2em;width:10em}.login-form .register{flex:1 1}.login-form .login-bottom{align-items:center;display:flex;flex-direction:row;justify-content:space-between;margin-top:1em}.login-form .form-group{display:flex;flex-direction:column;line-height:24px;padding:.3em .5em .6em}.login-form .form-bottom{display:flex;height:32px;padding:.5em}.login-form .form-bottom button{width:10em}.login-form .form-bottom p{display:flex;margin:.35em;padding:.35em}.login-form .error{animation-duration:.4s;animation-name:shakeError;animation-timing-function:ease-in-out;text-align:center}.media-upload .hidden-input-file{display:none}label.media-upload{cursor:pointer}.ScopeSelector .scope{cursor:pointer;display:inline-block;min-height:1.3em;min-width:1.3em;text-align:center}.ScopeSelector .scope.selected svg{color:#b9b9ba;color:var(--lightText,#b9b9ba)}.checkbox{display:inline-block;min-height:1.2em;position:relative}.checkbox-indicator{padding-left:1.2em;position:relative}.checkbox-indicator:before{background-color:#182230;background-color:var(--input,#182230);border-radius:2px;border-radius:var(--checkboxRadius,2px);box-shadow:inset 0 0 2px #000;box-shadow:var(--inputShadow);box-sizing:border-box;color:transparent;content:"✓";display:block;font-size:1.1em;height:1.1em;line-height:1.1em;overflow:hidden;position:absolute;right:0;text-align:center;top:0;transition:color .2s;vertical-align:top;width:1.1em}.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]:checked+.checkbox-indicator:before{color:#b9b9ba;color:var(--inputText,#b9b9ba)}.checkbox input[type=checkbox]:indeterminate+.checkbox-indicator:before{color:#b9b9ba;color:var(--inputText,#b9b9ba);content:"–"}.checkbox.indeterminate-fix input[type=checkbox]+.checkbox-indicator:before{content:"–"}.checkbox>span{margin-left:.5em}.popover-trigger-button{display:inline-block}.popover{box-shadow:2px 2px 3px rgba(0,0,0,.5);box-shadow:var(--popupShadow);max-width:calc(100vw - 20px);min-width:0;position:fixed;z-index:var(--ZI_popover_override,var(--ZI_popovers))}.popover-default{--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);background-color:#121a24;background-color:var(--popover,#121a24);border-radius:4px;border-radius:var(--btnRadius,4px);color:#b9b9ba;color:var(--popoverText,#b9b9ba)}.popover-default:after{bottom:0;box-shadow:1px 1px 4px rgba(0,0,0,.6);box-shadow:var(--panelShadow);content:"";left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:3}.dropdown-menu{display:block;font-size:1em;list-style:none;max-width:100vw;padding:.5rem 0;text-align:left;white-space:nowrap;z-index:var(--ZI_popover_override,var(--ZI_popovers))}.dropdown-menu .dropdown-divider{border-top:1px solid #222;border-top:1px solid var(--border,#222);height:0;margin:.5rem 0;overflow:hidden}.dropdown-menu .dropdown-item{--btnText:var(--popoverText,$fallback--text);background-color:transparent;border:none;border-radius:0;box-shadow:none;box-sizing:border-box;clear:both;display:block;font-weight:400;height:100%;line-height:21px;overflow:hidden;padding:.5em .75em;text-align:inherit;white-space:nowrap;width:100%}.dropdown-menu .dropdown-item-icon svg{color:var(--menuPopoverIcon,#666);margin-right:.75rem;width:22px}.dropdown-menu .dropdown-item.-has-submenu .chevron-icon{margin-left:2rem;margin-right:.25rem}.dropdown-menu .dropdown-item:active,.dropdown-menu .dropdown-item:hover{--btnText:var(--selectedMenuPopoverText,$fallback--link);--faint:var(--selectedMenuPopoverFaintText,$fallback--faint);--faintLink:var(--selectedMenuPopoverFaintLink,$fallback--faint);--lightText:var(--selectedMenuPopoverLightText,$fallback--lightText);--icon:var(--selectedMenuPopoverIcon,$fallback--icon);background-color:#151e2a;background-color:var(--selectedMenuPopover,#151e2a);box-shadow:none}.dropdown-menu .dropdown-item:active svg,.dropdown-menu .dropdown-item:hover svg{--icon:var(--selectedMenuPopoverIcon,$fallback--icon);color:var(--selectedMenuPopoverIcon,#666)}.dropdown-menu .dropdown-item .menu-checkbox{background-color:#182230;background-color:var(--input,#182230);border-radius:0;box-shadow:inset 0 0 2px #000;box-shadow:var(--inputShadow);display:inline-block;line-height:22px;margin-right:.75em;max-height:22px;max-width:22px;min-height:22px;min-width:22px;text-align:center;vertical-align:middle}.dropdown-menu .dropdown-item .menu-checkbox.menu-checkbox-checked:after{content:"✓";font-size:1.25em}.dropdown-menu .dropdown-item .menu-checkbox.-radio{border-radius:9999px}.dropdown-menu .dropdown-item .menu-checkbox.-radio.menu-checkbox-checked:after{content:"•";font-size:2em}.dropdown-menu .button-default.dropdown-item,.dropdown-menu .button-default.dropdown-item i[class*=icon-]{color:#b9b9ba;color:var(--btnText,#b9b9ba)}.dropdown-menu .button-default.dropdown-item:active{background-color:#151e2a;background-color:var(--selectedMenuPopover,#151e2a);color:#d8a070;color:var(--selectedMenuPopoverText,#d8a070)}.dropdown-menu .button-default.dropdown-item:disabled{color:#b9b9ba;color:var(--btnDisabledText,#b9b9ba)}.dropdown-menu .button-default.dropdown-item.toggled{color:#b9b9ba;color:var(--btnToggledText,#b9b9ba)}.still-image{align-items:center;display:inline-flex;line-height:0;overflow:hidden;position:relative}.still-image canvas{bottom:0;left:0;position:absolute;right:0;top:0;visibility:var(--_still-image-canvas-visibility,visible)}.still-image canvas,.still-image img{height:100%;-o-object-fit:contain;object-fit:contain;width:100%}.still-image.animated:before{zoom:var(--_still_image-label-scale,1);background:hsla(0,0%,50%,.5);border-radius:5px;border-radius:var(--tooltipRadius,5px);color:#fff;content:"gif";display:block;font-size:.7em;left:.5em;line-height:1;padding:2px 4px;position:absolute;top:.5em;visibility:var(--_still-image-label-visibility,visible);z-index:2}.still-image.animated:hover canvas{display:none}.still-image.animated:hover:before{visibility:var(--_still-image-label-visibility,hidden)}.still-image.animated img{visibility:var(--_still-image-img-visibility,hidden)}.still-image.animated:hover img{visibility:visible}.emoji-picker{--faint:var(--popoverFaintText,$fallback--faint);--faintLink:var(--popoverFaintLink,$fallback--faint);--lightText:var(--popoverLightText,$fallback--lightText);--icon:var(--popoverIcon,$fallback--icon);background-color:#121a24;background-color:var(--popover,#121a24);color:#d8a070;color:var(--popoverText,#d8a070);display:flex;flex-direction:column;max-width:calc(100vw - 20px);width:25em}.emoji-picker-header-image{align-items:center;display:inline-flex;height:32px;justify-content:center;max-height:32px;max-width:32px;width:32px}.emoji-picker-header-image .still-image{height:100%;max-height:100%;max-width:100%;-o-object-fit:contain;object-fit:contain;width:100%}.emoji-picker .keep-open,.emoji-picker .too-many-emoji{line-height:normal;padding:7px}.emoji-picker .too-many-emoji{display:flex;flex-direction:column}.emoji-picker .keep-open-label{display:flex;padding:0 7px}.emoji-picker .heading{display:flex;padding:10px 7px 5px}.emoji-picker .content{display:flex;flex:1 1 auto;flex-direction:column;min-height:0}.emoji-picker .emoji-tabs{display:flex;flex-flow:row nowrap;flex-grow:1;overflow-x:auto}.emoji-picker .additional-tabs{border-left:1px solid #666;border-left-color:var(--icon,#666);display:flex;flex:0 0 auto;padding-left:7px}.emoji-picker .additional-tabs,.emoji-picker .emoji-tabs{align-content:center;display:flex;flex-basis:auto}.emoji-picker .additional-tabs-item,.emoji-picker .emoji-tabs-item{align-items:center;cursor:pointer;display:flex;font-size:1.85em;height:32px;max-height:32px;max-width:32px;padding:0 7px;width:32px}.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 svg,.emoji-picker .emoji-tabs-item.active svg{color:#b9b9ba;color:var(--lightText,#b9b9ba)}.emoji-picker .sticker-picker{flex:1 1 auto}.emoji-picker .emoji-content,.emoji-picker .stickers-content{display:flex;flex:1 1 auto;flex-direction:column;min-height:0}.emoji-picker .emoji-content.hidden,.emoji-picker .stickers-content.hidden{opacity:0;pointer-events:none;position:absolute}.emoji-picker .emoji-search{flex:0 0 auto;padding:5px}.emoji-picker .emoji-search input{width:100%}.emoji-picker .emoji-groups{flex:1 1 1px;height:100%;-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);mask-composite:xor;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-size:100% 20px,100% 20px,auto;mask-size:100% 20px,100% 20px,auto;min-height:200px;overflow:auto;position:relative;transition:-webkit-mask-size .15s;transition:mask-size .15s;transition:mask-size .15s,-webkit-mask-size .15s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.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{align-items:center;display:flex;flex-wrap:wrap;justify-content:left;padding-left:5px}.emoji-picker .emoji-group-title{font-size:.85em;margin:0;width:100%}.emoji-picker .emoji-group-title.disabled{display:none}.emoji-picker .emoji-item{align-items:center;box-sizing:border-box;cursor:pointer;display:flex;height:32px;justify-content:center;line-height:32px;margin:4px;width:32px}.emoji-picker .emoji-item .emoji-picker-emoji.-custom{max-height:100%;max-width:100%;-o-object-fit:contain;object-fit:contain}.emoji-picker .emoji-item .emoji-picker-emoji.-unicode{font-size:24px;overflow:hidden}.emoji-input{display:flex;flex-direction:column;position:relative}.emoji-input .emoji-picker-icon{cursor:pointer;font-size:1.3em;line-height:24px;margin:.2em .25em;position:absolute;right:0;top:0}.emoji-input .emoji-picker-icon:hover i{color:#b9b9ba;color:var(--text,#b9b9ba)}.emoji-input .emoji-picker-panel{margin-top:2px;position:absolute;z-index:20}.emoji-input .emoji-picker-panel.hide{display:none}.emoji-input input,.emoji-input textarea{flex:1 0 auto}.emoji-input.with-picker input{padding-right:30px}.emoji-input .hidden-overlay{bottom:0;color:red;left:0;opacity:0;overflow:hidden;pointer-events:none;position:absolute;right:0;top:0}.emoji-input .hidden-overlay .caret{border:1px solid red;margin-right:calc(-1ch - 1px);width:0}.autocomplete-panel{position:absolute}.autocomplete-item{border-bottom:1px solid rgba(0,0,0,.4);cursor:pointer;display:flex;height:32px;padding:.2em .4em}.autocomplete-item .image{font-size:32px;height:32px;line-height:32px;margin-right:4px;text-align:center;width:32px}.autocomplete-item .image img{height:32px;-o-object-fit:contain;object-fit:contain;width:32px}.autocomplete-item .label{display:flex;flex-direction:column;justify-content:center;margin:0 .1em 0 .2em}.autocomplete-item .label .displayText{line-height:1.5}.autocomplete-item .label .detailText{font-size:9px;line-height:9px}.autocomplete-item.highlighted{--faint:var(--selectedMenuPopoverFaintText,$fallback--faint);--faintLink:var(--selectedMenuPopoverFaintLink,$fallback--faint);--lightText:var(--selectedMenuPopoverLightText,$fallback--lightText);--icon:var(--selectedMenuPopoverIcon,$fallback--icon);background-color:#182230;background-color:var(--selectedMenuPopover,#182230);color:var(--selectedMenuPopoverText,#b9b9ba)}label.Select{padding:0}label.Select select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:none;color:#b9b9ba;color:var(--inputText,--text,#b9b9ba);font-family:sans-serif;font-family:var(--inputFont,sans-serif);font-size:1em;height:2em;line-height:16px;margin:0;padding:0 2em 0 .2em;width:100%;z-index:1}label.Select .select-down-icon{bottom:0;color:#b9b9ba;color:var(--inputText,#b9b9ba);height:100%;line-height:2;pointer-events:none;position:absolute;right:5px;top:0;width:.875em;z-index:0}.poll-form{display:flex;flex-direction:column;padding:0 .5em .5em}.poll-form .add-option{align-self:flex-start;padding-left:.1em;padding-top:.25em}.poll-form .poll-option{align-items:baseline;display:flex;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 .delete-option{margin-left:-1.5em;width:1.5em;z-index:1}.poll-form .poll-type-expiry{display:flex;margin-top:.5em;width:100%}.poll-form .poll-type{flex:1 1 60%;margin-right:.75em}.poll-form .poll-type .poll-type-select{padding-right:.75em}.poll-form .poll-expiry{display:flex}.poll-form .poll-expiry .expiry-amount{text-align:right;width:3em}.Flash{display:inline-block;position:relative}.Flash,.Flash .placeholder,.Flash .player{height:100%;width:100%}.Flash .placeholder{align-items:center;background:var(--bg);color:var(--link);display:flex;justify-content:center}.Flash .hider{top:0}.Flash .label{word-wrap:normal;flex:1 1 0;line-height:1.2;text-align:center;white-space:normal}.Flash .hidden{display:none;visibility:"hidden"}.Attachment{align-self:flex-start;border:1px solid #222;border-color:var(--border,#222);border-radius:10px;border-radius:var(--attachmentRadius,10px);display:inline-flex;flex-direction:column;height:100%;line-height:0;position:relative}.Attachment .attachment-wrapper{flex:1 1 auto;height:100%;overflow:hidden;position:relative}.Attachment .description-container{display:flex;flex:0 1 0;padding-top:.5em;z-index:1}.Attachment .description-container p{flex:1;line-height:1.5;margin:0;overflow:hidden;padding:.5em;text-align:center;text-overflow:ellipsis;white-space:nowrap}.Attachment .description-container.-static{background:var(--popover);bottom:0;box-shadow:var(--popupShadow);left:0;padding-top:0;position:absolute;right:0}.Attachment .description-field{flex:1;min-width:0}.Attachment .audio-container,.Attachment .flash-container,.Attachment .image-container,.Attachment .oembed-container,.Attachment .placeholder-container,.Attachment .video-container{display:flex;height:100%;justify-content:center;width:100%}.Attachment .image-container .image{height:100%;width:100%}.Attachment .flash-container .flash,.Attachment .flash-container video,.Attachment .video-container .flash,.Attachment .video-container video{align-self:center;height:100%;-o-object-fit:contain;object-fit:contain;width:100%}.Attachment .audio-container{align-items:flex-end;display:flex}.Attachment .audio-container audio{height:100%;width:100%}.Attachment .placeholder-container{align-items:center;display:flex;flex-direction:column;justify-content:center;padding-top:.5em}.Attachment .play-icon{color:hsla(0,0%,100%,.75);font-size:64px;left:calc(50% - 32px);position:absolute;text-shadow:0 0 2px rgba(0,0,0,.4);top:calc(50% - 32px)}.Attachment .play-icon:before{margin:0}.Attachment .attachment-buttons{display:flex;margin-right:.5em;margin-top:.5em;position:absolute;right:0;top:0;z-index:1}.Attachment .attachment-buttons .attachment-button{background:hsla(0,0%,90%,.7);border-radius:5px;border-radius:var(--tooltipRadius,5px);font-size:1.25em;height:2em;margin-left:.5em;padding:0;text-align:center;width:2em}.Attachment .attachment-buttons .attachment-button .svg-inline--fa{color:rgba(0,0,0,.6)}.Attachment .attachment-buttons .attachment-button:hover .svg-inline--fa{color:rgba(0,0,0,.9)}.Attachment.-contain-fit canvas,.Attachment.-contain-fit img{-o-object-fit:contain;object-fit:contain}.Attachment.-cover-fit canvas,.Attachment.-cover-fit img{-o-object-fit:cover;object-fit:cover}.Attachment .oembed-container{display:flex;flex:1 0 100%;line-height:1.2em;margin-right:15px;width:100%}.Attachment .oembed-container img{width:100%}.Attachment .oembed-container .image{flex:1}.Attachment .oembed-container .image img{border:0;border-radius:5px;height:100%;-o-object-fit:cover;object-fit:cover}.Attachment .oembed-container .text{flex:2;margin:8px;word-break:break-all}.Attachment .oembed-container .text h1{font-size:1rem;margin:0}.Attachment.-size-small .play-icon{zoom:.5;opacity:.7}.Attachment.-size-small .attachment-buttons{zoom:.7;opacity:.5}.Attachment.-editable{padding:.5em}.Attachment.-editable .attachment-buttons,.Attachment.-editable .description-container{margin:0}.Attachment.-placeholder{color:#d8a070;color:var(--postLink,#d8a070);display:inline-block;height:auto;line-height:1.5;overflow:hidden;white-space:nowrap}.Attachment.-placeholder:not(.-editable){border:none}.Attachment.-placeholder.-editable{align-items:baseline;display:flex;flex-direction:row}.Attachment.-placeholder.-editable .attachment-buttons,.Attachment.-placeholder.-editable .description-container{margin:0;padding:0;position:relative}.Attachment.-placeholder.-editable .description-container{flex:1;padding-left:.5em}.Attachment.-placeholder.-editable .attachment-buttons{align-self:center;order:99}.Attachment.-placeholder a{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis}.Attachment.-placeholder svg{color:inherit}.Attachment.-loading{cursor:progress}.Attachment.-compact .placeholder-container{padding-bottom:.5em}.Gallery .gallery-rows{display:flex;flex-direction:column}.Gallery .gallery-row{flex-grow:1;height:0;position:relative;width:100%}.Gallery .gallery-row .gallery-row-inner{align-content:stretch;bottom:0;display:flex;flex-flow:row wrap;left:0;position:absolute;right:0;top:0}.Gallery .gallery-row .gallery-row-inner .gallery-item{box-sizing:border-box;flex-grow:1;height:100%;margin:0 .5em 0 0;min-width:2em}.Gallery .gallery-row .gallery-row-inner .gallery-item:last-child{margin:0}.Gallery .gallery-row .gallery-row-inner.-grid{grid-gap:.5em;display:grid;grid-template-columns:repeat(auto-fill,minmax(15em,1fr));height:auto;position:relative;width:100%}.Gallery .gallery-row .gallery-row-inner.-grid .gallery-item{height:200px;margin:0}.Gallery .gallery-row.-grid,.Gallery .gallery-row.-minimal{height:auto}.Gallery .gallery-row.-grid .gallery-row-inner,.Gallery .gallery-row.-minimal .gallery-row-inner{position:relative}.Gallery .gallery-row:not(:first-child){margin-top:.5em}.Gallery.-long .gallery-rows{-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);mask-composite:xor;-webkit-mask-composite:xor;mask-composite:exclude;max-height:25em;overflow:hidden}.Gallery .many-attachments-text{line-height:2;text-align:center}.Gallery .many-attachments-buttons{display:flex}.Gallery .many-attachments-button{display:flex;flex:1;justify-content:center;line-height:2}.Gallery .many-attachments-button button{padding:0 2em}.Avatar{--_avatarShadowBox:var(--avatarStatusShadow);--_avatarShadowFilter:var(--avatarStatusShadowFilter);--_avatarShadowInset:var(--avatarStatusShadowInset);--_still-image-label-visibility:hidden;display:inline-block;height:48px;position:relative;width:48px}.Avatar.-compact{border-radius:10px;border-radius:var(--avatarAltRadius,10px);height:32px;width:32px}.Avatar .avatar{border-radius:4px;border-radius:var(--avatarRadius,4px);box-shadow:var(--_avatarShadowBox);height:100%;width:100%}.Avatar .avatar.-better-shadow{box-shadow:var(--_avatarShadowInset);filter:var(--_avatarShadowFilter)}.Avatar .avatar.-animated:before{display:none}.Avatar .avatar.-compact{border-radius:10px;border-radius:var(--avatarAltRadius,10px)}.Avatar .avatar.-placeholder{background-color:#182230;background-color:var(--fg,#182230)}.Avatar img{height:100%;width:100%}.Avatar .bot-indicator{background:hsla(0,0%,50%,.5);border-radius:var(--tooltipRadius);bottom:0;color:#fff;margin:-.2em;padding:.2em;position:absolute;right:0}.MentionLink{color:var(--link);display:inline;position:relative;white-space:normal;word-break:normal}.MentionLink .new,.MentionLink .original{border-radius:2px;display:inline}.MentionLink .mention-avatar{border-radius:var(--avatarAltRadius,10px);height:1.5em;margin-right:.2em;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;width:1.5em}.MentionLink .full{word-wrap:normal;display:inline-block;height:100%;left:0;margin-top:.25em;opacity:0;padding:.5em;pointer-events:none;position:absolute;top:100%;transition:opacity .2s ease;-webkit-user-select:all;-moz-user-select:all;user-select:all;white-space:nowrap;z-index:1}.MentionLink .short.-with-tooltip,.MentionLink .you{-webkit-user-select:none;-moz-user-select:none;user-select:none}.MentionLink .full,.MentionLink .short{white-space:nowrap}.MentionLink .shortName{white-space:normal}.MentionLink .new.-you .shortName{font-weight:600}.MentionLink .new.-has-selection{background-color:var(--alertNeutral,#182230);color:var(--alertNeutralText,#b9b9ba)}.MentionLink .new .at{color:var(--link);display:inline-block;line-height:1;margin:0;opacity:.8;padding:0 .1em;vertical-align:-25%}.MentionLink .new.-striped .shortName{background-image:repeating-linear-gradient(135deg,var(--____highlight-tintColor),var(--____highlight-tintColor) 5px,var(--____highlight-tintColor2) 5px,var(--____highlight-tintColor2) 10px)}.MentionLink .new.-solid .shortName{background-image:linear-gradient(var(--____highlight-tintColor2),var(--____highlight-tintColor2))}.MentionLink .new.-side .shortName{box-shadow:0 -5px 3px -4px inset var(--____highlight-solidColor)}.MentionLink .serverName.-faded{color:var(--faintLink,#d8a070)}.mention-link-popover{max-height:20rem;max-width:70ch;overflow:hidden}.MentionsLine{word-break:break-all}.MentionsLine .mention-link:not(:first-child):before{content:" "}.MentionsLine .showMoreLess{color:var(--link);margin-left:.5em;white-space:normal}.HashtagLink{color:var(--link);display:inline-block;position:relative;white-space:normal}.RichContent blockquote{border-left:.2em solid var(--faint,hsla(240,1%,73%,.5));font-style:italic;margin:.2em 0 .2em .2em;padding-left:1em}.RichContent pre{overflow:auto}.RichContent code,.RichContent kbd,.RichContent pre,.RichContent samp,.RichContent var{font-family:var(--postCodeFont,monospace)}.RichContent p{margin:0 0 1em}.RichContent p:last-child{margin:0}.RichContent h1{font-size:1.1em;line-height:1.2em;margin:1.4em 0}.RichContent h2{font-size:1.1em;margin:1em 0}.RichContent h3{font-size:1em;margin:1.2em 0}.RichContent h4{margin:1.1em 0}.RichContent .emoji,.RichContent .img{display:inline-block}.RichContent .emoji{height:var(--emoji-size,32px);width:var(--emoji-size,32px)}.RichContent .img,.RichContent video{max-height:400px;max-width:100%;-o-object-fit:contain;object-fit:contain;vertical-align:middle}.poll .votes{display:flex;flex-direction:column;margin:0 0 .5em}.poll .poll-option{margin:.75em .5em}.poll .option-result{color:#b9b9ba;color:var(--lightText,#b9b9ba);display:flex;flex-direction:row;height:100%;position:relative}.poll .option-result-label{align-items:center;display:flex;padding:.1em .25em;word-break:break-word;z-index:1}.poll .result-percentage{flex-shrink:0;width:3.5em}.poll .result-fill{background-color:#151e2a;background-color:var(--poll,#151e2a);border-radius:10px;border-radius:var(--panelRadius,10px);color:#b9b9ba;color:var(--pollText,#b9b9ba);height:100%;left:0;position:absolute;top:0;transition:width .5s}.poll .option-vote{align-items:center;display:flex}.poll input{width:3.5em}.poll .footer{align-items:center;display:flex}.poll.loading *{cursor:progress}.poll .poll-vote-button{margin-right:.5em;padding:0 .5em}.poll .poll-checkbox{display:none}.StatusBody{display:flex;flex-direction:column}.StatusBody .emoji{--_still_image-label-scale:0.5}.StatusBody .attachments{margin-top:.5em}.StatusBody .summary,.StatusBody .text{word-wrap:break-word;font-family:var(--postFont,sans-serif);line-height:var(--post-line-height);overflow-wrap:break-word;white-space:pre-wrap;word-break:break-word}.StatusBody .summary{display:block;font-style:italic;padding-bottom:.5em}.StatusBody .text.-single-line{height:1.4em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.StatusBody .summary-wrapper{border-color:var(--border,#222);border-style:solid;border-width:0 0 1px;flex-grow:0;margin-bottom:.5em}.StatusBody .summary-wrapper.-tall{position:relative}.StatusBody .summary-wrapper.-tall .summary{max-height:2em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.StatusBody .text-wrapper{display:flex;flex-flow:column nowrap}.StatusBody .text-wrapper.-tall-status{height:220px;overflow-x:hidden;overflow-y:hidden;position:relative;z-index:1}.StatusBody .text-wrapper.-tall-status .media-body{-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);mask-composite:xor;-webkit-mask-composite:xor;mask-composite:exclude;min-height:0}.StatusBody .cw-status-hider,.StatusBody .status-unhider,.StatusBody .tall-status-hider,.StatusBody .tall-subject-hider{display:inline-block;text-align:center;width:100%;word-break:break-all}.StatusBody .tall-status-hider{height:70px;line-height:110px;margin-top:150px;position:absolute;z-index:2}.StatusBody .tall-subject-hider{padding-bottom:.5em}.StatusBody .cw-status-hider,.StatusBody .status-unhider{word-break:break-all}.StatusBody .cw-status-hider svg,.StatusBody .status-unhider svg{color:inherit}.StatusBody .greentext{color:#0fa00f;color:var(--postGreentext,#0fa00f)}.StatusBody .cyantext{color:var(--postCyantext,#0095ff)}.StatusBody.-compact{--emoji-size:16px;align-items:top;flex-direction:row}.StatusBody.-compact .attachments,.StatusBody.-compact .body{max-height:3.25em}.StatusBody.-compact .body{flex:5 1 auto;mask-composite:xor;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-image:linear-gradient(180deg,#fff 2em,transparent 3em);mask-image:linear-gradient(180deg,#fff 2em,transparent 3em);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-repeat:repeat-x,repeat;mask-repeat:repeat-x,repeat;-webkit-mask-size:auto 3.5em,auto auto;mask-size:auto 3.5em,auto auto;min-width:5em;overflow:hidden;white-space:normal}.StatusBody.-compact .attachments{flex:1 1 0;height:100%;margin-left:.5em;margin-top:0;min-width:5em}.StatusBody.-compact .summary-wrapper{border:none;display:inline-block;line-height:inherit;margin:0}.StatusBody.-compact .summary-wrapper .summary:after{content:": "}.StatusBody.-compact .text-wrapper{display:inline-block}.link-preview-card{border:1px solid #222;border-color:var(--border,#222);border-radius:10px;border-radius:var(--attachmentRadius,10px);color:#b9b9ba;color:var(--text,#b9b9ba);cursor:pointer;display:flex;flex-direction:row;margin-top:.5em;overflow:hidden}.link-preview-card .card-image{flex-shrink:0;max-width:25%;width:120px}.link-preview-card .card-image img{border-radius:10px;border-radius:var(--attachmentRadius,10px);height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.link-preview-card .card-content{display:flex;flex-direction:column;margin:.5em;max-height:100%}.link-preview-card .card-host{font-size:.85em}.link-preview-card .card-description{line-height:1.2em;margin:.5em 0 0;max-height:calc(3.6em - 1px);overflow:hidden;text-overflow:ellipsis;word-break:break-word}.link-preview-card .nsfw-alert{margin:2em 0}.StatusContent{flex:1;min-width:0}.post-status-form{position:relative}.post-status-form .attachments{margin-bottom:.5em}.post-status-form .form-bottom{display:flex;height:2.5em;justify-content:space-between;padding:.5em}.post-status-form .form-bottom button{width:10em}.post-status-form .form-bottom p{display:flex;margin:.35em;padding:.35em}.post-status-form .form-bottom-left{display:flex;flex:1;margin-right:7px;max-width:10em;padding-right:7px}.post-status-form .preview-heading{display:flex;padding-left:.5em}.post-status-form .preview-toggle{cursor:pointer;flex:1;-webkit-user-select:none;-moz-user-select:none;user-select:none}.post-status-form .preview-toggle:hover{text-decoration:underline}.post-status-form .preview-toggle i,.post-status-form .preview-toggle svg{font-size:.8em;margin-left:.2em;transform:rotate(90deg)}.post-status-form .preview-container{margin-bottom:1em}.post-status-form .preview-error{color:hsla(240,1%,73%,.5);color:var(--faint,hsla(240,1%,73%,.5));font-style:italic}.post-status-form .preview-status{border:1px solid #222;border:1px solid var(--border,#222);border-radius:5px;border-radius:var(--tooltipRadius,5px);margin:0;padding:.5em}.post-status-form .reply-or-quote-selector{margin-bottom:.5em}.post-status-form .text-format .only-format{color:hsla(240,1%,73%,.5);color:var(--faint,hsla(240,1%,73%,.5))}.post-status-form .visibility-tray{align-items:baseline;display:flex;justify-content:space-between;padding-top:5px}.post-status-form .visibility-notice.edit-warning>:first-child{margin-top:0}.post-status-form .visibility-notice.edit-warning>:last-child{margin-bottom:0}.post-status-form .media-upload-icon{justify-content:left;order:1}.post-status-form .emoji-icon{justify-content:center;order:2}.post-status-form .poll-icon{justify-content:right;order:3}.post-status-form .emoji-icon,.post-status-form .media-upload-icon,.post-status-form .poll-icon{align-items:center;display:flex;flex:1;font-size:1.85em;line-height:1.1;padding:0 .1em}.post-status-form .emoji-icon.selected i,.post-status-form .emoji-icon.selected label,.post-status-form .emoji-icon.selected svg,.post-status-form .emoji-icon:hover i,.post-status-form .emoji-icon:hover label,.post-status-form .emoji-icon:hover svg,.post-status-form .media-upload-icon.selected i,.post-status-form .media-upload-icon.selected label,.post-status-form .media-upload-icon.selected svg,.post-status-form .media-upload-icon:hover i,.post-status-form .media-upload-icon:hover label,.post-status-form .media-upload-icon:hover svg,.post-status-form .poll-icon.selected i,.post-status-form .poll-icon.selected label,.post-status-form .poll-icon.selected svg,.post-status-form .poll-icon:hover i,.post-status-form .poll-icon:hover label,.post-status-form .poll-icon:hover svg{color:#b9b9ba;color:var(--lightText,#b9b9ba)}.post-status-form .emoji-icon.disabled i,.post-status-form .emoji-icon.disabled svg,.post-status-form .media-upload-icon.disabled i,.post-status-form .media-upload-icon.disabled svg,.post-status-form .poll-icon.disabled i,.post-status-form .poll-icon.disabled svg{color:#666;color:var(--btnDisabledText,#666);cursor:not-allowed}.post-status-form .emoji-icon.disabled i:hover,.post-status-form .emoji-icon.disabled svg:hover,.post-status-form .media-upload-icon.disabled i:hover,.post-status-form .media-upload-icon.disabled svg:hover,.post-status-form .poll-icon.disabled i:hover,.post-status-form .poll-icon.disabled svg:hover{color:#666;color:var(--btnDisabledText,#666)}.post-status-form .error{text-align:center}.post-status-form .media-upload-wrapper{margin-bottom:.5em;margin-right:.2em;width:18em}.post-status-form .media-upload-wrapper img,.post-status-form .media-upload-wrapper video{max-height:10em;-o-object-fit:contain;object-fit:contain}.post-status-form .media-upload-wrapper .video{max-height:10em}.post-status-form .media-upload-wrapper input{flex:1;width:100%}.post-status-form .status-input-wrapper{display:flex;flex-direction:column;position:relative;width:100%}.post-status-form .btn[disabled]{cursor:not-allowed}.post-status-form form{display:flex;flex-direction:column;margin:.6em;position:relative}.post-status-form .form-group{display:flex;flex-direction:column;line-height:1.85;padding:.25em .5em .5em}.post-status-form .form-post-body{box-sizing:content-box;height:calc(var(--post-line-height)*1em);min-height:calc(var(--post-line-height)*1em);overflow:hidden;padding-bottom:calc(var(--_padding) + var(--post-line-height)*1em);resize:none;transition:min-height .2s .1s}.post-status-form .form-post-body.scrollable-form{overflow-y:auto}.post-status-form .main-input{position:relative}.post-status-form .character-counter{bottom:0;margin:0 .5em;padding:0;position:absolute;right:0}.post-status-form .character-counter.error{color:red;color:var(--cRed,red)}@keyframes fade-in{0%{opacity:0}to{opacity:.6}}@keyframes fade-out{0%{opacity:.6}to{opacity:0}}.post-status-form .drop-indicator{align-items:center;background-color:#121a24;background-color:var(--bg,#121a24);border:2px dashed #b9b9ba;border:2px dashed var(--text,#b9b9ba);border-radius:5px;border-radius:var(--tooltipRadius,5px);color:#b9b9ba;color:var(--text,#b9b9ba);display:flex;font-size:5em;height:100%;justify-content:center;opacity:.6;position:absolute;width:100%}.remote-follow{max-width:220px}.remote-follow .remote-button{min-height:2em;width:100%}.dark-overlay:before{background:rgba(27,31,35,.5);bottom:0;content:" ";left:0;right:0;z-index:2000}.dark-overlay:before,.dialog-modal.panel{cursor:default;display:block;position:fixed;top:0}.dialog-modal.panel{background-color:#121a24;background-color:var(--bg,#121a24);left:50%;margin:15vh auto;max-height:80vh;max-width:90vw;transform:translateX(-50%);z-index:2001}.dialog-modal.panel .dialog-modal-heading .title{text-align:center}.dialog-modal.panel .dialog-modal-content{background-color:#121a24;background-color:var(--bg,#121a24);margin:0;padding:1rem;white-space:normal}.dialog-modal.panel .dialog-modal-footer{background-color:#121a24;background-color:var(--bg,#121a24);border-top:1px solid #222;border-top:1px solid var(--border,#222);display:flex;justify-content:flex-end;margin:0;padding:.5em}.dialog-modal.panel .dialog-modal-footer button{margin-left:.5rem;width:auto}.moderation-tools-popover{height:100%}.moderation-tools-popover .trigger{display:flex!important;height:100%}.moderation-tools-button i,.moderation-tools-button svg{font-size:.8em}.AccountActions .ellipsis-button{margin:-.5em 0;padding:.5em 0;text-align:center;width:2.5em}.AccountActions .ellipsis-button:not(:hover) .icon{color:#b9b9ba;color:var(--lightText,#b9b9ba)}.user-note{display:flex;flex-direction:column}.user-note .heading{align-items:center;display:flex;flex-direction:row;justify-content:space-between;margin-bottom:.75em}.user-note .heading .btn{min-width:95px}.user-note .heading .buttons{display:flex;flex-direction:row;justify-content:right}.user-note .heading .buttons .btn{margin-left:.5em}.user-note .note-text{align-self:stretch}.user-note .note-text.-blank{color:var(--faint,hsla(240,1%,73%,.5));font-style:italic}.user-card{position:relative;z-index:1}.user-card:hover{--_still-image-img-visibility:visible;--_still-image-canvas-visibility:hidden;--_still-image-label-visibility:hidden}.user-card .panel-heading{align-items:stretch;background:transparent;box-shadow:none;flex-direction:column;padding:.5em 0;position:relative;text-align:center}.user-card .panel-body{word-wrap:break-word;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;position:relative}.user-card .background-image{background-color:var(--profileBg);background-size:cover;border-bottom-left-radius:calc(var(--__roundnessBottom, --panelRadius) - 1px);border-bottom-right-radius:calc(var(--__roundnessBottom, --panelRadius) - 1px);border-top-left-radius:calc(var(--__roundnessTop, --panelRadius) - 1px);border-top-right-radius:calc(var(--__roundnessTop, --panelRadius) - 1px);bottom:0;left: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);mask-composite:xor;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-size:100% 60%;mask-size:100% 60%;position:absolute;right:0;top:0;z-index:-2}.user-card .background-image.hide-bio{-webkit-mask-size:100% 40px;mask-size:100% 40px}.user-card-bio{display:block;line-height:1.3;margin:0;padding:1em;text-align:center}.user-card-bio a{color:#d8a070;color:var(--postLink,#d8a070)}.user-card-bio img{max-height:400px;max-width:100%;-o-object-fit:contain;object-fit:contain;vertical-align:middle}.user-card.-rounded-t{--__roundnessTop:var(--panelRadius);--__roundnessBottom:0;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{--__roundnessTop:var(--panelRadius);--__roundnessBottom:var(--panelRadius);border-radius:10px;border-radius:var(--panelRadius,10px)}.user-card.-popover{--__roundnessTop:var(--tooltipRadius);--__roundnessBottom:var(--tooltipRadius);border-radius:5px;border-radius:var(--tooltipRadius,5px)}.user-card.-bordered{border:1px solid #222;border-color:var(--border,#222)}.user-info{padding:0 26px}.user-info,.user-info a{color:#b9b9ba;color:var(--lightText,#b9b9ba)}.user-info a:hover{color:var(--icon)}.user-info .container{align-items:flex-start;display:flex;max-height:56px;min-width:0;padding:16px 0 6px}.user-info .container>*{min-width:0}.user-info .container>a{display:flex;vertical-align:middle}.user-info .container .Avatar{--_avatarShadowBox:var(--avatarShadow);--_avatarShadowFilter:var(--avatarShadowFilter);--_avatarShadowInset:var(--avatarShadowInset);height:56px;-o-object-fit:cover;object-fit:cover;width:56px}.user-info-avatar{cursor:pointer;position:relative}.user-info-avatar.-overlay{align-items:center;background-color:rgba(0,0,0,.3);border-radius:4px;border-radius:var(--avatarRadius,4px);bottom:0;display:flex;justify-content:center;left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .2s ease}.user-info-avatar.-overlay svg{color:#fff}.user-info-avatar:hover .user-info-avatar.-overlay{opacity:1}.user-info .edit-profile-button,.user-info .external-link-button{cursor:pointer;margin:-.5em 0;padding:.5em 0;text-align:center;width:2.5em}.user-info .edit-profile-button:not(:hover) .icon,.user-info .external-link-button:not(:hover) .icon{color:#b9b9ba;color:var(--lightText,#b9b9ba)}.user-info .bottom-line{align-items:baseline;font-size:1.1em;font-weight:light}.user-info .bottom-line .lock-icon{margin-left:.5em}.user-info .bottom-line .user-screen-name{flex:0 1 auto;min-width:1px;overflow:hidden;text-overflow:ellipsis}.user-info .bottom-line .dailyAvg{color:#b9b9ba;color:var(--text,#b9b9ba);flex:0 0 auto;font-size:.7em;margin-left:1em;min-width:1px}.user-info .bottom-line .user-role{background-color:#182230;background-color:var(--alertNeutral,#182230);color:#b9b9ba;color:var(--alertNeutralText,#b9b9ba);flex:none}.user-info .user-summary{--emoji-size:1.7em;display:block;flex:1 1 0;line-height:2em;margin-left:.6em;text-align:left;text-overflow:ellipsis;white-space:nowrap;z-index:1}.user-info .user-summary .bottom-line,.user-info .user-summary .top-line{display:flex}.user-info .user-name{flex:1 1 auto;font-size:1.1em;margin-right:1em;overflow:hidden;text-overflow:ellipsis}.user-info .user-meta{align-items:baseline;display:flex;flex-wrap:wrap;line-height:22px;margin-bottom:.15em}.user-info .user-meta .following{flex:1 0 auto;margin:0 0 .25em;text-align:left}.user-info .user-meta .highlighter{align-self:start;display:flex;flex:0 1 auto;flex-wrap:wrap;margin-right:-.5em}.user-info .user-meta .highlighter .userHighlightCl{flex:1 0 auto;padding:2px 10px}.user-info .user-meta .highlighter .userHighlightSel{flex:1 0 auto;padding-bottom:0;padding-top:0}.user-info .user-meta .highlighter .userHighlightText{flex:1 0 auto;width:70px}.user-info .user-meta .highlighter .userHighlightCl,.user-info .user-meta .highlighter .userHighlightSel,.user-info .user-meta .highlighter .userHighlightText{margin-bottom:.25em;margin-right:.5em;vertical-align:top}.user-info .user-interactions{display:flex;flex-flow:row wrap;margin-right:-.75em;position:relative}.user-info .user-interactions>*{margin:0 .75em .6em 0;min-width:95px;white-space:nowrap}.user-info .user-interactions button{margin:0}.user-info .user-note{margin:0 .75em .6em 0}.sidebar .edit-profile-button{display:none}.user-counts{color:#b9b9ba;color:var(--lightText,#b9b9ba);display:flex;flex-wrap:wrap;justify-content:space-between;line-height:16px;padding:.5em 1.5em 0;text-align:center}.user-count{flex:1 0 auto;margin:0 .5em;padding:.5em 0}.user-count h5{font-size:1em;font-weight:bolder;margin:0 0 .25em}.user-count a{text-decoration:none}.mute-expiry{display:flex;flex-direction:row}.user-panel .signed-in{overflow:visible;z-index:10}.NavigationEntry{align-items:baseline;box-sizing:border-box;color:#d8a070;color:var(--link,#d8a070);display:flex;height:3.5em;line-height:3.5em;padding:0 1em;width:100%}.NavigationEntry .timelines-chevron{margin-right:0}.NavigationEntry .main-link{flex:1}.NavigationEntry .menu-icon{margin-right:.8em}.NavigationEntry .extra-button{text-align:center;width:3em}.NavigationEntry .extra-button:last-child{margin-right:-.8em}.NavigationEntry:hover{--faint:var(--selectedMenuFaintText,$fallback--faint);--faintLink:var(--selectedMenuFaintLink,$fallback--faint);--lightText:var(--selectedMenuLightText,$fallback--lightText);background-color:#151e2a;background-color:var(--selectedMenu,#151e2a);color:#d8a070;color:var(--selectedMenuText,#d8a070)}.NavigationEntry:hover .menu-icon{--icon:var(--text,$fallback--icon)}.NavigationEntry.-active{--faint:var(--selectedMenuFaintText,$fallback--faint);--faintLink:var(--selectedMenuFaintLink,$fallback--faint);--lightText:var(--selectedMenuLightText,$fallback--lightText);background-color:#151e2a;background-color:var(--selectedMenu,#151e2a);color:#b9b9ba;color:var(--selectedMenuText,#b9b9ba);font-weight:bolder}.NavigationEntry.-active .menu-icon{--icon:var(--text,$fallback--icon)}.NavigationEntry.-active:hover{text-decoration:underline}.NavigationPins{display:flex;flex-wrap:wrap;height:100%;overflow:hidden}.NavigationPins .alert-dot{background-color:red;background-color:var(--badgeNotification,red);border-radius:100%;height:.5em;position:absolute;right:calc(50% - .75em);top:calc(50% - .5em);width:.5em}.NavigationPins .pinned-item{box-sizing:border-box;flex:1 0 3em;height:100%;min-width:2em;overflow:visible;position:relative;text-align:center}.NavigationPins .pinned-item .iconLetter,.NavigationPins .pinned-item .svg-inline--fa{margin:0}.NavigationPins .pinned-item.router-link-active{border-bottom:4px solid;color:#b9b9ba;color:var(--panelText,#b9b9ba)}.NavigationPins .pinned-item.router-link-active .iconLetter,.NavigationPins .pinned-item.router-link-active .svg-inline--fa{color:inherit}.NavPanel .panel{box-shadow:var(--panelShadow);overflow:hidden}.NavPanel ul{list-style:none;margin:0;padding:0}.NavPanel li{border-bottom:1px solid;border-color:#222;border-color:var(--border,#222);position:relative}.NavPanel>li:first-child .menu-item{border-top-left-radius:10px;border-top-left-radius:var(--panelRadius,10px);border-top-right-radius:10px;border-top-right-radius:var(--panelRadius,10px)}.NavPanel>li:last-child .menu-item{border-bottom-left-radius:10px;border-bottom-left-radius:var(--panelRadius,10px);border-bottom-right-radius:10px;border-bottom-right-radius:var(--panelRadius,10px)}.NavPanel li:last-child{border:none}.NavPanel .navigation-chevron{margin-right:.8em}.NavPanel .navigation-chevron,.NavPanel .timelines-chevron{font-size:1.1em;margin-left:.8em}.NavPanel .timelines-background{background-color:#151e2a;background-color:var(--selectedMenu,#151e2a);border-bottom:1px solid;border-color:#222;border-color:var(--border,#222);padding:0 0 0 .6em}.NavPanel .timelines{background-color:#121a24;background-color:var(--bg,#121a24)}.NavPanel .nav-panel-heading{--panel-heading-height-padding:0px}.features-panel li{line-height:24px}.who-to-follow *{vertical-align:middle}.who-to-follow img{height:32px;width:32px}.who-to-follow{margin:0;padding:0 1em}.who-to-follow-items{margin:1em 0;overflow:hidden;padding:0;text-overflow:ellipsis;white-space:nowrap}.who-to-follow-more{margin:1em 0;padding:0;text-align:center}.floating-shout{bottom:.5em;max-width:25em;position:fixed;z-index:var(--ZI_popovers)}.floating-shout.-left{left:.5em}.floating-shout:not(.-left){right:.5em}.shout-panel .shout-heading{cursor:pointer}.shout-panel .shout-heading .icon{color:#b9b9ba;color:var(--panelText,#b9b9ba);margin-right:.5em}.shout-panel .shout-heading .title{align-items:center;display:flex;justify-content:space-between}.shout-panel .shout-window{max-height:20em;overflow-x:hidden;overflow-y:auto}.shout-panel .shout-window-container{height:100%}.shout-panel .shout-message{display:flex;padding:.2em .5em}.shout-panel .shout-avatar img{border-radius:4px;border-radius:var(--avatarRadius,4px);height:24px;margin-right:.5em;margin-top:.25em;width:24px}.shout-panel .shout-input{display:flex}.shout-panel .shout-input textarea{flex:1;margin:.6em;min-height:3.5em;resize:none}.shout-panel .shout-panel .title{display:flex;justify-content:space-between}@keyframes media-fadein{0%{opacity:0}to{opacity:1}}.media-modal-view .modal-image-container{max-height:100%;max-width:100%;overflow:hidden}.media-modal-view .modal-image-container,.media-modal-view .modal-image-container-inner{align-items:center;display:flex;flex-direction:column;flex-grow:1;height:100%;justify-content:center;width:100%}.media-modal-view .counter,.media-modal-view .description{color:#fff;margin-top:1em;padding:.2em 2em;text-shadow:0 0 10px #000,0 0 10px #000}.media-modal-view .description{flex:0 0 auto;max-height:9.5em;max-width:500px;min-height:1em;overflow-y:auto;word-break:break-all}.media-modal-view .modal-image{animation:media-fadein .1s cubic-bezier(.7,0,1,.6);image-orientation:from-image;max-height:100%;max-width:100%}.media-modal-view .modal-image.loading{opacity:.5}.media-modal-view .loading-spinner{align-items:center;display:flex;height:100%;justify-content:center;pointer-events:none;position:absolute;width:100%}.media-modal-view .loading-spinner svg{color:#fff}.media-modal-view .modal-view-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;box-shadow:none;cursor:pointer;height:3em;opacity:0;overflow:visible;padding:0;transition:opacity 333ms cubic-bezier(.4,0,.22,1);width:3em}.media-modal-view .modal-view-button .button-icon{background-color:rgba(0,0,0,.3);color:#fff;font-size:1rem;height:3em;line-height:3em;position:absolute;text-align:center;width:3em}.media-modal-view .modal-view-button-arrow{display:block;height:3em;margin-top:1.5em;position:absolute;top:50%;width:3em}.media-modal-view .modal-view-button-arrow .arrow-icon{background-color:rgba(0,0,0,.3);color:#fff;line-height:3em;position:absolute;text-align:center;top:0}.media-modal-view .modal-view-button-arrow--prev{left:0}.media-modal-view .modal-view-button-arrow--prev .arrow-icon{left:.5em}.media-modal-view .modal-view-button-arrow--next{right:0}.media-modal-view .modal-view-button-arrow--next .arrow-icon{right:.5em}.media-modal-view .modal-view-button-hide{position:absolute;right:0;top:0}.media-modal-view .modal-view-button-hide .button-icon{right:.5em;top:.5em}.modal-view.media-modal-view{flex-direction:column;overflow:hidden;z-index:var(--ZI_media_modal)}.modal-view.media-modal-view .modal-view-button-arrow,.modal-view.media-modal-view .modal-view-button-hide{opacity:.75}.modal-view.media-modal-view .modal-view-button-arrow:focus,.modal-view.media-modal-view .modal-view-button-arrow:hover,.modal-view.media-modal-view .modal-view-button-hide:focus,.modal-view.media-modal-view .modal-view-button-hide:hover{box-shadow:none;outline:none}.modal-view.media-modal-view .modal-view-button-arrow:hover,.modal-view.media-modal-view .modal-view-button-hide:hover{opacity:1}.side-drawer-container{align-items:stretch;display:flex;height:100%;left:0;position:fixed;top:0;transition-duration:0s;transition-property:transform;width:100%;z-index:var(--ZI_navbar)}.side-drawer-container-open{transform:translate(0)}.side-drawer-container-closed{transform:translate(-100%);transition-delay:.35s}.side-drawer-darken{background-color:rgba(0,0,0,.5);height:100vh;left:0;position:fixed;top:0;transition:.35s;transition-property:background-color;width:100vw;z-index:-1}.side-drawer-darken-closed{background-color:transparent}.side-drawer-click-outside{flex:1 1 100%}.side-drawer{--faint:var(--popoverFaintText,$fallback--faint);--faintLink:var(--popoverFaintLink,$fallback--faint);--lightText:var(--popoverLightText,$fallback--lightText);--icon:var(--popoverIcon,$fallback--icon);background-color:#121a24;background-color:var(--popover,#121a24);box-shadow:1px 1px 4px rgba(0,0,0,.6);box-shadow:var(--panelShadow);color:#d8a070;color:var(--popoverText,#d8a070);flex:0 0 80%;margin:0 0 0 -100px;max-width:20em;overflow-x:hidden;padding:0 0 1em 100px;transition:.35s;transition-property:transform;transition-timing-function:cubic-bezier(0,1,.5,1);width:80%}.side-drawer .badge{margin-left:10px}.side-drawer-logo-wrapper{align-items:center;display:flex;padding:.85em}.side-drawer-logo-wrapper img{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{flex:0 0 0}.side-drawer-closed{transform:translate(-100%)}.side-drawer-heading{align-items:stretch;background:transparent;display:flex;flex-direction:column;margin:0;padding:0}.side-drawer ul{border-bottom:1px solid;border-color:#222;border-color:var(--border,#222);list-style:none;margin:0;padding:0}.side-drawer ul:last-child{border:0}.side-drawer li{padding:0}.side-drawer li a,.side-drawer li button{box-sizing:border-box;display:block;height:3em;line-height:3em;padding:0 .7em}.side-drawer li a:hover,.side-drawer li button:hover{--faint:var(--selectedMenuPopoverFaintText,$fallback--faint);--faintLink:var(--selectedMenuPopoverFaintLink,$fallback--faint);--lightText:var(--selectedMenuPopoverLightText,$fallback--lightText);--icon:var(--selectedMenuPopoverIcon,$fallback--icon);background-color:#151e2a;background-color:var(--selectedMenuPopover,#151e2a);color:#b9b9ba;color:var(--selectedMenuPopoverText,#b9b9ba)}.MobilePostButton.button-default{align-items:center;background-color:#182230;background-color:var(--btn,#182230);border-radius:100%;bottom:1.5em;box-shadow:0 2px 2px rgba(0,0,0,.3),0 4px 6px rgba(0,0,0,.3);display:flex;height:5em;justify-content:center;position:fixed;right:1.5em;transition:transform .35s;transition-timing-function:cubic-bezier(0,1,.5,1);width:5em;z-index:10}.MobilePostButton.hidden{transform:translateY(150%)}.MobilePostButton svg{color:#b9b9ba;color:var(--text,#b9b9ba);font-size:1.5em}@media (min-width:801px){.new-status-button:not(.always-show){display:none}}.ReplyButton{display:flex}.ReplyButton>:first-child{margin:-10px -8px -10px -10px;padding:10px}.ReplyButton .action-counter{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ReplyButton .interactive.-active .svg-inline--fa,.ReplyButton .interactive:hover .svg-inline--fa{color:#0095ff;color:var(--cBlue,#0095ff)}.ReplyButton .interactive .focus-marker{visibility:hidden}.ReplyButton .interactive:focus:not(:focus-visible,:hover) .focus-marker{visibility:hidden}.ReplyButton .interactive:focus .focus-marker,.ReplyButton .interactive:hover .focus-marker{visibility:visible}.ReplyButton .interactive:focus-visible .focus-marker{visibility:visible}.FavoriteButton{display:flex}.FavoriteButton>:first-child{margin:-10px -8px -10px -10px;padding:10px}.FavoriteButton .action-counter{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.FavoriteButton .interactive .svg-inline--fa{animation-duration:.6s}.FavoriteButton .interactive.-favorited .svg-inline--fa,.FavoriteButton .interactive:hover .svg-inline--fa{color:orange;color:var(--cOrange,orange)}.FavoriteButton .interactive .focus-marker{visibility:hidden}.FavoriteButton .interactive .active-marker{visibility:visible}.FavoriteButton .interactive:focus:not(:focus-visible,:hover) .focus-marker{visibility:hidden}.FavoriteButton .interactive:focus:not(:focus-visible,:hover) .active-marker{visibility:visible}.FavoriteButton .interactive:focus .focus-marker,.FavoriteButton .interactive:hover .focus-marker{visibility:visible}.FavoriteButton .interactive:focus .active-marker,.FavoriteButton .interactive:hover .active-marker{visibility:hidden}.FavoriteButton .interactive:focus-visible .focus-marker{visibility:visible}.FavoriteButton .interactive:focus-visible .active-marker{visibility:hidden}.ReactButton .reaction-picker-filter{display:flex;padding:.5em}.ReactButton .reaction-picker-filter input{flex:1}.ReactButton .reaction-picker-divider{background-color:var(--border,#222);height:1px;margin:.5em;width:100%}.ReactButton .reaction-picker{align-content:flex-start;display:flex;flex-wrap:wrap;font-size:1.5em;height:9em;-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);mask-composite:xor;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-size:100% 20px,100% 20px,auto;mask-size:100% 20px,100% 20px,auto;overflow-y:scroll;padding:.5em;text-align:center;transition:-webkit-mask-size .15s;transition:mask-size .15s;transition:mask-size .15s,-webkit-mask-size .15s;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:10em}.ReactButton .reaction-picker .emoji-button{align-content:center;cursor:pointer;flex-basis:20%;line-height:1.5}.ReactButton .reaction-picker .emoji-button:hover{transform:scale(1.25)}.ReactButton .popover-trigger{margin:-10px;padding:10px}.ReactButton .popover-trigger:hover .svg-inline--fa{color:#b9b9ba;color:var(--text,#b9b9ba)}.ReactButton .popover-trigger .focus-marker{visibility:hidden}.ReactButton .popover-trigger:focus:not(:focus-visible,:hover) .focus-marker{visibility:hidden}.ReactButton .popover-trigger:focus .focus-marker,.ReactButton .popover-trigger:hover .focus-marker{visibility:visible}.ReactButton .popover-trigger:focus-visible .focus-marker{visibility:visible}.RetweetButton{display:flex}.RetweetButton>:first-child{margin:-10px -8px -10px -10px;padding:10px}.RetweetButton .action-counter{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.RetweetButton .interactive .svg-inline--fa{animation-duration:.6s}.RetweetButton .interactive.-repeated .svg-inline--fa,.RetweetButton .interactive:hover .svg-inline--fa{color:#0fa00f;color:var(--cGreen,#0fa00f)}.RetweetButton .interactive .focus-marker{visibility:hidden}.RetweetButton .interactive .active-marker{visibility:visible}.RetweetButton .interactive:focus:not(:focus-visible,:hover) .focus-marker{visibility:hidden}.RetweetButton .interactive:focus:not(:focus-visible,:hover) .active-marker{visibility:visible}.RetweetButton .interactive:focus .focus-marker,.RetweetButton .interactive:hover .focus-marker{visibility:visible}.RetweetButton .interactive:focus .active-marker,.RetweetButton .interactive:hover .active-marker{visibility:hidden}.RetweetButton .interactive:focus-visible .focus-marker{visibility:visible}.RetweetButton .interactive:focus-visible .active-marker{visibility:hidden}.ExtraButtons .popover-trigger{margin:-10px;padding:10px;position:static}.ExtraButtons .popover-trigger:hover .svg-inline--fa{color:#b9b9ba;color:var(--text,#b9b9ba)}.ExtraButtons .popover-trigger-button{width:auto}.ExtraButtons .popover-trigger-button .focus-marker{visibility:hidden}.ExtraButtons .popover-trigger-button:focus:not(:focus-visible,:hover) .focus-marker{visibility:hidden}.ExtraButtons .popover-trigger-button:focus .focus-marker,.ExtraButtons .popover-trigger-button:hover .focus-marker{visibility:visible}.ExtraButtons .popover-trigger-button:focus-visible .focus-marker{visibility:visible}.avatars{display:flex;flex-wrap:wrap;height:24px;margin:0;padding:0}.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}.status-popover.popover{border-color:#222;border-color:var(--border,#222);border-radius:5px;border-radius:var(--tooltipRadius,5px);border-style:solid;border-width:1px;font-size:1rem;max-width:95%;min-width:15em}.status-popover.popover .Status.Status{border:none}.status-popover.popover .status-preview-no-content{padding:1em;text-align:center}.status-popover.popover .status-preview-no-content i{font-size:2em}.user-list-popover{--emoji-size:16px;padding:.5em}.user-list-popover .user-list-row{display:flex;flex-direction:row;padding:.25em}.user-list-popover .user-list-row .user-list-names{display:flex;flex-direction:column;margin-left:.5em;min-width:5em}.user-list-popover .user-list-row .user-list-names img{height:1em;width:1em}.user-list-popover .user-list-row .user-list-screen-name{font-size:.65em}.EmojiReactions{--emoji-size:calc(1.25em*var(--emojiReactionsScale, 1));display:flex;flex-wrap:wrap;margin-top:.25em}.EmojiReactions .emoji-reaction-container{align-items:stretch;display:flex;margin-right:.5em;margin-top:.5em}.EmojiReactions .emoji-reaction-container .emoji-reaction-popover{padding:0}.EmojiReactions .emoji-reaction-container .emoji-reaction-popover .emoji-reaction-count-button{align-items:center;background-color:var(--btn);border-bottom-left-radius:0;border-top-left-radius:0;box-sizing:border-box;color:#b9b9ba;color:var(--btnText,#b9b9ba);display:inline-flex;height:100%;justify-content:center;margin:0;min-width:2em}.EmojiReactions .emoji-reaction-container .emoji-reaction-popover .emoji-reaction-count-button.-picked-reaction{border:1px solid var(--accent,#d8a070);margin-right:-1px}.EmojiReactions .emoji-reaction{align-items:center;border-bottom-right-radius:0;border-top-right-radius:0;box-sizing:border-box;display:flex;justify-content:center;margin:0;padding-left:.5em}.EmojiReactions .emoji-reaction .reaction-emoji{align-items:center;display:flex;height:var(--emoji-size);justify-content:center;line-height:var(--emoji-size);margin-right:.25em;width:var(--emoji-size)}.EmojiReactions .emoji-reaction .reaction-emoji-content{font-size:calc(var(--emoji-size)*.8);height:auto;line-height:inherit;margin:0;max-height:100%;max-width:100%;overflow:hidden;width:auto}.EmojiReactions .emoji-reaction:focus{outline:none}.EmojiReactions .emoji-reaction .svg-inline--fa{color:#b9b9ba;color:var(--btnText,#b9b9ba)}.EmojiReactions .emoji-reaction.-picked-reaction{border:1px solid var(--accent,#d8a070);margin-left:-1px;margin-right:-1px}.EmojiReactions .emoji-reaction.-picked-reaction .svg-inline--fa{color:#d8a070;color:var(--accent,#d8a070)}.EmojiReactions .emoji-reaction .focus-marker{visibility:hidden}.EmojiReactions .emoji-reaction .active-marker{visibility:visible}.EmojiReactions .emoji-reaction:focus:not(:focus-visible,:hover) .focus-marker{visibility:hidden}.EmojiReactions .emoji-reaction:focus:not(:focus-visible,:hover) .active-marker{visibility:visible}.EmojiReactions .emoji-reaction:focus .svg-inline--fa,.EmojiReactions .emoji-reaction:hover .svg-inline--fa{color:#d8a070;color:var(--accent,#d8a070)}.EmojiReactions .emoji-reaction:focus .focus-marker,.EmojiReactions .emoji-reaction:hover .focus-marker{visibility:visible}.EmojiReactions .emoji-reaction:focus .active-marker,.EmojiReactions .emoji-reaction:hover .active-marker{visibility:hidden}.EmojiReactions .emoji-reaction:focus-visible .svg-inline--fa{color:#d8a070;color:var(--accent,#d8a070)}.EmojiReactions .emoji-reaction:focus-visible .focus-marker{visibility:visible}.EmojiReactions .emoji-reaction:focus-visible .active-marker{visibility:hidden}.EmojiReactions .emoji-reaction-expand{align-items:center;display:flex;justify-content:center;margin-right:.5em;margin-top:.5em;padding:0 .5em}.EmojiReactions .emoji-reaction-expand:hover{text-decoration:underline}.Status{word-wrap:break-word;min-width:0;white-space:normal;word-break:break-word}.Status:hover{--_still-image-img-visibility:visible;--_still-image-canvas-visibility:hidden;--_still-image-label-visibility:hidden}.Status.-focused{--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);background-color:#151e2a;background-color:var(--selectedPost,#151e2a);color:#b9b9ba;color:var(--selectedPostText,#b9b9ba)}.Status .gravestone{color:hsla(240,1%,73%,.5);color:var(--faint,hsla(240,1%,73%,.5));display:flex;padding:var(--status-margin,.75em)}.Status .gravestone .deleted-text{align-items:center;margin:.5em 0}.Status .status-container{display:flex;padding:var(--status-margin,.75em)}.Status .status-container>*{min-width:0}.Status .status-container.-repeat{padding-top:0}.Status .pin{align-items:center;display:flex;justify-content:flex-end;padding:var(--status-margin,.75em) var(--status-margin,.75em) 0}._misclick-prevention .Status{pointer-events:none}._misclick-prevention .Status .attachments{cursor:auto;pointer-events:auto}.Status .left-side{margin-right:var(--status-margin,.75em)}.Status .right-side{flex:1;min-width:0}.Status .usercard{margin-bottom:var(--status-margin,.75em)}.Status .status-username{--_still_image-label-scale:0.25;--emoji-size:14px;flex-shrink:1;font-weight:700;margin-right:.4em;max-width:85%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Status .status-favicon{height:18px;margin-right:.4em;width:18px}.Status .status-heading{margin-bottom:.5em}.Status .heading-name-row{display:flex;justify-content:space-between;line-height:1.3}.Status .heading-name-row a{display:inline-block;word-break:break-all}.Status .account-name{flex:1 1 0;margin-right:.4em;min-width:1.6em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Status .heading-left{display:flex;min-width:0}.Status .heading-right{display:flex;flex-shrink:0}.Status .heading-right .button-unstyled{margin:-5px;padding:5px}.Status .heading-right .button-unstyled:hover svg{color:#b9b9ba;color:var(--lightText,#b9b9ba)}.Status .heading-right .svg-inline--fa{margin-left:.25em}.Status .glued-label{display:inline-flex;white-space:nowrap}.Status .timeago{margin-right:.2em}.Status .heading-edited-row,.Status .heading-reply-row{align-content:baseline;align-items:stretch;font-size:.85em;line-height:130%;margin-top:.2em;max-width:100%;position:relative}.Status .mentions,.Status .reply-to-no-popover,.Status .reply-to-popover{flex-shrink:0;margin-right:.4em;min-width:0}.Status .reply-glued-label{margin-right:.5em}.Status .reply-to-popover .reply-to:hover:before{border-bottom:1px solid var(--faint);bottom:0;content:"";display:block;pointer-events:none;position:absolute;width:100%}.Status .reply-to-popover .faint-link:hover{text-decoration:none}.Status .reply-to-popover.-strikethrough .reply-to:after{border-bottom:1px solid var(--faint);content:"";display:block;pointer-events:none;position:absolute;top:50%;width:100%}.Status .mentions,.Status .reply-to{position:relative;white-space:nowrap}.Status .mentions-text,.Status .reply-to-text{color:var(--faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Status .mentions-line{display:inline}.Status .replies{display:flex;flex-wrap:wrap;font-size:.85em;line-height:1.3;margin-top:.25em}.Status .replies>*{margin-right:.4em}.Status .reply-link{height:17px}.Status .repeat-info{padding:.4em var(--status-margin,.75em)}.Status .repeat-info .repeat-icon{color:#0fa00f;color:var(--cGreen,#0fa00f)}.Status .repeater-avatar{border-radius:var(--avatarAltRadius,10px);height:20px;margin-left:28px;width:20px}.Status .repeater-name{margin-right:0;text-overflow:ellipsis}.Status .repeater-name .emoji{height:14px;-o-object-fit:contain;object-fit:contain;vertical-align:middle;width:14px}.Status .status-fadein{animation-duration:.4s;animation-name:fadein}@keyframes fadein{0%{opacity:0}to{opacity:1}}.Status .status-actions{display:flex;margin-top:var(--status-margin,.75em);position:relative;width:100%}.Status .status-actions>*{flex:1;max-width:4em}.Status .muted{display:flex;flex-wrap:nowrap;height:1.2em;line-height:1.2em;overflow:hidden;padding:.25em .6em;text-overflow:ellipsis}.Status .muted .mute-thread,.Status .muted .mute-words,.Status .muted .status-username{word-wrap:normal;white-space:nowrap;word-break:normal}.Status .muted .mute-words,.Status .muted .status-username{overflow:hidden;text-overflow:ellipsis}.Status .muted .status-username{flex:0 1 auto;font-size:smaller;font-weight:400;margin-right:.2em}.Status .muted .mute-thread{flex:0 0 auto}.Status .muted .mute-words{flex:1 0 5em;margin-left:.2em}.Status .muted .mute-words:before{content:" "}.Status .muted .unmute{display:block;flex:0 0 auto;margin-left:auto}.Status .reply-form{padding-bottom:0;padding-top:0}.Status .reply-body{flex:1}.Status .favs-repeated-users{margin-top:var(--status-margin,.75em)}.Status .stats{display:flex;line-height:1em;width:100%}.Status .avatar-row{align-items:center;display:flex;flex:1;overflow:hidden;position:relative}.Status .avatar-row:before{background-color:var(--faint,hsla(240,1%,73%,.5));content:"";height:100%;left:0;position:absolute;width:1px}.Status .stat-count{margin-right:var(--status-margin,.75em);-webkit-user-select:none;-moz-user-select:none;user-select:none}.Status .stat-count .stat-title{color:var(--faint,hsla(240,1%,73%,.5));font-size:.85em;position:relative;text-transform:uppercase}.Status .stat-count .stat-number{font-size:1.1em;font-weight:bolder;line-height:1em}.Status .stat-count:hover .stat-title{text-decoration:underline}@media (max-width:800px){.Status .repeater-avatar{margin-left:20px}.Status .post-avatar{height:40px;width:40px}.Status .post-avatar.-compact{height:32px;width:32px}}.Status .quoted-status{border:1px solid var(--border,#222);border-radius:var(--attachmentRadius,10px);margin-top:.5em}.Status .quoted-status.-unavailable-prompt{padding:.5em}.Status .display-quoted-status-button{margin:.5em}.Status .display-quoted-status-button-icon{color:inherit}.Report .report-content,.Report .report-state{margin:.5em 0 1em}.Report .reported-status{border:1px solid hsla(240,1%,73%,.5);border-color:var(--faint,hsla(240,1%,73%,.5));border-radius:4px;border-radius:var(--inputRadius,4px);color:#b9b9ba;color:var(--text,#b9b9ba);display:block;margin:.5em 0;padding:.5em}.Report .reported-status .status-content{pointer-events:none}.Report .reported-status .reported-status-heading{display:flex;justify-content:space-between;margin-bottom:.2em;width:100%}.Report .reported-status .reported-status-name{font-weight:700}.Report .note{margin-bottom:.5em;width:100%}.Notification{word-wrap:break-word;--emoji-size:14px;border-bottom:1px solid;border-color:#222;border-color:var(--border,#222);word-break:break-word}.Notification:hover{--_still-image-img-visibility:visible;--_still-image-canvas-visibility:hidden;--_still-image-label-visibility:hidden}.Notification.-muted{display:flex;flex-wrap:nowrap;height:1.2em;line-height:1.2em;overflow:hidden;padding:.25em .6em;text-overflow:ellipsis}.Notification.-muted .mute-thread,.Notification.-muted .mute-words,.Notification.-muted .status-username{word-wrap:normal;white-space:nowrap;word-break:normal}.Notification.-muted .mute-words,.Notification.-muted .status-username{overflow:hidden;text-overflow:ellipsis}.Notification.-muted .status-username{flex:0 1 auto;font-size:smaller;font-weight:400;margin-right:.2em}.Notification.-muted .mute-thread{flex:0 0 auto}.Notification.-muted .mute-words{flex:1 0 5em;margin-left:.2em}.Notification.-muted .mute-words:before{content:" "}.Notification.-muted .unmute{display:block;flex:0 0 auto;margin-left:auto}.Notification .type-icon{margin:0 .1em}.Notification.-type--repeat .type-icon{color:#0fa00f;color:var(--cGreen,#0fa00f)}.Notification.-type--follow .type-icon,.Notification.-type--follow-request .type-icon{color:#0095ff;color:var(--cBlue,#0095ff)}.Notification.-type--like .type-icon{color:orange;color:var(--cOrange,orange)}.Notification.-type--move .type-icon{color:#0095ff;color:var(--cBlue,#0095ff)}.Notifications:not(.minimal){padding-bottom:15em}.Notifications .loadmore-error{color:#b9b9ba;color:var(--text,#b9b9ba)}.Notifications .notification{position:relative}.Notifications .notification .notification-overlay{bottom:0;left:0;pointer-events:none;position:absolute;right:0;top:0}.Notifications .notification.unseen .notification-overlay{background-image:linear-gradient(135deg,var(--badgeNotification,red) 4px,transparent 10px)}.notification{box-sizing:border-box}.notification:hover .animated.Avatar canvas{display:none}.notification:hover .animated.Avatar img{visibility:visible}.notification:last-child .Notification{border-bottom:none}.notification .non-mention{display:flex;flex:1;flex-wrap:nowrap;min-width:0;padding:.6em}.notification .non-mention .avatar-container{height:32px;width:32px}.notification .non-mention .faint{--link:var(--faintLink);--text:var(--faint)}.notification .follow-request-accept:hover{color:#b9b9ba;color:var(--text,#b9b9ba)}.notification .follow-request-reject:hover{color:red;color:var(--cRed,red)}.notification .follow-text,.notification .move-text{display:flex;justify-content:space-between;overflow-wrap:break-word;padding:.5em 0}.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{flex:1}.notification time{white-space:nowrap}.notification .notification-right{flex:1;min-width:0;padding-left:.8em}.notification .notification-right .timeago{min-width:3em;text-align:right}.notification .notification-right .timeago-link{margin-right:.2em}.notification .notification-right .expand-icon .svg-inline--fa{margin-left:.25em}.notification .emoji-reaction-emoji{font-size:1.3em;height:1.25em;max-width:1.25em;width:auto}.notification .emoji-reaction-emoji-image{-o-object-fit:contain;object-fit:contain;vertical-align:middle}.notification .notification-details{word-wrap:break-word;display:flex;flex:1 1 0;flex-wrap:nowrap;justify-content:space-between;line-height:var(--post-line-height);min-width:0;overflow:hidden;position:relative;width:100%}.notification .notification-details .name-and-action{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 .timeago{margin-right:.2em}.notification .notification-details .status-content{margin:0;max-height:300px}.notification .notification-details h1{font-size:1em;line-height:1.5;margin:0 0 .3em;padding:0;word-break:break-all}.notification .notification-details h1 small{font-weight:lighter}.notification .notification-details p{margin:0 0 .3em}.MobileNav{z-index:var(--ZI_navbar)}.MobileNav .mobile-nav{box-sizing:border-box;display:grid;grid-template-columns:2fr auto;grid-template-rows:50px;line-height:var(--navbar-height);width:100%}.MobileNav .mobile-nav a{color:var(--topBarLink,#d8a070)}.MobileNav .mobile-inner-nav{align-items:center;display:flex;width:100%}.MobileNav .mobile-nav-button{cursor:pointer;display:inline-block;padding:0 1em;position:relative;text-align:center}.MobileNav .site-name{display:inline-block;padding:0 .3em}.MobileNav .item{display:flex}.MobileNav .alert-dot{background-color:red;background-color:var(--badgeNotification,red);border-radius:100%;height:8px;left:calc(50% - 4px);margin-left:6px;margin-top:-6px;position:absolute;top:calc(50% - 4px);width:8px}.MobileNav .mobile-notifications-drawer{-webkit-overflow-scrolling:touch;box-shadow:1px 1px 4px rgba(0,0,0,.6);box-shadow:var(--panelShadow);height:100vh;left:0;overflow-x:hidden;position:fixed;top:0;transform:translateX(0);transition-duration:.25s;transition-property:transform;width:100%;z-index:var(--ZI_navbar)}.MobileNav .mobile-notifications-drawer.-closed{box-shadow:none;transform:translateX(100%)}.MobileNav .mobile-notifications-header{align-items:center;background-color:#182230;background-color:var(--topBar,#182230);box-shadow:0 0 4px rgba(0,0,0,.6);box-shadow:var(--topBarShadow);color:var(--topBarText);display:flex;height:50px;justify-content:space-between;line-height:50px;position:absolute;width:100%;z-index:calc(var(--ZI_navbar) + 100)}.MobileNav .mobile-notifications-header .spacer{flex:1}.MobileNav .mobile-notifications-header .title{font-size:1.3em;margin-left:.6em}.MobileNav .pins{flex:1}.MobileNav .pins .pinned-item{flex-grow:1}.MobileNav .mobile-notifications{background-color:#121a24;background-color:var(--bg,#121a24);color:#b9b9ba;color:var(--text,#b9b9ba);height:calc(100vh - var(--navbar-height));margin-top:50px;overflow-x:hidden;overflow-y:scroll;width:100vw}.MobileNav .mobile-notifications .notifications{border-radius:0;box-shadow:none;padding:0}.MobileNav .mobile-notifications .notifications .panel{border-radius:0;box-shadow:none;margin:0}.MobileNav .mobile-notifications .notifications .panel:after{border-radius:0}.MobileNav .mobile-notifications .notifications .panel .panel-heading{border-radius:0;box-shadow:none}.MobileNav .confirm-modal.dark-overlay:before{z-index:3000}.MobileNav .confirm-modal.dark-overlay .dialog-modal.panel{z-index:3001}.SearchBar{align-items:baseline;display:inline-flex;justify-content:flex-end;vertical-align:baseline}.SearchBar.-expanded{width:100%}.SearchBar .search-bar-input,.SearchBar .search-button{height:29px}.SearchBar .search-bar-input{flex:1 0 auto}.SearchBar .cancel-search{height:50px}.SearchBar .cancel-icon{color:#b9b9ba;color:var(--btnTopBarText,#b9b9ba)}.DesktopNav{width:100%;z-index:var(--ZI_navbar)}.DesktopNav input{color:var(--inputTopbarText,var(--inputText))}.DesktopNav a{color:var(--topBarLink,#d8a070)}.DesktopNav .inner-nav{box-sizing:border-box;display:grid;grid-template-areas:"sitename logo actions";grid-template-columns:2fr auto 2fr;grid-template-rows:var(--navbar-height);margin:auto;max-width:980px;padding:0 1.2em}.DesktopNav.-column-stretch .inner-nav{--miniColumn:25rem;--maxiColumn:45rem;--columnGap:1em;max-width:calc(var(--sidebarColumnWidth, var(--miniColumn)) + var(--contentColumnWidth, var(--maxiColumn)) + var(--columnGap))}.DesktopNav.-logoLeft .inner-nav{grid-template-areas:"logo sitename actions";grid-template-columns:auto 2fr 2fr}.DesktopNav.-column-stretch.-wide .inner-nav{max-width:calc(var(--sidebarColumnWidth, var(--miniColumn)) + var(--contentColumnWidth, var(--maxiColumn)) + var(--notifsColumnWidth, var(--miniColumn)) + var(--columnGap))}.DesktopNav .button-default,.DesktopNav .button-default svg{color:#b9b9ba;color:var(--btnTopBarText,#b9b9ba)}.DesktopNav .button-default:active{background-color:#182230;background-color:var(--btnPressedTopBar,#182230);color:#b9b9ba;color:var(--btnPressedTopBarText,#b9b9ba)}.DesktopNav .button-default:disabled{color:#b9b9ba;color:var(--btnDisabledTopBarText,#b9b9ba)}.DesktopNav .button-default.toggled{background-color:#182230;background-color:var(--btnToggledTopBar,#182230);color:#b9b9ba;color:var(--btnToggledTopBarText,#b9b9ba)}.DesktopNav .logo{grid-area:logo;position:relative;transition:opacity;transition-duration:.1s;transition-timing-function:ease-out}@media (min-width:800px){.DesktopNav .logo{opacity:1!important}}.DesktopNav .logo .mask{background-color:#182230;background-color:var(--topBarText,#182230);bottom:0;left:0;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;right:0;top:0}.DesktopNav .logo img{display:inline-block;height:var(--navbar-height)}.DesktopNav .nav-icon{height:100%;margin-left:.2em;text-align:center;width:2em}.DesktopNav .nav-icon .svg-inline--fa{color:#d8a070;color:var(--topBarLink,#d8a070)}.DesktopNav .sitename{grid-area:sitename}.DesktopNav .actions{grid-area:actions}.DesktopNav .item{display:flex;flex:1;flex-wrap:wrap;height:var(--navbar-height);line-height:var(--navbar-height);overflow:hidden}.DesktopNav .item.right{justify-content:flex-end;text-align:right}.DesktopNav .spacer{width:1em}.list-item:not(:last-child){border-bottom:1px solid #222;border-bottom-color:var(--border,#222)}.list-empty-content{padding:10px;text-align:center}.user-reporting-panel{max-height:80vh;max-width:700px;min-height:20vh;width:90vw}.user-reporting-panel .panel-body{border-color:currentcolor #222 #222;border-top:1px solid #222;border-color:var(--border,#222);display:flex;flex-direction:column-reverse;overflow:hidden}.user-reporting-panel-left{box-sizing:border-box;line-height:var(--post-line-height);padding:1.1em .7em .7em}.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;min-height:44px;overflow:hidden;resize:none;transition:min-height .2s .1s;width:100%}.user-reporting-panel-left .btn{min-width:10em;padding:0 2em}.user-reporting-panel-left .alert{line-height:1.3em;margin:1em 0 0}.user-reporting-panel-right{display:flex;flex-direction:column;overflow-y:auto}.user-reporting-panel-sitem{display:flex;justify-content:space-between}.user-reporting-panel-sitem>.Status{flex:1}.user-reporting-panel-sitem>.checkbox{margin:.75em}@media (min-width:801px){.user-reporting-panel .panel-body{flex-direction:row}.user-reporting-panel-left{border-right:1px solid;border-color:#222;border-color:var(--border,#222);max-width:320px;padding:1.1em;width:50%}.user-reporting-panel-left>div{margin-bottom:2em}.user-reporting-panel-right{flex:1 1 auto;margin-bottom:12px;width:50%}}.modal-view.edit-form-modal-view{align-items:flex-start}.edit-form-modal-panel{flex-shrink:0;margin-bottom:2em;margin-top:25%;max-width:700px;width:100%}@media(orientation:landscape){.edit-form-modal-panel{margin-top:8%}}.edit-form-modal-panel .form-bottom-left{max-width:6.5em}.edit-form-modal-panel .form-bottom-left .emoji-icon{justify-content:right}.modal-view.post-form-modal-view{align-items:flex-start}.post-form-modal-panel{flex-shrink:0;margin-bottom:2em;margin-top:25%;max-width:700px;width:100%}@media(orientation:landscape){.post-form-modal-panel{margin-top:8%}}.modal-view.status-history-modal-view{align-items:flex-start}.status-history-modal-panel{flex-shrink:0;margin-bottom:2em;margin-top:25%;max-width:700px;width:100%}@media(orientation:landscape){.status-history-modal-panel{margin-top:8%}}.global-notice-list{align-items:center;display:flex;flex-direction:column;pointer-events:none;position:fixed;top:calc(var(--navbar-height) + .5em);width:100%;z-index:var(--ZI_navbar_popovers)}.global-notice-list .global-notice{display:flex;line-height:2;margin-bottom:.5em;max-width:calc(100% - 3em);padding-left:1.5em;pointer-events:auto;text-align:center;width:40em}.global-notice-list .global-notice .notice-message{flex:1 1 100%}.global-notice-list .global-error{background-color:var(--alertPopupError,red)}.global-notice-list .global-error,.global-notice-list .global-error .svg-inline--fa{color:var(--alertPopupErrorText,#b9b9ba)}.global-notice-list .global-warning{background-color:var(--alertPopupWarning,orange)}.global-notice-list .global-warning,.global-notice-list .global-warning .svg-inline--fa{color:var(--alertPopupWarningText,#b9b9ba)}.global-notice-list .global-success{background-color:var(--alertPopupSuccess,#0fa00f)}.global-notice-list .global-success,.global-notice-list .global-success .svg-inline--fa{color:var(--alertPopupSuccessText,#b9b9ba)}.global-notice-list .global-info{background-color:var(--alertPopupNeutral,#182230)}.global-notice-list .global-info,.global-notice-list .global-info .svg-inline--fa{color:var(--alertPopupNeutralText,#b9b9ba)}.global-notice-list .close-notice{padding-right:.2em}.global-notice-list .close-notice .svg-inline--fa:hover{opacity:.6}.panel{background-color:#121a24;background-color:var(--bg,#121a24);display:flex;flex-direction:column;position:relative}.panel,.panel:after{border-radius:10px;border-radius:var(--panelRadius,10px)}.panel:after{bottom:0;box-shadow:1px 1px 4px rgba(0,0,0,.6);box-shadow:var(--panelShadow);content:"";left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:5}.panel-body{padding:var(--panel-body-padding,0)}.panel-body:empty:before{content:"¯\\_(ツ)_/¯";display:block;margin:1em;text-align:center}.panel-body>p{line-height:1.3;margin:0;padding:1em}.panel-footer,.panel-heading{--panel-heading-height-padding:0.6em;--__panel-heading-gap:0.5em;--__panel-heading-height:3.2em;--__panel-heading-height-inner:calc(var(--__panel-heading-height) - var(--panel-heading-height-padding, 0)*2);grid-column-gap:var(--__panel-heading-gap);background-size:cover;box-sizing:border-box;display:grid;flex:none;grid-auto-columns:auto;grid-auto-flow:column;grid-template-columns:minmax(50%,1fr);height:var(--__panel-heading-height);line-height:var(--__panel-heading-height-inner);padding:var(--panel-heading-height-padding);position:relative;z-index:4}.panel-footer.-flexible-height,.panel-heading.-flexible-height{--__panel-heading-height:auto}.panel-footer.-flexible-height:after,.panel-footer.-flexible-height:before,.panel-heading.-flexible-height:after,.panel-heading.-flexible-height:before{display:none}.panel-footer.-stub,.panel-footer.-stub:after,.panel-heading.-stub,.panel-heading.-stub:after{border-radius:10px;border-radius:var(--panelRadius,10px)}.panel-footer.-sticky,.panel-heading.-sticky{position:sticky;top:var(--navbar-height)}.panel-footer:after,.panel-footer:before,.panel-heading:after,.panel-heading:before{bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.panel-footer .title,.panel-heading .title{font-size:1.3em}.panel-footer .alert,.panel-heading .alert{overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}.panel-footer:not(.-flexible-height)>.alert,.panel-footer:not(.-flexible-height)>.button-default,.panel-heading:not(.-flexible-height)>.alert,.panel-heading:not(.-flexible-height)>.button-default{align-self:stretch;box-sizing:border-box;height:var(--__panel-heading-height-inner);margin:0;min-height:0;min-width:1px;padding-bottom:0;padding-top:0}.panel-heading{align-items:start;background-color:#121a24;background-color:var(--bg,#121a24);border-width:0 0 1px;color:var(--panelText)}.panel-heading,.panel-heading:after{border-radius:10px 10px 0 0;border-radius:var(--panelRadius,10px) var(--panelRadius,10px) 0 0}.panel-heading:after{background-color:#182230;background-color:var(--panel,#182230);box-shadow:var(--panelHeaderShadow);z-index:-2}.panel-heading .-link,.panel-heading a{color:#d8a070;color:var(--panelLink,#d8a070)}.panel-heading .button-unstyled:hover .iconLetter,.panel-heading .button-unstyled:hover .svg-inline--fa,.panel-heading .button-unstyled:hover i[class*=icon-],.panel-heading a:hover .iconLetter,.panel-heading a:hover .svg-inline--fa,.panel-heading a:hover i[class*=icon-]{color:var(--panelText)}.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:not(.-flexible-height)>.button-default{flex-shrink:0}.panel-heading:not(.-flexible-height)>.button-default,.panel-heading:not(.-flexible-height)>.button-default i[class*=icon-]{color:#b9b9ba;color:var(--btnPanelText,#b9b9ba)}.panel-heading:not(.-flexible-height)>.button-default:active{background-color:#182230;background-color:var(--btnPressedPanel,#182230);color:#b9b9ba;color:var(--btnPressedPanelText,#b9b9ba)}.panel-heading:not(.-flexible-height)>.button-default:disabled{color:#b9b9ba;color:var(--btnDisabledPanelText,#b9b9ba)}.panel-heading:not(.-flexible-height)>.button-default.toggled{color:#b9b9ba;color:var(--btnToggledPanelText,#b9b9ba)}.panel-heading .rightside-button{align-self:stretch;height:var(--__panel-heading-height);margin:calc(var(--panel-heading-height-padding)*-1) 0;margin-right:calc(var(--__panel-heading-gap)*-1);text-align:center;width:var(--__panel-heading-height)}.panel-heading .rightside-button>button{box-sizing:border-box;height:100%;padding:calc(var(--panel-heading-height-padding)*1) 0;text-align:center;width:100%}.panel-heading .rightside-button>button svg{font-size:1.2em}.panel-heading .rightside-icon{align-self:stretch;margin-right:calc(var(--__panel-heading-gap)*-1);text-align:center;width:var(--__panel-heading-height)}.panel-heading .rightside-icon svg{font-size:1.2em}.panel-footer{align-items:center;border-color:var(--border,#222);border-radius:0 0 10px 10px;border-radius:0 0 var(--panelRadius,10px) var(--panelRadius,10px);border-style:solid;border-width:1px 0 0}:root{--navbar-height:3.5rem;--post-line-height:1.4;--ZI_media_modal:9000;--ZI_modals_popovers:8500;--ZI_modals:8000;--ZI_navbar_popovers:7500;--ZI_navbar:7000;--ZI_popovers:6000}html{font-size:14px}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#b9b9ba;color:var(--text,#b9b9ba);font-family:sans-serif;font-family:var(--interfaceFont,sans-serif);margin:0;overflow-x:clip;overflow-y:scroll;overscroll-behavior-y:none}body.hidden{display:none}@media(any-pointer:fine){*{scrollbar-color:var(--btn) transparent}::-webkit-scrollbar{background:transparent}::-webkit-scrollbar-button,::-webkit-scrollbar-thumb{background-color:var(--btn);border-radius:var(--btnRadius);box-shadow:var(--buttonShadow)}::-webkit-scrollbar-button{--___bgPadding:2px;background-repeat:no-repeat,no-repeat;color:var(--btnText)}::-webkit-scrollbar-button:horizontal{background-size:50% calc(50% - var(--___bgPadding)),50% calc(50% - var(--___bgPadding))}::-webkit-scrollbar-button:horizontal:increment{background-image:linear-gradient(45deg,var(--btnText) 50%,transparent 51%),linear-gradient(-45deg,transparent 50%,var(--btnText) 51%);background-position:top var(--___bgPadding) left 50%,right 50% bottom var(--___bgPadding)}::-webkit-scrollbar-button:horizontal:decrement{background-image:linear-gradient(45deg,transparent 50%,var(--btnText) 51%),linear-gradient(-45deg,var(--btnText) 50%,transparent 51%);background-position:bottom var(--___bgPadding) right 50%,left 50% top var(--___bgPadding)}::-webkit-scrollbar-button:vertical{background-size:calc(50% - var(--___bgPadding)) 50%,calc(50% - var(--___bgPadding)) 50%}::-webkit-scrollbar-button:vertical:increment{background-image:linear-gradient(-45deg,transparent 50%,var(--btnText) 51%),linear-gradient(45deg,transparent 50%,var(--btnText) 51%);background-position:right var(--___bgPadding) top 50%,left var(--___bgPadding) top 50%}::-webkit-scrollbar-button:vertical:decrement{background-image:linear-gradient(-45deg,var(--btnText) 50%,transparent 51%),linear-gradient(45deg,var(--btnText) 50%,transparent 51%);background-position:left var(--___bgPadding) top 50%,right var(--___bgPadding) top 50%}html{background:var(--wallpaper);scrollbar-color:var(--selectedMenu) var(--wallpaper)}}a{color:#d8a070;color:var(--link,#d8a070);text-decoration:none}h4{margin:0}.iconLetter{display:inline-block;font-weight:1000;text-align:center}.iconLetter,.svg-inline--fa,i[class*=icon-]{color:#666;color:var(--icon,#666)}.button-unstyled:hover>.iconLetter,.button-unstyled:hover>.svg-inline--fa,.button-unstyled:hover>i[class*=icon-],a:hover>.iconLetter,a:hover>.svg-inline--fa,a:hover>i[class*=icon-]{color:var(--text)}nav{background-color:#182230;background-color:var(--topBar,#182230);box-shadow:0 0 4px rgba(0,0,0,.6);box-shadow:var(--topBarShadow);box-sizing:border-box;color:hsla(240,1%,73%,.5);color:var(--faint,hsla(240,1%,73%,.5));height:var(--navbar-height);position:fixed;z-index:var(--ZI_navbar)}#sidebar{grid-area:sidebar}#modal{position:absolute;z-index:var(--ZI_modals)}.column.-scrollable{position:sticky;top:var(--navbar-height)}#main-scroller{grid-area:content;position:relative}#notifs-column{grid-area:notifs}.app-bg-wrapper{background-color:var(--wallpaper);background-image:var(--body-background-image);background-position:50%;background-repeat:no-repeat;background-size:cover;height:100%;left:0;position:fixed;right:-20px;top:var(--navbar-height);z-index:-1000}.underlay{background-color:rgba(0,0,0,.15);background-color:var(--underlay,rgba(0,0,0,.15));grid-column:1/span 3;grid-row:1/1;pointer-events:none;z-index:-1000}.app-layout{--miniColumn:25rem;--maxiColumn:45rem;--columnGap:1em;--status-margin:0.75em;--effectiveSidebarColumnWidth:minmax(var(--miniColumn),var(--sidebarColumnWidth,var(--miniColumn)));--effectiveNotifsColumnWidth:minmax(var(--miniColumn),var(--notifsColumnWidth,var(--miniColumn)));--effectiveContentColumnWidth:minmax(var(--miniColumn),var(--contentColumnWidth,var(--maxiColumn)));align-content:flex-start;flex-wrap:wrap;grid-template-areas:"sidebar content";grid-template-columns:var(--effectiveSidebarColumnWidth) var(--effectiveContentColumnWidth);grid-template-rows:1fr;justify-content:center;margin:0 auto;min-height:100vh;overflow-x:clip;position:relative}.app-layout,.app-layout .column{box-sizing:border-box;display:grid}.app-layout .column{--___columnMargin:var(--columnGap);align-content:start;grid-row:1/1;grid-template-columns:100%;margin:0 calc(var(--___columnMargin)/2);padding:calc(var(--___columnMargin)) 0;row-gap:var(--___columnMargin)}.app-layout .column:not(.-scrollable){margin-top:var(--navbar-height)}.app-layout .column:hover{z-index:2}.app-layout .column.-full-height{margin-bottom:0;padding-bottom:0;padding-top:0}.app-layout .column.-scrollable{--___paddingIncrease:calc(var(--columnGap)/2);margin-left:calc(var(--___paddingIncrease)*-1);max-height:calc(100vh - var(--navbar-height));overflow-x:hidden;overflow-y:auto;padding-left:calc(var(--___paddingIncrease) + var(--___columnMargin)/2);position:sticky;top:var(--navbar-height)}@supports(scrollbar-width:none) or (-webkit-text-fill-color:initial){.app-layout .column.-scrollable:not(.-show-scrollbar){margin-right:calc(var(--___paddingIncrease)*-1);padding-right:calc(var(--___paddingIncrease) + var(--___columnMargin)/2);scrollbar-width:none}.app-layout .column.-scrollable:not(.-show-scrollbar)::-webkit-scrollbar{display:block;width:0}}.app-layout .column.-scrollable .panel-heading.-sticky{top:calc(var(--columnGap)/-1)}.app-layout.-has-new-post-button .column{padding-bottom:10rem}.app-layout.-no-sticky-headers .column .panel-heading.-sticky{position:relative;top:0}.app-layout .column-inner{align-content:start;box-sizing:border-box;display:grid;grid-template-columns:100%;row-gap:1em}.app-layout.-reverse:not(.-wide,.-mobile){grid-template-areas:"content sidebar";grid-template-columns:var(--effectiveContentColumnWidth) var(--effectiveSidebarColumnWidth)}.app-layout.-wide{grid-template-areas:"sidebar content notifs";grid-template-columns:var(--effectiveSidebarColumnWidth) var(--effectiveContentColumnWidth) var(--effectiveNotifsColumnWidth)}.app-layout.-wide.-reverse{grid-template-areas:"notifs content sidebar";grid-template-columns:var(--effectiveNotifsColumnWidth) var(--effectiveContentColumnWidth) var(--effectiveSidebarColumnWidth)}.app-layout.-mobile{grid-template-areas:"content";grid-template-columns:100vw;padding:0}.app-layout.-mobile .column{margin:var(--navbar-height) 0 0 0;padding-top:0}.app-layout.-mobile .panel,.app-layout.-mobile .panel-heading,.app-layout.-mobile .panel-heading:after,.app-layout.-mobile .panel-heading:before,.app-layout.-mobile .panel:after{border-top-left-radius:0;border-top-right-radius:0}.app-layout.-mobile #notifs-column,.app-layout.-mobile #sidebar,.app-layout.-normal #notifs-column{display:none}.text-center{text-align:center}.button-default{background-color:#182230;background-color:var(--btn,#182230);border:none;border-radius:4px;border-radius:var(--btnRadius,4px);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);color:#b9b9ba;color:var(--btnText,#b9b9ba);cursor:pointer;font-family:sans-serif;font-family:var(--interfaceFont,sans-serif);font-size:1em;-webkit-user-select:none;-moz-user-select:none;user-select:none}.button-default.-sublime{background:transparent}.button-default .svg-inline--fa,.button-default i[class*=icon-]{color:#b9b9ba;color:var(--btnText,#b9b9ba)}.button-default::-moz-focus-inner{border:none}.button-default:hover{box-shadow:0 0 4px hsla(0,0%,100%,.3);box-shadow:var(--buttonHoverShadow)}.button-default:active{background-color:#182230;background-color:var(--btnPressed,#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-default:active,.button-default:active i,.button-default:active svg{color:#b9b9ba;color:var(--btnPressedText,#b9b9ba)}.button-default:disabled{background-color:#182230;background-color:var(--btnDisabled,#182230);cursor:not-allowed}.button-default:disabled,.button-default:disabled i,.button-default:disabled svg{color:#b9b9ba;color:var(--btnDisabledText,#b9b9ba)}.button-default.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-default.toggled,.button-default.toggled i,.button-default.toggled svg{color:#b9b9ba;color:var(--btnToggledText,#b9b9ba)}.button-default.danger{background-color:rgba(211,16,20,.5);background-color:var(--alertError,rgba(211,16,20,.5));color:#b9b9ba;color:var(--alertErrorPanelText,#b9b9ba)}.button-unstyled{background:none;border:none;box-sizing:content-box;color:inherit;cursor:pointer;display:inline;font-family:inherit;font-size:100%;line-height:unset;outline:none;padding:0;text-align:initial}.button-unstyled.-link{color:#d8a070;color:var(--link,#d8a070)}.button-unstyled.-fullwidth{width:100%}.button-unstyled.-hover-highlight:hover svg{color:#b9b9ba;color:var(--lightText,#b9b9ba)}.input,input,textarea{--_padding:0.5em;background-color:#182230;background-color:var(--input,#182230);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);box-sizing:border-box;color:#b9b9ba;color:var(--inputText,#b9b9ba);display:inline-block;font-family:sans-serif;font-family:var(--inputFont,sans-serif);font-size:1em;-webkit-hyphens:none;hyphens:none;line-height:2;margin:0;padding:0 var(--_padding);position:relative}.input.unstyled,input.unstyled,textarea.unstyled{background:none;border-radius:0;box-shadow:none;height:unset}.input.disabled,.input:disabled,.input[disabled=disabled],input.disabled,input:disabled,input[disabled=disabled],textarea.disabled,textarea:disabled,textarea[disabled=disabled]{cursor:not-allowed;opacity:.5}.input[type=range],input[type=range],textarea[type=range]{background:none;border:none;box-shadow:none;flex:1;margin:0}.input[type=radio],input[type=radio],textarea[type=radio]{display:none}.input[type=radio]:checked+label:before,input[type=radio]:checked+label:before,textarea[type=radio]:checked+label:before{background-color:var(--accent,#d8a070);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}.input[type=radio]:disabled,.input[type=radio]:disabled+label,.input[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,input[type=radio]+label:before,textarea[type=radio]+label:before{background-color:#182230;background-color:var(--input,#182230);border-radius:100%;box-shadow:inset 0 0 2px #000;box-shadow:var(--inputShadow);box-sizing:border-box;color:transparent;content:"";display:inline-block;flex-shrink:0;font-size:1.1em;height:1.1em;line-height:1.1;margin-right:.5em;overflow:hidden;text-align:center;transition:box-shadow .2s;vertical-align:top;width:1.1em}.input[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,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,input[type=checkbox]+label:before,textarea[type=checkbox]+label:before{background-color:#182230;background-color:var(--input,#182230);border-radius:2px;border-radius:var(--checkboxRadius,2px);box-shadow:inset 0 0 2px #000;box-shadow:var(--inputShadow);box-sizing:border-box;color:transparent;content:"✓";display:inline-block;flex-shrink:0;font-size:1.1em;height:1.1em;line-height:1.1;margin-right:.5em;overflow:hidden;text-align:center;transition:color .2s;vertical-align:top;width:1.1em}.input.resize-height,input.resize-height,textarea.resize-height{resize:vertical}textarea{line-height:var(--post-line-height);padding:var(--_padding)}option{background-color:#121a24;background-color:var(--bg,#121a24);color:#b9b9ba;color:var(--text,#b9b9ba)}.hide-number-spinner{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.hide-number-spinner[type=number]::-webkit-inner-spin-button,.hide-number-spinner[type=number]::-webkit-outer-spin-button{display:none;opacity:0}.cards-list{display:grid;grid-auto-flow:row dense;grid-template-columns:1fr 1fr;list-style:none}.cards-list li{border:1px solid var(--border);border-radius:var(--inputRadius);margin:.25em;padding:.5em}.btn-block{display:block;width:100%}.btn-group{display:inline-flex;position:relative;vertical-align:middle}.btn-group .button-dropdown,.btn-group button{flex:1 1 auto;position:relative}.btn-group .button-dropdown:not(:last-child),.btn-group .button-dropdown:not(:last-child) .button-default,.btn-group button:not(:last-child),.btn-group button:not(:last-child) .button-default{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group .button-dropdown:not(:first-child),.btn-group .button-dropdown:not(:first-child) .button-default,.btn-group button:not(:first-child),.btn-group button:not(:first-child) .button-default{border-bottom-left-radius:0;border-top-left-radius:0}.fa{color:gray}.mobile-shown{display:none}.badge{border-radius:99px;box-sizing:border-box;display:inline-block;font-size:.9em;font-style:normal;font-weight:400;height:1.3em;line-height:1;max-width:10em;min-width:1.7em;overflow:hidden;padding:.15em;text-align:center;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}.badge.badge-notification{background-color:red;background-color:var(--badgeNotification,red);color:#fff;color:var(--badgeNotificationText,#fff)}.alert{border-radius:5px;border-radius:var(--tooltipRadius,5px);margin:0 .35em;padding:0 .25em}.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)}.alert.success{background-color:var(--alertSuccess,rgba(111,111,20,.5));color:var(--alertSuccessText,#b9b9ba)}.panel-heading .alert.success{color:var(--alertSuccessPanelText,#b9b9ba)}.faint,.faint-link{color:hsla(240,1%,73%,.5);color:var(--faint,hsla(240,1%,73%,.5))}.faint-link:hover{text-decoration:underline}.visibility-notice{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);padding:.5em}.notice-dismissible{padding-right:4rem;position:relative}.notice-dismissible .dismiss{color:inherit;padding:.5em;position:absolute;right:0;top:0}.fa-scale-110.iconLetter,.fa-scale-110.svg-inline--fa{font-size:1.1em}.fa-old-padding-layer,.fa-old-padding.iconLetter,.fa-old-padding.svg-inline--fa{padding:0 .3em}.veryfaint{opacity:.25}.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.button-default{min-height:2em}.new-status-notification{flex:1;font-size:1.1em;position:relative;z-index:1}@media (max-width:800px){.mobile-hidden{display:none}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}@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)}}.fade-enter-active,.fade-leave-active{transition:opacity .3s}.fade-enter-from,.fade-leave-active{opacity:0}.visible-for-screenreader-only{clip:rect(0 0 0 0);display:block;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;visibility:visible;width:1px}.thread-tree-replies{border-left:2px solid var(--border,#222);margin-left:var(--status-margin,.75em)}.thread-tree-replies-hidden{align-items:stretch;display:flex;flex-direction:column;padding:var(--status-margin,.75em)}.Conversation{z-index:1}.Conversation .conversation-dive-to-top-level-box{align-items:stretch;border-bottom:1px solid var(--border,#222);border-radius:0;display:flex;flex-direction:column;padding:var(--status-margin,.75em)}.Conversation .thread-ancestors{border-left:2px solid var(--border,#222);margin-left:var(--status-margin,.75em)}.Conversation .thread-ancestor.-faded .StatusContent{--link:var(--faintLink);--text:var(--faint);color:var(--text)}.Conversation .thread-ancestor-dive-box{border-bottom:1px solid var(--border,#222);border-radius:0;padding-left:var(--status-margin,.75em)}.Conversation .thread-ancestor-dive-box,.Conversation .thread-ancestor-dive-box-inner{align-items:stretch;display:flex;flex-direction:column}.Conversation .thread-ancestor-dive-box-inner{padding:var(--status-margin,.75em)}.Conversation .conversation-status{border-bottom:1px solid var(--border,#222);border-radius:0}.Conversation .thread-ancestor-has-other-replies .conversation-status,.Conversation .thread-ancestor:last-child .conversation-status,.Conversation .thread-ancestor:last-child .thread-ancestor-dive-box,.Conversation.-expanded .thread-tree .conversation-status,.Conversation:last-child .conversation-status{border-bottom:none}.Conversation .thread-ancestors+.thread-tree>.conversation-status{border-top:1px solid var(--border,#222)}.Conversation.status-fadein.-expanded .thread-body{border-bottom:1px solid var(--border,#222);border-left:4px solid red;border-left-color:var(--cRed,red);border-radius:0 0 10px 10px;border-radius:0 0 var(--panelRadius,10px) var(--panelRadius,10px)}.Conversation.-expanded.status-fadein{margin:calc(var(--status-margin, .75em)/2)}.timeline-menu-popover{border-top-left-radius:0;border-top-right-radius:0;font-size:1rem;margin-top:.6rem;max-width:100vw;min-width:24rem}.timeline-menu-popover ul{list-style:none;margin:0;padding:0}.timeline-menu-popover a{display:block;height:3.5em;line-height:3.5em;padding:0 .65em}.timeline-menu-popover a:hover{color:#d8a070;color:var(--selectedMenuText,#d8a070)}.timeline-menu-popover a.router-link-active,.timeline-menu-popover a:hover{--faint:var(--selectedMenuFaintText,$fallback--faint);--faintLink:var(--selectedMenuFaintLink,$fallback--faint);--lightText:var(--selectedMenuLightText,$fallback--lightText);--icon:var(--selectedMenuIcon,$fallback--icon);background-color:#151e2a;background-color:var(--selectedMenu,#151e2a)}.timeline-menu-popover a.router-link-active{color:#b9b9ba;color:var(--selectedMenuText,#b9b9ba);font-weight:bolder}.timeline-menu-popover a.router-link-active:hover{text-decoration:underline}.timeline-menu-popover a svg{margin-left:-.2em;margin-right:.4em}.timeline-menu-popover li{border-bottom:1px solid;border-color:#222;border-color:var(--border,#222);padding:0}.timeline-menu-popover li:last-child a{border-bottom-left-radius:10px;border-bottom-left-radius:var(--panelRadius,10px);border-bottom-right-radius:10px;border-bottom-right-radius:var(--panelRadius,10px)}.timeline-menu-popover li:last-child{border:none}.TimelineMenu{margin-right:auto;min-width:0}.TimelineMenu .popover-trigger-button{vertical-align:bottom}.TimelineMenu .panel:after{border-top-left-radius:0;border-top-right-radius:0}.TimelineMenu .timeline-menu-title{cursor:pointer;display:flex;margin:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}.TimelineMenu .timeline-menu-title .timeline-menu-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.TimelineMenu .timeline-menu-title svg{margin-left:.6em;transition:transform .1s}.TimelineMenu .timeline-menu-title .click-blocker{cursor:default;flex-grow:1}.TimelineMenu.open .timeline-menu-title svg{color:#b9b9ba;color:var(--panelText,#b9b9ba);transform:rotate(180deg)}.TimelineMenu .panel{box-shadow:var(--popoverShadow)}.Timeline .alert-dot{border-radius:100%;height:8px;left:calc(50% - 4px);margin-left:6px;margin-top:-6px;top:calc(50% - 4px);width:8px}.Timeline .alert-badge,.Timeline .alert-dot{background-color:var(--badgeNeutral);position:absolute}.Timeline .alert-badge{border-radius:var(--tooltipRadius);color:var(--badgeNeutralText);font-size:.75em;left:calc(50% - .5em);line-height:1;margin-left:.7em;margin-top:-1em;padding:.2em;text-align:right;top:calc(50% - .4em)}.Timeline .loadmore-button{position:relative}.Timeline.-blocked{cursor:progress}.Timeline .conversation-heading{top:calc(var(--__panel-heading-height)*var(--currentPanelStack, 2));z-index:2}.Timeline.-nonpanel .timeline-heading{line-height:2.75em;padding:0 .5em;text-align:center}.Timeline.-nonpanel .timeline-heading .alert,.Timeline.-nonpanel .timeline-heading .button-default{line-height:2em;width:100%}.tab-switcher{display:flex}.tab-switcher .tab-icon{display:block;margin:.2em auto}.tab-switcher.top-tabs{flex-direction:column}.tab-switcher.top-tabs>.tabs{flex:0 0 auto;flex-direction:row;overflow-x:auto;overflow-y:hidden;padding-top:5px;width:100%}.tab-switcher.top-tabs>.tabs:after,.tab-switcher.top-tabs>.tabs:before{border-bottom:1px solid #222;border-bottom-color:var(--border,#222);content:"";flex:1 1 auto}.tab-switcher.top-tabs>.tabs .tab-wrapper{height:2em}.tab-switcher.top-tabs>.tabs .tab-wrapper:not(.active):after{border-bottom:1px solid #222;border-bottom-color:var(--border,#222);bottom:0;left:0;right:0}.tab-switcher.top-tabs>.tabs .tab{border-bottom-left-radius:0;border-bottom-right-radius:0;margin-bottom:-93px;min-width:1px;padding-bottom:99px;width:100%}.tab-switcher.top-tabs .contents.scrollable-tabs{flex-basis:0}.tab-switcher.side-tabs{flex-direction:row}@media (max-width:800px){.tab-switcher.side-tabs{overflow-x:auto}}.tab-switcher.side-tabs>.contents{flex:1 1 auto}.tab-switcher.side-tabs>.tabs{flex:0 0 auto;flex-direction:column;overflow-x:hidden;overflow-y:auto}.tab-switcher.side-tabs>.tabs:after,.tab-switcher.side-tabs>.tabs:before{border-right:1px solid #222;border-right-color:var(--border,#222);content:"";flex-basis:.5em;flex-shrink:0}.tab-switcher.side-tabs>.tabs:after{flex-grow:1}.tab-switcher.side-tabs>.tabs:before{flex-grow:0}.tab-switcher.side-tabs>.tabs .tab-wrapper{display:flex;flex-direction:column;min-width:10em}@media (max-width:800px){.tab-switcher.side-tabs>.tabs .tab-wrapper{min-width:4em}}.tab-switcher.side-tabs>.tabs .tab-wrapper:not(.active):after{border-right:1px solid #222;border-right-color:var(--border,#222);bottom:0;right:0;top:0}.tab-switcher.side-tabs>.tabs .tab-wrapper:before{border-right:1px solid #222;border-right-color:var(--border,#222);content:"";flex:0 0 6px}.tab-switcher.side-tabs>.tabs .tab-wrapper:last-child .tab{margin-bottom:0}.tab-switcher.side-tabs>.tabs .tab{border-bottom-right-radius:0;border-top-right-radius:0;box-sizing:content-box;flex:1;margin-left:1em;margin-right:-200px;min-width:10em;min-width:1px;padding-left:1em;padding-right:calc(1em + 200px)}@media (max-width:800px){.tab-switcher.side-tabs>.tabs .tab{margin-left:.25em;margin-right:calc(.25em - 200px);padding-left:.25em;padding-right:calc(.25em + 200px)}.tab-switcher.side-tabs>.tabs .tab .text{display:none}}.tab-switcher .contents{flex:1 0 auto;min-height:0}.tab-switcher .contents .hidden{display:none}.tab-switcher .contents .full-height:not(.hidden){display:flex;flex-direction:column;height:100%}.tab-switcher .contents .full-height:not(.hidden)>:not(.mobile-label){flex:1}.tab-switcher .contents.scrollable-tabs{overflow-y:auto}.tab-switcher .tab{padding:6px 1em;position:relative;white-space:nowrap}.tab-switcher .tab:not(.active){z-index:4}.tab-switcher .tab:not(.active):hover{z-index:6}.tab-switcher .tab.active{background:transparent;color:#b9b9ba;color:var(--tabActiveText,#b9b9ba);z-index:5}.tab-switcher .tab img{margin-top:-5px;max-height:26px;vertical-align:top}.tab-switcher .tabs{box-sizing:border-box;display:flex;position:relative}.tab-switcher .tabs:after,.tab-switcher .tabs:before{display:block;flex:1 1 auto}.tab-switcher .tab-wrapper{display:flex;flex:0 0 auto;position:relative}.tab-switcher .tab-wrapper:not(.active):after{content:"";position:absolute;z-index:7}.tab-switcher .mobile-label{border-bottom:1px solid var(--border,#222);margin-bottom:.25em;margin-left:.2em;margin-top:.5em;padding-bottom:.25em;padding-left:.3em}@media (min-width:800px){.tab-switcher .mobile-label{display:none}}.chat-title{--emoji-size:14px;display:flex}.chat-title,.chat-title .username{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-title .username{word-wrap:break-word;display:inline;max-width:100%}.chat-title .avatar-container{align-self:center;line-height:1}.chat-title .titlebar-avatar{border-radius:10px;border-radius:var(--avatarAltRadius,10px);height:1.5em;margin-right:.5em;width:1.5em}.chat-title .titlebar-avatar.animated:before{display:none}.chat-list-item{box-sizing:border-box;cursor:pointer;display:flex;flex-direction:row;height:5em;overflow:hidden;padding:.75em}.chat-list-item :focus{outline:none}.chat-list-item:hover{background-color:var(--selectedPost,#151e2a);box-shadow:0 0 3px 1px rgba(0,0,0,.1)}.chat-list-item .chat-list-item-left{margin-right:1em}.chat-list-item .chat-list-item-center{word-wrap:break-word;box-sizing:border-box;overflow:hidden;width:100%}.chat-list-item .heading{display:inline-flex;justify-content:space-between;line-height:1em;width:100%}.chat-list-item .heading-right{white-space:nowrap}.chat-list-item .name-and-account-name{flex-shrink:1;line-height:var(--post-line-height);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-list-item .chat-preview{color:#b9b9ba;color:var(--faint,#b9b9ba);display:inline-flex;margin:.35em 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.chat-list-item a{color:var(--faintLink,#d8a070);pointer-events:none;text-decoration:none}.chat-list-item:hover .animated.avatar canvas{display:none}.chat-list-item:hover .animated.avatar img{visibility:visible}.chat-list-item .Avatar{border-radius:10px;border-radius:var(--avatarAltRadius,10px)}.chat-list-item .chat-preview-body{--emoji-size:1.4em;padding-right:1em}.chat-list-item .time-wrapper{line-height:var(--post-line-height)}.basic-user-card{--emoji-size:14px;display:flex;flex:1 0;margin:0;padding:.6em 1em}.basic-user-card-collapsed-content{flex:1;margin-left:.7em;min-width:0;text-align:left}.basic-user-card-user-name img{height:16px;-o-object-fit:contain;object-fit:contain;vertical-align:middle;width:16px}.basic-user-card-screen-name,.basic-user-card-user-name-value{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.basic-user-card-expanded-content{flex:1;margin-left:.7em;min-width:0}.chat-new .input-wrap{display:flex;margin:.7em .5em}.chat-new .input-wrap input{width:100%}.chat-new .search-icon{margin-right:.3em}.chat-new .member-list{padding-bottom:.7rem}.chat-new .basic-user-card:hover{background-color:var(--selectedPost,#151e2a);cursor:pointer}.chat-new .go-back-button{align-self:start;height:100%;line-height:1;text-align:center;width:var(--__panel-heading-height-inner)}.chat-list{margin-bottom:0;min-height:25em}.emtpy-chat-list-alert{color:#b9b9ba;color:var(--faint,#b9b9ba);display:flex;font-size:1.2em;justify-content:center;padding:3em}.chat-message-wrapper.hovered-message-chain .animated.Avatar canvas{display:none}.chat-message-wrapper.hovered-message-chain .animated.Avatar img{visibility:visible}.chat-message-wrapper .chat-message-menu{opacity:0;position:absolute;top:-.8em;transition:opacity .1s}.chat-message-wrapper .chat-message-menu button{padding-bottom:.2em;padding-top:.2em}.chat-message-wrapper .menu-icon{cursor:pointer}.chat-message-wrapper .menu-icon:hover,.extra-button-popover.open .chat-message-wrapper .menu-icon{color:#b9b9ba;color:var(--text,#b9b9ba)}.chat-message-wrapper .popover{width:12em}.chat-message-wrapper .chat-message{display:flex;padding-bottom:.5em}.chat-message-wrapper .chat-message .status-body:hover{--_still-image-img-visibility:visible;--_still-image-canvas-visibility:hidden;--_still-image-label-visibility:hidden}.chat-message-wrapper .avatar-wrapper{margin-right:.72em;width:32px}.chat-message-wrapper .attachments,.chat-message-wrapper .link-preview{margin-bottom:1em}.chat-message-wrapper .status{border-radius:10px;border-radius:var(--chatMessageRadius,10px);display:flex;padding:.75em}.chat-message-wrapper .created-at{float:right;font-size:.8em;font-style:italic;margin:-1em 0 -.5em;opacity:.8;position:relative}.chat-message-wrapper .without-attachment .message-content .RichContent:after{content:" ";display:inline-block;margin-right:5.4em}.chat-message-wrapper .pending .created-at,.chat-message-wrapper .pending .status-content.media-body{color:var(--faint)}.chat-message-wrapper .error .created-at,.chat-message-wrapper .error .status-content.media-body{color:red;color:var(--badgeNotification,red)}.chat-message-wrapper .chat-message-inner{align-items:flex-start;display:flex;flex-direction:column;max-width:80%;min-width:10em;width:100%}.chat-message-wrapper .outgoing{align-content:end;display:flex;flex-flow:row wrap;justify-content:flex-end}.chat-message-wrapper .outgoing a{color:var(--chatMessageOutgoingLink,#d8a070)}.chat-message-wrapper .outgoing .status{background-color:var(--chatMessageOutgoingBg,#151e2a);border:1px solid var(--chatMessageOutgoingBorder,--lightBg);color:var(--chatMessageOutgoingText,#b9b9ba)}.chat-message-wrapper .outgoing .chat-message-inner{align-items:flex-end}.chat-message-wrapper .outgoing .chat-message-menu{right:.4rem}.chat-message-wrapper .incoming a{color:var(--chatMessageIncomingLink,#d8a070)}.chat-message-wrapper .incoming .status{background-color:var(--chatMessageIncomingBg,#121a24);border:1px solid var(--chatMessageIncomingBorder,--border)}.chat-message-wrapper .incoming .created-at a,.chat-message-wrapper .incoming .status{color:var(--chatMessageIncomingText,#b9b9ba)}.chat-message-wrapper .incoming .chat-message-menu{left:.4rem}.chat-message-wrapper .chat-message-inner.with-media,.chat-message-wrapper .chat-message-inner.with-media .status{width:100%}.chat-message-wrapper .visible{opacity:1}.chat-message-date-separator{color:#b9b9ba;color:var(--faintedText,#b9b9ba);font-size:.9em;margin:1.4em 0;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}.chat-view{display:flex;height:100%}.chat-view .chat-view-inner{display:flex;height:auto;overflow:visible;width:100%}.chat-view .chat-view-body{background-color:var(--chatBg,#121a24);border-radius:10px 10px 0 0;border-radius:var(--panelRadius,10px) var(--panelRadius,10px) 0 0;box-sizing:border-box;display:flex;flex-direction:column;margin:0;min-height:calc(100vh - var(--navbar-height));overflow:visible;width:100%}.chat-view .chat-view-body:after{border-radius:0}.chat-view .message-list{display:flex;flex-direction:column;height:100%;justify-content:end;padding:0 .8em}.chat-view .footer{background-color:#121a24;background-color:var(--bg,#121a24);bottom:0;position:sticky;z-index:1}.chat-view .chat-view-heading{grid-template-columns:auto minmax(50%,1fr)}.chat-view .go-back-button{align-self:start;height:100%;line-height:1;text-align:center;width:var(--__panel-heading-height-inner)}.chat-view .jump-to-bottom-button{align-items:center;background-color:#182230;background-color:var(--btn,#182230);border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.3),0 2px 4px rgba(0,0,0,.3);cursor:pointer;display:flex;height:2.5em;justify-content:center;opacity:0;position:absolute;right:1.3em;top:-3.2em;transition:all .35s;transition-timing-function:cubic-bezier(0,1,.5,1);visibility:hidden;width:2.5em;z-index:10}.chat-view .jump-to-bottom-button.visible{opacity:1;visibility:visible}.chat-view .jump-to-bottom-button i{color:#b9b9ba;color:var(--text,#b9b9ba);font-size:1em}.chat-view .jump-to-bottom-button .unread-message-count{border-radius:50px;font-size:.8em;left:50%;margin-top:-1rem;padding:.1em;position:absolute}.chat-view .jump-to-bottom-button .chat-loading-error{align-items:flex-end;display:flex;height:100%;width:100%}.chat-view .jump-to-bottom-button .chat-loading-error .error{width:100%}.follow-card-content-container{display:flex;flex-flow:row wrap;flex-shrink:0;justify-content:space-between;line-height:1.5em}.follow-card-button{margin-left:1em;margin-top:.5em;padding:0 1.5em}.follow-card-follow-button{margin-left:auto;margin-top:.5em;width:10em}.with-load-more-footer{border-top:1px solid #222;border-top-color:var(--border,#222);padding:10px;text-align:center}.with-load-more-footer .error{font-size:1rem}.with-load-more-footer a{cursor:pointer}.user-profile{--currentPanelStack:1;flex:2;flex-basis:500px}.user-profile .user-birthday{margin:0 .75em .5em}.user-profile .user-profile-fields{margin:0 .5em}.user-profile .user-profile-fields img{max-height:400px;max-width:100%;-o-object-fit:contain;object-fit:contain;vertical-align:middle}.user-profile .user-profile-fields img.emoji{height:18px;width:18px}.user-profile .user-profile-fields .user-profile-field{border:1px solid var(--border,#222);border-radius:4px;border-radius:var(--inputRadius,4px);display:flex;margin:.25em}.user-profile .user-profile-fields .user-profile-field .user-profile-field-name{border-right:1px solid var(--border,#222);color:var(--lightText);flex:0 1 30%;font-weight:500;min-width:120px;text-align:right}.user-profile .user-profile-fields .user-profile-field .user-profile-field-value{color:var(--text);flex:1 1 70%;margin:0 0 0 .25em}.user-profile .user-profile-fields .user-profile-field .user-profile-field-name,.user-profile .user-profile-fields .user-profile-field .user-profile-field-value{box-sizing:border-box;line-height:1.3;overflow:hidden;padding:.5em 1.5em;text-overflow:ellipsis;white-space:nowrap}.user-profile .userlist-placeholder{align-items:middle;display:flex;justify-content:center;padding:2em}.user-profile-placeholder .panel-body{align-items:middle;display:flex;justify-content:center;padding:7em}.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;flex:1 1 auto;justify-content:center;text-align:center}}.search-result{border-bottom:1px solid;border-color:#222;border-color:var(--border,#222);box-sizing:border-box}.search-result-footer{background-color:#182230;background-color:var(--panel,#182230);border-color:var(--border,#222);border-style:solid;border-width:1px 0 0;padding:10px}.search-input-container{display:flex;justify-content:center;padding:.8rem}.search-input-container .search-input{box-sizing:border-box;font-size:1rem;line-height:1.125rem;padding:.5rem;width:100%}.search-input-container .search-button{margin-left:.5em}.loading-icon{padding:1em}.trend{align-items:center;display:flex}.trend .hashtag{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trend .count,.trend .hashtag{color:#b9b9ba;color:var(--text,#b9b9ba)}.trend .count{flex:0 0 auto;font-size:1.5rem;font-weight:500;line-height:2.25rem;text-align:center;width:2rem}.more-statuses-button{height:3.5em;line-height:3.5em}.interface-language-switcher .language-select{margin-right:1em}.registration-form{display:flex;flex-direction:column;margin:.6em}.registration-form .container{display:flex;flex-direction:row}.registration-form .container>*{min-width:0}.registration-form .terms-of-service{flex:0 1 50%;margin:.8em}.registration-form .text-fields{display:flex;flex:1 0;flex-direction:column;margin-top:.6em}.registration-form textarea{min-height:100px;resize:vertical}.registration-form .form-group{display:flex;flex-direction:column;line-height:2;margin-bottom:1em;padding:.3em 0}.registration-form .form-group--error{animation-duration:.6s;animation-name:shakeError;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:.85em}.registration-form .form-error ul{list-style:none;margin-top:0;padding:0 0 0 5px}.registration-form .form-error ul li:before{content:"• "}.registration-form form textarea{line-height:16px;resize:vertical}.registration-form .captcha{margin-bottom:.4em;max-width:350px}.registration-form .btn{height:2em;margin-top:.6em}.registration-form .error{text-align:center}@media (max-width:800px){.registration-form .container{flex-direction:column-reverse}}.password-reset-form{align-items:center;display:flex;flex-direction:column;margin:.6em}.password-reset-form .container{display:flex;flex:1 0;flex-direction:column;margin-top:.6em;max-width:18rem}.password-reset-form .container>*{min-width:0}.password-reset-form .form-group{display:flex;flex-direction:column;line-height:1.85em;margin-bottom:1em;padding:.3em 0}.password-reset-form .error{animation-duration:.4s;animation-name:shakeError;animation-timing-function:ease-in-out;text-align:center}.password-reset-form .alert{margin:.3em 0 1em;padding:.5em}.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 .dismiss{cursor:pointer}.follow-request-card-content-container{display:flex;flex-flow:row wrap}.follow-request-card-content-container button{flex:1 1;margin-right:.5em;margin-top:.5em;max-width:12em;min-width:8em}.follow-request-card-content-container button:last-child{margin-right:0}.tos-content{margin:1em}.staff-group{padding-left:1em;padding-top:1em}.staff-group .basic-user-card{padding-left:0}.mrf-section{margin:1em}.mrf-section table{padding-bottom:20px;padding-left:10px;text-align:left;width:100%}.mrf-section table td,.mrf-section table th{max-width:360px;overflow:hidden;vertical-align:text-top;width:180px}.mrf-section table td+td,.mrf-section table th+th{width:auto}.list-card{display:flex}.list-name{flex-grow:1}.button-list-edit,.list-name{color:#d8a070;color:var(--link,#d8a070);margin:0;padding:1em}.button-list-edit:hover,.list-name:hover{--faint:var(--selectedMenuFaintText,$fallback--faint);--faintLink:var(--selectedMenuFaintLink,$fallback--faint);--lightText:var(--selectedMenuLightText,$fallback--lightText);background-color:#151e2a;background-color:var(--selectedMenu,#151e2a);color:#d8a070;color:var(--selectedMenuText,#d8a070)}.Lists .new-list-button{padding:0 .5em}.ListsUserSearch .input-wrap{display:flex;margin:.7em .5em}.ListsUserSearch .input-wrap input{width:100%}.ListsUserSearch .search-icon{margin-right:.3em}.panel-loading{align-items:center;color:#b9b9ba;color:var(--text,#b9b9ba);display:flex;font-size:2em;height:100%;justify-content:center}.panel-loading .loading-text svg{color:#b9b9ba;color:var(--text,#b9b9ba);line-height:0;vertical-align:middle}.ListEdit{--panel-body-padding:0.5em;display:flex;flex-direction:column;height:calc(100vh - var(--navbar-height));overflow:hidden}.ListEdit .list-edit-heading{grid-template-columns:auto minmax(50%,1fr)}.ListEdit .panel-body{display:flex;flex:1;flex-direction:column;overflow:hidden}.ListEdit .list-member-management{flex:1 0 auto}.ListEdit .search-icon{margin-right:.3em}.ListEdit .users-list{overflow-y:auto;padding-bottom:.7rem}.ListEdit .members-list,.ListEdit .search-list{flex-direction:column;min-height:0;overflow:hidden}.ListEdit .go-back-button{align-self:start;height:100%;line-height:1;text-align:center;width:var(--__panel-heading-height-inner)}.ListEdit .btn{margin:0 .5em}.ListEdit .panel-footer{grid-template-columns:minmax(10%,1fr)}.ListEdit .panel-footer .footer-button{min-width:9em}.announcement-editor{align-items:stretch;display:flex;flex-direction:column}.announcement-editor .announcement-metadata{margin-top:.5em}.announcement-editor .post-textarea{box-sizing:content-box;height:10em;overflow:none;resize:vertical}.announcement{border-bottom:1px solid var(--border,#222);border-radius:0;padding:var(--status-margin,.75em)}.announcement .body,.announcement .heading{margin-bottom:var(--status-margin,.75em)}.announcement .footer,.announcement .footer .times{display:flex;flex-direction:column}.announcement .footer .actions{display:flex;flex-direction:row;justify-content:space-evenly}.announcement .footer .actions .btn{flex:1;margin:1em;max-width:10em}.announcements-page .post-form{padding:var(--status-margin,.75em)}.announcements-page .post-form .body,.announcements-page .post-form .heading{margin-bottom:var(--status-margin,.75em)}.announcements-page .post-form .post-button{min-width:10em}
-/*# sourceMappingURL=app.c18a2c80794a1b699a61.css.map*/ \ No newline at end of file
+.modal-view{align-items:center;animation-duration:.2s;animation-name:modal-background-fadein;bottom:0;display:flex;justify-content:center;left:0;opacity:0;overflow:auto;pointer-events:none;position:fixed;right:0;top:0;z-index:var(--ZI_modals)}.modal-view>*{pointer-events:auto}.modal-view.modal-background{background-color:rgba(0,0,0,.5);pointer-events:auto}.modal-view.open{opacity:1}@keyframes modal-background-fadein{0%{background-color:transparent}to{background-color:rgba(0,0,0,.5)}}.vue-recycle-scroller{position:relative}.vue-recycle-scroller.direction-vertical:not(.page-mode){overflow-y:auto}.vue-recycle-scroller.direction-horizontal:not(.page-mode){overflow-x:auto}.vue-recycle-scroller.direction-horizontal{display:-webkit-box;display:-ms-flexbox;display:flex}.vue-recycle-scroller__slot{-webkit-box-flex:1;-ms-flex:auto 0 0px;flex:auto 0 0}.vue-recycle-scroller__item-wrapper{-webkit-box-flex:1;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex:1;flex:1;overflow:hidden;position:relative}.vue-recycle-scroller.ready .vue-recycle-scroller__item-view{left:0;position:absolute;top:0;will-change:transform}.vue-recycle-scroller.direction-vertical .vue-recycle-scroller__item-wrapper{width:100%}.vue-recycle-scroller.direction-horizontal .vue-recycle-scroller__item-wrapper{height:100%}.vue-recycle-scroller.ready.direction-vertical .vue-recycle-scroller__item-view{width:100%}.vue-recycle-scroller.ready.direction-horizontal .vue-recycle-scroller__item-view{height:100%}.resize-observer[data-v-b329ee4c]{background-color:transparent;border:none;opacity:0}.resize-observer[data-v-b329ee4c],.resize-observer[data-v-b329ee4c] object{display:block;height:100%;left:0;overflow:hidden;pointer-events:none;position:absolute;top:0;width:100%;z-index:-1}.login-form{display:flex;flex-direction:column;padding:.6em}.login-form .btn{min-height:2em;width:10em}.login-form .register{flex:1 1}.login-form .login-bottom{align-items:center;display:flex;flex-direction:row;justify-content:space-between;margin-top:1em}.login-form .form-group{display:flex;flex-direction:column;line-height:24px;padding:.3em .5em .6em}.login-form .form-bottom{display:flex;height:32px;padding:.5em}.login-form .form-bottom button{width:10em}.login-form .form-bottom p{display:flex;margin:.35em;padding:.35em}.login-form .error{animation-duration:.4s;animation-name:shakeError;animation-timing-function:ease-in-out;text-align:center}.media-upload .hidden-input-file{display:none}label.media-upload{cursor:pointer}.ScopeSelector .scope{cursor:pointer;display:inline-block;min-height:1.3em;min-width:1.3em;text-align:center}.ScopeSelector .scope.selected svg{color:#b9b9ba;color:var(--lightText,#b9b9ba)}.checkbox{display:inline-block;min-height:1.2em;position:relative}.checkbox-indicator{padding-left:1.2em;position:relative}.checkbox-indicator:before{background-color:#182230;background-color:var(--input,#182230);border-radius:2px;border-radius:var(--checkboxRadius,2px);box-shadow:inset 0 0 2px #000;box-shadow:var(--inputShadow);box-sizing:border-box;color:transparent;content:"✓";display:block;font-size:1.1em;height:1.1em;line-height:1.1em;overflow:hidden;position:absolute;right:0;text-align:center;top:0;transition:color .2s;vertical-align:top;width:1.1em}.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]:checked+.checkbox-indicator:before{color:#b9b9ba;color:var(--inputText,#b9b9ba)}.checkbox input[type=checkbox]:indeterminate+.checkbox-indicator:before{color:#b9b9ba;color:var(--inputText,#b9b9ba);content:"–"}.checkbox.indeterminate-fix input[type=checkbox]+.checkbox-indicator:before{content:"–"}.checkbox>span{margin-left:.5em}.popover-trigger-button{display:inline-block}.popover{box-shadow:2px 2px 3px rgba(0,0,0,.5);box-shadow:var(--popupShadow);max-width:calc(100vw - 20px);min-width:0;position:fixed;z-index:var(--ZI_popover_override,var(--ZI_popovers))}.popover-default{--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);background-color:#121a24;background-color:var(--popover,#121a24);border-radius:4px;border-radius:var(--btnRadius,4px);color:#b9b9ba;color:var(--popoverText,#b9b9ba)}.popover-default:after{bottom:0;box-shadow:1px 1px 4px rgba(0,0,0,.6);box-shadow:var(--panelShadow);content:"";left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:3}.dropdown-menu{display:block;font-size:1em;list-style:none;max-width:100vw;padding:.5rem 0;text-align:left;white-space:nowrap;z-index:var(--ZI_popover_override,var(--ZI_popovers))}.dropdown-menu .dropdown-divider{border-top:1px solid #222;border-top:1px solid var(--border,#222);height:0;margin:.5rem 0;overflow:hidden}.dropdown-menu .dropdown-item{--btnText:var(--popoverText,$fallback--text);background-color:transparent;border:none;border-radius:0;box-shadow:none;box-sizing:border-box;clear:both;display:block;font-weight:400;height:100%;line-height:21px;overflow:hidden;padding:.5em .75em;text-align:inherit;white-space:nowrap;width:100%}.dropdown-menu .dropdown-item-icon svg{color:var(--menuPopoverIcon,#666);margin-right:.75rem;width:22px}.dropdown-menu .dropdown-item.-has-submenu .chevron-icon{margin-left:2rem;margin-right:.25rem}.dropdown-menu .dropdown-item:active,.dropdown-menu .dropdown-item:hover{--btnText:var(--selectedMenuPopoverText,$fallback--link);--faint:var(--selectedMenuPopoverFaintText,$fallback--faint);--faintLink:var(--selectedMenuPopoverFaintLink,$fallback--faint);--lightText:var(--selectedMenuPopoverLightText,$fallback--lightText);--icon:var(--selectedMenuPopoverIcon,$fallback--icon);background-color:#151e2a;background-color:var(--selectedMenuPopover,#151e2a);box-shadow:none}.dropdown-menu .dropdown-item:active svg,.dropdown-menu .dropdown-item:hover svg{--icon:var(--selectedMenuPopoverIcon,$fallback--icon);color:var(--selectedMenuPopoverIcon,#666)}.dropdown-menu .dropdown-item .menu-checkbox{background-color:#182230;background-color:var(--input,#182230);border-radius:0;box-shadow:inset 0 0 2px #000;box-shadow:var(--inputShadow);display:inline-block;line-height:22px;margin-right:.75em;max-height:22px;max-width:22px;min-height:22px;min-width:22px;text-align:center;vertical-align:middle}.dropdown-menu .dropdown-item .menu-checkbox.menu-checkbox-checked:after{content:"✓";font-size:1.25em}.dropdown-menu .dropdown-item .menu-checkbox.-radio{border-radius:9999px}.dropdown-menu .dropdown-item .menu-checkbox.-radio.menu-checkbox-checked:after{content:"•";font-size:2em}.dropdown-menu .button-default.dropdown-item,.dropdown-menu .button-default.dropdown-item i[class*=icon-]{color:#b9b9ba;color:var(--btnText,#b9b9ba)}.dropdown-menu .button-default.dropdown-item:active{background-color:#151e2a;background-color:var(--selectedMenuPopover,#151e2a);color:#d8a070;color:var(--selectedMenuPopoverText,#d8a070)}.dropdown-menu .button-default.dropdown-item:disabled{color:#b9b9ba;color:var(--btnDisabledText,#b9b9ba)}.dropdown-menu .button-default.dropdown-item.toggled{color:#b9b9ba;color:var(--btnToggledText,#b9b9ba)}.still-image{align-items:center;display:inline-flex;line-height:0;overflow:hidden;position:relative}.still-image canvas{bottom:0;left:0;position:absolute;right:0;top:0;visibility:var(--_still-image-canvas-visibility,visible)}.still-image canvas,.still-image img{height:100%;-o-object-fit:contain;object-fit:contain;width:100%}.still-image.animated:before{zoom:var(--_still_image-label-scale,1);background:hsla(0,0%,50%,.5);border-radius:5px;border-radius:var(--tooltipRadius,5px);color:#fff;content:"gif";display:block;font-size:.7em;left:.5em;line-height:1;padding:2px 4px;position:absolute;top:.5em;visibility:var(--_still-image-label-visibility,visible);z-index:2}.still-image.animated:hover canvas{display:none}.still-image.animated:hover:before{visibility:var(--_still-image-label-visibility,hidden)}.still-image.animated img{visibility:var(--_still-image-img-visibility,hidden)}.still-image.animated:hover img{visibility:visible}.emoji-picker{--faint:var(--popoverFaintText,$fallback--faint);--faintLink:var(--popoverFaintLink,$fallback--faint);--lightText:var(--popoverLightText,$fallback--lightText);--icon:var(--popoverIcon,$fallback--icon);background-color:#121a24;background-color:var(--popover,#121a24);color:#d8a070;color:var(--popoverText,#d8a070);display:flex;flex-direction:column;max-width:calc(100vw - 20px);width:25em}.emoji-picker-header-image{align-items:center;display:inline-flex;height:32px;justify-content:center;max-height:32px;max-width:32px;width:32px}.emoji-picker-header-image .still-image{height:100%;max-height:100%;max-width:100%;-o-object-fit:contain;object-fit:contain;width:100%}.emoji-picker .keep-open,.emoji-picker .too-many-emoji{line-height:normal;padding:7px}.emoji-picker .too-many-emoji{display:flex;flex-direction:column}.emoji-picker .keep-open-label{display:flex;padding:0 7px}.emoji-picker .heading{display:flex;padding:10px 7px 5px}.emoji-picker .content{display:flex;flex:1 1 auto;flex-direction:column;min-height:0}.emoji-picker .emoji-tabs{display:flex;flex-flow:row nowrap;flex-grow:1;overflow-x:auto}.emoji-picker .additional-tabs{border-left:1px solid #666;border-left-color:var(--icon,#666);display:flex;flex:0 0 auto;padding-left:7px}.emoji-picker .additional-tabs,.emoji-picker .emoji-tabs{align-content:center;display:flex;flex-basis:auto}.emoji-picker .additional-tabs-item,.emoji-picker .emoji-tabs-item{align-items:center;cursor:pointer;display:flex;font-size:1.85em;height:32px;max-height:32px;max-width:32px;padding:0 7px;width:32px}.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 svg,.emoji-picker .emoji-tabs-item.active svg{color:#b9b9ba;color:var(--lightText,#b9b9ba)}.emoji-picker .sticker-picker{flex:1 1 auto}.emoji-picker .emoji-content,.emoji-picker .stickers-content{display:flex;flex:1 1 auto;flex-direction:column;min-height:0}.emoji-picker .emoji-content.hidden,.emoji-picker .stickers-content.hidden{opacity:0;pointer-events:none;position:absolute}.emoji-picker .emoji-search{flex:0 0 auto;padding:5px}.emoji-picker .emoji-search input{width:100%}.emoji-picker .emoji-groups{flex:1 1 1px;height:100%;-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);mask-composite:xor;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-size:100% 20px,100% 20px,auto;mask-size:100% 20px,100% 20px,auto;min-height:200px;overflow:auto;position:relative;transition:-webkit-mask-size .15s;transition:mask-size .15s;transition:mask-size .15s,-webkit-mask-size .15s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.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{align-items:center;display:flex;flex-wrap:wrap;justify-content:left;padding-left:5px}.emoji-picker .emoji-group-title{font-size:.85em;margin:0;width:100%}.emoji-picker .emoji-group-title.disabled{display:none}.emoji-picker .emoji-item{align-items:center;box-sizing:border-box;cursor:pointer;display:flex;height:32px;justify-content:center;line-height:32px;margin:4px;width:32px}.emoji-picker .emoji-item .emoji-picker-emoji.-custom{max-height:100%;max-width:100%;-o-object-fit:contain;object-fit:contain}.emoji-picker .emoji-item .emoji-picker-emoji.-unicode{font-size:24px;overflow:hidden}.emoji-input{display:flex;flex-direction:column;position:relative}.emoji-input .emoji-picker-icon{cursor:pointer;font-size:1.3em;line-height:24px;margin:.2em .25em;position:absolute;right:0;top:0}.emoji-input .emoji-picker-icon:hover i{color:#b9b9ba;color:var(--text,#b9b9ba)}.emoji-input .emoji-picker-panel{margin-top:2px;position:absolute;z-index:20}.emoji-input .emoji-picker-panel.hide{display:none}.emoji-input input,.emoji-input textarea{flex:1 0 auto}.emoji-input.with-picker input{padding-right:30px}.emoji-input .hidden-overlay{bottom:0;color:red;left:0;opacity:0;overflow:hidden;pointer-events:none;position:absolute;right:0;top:0}.emoji-input .hidden-overlay .caret{border:1px solid red;margin-right:calc(-1ch - 1px);width:0}.autocomplete-panel{position:absolute}.autocomplete-item{border-bottom:1px solid rgba(0,0,0,.4);cursor:pointer;display:flex;height:32px;padding:.2em .4em}.autocomplete-item .image{font-size:32px;height:32px;line-height:32px;margin-right:4px;text-align:center;width:32px}.autocomplete-item .image img{height:32px;-o-object-fit:contain;object-fit:contain;width:32px}.autocomplete-item .label{display:flex;flex-direction:column;justify-content:center;margin:0 .1em 0 .2em}.autocomplete-item .label .displayText{line-height:1.5}.autocomplete-item .label .detailText{font-size:9px;line-height:9px}.autocomplete-item.highlighted{--faint:var(--selectedMenuPopoverFaintText,$fallback--faint);--faintLink:var(--selectedMenuPopoverFaintLink,$fallback--faint);--lightText:var(--selectedMenuPopoverLightText,$fallback--lightText);--icon:var(--selectedMenuPopoverIcon,$fallback--icon);background-color:#182230;background-color:var(--selectedMenuPopover,#182230);color:var(--selectedMenuPopoverText,#b9b9ba)}label.Select{padding:0}label.Select select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:none;color:#b9b9ba;color:var(--inputText,--text,#b9b9ba);font-family:sans-serif;font-family:var(--inputFont,sans-serif);font-size:1em;height:2em;line-height:16px;margin:0;padding:0 2em 0 .2em;width:100%;z-index:1}label.Select .select-down-icon{bottom:0;color:#b9b9ba;color:var(--inputText,#b9b9ba);height:100%;line-height:2;pointer-events:none;position:absolute;right:5px;top:0;width:.875em;z-index:0}.poll-form{display:flex;flex-direction:column;padding:0 .5em .5em}.poll-form .add-option{align-self:flex-start;padding-left:.1em;padding-top:.25em}.poll-form .poll-option{align-items:baseline;display:flex;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 .delete-option{margin-left:-1.5em;width:1.5em;z-index:1}.poll-form .poll-type-expiry{display:flex;margin-top:.5em;width:100%}.poll-form .poll-type{flex:1 1 60%;margin-right:.75em}.poll-form .poll-type .poll-type-select{padding-right:.75em}.poll-form .poll-expiry{display:flex}.poll-form .poll-expiry .expiry-amount{text-align:right;width:3em}.Flash{display:inline-block;position:relative}.Flash,.Flash .placeholder,.Flash .player{height:100%;width:100%}.Flash .placeholder{align-items:center;background:var(--bg);color:var(--link);display:flex;justify-content:center}.Flash .hider{top:0}.Flash .label{word-wrap:normal;flex:1 1 0;line-height:1.2;text-align:center;white-space:normal}.Flash .hidden{display:none;visibility:"hidden"}.Attachment{align-self:flex-start;border:1px solid #222;border-color:var(--border,#222);border-radius:10px;border-radius:var(--attachmentRadius,10px);display:inline-flex;flex-direction:column;height:100%;line-height:0;position:relative}.Attachment .attachment-wrapper{flex:1 1 auto;height:100%;overflow:hidden;position:relative}.Attachment .description-container{display:flex;flex:0 1 0;padding-top:.5em;z-index:1}.Attachment .description-container p{flex:1;line-height:1.5;margin:0;overflow:hidden;padding:.5em;text-align:center;text-overflow:ellipsis;white-space:nowrap}.Attachment .description-container.-static{background:var(--popover);bottom:0;box-shadow:var(--popupShadow);left:0;padding-top:0;position:absolute;right:0}.Attachment .description-field{flex:1;min-width:0}.Attachment .audio-container,.Attachment .flash-container,.Attachment .image-container,.Attachment .oembed-container,.Attachment .placeholder-container,.Attachment .video-container{display:flex;height:100%;justify-content:center;width:100%}.Attachment .image-container .image{height:100%;width:100%}.Attachment .flash-container .flash,.Attachment .flash-container video,.Attachment .video-container .flash,.Attachment .video-container video{align-self:center;height:100%;-o-object-fit:contain;object-fit:contain;width:100%}.Attachment .audio-container{align-items:flex-end;display:flex}.Attachment .audio-container audio{height:100%;width:100%}.Attachment .placeholder-container{align-items:center;display:flex;flex-direction:column;justify-content:center;padding-top:.5em}.Attachment .play-icon{color:hsla(0,0%,100%,.75);font-size:64px;left:calc(50% - 32px);position:absolute;text-shadow:0 0 2px rgba(0,0,0,.4);top:calc(50% - 32px)}.Attachment .play-icon:before{margin:0}.Attachment .attachment-buttons{display:flex;margin-right:.5em;margin-top:.5em;position:absolute;right:0;top:0;z-index:1}.Attachment .attachment-buttons .attachment-button{background:hsla(0,0%,90%,.7);border-radius:5px;border-radius:var(--tooltipRadius,5px);font-size:1.25em;height:2em;margin-left:.5em;padding:0;text-align:center;width:2em}.Attachment .attachment-buttons .attachment-button .svg-inline--fa{color:rgba(0,0,0,.6)}.Attachment .attachment-buttons .attachment-button:hover .svg-inline--fa{color:rgba(0,0,0,.9)}.Attachment.-contain-fit canvas,.Attachment.-contain-fit img{-o-object-fit:contain;object-fit:contain}.Attachment.-cover-fit canvas,.Attachment.-cover-fit img{-o-object-fit:cover;object-fit:cover}.Attachment .oembed-container{display:flex;flex:1 0 100%;line-height:1.2em;margin-right:15px;width:100%}.Attachment .oembed-container img{width:100%}.Attachment .oembed-container .image{flex:1}.Attachment .oembed-container .image img{border:0;border-radius:5px;height:100%;-o-object-fit:cover;object-fit:cover}.Attachment .oembed-container .text{flex:2;margin:8px;word-break:break-all}.Attachment .oembed-container .text h1{font-size:1rem;margin:0}.Attachment.-size-small .play-icon{zoom:.5;opacity:.7}.Attachment.-size-small .attachment-buttons{zoom:.7;opacity:.5}.Attachment.-editable{padding:.5em}.Attachment.-editable .attachment-buttons,.Attachment.-editable .description-container{margin:0}.Attachment.-placeholder{color:#d8a070;color:var(--postLink,#d8a070);display:inline-block;height:auto;line-height:1.5;overflow:hidden;white-space:nowrap}.Attachment.-placeholder:not(.-editable){border:none}.Attachment.-placeholder.-editable{align-items:baseline;display:flex;flex-direction:row}.Attachment.-placeholder.-editable .attachment-buttons,.Attachment.-placeholder.-editable .description-container{margin:0;padding:0;position:relative}.Attachment.-placeholder.-editable .description-container{flex:1;padding-left:.5em}.Attachment.-placeholder.-editable .attachment-buttons{align-self:center;order:99}.Attachment.-placeholder a{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis}.Attachment.-placeholder svg{color:inherit}.Attachment.-loading{cursor:progress}.Attachment.-compact .placeholder-container{padding-bottom:.5em}.Gallery .gallery-rows{display:flex;flex-direction:column}.Gallery .gallery-row{flex-grow:1;height:0;position:relative;width:100%}.Gallery .gallery-row .gallery-row-inner{align-content:stretch;bottom:0;display:flex;flex-flow:row wrap;left:0;position:absolute;right:0;top:0}.Gallery .gallery-row .gallery-row-inner .gallery-item{box-sizing:border-box;flex-grow:1;height:100%;margin:0 .5em 0 0;min-width:2em}.Gallery .gallery-row .gallery-row-inner .gallery-item:last-child{margin:0}.Gallery .gallery-row .gallery-row-inner.-grid{grid-gap:.5em;display:grid;grid-template-columns:repeat(auto-fill,minmax(15em,1fr));height:auto;position:relative;width:100%}.Gallery .gallery-row .gallery-row-inner.-grid .gallery-item{height:200px;margin:0}.Gallery .gallery-row.-grid,.Gallery .gallery-row.-minimal{height:auto}.Gallery .gallery-row.-grid .gallery-row-inner,.Gallery .gallery-row.-minimal .gallery-row-inner{position:relative}.Gallery .gallery-row:not(:first-child){margin-top:.5em}.Gallery.-long .gallery-rows{-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);mask-composite:xor;-webkit-mask-composite:xor;mask-composite:exclude;max-height:25em;overflow:hidden}.Gallery .many-attachments-text{line-height:2;text-align:center}.Gallery .many-attachments-buttons{display:flex}.Gallery .many-attachments-button{display:flex;flex:1;justify-content:center;line-height:2}.Gallery .many-attachments-button button{padding:0 2em}.Avatar{--_avatarShadowBox:var(--avatarStatusShadow);--_avatarShadowFilter:var(--avatarStatusShadowFilter);--_avatarShadowInset:var(--avatarStatusShadowInset);--_still-image-label-visibility:hidden;display:inline-block;height:48px;position:relative;width:48px}.Avatar.-compact{border-radius:10px;border-radius:var(--avatarAltRadius,10px);height:32px;width:32px}.Avatar .avatar{border-radius:4px;border-radius:var(--avatarRadius,4px);box-shadow:var(--_avatarShadowBox);height:100%;width:100%}.Avatar .avatar.-better-shadow{box-shadow:var(--_avatarShadowInset);filter:var(--_avatarShadowFilter)}.Avatar .avatar.-animated:before{display:none}.Avatar .avatar.-compact{border-radius:10px;border-radius:var(--avatarAltRadius,10px)}.Avatar .avatar.-placeholder{background-color:#182230;background-color:var(--fg,#182230)}.Avatar img{height:100%;width:100%}.Avatar .bot-indicator{background:hsla(0,0%,50%,.5);border-radius:var(--tooltipRadius);bottom:0;color:#fff;margin:-.2em;padding:.2em;position:absolute;right:0}.MentionLink{color:var(--link);display:inline;position:relative;white-space:normal;word-break:normal}.MentionLink .new,.MentionLink .original{border-radius:2px;display:inline}.MentionLink .mention-avatar{border-radius:var(--avatarAltRadius,10px);height:1.5em;margin-right:.2em;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;width:1.5em}.MentionLink .full{word-wrap:normal;display:inline-block;height:100%;left:0;margin-top:.25em;opacity:0;padding:.5em;pointer-events:none;position:absolute;top:100%;transition:opacity .2s ease;-webkit-user-select:all;-moz-user-select:all;user-select:all;white-space:nowrap;z-index:1}.MentionLink .short.-with-tooltip,.MentionLink .you{-webkit-user-select:none;-moz-user-select:none;user-select:none}.MentionLink .full,.MentionLink .short{white-space:nowrap}.MentionLink .shortName{white-space:normal}.MentionLink .new.-you .shortName{font-weight:600}.MentionLink .new.-has-selection{background-color:var(--alertNeutral,#182230);color:var(--alertNeutralText,#b9b9ba)}.MentionLink .new .at{color:var(--link);display:inline-block;line-height:1;margin:0;opacity:.8;padding:0 .1em;vertical-align:-25%}.MentionLink .new.-striped .shortName{background-image:repeating-linear-gradient(135deg,var(--____highlight-tintColor),var(--____highlight-tintColor) 5px,var(--____highlight-tintColor2) 5px,var(--____highlight-tintColor2) 10px)}.MentionLink .new.-solid .shortName{background-image:linear-gradient(var(--____highlight-tintColor2),var(--____highlight-tintColor2))}.MentionLink .new.-side .shortName{box-shadow:0 -5px 3px -4px inset var(--____highlight-solidColor)}.MentionLink .serverName.-faded{color:var(--faintLink,#d8a070)}.mention-link-popover{max-height:20rem;max-width:70ch;overflow:hidden}.MentionsLine{word-break:break-all}.MentionsLine .mention-link:not(:first-child):before{content:" "}.MentionsLine .showMoreLess{color:var(--link);margin-left:.5em;white-space:normal}.HashtagLink{color:var(--link);display:inline-block;position:relative;white-space:normal}.RichContent blockquote{border-left:.2em solid var(--faint,hsla(240,1%,73%,.5));font-style:italic;margin:.2em 0 .2em .2em;padding-left:1em}.RichContent pre{overflow:auto}.RichContent code,.RichContent kbd,.RichContent pre,.RichContent samp,.RichContent var{font-family:var(--postCodeFont,monospace)}.RichContent p{margin:0 0 1em}.RichContent p:last-child{margin:0}.RichContent h1{font-size:1.1em;line-height:1.2em;margin:1.4em 0}.RichContent h2{font-size:1.1em;margin:1em 0}.RichContent h3{font-size:1em;margin:1.2em 0}.RichContent h4{margin:1.1em 0}.RichContent .emoji,.RichContent .img{display:inline-block}.RichContent .emoji{height:var(--emoji-size,32px);width:var(--emoji-size,32px)}.RichContent .img,.RichContent video{max-height:400px;max-width:100%;-o-object-fit:contain;object-fit:contain;vertical-align:middle}.poll .votes{display:flex;flex-direction:column;margin:0 0 .5em}.poll .poll-option{margin:.75em .5em}.poll .option-result{color:#b9b9ba;color:var(--lightText,#b9b9ba);display:flex;flex-direction:row;height:100%;position:relative}.poll .option-result-label{align-items:center;display:flex;padding:.1em .25em;word-break:break-word;z-index:1}.poll .result-percentage{flex-shrink:0;width:3.5em}.poll .result-fill{background-color:#151e2a;background-color:var(--poll,#151e2a);border-radius:10px;border-radius:var(--panelRadius,10px);color:#b9b9ba;color:var(--pollText,#b9b9ba);height:100%;left:0;position:absolute;top:0;transition:width .5s}.poll .option-vote{align-items:center;display:flex}.poll input{width:3.5em}.poll .footer{align-items:center;display:flex}.poll.loading *{cursor:progress}.poll .poll-vote-button{margin-right:.5em;padding:0 .5em}.poll .poll-checkbox{display:none}.StatusBody{display:flex;flex-direction:column}.StatusBody .emoji{--_still_image-label-scale:0.5}.StatusBody .attachments{margin-top:.5em}.StatusBody .summary,.StatusBody .text{word-wrap:break-word;font-family:var(--postFont,sans-serif);line-height:var(--post-line-height);overflow-wrap:break-word;white-space:pre-wrap;word-break:break-word}.StatusBody .summary{display:block;font-style:italic;padding-bottom:.5em}.StatusBody .text.-single-line{height:1.4em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.StatusBody .summary-wrapper{border-color:var(--border,#222);border-style:solid;border-width:0 0 1px;flex-grow:0;margin-bottom:.5em}.StatusBody .summary-wrapper.-tall{position:relative}.StatusBody .summary-wrapper.-tall .summary{max-height:2em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.StatusBody .text-wrapper{display:flex;flex-flow:column nowrap}.StatusBody .text-wrapper.-tall-status{height:220px;overflow-x:hidden;overflow-y:hidden;position:relative;z-index:1}.StatusBody .text-wrapper.-tall-status .media-body{-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);mask-composite:xor;-webkit-mask-composite:xor;mask-composite:exclude;min-height:0}.StatusBody .cw-status-hider,.StatusBody .status-unhider,.StatusBody .tall-status-hider,.StatusBody .tall-subject-hider{display:inline-block;text-align:center;width:100%;word-break:break-all}.StatusBody .tall-status-hider{height:70px;line-height:110px;margin-top:150px;position:absolute;z-index:2}.StatusBody .tall-subject-hider{padding-bottom:.5em}.StatusBody .cw-status-hider,.StatusBody .status-unhider{word-break:break-all}.StatusBody .cw-status-hider svg,.StatusBody .status-unhider svg{color:inherit}.StatusBody .greentext{color:#0fa00f;color:var(--postGreentext,#0fa00f)}.StatusBody .cyantext{color:var(--postCyantext,#0095ff)}.StatusBody.-compact{--emoji-size:16px;align-items:top;flex-direction:row}.StatusBody.-compact .attachments,.StatusBody.-compact .body{max-height:3.25em}.StatusBody.-compact .body{flex:5 1 auto;mask-composite:xor;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-image:linear-gradient(180deg,#fff 2em,transparent 3em);mask-image:linear-gradient(180deg,#fff 2em,transparent 3em);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-repeat:repeat-x,repeat;mask-repeat:repeat-x,repeat;-webkit-mask-size:auto 3.5em,auto auto;mask-size:auto 3.5em,auto auto;min-width:5em;overflow:hidden;white-space:normal}.StatusBody.-compact .attachments{flex:1 1 0;height:100%;margin-left:.5em;margin-top:0;min-width:5em}.StatusBody.-compact .summary-wrapper{border:none;display:inline-block;line-height:inherit;margin:0}.StatusBody.-compact .summary-wrapper .summary:after{content:": "}.StatusBody.-compact .text-wrapper{display:inline-block}.link-preview-card{border:1px solid #222;border-color:var(--border,#222);border-radius:10px;border-radius:var(--attachmentRadius,10px);color:#b9b9ba;color:var(--text,#b9b9ba);cursor:pointer;display:flex;flex-direction:row;margin-top:.5em;overflow:hidden}.link-preview-card .card-image{flex-shrink:0;max-width:25%;width:120px}.link-preview-card .card-image img{border-radius:10px;border-radius:var(--attachmentRadius,10px);height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.link-preview-card .card-content{display:flex;flex-direction:column;margin:.5em;max-height:100%}.link-preview-card .card-host{font-size:.85em}.link-preview-card .card-description{line-height:1.2em;margin:.5em 0 0;max-height:calc(3.6em - 1px);overflow:hidden;text-overflow:ellipsis;word-break:break-word}.link-preview-card .nsfw-alert{margin:2em 0}.StatusContent{flex:1;min-width:0}.post-status-form{position:relative}.post-status-form .attachments{margin-bottom:.5em}.post-status-form .form-bottom{display:flex;height:2.5em;justify-content:space-between;padding:.5em}.post-status-form .form-bottom button{width:10em}.post-status-form .form-bottom p{display:flex;margin:.35em;padding:.35em}.post-status-form .form-bottom-left{display:flex;flex:1;margin-right:7px;max-width:10em;padding-right:7px}.post-status-form .preview-heading{display:flex;padding-left:.5em}.post-status-form .preview-toggle{cursor:pointer;flex:1;-webkit-user-select:none;-moz-user-select:none;user-select:none}.post-status-form .preview-toggle:hover{text-decoration:underline}.post-status-form .preview-toggle i,.post-status-form .preview-toggle svg{font-size:.8em;margin-left:.2em;transform:rotate(90deg)}.post-status-form .preview-container{margin-bottom:1em}.post-status-form .preview-error{color:hsla(240,1%,73%,.5);color:var(--faint,hsla(240,1%,73%,.5));font-style:italic}.post-status-form .preview-status{border:1px solid #222;border:1px solid var(--border,#222);border-radius:5px;border-radius:var(--tooltipRadius,5px);margin:0;padding:.5em}.post-status-form .reply-or-quote-selector{margin-bottom:.5em}.post-status-form .text-format .only-format{color:hsla(240,1%,73%,.5);color:var(--faint,hsla(240,1%,73%,.5))}.post-status-form .visibility-tray{align-items:baseline;display:flex;justify-content:space-between;padding-top:5px}.post-status-form .visibility-notice.edit-warning>:first-child{margin-top:0}.post-status-form .visibility-notice.edit-warning>:last-child{margin-bottom:0}.post-status-form .media-upload-icon{justify-content:left;order:1}.post-status-form .emoji-icon{justify-content:center;order:2}.post-status-form .poll-icon{justify-content:right;order:3}.post-status-form .emoji-icon,.post-status-form .media-upload-icon,.post-status-form .poll-icon{align-items:center;display:flex;flex:1;font-size:1.85em;line-height:1.1;padding:0 .1em}.post-status-form .emoji-icon.selected i,.post-status-form .emoji-icon.selected label,.post-status-form .emoji-icon.selected svg,.post-status-form .emoji-icon:hover i,.post-status-form .emoji-icon:hover label,.post-status-form .emoji-icon:hover svg,.post-status-form .media-upload-icon.selected i,.post-status-form .media-upload-icon.selected label,.post-status-form .media-upload-icon.selected svg,.post-status-form .media-upload-icon:hover i,.post-status-form .media-upload-icon:hover label,.post-status-form .media-upload-icon:hover svg,.post-status-form .poll-icon.selected i,.post-status-form .poll-icon.selected label,.post-status-form .poll-icon.selected svg,.post-status-form .poll-icon:hover i,.post-status-form .poll-icon:hover label,.post-status-form .poll-icon:hover svg{color:#b9b9ba;color:var(--lightText,#b9b9ba)}.post-status-form .emoji-icon.disabled i,.post-status-form .emoji-icon.disabled svg,.post-status-form .media-upload-icon.disabled i,.post-status-form .media-upload-icon.disabled svg,.post-status-form .poll-icon.disabled i,.post-status-form .poll-icon.disabled svg{color:#666;color:var(--btnDisabledText,#666);cursor:not-allowed}.post-status-form .emoji-icon.disabled i:hover,.post-status-form .emoji-icon.disabled svg:hover,.post-status-form .media-upload-icon.disabled i:hover,.post-status-form .media-upload-icon.disabled svg:hover,.post-status-form .poll-icon.disabled i:hover,.post-status-form .poll-icon.disabled svg:hover{color:#666;color:var(--btnDisabledText,#666)}.post-status-form .error{text-align:center}.post-status-form .media-upload-wrapper{margin-bottom:.5em;margin-right:.2em;width:18em}.post-status-form .media-upload-wrapper img,.post-status-form .media-upload-wrapper video{max-height:10em;-o-object-fit:contain;object-fit:contain}.post-status-form .media-upload-wrapper .video{max-height:10em}.post-status-form .media-upload-wrapper input{flex:1;width:100%}.post-status-form .status-input-wrapper{display:flex;flex-direction:column;position:relative;width:100%}.post-status-form .btn[disabled]{cursor:not-allowed}.post-status-form form{display:flex;flex-direction:column;margin:.6em;position:relative}.post-status-form .form-group{display:flex;flex-direction:column;line-height:1.85;padding:.25em .5em .5em}.post-status-form .form-post-body{box-sizing:content-box;height:calc(var(--post-line-height)*1em);min-height:calc(var(--post-line-height)*1em);overflow:hidden;padding-bottom:calc(var(--_padding) + var(--post-line-height)*1em);resize:none;transition:min-height .2s .1s}.post-status-form .form-post-body.scrollable-form{overflow-y:auto}.post-status-form .main-input{position:relative}.post-status-form .character-counter{bottom:0;margin:0 .5em;padding:0;position:absolute;right:0}.post-status-form .character-counter.error{color:red;color:var(--cRed,red)}@keyframes fade-in{0%{opacity:0}to{opacity:.6}}@keyframes fade-out{0%{opacity:.6}to{opacity:0}}.post-status-form .drop-indicator{align-items:center;background-color:#121a24;background-color:var(--bg,#121a24);border:2px dashed #b9b9ba;border:2px dashed var(--text,#b9b9ba);border-radius:5px;border-radius:var(--tooltipRadius,5px);color:#b9b9ba;color:var(--text,#b9b9ba);display:flex;font-size:5em;height:100%;justify-content:center;opacity:.6;position:absolute;width:100%}.remote-follow{max-width:220px}.remote-follow .remote-button{min-height:2em;width:100%}.dark-overlay:before{background:rgba(27,31,35,.5);bottom:0;content:" ";left:0;right:0;z-index:2000}.dark-overlay:before,.dialog-modal.panel{cursor:default;display:block;position:fixed;top:0}.dialog-modal.panel{background-color:#121a24;background-color:var(--bg,#121a24);left:50%;margin:15vh auto;max-height:80vh;max-width:90vw;transform:translateX(-50%);z-index:2001}.dialog-modal.panel .dialog-modal-heading .title{text-align:center}.dialog-modal.panel .dialog-modal-content{background-color:#121a24;background-color:var(--bg,#121a24);margin:0;padding:1rem;white-space:normal}.dialog-modal.panel .dialog-modal-footer{background-color:#121a24;background-color:var(--bg,#121a24);border-top:1px solid #222;border-top:1px solid var(--border,#222);display:flex;justify-content:flex-end;margin:0;padding:.5em}.dialog-modal.panel .dialog-modal-footer button{margin-left:.5rem;width:auto}.moderation-tools-popover{height:100%}.moderation-tools-popover .trigger{display:flex!important;height:100%}.moderation-tools-button i,.moderation-tools-button svg{font-size:.8em}.AccountActions .ellipsis-button{margin:-.5em 0;padding:.5em 0;text-align:center;width:2.5em}.AccountActions .ellipsis-button:not(:hover) .icon{color:#b9b9ba;color:var(--lightText,#b9b9ba)}.user-note{display:flex;flex-direction:column}.user-note .heading{align-items:center;display:flex;flex-direction:row;justify-content:space-between;margin-bottom:.75em}.user-note .heading .btn{min-width:95px}.user-note .heading .buttons{display:flex;flex-direction:row;justify-content:right}.user-note .heading .buttons .btn{margin-left:.5em}.user-note .note-text{align-self:stretch}.user-note .note-text.-blank{color:var(--faint,hsla(240,1%,73%,.5));font-style:italic}.user-card{position:relative;z-index:1}.user-card:hover{--_still-image-img-visibility:visible;--_still-image-canvas-visibility:hidden;--_still-image-label-visibility:hidden}.user-card .panel-heading{align-items:stretch;background:transparent;box-shadow:none;flex-direction:column;padding:.5em 0;position:relative;text-align:center}.user-card .panel-body{word-wrap:break-word;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;position:relative}.user-card .background-image{background-color:var(--profileBg);background-size:cover;border-bottom-left-radius:calc(var(--__roundnessBottom, --panelRadius) - 1px);border-bottom-right-radius:calc(var(--__roundnessBottom, --panelRadius) - 1px);border-top-left-radius:calc(var(--__roundnessTop, --panelRadius) - 1px);border-top-right-radius:calc(var(--__roundnessTop, --panelRadius) - 1px);bottom:0;left: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);mask-composite:xor;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-size:100% 60%;mask-size:100% 60%;position:absolute;right:0;top:0;z-index:-2}.user-card .background-image.hide-bio{-webkit-mask-size:100% 40px;mask-size:100% 40px}.user-card-bio{display:block;line-height:1.3;margin:0;padding:1em;text-align:center}.user-card-bio a{color:#d8a070;color:var(--postLink,#d8a070)}.user-card-bio img{max-height:400px;max-width:100%;-o-object-fit:contain;object-fit:contain;vertical-align:middle}.user-card.-rounded-t{--__roundnessTop:var(--panelRadius);--__roundnessBottom:0;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{--__roundnessTop:var(--panelRadius);--__roundnessBottom:var(--panelRadius);border-radius:10px;border-radius:var(--panelRadius,10px)}.user-card.-popover{--__roundnessTop:var(--tooltipRadius);--__roundnessBottom:var(--tooltipRadius);border-radius:5px;border-radius:var(--tooltipRadius,5px)}.user-card.-bordered{border:1px solid #222;border-color:var(--border,#222)}.user-info{padding:0 26px}.user-info,.user-info a{color:#b9b9ba;color:var(--lightText,#b9b9ba)}.user-info a:hover{color:var(--icon)}.user-info .container{align-items:flex-start;display:flex;max-height:56px;min-width:0;padding:16px 0 6px}.user-info .container>*{min-width:0}.user-info .container>a{display:flex;vertical-align:middle}.user-info .container .Avatar{--_avatarShadowBox:var(--avatarShadow);--_avatarShadowFilter:var(--avatarShadowFilter);--_avatarShadowInset:var(--avatarShadowInset);height:56px;-o-object-fit:cover;object-fit:cover;width:56px}.user-info-avatar{cursor:pointer;position:relative}.user-info-avatar.-overlay{align-items:center;background-color:rgba(0,0,0,.3);border-radius:4px;border-radius:var(--avatarRadius,4px);bottom:0;display:flex;justify-content:center;left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .2s ease}.user-info-avatar.-overlay svg{color:#fff}.user-info-avatar:hover .user-info-avatar.-overlay{opacity:1}.user-info .edit-profile-button,.user-info .external-link-button{cursor:pointer;margin:-.5em 0;padding:.5em 0;text-align:center;width:2.5em}.user-info .edit-profile-button:not(:hover) .icon,.user-info .external-link-button:not(:hover) .icon{color:#b9b9ba;color:var(--lightText,#b9b9ba)}.user-info .bottom-line{align-items:baseline;font-size:1.1em;font-weight:light}.user-info .bottom-line .lock-icon{margin-left:.5em}.user-info .bottom-line .user-screen-name{flex:0 1 auto;min-width:1px;overflow:hidden;text-overflow:ellipsis}.user-info .bottom-line .dailyAvg{color:#b9b9ba;color:var(--text,#b9b9ba);flex:0 0 auto;font-size:.7em;margin-left:1em;min-width:1px}.user-info .bottom-line .user-role{background-color:#182230;background-color:var(--alertNeutral,#182230);color:#b9b9ba;color:var(--alertNeutralText,#b9b9ba);flex:none}.user-info .user-summary{--emoji-size:1.7em;display:block;flex:1 1 0;line-height:2em;margin-left:.6em;text-align:left;text-overflow:ellipsis;white-space:nowrap;z-index:1}.user-info .user-summary .bottom-line,.user-info .user-summary .top-line{display:flex}.user-info .user-name{flex:1 1 auto;font-size:1.1em;margin-right:1em;overflow:hidden;text-overflow:ellipsis}.user-info .user-meta{align-items:baseline;display:flex;flex-wrap:wrap;line-height:22px;margin-bottom:.15em}.user-info .user-meta .following{flex:1 0 auto;margin:0 0 .25em;text-align:left}.user-info .user-meta .highlighter{align-self:start;display:flex;flex:0 1 auto;flex-wrap:wrap;margin-right:-.5em}.user-info .user-meta .highlighter .userHighlightCl{flex:1 0 auto;padding:2px 10px}.user-info .user-meta .highlighter .userHighlightSel{flex:1 0 auto;padding-bottom:0;padding-top:0}.user-info .user-meta .highlighter .userHighlightText{flex:1 0 auto;width:70px}.user-info .user-meta .highlighter .userHighlightCl,.user-info .user-meta .highlighter .userHighlightSel,.user-info .user-meta .highlighter .userHighlightText{margin-bottom:.25em;margin-right:.5em;vertical-align:top}.user-info .user-interactions{display:flex;flex-flow:row wrap;margin-right:-.75em;position:relative}.user-info .user-interactions>*{margin:0 .75em .6em 0;min-width:95px;white-space:nowrap}.user-info .user-interactions button{margin:0}.user-info .user-note{margin:0 .75em .6em 0}.sidebar .edit-profile-button{display:none}.user-counts{color:#b9b9ba;color:var(--lightText,#b9b9ba);display:flex;flex-wrap:wrap;justify-content:space-between;line-height:16px;padding:.5em 1.5em 0;text-align:center}.user-count{flex:1 0 auto;margin:0 .5em;padding:.5em 0}.user-count h5{font-size:1em;font-weight:bolder;margin:0 0 .25em}.user-count a{text-decoration:none}.mute-expiry{display:flex;flex-direction:row}.user-panel .signed-in{overflow:visible;z-index:10}.NavigationEntry{align-items:baseline;box-sizing:border-box;color:#d8a070;color:var(--link,#d8a070);display:flex;height:3.5em;line-height:3.5em;padding:0 1em;width:100%}.NavigationEntry .timelines-chevron{margin-right:0}.NavigationEntry .main-link{flex:1}.NavigationEntry .menu-icon{margin-right:.8em}.NavigationEntry .extra-button{text-align:center;width:3em}.NavigationEntry .extra-button:last-child{margin-right:-.8em}.NavigationEntry:hover{--faint:var(--selectedMenuFaintText,$fallback--faint);--faintLink:var(--selectedMenuFaintLink,$fallback--faint);--lightText:var(--selectedMenuLightText,$fallback--lightText);background-color:#151e2a;background-color:var(--selectedMenu,#151e2a);color:#d8a070;color:var(--selectedMenuText,#d8a070)}.NavigationEntry:hover .menu-icon{--icon:var(--text,$fallback--icon)}.NavigationEntry.-active{--faint:var(--selectedMenuFaintText,$fallback--faint);--faintLink:var(--selectedMenuFaintLink,$fallback--faint);--lightText:var(--selectedMenuLightText,$fallback--lightText);background-color:#151e2a;background-color:var(--selectedMenu,#151e2a);color:#b9b9ba;color:var(--selectedMenuText,#b9b9ba);font-weight:bolder}.NavigationEntry.-active .menu-icon{--icon:var(--text,$fallback--icon)}.NavigationEntry.-active:hover{text-decoration:underline}.NavigationPins{display:flex;flex-wrap:wrap;height:100%;overflow:hidden}.NavigationPins .alert-dot{background-color:red;background-color:var(--badgeNotification,red);border-radius:100%;height:.5em;position:absolute;right:calc(50% - .75em);top:calc(50% - .5em);width:.5em}.NavigationPins .pinned-item{box-sizing:border-box;flex:1 0 3em;height:100%;min-width:2em;overflow:visible;position:relative;text-align:center}.NavigationPins .pinned-item .iconLetter,.NavigationPins .pinned-item .svg-inline--fa{margin:0}.NavigationPins .pinned-item.router-link-active{border-bottom:4px solid;color:#b9b9ba;color:var(--panelText,#b9b9ba)}.NavigationPins .pinned-item.router-link-active .iconLetter,.NavigationPins .pinned-item.router-link-active .svg-inline--fa{color:inherit}.NavPanel .panel{box-shadow:var(--panelShadow);overflow:hidden}.NavPanel ul{list-style:none;margin:0;padding:0}.NavPanel li{border-bottom:1px solid;border-color:#222;border-color:var(--border,#222);position:relative}.NavPanel>li:first-child .menu-item{border-top-left-radius:10px;border-top-left-radius:var(--panelRadius,10px);border-top-right-radius:10px;border-top-right-radius:var(--panelRadius,10px)}.NavPanel>li:last-child .menu-item{border-bottom-left-radius:10px;border-bottom-left-radius:var(--panelRadius,10px);border-bottom-right-radius:10px;border-bottom-right-radius:var(--panelRadius,10px)}.NavPanel li:last-child{border:none}.NavPanel .navigation-chevron{margin-right:.8em}.NavPanel .navigation-chevron,.NavPanel .timelines-chevron{font-size:1.1em;margin-left:.8em}.NavPanel .timelines-background{background-color:#151e2a;background-color:var(--selectedMenu,#151e2a);border-bottom:1px solid;border-color:#222;border-color:var(--border,#222);padding:0 0 0 .6em}.NavPanel .timelines{background-color:#121a24;background-color:var(--bg,#121a24)}.NavPanel .nav-panel-heading{--panel-heading-height-padding:0px}.features-panel li{line-height:24px}.who-to-follow *{vertical-align:middle}.who-to-follow img{height:32px;width:32px}.who-to-follow{margin:0;padding:0 1em}.who-to-follow-items{margin:1em 0;overflow:hidden;padding:0;text-overflow:ellipsis;white-space:nowrap}.who-to-follow-more{margin:1em 0;padding:0;text-align:center}.floating-shout{bottom:.5em;max-width:25em;position:fixed;z-index:var(--ZI_popovers)}.floating-shout.-left{left:.5em}.floating-shout:not(.-left){right:.5em}.shout-panel .shout-heading{cursor:pointer}.shout-panel .shout-heading .icon{color:#b9b9ba;color:var(--panelText,#b9b9ba);margin-right:.5em}.shout-panel .shout-heading .title{align-items:center;display:flex;justify-content:space-between}.shout-panel .shout-window{max-height:20em;overflow-x:hidden;overflow-y:auto}.shout-panel .shout-window-container{height:100%}.shout-panel .shout-message{display:flex;padding:.2em .5em}.shout-panel .shout-avatar img{border-radius:4px;border-radius:var(--avatarRadius,4px);height:24px;margin-right:.5em;margin-top:.25em;width:24px}.shout-panel .shout-input{display:flex}.shout-panel .shout-input textarea{flex:1;margin:.6em;min-height:3.5em;resize:none}.shout-panel .shout-panel .title{display:flex;justify-content:space-between}@keyframes media-fadein{0%{opacity:0}to{opacity:1}}.media-modal-view .modal-image-container{max-height:100%;max-width:100%;overflow:hidden}.media-modal-view .modal-image-container,.media-modal-view .modal-image-container-inner{align-items:center;display:flex;flex-direction:column;flex-grow:1;height:100%;justify-content:center;width:100%}.media-modal-view .counter,.media-modal-view .description{color:#fff;margin-top:1em;padding:.2em 2em;text-shadow:0 0 10px #000,0 0 10px #000}.media-modal-view .description{flex:0 0 auto;max-height:9.5em;max-width:500px;min-height:1em;overflow-y:auto;word-break:break-all}.media-modal-view .modal-image{animation:media-fadein .1s cubic-bezier(.7,0,1,.6);image-orientation:from-image;max-height:100%;max-width:100%}.media-modal-view .modal-image.loading{opacity:.5}.media-modal-view .loading-spinner{align-items:center;display:flex;height:100%;justify-content:center;pointer-events:none;position:absolute;width:100%}.media-modal-view .loading-spinner svg{color:#fff}.media-modal-view .modal-view-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;box-shadow:none;cursor:pointer;height:3em;opacity:0;overflow:visible;padding:0;transition:opacity 333ms cubic-bezier(.4,0,.22,1);width:3em}.media-modal-view .modal-view-button .button-icon{background-color:rgba(0,0,0,.3);color:#fff;font-size:1rem;height:3em;line-height:3em;position:absolute;text-align:center;width:3em}.media-modal-view .modal-view-button-arrow{display:block;height:3em;margin-top:1.5em;position:absolute;top:50%;width:3em}.media-modal-view .modal-view-button-arrow .arrow-icon{background-color:rgba(0,0,0,.3);color:#fff;line-height:3em;position:absolute;text-align:center;top:0}.media-modal-view .modal-view-button-arrow--prev{left:0}.media-modal-view .modal-view-button-arrow--prev .arrow-icon{left:.5em}.media-modal-view .modal-view-button-arrow--next{right:0}.media-modal-view .modal-view-button-arrow--next .arrow-icon{right:.5em}.media-modal-view .modal-view-button-hide{position:absolute;right:0;top:0}.media-modal-view .modal-view-button-hide .button-icon{right:.5em;top:.5em}.modal-view.media-modal-view{flex-direction:column;overflow:hidden;z-index:var(--ZI_media_modal)}.modal-view.media-modal-view .modal-view-button-arrow,.modal-view.media-modal-view .modal-view-button-hide{opacity:.75}.modal-view.media-modal-view .modal-view-button-arrow:focus,.modal-view.media-modal-view .modal-view-button-arrow:hover,.modal-view.media-modal-view .modal-view-button-hide:focus,.modal-view.media-modal-view .modal-view-button-hide:hover{box-shadow:none;outline:none}.modal-view.media-modal-view .modal-view-button-arrow:hover,.modal-view.media-modal-view .modal-view-button-hide:hover{opacity:1}.side-drawer-container{align-items:stretch;display:flex;height:100%;left:0;position:fixed;top:0;transition-duration:0s;transition-property:transform;width:100%;z-index:var(--ZI_navbar)}.side-drawer-container-open{transform:translate(0)}.side-drawer-container-closed{transform:translate(-100%);transition-delay:.35s}.side-drawer-darken{background-color:rgba(0,0,0,.5);height:100vh;left:0;position:fixed;top:0;transition:.35s;transition-property:background-color;width:100vw;z-index:-1}.side-drawer-darken-closed{background-color:transparent}.side-drawer-click-outside{flex:1 1 100%}.side-drawer{--faint:var(--popoverFaintText,$fallback--faint);--faintLink:var(--popoverFaintLink,$fallback--faint);--lightText:var(--popoverLightText,$fallback--lightText);--icon:var(--popoverIcon,$fallback--icon);background-color:#121a24;background-color:var(--popover,#121a24);box-shadow:1px 1px 4px rgba(0,0,0,.6);box-shadow:var(--panelShadow);color:#d8a070;color:var(--popoverText,#d8a070);flex:0 0 80%;margin:0 0 0 -100px;max-width:20em;overflow-x:hidden;padding:0 0 1em 100px;transition:.35s;transition-property:transform;transition-timing-function:cubic-bezier(0,1,.5,1);width:80%}.side-drawer .badge{margin-left:10px}.side-drawer-logo-wrapper{align-items:center;display:flex;padding:.85em}.side-drawer-logo-wrapper img{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{flex:0 0 0}.side-drawer-closed{transform:translate(-100%)}.side-drawer-heading{align-items:stretch;background:transparent;display:flex;flex-direction:column;margin:0;padding:0}.side-drawer ul{border-bottom:1px solid;border-color:#222;border-color:var(--border,#222);list-style:none;margin:0;padding:0}.side-drawer ul:last-child{border:0}.side-drawer li{padding:0}.side-drawer li a,.side-drawer li button{box-sizing:border-box;display:block;height:3em;line-height:3em;padding:0 .7em}.side-drawer li a:hover,.side-drawer li button:hover{--faint:var(--selectedMenuPopoverFaintText,$fallback--faint);--faintLink:var(--selectedMenuPopoverFaintLink,$fallback--faint);--lightText:var(--selectedMenuPopoverLightText,$fallback--lightText);--icon:var(--selectedMenuPopoverIcon,$fallback--icon);background-color:#151e2a;background-color:var(--selectedMenuPopover,#151e2a);color:#b9b9ba;color:var(--selectedMenuPopoverText,#b9b9ba)}.MobilePostButton.button-default{align-items:center;background-color:#182230;background-color:var(--btn,#182230);border-radius:100%;bottom:1.5em;box-shadow:0 2px 2px rgba(0,0,0,.3),0 4px 6px rgba(0,0,0,.3);display:flex;height:5em;justify-content:center;position:fixed;right:1.5em;transition:transform .35s;transition-timing-function:cubic-bezier(0,1,.5,1);width:5em;z-index:10}.MobilePostButton.hidden{transform:translateY(150%)}.MobilePostButton svg{color:#b9b9ba;color:var(--text,#b9b9ba);font-size:1.5em}@media (min-width:801px){.new-status-button:not(.always-show){display:none}}.ReplyButton{display:flex}.ReplyButton>:first-child{margin:-10px -8px -10px -10px;padding:10px}.ReplyButton .action-counter{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ReplyButton .interactive.-active .svg-inline--fa,.ReplyButton .interactive:hover .svg-inline--fa{color:#0095ff;color:var(--cBlue,#0095ff)}.ReplyButton .interactive .focus-marker{visibility:hidden}.ReplyButton .interactive:focus:not(:focus-visible,:hover) .focus-marker{visibility:hidden}.ReplyButton .interactive:focus .focus-marker,.ReplyButton .interactive:hover .focus-marker{visibility:visible}.ReplyButton .interactive:focus-visible .focus-marker{visibility:visible}.FavoriteButton{display:flex}.FavoriteButton>:first-child{margin:-10px -8px -10px -10px;padding:10px}.FavoriteButton .action-counter{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.FavoriteButton .interactive .svg-inline--fa{animation-duration:.6s}.FavoriteButton .interactive.-favorited .svg-inline--fa,.FavoriteButton .interactive:hover .svg-inline--fa{color:orange;color:var(--cOrange,orange)}.FavoriteButton .interactive .focus-marker{visibility:hidden}.FavoriteButton .interactive .active-marker{visibility:visible}.FavoriteButton .interactive:focus:not(:focus-visible,:hover) .focus-marker{visibility:hidden}.FavoriteButton .interactive:focus:not(:focus-visible,:hover) .active-marker{visibility:visible}.FavoriteButton .interactive:focus .focus-marker,.FavoriteButton .interactive:hover .focus-marker{visibility:visible}.FavoriteButton .interactive:focus .active-marker,.FavoriteButton .interactive:hover .active-marker{visibility:hidden}.FavoriteButton .interactive:focus-visible .focus-marker{visibility:visible}.FavoriteButton .interactive:focus-visible .active-marker{visibility:hidden}.ReactButton .reaction-picker-filter{display:flex;padding:.5em}.ReactButton .reaction-picker-filter input{flex:1}.ReactButton .reaction-picker-divider{background-color:var(--border,#222);height:1px;margin:.5em;width:100%}.ReactButton .reaction-picker{align-content:flex-start;display:flex;flex-wrap:wrap;font-size:1.5em;height:9em;-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);mask-composite:xor;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-size:100% 20px,100% 20px,auto;mask-size:100% 20px,100% 20px,auto;overflow-y:scroll;padding:.5em;text-align:center;transition:-webkit-mask-size .15s;transition:mask-size .15s;transition:mask-size .15s,-webkit-mask-size .15s;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:10em}.ReactButton .reaction-picker .emoji-button{align-content:center;cursor:pointer;flex-basis:20%;line-height:1.5}.ReactButton .reaction-picker .emoji-button:hover{transform:scale(1.25)}.ReactButton .popover-trigger{margin:-10px;padding:10px}.ReactButton .popover-trigger:hover .svg-inline--fa{color:#b9b9ba;color:var(--text,#b9b9ba)}.ReactButton .popover-trigger .focus-marker{visibility:hidden}.ReactButton .popover-trigger:focus:not(:focus-visible,:hover) .focus-marker{visibility:hidden}.ReactButton .popover-trigger:focus .focus-marker,.ReactButton .popover-trigger:hover .focus-marker{visibility:visible}.ReactButton .popover-trigger:focus-visible .focus-marker{visibility:visible}.RetweetButton{display:flex}.RetweetButton>:first-child{margin:-10px -8px -10px -10px;padding:10px}.RetweetButton .action-counter{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.RetweetButton .interactive .svg-inline--fa{animation-duration:.6s}.RetweetButton .interactive.-repeated .svg-inline--fa,.RetweetButton .interactive:hover .svg-inline--fa{color:#0fa00f;color:var(--cGreen,#0fa00f)}.RetweetButton .interactive .focus-marker{visibility:hidden}.RetweetButton .interactive .active-marker{visibility:visible}.RetweetButton .interactive:focus:not(:focus-visible,:hover) .focus-marker{visibility:hidden}.RetweetButton .interactive:focus:not(:focus-visible,:hover) .active-marker{visibility:visible}.RetweetButton .interactive:focus .focus-marker,.RetweetButton .interactive:hover .focus-marker{visibility:visible}.RetweetButton .interactive:focus .active-marker,.RetweetButton .interactive:hover .active-marker{visibility:hidden}.RetweetButton .interactive:focus-visible .focus-marker{visibility:visible}.RetweetButton .interactive:focus-visible .active-marker{visibility:hidden}.ExtraButtons .popover-trigger{margin:-10px;padding:10px;position:static}.ExtraButtons .popover-trigger:hover .svg-inline--fa{color:#b9b9ba;color:var(--text,#b9b9ba)}.ExtraButtons .popover-trigger-button{width:auto}.ExtraButtons .popover-trigger-button .focus-marker{visibility:hidden}.ExtraButtons .popover-trigger-button:focus:not(:focus-visible,:hover) .focus-marker{visibility:hidden}.ExtraButtons .popover-trigger-button:focus .focus-marker,.ExtraButtons .popover-trigger-button:hover .focus-marker{visibility:visible}.ExtraButtons .popover-trigger-button:focus-visible .focus-marker{visibility:visible}.avatars{display:flex;flex-wrap:wrap;height:24px;margin:0;padding:0}.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}.status-popover.popover{border-color:#222;border-color:var(--border,#222);border-radius:5px;border-radius:var(--tooltipRadius,5px);border-style:solid;border-width:1px;font-size:1rem;max-width:95%;min-width:15em}.status-popover.popover .Status.Status{border:none}.status-popover.popover .status-preview-no-content{padding:1em;text-align:center}.status-popover.popover .status-preview-no-content i{font-size:2em}.user-list-popover{--emoji-size:16px;padding:.5em}.user-list-popover .user-list-row{display:flex;flex-direction:row;padding:.25em}.user-list-popover .user-list-row .user-list-names{display:flex;flex-direction:column;margin-left:.5em;min-width:5em}.user-list-popover .user-list-row .user-list-names img{height:1em;width:1em}.user-list-popover .user-list-row .user-list-screen-name{font-size:.65em}.EmojiReactions{--emoji-size:calc(1.25em*var(--emojiReactionsScale, 1));display:flex;flex-wrap:wrap;margin-top:.25em}.EmojiReactions .emoji-reaction-container{align-items:stretch;display:flex;margin-right:.5em;margin-top:.5em}.EmojiReactions .emoji-reaction-container .emoji-reaction-popover{padding:0}.EmojiReactions .emoji-reaction-container .emoji-reaction-popover .emoji-reaction-count-button{align-items:center;background-color:var(--btn);border-bottom-left-radius:0;border-top-left-radius:0;box-sizing:border-box;color:#b9b9ba;color:var(--btnText,#b9b9ba);display:inline-flex;height:100%;justify-content:center;margin:0;min-width:2em}.EmojiReactions .emoji-reaction-container .emoji-reaction-popover .emoji-reaction-count-button.-picked-reaction{border:1px solid var(--accent,#d8a070);margin-right:-1px}.EmojiReactions .emoji-reaction{align-items:center;border-bottom-right-radius:0;border-top-right-radius:0;box-sizing:border-box;display:flex;justify-content:center;margin:0;padding-left:.5em}.EmojiReactions .emoji-reaction .reaction-emoji{align-items:center;display:flex;height:var(--emoji-size);justify-content:center;line-height:var(--emoji-size);margin-right:.25em;width:var(--emoji-size)}.EmojiReactions .emoji-reaction .reaction-emoji-content{font-size:calc(var(--emoji-size)*.8);height:auto;line-height:inherit;margin:0;max-height:100%;max-width:100%;overflow:hidden;width:auto}.EmojiReactions .emoji-reaction:focus{outline:none}.EmojiReactions .emoji-reaction .svg-inline--fa{color:#b9b9ba;color:var(--btnText,#b9b9ba)}.EmojiReactions .emoji-reaction.-picked-reaction{border:1px solid var(--accent,#d8a070);margin-left:-1px;margin-right:-1px}.EmojiReactions .emoji-reaction.-picked-reaction .svg-inline--fa{color:#d8a070;color:var(--accent,#d8a070)}.EmojiReactions .emoji-reaction .focus-marker{visibility:hidden}.EmojiReactions .emoji-reaction .active-marker{visibility:visible}.EmojiReactions .emoji-reaction:focus:not(:focus-visible,:hover) .focus-marker{visibility:hidden}.EmojiReactions .emoji-reaction:focus:not(:focus-visible,:hover) .active-marker{visibility:visible}.EmojiReactions .emoji-reaction:focus .svg-inline--fa,.EmojiReactions .emoji-reaction:hover .svg-inline--fa{color:#d8a070;color:var(--accent,#d8a070)}.EmojiReactions .emoji-reaction:focus .focus-marker,.EmojiReactions .emoji-reaction:hover .focus-marker{visibility:visible}.EmojiReactions .emoji-reaction:focus .active-marker,.EmojiReactions .emoji-reaction:hover .active-marker{visibility:hidden}.EmojiReactions .emoji-reaction:focus-visible .svg-inline--fa{color:#d8a070;color:var(--accent,#d8a070)}.EmojiReactions .emoji-reaction:focus-visible .focus-marker{visibility:visible}.EmojiReactions .emoji-reaction:focus-visible .active-marker{visibility:hidden}.EmojiReactions .emoji-reaction-expand{align-items:center;display:flex;justify-content:center;margin-right:.5em;margin-top:.5em;padding:0 .5em}.EmojiReactions .emoji-reaction-expand:hover{text-decoration:underline}.Status{word-wrap:break-word;min-width:0;white-space:normal;word-break:break-word}.Status:hover{--_still-image-img-visibility:visible;--_still-image-canvas-visibility:hidden;--_still-image-label-visibility:hidden}.Status.-focused{--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);background-color:#151e2a;background-color:var(--selectedPost,#151e2a);color:#b9b9ba;color:var(--selectedPostText,#b9b9ba)}.Status .gravestone{color:hsla(240,1%,73%,.5);color:var(--faint,hsla(240,1%,73%,.5));display:flex;padding:var(--status-margin,.75em)}.Status .gravestone .deleted-text{align-items:center;margin:.5em 0}.Status .status-container{display:flex;padding:var(--status-margin,.75em)}.Status .status-container>*{min-width:0}.Status .status-container.-repeat{padding-top:0}.Status .pin{align-items:center;display:flex;justify-content:flex-end;padding:var(--status-margin,.75em) var(--status-margin,.75em) 0}._misclick-prevention .Status{pointer-events:none}._misclick-prevention .Status .attachments{cursor:auto;pointer-events:auto}.Status .left-side{margin-right:var(--status-margin,.75em)}.Status .right-side{flex:1;min-width:0}.Status .usercard{margin-bottom:var(--status-margin,.75em)}.Status .status-username{--_still_image-label-scale:0.25;--emoji-size:14px;flex-shrink:1;font-weight:700;margin-right:.4em;max-width:85%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Status .status-favicon{height:18px;margin-right:.4em;width:18px}.Status .status-heading{margin-bottom:.5em}.Status .heading-name-row{display:flex;justify-content:space-between;line-height:1.3}.Status .heading-name-row a{display:inline-block;word-break:break-all}.Status .account-name{flex:1 1 0;margin-right:.4em;min-width:1.6em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Status .heading-left{display:flex;min-width:0}.Status .heading-right{display:flex;flex-shrink:0}.Status .heading-right .button-unstyled{margin:-5px;padding:5px}.Status .heading-right .button-unstyled:hover svg{color:#b9b9ba;color:var(--lightText,#b9b9ba)}.Status .heading-right .svg-inline--fa{margin-left:.25em}.Status .glued-label{display:inline-flex;white-space:nowrap}.Status .timeago{margin-right:.2em}.Status .heading-edited-row,.Status .heading-reply-row{align-content:baseline;align-items:stretch;font-size:.85em;line-height:130%;margin-top:.2em;max-width:100%;position:relative}.Status .mentions,.Status .reply-to-no-popover,.Status .reply-to-popover{flex-shrink:0;margin-right:.4em;min-width:0}.Status .reply-glued-label{margin-right:.5em}.Status .reply-to-popover .reply-to:hover:before{border-bottom:1px solid var(--faint);bottom:0;content:"";display:block;pointer-events:none;position:absolute;width:100%}.Status .reply-to-popover .faint-link:hover{text-decoration:none}.Status .reply-to-popover.-strikethrough .reply-to:after{border-bottom:1px solid var(--faint);content:"";display:block;pointer-events:none;position:absolute;top:50%;width:100%}.Status .mentions,.Status .reply-to{position:relative;white-space:nowrap}.Status .mentions-text,.Status .reply-to-text{color:var(--faint);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Status .mentions-line{display:inline}.Status .replies{display:flex;flex-wrap:wrap;font-size:.85em;line-height:1.3;margin-top:.25em}.Status .replies>*{margin-right:.4em}.Status .reply-link{height:17px}.Status .repeat-info{padding:.4em var(--status-margin,.75em)}.Status .repeat-info .repeat-icon{color:#0fa00f;color:var(--cGreen,#0fa00f)}.Status .repeater-avatar{border-radius:var(--avatarAltRadius,10px);height:20px;margin-left:28px;width:20px}.Status .repeater-name{margin-right:0;text-overflow:ellipsis}.Status .repeater-name .emoji{height:14px;-o-object-fit:contain;object-fit:contain;vertical-align:middle;width:14px}.Status .status-fadein{animation-duration:.4s;animation-name:fadein}@keyframes fadein{0%{opacity:0}to{opacity:1}}.Status .status-actions{display:flex;margin-top:var(--status-margin,.75em);position:relative;width:100%}.Status .status-actions>*{flex:1;max-width:4em}.Status .muted{display:flex;flex-wrap:nowrap;height:1.2em;line-height:1.2em;overflow:hidden;padding:.25em .6em;text-overflow:ellipsis}.Status .muted .mute-thread,.Status .muted .mute-words,.Status .muted .status-username{word-wrap:normal;white-space:nowrap;word-break:normal}.Status .muted .mute-words,.Status .muted .status-username{overflow:hidden;text-overflow:ellipsis}.Status .muted .status-username{flex:0 1 auto;font-size:smaller;font-weight:400;margin-right:.2em}.Status .muted .mute-thread{flex:0 0 auto}.Status .muted .mute-words{flex:1 0 5em;margin-left:.2em}.Status .muted .mute-words:before{content:" "}.Status .muted .unmute{display:block;flex:0 0 auto;margin-left:auto}.Status .reply-form{padding-bottom:0;padding-top:0}.Status .reply-body{flex:1}.Status .favs-repeated-users{margin-top:var(--status-margin,.75em)}.Status .stats{display:flex;line-height:1em;width:100%}.Status .avatar-row{align-items:center;display:flex;flex:1;overflow:hidden;position:relative}.Status .avatar-row:before{background-color:var(--faint,hsla(240,1%,73%,.5));content:"";height:100%;left:0;position:absolute;width:1px}.Status .stat-count{margin-right:var(--status-margin,.75em);-webkit-user-select:none;-moz-user-select:none;user-select:none}.Status .stat-count .stat-title{color:var(--faint,hsla(240,1%,73%,.5));font-size:.85em;position:relative;text-transform:uppercase}.Status .stat-count .stat-number{font-size:1.1em;font-weight:bolder;line-height:1em}.Status .stat-count:hover .stat-title{text-decoration:underline}@media (max-width:800px){.Status .repeater-avatar{margin-left:20px}.Status .post-avatar{height:40px;width:40px}.Status .post-avatar.-compact{height:32px;width:32px}}.Status .quoted-status{border:1px solid var(--border,#222);border-radius:var(--attachmentRadius,10px);margin-top:.5em}.Status .quoted-status.-unavailable-prompt{padding:.5em}.Status .display-quoted-status-button{margin:.5em}.Status .display-quoted-status-button-icon{color:inherit}.Report .report-content,.Report .report-state{margin:.5em 0 1em}.Report .reported-status{border:1px solid hsla(240,1%,73%,.5);border-color:var(--faint,hsla(240,1%,73%,.5));border-radius:4px;border-radius:var(--inputRadius,4px);color:#b9b9ba;color:var(--text,#b9b9ba);display:block;margin:.5em 0;padding:.5em}.Report .reported-status .status-content{pointer-events:none}.Report .reported-status .reported-status-heading{display:flex;justify-content:space-between;margin-bottom:.2em;width:100%}.Report .reported-status .reported-status-name{font-weight:700}.Report .note{margin-bottom:.5em;width:100%}.Notification{word-wrap:break-word;--emoji-size:14px;border-bottom:1px solid;border-color:#222;border-color:var(--border,#222);word-break:break-word}.Notification:hover{--_still-image-img-visibility:visible;--_still-image-canvas-visibility:hidden;--_still-image-label-visibility:hidden}.Notification.-muted{display:flex;flex-wrap:nowrap;height:1.2em;line-height:1.2em;overflow:hidden;padding:.25em .6em;text-overflow:ellipsis}.Notification.-muted .mute-thread,.Notification.-muted .mute-words,.Notification.-muted .status-username{word-wrap:normal;white-space:nowrap;word-break:normal}.Notification.-muted .mute-words,.Notification.-muted .status-username{overflow:hidden;text-overflow:ellipsis}.Notification.-muted .status-username{flex:0 1 auto;font-size:smaller;font-weight:400;margin-right:.2em}.Notification.-muted .mute-thread{flex:0 0 auto}.Notification.-muted .mute-words{flex:1 0 5em;margin-left:.2em}.Notification.-muted .mute-words:before{content:" "}.Notification.-muted .unmute{display:block;flex:0 0 auto;margin-left:auto}.Notification .type-icon{margin:0 .1em}.Notification.-type--repeat .type-icon{color:#0fa00f;color:var(--cGreen,#0fa00f)}.Notification.-type--follow .type-icon,.Notification.-type--follow-request .type-icon{color:#0095ff;color:var(--cBlue,#0095ff)}.Notification.-type--like .type-icon{color:orange;color:var(--cOrange,orange)}.Notification.-type--move .type-icon{color:#0095ff;color:var(--cBlue,#0095ff)}.Notifications:not(.minimal){padding-bottom:15em}.Notifications .loadmore-error{color:#b9b9ba;color:var(--text,#b9b9ba)}.Notifications .notification{position:relative}.Notifications .notification .notification-overlay{bottom:0;left:0;pointer-events:none;position:absolute;right:0;top:0}.Notifications .notification.unseen .notification-overlay{background-image:linear-gradient(135deg,var(--badgeNotification,red) 4px,transparent 10px)}.notification{box-sizing:border-box}.notification:hover .animated.Avatar canvas{display:none}.notification:hover .animated.Avatar img{visibility:visible}.notification:last-child .Notification{border-bottom:none}.notification .non-mention{display:flex;flex:1;flex-wrap:nowrap;min-width:0;padding:.6em}.notification .non-mention .avatar-container{height:32px;width:32px}.notification .non-mention .faint{--link:var(--faintLink);--text:var(--faint)}.notification .follow-request-accept:hover{color:#b9b9ba;color:var(--text,#b9b9ba)}.notification .follow-request-reject:hover{color:red;color:var(--cRed,red)}.notification .follow-text,.notification .move-text{display:flex;justify-content:space-between;overflow-wrap:break-word;padding:.5em 0}.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{flex:1}.notification time{white-space:nowrap}.notification .notification-right{flex:1;min-width:0;padding-left:.8em}.notification .notification-right .timeago{min-width:3em;text-align:right}.notification .notification-right .timeago-link{margin-right:.2em}.notification .notification-right .expand-icon .svg-inline--fa{margin-left:.25em}.notification .emoji-reaction-emoji{font-size:1.3em;height:1.25em;max-width:1.25em;width:auto}.notification .emoji-reaction-emoji-image{-o-object-fit:contain;object-fit:contain;vertical-align:middle}.notification .notification-details{word-wrap:break-word;display:flex;flex:1 1 0;flex-wrap:nowrap;justify-content:space-between;line-height:var(--post-line-height);min-width:0;overflow:hidden;position:relative;width:100%}.notification .notification-details .name-and-action{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 .timeago{margin-right:.2em}.notification .notification-details .status-content{margin:0;max-height:300px}.notification .notification-details h1{font-size:1em;line-height:1.5;margin:0 0 .3em;padding:0;word-break:break-all}.notification .notification-details h1 small{font-weight:lighter}.notification .notification-details p{margin:0 0 .3em}.MobileNav{z-index:var(--ZI_navbar)}.MobileNav .mobile-nav{box-sizing:border-box;display:grid;grid-template-columns:2fr auto;grid-template-rows:50px;line-height:var(--navbar-height);width:100%}.MobileNav .mobile-nav a{color:var(--topBarLink,#d8a070)}.MobileNav .mobile-inner-nav{align-items:center;display:flex;width:100%}.MobileNav .mobile-nav-button{cursor:pointer;display:inline-block;padding:0 1em;position:relative;text-align:center}.MobileNav .site-name{display:inline-block;padding:0 .3em}.MobileNav .item{display:flex}.MobileNav .alert-dot{background-color:red;background-color:var(--badgeNotification,red);border-radius:100%;height:8px;left:calc(50% - 4px);margin-left:6px;margin-top:-6px;position:absolute;top:calc(50% - 4px);width:8px}.MobileNav .mobile-notifications-drawer{-webkit-overflow-scrolling:touch;box-shadow:1px 1px 4px rgba(0,0,0,.6);box-shadow:var(--panelShadow);height:100vh;left:0;overflow-x:hidden;position:fixed;top:0;transform:translateX(0);transition-duration:.25s;transition-property:transform;width:100%;z-index:var(--ZI_navbar)}.MobileNav .mobile-notifications-drawer.-closed{box-shadow:none;transform:translateX(100%)}.MobileNav .mobile-notifications-header{align-items:center;background-color:#182230;background-color:var(--topBar,#182230);box-shadow:0 0 4px rgba(0,0,0,.6);box-shadow:var(--topBarShadow);color:var(--topBarText);display:flex;height:50px;justify-content:space-between;line-height:50px;position:absolute;width:100%;z-index:calc(var(--ZI_navbar) + 100)}.MobileNav .mobile-notifications-header .spacer{flex:1}.MobileNav .mobile-notifications-header .title{font-size:1.3em;margin-left:.6em}.MobileNav .pins{flex:1}.MobileNav .pins .pinned-item{flex-grow:1}.MobileNav .mobile-notifications{background-color:#121a24;background-color:var(--bg,#121a24);color:#b9b9ba;color:var(--text,#b9b9ba);height:calc(100vh - var(--navbar-height));margin-top:50px;overflow-x:hidden;overflow-y:scroll;width:100vw}.MobileNav .mobile-notifications .notifications{border-radius:0;box-shadow:none;padding:0}.MobileNav .mobile-notifications .notifications .panel{border-radius:0;box-shadow:none;margin:0}.MobileNav .mobile-notifications .notifications .panel:after{border-radius:0}.MobileNav .mobile-notifications .notifications .panel .panel-heading{border-radius:0;box-shadow:none}.MobileNav .confirm-modal.dark-overlay:before{z-index:3000}.MobileNav .confirm-modal.dark-overlay .dialog-modal.panel{z-index:3001}.SearchBar{align-items:baseline;display:inline-flex;justify-content:flex-end;vertical-align:baseline}.SearchBar.-expanded{width:100%}.SearchBar .search-bar-input,.SearchBar .search-button{height:29px}.SearchBar .search-bar-input{flex:1 0 auto}.SearchBar .cancel-search{height:50px}.SearchBar .cancel-icon{color:#b9b9ba;color:var(--btnTopBarText,#b9b9ba)}.DesktopNav{width:100%;z-index:var(--ZI_navbar)}.DesktopNav input{color:var(--inputTopbarText,var(--inputText))}.DesktopNav a{color:var(--topBarLink,#d8a070)}.DesktopNav .inner-nav{box-sizing:border-box;display:grid;grid-template-areas:"sitename logo actions";grid-template-columns:2fr auto 2fr;grid-template-rows:var(--navbar-height);margin:auto;max-width:980px;padding:0 1.2em}.DesktopNav.-column-stretch .inner-nav{--miniColumn:25rem;--maxiColumn:45rem;--columnGap:1em;max-width:calc(var(--sidebarColumnWidth, var(--miniColumn)) + var(--contentColumnWidth, var(--maxiColumn)) + var(--columnGap))}.DesktopNav.-logoLeft .inner-nav{grid-template-areas:"logo sitename actions";grid-template-columns:auto 2fr 2fr}.DesktopNav.-column-stretch.-wide .inner-nav{max-width:calc(var(--sidebarColumnWidth, var(--miniColumn)) + var(--contentColumnWidth, var(--maxiColumn)) + var(--notifsColumnWidth, var(--miniColumn)) + var(--columnGap))}.DesktopNav .button-default,.DesktopNav .button-default svg{color:#b9b9ba;color:var(--btnTopBarText,#b9b9ba)}.DesktopNav .button-default:active{background-color:#182230;background-color:var(--btnPressedTopBar,#182230);color:#b9b9ba;color:var(--btnPressedTopBarText,#b9b9ba)}.DesktopNav .button-default:disabled{color:#b9b9ba;color:var(--btnDisabledTopBarText,#b9b9ba)}.DesktopNav .button-default.toggled{background-color:#182230;background-color:var(--btnToggledTopBar,#182230);color:#b9b9ba;color:var(--btnToggledTopBarText,#b9b9ba)}.DesktopNav .logo{grid-area:logo;position:relative;transition:opacity;transition-duration:.1s;transition-timing-function:ease-out}@media (min-width:800px){.DesktopNav .logo{opacity:1!important}}.DesktopNav .logo .mask{background-color:#182230;background-color:var(--topBarText,#182230);bottom:0;left:0;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;right:0;top:0}.DesktopNav .logo img{display:inline-block;height:var(--navbar-height)}.DesktopNav .nav-icon{height:100%;margin-left:.2em;text-align:center;width:2em}.DesktopNav .nav-icon .svg-inline--fa{color:#d8a070;color:var(--topBarLink,#d8a070)}.DesktopNav .sitename{grid-area:sitename}.DesktopNav .actions{grid-area:actions}.DesktopNav .item{display:flex;flex:1;flex-wrap:wrap;height:var(--navbar-height);line-height:var(--navbar-height);overflow:hidden}.DesktopNav .item.right{justify-content:flex-end;text-align:right}.DesktopNav .spacer{width:1em}.list-item:not(:last-child){border-bottom:1px solid #222;border-bottom-color:var(--border,#222)}.list-empty-content{padding:10px;text-align:center}.user-reporting-panel{max-height:80vh;max-width:700px;min-height:20vh;width:90vw}.user-reporting-panel .panel-body{border-color:currentcolor #222 #222;border-top:1px solid #222;border-color:var(--border,#222);display:flex;flex-direction:column-reverse;overflow:hidden}.user-reporting-panel-left{box-sizing:border-box;line-height:var(--post-line-height);padding:1.1em .7em .7em}.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;min-height:44px;overflow:hidden;resize:none;transition:min-height .2s .1s;width:100%}.user-reporting-panel-left .btn{min-width:10em;padding:0 2em}.user-reporting-panel-left .alert{line-height:1.3em;margin:1em 0 0}.user-reporting-panel-right{display:flex;flex-direction:column;overflow-y:auto}.user-reporting-panel-sitem{display:flex;justify-content:space-between}.user-reporting-panel-sitem>.Status{flex:1}.user-reporting-panel-sitem>.checkbox{margin:.75em}@media (min-width:801px){.user-reporting-panel .panel-body{flex-direction:row}.user-reporting-panel-left{border-right:1px solid;border-color:#222;border-color:var(--border,#222);max-width:320px;padding:1.1em;width:50%}.user-reporting-panel-left>div{margin-bottom:2em}.user-reporting-panel-right{flex:1 1 auto;margin-bottom:12px;width:50%}}.modal-view.edit-form-modal-view{align-items:flex-start}.edit-form-modal-panel{flex-shrink:0;margin-bottom:2em;margin-top:25%;max-width:700px;width:100%}@media(orientation:landscape){.edit-form-modal-panel{margin-top:8%}}.edit-form-modal-panel .form-bottom-left{max-width:6.5em}.edit-form-modal-panel .form-bottom-left .emoji-icon{justify-content:right}.modal-view.post-form-modal-view{align-items:flex-start}.post-form-modal-panel{flex-shrink:0;margin-bottom:2em;margin-top:25%;max-width:700px;width:100%}@media(orientation:landscape){.post-form-modal-panel{margin-top:8%}}.modal-view.status-history-modal-view{align-items:flex-start}.status-history-modal-panel{flex-shrink:0;margin-bottom:2em;margin-top:25%;max-width:700px;width:100%}@media(orientation:landscape){.status-history-modal-panel{margin-top:8%}}.global-notice-list{align-items:center;display:flex;flex-direction:column;pointer-events:none;position:fixed;top:calc(var(--navbar-height) + .5em);width:100%;z-index:var(--ZI_modals_popovers)}.global-notice-list .global-notice{display:flex;line-height:2;margin-bottom:.5em;max-width:calc(100% - 3em);padding-left:1.5em;pointer-events:auto;text-align:center;width:40em}.global-notice-list .global-notice .notice-message{flex:1 1 100%}.global-notice-list .global-error{background-color:var(--alertPopupError,red)}.global-notice-list .global-error,.global-notice-list .global-error .svg-inline--fa{color:var(--alertPopupErrorText,#b9b9ba)}.global-notice-list .global-warning{background-color:var(--alertPopupWarning,orange)}.global-notice-list .global-warning,.global-notice-list .global-warning .svg-inline--fa{color:var(--alertPopupWarningText,#b9b9ba)}.global-notice-list .global-success{background-color:var(--alertPopupSuccess,#0fa00f)}.global-notice-list .global-success,.global-notice-list .global-success .svg-inline--fa{color:var(--alertPopupSuccessText,#b9b9ba)}.global-notice-list .global-info{background-color:var(--alertPopupNeutral,#182230)}.global-notice-list .global-info,.global-notice-list .global-info .svg-inline--fa{color:var(--alertPopupNeutralText,#b9b9ba)}.global-notice-list .close-notice{padding-right:.2em}.global-notice-list .close-notice .svg-inline--fa:hover{opacity:.6}.panel{background-color:#121a24;background-color:var(--bg,#121a24);display:flex;flex-direction:column;position:relative}.panel,.panel:after{border-radius:10px;border-radius:var(--panelRadius,10px)}.panel:after{bottom:0;box-shadow:1px 1px 4px rgba(0,0,0,.6);box-shadow:var(--panelShadow);content:"";left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:5}.panel-body{padding:var(--panel-body-padding,0)}.panel-body:empty:before{content:"¯\\_(ツ)_/¯";display:block;margin:1em;text-align:center}.panel-body>p{line-height:1.3;margin:0;padding:1em}.panel-footer,.panel-heading{--panel-heading-height-padding:0.6em;--__panel-heading-gap:0.5em;--__panel-heading-height:3.2em;--__panel-heading-height-inner:calc(var(--__panel-heading-height) - var(--panel-heading-height-padding, 0)*2);grid-column-gap:var(--__panel-heading-gap);background-size:cover;box-sizing:border-box;display:grid;flex:none;grid-auto-columns:auto;grid-auto-flow:column;grid-template-columns:minmax(50%,1fr);height:var(--__panel-heading-height);line-height:var(--__panel-heading-height-inner);padding:var(--panel-heading-height-padding);position:relative;z-index:4}.panel-footer.-flexible-height,.panel-heading.-flexible-height{--__panel-heading-height:auto}.panel-footer.-flexible-height:after,.panel-footer.-flexible-height:before,.panel-heading.-flexible-height:after,.panel-heading.-flexible-height:before{display:none}.panel-footer.-stub,.panel-footer.-stub:after,.panel-heading.-stub,.panel-heading.-stub:after{border-radius:10px;border-radius:var(--panelRadius,10px)}.panel-footer.-sticky,.panel-heading.-sticky{position:sticky;top:var(--navbar-height)}.panel-footer:after,.panel-footer:before,.panel-heading:after,.panel-heading:before{bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.panel-footer .title,.panel-heading .title{font-size:1.3em}.panel-footer .alert,.panel-heading .alert{overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}.panel-footer:not(.-flexible-height)>.alert,.panel-footer:not(.-flexible-height)>.button-default,.panel-heading:not(.-flexible-height)>.alert,.panel-heading:not(.-flexible-height)>.button-default{align-self:stretch;box-sizing:border-box;height:var(--__panel-heading-height-inner);margin:0;min-height:0;min-width:1px;padding-bottom:0;padding-top:0}.panel-heading{align-items:start;background-color:#121a24;background-color:var(--bg,#121a24);border-width:0 0 1px;color:var(--panelText)}.panel-heading,.panel-heading:after{border-radius:10px 10px 0 0;border-radius:var(--panelRadius,10px) var(--panelRadius,10px) 0 0}.panel-heading:after{background-color:#182230;background-color:var(--panel,#182230);box-shadow:var(--panelHeaderShadow);z-index:-2}.panel-heading .-link,.panel-heading a{color:#d8a070;color:var(--panelLink,#d8a070)}.panel-heading .button-unstyled:hover .iconLetter,.panel-heading .button-unstyled:hover .svg-inline--fa,.panel-heading .button-unstyled:hover i[class*=icon-],.panel-heading a:hover .iconLetter,.panel-heading a:hover .svg-inline--fa,.panel-heading a:hover i[class*=icon-]{color:var(--panelText)}.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:not(.-flexible-height)>.button-default{flex-shrink:0}.panel-heading:not(.-flexible-height)>.button-default,.panel-heading:not(.-flexible-height)>.button-default i[class*=icon-]{color:#b9b9ba;color:var(--btnPanelText,#b9b9ba)}.panel-heading:not(.-flexible-height)>.button-default:active{background-color:#182230;background-color:var(--btnPressedPanel,#182230);color:#b9b9ba;color:var(--btnPressedPanelText,#b9b9ba)}.panel-heading:not(.-flexible-height)>.button-default:disabled{color:#b9b9ba;color:var(--btnDisabledPanelText,#b9b9ba)}.panel-heading:not(.-flexible-height)>.button-default.toggled{color:#b9b9ba;color:var(--btnToggledPanelText,#b9b9ba)}.panel-heading .rightside-button{align-self:stretch;height:var(--__panel-heading-height);margin:calc(var(--panel-heading-height-padding)*-1) 0;margin-right:calc(var(--__panel-heading-gap)*-1);text-align:center;width:var(--__panel-heading-height)}.panel-heading .rightside-button>button{box-sizing:border-box;height:100%;padding:calc(var(--panel-heading-height-padding)*1) 0;text-align:center;width:100%}.panel-heading .rightside-button>button svg{font-size:1.2em}.panel-heading .rightside-icon{align-self:stretch;margin-right:calc(var(--__panel-heading-gap)*-1);text-align:center;width:var(--__panel-heading-height)}.panel-heading .rightside-icon svg{font-size:1.2em}.panel-footer{align-items:center;border-color:var(--border,#222);border-radius:0 0 10px 10px;border-radius:0 0 var(--panelRadius,10px) var(--panelRadius,10px);border-style:solid;border-width:1px 0 0}:root{--navbar-height:3.5rem;--post-line-height:1.4;--ZI_media_modal:9000;--ZI_modals_popovers:8500;--ZI_modals:8000;--ZI_navbar_popovers:7500;--ZI_navbar:7000;--ZI_popovers:6000}html{font-size:14px}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#b9b9ba;color:var(--text,#b9b9ba);font-family:sans-serif;font-family:var(--interfaceFont,sans-serif);margin:0;overflow-x:clip;overflow-y:scroll;overscroll-behavior-y:none}body.hidden{display:none}@media(any-pointer:fine){*{scrollbar-color:var(--btn) transparent}::-webkit-scrollbar{background:transparent}::-webkit-scrollbar-button,::-webkit-scrollbar-thumb{background-color:var(--btn);border-radius:var(--btnRadius);box-shadow:var(--buttonShadow)}::-webkit-scrollbar-button{--___bgPadding:2px;background-repeat:no-repeat,no-repeat;color:var(--btnText)}::-webkit-scrollbar-button:horizontal{background-size:50% calc(50% - var(--___bgPadding)),50% calc(50% - var(--___bgPadding))}::-webkit-scrollbar-button:horizontal:increment{background-image:linear-gradient(45deg,var(--btnText) 50%,transparent 51%),linear-gradient(-45deg,transparent 50%,var(--btnText) 51%);background-position:top var(--___bgPadding) left 50%,right 50% bottom var(--___bgPadding)}::-webkit-scrollbar-button:horizontal:decrement{background-image:linear-gradient(45deg,transparent 50%,var(--btnText) 51%),linear-gradient(-45deg,var(--btnText) 50%,transparent 51%);background-position:bottom var(--___bgPadding) right 50%,left 50% top var(--___bgPadding)}::-webkit-scrollbar-button:vertical{background-size:calc(50% - var(--___bgPadding)) 50%,calc(50% - var(--___bgPadding)) 50%}::-webkit-scrollbar-button:vertical:increment{background-image:linear-gradient(-45deg,transparent 50%,var(--btnText) 51%),linear-gradient(45deg,transparent 50%,var(--btnText) 51%);background-position:right var(--___bgPadding) top 50%,left var(--___bgPadding) top 50%}::-webkit-scrollbar-button:vertical:decrement{background-image:linear-gradient(-45deg,var(--btnText) 50%,transparent 51%),linear-gradient(45deg,var(--btnText) 50%,transparent 51%);background-position:left var(--___bgPadding) top 50%,right var(--___bgPadding) top 50%}html{background:var(--wallpaper);scrollbar-color:var(--selectedMenu) var(--wallpaper)}}a{color:#d8a070;color:var(--link,#d8a070);text-decoration:none}h4{margin:0}.iconLetter{display:inline-block;font-weight:1000;text-align:center}.iconLetter,.svg-inline--fa,i[class*=icon-]{color:#666;color:var(--icon,#666)}.button-unstyled:hover>.iconLetter,.button-unstyled:hover>.svg-inline--fa,.button-unstyled:hover>i[class*=icon-],a:hover>.iconLetter,a:hover>.svg-inline--fa,a:hover>i[class*=icon-]{color:var(--text)}nav{background-color:#182230;background-color:var(--topBar,#182230);box-shadow:0 0 4px rgba(0,0,0,.6);box-shadow:var(--topBarShadow);box-sizing:border-box;color:hsla(240,1%,73%,.5);color:var(--faint,hsla(240,1%,73%,.5));height:var(--navbar-height);position:fixed;z-index:var(--ZI_navbar)}#sidebar{grid-area:sidebar}#modal{position:absolute;z-index:var(--ZI_modals)}.column.-scrollable{position:sticky;top:var(--navbar-height)}#main-scroller{grid-area:content;position:relative}#notifs-column{grid-area:notifs}.app-bg-wrapper{background-color:var(--wallpaper);background-image:var(--body-background-image);background-position:50%;background-repeat:no-repeat;background-size:cover;height:100%;left:0;position:fixed;right:-20px;top:var(--navbar-height);z-index:-1000}.underlay{background-color:rgba(0,0,0,.15);background-color:var(--underlay,rgba(0,0,0,.15));grid-column:1/span 3;grid-row:1/1;pointer-events:none;z-index:-1000}.app-layout{--miniColumn:25rem;--maxiColumn:45rem;--columnGap:1em;--status-margin:0.75em;--effectiveSidebarColumnWidth:minmax(var(--miniColumn),var(--sidebarColumnWidth,var(--miniColumn)));--effectiveNotifsColumnWidth:minmax(var(--miniColumn),var(--notifsColumnWidth,var(--miniColumn)));--effectiveContentColumnWidth:minmax(var(--miniColumn),var(--contentColumnWidth,var(--maxiColumn)));align-content:flex-start;flex-wrap:wrap;grid-template-areas:"sidebar content";grid-template-columns:var(--effectiveSidebarColumnWidth) var(--effectiveContentColumnWidth);grid-template-rows:1fr;justify-content:center;margin:0 auto;min-height:100vh;overflow-x:clip;position:relative}.app-layout,.app-layout .column{box-sizing:border-box;display:grid}.app-layout .column{--___columnMargin:var(--columnGap);align-content:start;grid-row:1/1;grid-template-columns:100%;margin:0 calc(var(--___columnMargin)/2);padding:calc(var(--___columnMargin)) 0;row-gap:var(--___columnMargin)}.app-layout .column:not(.-scrollable){margin-top:var(--navbar-height)}.app-layout .column:hover{z-index:2}.app-layout .column.-full-height{margin-bottom:0;padding-bottom:0;padding-top:0}.app-layout .column.-scrollable{--___paddingIncrease:calc(var(--columnGap)/2);margin-left:calc(var(--___paddingIncrease)*-1);max-height:calc(100vh - var(--navbar-height));overflow-x:hidden;overflow-y:auto;padding-left:calc(var(--___paddingIncrease) + var(--___columnMargin)/2);position:sticky;top:var(--navbar-height)}@supports(scrollbar-width:none) or (-webkit-text-fill-color:initial){.app-layout .column.-scrollable:not(.-show-scrollbar){margin-right:calc(var(--___paddingIncrease)*-1);padding-right:calc(var(--___paddingIncrease) + var(--___columnMargin)/2);scrollbar-width:none}.app-layout .column.-scrollable:not(.-show-scrollbar)::-webkit-scrollbar{display:block;width:0}}.app-layout .column.-scrollable .panel-heading.-sticky{top:calc(var(--columnGap)/-1)}.app-layout.-has-new-post-button .column{padding-bottom:10rem}.app-layout.-no-sticky-headers .column .panel-heading.-sticky{position:relative;top:0}.app-layout .column-inner{align-content:start;box-sizing:border-box;display:grid;grid-template-columns:100%;row-gap:1em}.app-layout.-reverse:not(.-wide,.-mobile){grid-template-areas:"content sidebar";grid-template-columns:var(--effectiveContentColumnWidth) var(--effectiveSidebarColumnWidth)}.app-layout.-wide{grid-template-areas:"sidebar content notifs";grid-template-columns:var(--effectiveSidebarColumnWidth) var(--effectiveContentColumnWidth) var(--effectiveNotifsColumnWidth)}.app-layout.-wide.-reverse{grid-template-areas:"notifs content sidebar";grid-template-columns:var(--effectiveNotifsColumnWidth) var(--effectiveContentColumnWidth) var(--effectiveSidebarColumnWidth)}.app-layout.-mobile{grid-template-areas:"content";grid-template-columns:100vw;padding:0}.app-layout.-mobile .column{margin:var(--navbar-height) 0 0 0;padding-top:0}.app-layout.-mobile .panel,.app-layout.-mobile .panel-heading,.app-layout.-mobile .panel-heading:after,.app-layout.-mobile .panel-heading:before,.app-layout.-mobile .panel:after{border-top-left-radius:0;border-top-right-radius:0}.app-layout.-mobile #notifs-column,.app-layout.-mobile #sidebar,.app-layout.-normal #notifs-column{display:none}.text-center{text-align:center}.button-default{background-color:#182230;background-color:var(--btn,#182230);border:none;border-radius:4px;border-radius:var(--btnRadius,4px);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);color:#b9b9ba;color:var(--btnText,#b9b9ba);cursor:pointer;font-family:sans-serif;font-family:var(--interfaceFont,sans-serif);font-size:1em;-webkit-user-select:none;-moz-user-select:none;user-select:none}.button-default.-sublime{background:transparent}.button-default .svg-inline--fa,.button-default i[class*=icon-]{color:#b9b9ba;color:var(--btnText,#b9b9ba)}.button-default::-moz-focus-inner{border:none}.button-default:hover{box-shadow:0 0 4px hsla(0,0%,100%,.3);box-shadow:var(--buttonHoverShadow)}.button-default:active{background-color:#182230;background-color:var(--btnPressed,#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-default:active,.button-default:active i,.button-default:active svg{color:#b9b9ba;color:var(--btnPressedText,#b9b9ba)}.button-default:disabled{background-color:#182230;background-color:var(--btnDisabled,#182230);cursor:not-allowed}.button-default:disabled,.button-default:disabled i,.button-default:disabled svg{color:#b9b9ba;color:var(--btnDisabledText,#b9b9ba)}.button-default.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-default.toggled,.button-default.toggled i,.button-default.toggled svg{color:#b9b9ba;color:var(--btnToggledText,#b9b9ba)}.button-default.danger{background-color:rgba(211,16,20,.5);background-color:var(--alertError,rgba(211,16,20,.5));color:#b9b9ba;color:var(--alertErrorPanelText,#b9b9ba)}.button-unstyled{background:none;border:none;box-sizing:content-box;color:inherit;cursor:pointer;display:inline;font-family:inherit;font-size:100%;line-height:unset;outline:none;padding:0;text-align:initial}.button-unstyled.-link{color:#d8a070;color:var(--link,#d8a070)}.button-unstyled.-fullwidth{width:100%}.button-unstyled.-hover-highlight:hover svg{color:#b9b9ba;color:var(--lightText,#b9b9ba)}.input,input,textarea{--_padding:0.5em;background-color:#182230;background-color:var(--input,#182230);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);box-sizing:border-box;color:#b9b9ba;color:var(--inputText,#b9b9ba);display:inline-block;font-family:sans-serif;font-family:var(--inputFont,sans-serif);font-size:1em;-webkit-hyphens:none;hyphens:none;line-height:2;margin:0;padding:0 var(--_padding);position:relative}.input.unstyled,input.unstyled,textarea.unstyled{background:none;border-radius:0;box-shadow:none;height:unset}.input.disabled,.input:disabled,.input[disabled=disabled],input.disabled,input:disabled,input[disabled=disabled],textarea.disabled,textarea:disabled,textarea[disabled=disabled]{cursor:not-allowed;opacity:.5}.input[type=range],input[type=range],textarea[type=range]{background:none;border:none;box-shadow:none;flex:1;margin:0}.input[type=radio],input[type=radio],textarea[type=radio]{display:none}.input[type=radio]:checked+label:before,input[type=radio]:checked+label:before,textarea[type=radio]:checked+label:before{background-color:var(--accent,#d8a070);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}.input[type=radio]:disabled,.input[type=radio]:disabled+label,.input[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,input[type=radio]+label:before,textarea[type=radio]+label:before{background-color:#182230;background-color:var(--input,#182230);border-radius:100%;box-shadow:inset 0 0 2px #000;box-shadow:var(--inputShadow);box-sizing:border-box;color:transparent;content:"";display:inline-block;flex-shrink:0;font-size:1.1em;height:1.1em;line-height:1.1;margin-right:.5em;overflow:hidden;text-align:center;transition:box-shadow .2s;vertical-align:top;width:1.1em}.input[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,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,input[type=checkbox]+label:before,textarea[type=checkbox]+label:before{background-color:#182230;background-color:var(--input,#182230);border-radius:2px;border-radius:var(--checkboxRadius,2px);box-shadow:inset 0 0 2px #000;box-shadow:var(--inputShadow);box-sizing:border-box;color:transparent;content:"✓";display:inline-block;flex-shrink:0;font-size:1.1em;height:1.1em;line-height:1.1;margin-right:.5em;overflow:hidden;text-align:center;transition:color .2s;vertical-align:top;width:1.1em}.input.resize-height,input.resize-height,textarea.resize-height{resize:vertical}textarea{line-height:var(--post-line-height);padding:var(--_padding)}option{background-color:#121a24;background-color:var(--bg,#121a24);color:#b9b9ba;color:var(--text,#b9b9ba)}.hide-number-spinner{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.hide-number-spinner[type=number]::-webkit-inner-spin-button,.hide-number-spinner[type=number]::-webkit-outer-spin-button{display:none;opacity:0}.cards-list{display:grid;grid-auto-flow:row dense;grid-template-columns:1fr 1fr;list-style:none}.cards-list li{border:1px solid var(--border);border-radius:var(--inputRadius);margin:.25em;padding:.5em}.btn-block{display:block;width:100%}.btn-group{display:inline-flex;position:relative;vertical-align:middle}.btn-group .button-dropdown,.btn-group button{flex:1 1 auto;position:relative}.btn-group .button-dropdown:not(:last-child),.btn-group .button-dropdown:not(:last-child) .button-default,.btn-group button:not(:last-child),.btn-group button:not(:last-child) .button-default{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group .button-dropdown:not(:first-child),.btn-group .button-dropdown:not(:first-child) .button-default,.btn-group button:not(:first-child),.btn-group button:not(:first-child) .button-default{border-bottom-left-radius:0;border-top-left-radius:0}.fa{color:gray}.mobile-shown{display:none}.badge{border-radius:99px;box-sizing:border-box;display:inline-block;font-size:.9em;font-style:normal;font-weight:400;height:1.3em;line-height:1;max-width:10em;min-width:1.7em;overflow:hidden;padding:.15em;text-align:center;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}.badge.badge-notification{background-color:red;background-color:var(--badgeNotification,red);color:#fff;color:var(--badgeNotificationText,#fff)}.alert{border-radius:5px;border-radius:var(--tooltipRadius,5px);margin:0 .35em;padding:0 .25em}.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)}.alert.success{background-color:var(--alertSuccess,rgba(111,111,20,.5));color:var(--alertSuccessText,#b9b9ba)}.panel-heading .alert.success{color:var(--alertSuccessPanelText,#b9b9ba)}.faint,.faint-link{color:hsla(240,1%,73%,.5);color:var(--faint,hsla(240,1%,73%,.5))}.faint-link:hover{text-decoration:underline}.visibility-notice{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);padding:.5em}.notice-dismissible{padding-right:4rem;position:relative}.notice-dismissible .dismiss{color:inherit;padding:.5em;position:absolute;right:0;top:0}.fa-scale-110.iconLetter,.fa-scale-110.svg-inline--fa{font-size:1.1em}.fa-old-padding-layer,.fa-old-padding.iconLetter,.fa-old-padding.svg-inline--fa{padding:0 .3em}.veryfaint{opacity:.25}.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.button-default{min-height:2em}.new-status-notification{flex:1;font-size:1.1em;position:relative;z-index:1}@media (max-width:800px){.mobile-hidden{display:none}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(359deg)}}@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)}}.fade-enter-active,.fade-leave-active{transition:opacity .3s}.fade-enter-from,.fade-leave-active{opacity:0}.visible-for-screenreader-only{clip:rect(0 0 0 0);display:block;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;visibility:visible;width:1px}.thread-tree-replies{border-left:2px solid var(--border,#222);margin-left:var(--status-margin,.75em)}.thread-tree-replies-hidden{align-items:stretch;display:flex;flex-direction:column;padding:var(--status-margin,.75em)}.Conversation{z-index:1}.Conversation .conversation-dive-to-top-level-box{align-items:stretch;border-bottom:1px solid var(--border,#222);border-radius:0;display:flex;flex-direction:column;padding:var(--status-margin,.75em)}.Conversation .thread-ancestors{border-left:2px solid var(--border,#222);margin-left:var(--status-margin,.75em)}.Conversation .thread-ancestor.-faded .StatusContent{--link:var(--faintLink);--text:var(--faint);color:var(--text)}.Conversation .thread-ancestor-dive-box{border-bottom:1px solid var(--border,#222);border-radius:0;padding-left:var(--status-margin,.75em)}.Conversation .thread-ancestor-dive-box,.Conversation .thread-ancestor-dive-box-inner{align-items:stretch;display:flex;flex-direction:column}.Conversation .thread-ancestor-dive-box-inner{padding:var(--status-margin,.75em)}.Conversation .conversation-status{border-bottom:1px solid var(--border,#222);border-radius:0}.Conversation .thread-ancestor-has-other-replies .conversation-status,.Conversation .thread-ancestor:last-child .conversation-status,.Conversation .thread-ancestor:last-child .thread-ancestor-dive-box,.Conversation.-expanded .thread-tree .conversation-status,.Conversation:last-child .conversation-status{border-bottom:none}.Conversation .thread-ancestors+.thread-tree>.conversation-status{border-top:1px solid var(--border,#222)}.Conversation.status-fadein.-expanded .thread-body{border-bottom:1px solid var(--border,#222);border-left:4px solid red;border-left-color:var(--cRed,red);border-radius:0 0 10px 10px;border-radius:0 0 var(--panelRadius,10px) var(--panelRadius,10px)}.Conversation.-expanded.status-fadein{margin:calc(var(--status-margin, .75em)/2)}.timeline-menu-popover{border-top-left-radius:0;border-top-right-radius:0;font-size:1rem;margin-top:.6rem;max-width:100vw;min-width:24rem}.timeline-menu-popover ul{list-style:none;margin:0;padding:0}.timeline-menu-popover a{display:block;height:3.5em;line-height:3.5em;padding:0 .65em}.timeline-menu-popover a:hover{color:#d8a070;color:var(--selectedMenuText,#d8a070)}.timeline-menu-popover a.router-link-active,.timeline-menu-popover a:hover{--faint:var(--selectedMenuFaintText,$fallback--faint);--faintLink:var(--selectedMenuFaintLink,$fallback--faint);--lightText:var(--selectedMenuLightText,$fallback--lightText);--icon:var(--selectedMenuIcon,$fallback--icon);background-color:#151e2a;background-color:var(--selectedMenu,#151e2a)}.timeline-menu-popover a.router-link-active{color:#b9b9ba;color:var(--selectedMenuText,#b9b9ba);font-weight:bolder}.timeline-menu-popover a.router-link-active:hover{text-decoration:underline}.timeline-menu-popover a svg{margin-left:-.2em;margin-right:.4em}.timeline-menu-popover li{border-bottom:1px solid;border-color:#222;border-color:var(--border,#222);padding:0}.timeline-menu-popover li:last-child a{border-bottom-left-radius:10px;border-bottom-left-radius:var(--panelRadius,10px);border-bottom-right-radius:10px;border-bottom-right-radius:var(--panelRadius,10px)}.timeline-menu-popover li:last-child{border:none}.TimelineMenu{margin-right:auto;min-width:0}.TimelineMenu .popover-trigger-button{vertical-align:bottom}.TimelineMenu .panel:after{border-top-left-radius:0;border-top-right-radius:0}.TimelineMenu .timeline-menu-title{cursor:pointer;display:flex;margin:0;-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}.TimelineMenu .timeline-menu-title .timeline-menu-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.TimelineMenu .timeline-menu-title svg{margin-left:.6em;transition:transform .1s}.TimelineMenu .timeline-menu-title .click-blocker{cursor:default;flex-grow:1}.TimelineMenu.open .timeline-menu-title svg{color:#b9b9ba;color:var(--panelText,#b9b9ba);transform:rotate(180deg)}.TimelineMenu .panel{box-shadow:var(--popoverShadow)}.Timeline .alert-dot{border-radius:100%;height:8px;left:calc(50% - 4px);margin-left:6px;margin-top:-6px;top:calc(50% - 4px);width:8px}.Timeline .alert-badge,.Timeline .alert-dot{background-color:var(--badgeNeutral);position:absolute}.Timeline .alert-badge{border-radius:var(--tooltipRadius);color:var(--badgeNeutralText);font-size:.75em;left:calc(50% - .5em);line-height:1;margin-left:.7em;margin-top:-1em;padding:.2em;text-align:right;top:calc(50% - .4em)}.Timeline .loadmore-button{position:relative}.Timeline.-blocked{cursor:progress}.Timeline .conversation-heading{top:calc(var(--__panel-heading-height)*var(--currentPanelStack, 2));z-index:2}.Timeline.-nonpanel .timeline-heading{line-height:2.75em;padding:0 .5em;text-align:center}.Timeline.-nonpanel .timeline-heading .alert,.Timeline.-nonpanel .timeline-heading .button-default{line-height:2em;width:100%}.tab-switcher{display:flex}.tab-switcher .tab-icon{display:block;margin:.2em auto}.tab-switcher.top-tabs{flex-direction:column}.tab-switcher.top-tabs>.tabs{flex:0 0 auto;flex-direction:row;overflow-x:auto;overflow-y:hidden;padding-top:5px;width:100%}.tab-switcher.top-tabs>.tabs:after,.tab-switcher.top-tabs>.tabs:before{border-bottom:1px solid #222;border-bottom-color:var(--border,#222);content:"";flex:1 1 auto}.tab-switcher.top-tabs>.tabs .tab-wrapper{height:2em}.tab-switcher.top-tabs>.tabs .tab-wrapper:not(.active):after{border-bottom:1px solid #222;border-bottom-color:var(--border,#222);bottom:0;left:0;right:0}.tab-switcher.top-tabs>.tabs .tab{border-bottom-left-radius:0;border-bottom-right-radius:0;margin-bottom:-93px;min-width:1px;padding-bottom:99px;width:100%}.tab-switcher.top-tabs .contents.scrollable-tabs{flex-basis:0}.tab-switcher.side-tabs{flex-direction:row}@media (max-width:800px){.tab-switcher.side-tabs{overflow-x:auto}}.tab-switcher.side-tabs>.contents{flex:1 1 auto}.tab-switcher.side-tabs>.tabs{flex:0 0 auto;flex-direction:column;overflow-x:hidden;overflow-y:auto}.tab-switcher.side-tabs>.tabs:after,.tab-switcher.side-tabs>.tabs:before{border-right:1px solid #222;border-right-color:var(--border,#222);content:"";flex-basis:.5em;flex-shrink:0}.tab-switcher.side-tabs>.tabs:after{flex-grow:1}.tab-switcher.side-tabs>.tabs:before{flex-grow:0}.tab-switcher.side-tabs>.tabs .tab-wrapper{display:flex;flex-direction:column;min-width:10em}@media (max-width:800px){.tab-switcher.side-tabs>.tabs .tab-wrapper{min-width:4em}}.tab-switcher.side-tabs>.tabs .tab-wrapper:not(.active):after{border-right:1px solid #222;border-right-color:var(--border,#222);bottom:0;right:0;top:0}.tab-switcher.side-tabs>.tabs .tab-wrapper:before{border-right:1px solid #222;border-right-color:var(--border,#222);content:"";flex:0 0 6px}.tab-switcher.side-tabs>.tabs .tab-wrapper:last-child .tab{margin-bottom:0}.tab-switcher.side-tabs>.tabs .tab{border-bottom-right-radius:0;border-top-right-radius:0;box-sizing:content-box;flex:1;margin-left:1em;margin-right:-200px;min-width:10em;min-width:1px;padding-left:1em;padding-right:calc(1em + 200px)}@media (max-width:800px){.tab-switcher.side-tabs>.tabs .tab{margin-left:.25em;margin-right:calc(.25em - 200px);padding-left:.25em;padding-right:calc(.25em + 200px)}.tab-switcher.side-tabs>.tabs .tab .text{display:none}}.tab-switcher .contents{flex:1 0 auto;min-height:0}.tab-switcher .contents .hidden{display:none}.tab-switcher .contents .full-height:not(.hidden){display:flex;flex-direction:column;height:100%}.tab-switcher .contents .full-height:not(.hidden)>:not(.mobile-label){flex:1}.tab-switcher .contents.scrollable-tabs{overflow-y:auto}.tab-switcher .tab{padding:6px 1em;position:relative;white-space:nowrap}.tab-switcher .tab:not(.active){z-index:4}.tab-switcher .tab:not(.active):hover{z-index:6}.tab-switcher .tab.active{background:transparent;color:#b9b9ba;color:var(--tabActiveText,#b9b9ba);z-index:5}.tab-switcher .tab img{margin-top:-5px;max-height:26px;vertical-align:top}.tab-switcher .tabs{box-sizing:border-box;display:flex;position:relative}.tab-switcher .tabs:after,.tab-switcher .tabs:before{display:block;flex:1 1 auto}.tab-switcher .tab-wrapper{display:flex;flex:0 0 auto;position:relative}.tab-switcher .tab-wrapper:not(.active):after{content:"";position:absolute;z-index:7}.tab-switcher .mobile-label{border-bottom:1px solid var(--border,#222);margin-bottom:.25em;margin-left:.2em;margin-top:.5em;padding-bottom:.25em;padding-left:.3em}@media (min-width:800px){.tab-switcher .mobile-label{display:none}}.chat-title{--emoji-size:14px;display:flex}.chat-title,.chat-title .username{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-title .username{word-wrap:break-word;display:inline;max-width:100%}.chat-title .avatar-container{align-self:center;line-height:1}.chat-title .titlebar-avatar{border-radius:10px;border-radius:var(--avatarAltRadius,10px);height:1.5em;margin-right:.5em;width:1.5em}.chat-title .titlebar-avatar.animated:before{display:none}.chat-list-item{box-sizing:border-box;cursor:pointer;display:flex;flex-direction:row;height:5em;overflow:hidden;padding:.75em}.chat-list-item :focus{outline:none}.chat-list-item:hover{background-color:var(--selectedPost,#151e2a);box-shadow:0 0 3px 1px rgba(0,0,0,.1)}.chat-list-item .chat-list-item-left{margin-right:1em}.chat-list-item .chat-list-item-center{word-wrap:break-word;box-sizing:border-box;overflow:hidden;width:100%}.chat-list-item .heading{display:inline-flex;justify-content:space-between;line-height:1em;width:100%}.chat-list-item .heading-right{white-space:nowrap}.chat-list-item .name-and-account-name{flex-shrink:1;line-height:var(--post-line-height);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-list-item .chat-preview{color:#b9b9ba;color:var(--faint,#b9b9ba);display:inline-flex;margin:.35em 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.chat-list-item a{color:var(--faintLink,#d8a070);pointer-events:none;text-decoration:none}.chat-list-item:hover .animated.avatar canvas{display:none}.chat-list-item:hover .animated.avatar img{visibility:visible}.chat-list-item .Avatar{border-radius:10px;border-radius:var(--avatarAltRadius,10px)}.chat-list-item .chat-preview-body{--emoji-size:1.4em;padding-right:1em}.chat-list-item .time-wrapper{line-height:var(--post-line-height)}.basic-user-card{--emoji-size:14px;display:flex;flex:1 0;margin:0;padding:.6em 1em}.basic-user-card-collapsed-content{flex:1;margin-left:.7em;min-width:0;text-align:left}.basic-user-card-user-name img{height:16px;-o-object-fit:contain;object-fit:contain;vertical-align:middle;width:16px}.basic-user-card-screen-name,.basic-user-card-user-name-value{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.basic-user-card-expanded-content{flex:1;margin-left:.7em;min-width:0}.chat-new .input-wrap{display:flex;margin:.7em .5em}.chat-new .input-wrap input{width:100%}.chat-new .search-icon{margin-right:.3em}.chat-new .member-list{padding-bottom:.7rem}.chat-new .basic-user-card:hover{background-color:var(--selectedPost,#151e2a);cursor:pointer}.chat-new .go-back-button{align-self:start;height:100%;line-height:1;text-align:center;width:var(--__panel-heading-height-inner)}.chat-list{margin-bottom:0;min-height:25em}.emtpy-chat-list-alert{color:#b9b9ba;color:var(--faint,#b9b9ba);display:flex;font-size:1.2em;justify-content:center;padding:3em}.chat-message-wrapper.hovered-message-chain .animated.Avatar canvas{display:none}.chat-message-wrapper.hovered-message-chain .animated.Avatar img{visibility:visible}.chat-message-wrapper .chat-message-menu{opacity:0;position:absolute;top:-.8em;transition:opacity .1s}.chat-message-wrapper .chat-message-menu button{padding-bottom:.2em;padding-top:.2em}.chat-message-wrapper .menu-icon{cursor:pointer}.chat-message-wrapper .menu-icon:hover,.extra-button-popover.open .chat-message-wrapper .menu-icon{color:#b9b9ba;color:var(--text,#b9b9ba)}.chat-message-wrapper .popover{width:12em}.chat-message-wrapper .chat-message{display:flex;padding-bottom:.5em}.chat-message-wrapper .chat-message .status-body:hover{--_still-image-img-visibility:visible;--_still-image-canvas-visibility:hidden;--_still-image-label-visibility:hidden}.chat-message-wrapper .avatar-wrapper{margin-right:.72em;width:32px}.chat-message-wrapper .attachments,.chat-message-wrapper .link-preview{margin-bottom:1em}.chat-message-wrapper .status{border-radius:10px;border-radius:var(--chatMessageRadius,10px);display:flex;padding:.75em}.chat-message-wrapper .created-at{float:right;font-size:.8em;font-style:italic;margin:-1em 0 -.5em;opacity:.8;position:relative}.chat-message-wrapper .without-attachment .message-content .RichContent:after{content:" ";display:inline-block;margin-right:5.4em}.chat-message-wrapper .pending .created-at,.chat-message-wrapper .pending .status-content.media-body{color:var(--faint)}.chat-message-wrapper .error .created-at,.chat-message-wrapper .error .status-content.media-body{color:red;color:var(--badgeNotification,red)}.chat-message-wrapper .chat-message-inner{align-items:flex-start;display:flex;flex-direction:column;max-width:80%;min-width:10em;width:100%}.chat-message-wrapper .outgoing{align-content:end;display:flex;flex-flow:row wrap;justify-content:flex-end}.chat-message-wrapper .outgoing a{color:var(--chatMessageOutgoingLink,#d8a070)}.chat-message-wrapper .outgoing .status{background-color:var(--chatMessageOutgoingBg,#151e2a);border:1px solid var(--chatMessageOutgoingBorder,--lightBg);color:var(--chatMessageOutgoingText,#b9b9ba)}.chat-message-wrapper .outgoing .chat-message-inner{align-items:flex-end}.chat-message-wrapper .outgoing .chat-message-menu{right:.4rem}.chat-message-wrapper .incoming a{color:var(--chatMessageIncomingLink,#d8a070)}.chat-message-wrapper .incoming .status{background-color:var(--chatMessageIncomingBg,#121a24);border:1px solid var(--chatMessageIncomingBorder,--border)}.chat-message-wrapper .incoming .created-at a,.chat-message-wrapper .incoming .status{color:var(--chatMessageIncomingText,#b9b9ba)}.chat-message-wrapper .incoming .chat-message-menu{left:.4rem}.chat-message-wrapper .chat-message-inner.with-media,.chat-message-wrapper .chat-message-inner.with-media .status{width:100%}.chat-message-wrapper .visible{opacity:1}.chat-message-date-separator{color:#b9b9ba;color:var(--faintedText,#b9b9ba);font-size:.9em;margin:1.4em 0;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}.chat-view{display:flex;height:100%}.chat-view .chat-view-inner{display:flex;height:auto;overflow:visible;width:100%}.chat-view .chat-view-body{background-color:var(--chatBg,#121a24);border-radius:10px 10px 0 0;border-radius:var(--panelRadius,10px) var(--panelRadius,10px) 0 0;box-sizing:border-box;display:flex;flex-direction:column;margin:0;min-height:calc(100vh - var(--navbar-height));overflow:visible;width:100%}.chat-view .chat-view-body:after{border-radius:0}.chat-view .message-list{display:flex;flex-direction:column;height:100%;justify-content:end;padding:0 .8em}.chat-view .footer{background-color:#121a24;background-color:var(--bg,#121a24);bottom:0;position:sticky;z-index:1}.chat-view .chat-view-heading{grid-template-columns:auto minmax(50%,1fr)}.chat-view .go-back-button{align-self:start;height:100%;line-height:1;text-align:center;width:var(--__panel-heading-height-inner)}.chat-view .jump-to-bottom-button{align-items:center;background-color:#182230;background-color:var(--btn,#182230);border-radius:100%;box-shadow:0 1px 1px rgba(0,0,0,.3),0 2px 4px rgba(0,0,0,.3);cursor:pointer;display:flex;height:2.5em;justify-content:center;opacity:0;position:absolute;right:1.3em;top:-3.2em;transition:all .35s;transition-timing-function:cubic-bezier(0,1,.5,1);visibility:hidden;width:2.5em;z-index:10}.chat-view .jump-to-bottom-button.visible{opacity:1;visibility:visible}.chat-view .jump-to-bottom-button i{color:#b9b9ba;color:var(--text,#b9b9ba);font-size:1em}.chat-view .jump-to-bottom-button .unread-message-count{border-radius:50px;font-size:.8em;left:50%;margin-top:-1rem;padding:.1em;position:absolute}.chat-view .jump-to-bottom-button .chat-loading-error{align-items:flex-end;display:flex;height:100%;width:100%}.chat-view .jump-to-bottom-button .chat-loading-error .error{width:100%}.follow-card-content-container{display:flex;flex-flow:row wrap;flex-shrink:0;justify-content:space-between;line-height:1.5em}.follow-card-button{margin-left:1em;margin-top:.5em;padding:0 1.5em}.follow-card-follow-button{margin-left:auto;margin-top:.5em;width:10em}.with-load-more-footer{border-top:1px solid #222;border-top-color:var(--border,#222);padding:10px;text-align:center}.with-load-more-footer .error{font-size:1rem}.with-load-more-footer a{cursor:pointer}.user-profile{--currentPanelStack:1;flex:2;flex-basis:500px}.user-profile .user-birthday{margin:0 .75em .5em}.user-profile .user-profile-fields{margin:0 .5em}.user-profile .user-profile-fields img{max-height:400px;max-width:100%;-o-object-fit:contain;object-fit:contain;vertical-align:middle}.user-profile .user-profile-fields img.emoji{height:18px;width:18px}.user-profile .user-profile-fields .user-profile-field{border:1px solid var(--border,#222);border-radius:4px;border-radius:var(--inputRadius,4px);display:flex;margin:.25em}.user-profile .user-profile-fields .user-profile-field .user-profile-field-name{border-right:1px solid var(--border,#222);color:var(--lightText);flex:0 1 30%;font-weight:500;min-width:120px;text-align:right}.user-profile .user-profile-fields .user-profile-field .user-profile-field-value{color:var(--text);flex:1 1 70%;margin:0 0 0 .25em}.user-profile .user-profile-fields .user-profile-field .user-profile-field-name,.user-profile .user-profile-fields .user-profile-field .user-profile-field-value{box-sizing:border-box;line-height:1.3;overflow:hidden;padding:.5em 1.5em;text-overflow:ellipsis;white-space:nowrap}.user-profile .userlist-placeholder{align-items:middle;display:flex;justify-content:center;padding:2em}.user-profile-placeholder .panel-body{align-items:middle;display:flex;justify-content:center;padding:7em}.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;flex:1 1 auto;justify-content:center;text-align:center}}.search-result{border-bottom:1px solid;border-color:#222;border-color:var(--border,#222);box-sizing:border-box}.search-result-footer{background-color:#182230;background-color:var(--panel,#182230);border-color:var(--border,#222);border-style:solid;border-width:1px 0 0;padding:10px}.search-input-container{display:flex;justify-content:center;padding:.8rem}.search-input-container .search-input{box-sizing:border-box;font-size:1rem;line-height:1.125rem;padding:.5rem;width:100%}.search-input-container .search-button{margin-left:.5em}.loading-icon{padding:1em}.trend{align-items:center;display:flex}.trend .hashtag{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trend .count,.trend .hashtag{color:#b9b9ba;color:var(--text,#b9b9ba)}.trend .count{flex:0 0 auto;font-size:1.5rem;font-weight:500;line-height:2.25rem;text-align:center;width:2rem}.more-statuses-button{height:3.5em;line-height:3.5em}.interface-language-switcher .language-select{margin-right:1em}.registration-form{display:flex;flex-direction:column;margin:.6em}.registration-form .container{display:flex;flex-direction:row}.registration-form .container>*{min-width:0}.registration-form .terms-of-service{flex:0 1 50%;margin:.8em}.registration-form .text-fields{display:flex;flex:1 0;flex-direction:column;margin-top:.6em}.registration-form textarea{min-height:100px;resize:vertical}.registration-form .form-group{display:flex;flex-direction:column;line-height:2;margin-bottom:1em;padding:.3em 0}.registration-form .form-group--error{animation-duration:.6s;animation-name:shakeError;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:.85em}.registration-form .form-error ul{list-style:none;margin-top:0;padding:0 0 0 5px}.registration-form .form-error ul li:before{content:"• "}.registration-form form textarea{line-height:16px;resize:vertical}.registration-form .captcha{margin-bottom:.4em;max-width:350px}.registration-form .btn{height:2em;margin-top:.6em}.registration-form .error{text-align:center}@media (max-width:800px){.registration-form .container{flex-direction:column-reverse}}.password-reset-form{align-items:center;display:flex;flex-direction:column;margin:.6em}.password-reset-form .container{display:flex;flex:1 0;flex-direction:column;margin-top:.6em;max-width:18rem}.password-reset-form .container>*{min-width:0}.password-reset-form .form-group{display:flex;flex-direction:column;line-height:1.85em;margin-bottom:1em;padding:.3em 0}.password-reset-form .error{animation-duration:.4s;animation-name:shakeError;animation-timing-function:ease-in-out;text-align:center}.password-reset-form .alert{margin:.3em 0 1em;padding:.5em}.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 .dismiss{cursor:pointer}.follow-request-card-content-container{display:flex;flex-flow:row wrap}.follow-request-card-content-container button{flex:1 1;margin-right:.5em;margin-top:.5em;max-width:12em;min-width:8em}.follow-request-card-content-container button:last-child{margin-right:0}.tos-content{margin:1em}.staff-group{padding-left:1em;padding-top:1em}.staff-group .basic-user-card{padding-left:0}.mrf-section{margin:1em}.mrf-section table{padding-bottom:20px;padding-left:10px;text-align:left;width:100%}.mrf-section table td,.mrf-section table th{max-width:360px;overflow:hidden;vertical-align:text-top;width:180px}.mrf-section table td+td,.mrf-section table th+th{width:auto}.list-card{display:flex}.list-name{flex-grow:1}.button-list-edit,.list-name{color:#d8a070;color:var(--link,#d8a070);margin:0;padding:1em}.button-list-edit:hover,.list-name:hover{--faint:var(--selectedMenuFaintText,$fallback--faint);--faintLink:var(--selectedMenuFaintLink,$fallback--faint);--lightText:var(--selectedMenuLightText,$fallback--lightText);background-color:#151e2a;background-color:var(--selectedMenu,#151e2a);color:#d8a070;color:var(--selectedMenuText,#d8a070)}.Lists .new-list-button{padding:0 .5em}.ListsUserSearch .input-wrap{display:flex;margin:.7em .5em}.ListsUserSearch .input-wrap input{width:100%}.ListsUserSearch .search-icon{margin-right:.3em}.panel-loading{align-items:center;color:#b9b9ba;color:var(--text,#b9b9ba);display:flex;font-size:2em;height:100%;justify-content:center}.panel-loading .loading-text svg{color:#b9b9ba;color:var(--text,#b9b9ba);line-height:0;vertical-align:middle}.ListEdit{--panel-body-padding:0.5em;display:flex;flex-direction:column;height:calc(100vh - var(--navbar-height));overflow:hidden}.ListEdit .list-edit-heading{grid-template-columns:auto minmax(50%,1fr)}.ListEdit .panel-body{display:flex;flex:1;flex-direction:column;overflow:hidden}.ListEdit .list-member-management{flex:1 0 auto}.ListEdit .search-icon{margin-right:.3em}.ListEdit .users-list{overflow-y:auto;padding-bottom:.7rem}.ListEdit .members-list,.ListEdit .search-list{flex-direction:column;min-height:0;overflow:hidden}.ListEdit .go-back-button{align-self:start;height:100%;line-height:1;text-align:center;width:var(--__panel-heading-height-inner)}.ListEdit .btn{margin:0 .5em}.ListEdit .panel-footer{grid-template-columns:minmax(10%,1fr)}.ListEdit .panel-footer .footer-button{min-width:9em}.announcement-editor{align-items:stretch;display:flex;flex-direction:column}.announcement-editor .announcement-metadata{margin-top:.5em}.announcement-editor .post-textarea{box-sizing:content-box;height:10em;overflow:none;resize:vertical}.announcement{border-bottom:1px solid var(--border,#222);border-radius:0;padding:var(--status-margin,.75em)}.announcement .body,.announcement .heading{margin-bottom:var(--status-margin,.75em)}.announcement .footer,.announcement .footer .times{display:flex;flex-direction:column}.announcement .footer .actions{display:flex;flex-direction:row;justify-content:space-evenly}.announcement .footer .actions .btn{flex:1;margin:1em;max-width:10em}.announcements-page .post-form{padding:var(--status-margin,.75em)}.announcements-page .post-form .body,.announcements-page .post-form .heading{margin-bottom:var(--status-margin,.75em)}.announcements-page .post-form .post-button{min-width:10em}
+/*# sourceMappingURL=app.a7f63ee9107a77599942.css.map*/ \ No newline at end of file
diff --git a/priv/static/static/css/app.c18a2c80794a1b699a61.css.map b/priv/static/static/css/app.a7f63ee9107a77599942.css.map
index 0660dd7a0..e59e4205a 100644
--- a/priv/static/static/css/app.c18a2c80794a1b699a61.css.map
+++ b/priv/static/static/css/app.a7f63ee9107a77599942.css.map
@@ -1 +1 @@
-{"version":3,"file":"static/css/app.c18a2c80794a1b699a61.css","mappings":"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","sources":["webpack://pleroma_fe/./src/components/modal/modal.vue","webpack://pleroma_fe/./node_modules/vue-virtual-scroller/dist/vue-virtual-scroller.css","webpack://pleroma_fe/./src/components/login_form/login_form.vue","webpack://pleroma_fe/./src/components/media_upload/media_upload.vue","webpack://pleroma_fe/./src/components/scope_selector/scope_selector.vue","webpack://pleroma_fe/./src/_variables.scss","webpack://pleroma_fe/./src/components/checkbox/checkbox.vue","webpack://pleroma_fe/./src/components/popover/popover.vue","webpack://pleroma_fe/./src/components/still-image/still-image.vue","webpack://pleroma_fe/./src/components/emoji_picker/emoji_picker.scss","webpack://pleroma_fe/./src/components/emoji_input/emoji_input.vue","webpack://pleroma_fe/./src/components/select/select.vue","webpack://pleroma_fe/./src/components/poll/poll_form.vue","webpack://pleroma_fe/./src/components/flash/flash.vue","webpack://pleroma_fe/./src/components/attachment/attachment.scss","webpack://pleroma_fe/./src/components/gallery/gallery.vue","webpack://pleroma_fe/./src/components/user_avatar/user_avatar.vue","webpack://pleroma_fe/./src/components/mention_link/mention_link.scss","webpack://pleroma_fe/./src/components/mentions_line/mentions_line.scss","webpack://pleroma_fe/./src/components/hashtag_link/hashtag_link.scss","webpack://pleroma_fe/./src/components/rich_content/rich_content.scss","webpack://pleroma_fe/./src/components/poll/poll.vue","webpack://pleroma_fe/./src/components/status_body/status_body.scss","webpack://pleroma_fe/./src/components/link-preview/link-preview.vue","webpack://pleroma_fe/./src/components/status_content/status_content.vue","webpack://pleroma_fe/./src/components/post_status_form/post_status_form.vue","webpack://pleroma_fe/./src/components/remote_follow/remote_follow.vue","webpack://pleroma_fe/./src/components/dialog_modal/dialog_modal.vue","webpack://pleroma_fe/./src/components/moderation_tools/moderation_tools.vue","webpack://pleroma_fe/./src/components/account_actions/account_actions.vue","webpack://pleroma_fe/./src/components/user_note/user_note.vue","webpack://pleroma_fe/./src/components/user_card/user_card.scss","webpack://pleroma_fe/./src/components/user_panel/user_panel.vue","webpack://pleroma_fe/./src/components/navigation/navigation_entry.vue","webpack://pleroma_fe/./src/components/navigation/navigation_pins.vue","webpack://pleroma_fe/./src/components/nav_panel/nav_panel.vue","webpack://pleroma_fe/./src/components/features_panel/features_panel.vue","webpack://pleroma_fe/./src/components/who_to_follow_panel/who_to_follow_panel.vue","webpack://pleroma_fe/./src/components/shout_panel/shout_panel.vue","webpack://pleroma_fe/./src/components/media_modal/media_modal.vue","webpack://pleroma_fe/./src/components/side_drawer/side_drawer.vue","webpack://pleroma_fe/./src/components/mobile_post_status_button/mobile_post_status_button.vue","webpack://pleroma_fe/./src/components/reply_button/reply_button.vue","webpack://pleroma_fe/./src/components/favorite_button/favorite_button.vue","webpack://pleroma_fe/./src/components/react_button/react_button.vue","webpack://pleroma_fe/./src/components/retweet_button/retweet_button.vue","webpack://pleroma_fe/./src/components/extra_buttons/extra_buttons.vue","webpack://pleroma_fe/./src/components/avatar_list/avatar_list.vue","webpack://pleroma_fe/./src/components/status_popover/status_popover.vue","webpack://pleroma_fe/./src/components/user_list_popover/user_list_popover.vue","webpack://pleroma_fe/./src/components/emoji_reactions/emoji_reactions.vue","webpack://pleroma_fe/./src/components/status/status.scss","webpack://pleroma_fe/./src/components/report/report.scss","webpack://pleroma_fe/./src/components/notification/notification.scss","webpack://pleroma_fe/./src/components/notifications/notifications.scss","webpack://pleroma_fe/./src/components/mobile_nav/mobile_nav.vue","webpack://pleroma_fe/./src/components/search_bar/search_bar.vue","webpack://pleroma_fe/./src/components/desktop_nav/desktop_nav.scss","webpack://pleroma_fe/./src/components/list/list.vue","webpack://pleroma_fe/./src/components/user_reporting_modal/user_reporting_modal.vue","webpack://pleroma_fe/./src/components/edit_status_modal/edit_status_modal.vue","webpack://pleroma_fe/./src/components/post_status_modal/post_status_modal.vue","webpack://pleroma_fe/./src/components/status_history_modal/status_history_modal.vue","webpack://pleroma_fe/./src/components/global_notice_list/global_notice_list.vue","webpack://pleroma_fe/./src/App.scss","webpack://pleroma_fe/./src/panel.scss","webpack://pleroma_fe/./src/components/thread_tree/thread_tree.vue","webpack://pleroma_fe/./src/components/conversation/conversation.vue","webpack://pleroma_fe/./src/components/timeline_menu/timeline_menu.vue","webpack://pleroma_fe/./src/components/timeline/timeline.scss","webpack://pleroma_fe/./src/components/tab_switcher/tab_switcher.scss","webpack://pleroma_fe/./src/components/chat_title/chat_title.vue","webpack://pleroma_fe/./src/components/chat_list_item/chat_list_item.scss","webpack://pleroma_fe/./src/components/basic_user_card/basic_user_card.vue","webpack://pleroma_fe/./src/components/chat_new/chat_new.scss","webpack://pleroma_fe/./src/components/chat_list/chat_list.vue","webpack://pleroma_fe/./src/components/chat_message/chat_message.scss","webpack://pleroma_fe/./src/components/chat/chat.scss","webpack://pleroma_fe/./src/components/follow_card/follow_card.vue","webpack://pleroma_fe/./src/hocs/with_load_more/with_load_more.scss","webpack://pleroma_fe/./src/components/user_profile/user_profile.vue","webpack://pleroma_fe/./src/components/search/search.vue","webpack://pleroma_fe/./src/components/interface_language_switcher/interface_language_switcher.vue","webpack://pleroma_fe/./src/components/registration/registration.vue","webpack://pleroma_fe/./src/components/password_reset/password_reset.vue","webpack://pleroma_fe/./src/components/follow_request_card/follow_request_card.vue","webpack://pleroma_fe/./src/components/terms_of_service_panel/terms_of_service_panel.vue","webpack://pleroma_fe/./src/components/staff_panel/staff_panel.vue","webpack://pleroma_fe/./src/components/mrf_transparency_panel/mrf_transparency_panel.scss","webpack://pleroma_fe/./src/components/lists_card/lists_card.vue","webpack://pleroma_fe/./src/components/lists/lists.vue","webpack://pleroma_fe/./src/components/lists_user_search/lists_user_search.vue","webpack://pleroma_fe/./src/components/panel_loading/panel_loading.vue","webpack://pleroma_fe/./src/components/lists_edit/lists_edit.vue","webpack://pleroma_fe/./src/components/announcement_editor/announcement_editor.vue","webpack://pleroma_fe/./src/components/announcement/announcement.vue","webpack://pleroma_fe/./src/components/announcements_page/announcements_page.vue"],"sourcesContent":["\n.modal-view {\n z-index: var(--ZI_modals);\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 pointer-events: none;\n animation-duration: 0.2s;\n animation-name: modal-background-fadein;\n opacity: 0;\n\n > * {\n pointer-events: initial;\n }\n\n &.modal-background {\n pointer-events: initial;\n background-color: rgb(0 0 0 / 50%);\n }\n\n &.open {\n opacity: 1;\n }\n}\n\n@keyframes modal-background-fadein {\n from {\n background-color: rgb(0 0 0 / 0%);\n }\n\n to {\n background-color: rgb(0 0 0 / 50%);\n }\n}\n",".vue-recycle-scroller{position:relative}.vue-recycle-scroller.direction-vertical:not(.page-mode){overflow-y:auto}.vue-recycle-scroller.direction-horizontal:not(.page-mode){overflow-x:auto}.vue-recycle-scroller.direction-horizontal{display:flex}.vue-recycle-scroller__slot{flex:auto 0 0}.vue-recycle-scroller__item-wrapper{flex:1;box-sizing:border-box;overflow:hidden;position:relative}.vue-recycle-scroller.ready .vue-recycle-scroller__item-view{position:absolute;top:0;left:0;will-change:transform}.vue-recycle-scroller.direction-vertical .vue-recycle-scroller__item-wrapper{width:100%}.vue-recycle-scroller.direction-horizontal .vue-recycle-scroller__item-wrapper{height:100%}.vue-recycle-scroller.ready.direction-vertical .vue-recycle-scroller__item-view{width:100%}.vue-recycle-scroller.ready.direction-horizontal .vue-recycle-scroller__item-view{height:100%}.resize-observer[data-v-b329ee4c]{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:transparent;pointer-events:none;display:block;overflow:hidden;opacity:0}.resize-observer[data-v-b329ee4c] object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}","\n@import \"../../variables\";\n\n.login-form {\n display: flex;\n flex-direction: column;\n padding: 0.6em;\n\n .btn {\n min-height: 2em;\n width: 10em;\n }\n\n .register {\n flex: 1 1;\n }\n\n .login-bottom {\n margin-top: 1em;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n }\n\n .form-group {\n display: flex;\n flex-direction: column;\n padding: 0.3em 0.5em 0.6em;\n line-height: 24px;\n }\n\n .form-bottom {\n display: flex;\n padding: 0.5em;\n height: 32px;\n\n button {\n width: 10em;\n }\n\n p {\n margin: 0.35em;\n padding: 0.35em;\n display: flex;\n }\n }\n\n .error {\n text-align: center;\n animation-name: shakeError;\n animation-duration: 0.4s;\n animation-timing-function: ease-in-out;\n }\n}\n","\n@import \"../../variables\";\n\n.media-upload {\n .hidden-input-file {\n display: none;\n }\n}\n\nlabel.media-upload {\n cursor: pointer; // We use <label> for interactivity... i wonder if it's fine\n}\n","\n@import \"../../variables\";\n\n.ScopeSelector {\n .scope {\n display: inline-block;\n cursor: pointer;\n min-width: 1.3em;\n min-height: 1.3em;\n text-align: center;\n\n &.selected svg {\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n }\n }\n}\n","$main-color: #f58d2c;\n$main-background: white;\n$darkened-background: whitesmoke;\n\n$fallback--bg: #121a24;\n$fallback--fg: #182230;\n$fallback--faint: rgb(185 185 186 / 50%);\n$fallback--text: #b9b9ba;\n$fallback--link: #d8a070;\n$fallback--icon: #666;\n$fallback--lightBg: rgb(21 30 42);\n$fallback--lightText: #b9b9ba;\n$fallback--border: #222;\n$fallback--cRed: #f00;\n$fallback--cBlue: #0095ff;\n$fallback--cGreen: #0fa00f;\n$fallback--cOrange: orange;\n\n$fallback--alertError: rgb(211 16 20 / 50%);\n$fallback--alertWarning: rgb(111 111 20 / 50%);\n\n$fallback--panelRadius: 10px;\n$fallback--checkboxRadius: 2px;\n$fallback--btnRadius: 4px;\n$fallback--inputRadius: 4px;\n$fallback--tooltipRadius: 5px;\n$fallback--avatarRadius: 4px;\n$fallback--avatarAltRadius: 10px;\n$fallback--attachmentRadius: 10px;\n$fallback--chatMessageRadius: 10px;\n\n$fallback--buttonShadow: 0 0 2px 0 rgb(0 0 0 / 100%),\n 0 1px 0 0 rgb(255 255 255 / 20%) inset,\n 0 -1px 0 0 rgb(0 0 0 / 20%) inset;\n\n$status-margin: 0.75em;\n","\n@import \"../../variables\";\n@import \"../../mixins\";\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: 0 0 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: 0.5;\n }\n\n .label {\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n }\n }\n\n input[type=\"checkbox\"] {\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 &.indeterminate-fix {\n input[type=\"checkbox\"] + .checkbox-indicator::before {\n content: \"–\";\n }\n }\n\n & > span {\n margin-left: 0.5em;\n }\n}\n","\n@import \"../../variables\";\n\n.popover-trigger-button {\n display: inline-block;\n}\n\n.popover {\n z-index: var(--ZI_popover_override, var(--ZI_popovers));\n position: fixed;\n min-width: 0;\n max-width: calc(100vw - 20px);\n box-shadow: 2px 2px 3px rgb(0 0 0 / 50%);\n box-shadow: var(--popupShadow);\n}\n\n.popover-default {\n &::after {\n content: \"\";\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 3;\n box-shadow: 1px 1px 4px rgb(0 0 0 / 60%);\n box-shadow: var(--panelShadow);\n pointer-events: none;\n }\n\n border-radius: $fallback--btnRadius;\n border-radius: var(--btnRadius, $fallback--btnRadius);\n background-color: $fallback--bg;\n background-color: var(--popover, $fallback--bg);\n color: $fallback--text;\n color: var(--popoverText, $fallback--text);\n\n --faint: var(--popoverFaintText, $fallback--faint);\n --faintLink: var(--popoverFaintLink, $fallback--faint);\n --lightText: var(--popoverLightText, $fallback--lightText);\n --postLink: var(--popoverPostLink, $fallback--link);\n --postFaintLink: var(--popoverPostFaintLink, $fallback--link);\n --icon: var(--popoverIcon, $fallback--icon);\n}\n\n.dropdown-menu {\n display: block;\n padding: 0.5rem 0;\n font-size: 1em;\n text-align: left;\n list-style: none;\n max-width: 100vw;\n z-index: var(--ZI_popover_override, var(--ZI_popovers));\n white-space: nowrap;\n\n .dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid $fallback--border;\n border-top: 1px solid var(--border, $fallback--border);\n }\n\n .dropdown-item {\n line-height: 21px;\n overflow: hidden;\n display: block;\n padding: 0.5em 0.75em;\n clear: both;\n font-weight: 400;\n text-align: inherit;\n white-space: nowrap;\n border: none;\n border-radius: 0;\n background-color: transparent;\n box-shadow: none;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n\n --btnText: var(--popoverText, $fallback--text);\n\n &-icon {\n svg {\n width: 22px;\n margin-right: 0.75rem;\n color: var(--menuPopoverIcon, $fallback--icon);\n }\n }\n\n &.-has-submenu {\n .chevron-icon {\n margin-right: 0.25rem;\n margin-left: 2rem;\n }\n }\n\n &:active,\n &:hover {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenuPopover, $fallback--lightBg);\n box-shadow: none;\n\n --btnText: var(--selectedMenuPopoverText, $fallback--link);\n --faint: var(--selectedMenuPopoverFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuPopoverFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuPopoverLightText, $fallback--lightText);\n --icon: var(--selectedMenuPopoverIcon, $fallback--icon);\n\n svg {\n color: var(--selectedMenuPopoverIcon, $fallback--icon);\n\n --icon: var(--selectedMenuPopoverIcon, $fallback--icon);\n }\n }\n\n .menu-checkbox {\n display: inline-block;\n vertical-align: middle;\n min-width: 22px;\n max-width: 22px;\n min-height: 22px;\n max-height: 22px;\n line-height: 22px;\n text-align: center;\n border-radius: 0;\n background-color: $fallback--fg;\n background-color: var(--input, $fallback--fg);\n box-shadow: 0 0 2px black inset;\n box-shadow: var(--inputShadow);\n margin-right: 0.75em;\n\n &.menu-checkbox-checked::after {\n font-size: 1.25em;\n content: \"✓\";\n }\n\n &.-radio {\n border-radius: 9999px;\n\n &.menu-checkbox-checked::after {\n font-size: 2em;\n content: \"•\";\n }\n }\n }\n }\n\n .button-default.dropdown-item {\n &,\n i[class*=\"icon-\"] {\n color: $fallback--text;\n color: var(--btnText, $fallback--text);\n }\n\n &:active {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenuPopover, $fallback--lightBg);\n color: $fallback--link;\n color: var(--selectedMenuPopoverText, $fallback--link);\n }\n\n &:disabled {\n color: $fallback--text;\n color: var(--btnDisabledText, $fallback--text);\n }\n\n &.toggled {\n color: $fallback--text;\n color: var(--btnToggledText, $fallback--text);\n }\n }\n}\n","\n@import \"../../variables\";\n\n.still-image {\n position: relative;\n line-height: 0;\n overflow: hidden;\n display: inline-flex;\n align-items: center;\n\n canvas {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n width: 100%;\n height: 100%;\n object-fit: contain;\n visibility: var(--_still-image-canvas-visibility, visible);\n }\n\n img {\n width: 100%;\n height: 100%;\n object-fit: contain;\n }\n\n &.animated {\n &::before {\n zoom: var(--_still_image-label-scale, 1);\n content: \"gif\";\n position: absolute;\n line-height: 1;\n font-size: 0.7em;\n top: 0.5em;\n left: 0.5em;\n background: rgb(127 127 127 / 50%);\n color: #fff;\n display: block;\n padding: 2px 4px;\n border-radius: $fallback--tooltipRadius;\n border-radius: var(--tooltipRadius, $fallback--tooltipRadius);\n z-index: 2;\n visibility: var(--_still-image-label-visibility, visible);\n }\n\n &:hover canvas {\n display: none;\n }\n\n &:hover::before {\n visibility: var(--_still-image-label-visibility, hidden);\n }\n\n img {\n visibility: var(--_still-image-img-visibility, hidden);\n }\n\n &:hover img {\n visibility: visible;\n }\n }\n}\n","@import \"../../variables\";\n\n$emoji-picker-header-height: 36px;\n$emoji-picker-header-picture-width: 32px;\n$emoji-picker-header-picture-height: 32px;\n$emoji-picker-emoji-size: 32px;\n\n.emoji-picker {\n width: 25em;\n max-width: calc(100vw - 20px); // popover gives 10px margin from window edge\n display: flex;\n flex-direction: column;\n background-color: $fallback--bg;\n background-color: var(--popover, $fallback--bg);\n color: $fallback--link;\n color: var(--popoverText, $fallback--link);\n\n --faint: var(--popoverFaintText, $fallback--faint);\n --faintLink: var(--popoverFaintLink, $fallback--faint);\n --lightText: var(--popoverLightText, $fallback--lightText);\n --icon: var(--popoverIcon, $fallback--icon);\n\n &-header-image {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n width: $emoji-picker-header-picture-width;\n max-width: $emoji-picker-header-picture-width;\n height: $emoji-picker-header-picture-height;\n max-height: $emoji-picker-header-picture-height;\n\n .still-image {\n max-width: 100%;\n max-height: 100%;\n height: 100%;\n width: 100%;\n object-fit: contain;\n }\n }\n\n .keep-open,\n .too-many-emoji {\n padding: 7px;\n line-height: normal;\n }\n\n .too-many-emoji {\n display: flex;\n flex-direction: column;\n }\n\n .keep-open-label {\n padding: 0 7px;\n display: flex;\n }\n\n .heading {\n display: flex;\n padding: 10px 7px 5px;\n }\n\n .content {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n min-height: 0;\n }\n\n .emoji-tabs {\n flex-grow: 1;\n display: flex;\n flex-flow: row nowrap;\n overflow-x: auto;\n }\n\n .additional-tabs {\n display: flex;\n border-left: 1px solid;\n border-left-color: $fallback--icon;\n border-left-color: var(--icon, $fallback--icon);\n padding-left: 7px;\n flex: 0 0 auto;\n }\n\n .additional-tabs,\n .emoji-tabs {\n flex-basis: auto;\n display: flex;\n align-content: center;\n\n &-item {\n padding: 0 7px;\n cursor: pointer;\n font-size: 1.85em;\n width: $emoji-picker-header-picture-width;\n max-width: $emoji-picker-header-picture-width;\n height: $emoji-picker-header-picture-height;\n max-height: $emoji-picker-header-picture-height;\n display: flex;\n align-items: center;\n\n &.disabled {\n opacity: 0.5;\n pointer-events: none;\n }\n\n &.active {\n border-bottom: 4px solid;\n\n svg {\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n }\n }\n }\n }\n\n .sticker-picker {\n flex: 1 1 auto;\n }\n\n .stickers,\n .emoji {\n &-content {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n min-height: 0;\n\n &.hidden {\n opacity: 0;\n pointer-events: none;\n position: absolute;\n }\n }\n }\n\n .emoji {\n &-search {\n padding: 5px;\n flex: 0 0 auto;\n\n input {\n width: 100%;\n }\n }\n\n &-groups {\n height: 100%;\n min-height: 200px;\n flex: 1 1 1px;\n position: relative;\n overflow: auto;\n user-select: none;\n mask:\n linear-gradient(to top, white 0, transparent 100%) bottom no-repeat,\n linear-gradient(to bottom, white 0, transparent 100%) top no-repeat,\n linear-gradient(to top, white, white);\n transition: mask-size 150ms;\n mask-size: 100% 20px, 100% 20px, auto;\n // Autoprefixed seem to ignore this one, and also syntax is different\n mask-composite: xor;\n mask-composite: exclude;\n\n &.scrolled {\n &-top {\n mask-size: 100% 20px, 100% 0, auto;\n }\n\n &-bottom {\n mask-size: 100% 0, 100% 20px, auto;\n }\n }\n }\n\n &-group {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n padding-left: 5px;\n justify-content: left;\n\n &-title {\n font-size: 0.85em;\n width: 100%;\n margin: 0;\n\n &.disabled {\n display: none;\n }\n }\n }\n\n &-item {\n width: $emoji-picker-emoji-size;\n height: $emoji-picker-emoji-size;\n box-sizing: border-box;\n display: flex;\n line-height: $emoji-picker-emoji-size;\n align-items: center;\n justify-content: center;\n margin: 4px;\n cursor: pointer;\n\n .emoji-picker-emoji.-custom {\n object-fit: contain;\n max-width: 100%;\n max-height: 100%;\n }\n\n .emoji-picker-emoji.-unicode {\n font-size: 24px;\n overflow: hidden;\n }\n }\n }\n}\n","\n@import \"../../variables\";\n\n.emoji-input {\n display: flex;\n flex-direction: column;\n position: relative;\n\n .emoji-picker-icon {\n position: absolute;\n top: 0;\n right: 0;\n margin: 0.2em 0.25em;\n font-size: 1.3em;\n cursor: pointer;\n line-height: 24px;\n\n &:hover i {\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n }\n\n .emoji-picker-panel {\n position: absolute;\n z-index: 20;\n margin-top: 2px;\n\n &.hide {\n display: none;\n }\n }\n\n input,\n textarea {\n flex: 1 0 auto;\n }\n\n &.with-picker input {\n padding-right: 30px;\n }\n\n .hidden-overlay {\n opacity: 0;\n pointer-events: none;\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n left: 0;\n overflow: hidden;\n\n /* DEBUG STUFF */\n color: red;\n\n /* set opacity to non-zero to see the overlay */\n\n .caret {\n width: 0;\n margin-right: calc(-1ch - 1px);\n border: 1px solid red;\n }\n }\n}\n\n.autocomplete {\n &-panel {\n position: absolute;\n }\n\n &-item {\n display: flex;\n cursor: pointer;\n padding: 0.2em 0.4em;\n border-bottom: 1px solid rgb(0 0 0 / 40%);\n height: 32px;\n\n .image {\n width: 32px;\n height: 32px;\n line-height: 32px;\n text-align: center;\n font-size: 32px;\n margin-right: 4px;\n\n img {\n width: 32px;\n height: 32px;\n object-fit: contain;\n }\n }\n\n .label {\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin: 0 0.1em 0 0.2em;\n\n .displayText {\n line-height: 1.5;\n }\n\n .detailText {\n font-size: 9px;\n line-height: 9px;\n }\n }\n\n &.highlighted {\n background-color: $fallback--fg;\n background-color: var(--selectedMenuPopover, $fallback--fg);\n color: var(--selectedMenuPopoverText, $fallback--text);\n\n --faint: var(--selectedMenuPopoverFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuPopoverFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuPopoverLightText, $fallback--lightText);\n --icon: var(--selectedMenuPopoverIcon, $fallback--icon);\n }\n }\n}\n","\n@import \"../../variables\";\n\n/* TODO fix order of styles */\nlabel.Select {\n padding: 0;\n\n select {\n appearance: none;\n background: transparent;\n border: none;\n color: $fallback--text;\n color: var(--inputText, --text, $fallback--text);\n margin: 0;\n padding: 0 2em 0 0.2em;\n font-family: sans-serif;\n font-family: var(--inputFont, sans-serif);\n font-size: 1em;\n width: 100%;\n z-index: 1;\n height: 2em;\n line-height: 16px;\n }\n\n .select-down-icon {\n position: absolute;\n top: 0;\n bottom: 0;\n right: 5px;\n height: 100%;\n width: 0.875em;\n color: $fallback--text;\n color: var(--inputText, $fallback--text);\n line-height: 2;\n z-index: 0;\n pointer-events: none;\n }\n}\n","\n@import \"../../variables\";\n\n.poll-form {\n display: flex;\n flex-direction: column;\n padding: 0 0.5em 0.5em;\n\n .add-option {\n align-self: flex-start;\n padding-top: 0.25em;\n padding-left: 0.1em;\n }\n\n .poll-option {\n display: flex;\n align-items: baseline;\n justify-content: space-between;\n margin-bottom: 0.25em;\n }\n\n .input-container {\n width: 100%;\n\n input {\n // Hack: dodge the floating X icon\n padding-right: 2.5em;\n width: 100%;\n }\n }\n\n .delete-option {\n // Hack: Move the icon over the input box\n width: 1.5em;\n margin-left: -1.5em;\n z-index: 1;\n }\n\n .poll-type-expiry {\n margin-top: 0.5em;\n display: flex;\n width: 100%;\n }\n\n .poll-type {\n margin-right: 0.75em;\n flex: 1 1 60%;\n\n .poll-type-select {\n padding-right: 0.75em;\n }\n }\n\n .poll-expiry {\n display: flex;\n\n .expiry-amount {\n width: 3em;\n text-align: right;\n }\n }\n}\n","\n@import \"../../variables\";\n\n.Flash {\n display: inline-block;\n width: 100%;\n height: 100%;\n position: relative;\n\n .player {\n height: 100%;\n width: 100%;\n }\n\n .placeholder {\n height: 100%;\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--bg);\n color: var(--link);\n }\n\n .hider {\n top: 0;\n }\n\n .label {\n text-align: center;\n flex: 1 1 0;\n line-height: 1.2;\n white-space: normal;\n word-wrap: normal;\n }\n\n .hidden {\n display: none;\n visibility: \"hidden\";\n }\n}\n","@import \"../../variables\";\n\n.Attachment {\n display: inline-flex;\n flex-direction: column;\n position: relative;\n align-self: flex-start;\n line-height: 0;\n height: 100%;\n border-style: solid;\n border-width: 1px;\n border-radius: $fallback--attachmentRadius;\n border-radius: var(--attachmentRadius, $fallback--attachmentRadius);\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n\n .attachment-wrapper {\n flex: 1 1 auto;\n height: 100%;\n position: relative;\n overflow: hidden;\n }\n\n .description-container {\n flex: 0 1 0;\n display: flex;\n padding-top: 0.5em;\n z-index: 1;\n\n p {\n flex: 1;\n text-align: center;\n line-height: 1.5;\n padding: 0.5em;\n margin: 0;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n &.-static {\n position: absolute;\n left: 0;\n right: 0;\n bottom: 0;\n padding-top: 0;\n background: var(--popover);\n box-shadow: var(--popupShadow);\n }\n }\n\n .description-field {\n flex: 1;\n min-width: 0;\n }\n\n & .placeholder-container,\n & .image-container,\n & .audio-container,\n & .video-container,\n & .flash-container,\n & .oembed-container {\n display: flex;\n justify-content: center;\n width: 100%;\n height: 100%;\n }\n\n .image-container {\n .image {\n width: 100%;\n height: 100%;\n }\n }\n\n & .flash-container,\n & .video-container {\n & .flash,\n & video {\n width: 100%;\n height: 100%;\n object-fit: contain;\n align-self: center;\n }\n }\n\n .audio-container {\n display: flex;\n align-items: flex-end;\n\n audio {\n width: 100%;\n height: 100%;\n }\n }\n\n .placeholder-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding-top: 0.5em;\n }\n\n .play-icon {\n position: absolute;\n font-size: 64px;\n top: calc(50% - 32px);\n left: calc(50% - 32px);\n color: rgb(255 255 255 / 75%);\n text-shadow: 0 0 2px rgb(0 0 0 / 40%);\n\n &::before {\n margin: 0;\n }\n }\n\n .attachment-buttons {\n display: flex;\n position: absolute;\n right: 0;\n top: 0;\n margin-top: 0.5em;\n margin-right: 0.5em;\n z-index: 1;\n\n .attachment-button {\n padding: 0;\n border-radius: $fallback--tooltipRadius;\n border-radius: var(--tooltipRadius, $fallback--tooltipRadius);\n text-align: center;\n width: 2em;\n height: 2em;\n margin-left: 0.5em;\n font-size: 1.25em;\n // TODO: theming? hard to theme with unknown background image color\n background: rgb(230 230 230 / 70%);\n\n .svg-inline--fa {\n color: rgb(0 0 0 / 60%);\n }\n\n &:hover .svg-inline--fa {\n color: rgb(0 0 0 / 90%);\n }\n }\n }\n\n &.-contain-fit {\n img,\n canvas {\n object-fit: contain;\n }\n }\n\n &.-cover-fit {\n img,\n canvas {\n object-fit: cover;\n }\n }\n\n .oembed-container {\n line-height: 1.2em;\n flex: 1 0 100%;\n width: 100%;\n margin-right: 15px;\n display: flex;\n\n img {\n width: 100%;\n }\n\n .image {\n flex: 1;\n\n img {\n border: 0;\n border-radius: 5px;\n height: 100%;\n object-fit: cover;\n }\n }\n\n .text {\n flex: 2;\n margin: 8px;\n word-break: break-all;\n\n h1 {\n font-size: 1rem;\n margin: 0;\n }\n }\n }\n\n &.-size-small {\n .play-icon {\n zoom: 0.5;\n opacity: 0.7;\n }\n\n .attachment-buttons {\n zoom: 0.7;\n opacity: 0.5;\n }\n }\n\n &.-editable {\n padding: 0.5em;\n\n & .description-container,\n & .attachment-buttons {\n margin: 0;\n }\n }\n\n &.-placeholder {\n display: inline-block;\n color: $fallback--link;\n color: var(--postLink, $fallback--link);\n overflow: hidden;\n white-space: nowrap;\n height: auto;\n line-height: 1.5;\n\n &:not(.-editable) {\n border: none;\n }\n\n &.-editable {\n display: flex;\n flex-direction: row;\n align-items: baseline;\n\n & .description-container,\n & .attachment-buttons {\n margin: 0;\n padding: 0;\n position: relative;\n }\n\n .description-container {\n flex: 1;\n padding-left: 0.5em;\n }\n\n .attachment-buttons {\n order: 99;\n align-self: center;\n }\n }\n\n a {\n display: inline-block;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n svg {\n color: inherit;\n }\n }\n\n &.-loading {\n cursor: progress;\n }\n\n &.-compact {\n .placeholder-container {\n padding-bottom: 0.5em;\n }\n }\n}\n","\n@import \"../../variables\";\n\n.Gallery {\n .gallery-rows {\n display: flex;\n flex-direction: column;\n }\n\n .gallery-row {\n position: relative;\n height: 0;\n width: 100%;\n flex-grow: 1;\n\n .gallery-row-inner {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n flex-flow: row wrap;\n align-content: stretch;\n\n .gallery-item {\n margin: 0 0.5em 0 0;\n flex-grow: 1;\n height: 100%;\n box-sizing: border-box;\n // to make failed images a bit more noticeable on chromium\n min-width: 2em;\n\n &:last-child {\n margin: 0;\n }\n }\n\n &.-grid {\n width: 100%;\n height: auto;\n position: relative;\n display: grid;\n grid-gap: 0.5em;\n grid-template-columns: repeat(auto-fill, minmax(15em, 1fr));\n\n .gallery-item {\n margin: 0;\n height: 200px;\n }\n }\n }\n\n &.-grid,\n &.-minimal {\n height: auto;\n\n .gallery-row-inner {\n position: relative;\n }\n }\n\n &:not(:first-child) {\n margin-top: 0.5em;\n }\n }\n\n &.-long {\n .gallery-rows {\n max-height: 25em;\n overflow: hidden;\n mask:\n linear-gradient(to top, white, transparent) bottom/100% 70px no-repeat,\n linear-gradient(to top, white, white);\n\n /* Autoprefixed seem to ignore this one, and also syntax is different */\n mask-composite: xor;\n mask-composite: exclude;\n }\n }\n\n .many-attachments-text {\n text-align: center;\n line-height: 2;\n }\n\n .many-attachments-buttons {\n display: flex;\n }\n\n .many-attachments-button {\n display: flex;\n flex: 1;\n justify-content: center;\n line-height: 2;\n\n button {\n padding: 0 2em;\n }\n }\n}\n","\n@import \"../../variables\";\n\n.Avatar {\n --_avatarShadowBox: var(--avatarStatusShadow);\n --_avatarShadowFilter: var(--avatarStatusShadowFilter);\n --_avatarShadowInset: var(--avatarStatusShadowInset);\n --_still-image-label-visibility: hidden;\n\n display: inline-block;\n position: relative;\n width: 48px;\n height: 48px;\n\n &.-compact {\n width: 32px;\n height: 32px;\n border-radius: $fallback--avatarAltRadius;\n border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);\n }\n\n .avatar {\n width: 100%;\n height: 100%;\n box-shadow: var(--_avatarShadowBox);\n border-radius: $fallback--avatarRadius;\n border-radius: var(--avatarRadius, $fallback--avatarRadius);\n\n &.-better-shadow {\n box-shadow: var(--_avatarShadowInset);\n filter: var(--_avatarShadowFilter);\n }\n\n &.-animated::before {\n display: none;\n }\n\n &.-compact {\n border-radius: $fallback--avatarAltRadius;\n border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);\n }\n\n &.-placeholder {\n background-color: $fallback--fg;\n background-color: var(--fg, $fallback--fg);\n }\n }\n\n img {\n width: 100%;\n height: 100%;\n }\n\n .bot-indicator {\n position: absolute;\n bottom: 0;\n right: 0;\n margin: -0.2em;\n padding: 0.2em;\n background: rgb(127 127 127 / 50%);\n color: #fff;\n border-radius: var(--tooltipRadius);\n }\n}\n","@import \"../../variables\";\n\n.MentionLink {\n position: relative;\n white-space: normal;\n display: inline;\n color: var(--link);\n word-break: normal;\n\n & .new,\n & .original {\n display: inline;\n border-radius: 2px;\n }\n\n .mention-avatar {\n border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n user-select: none;\n margin-right: 0.2em;\n }\n\n .full {\n position: absolute;\n display: inline-block;\n pointer-events: none;\n opacity: 0;\n top: 100%;\n left: 0;\n height: 100%;\n word-wrap: normal;\n white-space: nowrap;\n transition: opacity 0.2s ease;\n z-index: 1;\n margin-top: 0.25em;\n padding: 0.5em;\n user-select: all;\n }\n\n & .short.-with-tooltip,\n & .you {\n user-select: none;\n }\n\n & .short,\n & .full {\n white-space: nowrap;\n }\n\n .shortName {\n white-space: normal;\n }\n\n .new {\n &.-you {\n .shortName {\n font-weight: 600;\n }\n }\n\n &.-has-selection {\n color: var(--alertNeutralText, $fallback--text);\n background-color: var(--alertNeutral, $fallback--fg);\n }\n\n .at {\n color: var(--link);\n opacity: 0.8;\n display: inline-block;\n line-height: 1;\n padding: 0 0.1em;\n vertical-align: -25%;\n margin: 0;\n }\n\n &.-striped {\n & .shortName {\n background-image:\n repeating-linear-gradient(\n 135deg,\n var(--____highlight-tintColor),\n var(--____highlight-tintColor) 5px,\n var(--____highlight-tintColor2) 5px,\n var(--____highlight-tintColor2) 10px\n );\n }\n }\n\n &.-solid {\n .shortName {\n background-image: linear-gradient(var(--____highlight-tintColor2), var(--____highlight-tintColor2));\n }\n }\n\n &.-side {\n .shortName {\n box-shadow: 0 -5px 3px -4px inset var(--____highlight-solidColor);\n }\n }\n }\n\n .serverName.-faded {\n color: var(--faintLink, $fallback--link);\n }\n}\n\n.mention-link-popover {\n max-width: 70ch;\n max-height: 20rem;\n overflow: hidden;\n}\n",".MentionsLine {\n word-break: break-all;\n\n .mention-link:not(:first-child)::before {\n content: \" \";\n }\n\n .showMoreLess {\n margin-left: 0.5em;\n white-space: normal;\n color: var(--link);\n }\n}\n",".HashtagLink {\n position: relative;\n white-space: normal;\n display: inline-block;\n color: var(--link);\n}\n","@import \"../../variables\";\n\n.RichContent {\n blockquote {\n margin: 0.2em 0 0.2em 0.2em;\n font-style: italic;\n border-left: 0.2em solid var(--faint, $fallback--faint);\n padding-left: 1em;\n }\n\n pre {\n overflow: auto;\n }\n\n code,\n samp,\n kbd,\n var,\n pre {\n font-family: var(--postCodeFont, monospace);\n }\n\n p {\n margin: 0 0 1em;\n }\n\n p:last-child {\n margin: 0;\n }\n\n h1 {\n font-size: 1.1em;\n line-height: 1.2em;\n margin: 1.4em 0;\n }\n\n h2 {\n font-size: 1.1em;\n margin: 1em 0;\n }\n\n h3 {\n font-size: 1em;\n margin: 1.2em 0;\n }\n\n h4 {\n margin: 1.1em 0;\n }\n\n .img {\n display: inline-block;\n }\n\n .emoji {\n display: inline-block;\n width: var(--emoji-size, 32px);\n height: var(--emoji-size, 32px);\n }\n\n .img,\n video {\n max-width: 100%;\n max-height: 400px;\n vertical-align: middle;\n object-fit: contain;\n }\n}\n","\n@import \"../../variables\";\n\n.poll {\n .votes {\n display: flex;\n flex-direction: column;\n margin: 0 0 0.5em;\n }\n\n .poll-option {\n margin: 0.75em 0.5em;\n }\n\n .option-result {\n height: 100%;\n display: flex;\n flex-direction: row;\n position: relative;\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n }\n\n .option-result-label {\n display: flex;\n align-items: center;\n padding: 0.1em 0.25em;\n z-index: 1;\n word-break: break-word;\n }\n\n .result-percentage {\n width: 3.5em;\n flex-shrink: 0;\n }\n\n .result-fill {\n height: 100%;\n position: absolute;\n color: $fallback--text;\n color: var(--pollText, $fallback--text);\n background-color: $fallback--lightBg;\n background-color: var(--poll, $fallback--lightBg);\n border-radius: $fallback--panelRadius;\n border-radius: var(--panelRadius, $fallback--panelRadius);\n top: 0;\n left: 0;\n transition: width 0.5s;\n }\n\n .option-vote {\n display: flex;\n align-items: center;\n }\n\n input {\n width: 3.5em;\n }\n\n .footer {\n display: flex;\n align-items: center;\n }\n\n &.loading * {\n cursor: progress;\n }\n\n .poll-vote-button {\n padding: 0 0.5em;\n margin-right: 0.5em;\n }\n\n .poll-checkbox {\n display: none;\n }\n}\n","@import \"../../variables\";\n\n.StatusBody {\n display: flex;\n flex-direction: column;\n\n .emoji {\n --_still_image-label-scale: 0.5;\n }\n\n .attachments {\n margin-top: 0.5em;\n }\n\n & .text,\n & .summary {\n font-family: var(--postFont, sans-serif);\n white-space: pre-wrap;\n overflow-wrap: break-word;\n word-wrap: break-word;\n word-break: break-word;\n line-height: var(--post-line-height);\n }\n\n .summary {\n display: block;\n font-style: italic;\n padding-bottom: 0.5em;\n }\n\n .text {\n &.-single-line {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n height: 1.4em;\n }\n }\n\n .summary-wrapper {\n margin-bottom: 0.5em;\n border-style: solid;\n border-width: 0 0 1px;\n border-color: var(--border, $fallback--border);\n flex-grow: 0;\n\n &.-tall {\n position: relative;\n\n .summary {\n max-height: 2em;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n }\n }\n\n .text-wrapper {\n display: flex;\n flex-flow: column nowrap;\n\n &.-tall-status {\n position: relative;\n height: 220px;\n overflow-x: hidden;\n overflow-y: hidden;\n z-index: 1;\n\n .media-body {\n min-height: 0;\n mask:\n linear-gradient(to top, white, transparent) bottom/100% 70px no-repeat,\n linear-gradient(to top, white, white);\n\n /* Autoprefixed seem to ignore this one, and also syntax is different */\n mask-composite: xor;\n mask-composite: exclude;\n }\n }\n }\n\n & .tall-status-hider,\n & .tall-subject-hider,\n & .status-unhider,\n & .cw-status-hider {\n display: inline-block;\n word-break: break-all;\n width: 100%;\n text-align: center;\n }\n\n .tall-status-hider {\n position: absolute;\n height: 70px;\n margin-top: 150px;\n line-height: 110px;\n z-index: 2;\n }\n\n .tall-subject-hider {\n // position: absolute;\n padding-bottom: 0.5em;\n }\n\n & .status-unhider,\n & .cw-status-hider {\n word-break: break-all;\n\n svg {\n color: inherit;\n }\n }\n\n .greentext {\n color: $fallback--cGreen;\n color: var(--postGreentext, $fallback--cGreen);\n }\n\n .cyantext {\n color: var(--postCyantext, $fallback--cBlue);\n }\n\n &.-compact {\n align-items: top;\n flex-direction: row;\n\n --emoji-size: 16px;\n\n & .body,\n & .attachments {\n max-height: 3.25em;\n }\n\n .body {\n overflow: hidden;\n white-space: normal;\n min-width: 5em;\n flex: 5 1 auto;\n mask-size: auto 3.5em, auto auto;\n mask-position: 0 0, 0 0;\n mask-repeat: repeat-x, repeat;\n mask-image: linear-gradient(to bottom, white 2em, transparent 3em);\n\n /* Autoprefixed seem to ignore this one, and also syntax is different */\n mask-composite: xor;\n mask-composite: exclude;\n }\n\n .attachments {\n margin-top: 0;\n flex: 1 1 0;\n min-width: 5em;\n height: 100%;\n margin-left: 0.5em;\n }\n\n .summary-wrapper {\n .summary::after {\n content: \": \";\n }\n\n line-height: inherit;\n margin: 0;\n border: none;\n display: inline-block;\n }\n\n .text-wrapper {\n display: inline-block;\n }\n }\n}\n","\n@import \"../../variables\";\n\n.link-preview-card {\n display: flex;\n flex-direction: row;\n cursor: pointer;\n overflow: hidden;\n margin-top: 0.5em;\n\n .card-image {\n flex-shrink: 0;\n width: 120px;\n max-width: 25%;\n\n img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: $fallback--attachmentRadius;\n border-radius: var(--attachmentRadius, $fallback--attachmentRadius);\n }\n }\n\n .card-content {\n max-height: 100%;\n margin: 0.5em;\n display: flex;\n flex-direction: column;\n }\n\n .card-host {\n font-size: 0.85em;\n }\n\n .card-description {\n margin: 0.5em 0 0;\n overflow: hidden;\n text-overflow: ellipsis;\n word-break: break-word;\n line-height: 1.2em;\n // cap description at 3 lines, the 1px is to clean up some stray pixels\n // TODO: fancier fade-out at the bottom to show off that it's too long?\n max-height: calc(1.2em * 3 - 1px);\n }\n\n .nsfw-alert {\n margin: 2em 0;\n }\n\n color: $fallback--text;\n color: var(--text, $fallback--text);\n border-style: solid;\n border-width: 1px;\n border-radius: $fallback--attachmentRadius;\n border-radius: var(--attachmentRadius, $fallback--attachmentRadius);\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n}\n","\n.StatusContent {\n flex: 1;\n min-width: 0;\n}\n","\n@import \"../../variables\";\n\n.post-status-form {\n position: relative;\n\n .attachments {\n margin-bottom: 0.5em;\n }\n\n .form-bottom {\n display: flex;\n justify-content: space-between;\n padding: 0.5em;\n height: 2.5em;\n\n button {\n width: 10em;\n }\n\n p {\n margin: 0.35em;\n padding: 0.35em;\n display: flex;\n }\n }\n\n .form-bottom-left {\n display: flex;\n flex: 1;\n padding-right: 7px;\n margin-right: 7px;\n max-width: 10em;\n }\n\n .preview-heading {\n display: flex;\n padding-left: 0.5em;\n }\n\n .preview-toggle {\n flex: 1;\n cursor: pointer;\n user-select: none;\n\n &:hover {\n text-decoration: underline;\n }\n\n svg,\n i {\n margin-left: 0.2em;\n font-size: 0.8em;\n transform: rotate(90deg);\n }\n }\n\n .preview-container {\n margin-bottom: 1em;\n }\n\n .preview-error {\n font-style: italic;\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n }\n\n .preview-status {\n border: 1px solid $fallback--border;\n border: 1px solid var(--border, $fallback--border);\n border-radius: $fallback--tooltipRadius;\n border-radius: var(--tooltipRadius, $fallback--tooltipRadius);\n padding: 0.5em;\n margin: 0;\n }\n\n .reply-or-quote-selector {\n margin-bottom: 0.5em;\n }\n\n .text-format {\n .only-format {\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n }\n }\n\n .visibility-tray {\n display: flex;\n justify-content: space-between;\n padding-top: 5px;\n align-items: baseline;\n }\n\n .visibility-notice.edit-warning {\n > :first-child {\n margin-top: 0;\n }\n\n > :last-child {\n margin-bottom: 0;\n }\n }\n\n // Order is not necessary but a good indicator\n .media-upload-icon {\n order: 1;\n justify-content: left;\n }\n\n .emoji-icon {\n order: 2;\n justify-content: center;\n }\n\n .poll-icon {\n order: 3;\n justify-content: right;\n }\n\n .media-upload-icon,\n .poll-icon,\n .emoji-icon {\n font-size: 1.85em;\n line-height: 1.1;\n flex: 1;\n padding: 0 0.1em;\n display: flex;\n align-items: center;\n\n &.selected,\n &:hover {\n // needs to be specific to override icon default color\n svg,\n i,\n label {\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n }\n }\n\n &.disabled {\n svg,\n i {\n cursor: not-allowed;\n color: $fallback--icon;\n color: var(--btnDisabledText, $fallback--icon);\n\n &:hover {\n color: $fallback--icon;\n color: var(--btnDisabledText, $fallback--icon);\n }\n }\n }\n }\n\n .error {\n text-align: center;\n }\n\n .media-upload-wrapper {\n margin-right: 0.2em;\n margin-bottom: 0.5em;\n width: 18em;\n\n img,\n video {\n object-fit: contain;\n max-height: 10em;\n }\n\n .video {\n max-height: 10em;\n }\n\n input {\n flex: 1;\n width: 100%;\n }\n }\n\n .status-input-wrapper {\n display: flex;\n position: relative;\n width: 100%;\n flex-direction: column;\n }\n\n .btn[disabled] {\n cursor: not-allowed;\n }\n\n form {\n display: flex;\n flex-direction: column;\n margin: 0.6em;\n position: relative;\n }\n\n .form-group {\n display: flex;\n flex-direction: column;\n padding: 0.25em 0.5em 0.5em;\n line-height: 1.85;\n }\n\n .form-post-body {\n // TODO: make a resizable textarea component?\n box-sizing: content-box; // needed for easier computation of dynamic size\n overflow: hidden;\n transition: min-height 200ms 100ms;\n // stock padding + 1 line of text (for counter)\n padding-bottom: calc(var(--_padding) + var(--post-line-height) * 1em);\n // two lines of text\n height: calc(var(--post-line-height) * 1em);\n min-height: calc(var(--post-line-height) * 1em);\n resize: none;\n\n &.scrollable-form {\n overflow-y: auto;\n }\n }\n\n .main-input {\n position: relative;\n }\n\n .character-counter {\n position: absolute;\n bottom: 0;\n right: 0;\n padding: 0;\n margin: 0 0.5em;\n\n &.error {\n color: $fallback--cRed;\n color: var(--cRed, $fallback--cRed);\n }\n }\n\n @keyframes fade-in {\n from { opacity: 0; }\n to { opacity: 0.6; }\n }\n\n @keyframes fade-out {\n from { opacity: 0.6; }\n to { opacity: 0; }\n }\n\n .drop-indicator {\n position: absolute;\n width: 100%;\n height: 100%;\n font-size: 5em;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0.6;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n border-radius: $fallback--tooltipRadius;\n border-radius: var(--tooltipRadius, $fallback--tooltipRadius);\n border: 2px dashed $fallback--text;\n border: 2px dashed var(--text, $fallback--text);\n }\n}\n","\n.remote-follow {\n max-width: 220px;\n\n .remote-button {\n width: 100%;\n min-height: 2em;\n }\n}\n","\n@import \"../../variables\";\n\n// TODO: unify with other modals.\n.dark-overlay {\n &::before {\n bottom: 0;\n content: \" \";\n display: block;\n cursor: default;\n left: 0;\n position: fixed;\n right: 0;\n top: 0;\n background: rgb(27 31 35 / 50%);\n z-index: 2000;\n }\n}\n\n.dialog-modal.panel {\n top: 0;\n left: 50%;\n max-height: 80vh;\n max-width: 90vw;\n margin: 15vh auto;\n position: fixed;\n transform: translateX(-50%);\n z-index: 2001;\n cursor: default;\n display: block;\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n\n .dialog-modal-heading {\n .title {\n text-align: center;\n }\n }\n\n .dialog-modal-content {\n margin: 0;\n padding: 1rem;\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n white-space: normal;\n }\n\n .dialog-modal-footer {\n margin: 0;\n padding: 0.5em;\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n border-top: 1px solid $fallback--border;\n border-top: 1px solid var(--border, $fallback--border);\n display: flex;\n justify-content: flex-end;\n\n button {\n width: auto;\n margin-left: 0.5rem;\n }\n }\n}\n\n","\n@import \"../../variables\";\n\n.moderation-tools-popover {\n height: 100%;\n\n .trigger {\n /* stylelint-disable-next-line declaration-no-important */\n display: flex !important;\n height: 100%;\n }\n}\n\n.moderation-tools-button {\n svg,\n i {\n font-size: 0.8em;\n }\n}\n","\n@import \"../../variables\";\n\n.AccountActions {\n .ellipsis-button {\n width: 2.5em;\n margin: -0.5em 0;\n padding: 0.5em 0;\n text-align: center;\n\n &:not(:hover) .icon {\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n }\n }\n}\n","\n@import \"../../variables\";\n\n.user-note {\n display: flex;\n flex-direction: column;\n\n .heading {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 0.75em;\n\n .btn {\n min-width: 95px;\n }\n\n .buttons {\n display: flex;\n flex-direction: row;\n justify-content: right;\n\n .btn {\n margin-left: 0.5em;\n }\n }\n }\n\n .note-text {\n align-self: stretch;\n }\n\n .note-text.-blank {\n font-style: italic;\n color: var(--faint, $fallback--faint);\n }\n}\n","@import \"../../variables\";\n\n.user-card {\n position: relative;\n z-index: 1;\n\n &:hover {\n --_still-image-img-visibility: visible;\n --_still-image-canvas-visibility: hidden;\n --_still-image-label-visibility: hidden;\n }\n\n .panel-heading {\n padding: 0.5em 0;\n text-align: center;\n box-shadow: none;\n background: transparent;\n flex-direction: column;\n align-items: stretch;\n // create new stacking context\n position: relative;\n }\n\n .panel-body {\n word-wrap: break-word;\n border-bottom-right-radius: inherit;\n border-bottom-left-radius: inherit;\n // create new stacking context\n position: relative;\n }\n\n .background-image {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n mask:\n linear-gradient(to top, white, transparent) bottom no-repeat,\n linear-gradient(to top, white, white);\n // Autoprefixer seem to ignore this one, and also syntax is different\n mask-composite: xor;\n mask-composite: exclude;\n background-size: cover;\n mask-size: 100% 60%;\n border-top-left-radius: calc(var(--__roundnessTop, --panelRadius) - 1px);\n border-top-right-radius: calc(var(--__roundnessTop, --panelRadius) - 1px);\n border-bottom-left-radius: calc(var(--__roundnessBottom, --panelRadius) - 1px);\n border-bottom-right-radius: calc(var(--__roundnessBottom, --panelRadius) - 1px);\n background-color: var(--profileBg);\n z-index: -2;\n\n &.hide-bio {\n mask-size: 100% 40px;\n }\n }\n\n &-bio {\n text-align: center;\n display: block;\n line-height: 1.3;\n padding: 1em;\n margin: 0;\n\n a {\n color: $fallback--link;\n color: var(--postLink, $fallback--link);\n }\n\n img {\n object-fit: contain;\n vertical-align: middle;\n max-width: 100%;\n max-height: 400px;\n }\n }\n\n &.-rounded-t {\n border-top-left-radius: $fallback--panelRadius;\n border-top-left-radius: var(--panelRadius, $fallback--panelRadius);\n border-top-right-radius: $fallback--panelRadius;\n border-top-right-radius: var(--panelRadius, $fallback--panelRadius);\n\n --__roundnessTop: var(--panelRadius);\n --__roundnessBottom: 0;\n }\n\n &.-rounded {\n border-radius: $fallback--panelRadius;\n border-radius: var(--panelRadius, $fallback--panelRadius);\n\n --__roundnessTop: var(--panelRadius);\n --__roundnessBottom: var(--panelRadius);\n }\n\n &.-popover {\n border-radius: $fallback--tooltipRadius;\n border-radius: var(--tooltipRadius, $fallback--tooltipRadius);\n\n --__roundnessTop: var(--tooltipRadius);\n --__roundnessBottom: var(--tooltipRadius);\n }\n\n &.-bordered {\n border-width: 1px;\n border-style: solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n }\n}\n\n.user-info {\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n padding: 0 26px;\n\n a {\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n\n &:hover {\n color: var(--icon);\n }\n }\n\n .container {\n min-width: 0;\n padding: 16px 0 6px;\n display: flex;\n align-items: flex-start;\n max-height: 56px;\n\n > * {\n min-width: 0;\n }\n\n > a {\n vertical-align: middle;\n display: flex;\n }\n\n .Avatar {\n --_avatarShadowBox: var(--avatarShadow);\n --_avatarShadowFilter: var(--avatarShadowFilter);\n --_avatarShadowInset: var(--avatarShadowInset);\n\n width: 56px;\n height: 56px;\n object-fit: cover;\n }\n }\n\n &-avatar {\n position: relative;\n cursor: pointer;\n\n &.-overlay {\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n background-color: rgb(0 0 0 / 30%);\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: $fallback--avatarRadius;\n border-radius: var(--avatarRadius, $fallback--avatarRadius);\n opacity: 0;\n transition: opacity 0.2s ease;\n\n svg {\n color: #fff;\n }\n }\n\n &:hover &.-overlay {\n opacity: 1;\n }\n }\n\n .external-link-button,\n .edit-profile-button {\n cursor: pointer;\n width: 2.5em;\n text-align: center;\n margin: -0.5em 0;\n padding: 0.5em 0;\n\n &:not(:hover) .icon {\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n }\n }\n\n .bottom-line {\n font-weight: light;\n font-size: 1.1em;\n align-items: baseline;\n\n .lock-icon {\n margin-left: 0.5em;\n }\n\n .user-screen-name {\n min-width: 1px;\n flex: 0 1 auto;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n .dailyAvg {\n min-width: 1px;\n flex: 0 0 auto;\n margin-left: 1em;\n font-size: 0.7em;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n\n .user-role {\n flex: none;\n color: $fallback--text;\n color: var(--alertNeutralText, $fallback--text);\n background-color: $fallback--fg;\n background-color: var(--alertNeutral, $fallback--fg);\n }\n }\n\n .user-summary {\n display: block;\n margin-left: 0.6em;\n text-align: left;\n text-overflow: ellipsis;\n white-space: nowrap;\n flex: 1 1 0;\n // This is so that text doesn't get overlapped by avatar's shadow if it has\n // big one\n z-index: 1;\n line-height: 2em;\n\n --emoji-size: 1.7em;\n\n .top-line,\n .bottom-line {\n display: flex;\n }\n }\n\n .user-name {\n text-overflow: ellipsis;\n overflow: hidden;\n flex: 1 1 auto;\n margin-right: 1em;\n font-size: 1.1em;\n }\n\n .user-meta {\n margin-bottom: 0.15em;\n display: flex;\n align-items: baseline;\n line-height: 22px;\n flex-wrap: wrap;\n\n .following {\n flex: 1 0 auto;\n margin: 0;\n margin-bottom: 0.25em;\n text-align: left;\n }\n\n .highlighter {\n flex: 0 1 auto;\n display: flex;\n flex-wrap: wrap;\n margin-right: -0.5em;\n align-self: start;\n\n .userHighlightCl {\n padding: 2px 10px;\n flex: 1 0 auto;\n }\n\n .userHighlightSel {\n padding-top: 0;\n padding-bottom: 0;\n flex: 1 0 auto;\n }\n\n .userHighlightText {\n width: 70px;\n flex: 1 0 auto;\n }\n\n .userHighlightCl,\n .userHighlightText,\n .userHighlightSel {\n vertical-align: top;\n margin-right: 0.5em;\n margin-bottom: 0.25em;\n }\n }\n }\n\n .user-interactions {\n position: relative;\n display: flex;\n flex-flow: row wrap;\n margin-right: -0.75em;\n\n > * {\n margin: 0 0.75em 0.6em 0;\n white-space: nowrap;\n min-width: 95px;\n }\n\n button {\n margin: 0;\n }\n }\n\n .user-note {\n margin: 0 0.75em 0.6em 0;\n }\n}\n\n.sidebar .edit-profile-button {\n display: none;\n}\n\n.user-counts {\n display: flex;\n line-height: 16px;\n padding: 0.5em 1.5em 0;\n text-align: center;\n justify-content: space-between;\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n flex-wrap: wrap;\n}\n\n.user-count {\n flex: 1 0 auto;\n padding: 0.5em 0;\n margin: 0 0.5em;\n\n h5 {\n font-size: 1em;\n font-weight: bolder;\n margin: 0 0 0.25em;\n }\n\n /* stylelint-disable-next-line no-descending-specificity */\n a {\n text-decoration: none;\n }\n}\n\n.mute-expiry {\n display: flex;\n flex-direction: row;\n}\n","\n.user-panel .signed-in {\n overflow: visible;\n z-index: 10;\n}\n","\n@import \"../../variables\";\n\n.NavigationEntry {\n display: flex;\n box-sizing: border-box;\n align-items: baseline;\n height: 3.5em;\n line-height: 3.5em;\n padding: 0 1em;\n width: 100%;\n color: $fallback--link;\n color: var(--link, $fallback--link);\n\n .timelines-chevron {\n margin-right: 0;\n }\n\n .main-link {\n flex: 1;\n }\n\n .menu-icon {\n margin-right: 0.8em;\n }\n\n .extra-button {\n width: 3em;\n text-align: center;\n\n &:last-child {\n margin-right: -0.8em;\n }\n }\n\n &:hover {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n color: $fallback--link;\n color: var(--selectedMenuText, $fallback--link);\n\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n\n .menu-icon {\n --icon: var(--text, $fallback--icon);\n }\n }\n\n &.-active {\n font-weight: bolder;\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n color: $fallback--text;\n color: var(--selectedMenuText, $fallback--text);\n\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n\n .menu-icon {\n --icon: var(--text, $fallback--icon);\n }\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n","\n@import \"../../variables\";\n\n.NavigationPins {\n display: flex;\n flex-wrap: wrap;\n overflow: hidden;\n height: 100%;\n\n .alert-dot {\n border-radius: 100%;\n height: 0.5em;\n width: 0.5em;\n position: absolute;\n right: calc(50% - 0.75em);\n top: calc(50% - 0.5em);\n background-color: $fallback--cRed;\n background-color: var(--badgeNotification, $fallback--cRed);\n }\n\n .pinned-item {\n position: relative;\n flex: 1 0 3em;\n min-width: 2em;\n text-align: center;\n overflow: visible;\n box-sizing: border-box;\n height: 100%;\n\n & .svg-inline--fa,\n & .iconLetter {\n margin: 0;\n }\n\n &.router-link-active {\n color: $fallback--text;\n color: var(--panelText, $fallback--text);\n border-bottom: 4px solid;\n\n & .svg-inline--fa,\n & .iconLetter {\n color: inherit;\n }\n }\n }\n}\n","\n@import \"../../variables\";\n\n.NavPanel {\n .panel {\n overflow: hidden;\n box-shadow: var(--panelShadow);\n }\n\n ul {\n list-style: none;\n margin: 0;\n padding: 0;\n }\n\n li {\n position: relative;\n border-bottom: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n }\n\n > li {\n &:first-child .menu-item {\n border-top-right-radius: $fallback--panelRadius;\n border-top-right-radius: var(--panelRadius, $fallback--panelRadius);\n border-top-left-radius: $fallback--panelRadius;\n border-top-left-radius: var(--panelRadius, $fallback--panelRadius);\n }\n\n &:last-child .menu-item {\n border-bottom-right-radius: $fallback--panelRadius;\n border-bottom-right-radius: var(--panelRadius, $fallback--panelRadius);\n border-bottom-left-radius: $fallback--panelRadius;\n border-bottom-left-radius: var(--panelRadius, $fallback--panelRadius);\n }\n }\n\n li:last-child {\n border: none;\n }\n\n .navigation-chevron {\n margin-left: 0.8em;\n margin-right: 0.8em;\n font-size: 1.1em;\n }\n\n .timelines-chevron {\n margin-left: 0.8em;\n font-size: 1.1em;\n }\n\n .timelines-background {\n padding: 0 0 0 0.6em;\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n border-bottom: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n }\n\n .timelines {\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n }\n\n .nav-panel-heading {\n // breaks without a unit\n // stylelint-disable-next-line length-zero-no-unit\n --panel-heading-height-padding: 0px;\n }\n}\n","\n .features-panel li {\n line-height: 24px;\n }\n","\n .who-to-follow * {\n vertical-align: middle;\n }\n\n .who-to-follow img {\n width: 32px;\n height: 32px;\n }\n\n .who-to-follow {\n padding: 0 1em;\n margin: 0;\n }\n\n .who-to-follow-items {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 0;\n margin: 1em 0;\n }\n\n .who-to-follow-more {\n padding: 0;\n margin: 1em 0;\n text-align: center;\n }\n","\n@import \"../../variables\";\n\n.floating-shout {\n position: fixed;\n bottom: 0.5em;\n z-index: var(--ZI_popovers);\n max-width: 25em;\n\n &.-left {\n left: 0.5em;\n }\n\n &:not(.-left) {\n right: 0.5em;\n }\n}\n\n.shout-panel {\n .shout-heading {\n cursor: pointer;\n\n .icon {\n color: $fallback--text;\n color: var(--panelText, $fallback--text);\n margin-right: 0.5em;\n }\n\n .title {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n }\n\n .shout-window {\n overflow-y: auto;\n overflow-x: hidden;\n max-height: 20em;\n }\n\n .shout-window-container {\n height: 100%;\n }\n\n .shout-message {\n display: flex;\n padding: 0.2em 0.5em;\n }\n\n .shout-avatar {\n img {\n height: 24px;\n width: 24px;\n border-radius: $fallback--avatarRadius;\n border-radius: var(--avatarRadius, $fallback--avatarRadius);\n margin-right: 0.5em;\n margin-top: 0.25em;\n }\n }\n\n .shout-input {\n display: flex;\n\n textarea {\n flex: 1;\n margin: 0.6em;\n min-height: 3.5em;\n resize: none;\n }\n }\n\n .shout-panel {\n .title {\n display: flex;\n justify-content: space-between;\n }\n }\n}\n","\n$modal-view-button-icon-height: 3em;\n$modal-view-button-icon-half-height: calc(#{$modal-view-button-icon-height} / 2);\n$modal-view-button-icon-width: 3em;\n$modal-view-button-icon-margin: 0.5em;\n\n.media-modal-view {\n @keyframes media-fadein {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n }\n\n .modal-image-container {\n display: flex;\n overflow: hidden;\n align-items: center;\n flex-direction: column;\n max-width: 100%;\n max-height: 100%;\n width: 100%;\n height: 100%;\n flex-grow: 1;\n justify-content: center;\n\n &-inner {\n width: 100%;\n height: 100%;\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n }\n }\n\n .description,\n .counter {\n /* Hardcoded since background is also hardcoded */\n color: white;\n margin-top: 1em;\n text-shadow: 0 0 10px black, 0 0 10px black;\n padding: 0.2em 2em;\n }\n\n .description {\n flex: 0 0 auto;\n overflow-y: auto;\n min-height: 1em;\n max-width: 500px;\n max-height: 9.5em;\n word-break: break-all;\n }\n\n .modal-image {\n max-width: 100%;\n max-height: 100%;\n image-orientation: from-image; // NOTE: only FF supports this\n animation: 0.1s cubic-bezier(0.7, 0, 1, 0.6) media-fadein;\n\n &.loading {\n opacity: 0.5;\n }\n }\n\n .loading-spinner {\n width: 100%;\n height: 100%;\n position: absolute;\n pointer-events: none;\n display: flex;\n justify-content: center;\n align-items: center;\n\n svg {\n color: white;\n }\n }\n\n .modal-view-button {\n border: 0;\n padding: 0;\n opacity: 0;\n box-shadow: none;\n background: none;\n appearance: none;\n overflow: visible;\n cursor: pointer;\n transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);\n height: $modal-view-button-icon-height;\n width: $modal-view-button-icon-width;\n\n .button-icon {\n position: absolute;\n height: $modal-view-button-icon-height;\n width: $modal-view-button-icon-width;\n font-size: 1rem;\n line-height: $modal-view-button-icon-height;\n color: #fff;\n text-align: center;\n background-color: rgb(0 0 0 / 30%);\n }\n }\n\n .modal-view-button-arrow {\n position: absolute;\n display: block;\n top: 50%;\n margin-top: $modal-view-button-icon-half-height;\n width: $modal-view-button-icon-width;\n height: $modal-view-button-icon-height;\n\n .arrow-icon {\n position: absolute;\n top: 0;\n line-height: $modal-view-button-icon-height;\n color: #fff;\n text-align: center;\n background-color: rgb(0 0 0 / 30%);\n }\n\n &--prev {\n left: 0;\n\n .arrow-icon {\n left: $modal-view-button-icon-margin;\n }\n }\n\n &--next {\n right: 0;\n\n .arrow-icon {\n right: $modal-view-button-icon-margin;\n }\n }\n }\n\n .modal-view-button-hide {\n position: absolute;\n top: 0;\n right: 0;\n\n .button-icon {\n top: $modal-view-button-icon-margin;\n right: $modal-view-button-icon-margin;\n }\n }\n}\n\n.modal-view.media-modal-view {\n z-index: var(--ZI_media_modal);\n flex-direction: column;\n\n .modal-view-button-arrow,\n .modal-view-button-hide {\n opacity: 0.75;\n\n &:focus,\n &:hover {\n outline: none;\n box-shadow: none;\n }\n\n &:hover {\n opacity: 1;\n }\n }\n\n overflow: hidden;\n}\n","\n@import \"../../variables\";\n\n.side-drawer-container {\n position: fixed;\n z-index: var(--ZI_navbar);\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: stretch;\n transition-duration: 0s;\n transition-property: transform;\n}\n\n.side-drawer-container-open {\n transform: translate(0%);\n}\n\n.side-drawer-container-closed {\n transition-delay: 0.35s;\n transform: translate(-100%);\n}\n\n.side-drawer-darken {\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n position: fixed;\n z-index: -1;\n transition: 0.35s;\n transition-property: background-color;\n background-color: rgb(0 0 0 / 50%);\n}\n\n.side-drawer-darken-closed {\n background-color: rgb(0 0 0 / 0%);\n}\n\n.side-drawer-click-outside {\n flex: 1 1 100%;\n}\n\n.side-drawer {\n overflow-x: hidden;\n transition: 0.35s;\n transition-timing-function: cubic-bezier(0, 1, 0.5, 1);\n transition-property: transform;\n margin: 0 0 0 -100px;\n padding: 0 0 1em 100px;\n width: 80%;\n max-width: 20em;\n flex: 0 0 80%;\n box-shadow: 1px 1px 4px rgb(0 0 0 / 60%);\n box-shadow: var(--panelShadow);\n background-color: $fallback--bg;\n background-color: var(--popover, $fallback--bg);\n color: $fallback--link;\n color: var(--popoverText, $fallback--link);\n\n --faint: var(--popoverFaintText, $fallback--faint);\n --faintLink: var(--popoverFaintLink, $fallback--faint);\n --lightText: var(--popoverLightText, $fallback--lightText);\n --icon: var(--popoverIcon, $fallback--icon);\n\n .badge {\n margin-left: 10px;\n }\n}\n\n.side-drawer-logo-wrapper {\n display: flex;\n align-items: center;\n padding: 0.85em;\n\n img {\n flex: none;\n height: 50px;\n margin-right: 0.85em;\n }\n\n span {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n}\n\n.side-drawer-click-outside-closed {\n flex: 0 0 0;\n}\n\n.side-drawer-closed {\n transform: translate(-100%);\n}\n\n.side-drawer-heading {\n background: transparent;\n flex-direction: column;\n align-items: stretch;\n display: flex;\n padding: 0;\n margin: 0;\n}\n\n.side-drawer ul {\n list-style: none;\n margin: 0;\n padding: 0;\n border-bottom: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n}\n\n.side-drawer ul:last-child {\n border: 0;\n}\n\n.side-drawer li {\n padding: 0;\n\n a,\n button {\n box-sizing: border-box;\n display: block;\n height: 3em;\n line-height: 3em;\n padding: 0 0.7em;\n\n &:hover {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenuPopover, $fallback--lightBg);\n color: $fallback--text;\n color: var(--selectedMenuPopoverText, $fallback--text);\n\n --faint: var(--selectedMenuPopoverFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuPopoverFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuPopoverLightText, $fallback--lightText);\n --icon: var(--selectedMenuPopoverIcon, $fallback--icon);\n }\n }\n}\n","\n@import \"../../variables\";\n\n.MobilePostButton {\n &.button-default {\n width: 5em;\n height: 5em;\n border-radius: 100%;\n position: fixed;\n bottom: 1.5em;\n right: 1.5em;\n // TODO: this needs its own color, it has to stand out enough and link color\n // is not very optimal for this particular use.\n background-color: $fallback--fg;\n background-color: var(--btn, $fallback--fg);\n display: flex;\n justify-content: center;\n align-items: center;\n box-shadow: 0 2px 2px rgb(0 0 0 / 30%), 0 4px 6px rgb(0 0 0 / 30%);\n z-index: 10;\n transition: 0.35s transform;\n transition-timing-function: cubic-bezier(0, 1, 0.5, 1);\n }\n\n &.hidden {\n transform: translateY(150%);\n }\n\n svg {\n font-size: 1.5em;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n}\n\n@media all and (min-width: 801px) {\n .new-status-button:not(.always-show) {\n display: none;\n }\n}\n\n","\n@import \"../../variables\";\n@import \"../../mixins\";\n\n.ReplyButton {\n display: flex;\n\n > :first-child {\n padding: 10px;\n margin: -10px -8px -10px -10px;\n }\n\n .action-counter {\n pointer-events: none;\n user-select: none;\n }\n\n .interactive {\n &:hover .svg-inline--fa,\n &.-active .svg-inline--fa {\n color: $fallback--cBlue;\n color: var(--cBlue, $fallback--cBlue);\n }\n\n @include unfocused-style {\n .focus-marker {\n visibility: hidden;\n }\n }\n\n @include focused-style {\n .focus-marker {\n visibility: visible;\n }\n }\n }\n}\n","\n@import \"../../variables\";\n@import \"../../mixins\";\n\n.FavoriteButton {\n display: flex;\n\n > :first-child {\n padding: 10px;\n margin: -10px -8px -10px -10px;\n }\n\n .action-counter {\n pointer-events: none;\n user-select: none;\n }\n\n .interactive {\n .svg-inline--fa {\n animation-duration: 0.6s;\n }\n\n &:hover .svg-inline--fa,\n &.-favorited .svg-inline--fa {\n color: $fallback--cOrange;\n color: var(--cOrange, $fallback--cOrange);\n }\n\n @include unfocused-style {\n .focus-marker {\n visibility: hidden;\n }\n\n .active-marker {\n visibility: visible;\n }\n }\n\n @include focused-style {\n .focus-marker {\n visibility: visible;\n }\n\n .active-marker {\n visibility: hidden;\n }\n }\n }\n}\n","\n@import \"../../variables\";\n@import \"../../mixins\";\n\n.ReactButton {\n .reaction-picker-filter {\n padding: 0.5em;\n display: flex;\n\n input {\n flex: 1;\n }\n }\n\n .reaction-picker-divider {\n height: 1px;\n width: 100%;\n margin: 0.5em;\n background-color: var(--border, $fallback--border);\n }\n\n .reaction-picker {\n width: 10em;\n height: 9em;\n font-size: 1.5em;\n overflow-y: scroll;\n display: flex;\n flex-wrap: wrap;\n padding: 0.5em;\n text-align: center;\n align-content: flex-start;\n user-select: none;\n mask:\n linear-gradient(to top, white 0, transparent 100%) bottom no-repeat,\n linear-gradient(to bottom, white 0, transparent 100%) top no-repeat,\n linear-gradient(to top, white, white);\n transition: mask-size 150ms;\n mask-size: 100% 20px, 100% 20px, auto;\n\n /* Autoprefixed seem to ignore this one, and also syntax is different */\n mask-composite: xor;\n mask-composite: exclude;\n\n .emoji-button {\n cursor: pointer;\n flex-basis: 20%;\n line-height: 1.5;\n align-content: center;\n\n &:hover {\n transform: scale(1.25);\n }\n }\n }\n\n .popover-trigger {\n padding: 10px;\n margin: -10px;\n\n &:hover .svg-inline--fa {\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n\n @include unfocused-style {\n .focus-marker {\n visibility: hidden;\n }\n }\n\n @include focused-style {\n .focus-marker {\n visibility: visible;\n }\n }\n }\n}\n\n","\n@import \"../../variables\";\n@import \"../../mixins\";\n\n.RetweetButton {\n display: flex;\n\n > :first-child {\n padding: 10px;\n margin: -10px -8px -10px -10px;\n }\n\n .action-counter {\n pointer-events: none;\n user-select: none;\n }\n\n .interactive {\n .svg-inline--fa {\n animation-duration: 0.6s;\n }\n\n &:hover .svg-inline--fa,\n &.-repeated .svg-inline--fa {\n color: $fallback--cGreen;\n color: var(--cGreen, $fallback--cGreen);\n }\n\n @include unfocused-style {\n .focus-marker {\n visibility: hidden;\n }\n\n .active-marker {\n visibility: visible;\n }\n }\n\n @include focused-style {\n .focus-marker {\n visibility: visible;\n }\n\n .active-marker {\n visibility: hidden;\n }\n }\n }\n}\n","\n@import \"../../variables\";\n@import \"../../mixins\";\n\n.ExtraButtons {\n .popover-trigger {\n position: static;\n padding: 10px;\n margin: -10px;\n\n &:hover .svg-inline--fa {\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n }\n\n .popover-trigger-button {\n /* override of popover internal stuff */\n width: auto;\n\n @include unfocused-style {\n .focus-marker {\n visibility: hidden;\n }\n }\n\n @include focused-style {\n .focus-marker {\n visibility: visible;\n }\n }\n }\n}\n","\n@import \"../../variables\";\n\n.avatars {\n display: flex;\n margin: 0;\n padding: 0;\n\n // For hiding overflowing elements\n flex-wrap: wrap;\n height: 24px;\n\n .avatars-item {\n margin: 0 0 5px 5px;\n\n &:first-child {\n padding-left: 5px;\n }\n\n .avatar-small {\n border-radius: $fallback--avatarAltRadius;\n border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);\n height: 24px;\n width: 24px;\n }\n }\n}\n","\n@import \"../../variables\";\n\n/* popover styles load on-demand, so we need to override */\n.status-popover.popover {\n font-size: 1rem;\n min-width: 15em;\n max-width: 95%;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n border-style: solid;\n border-width: 1px;\n border-radius: $fallback--tooltipRadius;\n border-radius: var(--tooltipRadius, $fallback--tooltipRadius);\n\n /* TODO cleanup this */\n .Status.Status {\n border: none;\n }\n\n .status-preview-no-content {\n padding: 1em;\n text-align: center;\n\n i {\n font-size: 2em;\n }\n }\n}\n\n","\n@import \"../../variables\";\n\n.user-list-popover {\n padding: 0.5em;\n\n --emoji-size: 16px;\n\n .user-list-row {\n padding: 0.25em;\n display: flex;\n flex-direction: row;\n\n .user-list-names {\n display: flex;\n flex-direction: column;\n margin-left: 0.5em;\n min-width: 5em;\n\n img {\n width: 1em;\n height: 1em;\n }\n }\n\n .user-list-screen-name {\n font-size: 0.65em;\n }\n }\n}\n\n","\n@import \"../../variables\";\n@import \"../../mixins\";\n\n.EmojiReactions {\n display: flex;\n margin-top: 0.25em;\n flex-wrap: wrap;\n\n --emoji-size: calc(1.25em * var(--emojiReactionsScale, 1));\n\n .emoji-reaction-container {\n display: flex;\n align-items: stretch;\n margin-top: 0.5em;\n margin-right: 0.5em;\n\n .emoji-reaction-popover {\n padding: 0;\n\n .emoji-reaction-count-button {\n background-color: var(--btn);\n margin: 0;\n height: 100%;\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n box-sizing: border-box;\n min-width: 2em;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n color: $fallback--text;\n color: var(--btnText, $fallback--text);\n\n &.-picked-reaction {\n border: 1px solid var(--accent, $fallback--link);\n margin-right: -1px;\n }\n }\n }\n }\n\n .emoji-reaction {\n padding-left: 0.5em;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n margin: 0;\n\n .reaction-emoji {\n width: var(--emoji-size);\n height: var(--emoji-size);\n margin-right: 0.25em;\n line-height: var(--emoji-size);\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n .reaction-emoji-content {\n max-width: 100%;\n max-height: 100%;\n width: auto;\n height: auto;\n line-height: inherit;\n overflow: hidden;\n font-size: calc(var(--emoji-size) * 0.8);\n margin: 0;\n }\n\n &:focus {\n outline: none;\n }\n\n .svg-inline--fa {\n color: $fallback--text;\n color: var(--btnText, $fallback--text);\n }\n\n &.-picked-reaction {\n border: 1px solid var(--accent, $fallback--link);\n margin-left: -1px; // offset the border, can't use inset shadows either\n margin-right: -1px;\n\n .svg-inline--fa {\n color: $fallback--link;\n color: var(--accent, $fallback--link);\n }\n }\n\n @include unfocused-style {\n .focus-marker {\n visibility: hidden;\n }\n\n .active-marker {\n visibility: visible;\n }\n }\n\n @include focused-style {\n .svg-inline--fa {\n color: $fallback--link;\n color: var(--accent, $fallback--link);\n }\n\n .focus-marker {\n visibility: visible;\n }\n\n .active-marker {\n visibility: hidden;\n }\n }\n }\n\n .emoji-reaction-expand {\n padding: 0 0.5em;\n margin-right: 0.5em;\n margin-top: 0.5em;\n display: flex;\n align-items: center;\n justify-content: center;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n","@import \"../../variables\";\n\n.Status {\n min-width: 0;\n white-space: normal;\n word-wrap: break-word;\n word-break: break-word;\n\n &:hover {\n --_still-image-img-visibility: visible;\n --_still-image-canvas-visibility: hidden;\n --_still-image-label-visibility: hidden;\n }\n\n &.-focused {\n background-color: $fallback--lightBg;\n background-color: var(--selectedPost, $fallback--lightBg);\n color: $fallback--text;\n color: var(--selectedPostText, $fallback--text);\n\n --lightText: var(--selectedPostLightText, $fallback--light);\n --faint: var(--selectedPostFaintText, $fallback--faint);\n --faintLink: var(--selectedPostFaintLink, $fallback--faint);\n --postLink: var(--selectedPostPostLink, $fallback--faint);\n --postFaintLink: var(--selectedPostFaintPostLink, $fallback--faint);\n --icon: var(--selectedPostIcon, $fallback--icon);\n }\n\n .gravestone {\n padding: var(--status-margin, $status-margin);\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n display: flex;\n\n .deleted-text {\n margin: 0.5em 0;\n align-items: center;\n }\n }\n\n .status-container {\n display: flex;\n padding: var(--status-margin, $status-margin);\n\n > * {\n min-width: 0;\n }\n\n &.-repeat {\n padding-top: 0;\n }\n }\n\n .pin {\n padding: var(--status-margin, $status-margin) var(--status-margin, $status-margin) 0;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n }\n\n ._misclick-prevention & {\n pointer-events: none;\n\n .attachments {\n pointer-events: initial;\n cursor: initial;\n }\n }\n\n .left-side {\n margin-right: var(--status-margin, $status-margin);\n }\n\n .right-side {\n flex: 1;\n min-width: 0;\n }\n\n .usercard {\n margin-bottom: var(--status-margin, $status-margin);\n }\n\n .status-username {\n white-space: nowrap;\n overflow: hidden;\n max-width: 85%;\n font-weight: bold;\n flex-shrink: 1;\n margin-right: 0.4em;\n text-overflow: ellipsis;\n\n --_still_image-label-scale: 0.25;\n --emoji-size: 14px;\n }\n\n .status-favicon {\n height: 18px;\n width: 18px;\n margin-right: 0.4em;\n }\n\n .status-heading {\n margin-bottom: 0.5em;\n }\n\n .heading-name-row {\n display: flex;\n justify-content: space-between;\n line-height: 1.3;\n\n a {\n display: inline-block;\n word-break: break-all;\n }\n }\n\n .account-name {\n min-width: 1.6em;\n margin-right: 0.4em;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n flex: 1 1 0;\n }\n\n .heading-left {\n display: flex;\n min-width: 0;\n }\n\n .heading-right {\n display: flex;\n flex-shrink: 0;\n\n .button-unstyled {\n padding: 5px;\n margin: -5px;\n\n &:hover svg {\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n }\n }\n\n .svg-inline--fa {\n margin-left: 0.25em;\n }\n }\n\n .glued-label {\n display: inline-flex;\n white-space: nowrap;\n }\n\n .timeago {\n margin-right: 0.2em;\n }\n\n & .heading-reply-row,\n & .heading-edited-row {\n position: relative;\n align-content: baseline;\n font-size: 0.85em;\n margin-top: 0.2em;\n line-height: 130%;\n max-width: 100%;\n align-items: stretch;\n }\n\n & .reply-to-popover,\n & .reply-to-no-popover,\n & .mentions {\n min-width: 0;\n margin-right: 0.4em;\n flex-shrink: 0;\n }\n\n .reply-glued-label {\n margin-right: 0.5em;\n }\n\n .reply-to-popover {\n .reply-to:hover::before {\n content: \"\";\n display: block;\n position: absolute;\n bottom: 0;\n width: 100%;\n border-bottom: 1px solid var(--faint);\n pointer-events: none;\n }\n\n .faint-link:hover {\n // override default\n text-decoration: none;\n }\n\n &.-strikethrough {\n .reply-to::after {\n content: \"\";\n display: block;\n position: absolute;\n top: 50%;\n width: 100%;\n border-bottom: 1px solid var(--faint);\n pointer-events: none;\n }\n }\n }\n\n & .mentions,\n & .reply-to {\n white-space: nowrap;\n position: relative;\n }\n\n & .mentions-text,\n & .reply-to-text {\n color: var(--faint);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .mentions-line {\n display: inline;\n }\n\n .replies {\n margin-top: 0.25em;\n line-height: 1.3;\n font-size: 0.85em;\n display: flex;\n flex-wrap: wrap;\n\n & > * {\n margin-right: 0.4em;\n }\n }\n\n .reply-link {\n height: 17px;\n }\n\n .repeat-info {\n padding: 0.4em var(--status-margin, $status-margin);\n\n .repeat-icon {\n color: $fallback--cGreen;\n color: var(--cGreen, $fallback--cGreen);\n }\n }\n\n .repeater-avatar {\n border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);\n margin-left: 28px;\n width: 20px;\n height: 20px;\n }\n\n .repeater-name {\n text-overflow: ellipsis;\n margin-right: 0;\n\n .emoji {\n width: 14px;\n height: 14px;\n vertical-align: middle;\n object-fit: contain;\n }\n }\n\n .status-fadein {\n animation-duration: 0.4s;\n animation-name: fadein;\n }\n\n @keyframes fadein {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n }\n\n .status-actions {\n position: relative;\n width: 100%;\n display: flex;\n margin-top: var(--status-margin, $status-margin);\n\n > * {\n max-width: 4em;\n flex: 1;\n }\n }\n\n .muted {\n padding: 0.25em 0.6em;\n height: 1.2em;\n line-height: 1.2em;\n text-overflow: ellipsis;\n overflow: hidden;\n display: flex;\n flex-wrap: nowrap;\n\n & .status-username,\n & .mute-thread,\n & .mute-words {\n word-wrap: normal;\n word-break: normal;\n white-space: nowrap;\n }\n\n & .status-username,\n & .mute-words {\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n .status-username {\n font-weight: normal;\n flex: 0 1 auto;\n margin-right: 0.2em;\n font-size: smaller;\n }\n\n .mute-thread {\n flex: 0 0 auto;\n }\n\n .mute-words {\n flex: 1 0 5em;\n margin-left: 0.2em;\n\n &::before {\n content: \" \";\n }\n }\n\n .unmute {\n flex: 0 0 auto;\n margin-left: auto;\n display: block;\n }\n }\n\n .reply-form {\n padding-top: 0;\n padding-bottom: 0;\n }\n\n .reply-body {\n flex: 1;\n }\n\n .favs-repeated-users {\n margin-top: var(--status-margin, $status-margin);\n }\n\n .stats {\n width: 100%;\n display: flex;\n line-height: 1em;\n }\n\n .avatar-row {\n flex: 1;\n overflow: hidden;\n position: relative;\n display: flex;\n align-items: center;\n\n &::before {\n content: \"\";\n position: absolute;\n height: 100%;\n width: 1px;\n left: 0;\n background-color: var(--faint, $fallback--faint);\n }\n }\n\n .stat-count {\n margin-right: var(--status-margin, $status-margin);\n user-select: none;\n\n .stat-title {\n color: var(--faint, $fallback--faint);\n font-size: 0.85em;\n text-transform: uppercase;\n position: relative;\n }\n\n .stat-number {\n font-weight: bolder;\n font-size: 1.1em;\n line-height: 1em;\n }\n\n &:hover .stat-title {\n text-decoration: underline;\n }\n }\n\n @media all and (max-width: 800px) {\n .repeater-avatar {\n margin-left: 20px;\n }\n\n .post-avatar {\n width: 40px;\n height: 40px;\n\n // TODO define those other way somehow?\n // stylelint-disable rscss/class-format\n &.-compact {\n width: 32px;\n height: 32px;\n }\n }\n }\n\n .quoted-status {\n margin-top: 0.5em;\n border: 1px solid var(--border, $fallback--border);\n border-radius: var(--attachmentRadius, $fallback--attachmentRadius);\n\n &.-unavailable-prompt {\n padding: 0.5em;\n }\n }\n\n .display-quoted-status-button {\n margin: 0.5em;\n\n &-icon {\n color: inherit;\n }\n }\n}\n","@import \"../../variables\";\n\n.Report {\n .report-content {\n margin: 0.5em 0 1em;\n }\n\n .report-state {\n margin: 0.5em 0 1em;\n }\n\n .reported-status {\n border: 1px solid $fallback--faint;\n border-color: var(--faint, $fallback--faint);\n border-radius: $fallback--inputRadius;\n border-radius: var(--inputRadius, $fallback--inputRadius);\n color: $fallback--text;\n color: var(--text, $fallback--text);\n display: block;\n padding: 0.5em;\n margin: 0.5em 0;\n\n .status-content {\n pointer-events: none;\n }\n\n .reported-status-heading {\n display: flex;\n width: 100%;\n justify-content: space-between;\n margin-bottom: 0.2em;\n }\n\n .reported-status-name {\n font-weight: bold;\n }\n }\n\n .note {\n width: 100%;\n margin-bottom: 0.5em;\n }\n}\n","@import \"../../variables\";\n\n// TODO Copypaste from Status, should unify it somehow\n.Notification {\n border-bottom: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n word-wrap: break-word;\n word-break: break-word;\n\n --emoji-size: 14px;\n\n &:hover {\n --_still-image-img-visibility: visible;\n --_still-image-canvas-visibility: hidden;\n --_still-image-label-visibility: hidden;\n }\n\n &.-muted {\n padding: 0.25em 0.6em;\n height: 1.2em;\n line-height: 1.2em;\n text-overflow: ellipsis;\n overflow: hidden;\n display: flex;\n flex-wrap: nowrap;\n\n & .status-username,\n & .mute-thread,\n & .mute-words {\n word-wrap: normal;\n word-break: normal;\n white-space: nowrap;\n }\n\n & .status-username,\n & .mute-words {\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n .status-username {\n font-weight: normal;\n flex: 0 1 auto;\n margin-right: 0.2em;\n font-size: smaller;\n }\n\n .mute-thread {\n flex: 0 0 auto;\n }\n\n .mute-words {\n flex: 1 0 5em;\n margin-left: 0.2em;\n\n &::before {\n content: \" \";\n }\n }\n\n .unmute {\n flex: 0 0 auto;\n margin-left: auto;\n display: block;\n }\n }\n\n .type-icon {\n margin: 0 0.1em;\n }\n\n &.-type--repeat .type-icon {\n color: $fallback--cGreen;\n color: var(--cGreen, $fallback--cGreen);\n }\n\n &.-type--follow .type-icon {\n color: $fallback--cBlue;\n color: var(--cBlue, $fallback--cBlue);\n }\n\n &.-type--follow-request .type-icon {\n color: $fallback--cBlue;\n color: var(--cBlue, $fallback--cBlue);\n }\n\n &.-type--like .type-icon {\n color: orange;\n color: $fallback--cOrange;\n color: var(--cOrange, $fallback--cOrange);\n }\n\n &.-type--move .type-icon {\n color: $fallback--cBlue;\n color: var(--cBlue, $fallback--cBlue);\n }\n}\n","@import \"../../variables\";\n\n.Notifications {\n &:not(.minimal) {\n // a bit of a hack to allow scrolling below notifications\n padding-bottom: 15em;\n }\n\n .loadmore-error {\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n\n .notification {\n position: relative;\n\n .notification-overlay {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n bottom: 0;\n pointer-events: none;\n }\n\n &.unseen {\n .notification-overlay {\n background-image: linear-gradient(135deg, var(--badgeNotification, $fallback--cRed) 4px, transparent 10px);\n }\n }\n }\n}\n\n/* stylelint-disable-next-line no-descending-specificity */\n.notification {\n box-sizing: border-box;\n\n &:hover .animated.Avatar {\n canvas {\n display: none;\n }\n\n img {\n visibility: visible;\n }\n }\n\n &:last-child .Notification {\n border-bottom: none;\n }\n\n .non-mention {\n display: flex;\n flex: 1;\n flex-wrap: nowrap;\n padding: 0.6em;\n min-width: 0;\n\n .avatar-container {\n width: 32px;\n height: 32px;\n }\n\n .faint {\n --link: var(--faintLink);\n --text: var(--faint);\n }\n }\n\n .follow-request-accept {\n &:hover {\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n }\n\n .follow-request-reject {\n &:hover {\n color: $fallback--cRed;\n color: var(--cRed, $fallback--cRed);\n }\n }\n\n .follow-text,\n .move-text {\n padding: 0.5em 0;\n overflow-wrap: break-word;\n display: flex;\n justify-content: space-between;\n\n .follow-name {\n display: block;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n }\n\n /* TODO cleanup this */\n .Status {\n flex: 1;\n }\n\n time {\n white-space: nowrap;\n }\n\n .notification-right {\n flex: 1;\n padding-left: 0.8em;\n min-width: 0;\n\n .timeago {\n min-width: 3em;\n text-align: right;\n }\n\n .timeago-link {\n margin-right: 0.2em;\n }\n\n .expand-icon {\n .svg-inline--fa {\n margin-left: 0.25em;\n }\n }\n }\n\n .emoji-reaction-emoji {\n font-size: 1.3em;\n max-width: 1.25em;\n height: 1.25em;\n width: auto;\n }\n\n .emoji-reaction-emoji-image {\n vertical-align: middle;\n object-fit: contain;\n }\n\n .notification-details {\n min-width: 0;\n word-wrap: break-word;\n line-height: var(--post-line-height);\n position: relative;\n overflow: hidden;\n width: 100%;\n flex: 1 1 0;\n display: flex;\n flex-wrap: nowrap;\n justify-content: space-between;\n\n .name-and-action {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .username {\n font-weight: bolder;\n max-width: 100%;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .timeago {\n margin-right: 0.2em;\n }\n\n .status-content {\n margin: 0;\n max-height: 300px;\n }\n\n h1 {\n word-break: break-all;\n margin: 0 0 0.3em;\n padding: 0;\n font-size: 1em;\n line-height: 1.5;\n\n small {\n font-weight: lighter;\n }\n }\n\n p {\n margin: 0;\n margin-top: 0;\n margin-bottom: 0.3em;\n }\n }\n}\n","\n@import \"../../variables\";\n\n.MobileNav {\n z-index: var(--ZI_navbar);\n\n .mobile-nav {\n display: grid;\n line-height: var(--navbar-height);\n grid-template-rows: 50px;\n grid-template-columns: 2fr auto;\n width: 100%;\n box-sizing: border-box;\n\n a {\n color: var(--topBarLink, $fallback--link);\n }\n }\n\n .mobile-inner-nav {\n width: 100%;\n display: flex;\n align-items: center;\n }\n\n .mobile-nav-button {\n display: inline-block;\n text-align: center;\n padding: 0 1em;\n position: relative;\n cursor: pointer;\n }\n\n .site-name {\n padding: 0 0.3em;\n display: inline-block;\n }\n\n .item {\n /* moslty just to get rid of extra whitespaces */\n display: flex;\n }\n\n .alert-dot {\n border-radius: 100%;\n height: 8px;\n width: 8px;\n position: absolute;\n left: calc(50% - 4px);\n top: calc(50% - 4px);\n margin-left: 6px;\n margin-top: -6px;\n background-color: $fallback--cRed;\n background-color: var(--badgeNotification, $fallback--cRed);\n }\n\n .mobile-notifications-drawer {\n width: 100%;\n height: 100vh;\n overflow-x: hidden;\n position: fixed;\n top: 0;\n left: 0;\n box-shadow: 1px 1px 4px rgb(0 0 0 / 60%);\n box-shadow: var(--panelShadow);\n transition-property: transform;\n transition-duration: 0.25s;\n transform: translateX(0);\n z-index: var(--ZI_navbar);\n -webkit-overflow-scrolling: touch;\n\n &.-closed {\n transform: translateX(100%);\n box-shadow: none;\n }\n }\n\n .mobile-notifications-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n z-index: calc(var(--ZI_navbar) + 100);\n width: 100%;\n height: 50px;\n line-height: 50px;\n position: absolute;\n color: var(--topBarText);\n background-color: $fallback--fg;\n background-color: var(--topBar, $fallback--fg);\n box-shadow: 0 0 4px rgb(0 0 0 / 60%);\n box-shadow: var(--topBarShadow);\n\n .spacer {\n flex: 1;\n }\n\n .title {\n font-size: 1.3em;\n margin-left: 0.6em;\n }\n }\n\n .pins {\n flex: 1;\n\n .pinned-item {\n flex-grow: 1;\n }\n }\n\n .mobile-notifications {\n margin-top: 50px;\n width: 100vw;\n height: calc(100vh - var(--navbar-height));\n overflow-x: hidden;\n overflow-y: scroll;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n\n .notifications {\n padding: 0;\n border-radius: 0;\n box-shadow: none;\n\n .panel {\n border-radius: 0;\n margin: 0;\n box-shadow: none;\n }\n\n .panel::after {\n border-radius: 0;\n }\n\n .panel .panel-heading {\n border-radius: 0;\n box-shadow: none;\n }\n }\n }\n\n .confirm-modal.dark-overlay {\n &::before {\n z-index: 3000;\n }\n\n .dialog-modal.panel {\n z-index: 3001;\n }\n }\n}\n\n","\n@import \"../../variables\";\n\n.SearchBar {\n display: inline-flex;\n align-items: baseline;\n vertical-align: baseline;\n justify-content: flex-end;\n\n &.-expanded {\n width: 100%;\n }\n\n .search-bar-input,\n .search-button {\n height: 29px;\n }\n\n .search-bar-input {\n flex: 1 0 auto;\n }\n\n .cancel-search {\n height: 50px;\n }\n\n .cancel-icon {\n color: $fallback--text;\n color: var(--btnTopBarText, $fallback--text);\n }\n}\n\n","@import \"../../variables\";\n\n.DesktopNav {\n width: 100%;\n z-index: var(--ZI_navbar);\n\n input {\n color: var(--inputTopbarText, var(--inputText));\n }\n\n a {\n color: var(--topBarLink, $fallback--link);\n }\n\n .inner-nav {\n display: grid;\n grid-template-rows: var(--navbar-height);\n grid-template-columns: 2fr auto 2fr;\n grid-template-areas: \"sitename logo actions\";\n box-sizing: border-box;\n padding: 0 1.2em;\n margin: auto;\n max-width: 980px;\n }\n\n &.-column-stretch .inner-nav {\n --miniColumn: 25rem;\n --maxiColumn: 45rem;\n --columnGap: 1em;\n\n max-width:\n calc(\n var(--sidebarColumnWidth, var(--miniColumn)) +\n var(--contentColumnWidth, var(--maxiColumn)) +\n var(--columnGap)\n );\n }\n\n &.-logoLeft .inner-nav {\n grid-template-columns: auto 2fr 2fr;\n grid-template-areas: \"logo sitename actions\";\n }\n\n &.-column-stretch.-wide .inner-nav {\n max-width:\n calc(\n var(--sidebarColumnWidth, var(--miniColumn)) +\n var(--contentColumnWidth, var(--maxiColumn)) +\n var(--notifsColumnWidth, var(--miniColumn)) +\n var(--columnGap)\n );\n }\n\n .button-default {\n &,\n svg {\n color: $fallback--text;\n color: var(--btnTopBarText, $fallback--text);\n }\n\n &:active {\n background-color: $fallback--fg;\n background-color: var(--btnPressedTopBar, $fallback--fg);\n color: $fallback--text;\n color: var(--btnPressedTopBarText, $fallback--text);\n }\n\n &:disabled {\n color: $fallback--text;\n color: var(--btnDisabledTopBarText, $fallback--text);\n }\n\n &.toggled {\n color: $fallback--text;\n color: var(--btnToggledTopBarText, $fallback--text);\n background-color: $fallback--fg;\n background-color: var(--btnToggledTopBar, $fallback--fg);\n }\n }\n\n .logo {\n grid-area: logo;\n position: relative;\n transition: opacity;\n transition-timing-function: ease-out;\n transition-duration: 100ms;\n\n @media all and (min-width: 800px) {\n /* stylelint-disable-next-line declaration-no-important */\n opacity: 1 !important;\n }\n\n .mask {\n mask-repeat: no-repeat;\n mask-position: center;\n mask-size: contain;\n background-color: $fallback--fg;\n background-color: var(--topBarText, $fallback--fg);\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n }\n\n img {\n display: inline-block;\n height: var(--navbar-height);\n }\n }\n\n .nav-icon {\n margin-left: 0.2em;\n width: 2em;\n height: 100%;\n text-align: center;\n\n .svg-inline--fa {\n color: $fallback--link;\n color: var(--topBarLink, $fallback--link);\n }\n }\n\n .sitename {\n grid-area: sitename;\n }\n\n .actions {\n grid-area: actions;\n }\n\n .item {\n flex: 1;\n line-height: var(--navbar-height);\n height: var(--navbar-height);\n overflow: hidden;\n display: flex;\n flex-wrap: wrap;\n\n &.right {\n justify-content: flex-end;\n text-align: right;\n }\n }\n\n .spacer {\n width: 1em;\n }\n}\n","\n@import \"../../variables\";\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","\n@import \"../../variables\";\n\n.user-reporting-panel {\n width: 90vw;\n max-width: 700px;\n min-height: 20vh;\n max-height: 80vh;\n\n .panel-body {\n display: flex;\n flex-direction: column-reverse;\n border-top: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n overflow: hidden;\n }\n\n &-left {\n padding: 1.1em 0.7em 0.7em;\n line-height: var(--post-line-height);\n box-sizing: border-box;\n\n > div {\n margin-bottom: 1em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n p {\n margin-top: 0;\n }\n\n textarea.form-control {\n line-height: 16px;\n resize: none;\n overflow: hidden;\n transition: min-height 200ms 100ms;\n min-height: 44px;\n width: 100%;\n }\n\n .btn {\n min-width: 10em;\n padding: 0 2em;\n }\n\n .alert {\n margin: 1em 0 0;\n line-height: 1.3em;\n }\n }\n\n &-right {\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n }\n\n &-sitem {\n display: flex;\n justify-content: space-between;\n\n /* TODO cleanup this */\n > .Status {\n flex: 1;\n }\n\n > .checkbox {\n margin: 0.75em;\n }\n }\n\n @media all and (min-width: 801px) {\n .panel-body {\n flex-direction: row;\n }\n\n &-left {\n width: 50%;\n max-width: 320px;\n border-right: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n padding: 1.1em;\n\n > div {\n margin-bottom: 2em;\n }\n }\n\n &-right {\n width: 50%;\n flex: 1 1 auto;\n margin-bottom: 12px;\n }\n }\n}\n","\n.modal-view.edit-form-modal-view {\n align-items: flex-start;\n}\n\n.edit-form-modal-panel {\n flex-shrink: 0;\n margin-top: 25%;\n margin-bottom: 2em;\n width: 100%;\n max-width: 700px;\n\n @media (orientation: landscape) {\n margin-top: 8%;\n }\n\n .form-bottom-left {\n max-width: 6.5em;\n\n .emoji-icon {\n justify-content: right;\n }\n }\n}\n","\n.modal-view.post-form-modal-view {\n align-items: flex-start;\n}\n\n.post-form-modal-panel {\n flex-shrink: 0;\n margin-top: 25%;\n margin-bottom: 2em;\n width: 100%;\n max-width: 700px;\n\n @media (orientation: landscape) {\n margin-top: 8%;\n }\n}\n","\n.modal-view.status-history-modal-view {\n align-items: flex-start;\n}\n\n.status-history-modal-panel {\n flex-shrink: 0;\n margin-top: 25%;\n margin-bottom: 2em;\n width: 100%;\n max-width: 700px;\n\n @media (orientation: landscape) {\n margin-top: 8%;\n }\n}\n","\n@import \"../../variables\";\n\n.global-notice-list {\n position: fixed;\n top: calc(var(--navbar-height) + 0.5em);\n width: 100%;\n pointer-events: none;\n z-index: var(--ZI_navbar_popovers);\n display: flex;\n flex-direction: column;\n align-items: center;\n\n .global-notice {\n pointer-events: auto;\n text-align: center;\n width: 40em;\n max-width: calc(100% - 3em);\n display: flex;\n padding-left: 1.5em;\n line-height: 2;\n margin-bottom: 0.5em;\n\n .notice-message {\n flex: 1 1 100%;\n }\n }\n\n .global-error {\n background-color: var(--alertPopupError, $fallback--cRed);\n color: var(--alertPopupErrorText, $fallback--text);\n\n .svg-inline--fa {\n color: var(--alertPopupErrorText, $fallback--text);\n }\n }\n\n .global-warning {\n background-color: var(--alertPopupWarning, $fallback--cOrange);\n color: var(--alertPopupWarningText, $fallback--text);\n\n .svg-inline--fa {\n color: var(--alertPopupWarningText, $fallback--text);\n }\n }\n\n .global-success {\n background-color: var(--alertPopupSuccess, $fallback--cGreen);\n color: var(--alertPopupSuccessText, $fallback--text);\n\n .svg-inline--fa {\n color: var(--alertPopupSuccessText, $fallback--text);\n }\n }\n\n .global-info {\n background-color: var(--alertPopupNeutral, $fallback--fg);\n color: var(--alertPopupNeutralText, $fallback--text);\n\n .svg-inline--fa {\n color: var(--alertPopupNeutralText, $fallback--text);\n }\n }\n\n .close-notice {\n padding-right: 0.2em;\n\n .svg-inline--fa:hover {\n opacity: 0.6;\n }\n }\n}\n","// stylelint-disable rscss/class-format\n/* stylelint-disable no-descending-specificity */\n@import \"./variables\";\n@import \"./panel\";\n\n:root {\n --navbar-height: 3.5rem;\n --post-line-height: 1.4;\n // Z-Index stuff\n --ZI_media_modal: 9000;\n --ZI_modals_popovers: 8500;\n --ZI_modals: 8000;\n --ZI_navbar_popovers: 7500;\n --ZI_navbar: 7000;\n --ZI_popovers: 6000;\n}\n\nhtml {\n font-size: 14px;\n // overflow-x: clip causes my browser's tab to crash with SIGILL lul\n}\n\nbody {\n font-family: sans-serif;\n font-family: var(--interfaceFont, sans-serif);\n margin: 0;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n overscroll-behavior-y: none;\n overflow-x: clip;\n overflow-y: scroll;\n\n &.hidden {\n display: none;\n }\n}\n\n// ## Custom scrollbars\n// Only show custom scrollbars on devices which\n// have a cursor/pointer to operate them\n@media (any-pointer: fine) {\n * {\n scrollbar-color: var(--btn) transparent;\n\n &::-webkit-scrollbar {\n background: transparent;\n }\n\n &::-webkit-scrollbar-button,\n &::-webkit-scrollbar-thumb {\n background-color: var(--btn);\n box-shadow: var(--buttonShadow);\n border-radius: var(--btnRadius);\n }\n\n // horizontal/vertical/increment/decrement are webkit-specific stuff\n // that indicates whether we're affecting vertical scrollbar, increase button etc\n // stylelint-disable selector-pseudo-class-no-unknown\n &::-webkit-scrollbar-button {\n --___bgPadding: 2px;\n\n color: var(--btnText);\n background-repeat: no-repeat, no-repeat;\n\n &:horizontal {\n background-size: 50% calc(50% - var(--___bgPadding)), 50% calc(50% - var(--___bgPadding));\n\n &:increment {\n background-image:\n linear-gradient(45deg, var(--btnText) 50%, transparent 51%),\n linear-gradient(-45deg, transparent 50%, var(--btnText) 51%);\n background-position: top var(--___bgPadding) left 50%, right 50% bottom var(--___bgPadding);\n }\n\n &:decrement {\n background-image:\n linear-gradient(45deg, transparent 50%, var(--btnText) 51%),\n linear-gradient(-45deg, var(--btnText) 50%, transparent 51%);\n background-position: bottom var(--___bgPadding) right 50%, left 50% top var(--___bgPadding);\n }\n }\n\n &:vertical {\n background-size: calc(50% - var(--___bgPadding)) 50%, calc(50% - var(--___bgPadding)) 50%;\n\n &:increment {\n background-image:\n linear-gradient(-45deg, transparent 50%, var(--btnText) 51%),\n linear-gradient(45deg, transparent 50%, var(--btnText) 51%);\n background-position: right var(--___bgPadding) top 50%, left var(--___bgPadding) top 50%;\n }\n\n &:decrement {\n background-image:\n linear-gradient(-45deg, var(--btnText) 50%, transparent 51%),\n linear-gradient(45deg, var(--btnText) 50%, transparent 51%);\n background-position: left var(--___bgPadding) top 50%, right var(--___bgPadding) top 50%;\n }\n }\n }\n // stylelint-enable selector-pseudo-class-no-unknown\n }\n // Body should have background to scrollbar otherwise it will use white (body color?)\n html {\n scrollbar-color: var(--selectedMenu) var(--wallpaper);\n background: var(--wallpaper);\n }\n}\n\na {\n text-decoration: none;\n color: $fallback--link;\n color: var(--link, $fallback--link);\n}\n\nh4 {\n margin: 0;\n}\n\n.iconLetter {\n display: inline-block;\n text-align: center;\n font-weight: 1000;\n}\n\ni[class*=\"icon-\"],\n.svg-inline--fa,\n.iconLetter {\n color: $fallback--icon;\n color: var(--icon, $fallback--icon);\n}\n\n.button-unstyled:hover,\na:hover {\n > i[class*=\"icon-\"],\n > .svg-inline--fa,\n > .iconLetter {\n color: var(--text);\n }\n}\n\nnav {\n z-index: var(--ZI_navbar);\n background-color: $fallback--fg;\n background-color: var(--topBar, $fallback--fg);\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n box-shadow: 0 0 4px rgb(0 0 0 / 60%);\n box-shadow: var(--topBarShadow);\n box-sizing: border-box;\n height: var(--navbar-height);\n position: fixed;\n}\n\n#sidebar {\n grid-area: sidebar;\n}\n\n#modal {\n position: absolute;\n z-index: var(--ZI_modals);\n}\n\n.column.-scrollable {\n top: var(--navbar-height);\n position: sticky;\n}\n\n#main-scroller {\n grid-area: content;\n position: relative;\n}\n\n#notifs-column {\n grid-area: notifs;\n}\n\n.app-bg-wrapper {\n position: fixed;\n height: 100%;\n top: var(--navbar-height);\n z-index: -1000;\n left: 0;\n right: -20px;\n background-size: cover;\n background-repeat: no-repeat;\n background-color: var(--wallpaper);\n background-image: var(--body-background-image);\n background-position: 50%;\n}\n\n.underlay {\n grid-column: 1 / span 3;\n grid-row: 1 / 1;\n pointer-events: none;\n background-color: rgb(0 0 0 / 15%);\n background-color: var(--underlay, rgb(0 0 0 / 15%));\n z-index: -1000;\n}\n\n.app-layout {\n --miniColumn: 25rem;\n --maxiColumn: 45rem;\n --columnGap: 1em;\n --status-margin: 0.75em;\n --effectiveSidebarColumnWidth: minmax(var(--miniColumn), var(--sidebarColumnWidth, var(--miniColumn)));\n --effectiveNotifsColumnWidth: minmax(var(--miniColumn), var(--notifsColumnWidth, var(--miniColumn)));\n --effectiveContentColumnWidth: minmax(var(--miniColumn), var(--contentColumnWidth, var(--maxiColumn)));\n\n position: relative;\n display: grid;\n grid-template-columns:\n var(--effectiveSidebarColumnWidth)\n var(--effectiveContentColumnWidth);\n grid-template-areas: \"sidebar content\";\n grid-template-rows: 1fr;\n box-sizing: border-box;\n margin: 0 auto;\n align-content: flex-start;\n flex-wrap: wrap;\n justify-content: center;\n min-height: 100vh;\n overflow-x: clip;\n\n .column {\n --___columnMargin: var(--columnGap);\n\n display: grid;\n grid-template-columns: 100%;\n box-sizing: border-box;\n grid-row: 1 / 1;\n margin: 0 calc(var(--___columnMargin) / 2);\n padding: calc(var(--___columnMargin)) 0;\n row-gap: var(--___columnMargin);\n align-content: start;\n\n &:not(.-scrollable) {\n margin-top: var(--navbar-height);\n }\n\n &:hover {\n z-index: 2;\n }\n\n &.-full-height {\n margin-bottom: 0;\n padding-top: 0;\n padding-bottom: 0;\n }\n\n &.-scrollable {\n --___paddingIncrease: calc(var(--columnGap) / 2);\n\n position: sticky;\n top: var(--navbar-height);\n max-height: calc(100vh - var(--navbar-height));\n overflow-y: auto;\n overflow-x: hidden;\n margin-left: calc(var(--___paddingIncrease) * -1);\n padding-left: calc(var(--___paddingIncrease) + var(--___columnMargin) / 2);\n\n // On browsers that don't support hiding scrollbars we enforce \"show scrolbars\" mode\n // might implement old style of hiding scrollbars later if there's demand\n @supports (scrollbar-width: none) or (-webkit-text-fill-color: initial) {\n &:not(.-show-scrollbar) {\n scrollbar-width: none;\n margin-right: calc(var(--___paddingIncrease) * -1);\n padding-right: calc(var(--___paddingIncrease) + var(--___columnMargin) / 2);\n\n &::-webkit-scrollbar {\n display: block;\n width: 0;\n }\n }\n }\n\n .panel-heading.-sticky {\n top: calc(var(--columnGap) / -1);\n }\n }\n }\n\n &.-has-new-post-button {\n .column {\n padding-bottom: 10rem;\n }\n }\n\n &.-no-sticky-headers {\n .column {\n .panel-heading.-sticky {\n position: relative;\n top: 0;\n }\n }\n }\n\n .column-inner {\n display: grid;\n grid-template-columns: 100%;\n box-sizing: border-box;\n row-gap: 1em;\n align-content: start;\n }\n\n &.-reverse:not(.-wide, .-mobile) {\n grid-template-columns:\n var(--effectiveContentColumnWidth)\n var(--effectiveSidebarColumnWidth);\n grid-template-areas: \"content sidebar\";\n }\n\n &.-wide {\n grid-template-columns:\n var(--effectiveSidebarColumnWidth)\n var(--effectiveContentColumnWidth)\n var(--effectiveNotifsColumnWidth);\n grid-template-areas: \"sidebar content notifs\";\n\n &.-reverse {\n grid-template-columns:\n var(--effectiveNotifsColumnWidth)\n var(--effectiveContentColumnWidth)\n var(--effectiveSidebarColumnWidth);\n grid-template-areas: \"notifs content sidebar\";\n }\n }\n\n &.-mobile {\n grid-template-columns: 100vw;\n grid-template-areas: \"content\";\n padding: 0;\n\n .column {\n padding-top: 0;\n margin: var(--navbar-height) 0 0 0;\n }\n\n .panel-heading,\n .panel-heading::after,\n .panel-heading::before,\n .panel,\n .panel::after {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n\n #sidebar,\n #notifs-column {\n display: none;\n }\n }\n\n &.-normal {\n #notifs-column {\n display: none;\n }\n }\n}\n\n.text-center {\n text-align: center;\n}\n\n.button-default {\n user-select: none;\n color: $fallback--text;\n color: var(--btnText, $fallback--text);\n background-color: $fallback--fg;\n background-color: var(--btn, $fallback--fg);\n border: none;\n border-radius: $fallback--btnRadius;\n border-radius: var(--btnRadius, $fallback--btnRadius);\n cursor: pointer;\n box-shadow: $fallback--buttonShadow;\n box-shadow: var(--buttonShadow);\n font-size: 1em;\n font-family: sans-serif;\n font-family: var(--interfaceFont, sans-serif);\n\n &.-sublime {\n background: transparent;\n }\n\n i[class*=\"icon-\"],\n .svg-inline--fa {\n color: $fallback--text;\n color: var(--btnText, $fallback--text);\n }\n\n &::-moz-focus-inner {\n border: none;\n }\n\n &:hover {\n box-shadow: 0 0 4px rgb(255 255 255 / 30%);\n box-shadow: var(--buttonHoverShadow);\n }\n\n &:active {\n box-shadow:\n 0 0 4px 0 rgb(255 255 255 / 30%),\n 0 1px 0 0 rgb(0 0 0 / 20%) inset,\n 0 -1px 0 0 rgb(255 255 255 / 20%) inset;\n box-shadow: var(--buttonPressedShadow);\n color: $fallback--text;\n color: var(--btnPressedText, $fallback--text);\n background-color: $fallback--fg;\n background-color: var(--btnPressed, $fallback--fg);\n\n svg,\n i {\n color: $fallback--text;\n color: var(--btnPressedText, $fallback--text);\n }\n }\n\n &:disabled {\n cursor: not-allowed;\n color: $fallback--text;\n color: var(--btnDisabledText, $fallback--text);\n background-color: $fallback--fg;\n background-color: var(--btnDisabled, $fallback--fg);\n\n svg,\n i {\n color: $fallback--text;\n color: var(--btnDisabledText, $fallback--text);\n }\n }\n\n &.toggled {\n color: $fallback--text;\n color: var(--btnToggledText, $fallback--text);\n background-color: $fallback--fg;\n background-color: var(--btnToggled, $fallback--fg);\n box-shadow:\n 0 0 4px 0 rgb(255 255 255 / 30%),\n 0 1px 0 0 rgb(0 0 0 / 20%) inset,\n 0 -1px 0 0 rgb(255 255 255 / 20%) inset;\n box-shadow: var(--buttonPressedShadow);\n\n svg,\n i {\n color: $fallback--text;\n color: var(--btnToggledText, $fallback--text);\n }\n }\n\n &.danger {\n // TODO: add better color variable\n color: $fallback--text;\n color: var(--alertErrorPanelText, $fallback--text);\n background-color: $fallback--alertError;\n background-color: var(--alertError, $fallback--alertError);\n }\n}\n\n.button-unstyled {\n background: none;\n border: none;\n outline: none;\n display: inline;\n text-align: initial;\n font-size: 100%;\n font-family: inherit;\n padding: 0;\n line-height: unset;\n cursor: pointer;\n box-sizing: content-box;\n color: inherit;\n\n &.-link {\n color: $fallback--link;\n color: var(--link, $fallback--link);\n }\n\n &.-fullwidth {\n width: 100%;\n }\n\n &.-hover-highlight {\n &:hover svg {\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n }\n }\n}\n\ninput,\ntextarea,\n.input {\n &.unstyled {\n border-radius: 0;\n background: none;\n box-shadow: none;\n height: unset;\n }\n\n --_padding: 0.5em;\n\n border: none;\n border-radius: $fallback--inputRadius;\n border-radius: var(--inputRadius, $fallback--inputRadius);\n box-shadow:\n 0 1px 0 0 rgb(0 0 0 / 20%) inset,\n 0 -1px 0 0 rgb(255 255 255 / 20%) inset,\n 0 0 2px 0 rgb(0 0 0 / 100%) inset;\n box-shadow: var(--inputShadow);\n background-color: $fallback--fg;\n background-color: var(--input, $fallback--fg);\n color: $fallback--lightText;\n color: var(--inputText, $fallback--lightText);\n font-family: sans-serif;\n font-family: var(--inputFont, sans-serif);\n font-size: 1em;\n margin: 0;\n box-sizing: border-box;\n display: inline-block;\n position: relative;\n line-height: 2;\n hyphens: none;\n padding: 0 var(--_padding);\n\n &:disabled,\n &[disabled=\"disabled\"],\n &.disabled {\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n &[type=\"range\"] {\n background: none;\n border: none;\n margin: 0;\n box-shadow: none;\n flex: 1;\n }\n\n &[type=\"radio\"] {\n display: none;\n\n &:checked + label::before {\n box-shadow: 0 0 2px black inset, 0 0 0 4px $fallback--fg inset;\n box-shadow: var(--inputShadow), 0 0 0 4px var(--fg, $fallback--fg) inset;\n background-color: var(--accent, $fallback--link);\n }\n\n &:disabled {\n &,\n & + label,\n & + label::before {\n opacity: 0.5;\n }\n }\n\n + label::before {\n flex-shrink: 0;\n display: inline-block;\n content: \"\";\n transition: box-shadow 200ms;\n width: 1.1em;\n height: 1.1em;\n border-radius: 100%; // Radio buttons should always be circle\n box-shadow: 0 0 2px black inset;\n box-shadow: var(--inputShadow);\n margin-right: 0.5em;\n background-color: $fallback--fg;\n background-color: var(--input, $fallback--fg);\n vertical-align: top;\n text-align: center;\n line-height: 1.1;\n font-size: 1.1em;\n box-sizing: border-box;\n color: transparent;\n overflow: hidden;\n }\n }\n\n &[type=\"checkbox\"] {\n &:checked + label::before {\n color: $fallback--text;\n color: var(--inputText, $fallback--text);\n }\n\n &:disabled {\n &,\n & + label,\n & + label::before {\n opacity: 0.5;\n }\n }\n\n + label::before {\n flex-shrink: 0;\n display: inline-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: 0 0 2px black inset;\n box-shadow: var(--inputShadow);\n margin-right: 0.5em;\n background-color: $fallback--fg;\n background-color: var(--input, $fallback--fg);\n vertical-align: top;\n text-align: center;\n line-height: 1.1;\n font-size: 1.1em;\n box-sizing: border-box;\n color: transparent;\n overflow: hidden;\n }\n }\n\n &.resize-height {\n resize: vertical;\n }\n}\n\n// Textareas should have stock line-height + vertical padding instead of huge line-height\ntextarea {\n padding: var(--_padding);\n line-height: var(--post-line-height);\n}\n\noption {\n color: $fallback--text;\n color: var(--text, $fallback--text);\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n}\n\n.hide-number-spinner {\n appearance: textfield;\n\n &[type=\"number\"]::-webkit-inner-spin-button,\n &[type=\"number\"]::-webkit-outer-spin-button {\n opacity: 0;\n display: none;\n }\n}\n\n.cards-list {\n list-style: none;\n display: grid;\n grid-auto-flow: row dense;\n grid-template-columns: 1fr 1fr;\n\n li {\n border: 1px solid var(--border);\n border-radius: var(--inputRadius);\n padding: 0.5em;\n margin: 0.25em;\n }\n}\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n.btn-group {\n position: relative;\n display: inline-flex;\n vertical-align: middle;\n\n button,\n .button-dropdown {\n position: relative;\n flex: 1 1 auto;\n\n &:not(:last-child),\n &:not(:last-child) .button-default {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n\n &:not(:first-child),\n &:not(:first-child) .button-default {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n }\n}\n\n.fa {\n color: grey;\n}\n\n.mobile-shown {\n display: none;\n}\n\n.badge {\n box-sizing: border-box;\n display: inline-block;\n border-radius: 99px;\n max-width: 10em;\n min-width: 1.7em;\n height: 1.3em;\n padding: 0.15em;\n vertical-align: middle;\n font-weight: normal;\n font-style: normal;\n font-size: 0.9em;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &.badge-notification {\n background-color: $fallback--cRed;\n background-color: var(--badgeNotification, $fallback--cRed);\n color: white;\n color: var(--badgeNotificationText, white);\n }\n}\n\n.alert {\n margin: 0 0.35em;\n padding: 0 0.25em;\n border-radius: $fallback--tooltipRadius;\n border-radius: var(--tooltipRadius, $fallback--tooltipRadius);\n\n &.error {\n background-color: $fallback--alertError;\n background-color: var(--alertError, $fallback--alertError);\n color: $fallback--text;\n color: var(--alertErrorText, $fallback--text);\n\n .panel-heading & {\n color: $fallback--text;\n color: var(--alertErrorPanelText, $fallback--text);\n }\n }\n\n &.warning {\n background-color: $fallback--alertWarning;\n background-color: var(--alertWarning, $fallback--alertWarning);\n color: $fallback--text;\n color: var(--alertWarningText, $fallback--text);\n\n .panel-heading & {\n color: $fallback--text;\n color: var(--alertWarningPanelText, $fallback--text);\n }\n }\n\n &.success {\n background-color: var(--alertSuccess, $fallback--alertWarning);\n color: var(--alertSuccessText, $fallback--text);\n\n .panel-heading & {\n color: var(--alertSuccessPanelText, $fallback--text);\n }\n }\n}\n\n.faint {\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n}\n\n.faint-link {\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n\n &:hover {\n text-decoration: underline;\n }\n}\n\n.visibility-notice {\n padding: 0.5em;\n border: 1px solid $fallback--faint;\n border: 1px solid var(--faint, $fallback--faint);\n border-radius: $fallback--inputRadius;\n border-radius: var(--inputRadius, $fallback--inputRadius);\n}\n\n.notice-dismissible {\n padding-right: 4rem;\n position: relative;\n\n .dismiss {\n position: absolute;\n top: 0;\n right: 0;\n padding: 0.5em;\n color: inherit;\n }\n}\n\n.fa-scale-110 {\n &.svg-inline--fa,\n &.iconLetter {\n font-size: 1.1em;\n }\n}\n\n.fa-old-padding {\n &.iconLetter,\n &.svg-inline--fa,\n &-layer {\n padding: 0 0.3em;\n }\n}\n\n.veryfaint {\n opacity: 0.25;\n}\n\n.login-hint {\n text-align: center;\n\n @media all and (min-width: 801px) {\n display: none;\n }\n\n a {\n display: inline-block;\n padding: 1em 0;\n width: 100%;\n }\n}\n\n.btn.button-default {\n min-height: 2em;\n}\n\n.new-status-notification {\n position: relative;\n font-size: 1.1em;\n z-index: 1;\n flex: 1;\n}\n\n@media all and (max-width: 800px) {\n .mobile-hidden {\n display: none;\n }\n}\n\n@keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(359deg);\n }\n}\n\n@keyframes shakeError {\n 0% {\n transform: translateX(0);\n }\n\n 15% {\n transform: translateX(0.375rem);\n }\n\n 30% {\n transform: translateX(-0.375rem);\n }\n\n 45% {\n transform: translateX(0.375rem);\n }\n\n 60% {\n transform: translateX(-0.375rem);\n }\n\n 75% {\n transform: translateX(0.375rem);\n }\n\n 90% {\n transform: translateX(-0.375rem);\n }\n\n 100% {\n transform: translateX(0);\n }\n}\n\n// Vue transitions\n.fade-enter-active,\n.fade-leave-active {\n transition: opacity 0.3s;\n}\n\n.fade-enter-from,\n.fade-leave-active {\n opacity: 0;\n}\n/* stylelint-enable no-descending-specificity */\n\n.visible-for-screenreader-only {\n display: block;\n width: 1px;\n height: 1px;\n margin: -1px;\n overflow: hidden;\n visibility: visible;\n clip: rect(0 0 0 0);\n padding: 0;\n position: absolute;\n}\n","/* stylelint-disable no-descending-specificity */\n.panel {\n position: relative;\n display: flex;\n flex-direction: column;\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n\n &::after,\n & {\n border-radius: $fallback--panelRadius;\n border-radius: var(--panelRadius, $fallback--panelRadius);\n }\n\n &::after {\n content: \"\";\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 5;\n box-shadow: 1px 1px 4px rgb(0 0 0 / 60%);\n box-shadow: var(--panelShadow);\n pointer-events: none;\n }\n}\n\n.panel-body {\n padding: var(--panel-body-padding, 0);\n\n &:empty::before {\n content: \"¯\\\\_(ツ)_/¯\"; // Could use words but it'd require translations\n display: block;\n margin: 1em;\n text-align: center;\n }\n\n > p {\n line-height: 1.3;\n padding: 1em;\n margin: 0;\n }\n}\n\n.panel-heading,\n.panel-footer {\n --panel-heading-height-padding: 0.6em;\n --__panel-heading-gap: 0.5em;\n --__panel-heading-height: 3.2em;\n --__panel-heading-height-inner: calc(var(--__panel-heading-height) - 2 * var(--panel-heading-height-padding, 0));\n\n position: relative;\n box-sizing: border-box;\n display: grid;\n grid-auto-flow: column;\n grid-template-columns: minmax(50%, 1fr);\n grid-auto-columns: auto;\n grid-column-gap: var(--__panel-heading-gap);\n flex: none;\n background-size: cover;\n padding: var(--panel-heading-height-padding);\n height: var(--__panel-heading-height);\n line-height: var(--__panel-heading-height-inner);\n z-index: 4;\n\n &.-flexible-height {\n --__panel-heading-height: auto;\n\n &::after,\n &::before {\n display: none;\n }\n }\n\n &.-stub {\n &,\n &::after {\n border-radius: $fallback--panelRadius;\n border-radius: var(--panelRadius, $fallback--panelRadius);\n }\n }\n\n &.-sticky {\n position: sticky;\n top: var(--navbar-height);\n }\n\n &::after,\n &::before {\n content: \"\";\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n left: 0;\n pointer-events: none;\n }\n\n .title {\n font-size: 1.3em;\n }\n\n .alert {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow-x: hidden;\n }\n\n &:not(.-flexible-height) {\n > .button-default,\n > .alert {\n height: var(--__panel-heading-height-inner);\n min-height: 0;\n box-sizing: border-box;\n margin: 0;\n min-width: 1px;\n padding-top: 0;\n padding-bottom: 0;\n align-self: stretch;\n }\n }\n}\n\n// TODO Should refactor panels into separate component and utilize slots\n\n.panel-heading {\n border-radius: $fallback--panelRadius $fallback--panelRadius 0 0;\n border-radius: var(--panelRadius, $fallback--panelRadius) var(--panelRadius, $fallback--panelRadius) 0 0;\n border-width: 0 0 1px;\n align-items: start;\n // panel theme\n color: var(--panelText);\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n\n &::after {\n background-color: $fallback--fg;\n background-color: var(--panel, $fallback--fg);\n z-index: -2;\n border-radius: $fallback--panelRadius $fallback--panelRadius 0 0;\n border-radius: var(--panelRadius, $fallback--panelRadius) var(--panelRadius, $fallback--panelRadius) 0 0;\n box-shadow: var(--panelHeaderShadow);\n }\n\n a,\n .-link {\n color: $fallback--link;\n color: var(--panelLink, $fallback--link);\n }\n\n .button-unstyled:hover,\n a:hover {\n i[class*=\"icon-\"],\n .svg-inline--fa,\n .iconLetter {\n color: var(--panelText);\n }\n }\n\n .faint {\n background-color: transparent;\n color: $fallback--faint;\n color: var(--panelFaint, $fallback--faint);\n }\n\n .faint-link {\n color: $fallback--faint;\n color: var(--faintLink, $fallback--faint);\n }\n\n &:not(.-flexible-height) {\n > .button-default {\n flex-shrink: 0;\n\n &,\n i[class*=\"icon-\"] {\n color: $fallback--text;\n color: var(--btnPanelText, $fallback--text);\n }\n\n &:active {\n background-color: $fallback--fg;\n background-color: var(--btnPressedPanel, $fallback--fg);\n color: $fallback--text;\n color: var(--btnPressedPanelText, $fallback--text);\n }\n\n &:disabled {\n color: $fallback--text;\n color: var(--btnDisabledPanelText, $fallback--text);\n }\n\n &.toggled {\n color: $fallback--text;\n color: var(--btnToggledPanelText, $fallback--text);\n }\n }\n }\n\n .rightside-button {\n align-self: stretch;\n text-align: center;\n width: var(--__panel-heading-height);\n height: var(--__panel-heading-height);\n margin: calc(-1 * var(--panel-heading-height-padding)) 0;\n margin-right: calc(-1 * var(--__panel-heading-gap));\n\n > button {\n box-sizing: border-box;\n padding: calc(1 * var(--panel-heading-height-padding)) 0;\n height: 100%;\n width: 100%;\n text-align: center;\n\n svg {\n font-size: 1.2em;\n }\n }\n }\n\n .rightside-icon {\n align-self: stretch;\n text-align: center;\n width: var(--__panel-heading-height);\n margin-right: calc(-1 * var(--__panel-heading-gap));\n\n svg {\n font-size: 1.2em;\n }\n }\n}\n\n.panel-footer {\n border-radius: 0 0 $fallback--panelRadius $fallback--panelRadius;\n border-radius: 0 0 var(--panelRadius, $fallback--panelRadius) var(--panelRadius, $fallback--panelRadius);\n align-items: center;\n border-width: 1px 0 0;\n border-style: solid;\n border-color: var(--border, $fallback--border);\n}\n/* stylelint-enable no-descending-specificity */\n","\n@import \"../../variables\";\n\n.thread-tree-replies {\n margin-left: var(--status-margin, $status-margin);\n border-left: 2px solid var(--border, $fallback--border);\n}\n\n.thread-tree-replies-hidden {\n padding: var(--status-margin, $status-margin);\n\n /* Make the button stretch along the whole row */\n display: flex;\n align-items: stretch;\n flex-direction: column;\n}\n","\n@import \"../../variables\";\n\n.Conversation {\n z-index: 1;\n\n .conversation-dive-to-top-level-box {\n padding: var(--status-margin, $status-margin);\n border-bottom: 1px solid var(--border, $fallback--border);\n border-radius: 0;\n\n /* Make the button stretch along the whole row */\n display: flex;\n align-items: stretch;\n flex-direction: column;\n }\n\n .thread-ancestors {\n margin-left: var(--status-margin, $status-margin);\n border-left: 2px solid var(--border, $fallback--border);\n }\n\n .thread-ancestor.-faded .StatusContent {\n --link: var(--faintLink);\n --text: var(--faint);\n\n color: var(--text);\n }\n\n .thread-ancestor-dive-box {\n padding-left: var(--status-margin, $status-margin);\n border-bottom: 1px solid var(--border, $fallback--border);\n border-radius: 0;\n\n /* Make the button stretch along the whole row */\n &,\n &-inner {\n display: flex;\n align-items: stretch;\n flex-direction: column;\n }\n }\n\n .thread-ancestor-dive-box-inner {\n padding: var(--status-margin, $status-margin);\n }\n\n .conversation-status {\n border-bottom: 1px solid var(--border, $fallback--border);\n border-radius: 0;\n }\n\n .thread-ancestor-has-other-replies .conversation-status,\n &:last-child .conversation-status,\n .thread-ancestor:last-child .conversation-status,\n .thread-ancestor:last-child .thread-ancestor-dive-box,\n &.-expanded .thread-tree .conversation-status {\n border-bottom: none;\n }\n\n .thread-ancestors + .thread-tree > .conversation-status {\n border-top: 1px solid var(--border, $fallback--border);\n }\n\n /* expanded conversation in timeline */\n &.status-fadein.-expanded .thread-body {\n border-left: 4px solid $fallback--cRed;\n border-left-color: var(--cRed, $fallback--cRed);\n border-radius: 0 0 $fallback--panelRadius $fallback--panelRadius;\n border-radius: 0 0 var(--panelRadius, $fallback--panelRadius) var(--panelRadius, $fallback--panelRadius);\n border-bottom: 1px solid var(--border, $fallback--border);\n }\n\n &.-expanded.status-fadein {\n margin: calc(var(--status-margin, $status-margin) / 2);\n }\n}\n","\n@import \"../../variables\";\n\n.timeline-menu-popover {\n min-width: 24rem;\n max-width: 100vw;\n margin-top: 0.6rem;\n font-size: 1rem;\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n\n ul {\n list-style: none;\n margin: 0;\n padding: 0;\n }\n\n a {\n display: block;\n padding: 0 0.65em;\n height: 3.5em;\n line-height: 3.5em;\n\n &:hover {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n color: $fallback--link;\n color: var(--selectedMenuText, $fallback--link);\n\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n --icon: var(--selectedMenuIcon, $fallback--icon);\n }\n\n &.router-link-active {\n font-weight: bolder;\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n color: $fallback--text;\n color: var(--selectedMenuText, $fallback--text);\n\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n --icon: var(--selectedMenuIcon, $fallback--icon);\n\n &:hover {\n text-decoration: underline;\n }\n }\n\n svg {\n margin-right: 0.4em;\n margin-left: -0.2em;\n }\n }\n\n li {\n border-bottom: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n padding: 0;\n\n &:last-child a {\n border-bottom-right-radius: $fallback--panelRadius;\n border-bottom-right-radius: var(--panelRadius, $fallback--panelRadius);\n border-bottom-left-radius: $fallback--panelRadius;\n border-bottom-left-radius: var(--panelRadius, $fallback--panelRadius);\n }\n\n &:last-child {\n border: none;\n }\n }\n}\n\n.TimelineMenu {\n margin-right: auto;\n min-width: 0;\n\n .popover-trigger-button {\n vertical-align: bottom;\n }\n\n .panel::after {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n }\n\n .timeline-menu-title {\n margin: 0;\n cursor: pointer;\n user-select: none;\n width: 100%;\n display: flex;\n\n .timeline-menu-name {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n svg {\n margin-left: 0.6em;\n transition: transform 100ms;\n }\n\n .click-blocker {\n cursor: default;\n flex-grow: 1;\n }\n }\n\n &.open .timeline-menu-title svg {\n color: $fallback--text;\n color: var(--panelText, $fallback--text);\n transform: rotate(180deg);\n }\n\n .panel {\n box-shadow: var(--popoverShadow);\n }\n}\n","@import \"../../variables\";\n\n.Timeline {\n .alert-dot {\n border-radius: 100%;\n height: 8px;\n width: 8px;\n position: absolute;\n left: calc(50% - 4px);\n top: calc(50% - 4px);\n margin-left: 6px;\n margin-top: -6px;\n background-color: var(--badgeNeutral);\n }\n\n .alert-badge {\n font-size: 0.75em;\n line-height: 1;\n text-align: right;\n border-radius: var(--tooltipRadius);\n position: absolute;\n left: calc(50% - 0.5em);\n top: calc(50% - 0.4em);\n padding: 0.2em;\n margin-left: 0.7em;\n margin-top: -1em;\n background-color: var(--badgeNeutral);\n color: var(--badgeNeutralText);\n }\n\n .loadmore-button {\n position: relative;\n }\n\n &.-blocked {\n cursor: progress;\n }\n\n .conversation-heading {\n top: calc(var(--__panel-heading-height) * var(--currentPanelStack, 2));\n z-index: 2;\n }\n\n &.-nonpanel {\n .timeline-heading {\n text-align: center;\n line-height: 2.75em;\n padding: 0 0.5em;\n\n .button-default,\n .alert {\n line-height: 2em;\n width: 100%;\n }\n }\n }\n}\n","@import \"../../variables\";\n\n/* stylelint-disable no-descending-specificity */\n.tab-switcher {\n display: flex;\n\n .tab-icon {\n margin: 0.2em auto;\n display: block;\n }\n\n &.top-tabs {\n flex-direction: column;\n\n > .tabs {\n width: 100%;\n overflow-y: hidden;\n overflow-x: auto;\n padding-top: 5px;\n flex-direction: row;\n flex: 0 0 auto;\n\n &::after,\n &::before {\n content: \"\";\n flex: 1 1 auto;\n border-bottom: 1px solid;\n border-bottom-color: $fallback--border;\n border-bottom-color: var(--border, $fallback--border);\n }\n\n .tab-wrapper {\n height: 2em;\n\n &:not(.active)::after {\n left: 0;\n right: 0;\n bottom: 0;\n border-bottom: 1px solid;\n border-bottom-color: $fallback--border;\n border-bottom-color: var(--border, $fallback--border);\n }\n }\n\n .tab {\n width: 100%;\n min-width: 1px;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n padding-bottom: 99px;\n margin-bottom: 6px - 99px;\n }\n }\n\n .contents.scrollable-tabs {\n flex-basis: 0;\n }\n }\n\n &.side-tabs {\n flex-direction: row;\n\n @media all and (max-width: 800px) {\n overflow-x: auto;\n }\n\n > .contents {\n flex: 1 1 auto;\n }\n\n > .tabs {\n flex: 0 0 auto;\n overflow-y: auto;\n overflow-x: hidden;\n flex-direction: column;\n\n &::after,\n &::before {\n flex-shrink: 0;\n flex-basis: 0.5em;\n content: \"\";\n border-right: 1px solid;\n border-right-color: $fallback--border;\n border-right-color: var(--border, $fallback--border);\n }\n\n &::after {\n flex-grow: 1;\n }\n\n &::before {\n flex-grow: 0;\n }\n\n .tab-wrapper {\n min-width: 10em;\n display: flex;\n flex-direction: column;\n\n @media all and (max-width: 800px) {\n min-width: 4em;\n }\n\n &:not(.active)::after {\n top: 0;\n right: 0;\n bottom: 0;\n border-right: 1px solid;\n border-right-color: $fallback--border;\n border-right-color: var(--border, $fallback--border);\n }\n\n &::before {\n flex: 0 0 6px;\n content: \"\";\n border-right: 1px solid;\n border-right-color: $fallback--border;\n border-right-color: var(--border, $fallback--border);\n }\n\n &:last-child .tab {\n margin-bottom: 0;\n }\n }\n\n .tab {\n flex: 1;\n box-sizing: content-box;\n min-width: 10em;\n min-width: 1px;\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n padding-left: 1em;\n padding-right: calc(1em + 200px);\n margin-right: -200px;\n margin-left: 1em;\n\n @media all and (max-width: 800px) {\n padding-left: 0.25em;\n padding-right: calc(0.25em + 200px);\n margin-right: calc(0.25em - 200px);\n margin-left: 0.25em;\n\n .text {\n display: none;\n }\n }\n }\n }\n }\n\n .contents {\n flex: 1 0 auto;\n min-height: 0;\n\n .hidden {\n display: none;\n }\n\n .full-height:not(.hidden) {\n height: 100%;\n display: flex;\n flex-direction: column;\n\n > *:not(.mobile-label) {\n flex: 1;\n }\n }\n\n &.scrollable-tabs {\n overflow-y: auto;\n }\n }\n\n .tab {\n position: relative;\n white-space: nowrap;\n padding: 6px 1em;\n\n &:not(.active) {\n z-index: 4;\n\n &:hover {\n z-index: 6;\n }\n }\n\n &.active {\n background: transparent;\n z-index: 5;\n color: $fallback--text;\n color: var(--tabActiveText, $fallback--text);\n }\n\n img {\n max-height: 26px;\n vertical-align: top;\n margin-top: -5px;\n }\n }\n\n .tabs {\n display: flex;\n position: relative;\n box-sizing: border-box;\n\n &::after,\n &::before {\n display: block;\n flex: 1 1 auto;\n }\n }\n\n .tab-wrapper {\n position: relative;\n display: flex;\n flex: 0 0 auto;\n\n &:not(.active) {\n &::after {\n content: \"\";\n position: absolute;\n z-index: 7;\n }\n }\n }\n\n .mobile-label {\n padding-left: 0.3em;\n padding-bottom: 0.25em;\n margin-top: 0.5em;\n margin-left: 0.2em;\n margin-bottom: 0.25em;\n border-bottom: 1px solid var(--border, $fallback--border);\n\n @media all and (min-width: 800px) {\n display: none;\n }\n }\n}\n/* stylelint-enable no-descending-specificity */\n","\n@import \"../../variables\";\n\n.chat-title {\n display: flex;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n --emoji-size: 14px;\n\n .username {\n max-width: 100%;\n text-overflow: ellipsis;\n white-space: nowrap;\n display: inline;\n word-wrap: break-word;\n overflow: hidden;\n }\n\n .avatar-container {\n align-self: center;\n line-height: 1;\n }\n\n .titlebar-avatar {\n margin-right: 0.5em;\n height: 1.5em;\n width: 1.5em;\n border-radius: $fallback--avatarAltRadius;\n border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);\n\n &.animated::before {\n display: none;\n }\n }\n}\n",".chat-list-item {\n display: flex;\n flex-direction: row;\n padding: 0.75em;\n height: 5em;\n overflow: hidden;\n box-sizing: border-box;\n cursor: pointer;\n\n :focus {\n outline: none;\n }\n\n &:hover {\n background-color: var(--selectedPost, $fallback--lightBg);\n box-shadow: 0 0 3px 1px rgb(0 0 0 / 10%);\n }\n\n .chat-list-item-left {\n margin-right: 1em;\n }\n\n .chat-list-item-center {\n width: 100%;\n box-sizing: border-box;\n overflow: hidden;\n word-wrap: break-word;\n }\n\n .heading {\n width: 100%;\n display: inline-flex;\n justify-content: space-between;\n line-height: 1em;\n }\n\n .heading-right {\n white-space: nowrap;\n }\n\n .name-and-account-name {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n flex-shrink: 1;\n line-height: var(--post-line-height);\n }\n\n .chat-preview {\n display: inline-flex;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n margin: 0.35em 0;\n color: $fallback--text;\n color: var(--faint, $fallback--text);\n width: 100%;\n }\n\n a {\n color: var(--faintLink, $fallback--link);\n text-decoration: none;\n pointer-events: none;\n }\n\n &:hover .animated.avatar {\n canvas {\n display: none;\n }\n\n img {\n visibility: visible;\n }\n }\n\n .Avatar {\n border-radius: $fallback--avatarAltRadius;\n border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);\n }\n\n .chat-preview-body {\n --emoji-size: 1.4em;\n\n padding-right: 1em;\n }\n\n .time-wrapper {\n line-height: var(--post-line-height);\n }\n}\n","\n.basic-user-card {\n display: flex;\n flex: 1 0;\n margin: 0;\n padding: 0.6em 1em;\n\n --emoji-size: 14px;\n\n &-collapsed-content {\n margin-left: 0.7em;\n text-align: left;\n flex: 1;\n min-width: 0;\n }\n\n &-user-name {\n img {\n object-fit: contain;\n height: 16px;\n width: 16px;\n vertical-align: middle;\n }\n }\n\n &-user-name-value,\n &-screen-name {\n display: inline-block;\n max-width: 100%;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n &-expanded-content {\n flex: 1;\n margin-left: 0.7em;\n min-width: 0;\n }\n}\n",".chat-new {\n .input-wrap {\n display: flex;\n margin: 0.7em 0.5em;\n\n input {\n width: 100%;\n }\n }\n\n .search-icon {\n margin-right: 0.3em;\n }\n\n .member-list {\n padding-bottom: 0.7rem;\n }\n\n .basic-user-card:hover {\n cursor: pointer;\n background-color: var(--selectedPost, $fallback--lightBg);\n }\n\n .go-back-button {\n text-align: center;\n line-height: 1;\n height: 100%;\n align-self: start;\n width: var(--__panel-heading-height-inner);\n }\n}\n","\n@import \"../../variables\";\n\n.chat-list {\n min-height: 25em;\n margin-bottom: 0;\n}\n\n.emtpy-chat-list-alert {\n padding: 3em;\n font-size: 1.2em;\n display: flex;\n justify-content: center;\n color: $fallback--text;\n color: var(--faint, $fallback--text);\n}\n\n","@import \"../../variables\";\n\n.chat-message-wrapper {\n &.hovered-message-chain {\n .animated.Avatar {\n canvas {\n display: none;\n }\n\n img {\n visibility: visible;\n }\n }\n }\n\n .chat-message-menu {\n transition: opacity 0.1s;\n opacity: 0;\n position: absolute;\n top: -0.8em;\n\n button {\n padding-top: 0.2em;\n padding-bottom: 0.2em;\n }\n }\n\n .menu-icon {\n cursor: pointer;\n\n &:hover,\n .extra-button-popover.open & {\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n }\n\n .popover {\n width: 12em;\n }\n\n .chat-message {\n display: flex;\n padding-bottom: 0.5em;\n\n .status-body:hover {\n --_still-image-img-visibility: visible;\n --_still-image-canvas-visibility: hidden;\n --_still-image-label-visibility: hidden;\n }\n }\n\n .avatar-wrapper {\n margin-right: 0.72em;\n width: 32px;\n }\n\n .link-preview,\n .attachments {\n margin-bottom: 1em;\n }\n\n .status {\n border-radius: $fallback--chatMessageRadius;\n border-radius: var(--chatMessageRadius, $fallback--chatMessageRadius);\n display: flex;\n padding: 0.75em;\n }\n\n .created-at {\n position: relative;\n float: right;\n font-size: 0.8em;\n margin: -1em 0 -0.5em;\n font-style: italic;\n opacity: 0.8;\n }\n\n .without-attachment {\n .message-content {\n // TODO figure out how to do it properly\n .RichContent::after {\n margin-right: 5.4em;\n content: \" \";\n display: inline-block;\n }\n }\n }\n\n .pending {\n .status-content.media-body,\n .created-at {\n color: var(--faint);\n }\n }\n\n .error {\n .status-content.media-body,\n .created-at {\n color: $fallback--cRed;\n color: var(--badgeNotification, $fallback--cRed);\n }\n }\n\n .chat-message-inner {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n max-width: 80%;\n min-width: 10em;\n width: 100%;\n }\n\n .outgoing {\n display: flex;\n flex-flow: row wrap;\n align-content: end;\n justify-content: flex-end;\n\n a {\n color: var(--chatMessageOutgoingLink, $fallback--link);\n }\n\n .status {\n color: var(--chatMessageOutgoingText, $fallback--text);\n background-color: var(--chatMessageOutgoingBg, $fallback--lightBg);\n border: 1px solid var(--chatMessageOutgoingBorder, --lightBg);\n }\n\n .chat-message-inner {\n align-items: flex-end;\n }\n\n .chat-message-menu {\n right: 0.4rem;\n }\n }\n\n .incoming {\n a {\n color: var(--chatMessageIncomingLink, $fallback--link);\n }\n\n .status {\n color: var(--chatMessageIncomingText, $fallback--text);\n background-color: var(--chatMessageIncomingBg, $fallback--bg);\n border: 1px solid var(--chatMessageIncomingBorder, --border);\n }\n\n .created-at {\n a {\n color: var(--chatMessageIncomingText, $fallback--text);\n }\n }\n\n .chat-message-menu {\n left: 0.4rem;\n }\n }\n\n .chat-message-inner.with-media {\n width: 100%;\n\n .status {\n width: 100%;\n }\n }\n\n .visible {\n opacity: 1;\n }\n}\n\n.chat-message-date-separator {\n text-align: center;\n margin: 1.4em 0;\n font-size: 0.9em;\n user-select: none;\n color: $fallback--text;\n color: var(--faintedText, $fallback--text);\n}\n",".chat-view {\n display: flex;\n height: 100%;\n\n .chat-view-inner {\n height: auto;\n width: 100%;\n overflow: visible;\n display: flex;\n }\n\n .chat-view-body {\n box-sizing: border-box;\n background-color: var(--chatBg, $fallback--bg);\n display: flex;\n flex-direction: column;\n width: 100%;\n overflow: visible;\n min-height: calc(100vh - var(--navbar-height));\n margin: 0;\n border-radius: 10px 10px 0 0;\n border-radius: var(--panelRadius, 10px) var(--panelRadius, 10px) 0 0;\n\n &::after {\n border-radius: 0;\n }\n }\n\n .message-list {\n padding: 0 0.8em;\n height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: end;\n }\n\n .footer {\n position: sticky;\n bottom: 0;\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n z-index: 1;\n }\n\n .chat-view-heading {\n grid-template-columns: auto minmax(50%, 1fr);\n }\n\n .go-back-button {\n text-align: center;\n line-height: 1;\n height: 100%;\n align-self: start;\n width: var(--__panel-heading-height-inner);\n }\n\n .jump-to-bottom-button {\n width: 2.5em;\n height: 2.5em;\n border-radius: 100%;\n position: absolute;\n right: 1.3em;\n top: -3.2em;\n background-color: $fallback--fg;\n background-color: var(--btn, $fallback--fg);\n display: flex;\n justify-content: center;\n align-items: center;\n box-shadow: 0 1px 1px rgb(0 0 0 / 30%), 0 2px 4px rgb(0 0 0 / 30%);\n z-index: 10;\n transition: 0.35s all;\n transition-timing-function: cubic-bezier(0, 1, 0.5, 1);\n opacity: 0;\n visibility: hidden;\n cursor: pointer;\n\n &.visible {\n opacity: 1;\n visibility: visible;\n }\n\n i {\n font-size: 1em;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n\n .unread-message-count {\n font-size: 0.8em;\n left: 50%;\n margin-top: -1rem;\n padding: 0.1em;\n border-radius: 50px;\n position: absolute;\n }\n\n .chat-loading-error {\n width: 100%;\n display: flex;\n align-items: flex-end;\n height: 100%;\n\n .error {\n width: 100%;\n }\n }\n }\n}\n","\n.follow-card {\n &-content-container {\n flex-shrink: 0;\n display: flex;\n flex-flow: row wrap;\n justify-content: space-between;\n line-height: 1.5em;\n }\n\n &-button {\n margin-top: 0.5em;\n padding: 0 1.5em;\n margin-left: 1em;\n }\n\n &-follow-button {\n margin-top: 0.5em;\n margin-left: auto;\n width: 10em;\n }\n}\n","@import \"../../variables\";\n\n.with-load-more {\n &-footer {\n padding: 10px;\n text-align: center;\n border-top: 1px solid;\n border-top-color: $fallback--border;\n border-top-color: var(--border, $fallback--border);\n\n .error {\n font-size: 1rem;\n }\n\n a {\n cursor: pointer;\n }\n }\n}\n","\n@import \"../../variables\";\n\n.user-profile {\n flex: 2;\n flex-basis: 500px;\n\n // No sticky header on user profile\n --currentPanelStack: 1;\n\n .user-birthday {\n margin: 0 0.75em 0.5em;\n }\n\n .user-profile-fields {\n margin: 0 0.5em;\n\n img {\n object-fit: contain;\n vertical-align: middle;\n max-width: 100%;\n max-height: 400px;\n\n &.emoji {\n width: 18px;\n height: 18px;\n }\n }\n\n .user-profile-field {\n display: flex;\n margin: 0.25em;\n border: 1px solid var(--border, $fallback--border);\n border-radius: $fallback--inputRadius;\n border-radius: var(--inputRadius, $fallback--inputRadius);\n\n .user-profile-field-name {\n flex: 0 1 30%;\n font-weight: 500;\n text-align: right;\n color: var(--lightText);\n min-width: 120px;\n border-right: 1px solid var(--border, $fallback--border);\n }\n\n .user-profile-field-value {\n flex: 1 1 70%;\n color: var(--text);\n margin: 0 0 0 0.25em;\n }\n\n .user-profile-field-name,\n .user-profile-field-value {\n line-height: 1.3;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n padding: 0.5em 1.5em;\n box-sizing: border-box;\n }\n }\n }\n\n .userlist-placeholder {\n display: flex;\n justify-content: center;\n align-items: middle;\n padding: 2em;\n }\n}\n\n.user-profile-placeholder {\n .panel-body {\n display: flex;\n justify-content: center;\n align-items: middle;\n padding: 7em;\n }\n}\n","\n@import \"../../variables\";\n\n.search-result-heading {\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n padding: 0.75rem;\n text-align: center;\n}\n\n@media all and (max-width: 800px) {\n .search-nav-heading {\n .tab-switcher .tabs .tab-wrapper {\n display: block;\n justify-content: center;\n flex: 1 1 auto;\n text-align: center;\n }\n }\n}\n\n.search-result {\n box-sizing: border-box;\n border-bottom: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n}\n\n.search-result-footer {\n border-width: 1px 0 0;\n border-style: solid;\n border-color: var(--border, $fallback--border);\n padding: 10px;\n background-color: $fallback--fg;\n background-color: var(--panel, $fallback--fg);\n}\n\n.search-input-container {\n padding: 0.8rem;\n display: flex;\n justify-content: center;\n\n .search-input {\n width: 100%;\n line-height: 1.125rem;\n font-size: 1rem;\n padding: 0.5rem;\n box-sizing: border-box;\n }\n\n .search-button {\n margin-left: 0.5em;\n }\n}\n\n.loading-icon {\n padding: 1em;\n}\n\n.trend {\n display: flex;\n align-items: center;\n\n .hashtag {\n flex: 1 1 auto;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .count {\n flex: 0 0 auto;\n width: 2rem;\n font-size: 1.5rem;\n line-height: 2.25rem;\n font-weight: 500;\n text-align: center;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n}\n\n.more-statuses-button {\n height: 3.5em;\n line-height: 3.5em;\n}\n\n","\n@import \"../../variables\";\n\n.interface-language-switcher {\n .language-select {\n margin-right: 1em;\n }\n}\n","\n@import \"../../variables\";\n$validations-cRed: #f04124;\n\n.registration-form {\n display: flex;\n flex-direction: column;\n margin: 0.6em;\n\n .container {\n display: flex;\n flex-direction: row;\n\n > * {\n min-width: 0;\n }\n }\n\n .terms-of-service {\n flex: 0 1 50%;\n margin: 0.8em;\n }\n\n .text-fields {\n margin-top: 0.6em;\n flex: 1 0;\n display: flex;\n flex-direction: column;\n }\n\n textarea {\n min-height: 100px;\n resize: vertical;\n }\n\n .form-group {\n display: flex;\n flex-direction: column;\n padding: 0.3em 0;\n line-height: 2;\n margin-bottom: 1em;\n }\n\n .form-group--error {\n animation-name: shakeError;\n animation-duration: 0.6s;\n animation-timing-function: ease-in-out;\n }\n\n .form-group--error .form--label {\n color: $validations-cRed;\n color: var(--cRed, $validations-cRed);\n }\n\n .form-error {\n margin-top: -0.7em;\n text-align: left;\n\n span {\n font-size: 0.85em;\n }\n }\n\n .form-error ul {\n list-style: none;\n padding: 0 0 0 5px;\n margin-top: 0;\n\n li::before {\n content: \"• \";\n }\n }\n\n form textarea {\n line-height: 16px;\n resize: vertical;\n }\n\n .captcha {\n max-width: 350px;\n margin-bottom: 0.4em;\n }\n\n .btn {\n margin-top: 0.6em;\n height: 2em;\n }\n\n .error {\n text-align: center;\n }\n}\n\n@media all and (max-width: 800px) {\n .registration-form .container {\n flex-direction: column-reverse;\n }\n}\n","\n@import \"../../variables\";\n\n.password-reset-form {\n display: flex;\n flex-direction: column;\n align-items: center;\n margin: 0.6em;\n\n .container {\n display: flex;\n flex: 1 0;\n flex-direction: column;\n margin-top: 0.6em;\n max-width: 18rem;\n\n > * {\n min-width: 0;\n }\n }\n\n .form-group {\n display: flex;\n flex-direction: column;\n margin-bottom: 1em;\n padding: 0.3em 0;\n line-height: 1.85em;\n }\n\n .error {\n text-align: center;\n animation-name: shakeError;\n animation-duration: 0.4s;\n animation-timing-function: ease-in-out;\n }\n\n .alert {\n padding: 0.5em;\n margin: 0.3em 0 1em;\n }\n\n .password-reset-required {\n background-color: var(--alertError, $fallback--alertError);\n padding: 10px 0;\n }\n\n .notice-dismissible {\n padding-right: 2rem;\n }\n\n .dismiss {\n cursor: pointer;\n }\n}\n\n","\n.follow-request-card-content-container {\n display: flex;\n flex-flow: row wrap;\n\n button {\n margin-top: 0.5em;\n margin-right: 0.5em;\n flex: 1 1;\n max-width: 12em;\n min-width: 8em;\n\n &:last-child {\n margin-right: 0;\n }\n }\n}\n","\n.tos-content {\n margin: 1em;\n}\n","\n.staff-group {\n padding-left: 1em;\n padding-top: 1em;\n\n .basic-user-card {\n padding-left: 0;\n }\n}\n\n",".mrf-section {\n margin: 1em;\n\n table {\n width: 100%;\n text-align: left;\n padding-left: 10px;\n padding-bottom: 20px;\n\n th,\n td {\n width: 180px;\n max-width: 360px;\n overflow: hidden;\n vertical-align: text-top;\n }\n\n th + th,\n td + td {\n width: auto;\n }\n }\n}\n","\n@import \"../../variables\";\n\n.list-card {\n display: flex;\n}\n\n.list-name {\n flex-grow: 1;\n}\n\n.list-name,\n.button-list-edit {\n margin: 0;\n padding: 1em;\n color: $fallback--link;\n color: var(--link, $fallback--link);\n\n &:hover {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n color: $fallback--link;\n color: var(--selectedMenuText, $fallback--link);\n\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n }\n}\n","\n.Lists {\n .new-list-button {\n padding: 0 0.5em;\n }\n}\n","\n@import \"../../variables\";\n\n.ListsUserSearch {\n .input-wrap {\n display: flex;\n margin: 0.7em 0.5em;\n\n input {\n width: 100%;\n }\n }\n\n .search-icon {\n margin-right: 0.3em;\n }\n}\n\n","\n@import \"src/variables\";\n\n.panel-loading {\n display: flex;\n height: 100%;\n align-items: center;\n justify-content: center;\n font-size: 2em;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n\n .loading-text svg {\n line-height: 0;\n vertical-align: middle;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n}\n","\n@import \"../../variables\";\n\n.ListEdit {\n --panel-body-padding: 0.5em;\n\n height: calc(100vh - var(--navbar-height));\n overflow: hidden;\n display: flex;\n flex-direction: column;\n\n .list-edit-heading {\n grid-template-columns: auto minmax(50%, 1fr);\n }\n\n .panel-body {\n display: flex;\n flex: 1;\n flex-direction: column;\n overflow: hidden;\n }\n\n .list-member-management {\n flex: 1 0 auto;\n }\n\n .search-icon {\n margin-right: 0.3em;\n }\n\n .users-list {\n padding-bottom: 0.7rem;\n overflow-y: auto;\n }\n\n & .search-list,\n & .members-list {\n overflow: hidden;\n flex-direction: column;\n min-height: 0;\n }\n\n .go-back-button {\n text-align: center;\n line-height: 1;\n height: 100%;\n align-self: start;\n width: var(--__panel-heading-height-inner);\n }\n\n .btn {\n margin: 0 0.5em;\n }\n\n .panel-footer {\n grid-template-columns: minmax(10%, 1fr);\n\n .footer-button {\n min-width: 9em;\n }\n }\n}\n","\n.announcement-editor {\n display: flex;\n align-items: stretch;\n flex-direction: column;\n\n .announcement-metadata {\n margin-top: 0.5em;\n }\n\n .post-textarea {\n resize: vertical;\n height: 10em;\n overflow: none;\n box-sizing: content-box;\n }\n}\n","\n@import \"../../variables\";\n\n.announcement {\n border-bottom: 1px solid var(--border, $fallback--border);\n border-radius: 0;\n padding: var(--status-margin, $status-margin);\n\n .heading,\n .body {\n margin-bottom: var(--status-margin, $status-margin);\n }\n\n .footer {\n display: flex;\n flex-direction: column;\n\n .times {\n display: flex;\n flex-direction: column;\n }\n }\n\n .footer .actions {\n display: flex;\n flex-direction: row;\n justify-content: space-evenly;\n\n .btn {\n flex: 1;\n margin: 1em;\n max-width: 10em;\n }\n }\n}\n","\n@import \"../../variables\";\n\n.announcements-page {\n .post-form {\n padding: var(--status-margin, $status-margin);\n\n .heading,\n .body {\n margin-bottom: var(--status-margin, $status-margin);\n }\n\n .post-button {\n min-width: 10em;\n }\n }\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file
+{"version":3,"file":"static/css/app.a7f63ee9107a77599942.css","mappings":"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","sources":["webpack://pleroma_fe/./src/components/modal/modal.vue","webpack://pleroma_fe/./node_modules/vue-virtual-scroller/dist/vue-virtual-scroller.css","webpack://pleroma_fe/./src/components/login_form/login_form.vue","webpack://pleroma_fe/./src/components/media_upload/media_upload.vue","webpack://pleroma_fe/./src/components/scope_selector/scope_selector.vue","webpack://pleroma_fe/./src/_variables.scss","webpack://pleroma_fe/./src/components/checkbox/checkbox.vue","webpack://pleroma_fe/./src/components/popover/popover.vue","webpack://pleroma_fe/./src/components/still-image/still-image.vue","webpack://pleroma_fe/./src/components/emoji_picker/emoji_picker.scss","webpack://pleroma_fe/./src/components/emoji_input/emoji_input.vue","webpack://pleroma_fe/./src/components/select/select.vue","webpack://pleroma_fe/./src/components/poll/poll_form.vue","webpack://pleroma_fe/./src/components/flash/flash.vue","webpack://pleroma_fe/./src/components/attachment/attachment.scss","webpack://pleroma_fe/./src/components/gallery/gallery.vue","webpack://pleroma_fe/./src/components/user_avatar/user_avatar.vue","webpack://pleroma_fe/./src/components/mention_link/mention_link.scss","webpack://pleroma_fe/./src/components/mentions_line/mentions_line.scss","webpack://pleroma_fe/./src/components/hashtag_link/hashtag_link.scss","webpack://pleroma_fe/./src/components/rich_content/rich_content.scss","webpack://pleroma_fe/./src/components/poll/poll.vue","webpack://pleroma_fe/./src/components/status_body/status_body.scss","webpack://pleroma_fe/./src/components/link-preview/link-preview.vue","webpack://pleroma_fe/./src/components/status_content/status_content.vue","webpack://pleroma_fe/./src/components/post_status_form/post_status_form.vue","webpack://pleroma_fe/./src/components/remote_follow/remote_follow.vue","webpack://pleroma_fe/./src/components/dialog_modal/dialog_modal.vue","webpack://pleroma_fe/./src/components/moderation_tools/moderation_tools.vue","webpack://pleroma_fe/./src/components/account_actions/account_actions.vue","webpack://pleroma_fe/./src/components/user_note/user_note.vue","webpack://pleroma_fe/./src/components/user_card/user_card.scss","webpack://pleroma_fe/./src/components/user_panel/user_panel.vue","webpack://pleroma_fe/./src/components/navigation/navigation_entry.vue","webpack://pleroma_fe/./src/components/navigation/navigation_pins.vue","webpack://pleroma_fe/./src/components/nav_panel/nav_panel.vue","webpack://pleroma_fe/./src/components/features_panel/features_panel.vue","webpack://pleroma_fe/./src/components/who_to_follow_panel/who_to_follow_panel.vue","webpack://pleroma_fe/./src/components/shout_panel/shout_panel.vue","webpack://pleroma_fe/./src/components/media_modal/media_modal.vue","webpack://pleroma_fe/./src/components/side_drawer/side_drawer.vue","webpack://pleroma_fe/./src/components/mobile_post_status_button/mobile_post_status_button.vue","webpack://pleroma_fe/./src/components/reply_button/reply_button.vue","webpack://pleroma_fe/./src/components/favorite_button/favorite_button.vue","webpack://pleroma_fe/./src/components/react_button/react_button.vue","webpack://pleroma_fe/./src/components/retweet_button/retweet_button.vue","webpack://pleroma_fe/./src/components/extra_buttons/extra_buttons.vue","webpack://pleroma_fe/./src/components/avatar_list/avatar_list.vue","webpack://pleroma_fe/./src/components/status_popover/status_popover.vue","webpack://pleroma_fe/./src/components/user_list_popover/user_list_popover.vue","webpack://pleroma_fe/./src/components/emoji_reactions/emoji_reactions.vue","webpack://pleroma_fe/./src/components/status/status.scss","webpack://pleroma_fe/./src/components/report/report.scss","webpack://pleroma_fe/./src/components/notification/notification.scss","webpack://pleroma_fe/./src/components/notifications/notifications.scss","webpack://pleroma_fe/./src/components/mobile_nav/mobile_nav.vue","webpack://pleroma_fe/./src/components/search_bar/search_bar.vue","webpack://pleroma_fe/./src/components/desktop_nav/desktop_nav.scss","webpack://pleroma_fe/./src/components/list/list.vue","webpack://pleroma_fe/./src/components/user_reporting_modal/user_reporting_modal.vue","webpack://pleroma_fe/./src/components/edit_status_modal/edit_status_modal.vue","webpack://pleroma_fe/./src/components/post_status_modal/post_status_modal.vue","webpack://pleroma_fe/./src/components/status_history_modal/status_history_modal.vue","webpack://pleroma_fe/./src/components/global_notice_list/global_notice_list.vue","webpack://pleroma_fe/./src/App.scss","webpack://pleroma_fe/./src/panel.scss","webpack://pleroma_fe/./src/components/thread_tree/thread_tree.vue","webpack://pleroma_fe/./src/components/conversation/conversation.vue","webpack://pleroma_fe/./src/components/timeline_menu/timeline_menu.vue","webpack://pleroma_fe/./src/components/timeline/timeline.scss","webpack://pleroma_fe/./src/components/tab_switcher/tab_switcher.scss","webpack://pleroma_fe/./src/components/chat_title/chat_title.vue","webpack://pleroma_fe/./src/components/chat_list_item/chat_list_item.scss","webpack://pleroma_fe/./src/components/basic_user_card/basic_user_card.vue","webpack://pleroma_fe/./src/components/chat_new/chat_new.scss","webpack://pleroma_fe/./src/components/chat_list/chat_list.vue","webpack://pleroma_fe/./src/components/chat_message/chat_message.scss","webpack://pleroma_fe/./src/components/chat/chat.scss","webpack://pleroma_fe/./src/components/follow_card/follow_card.vue","webpack://pleroma_fe/./src/hocs/with_load_more/with_load_more.scss","webpack://pleroma_fe/./src/components/user_profile/user_profile.vue","webpack://pleroma_fe/./src/components/search/search.vue","webpack://pleroma_fe/./src/components/interface_language_switcher/interface_language_switcher.vue","webpack://pleroma_fe/./src/components/registration/registration.vue","webpack://pleroma_fe/./src/components/password_reset/password_reset.vue","webpack://pleroma_fe/./src/components/follow_request_card/follow_request_card.vue","webpack://pleroma_fe/./src/components/terms_of_service_panel/terms_of_service_panel.vue","webpack://pleroma_fe/./src/components/staff_panel/staff_panel.vue","webpack://pleroma_fe/./src/components/mrf_transparency_panel/mrf_transparency_panel.scss","webpack://pleroma_fe/./src/components/lists_card/lists_card.vue","webpack://pleroma_fe/./src/components/lists/lists.vue","webpack://pleroma_fe/./src/components/lists_user_search/lists_user_search.vue","webpack://pleroma_fe/./src/components/panel_loading/panel_loading.vue","webpack://pleroma_fe/./src/components/lists_edit/lists_edit.vue","webpack://pleroma_fe/./src/components/announcement_editor/announcement_editor.vue","webpack://pleroma_fe/./src/components/announcement/announcement.vue","webpack://pleroma_fe/./src/components/announcements_page/announcements_page.vue"],"sourcesContent":["\n.modal-view {\n z-index: var(--ZI_modals);\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 pointer-events: none;\n animation-duration: 0.2s;\n animation-name: modal-background-fadein;\n opacity: 0;\n\n > * {\n pointer-events: initial;\n }\n\n &.modal-background {\n pointer-events: initial;\n background-color: rgb(0 0 0 / 50%);\n }\n\n &.open {\n opacity: 1;\n }\n}\n\n@keyframes modal-background-fadein {\n from {\n background-color: rgb(0 0 0 / 0%);\n }\n\n to {\n background-color: rgb(0 0 0 / 50%);\n }\n}\n",".vue-recycle-scroller{position:relative}.vue-recycle-scroller.direction-vertical:not(.page-mode){overflow-y:auto}.vue-recycle-scroller.direction-horizontal:not(.page-mode){overflow-x:auto}.vue-recycle-scroller.direction-horizontal{display:flex}.vue-recycle-scroller__slot{flex:auto 0 0}.vue-recycle-scroller__item-wrapper{flex:1;box-sizing:border-box;overflow:hidden;position:relative}.vue-recycle-scroller.ready .vue-recycle-scroller__item-view{position:absolute;top:0;left:0;will-change:transform}.vue-recycle-scroller.direction-vertical .vue-recycle-scroller__item-wrapper{width:100%}.vue-recycle-scroller.direction-horizontal .vue-recycle-scroller__item-wrapper{height:100%}.vue-recycle-scroller.ready.direction-vertical .vue-recycle-scroller__item-view{width:100%}.vue-recycle-scroller.ready.direction-horizontal .vue-recycle-scroller__item-view{height:100%}.resize-observer[data-v-b329ee4c]{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%;border:none;background-color:transparent;pointer-events:none;display:block;overflow:hidden;opacity:0}.resize-observer[data-v-b329ee4c] object{display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1}","\n@import \"../../variables\";\n\n.login-form {\n display: flex;\n flex-direction: column;\n padding: 0.6em;\n\n .btn {\n min-height: 2em;\n width: 10em;\n }\n\n .register {\n flex: 1 1;\n }\n\n .login-bottom {\n margin-top: 1em;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n }\n\n .form-group {\n display: flex;\n flex-direction: column;\n padding: 0.3em 0.5em 0.6em;\n line-height: 24px;\n }\n\n .form-bottom {\n display: flex;\n padding: 0.5em;\n height: 32px;\n\n button {\n width: 10em;\n }\n\n p {\n margin: 0.35em;\n padding: 0.35em;\n display: flex;\n }\n }\n\n .error {\n text-align: center;\n animation-name: shakeError;\n animation-duration: 0.4s;\n animation-timing-function: ease-in-out;\n }\n}\n","\n@import \"../../variables\";\n\n.media-upload {\n .hidden-input-file {\n display: none;\n }\n}\n\nlabel.media-upload {\n cursor: pointer; // We use <label> for interactivity... i wonder if it's fine\n}\n","\n@import \"../../variables\";\n\n.ScopeSelector {\n .scope {\n display: inline-block;\n cursor: pointer;\n min-width: 1.3em;\n min-height: 1.3em;\n text-align: center;\n\n &.selected svg {\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n }\n }\n}\n","$main-color: #f58d2c;\n$main-background: white;\n$darkened-background: whitesmoke;\n\n$fallback--bg: #121a24;\n$fallback--fg: #182230;\n$fallback--faint: rgb(185 185 186 / 50%);\n$fallback--text: #b9b9ba;\n$fallback--link: #d8a070;\n$fallback--icon: #666;\n$fallback--lightBg: rgb(21 30 42);\n$fallback--lightText: #b9b9ba;\n$fallback--border: #222;\n$fallback--cRed: #f00;\n$fallback--cBlue: #0095ff;\n$fallback--cGreen: #0fa00f;\n$fallback--cOrange: orange;\n\n$fallback--alertError: rgb(211 16 20 / 50%);\n$fallback--alertWarning: rgb(111 111 20 / 50%);\n\n$fallback--panelRadius: 10px;\n$fallback--checkboxRadius: 2px;\n$fallback--btnRadius: 4px;\n$fallback--inputRadius: 4px;\n$fallback--tooltipRadius: 5px;\n$fallback--avatarRadius: 4px;\n$fallback--avatarAltRadius: 10px;\n$fallback--attachmentRadius: 10px;\n$fallback--chatMessageRadius: 10px;\n\n$fallback--buttonShadow: 0 0 2px 0 rgb(0 0 0 / 100%),\n 0 1px 0 0 rgb(255 255 255 / 20%) inset,\n 0 -1px 0 0 rgb(0 0 0 / 20%) inset;\n\n$status-margin: 0.75em;\n","\n@import \"../../variables\";\n@import \"../../mixins\";\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: 0 0 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: 0.5;\n }\n\n .label {\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n }\n }\n\n input[type=\"checkbox\"] {\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 &.indeterminate-fix {\n input[type=\"checkbox\"] + .checkbox-indicator::before {\n content: \"–\";\n }\n }\n\n & > span {\n margin-left: 0.5em;\n }\n}\n","\n@import \"../../variables\";\n\n.popover-trigger-button {\n display: inline-block;\n}\n\n.popover {\n z-index: var(--ZI_popover_override, var(--ZI_popovers));\n position: fixed;\n min-width: 0;\n max-width: calc(100vw - 20px);\n box-shadow: 2px 2px 3px rgb(0 0 0 / 50%);\n box-shadow: var(--popupShadow);\n}\n\n.popover-default {\n &::after {\n content: \"\";\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 3;\n box-shadow: 1px 1px 4px rgb(0 0 0 / 60%);\n box-shadow: var(--panelShadow);\n pointer-events: none;\n }\n\n border-radius: $fallback--btnRadius;\n border-radius: var(--btnRadius, $fallback--btnRadius);\n background-color: $fallback--bg;\n background-color: var(--popover, $fallback--bg);\n color: $fallback--text;\n color: var(--popoverText, $fallback--text);\n\n --faint: var(--popoverFaintText, $fallback--faint);\n --faintLink: var(--popoverFaintLink, $fallback--faint);\n --lightText: var(--popoverLightText, $fallback--lightText);\n --postLink: var(--popoverPostLink, $fallback--link);\n --postFaintLink: var(--popoverPostFaintLink, $fallback--link);\n --icon: var(--popoverIcon, $fallback--icon);\n}\n\n.dropdown-menu {\n display: block;\n padding: 0.5rem 0;\n font-size: 1em;\n text-align: left;\n list-style: none;\n max-width: 100vw;\n z-index: var(--ZI_popover_override, var(--ZI_popovers));\n white-space: nowrap;\n\n .dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid $fallback--border;\n border-top: 1px solid var(--border, $fallback--border);\n }\n\n .dropdown-item {\n line-height: 21px;\n overflow: hidden;\n display: block;\n padding: 0.5em 0.75em;\n clear: both;\n font-weight: 400;\n text-align: inherit;\n white-space: nowrap;\n border: none;\n border-radius: 0;\n background-color: transparent;\n box-shadow: none;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n\n --btnText: var(--popoverText, $fallback--text);\n\n &-icon {\n svg {\n width: 22px;\n margin-right: 0.75rem;\n color: var(--menuPopoverIcon, $fallback--icon);\n }\n }\n\n &.-has-submenu {\n .chevron-icon {\n margin-right: 0.25rem;\n margin-left: 2rem;\n }\n }\n\n &:active,\n &:hover {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenuPopover, $fallback--lightBg);\n box-shadow: none;\n\n --btnText: var(--selectedMenuPopoverText, $fallback--link);\n --faint: var(--selectedMenuPopoverFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuPopoverFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuPopoverLightText, $fallback--lightText);\n --icon: var(--selectedMenuPopoverIcon, $fallback--icon);\n\n svg {\n color: var(--selectedMenuPopoverIcon, $fallback--icon);\n\n --icon: var(--selectedMenuPopoverIcon, $fallback--icon);\n }\n }\n\n .menu-checkbox {\n display: inline-block;\n vertical-align: middle;\n min-width: 22px;\n max-width: 22px;\n min-height: 22px;\n max-height: 22px;\n line-height: 22px;\n text-align: center;\n border-radius: 0;\n background-color: $fallback--fg;\n background-color: var(--input, $fallback--fg);\n box-shadow: 0 0 2px black inset;\n box-shadow: var(--inputShadow);\n margin-right: 0.75em;\n\n &.menu-checkbox-checked::after {\n font-size: 1.25em;\n content: \"✓\";\n }\n\n &.-radio {\n border-radius: 9999px;\n\n &.menu-checkbox-checked::after {\n font-size: 2em;\n content: \"•\";\n }\n }\n }\n }\n\n .button-default.dropdown-item {\n &,\n i[class*=\"icon-\"] {\n color: $fallback--text;\n color: var(--btnText, $fallback--text);\n }\n\n &:active {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenuPopover, $fallback--lightBg);\n color: $fallback--link;\n color: var(--selectedMenuPopoverText, $fallback--link);\n }\n\n &:disabled {\n color: $fallback--text;\n color: var(--btnDisabledText, $fallback--text);\n }\n\n &.toggled {\n color: $fallback--text;\n color: var(--btnToggledText, $fallback--text);\n }\n }\n}\n","\n@import \"../../variables\";\n\n.still-image {\n position: relative;\n line-height: 0;\n overflow: hidden;\n display: inline-flex;\n align-items: center;\n\n canvas {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n width: 100%;\n height: 100%;\n object-fit: contain;\n visibility: var(--_still-image-canvas-visibility, visible);\n }\n\n img {\n width: 100%;\n height: 100%;\n object-fit: contain;\n }\n\n &.animated {\n &::before {\n zoom: var(--_still_image-label-scale, 1);\n content: \"gif\";\n position: absolute;\n line-height: 1;\n font-size: 0.7em;\n top: 0.5em;\n left: 0.5em;\n background: rgb(127 127 127 / 50%);\n color: #fff;\n display: block;\n padding: 2px 4px;\n border-radius: $fallback--tooltipRadius;\n border-radius: var(--tooltipRadius, $fallback--tooltipRadius);\n z-index: 2;\n visibility: var(--_still-image-label-visibility, visible);\n }\n\n &:hover canvas {\n display: none;\n }\n\n &:hover::before {\n visibility: var(--_still-image-label-visibility, hidden);\n }\n\n img {\n visibility: var(--_still-image-img-visibility, hidden);\n }\n\n &:hover img {\n visibility: visible;\n }\n }\n}\n","@import \"../../variables\";\n\n$emoji-picker-header-height: 36px;\n$emoji-picker-header-picture-width: 32px;\n$emoji-picker-header-picture-height: 32px;\n$emoji-picker-emoji-size: 32px;\n\n.emoji-picker {\n width: 25em;\n max-width: calc(100vw - 20px); // popover gives 10px margin from window edge\n display: flex;\n flex-direction: column;\n background-color: $fallback--bg;\n background-color: var(--popover, $fallback--bg);\n color: $fallback--link;\n color: var(--popoverText, $fallback--link);\n\n --faint: var(--popoverFaintText, $fallback--faint);\n --faintLink: var(--popoverFaintLink, $fallback--faint);\n --lightText: var(--popoverLightText, $fallback--lightText);\n --icon: var(--popoverIcon, $fallback--icon);\n\n &-header-image {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n width: $emoji-picker-header-picture-width;\n max-width: $emoji-picker-header-picture-width;\n height: $emoji-picker-header-picture-height;\n max-height: $emoji-picker-header-picture-height;\n\n .still-image {\n max-width: 100%;\n max-height: 100%;\n height: 100%;\n width: 100%;\n object-fit: contain;\n }\n }\n\n .keep-open,\n .too-many-emoji {\n padding: 7px;\n line-height: normal;\n }\n\n .too-many-emoji {\n display: flex;\n flex-direction: column;\n }\n\n .keep-open-label {\n padding: 0 7px;\n display: flex;\n }\n\n .heading {\n display: flex;\n padding: 10px 7px 5px;\n }\n\n .content {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n min-height: 0;\n }\n\n .emoji-tabs {\n flex-grow: 1;\n display: flex;\n flex-flow: row nowrap;\n overflow-x: auto;\n }\n\n .additional-tabs {\n display: flex;\n border-left: 1px solid;\n border-left-color: $fallback--icon;\n border-left-color: var(--icon, $fallback--icon);\n padding-left: 7px;\n flex: 0 0 auto;\n }\n\n .additional-tabs,\n .emoji-tabs {\n flex-basis: auto;\n display: flex;\n align-content: center;\n\n &-item {\n padding: 0 7px;\n cursor: pointer;\n font-size: 1.85em;\n width: $emoji-picker-header-picture-width;\n max-width: $emoji-picker-header-picture-width;\n height: $emoji-picker-header-picture-height;\n max-height: $emoji-picker-header-picture-height;\n display: flex;\n align-items: center;\n\n &.disabled {\n opacity: 0.5;\n pointer-events: none;\n }\n\n &.active {\n border-bottom: 4px solid;\n\n svg {\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n }\n }\n }\n }\n\n .sticker-picker {\n flex: 1 1 auto;\n }\n\n .stickers,\n .emoji {\n &-content {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n min-height: 0;\n\n &.hidden {\n opacity: 0;\n pointer-events: none;\n position: absolute;\n }\n }\n }\n\n .emoji {\n &-search {\n padding: 5px;\n flex: 0 0 auto;\n\n input {\n width: 100%;\n }\n }\n\n &-groups {\n height: 100%;\n min-height: 200px;\n flex: 1 1 1px;\n position: relative;\n overflow: auto;\n user-select: none;\n mask:\n linear-gradient(to top, white 0, transparent 100%) bottom no-repeat,\n linear-gradient(to bottom, white 0, transparent 100%) top no-repeat,\n linear-gradient(to top, white, white);\n transition: mask-size 150ms;\n mask-size: 100% 20px, 100% 20px, auto;\n // Autoprefixed seem to ignore this one, and also syntax is different\n mask-composite: xor;\n mask-composite: exclude;\n\n &.scrolled {\n &-top {\n mask-size: 100% 20px, 100% 0, auto;\n }\n\n &-bottom {\n mask-size: 100% 0, 100% 20px, auto;\n }\n }\n }\n\n &-group {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n padding-left: 5px;\n justify-content: left;\n\n &-title {\n font-size: 0.85em;\n width: 100%;\n margin: 0;\n\n &.disabled {\n display: none;\n }\n }\n }\n\n &-item {\n width: $emoji-picker-emoji-size;\n height: $emoji-picker-emoji-size;\n box-sizing: border-box;\n display: flex;\n line-height: $emoji-picker-emoji-size;\n align-items: center;\n justify-content: center;\n margin: 4px;\n cursor: pointer;\n\n .emoji-picker-emoji.-custom {\n object-fit: contain;\n max-width: 100%;\n max-height: 100%;\n }\n\n .emoji-picker-emoji.-unicode {\n font-size: 24px;\n overflow: hidden;\n }\n }\n }\n}\n","\n@import \"../../variables\";\n\n.emoji-input {\n display: flex;\n flex-direction: column;\n position: relative;\n\n .emoji-picker-icon {\n position: absolute;\n top: 0;\n right: 0;\n margin: 0.2em 0.25em;\n font-size: 1.3em;\n cursor: pointer;\n line-height: 24px;\n\n &:hover i {\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n }\n\n .emoji-picker-panel {\n position: absolute;\n z-index: 20;\n margin-top: 2px;\n\n &.hide {\n display: none;\n }\n }\n\n input,\n textarea {\n flex: 1 0 auto;\n }\n\n &.with-picker input {\n padding-right: 30px;\n }\n\n .hidden-overlay {\n opacity: 0;\n pointer-events: none;\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n left: 0;\n overflow: hidden;\n\n /* DEBUG STUFF */\n color: red;\n\n /* set opacity to non-zero to see the overlay */\n\n .caret {\n width: 0;\n margin-right: calc(-1ch - 1px);\n border: 1px solid red;\n }\n }\n}\n\n.autocomplete {\n &-panel {\n position: absolute;\n }\n\n &-item {\n display: flex;\n cursor: pointer;\n padding: 0.2em 0.4em;\n border-bottom: 1px solid rgb(0 0 0 / 40%);\n height: 32px;\n\n .image {\n width: 32px;\n height: 32px;\n line-height: 32px;\n text-align: center;\n font-size: 32px;\n margin-right: 4px;\n\n img {\n width: 32px;\n height: 32px;\n object-fit: contain;\n }\n }\n\n .label {\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin: 0 0.1em 0 0.2em;\n\n .displayText {\n line-height: 1.5;\n }\n\n .detailText {\n font-size: 9px;\n line-height: 9px;\n }\n }\n\n &.highlighted {\n background-color: $fallback--fg;\n background-color: var(--selectedMenuPopover, $fallback--fg);\n color: var(--selectedMenuPopoverText, $fallback--text);\n\n --faint: var(--selectedMenuPopoverFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuPopoverFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuPopoverLightText, $fallback--lightText);\n --icon: var(--selectedMenuPopoverIcon, $fallback--icon);\n }\n }\n}\n","\n@import \"../../variables\";\n\n/* TODO fix order of styles */\nlabel.Select {\n padding: 0;\n\n select {\n appearance: none;\n background: transparent;\n border: none;\n color: $fallback--text;\n color: var(--inputText, --text, $fallback--text);\n margin: 0;\n padding: 0 2em 0 0.2em;\n font-family: sans-serif;\n font-family: var(--inputFont, sans-serif);\n font-size: 1em;\n width: 100%;\n z-index: 1;\n height: 2em;\n line-height: 16px;\n }\n\n .select-down-icon {\n position: absolute;\n top: 0;\n bottom: 0;\n right: 5px;\n height: 100%;\n width: 0.875em;\n color: $fallback--text;\n color: var(--inputText, $fallback--text);\n line-height: 2;\n z-index: 0;\n pointer-events: none;\n }\n}\n","\n@import \"../../variables\";\n\n.poll-form {\n display: flex;\n flex-direction: column;\n padding: 0 0.5em 0.5em;\n\n .add-option {\n align-self: flex-start;\n padding-top: 0.25em;\n padding-left: 0.1em;\n }\n\n .poll-option {\n display: flex;\n align-items: baseline;\n justify-content: space-between;\n margin-bottom: 0.25em;\n }\n\n .input-container {\n width: 100%;\n\n input {\n // Hack: dodge the floating X icon\n padding-right: 2.5em;\n width: 100%;\n }\n }\n\n .delete-option {\n // Hack: Move the icon over the input box\n width: 1.5em;\n margin-left: -1.5em;\n z-index: 1;\n }\n\n .poll-type-expiry {\n margin-top: 0.5em;\n display: flex;\n width: 100%;\n }\n\n .poll-type {\n margin-right: 0.75em;\n flex: 1 1 60%;\n\n .poll-type-select {\n padding-right: 0.75em;\n }\n }\n\n .poll-expiry {\n display: flex;\n\n .expiry-amount {\n width: 3em;\n text-align: right;\n }\n }\n}\n","\n@import \"../../variables\";\n\n.Flash {\n display: inline-block;\n width: 100%;\n height: 100%;\n position: relative;\n\n .player {\n height: 100%;\n width: 100%;\n }\n\n .placeholder {\n height: 100%;\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--bg);\n color: var(--link);\n }\n\n .hider {\n top: 0;\n }\n\n .label {\n text-align: center;\n flex: 1 1 0;\n line-height: 1.2;\n white-space: normal;\n word-wrap: normal;\n }\n\n .hidden {\n display: none;\n visibility: \"hidden\";\n }\n}\n","@import \"../../variables\";\n\n.Attachment {\n display: inline-flex;\n flex-direction: column;\n position: relative;\n align-self: flex-start;\n line-height: 0;\n height: 100%;\n border-style: solid;\n border-width: 1px;\n border-radius: $fallback--attachmentRadius;\n border-radius: var(--attachmentRadius, $fallback--attachmentRadius);\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n\n .attachment-wrapper {\n flex: 1 1 auto;\n height: 100%;\n position: relative;\n overflow: hidden;\n }\n\n .description-container {\n flex: 0 1 0;\n display: flex;\n padding-top: 0.5em;\n z-index: 1;\n\n p {\n flex: 1;\n text-align: center;\n line-height: 1.5;\n padding: 0.5em;\n margin: 0;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n &.-static {\n position: absolute;\n left: 0;\n right: 0;\n bottom: 0;\n padding-top: 0;\n background: var(--popover);\n box-shadow: var(--popupShadow);\n }\n }\n\n .description-field {\n flex: 1;\n min-width: 0;\n }\n\n & .placeholder-container,\n & .image-container,\n & .audio-container,\n & .video-container,\n & .flash-container,\n & .oembed-container {\n display: flex;\n justify-content: center;\n width: 100%;\n height: 100%;\n }\n\n .image-container {\n .image {\n width: 100%;\n height: 100%;\n }\n }\n\n & .flash-container,\n & .video-container {\n & .flash,\n & video {\n width: 100%;\n height: 100%;\n object-fit: contain;\n align-self: center;\n }\n }\n\n .audio-container {\n display: flex;\n align-items: flex-end;\n\n audio {\n width: 100%;\n height: 100%;\n }\n }\n\n .placeholder-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding-top: 0.5em;\n }\n\n .play-icon {\n position: absolute;\n font-size: 64px;\n top: calc(50% - 32px);\n left: calc(50% - 32px);\n color: rgb(255 255 255 / 75%);\n text-shadow: 0 0 2px rgb(0 0 0 / 40%);\n\n &::before {\n margin: 0;\n }\n }\n\n .attachment-buttons {\n display: flex;\n position: absolute;\n right: 0;\n top: 0;\n margin-top: 0.5em;\n margin-right: 0.5em;\n z-index: 1;\n\n .attachment-button {\n padding: 0;\n border-radius: $fallback--tooltipRadius;\n border-radius: var(--tooltipRadius, $fallback--tooltipRadius);\n text-align: center;\n width: 2em;\n height: 2em;\n margin-left: 0.5em;\n font-size: 1.25em;\n // TODO: theming? hard to theme with unknown background image color\n background: rgb(230 230 230 / 70%);\n\n .svg-inline--fa {\n color: rgb(0 0 0 / 60%);\n }\n\n &:hover .svg-inline--fa {\n color: rgb(0 0 0 / 90%);\n }\n }\n }\n\n &.-contain-fit {\n img,\n canvas {\n object-fit: contain;\n }\n }\n\n &.-cover-fit {\n img,\n canvas {\n object-fit: cover;\n }\n }\n\n .oembed-container {\n line-height: 1.2em;\n flex: 1 0 100%;\n width: 100%;\n margin-right: 15px;\n display: flex;\n\n img {\n width: 100%;\n }\n\n .image {\n flex: 1;\n\n img {\n border: 0;\n border-radius: 5px;\n height: 100%;\n object-fit: cover;\n }\n }\n\n .text {\n flex: 2;\n margin: 8px;\n word-break: break-all;\n\n h1 {\n font-size: 1rem;\n margin: 0;\n }\n }\n }\n\n &.-size-small {\n .play-icon {\n zoom: 0.5;\n opacity: 0.7;\n }\n\n .attachment-buttons {\n zoom: 0.7;\n opacity: 0.5;\n }\n }\n\n &.-editable {\n padding: 0.5em;\n\n & .description-container,\n & .attachment-buttons {\n margin: 0;\n }\n }\n\n &.-placeholder {\n display: inline-block;\n color: $fallback--link;\n color: var(--postLink, $fallback--link);\n overflow: hidden;\n white-space: nowrap;\n height: auto;\n line-height: 1.5;\n\n &:not(.-editable) {\n border: none;\n }\n\n &.-editable {\n display: flex;\n flex-direction: row;\n align-items: baseline;\n\n & .description-container,\n & .attachment-buttons {\n margin: 0;\n padding: 0;\n position: relative;\n }\n\n .description-container {\n flex: 1;\n padding-left: 0.5em;\n }\n\n .attachment-buttons {\n order: 99;\n align-self: center;\n }\n }\n\n a {\n display: inline-block;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n svg {\n color: inherit;\n }\n }\n\n &.-loading {\n cursor: progress;\n }\n\n &.-compact {\n .placeholder-container {\n padding-bottom: 0.5em;\n }\n }\n}\n","\n@import \"../../variables\";\n\n.Gallery {\n .gallery-rows {\n display: flex;\n flex-direction: column;\n }\n\n .gallery-row {\n position: relative;\n height: 0;\n width: 100%;\n flex-grow: 1;\n\n .gallery-row-inner {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n flex-flow: row wrap;\n align-content: stretch;\n\n .gallery-item {\n margin: 0 0.5em 0 0;\n flex-grow: 1;\n height: 100%;\n box-sizing: border-box;\n // to make failed images a bit more noticeable on chromium\n min-width: 2em;\n\n &:last-child {\n margin: 0;\n }\n }\n\n &.-grid {\n width: 100%;\n height: auto;\n position: relative;\n display: grid;\n grid-gap: 0.5em;\n grid-template-columns: repeat(auto-fill, minmax(15em, 1fr));\n\n .gallery-item {\n margin: 0;\n height: 200px;\n }\n }\n }\n\n &.-grid,\n &.-minimal {\n height: auto;\n\n .gallery-row-inner {\n position: relative;\n }\n }\n\n &:not(:first-child) {\n margin-top: 0.5em;\n }\n }\n\n &.-long {\n .gallery-rows {\n max-height: 25em;\n overflow: hidden;\n mask:\n linear-gradient(to top, white, transparent) bottom/100% 70px no-repeat,\n linear-gradient(to top, white, white);\n\n /* Autoprefixed seem to ignore this one, and also syntax is different */\n mask-composite: xor;\n mask-composite: exclude;\n }\n }\n\n .many-attachments-text {\n text-align: center;\n line-height: 2;\n }\n\n .many-attachments-buttons {\n display: flex;\n }\n\n .many-attachments-button {\n display: flex;\n flex: 1;\n justify-content: center;\n line-height: 2;\n\n button {\n padding: 0 2em;\n }\n }\n}\n","\n@import \"../../variables\";\n\n.Avatar {\n --_avatarShadowBox: var(--avatarStatusShadow);\n --_avatarShadowFilter: var(--avatarStatusShadowFilter);\n --_avatarShadowInset: var(--avatarStatusShadowInset);\n --_still-image-label-visibility: hidden;\n\n display: inline-block;\n position: relative;\n width: 48px;\n height: 48px;\n\n &.-compact {\n width: 32px;\n height: 32px;\n border-radius: $fallback--avatarAltRadius;\n border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);\n }\n\n .avatar {\n width: 100%;\n height: 100%;\n box-shadow: var(--_avatarShadowBox);\n border-radius: $fallback--avatarRadius;\n border-radius: var(--avatarRadius, $fallback--avatarRadius);\n\n &.-better-shadow {\n box-shadow: var(--_avatarShadowInset);\n filter: var(--_avatarShadowFilter);\n }\n\n &.-animated::before {\n display: none;\n }\n\n &.-compact {\n border-radius: $fallback--avatarAltRadius;\n border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);\n }\n\n &.-placeholder {\n background-color: $fallback--fg;\n background-color: var(--fg, $fallback--fg);\n }\n }\n\n img {\n width: 100%;\n height: 100%;\n }\n\n .bot-indicator {\n position: absolute;\n bottom: 0;\n right: 0;\n margin: -0.2em;\n padding: 0.2em;\n background: rgb(127 127 127 / 50%);\n color: #fff;\n border-radius: var(--tooltipRadius);\n }\n}\n","@import \"../../variables\";\n\n.MentionLink {\n position: relative;\n white-space: normal;\n display: inline;\n color: var(--link);\n word-break: normal;\n\n & .new,\n & .original {\n display: inline;\n border-radius: 2px;\n }\n\n .mention-avatar {\n border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n user-select: none;\n margin-right: 0.2em;\n }\n\n .full {\n position: absolute;\n display: inline-block;\n pointer-events: none;\n opacity: 0;\n top: 100%;\n left: 0;\n height: 100%;\n word-wrap: normal;\n white-space: nowrap;\n transition: opacity 0.2s ease;\n z-index: 1;\n margin-top: 0.25em;\n padding: 0.5em;\n user-select: all;\n }\n\n & .short.-with-tooltip,\n & .you {\n user-select: none;\n }\n\n & .short,\n & .full {\n white-space: nowrap;\n }\n\n .shortName {\n white-space: normal;\n }\n\n .new {\n &.-you {\n .shortName {\n font-weight: 600;\n }\n }\n\n &.-has-selection {\n color: var(--alertNeutralText, $fallback--text);\n background-color: var(--alertNeutral, $fallback--fg);\n }\n\n .at {\n color: var(--link);\n opacity: 0.8;\n display: inline-block;\n line-height: 1;\n padding: 0 0.1em;\n vertical-align: -25%;\n margin: 0;\n }\n\n &.-striped {\n & .shortName {\n background-image:\n repeating-linear-gradient(\n 135deg,\n var(--____highlight-tintColor),\n var(--____highlight-tintColor) 5px,\n var(--____highlight-tintColor2) 5px,\n var(--____highlight-tintColor2) 10px\n );\n }\n }\n\n &.-solid {\n .shortName {\n background-image: linear-gradient(var(--____highlight-tintColor2), var(--____highlight-tintColor2));\n }\n }\n\n &.-side {\n .shortName {\n box-shadow: 0 -5px 3px -4px inset var(--____highlight-solidColor);\n }\n }\n }\n\n .serverName.-faded {\n color: var(--faintLink, $fallback--link);\n }\n}\n\n.mention-link-popover {\n max-width: 70ch;\n max-height: 20rem;\n overflow: hidden;\n}\n",".MentionsLine {\n word-break: break-all;\n\n .mention-link:not(:first-child)::before {\n content: \" \";\n }\n\n .showMoreLess {\n margin-left: 0.5em;\n white-space: normal;\n color: var(--link);\n }\n}\n",".HashtagLink {\n position: relative;\n white-space: normal;\n display: inline-block;\n color: var(--link);\n}\n","@import \"../../variables\";\n\n.RichContent {\n blockquote {\n margin: 0.2em 0 0.2em 0.2em;\n font-style: italic;\n border-left: 0.2em solid var(--faint, $fallback--faint);\n padding-left: 1em;\n }\n\n pre {\n overflow: auto;\n }\n\n code,\n samp,\n kbd,\n var,\n pre {\n font-family: var(--postCodeFont, monospace);\n }\n\n p {\n margin: 0 0 1em;\n }\n\n p:last-child {\n margin: 0;\n }\n\n h1 {\n font-size: 1.1em;\n line-height: 1.2em;\n margin: 1.4em 0;\n }\n\n h2 {\n font-size: 1.1em;\n margin: 1em 0;\n }\n\n h3 {\n font-size: 1em;\n margin: 1.2em 0;\n }\n\n h4 {\n margin: 1.1em 0;\n }\n\n .img {\n display: inline-block;\n }\n\n .emoji {\n display: inline-block;\n width: var(--emoji-size, 32px);\n height: var(--emoji-size, 32px);\n }\n\n .img,\n video {\n max-width: 100%;\n max-height: 400px;\n vertical-align: middle;\n object-fit: contain;\n }\n}\n","\n@import \"../../variables\";\n\n.poll {\n .votes {\n display: flex;\n flex-direction: column;\n margin: 0 0 0.5em;\n }\n\n .poll-option {\n margin: 0.75em 0.5em;\n }\n\n .option-result {\n height: 100%;\n display: flex;\n flex-direction: row;\n position: relative;\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n }\n\n .option-result-label {\n display: flex;\n align-items: center;\n padding: 0.1em 0.25em;\n z-index: 1;\n word-break: break-word;\n }\n\n .result-percentage {\n width: 3.5em;\n flex-shrink: 0;\n }\n\n .result-fill {\n height: 100%;\n position: absolute;\n color: $fallback--text;\n color: var(--pollText, $fallback--text);\n background-color: $fallback--lightBg;\n background-color: var(--poll, $fallback--lightBg);\n border-radius: $fallback--panelRadius;\n border-radius: var(--panelRadius, $fallback--panelRadius);\n top: 0;\n left: 0;\n transition: width 0.5s;\n }\n\n .option-vote {\n display: flex;\n align-items: center;\n }\n\n input {\n width: 3.5em;\n }\n\n .footer {\n display: flex;\n align-items: center;\n }\n\n &.loading * {\n cursor: progress;\n }\n\n .poll-vote-button {\n padding: 0 0.5em;\n margin-right: 0.5em;\n }\n\n .poll-checkbox {\n display: none;\n }\n}\n","@import \"../../variables\";\n\n.StatusBody {\n display: flex;\n flex-direction: column;\n\n .emoji {\n --_still_image-label-scale: 0.5;\n }\n\n .attachments {\n margin-top: 0.5em;\n }\n\n & .text,\n & .summary {\n font-family: var(--postFont, sans-serif);\n white-space: pre-wrap;\n overflow-wrap: break-word;\n word-wrap: break-word;\n word-break: break-word;\n line-height: var(--post-line-height);\n }\n\n .summary {\n display: block;\n font-style: italic;\n padding-bottom: 0.5em;\n }\n\n .text {\n &.-single-line {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n height: 1.4em;\n }\n }\n\n .summary-wrapper {\n margin-bottom: 0.5em;\n border-style: solid;\n border-width: 0 0 1px;\n border-color: var(--border, $fallback--border);\n flex-grow: 0;\n\n &.-tall {\n position: relative;\n\n .summary {\n max-height: 2em;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n }\n }\n\n .text-wrapper {\n display: flex;\n flex-flow: column nowrap;\n\n &.-tall-status {\n position: relative;\n height: 220px;\n overflow-x: hidden;\n overflow-y: hidden;\n z-index: 1;\n\n .media-body {\n min-height: 0;\n mask:\n linear-gradient(to top, white, transparent) bottom/100% 70px no-repeat,\n linear-gradient(to top, white, white);\n\n /* Autoprefixed seem to ignore this one, and also syntax is different */\n mask-composite: xor;\n mask-composite: exclude;\n }\n }\n }\n\n & .tall-status-hider,\n & .tall-subject-hider,\n & .status-unhider,\n & .cw-status-hider {\n display: inline-block;\n word-break: break-all;\n width: 100%;\n text-align: center;\n }\n\n .tall-status-hider {\n position: absolute;\n height: 70px;\n margin-top: 150px;\n line-height: 110px;\n z-index: 2;\n }\n\n .tall-subject-hider {\n // position: absolute;\n padding-bottom: 0.5em;\n }\n\n & .status-unhider,\n & .cw-status-hider {\n word-break: break-all;\n\n svg {\n color: inherit;\n }\n }\n\n .greentext {\n color: $fallback--cGreen;\n color: var(--postGreentext, $fallback--cGreen);\n }\n\n .cyantext {\n color: var(--postCyantext, $fallback--cBlue);\n }\n\n &.-compact {\n align-items: top;\n flex-direction: row;\n\n --emoji-size: 16px;\n\n & .body,\n & .attachments {\n max-height: 3.25em;\n }\n\n .body {\n overflow: hidden;\n white-space: normal;\n min-width: 5em;\n flex: 5 1 auto;\n mask-size: auto 3.5em, auto auto;\n mask-position: 0 0, 0 0;\n mask-repeat: repeat-x, repeat;\n mask-image: linear-gradient(to bottom, white 2em, transparent 3em);\n\n /* Autoprefixed seem to ignore this one, and also syntax is different */\n mask-composite: xor;\n mask-composite: exclude;\n }\n\n .attachments {\n margin-top: 0;\n flex: 1 1 0;\n min-width: 5em;\n height: 100%;\n margin-left: 0.5em;\n }\n\n .summary-wrapper {\n .summary::after {\n content: \": \";\n }\n\n line-height: inherit;\n margin: 0;\n border: none;\n display: inline-block;\n }\n\n .text-wrapper {\n display: inline-block;\n }\n }\n}\n","\n@import \"../../variables\";\n\n.link-preview-card {\n display: flex;\n flex-direction: row;\n cursor: pointer;\n overflow: hidden;\n margin-top: 0.5em;\n\n .card-image {\n flex-shrink: 0;\n width: 120px;\n max-width: 25%;\n\n img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: $fallback--attachmentRadius;\n border-radius: var(--attachmentRadius, $fallback--attachmentRadius);\n }\n }\n\n .card-content {\n max-height: 100%;\n margin: 0.5em;\n display: flex;\n flex-direction: column;\n }\n\n .card-host {\n font-size: 0.85em;\n }\n\n .card-description {\n margin: 0.5em 0 0;\n overflow: hidden;\n text-overflow: ellipsis;\n word-break: break-word;\n line-height: 1.2em;\n // cap description at 3 lines, the 1px is to clean up some stray pixels\n // TODO: fancier fade-out at the bottom to show off that it's too long?\n max-height: calc(1.2em * 3 - 1px);\n }\n\n .nsfw-alert {\n margin: 2em 0;\n }\n\n color: $fallback--text;\n color: var(--text, $fallback--text);\n border-style: solid;\n border-width: 1px;\n border-radius: $fallback--attachmentRadius;\n border-radius: var(--attachmentRadius, $fallback--attachmentRadius);\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n}\n","\n.StatusContent {\n flex: 1;\n min-width: 0;\n}\n","\n@import \"../../variables\";\n\n.post-status-form {\n position: relative;\n\n .attachments {\n margin-bottom: 0.5em;\n }\n\n .form-bottom {\n display: flex;\n justify-content: space-between;\n padding: 0.5em;\n height: 2.5em;\n\n button {\n width: 10em;\n }\n\n p {\n margin: 0.35em;\n padding: 0.35em;\n display: flex;\n }\n }\n\n .form-bottom-left {\n display: flex;\n flex: 1;\n padding-right: 7px;\n margin-right: 7px;\n max-width: 10em;\n }\n\n .preview-heading {\n display: flex;\n padding-left: 0.5em;\n }\n\n .preview-toggle {\n flex: 1;\n cursor: pointer;\n user-select: none;\n\n &:hover {\n text-decoration: underline;\n }\n\n svg,\n i {\n margin-left: 0.2em;\n font-size: 0.8em;\n transform: rotate(90deg);\n }\n }\n\n .preview-container {\n margin-bottom: 1em;\n }\n\n .preview-error {\n font-style: italic;\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n }\n\n .preview-status {\n border: 1px solid $fallback--border;\n border: 1px solid var(--border, $fallback--border);\n border-radius: $fallback--tooltipRadius;\n border-radius: var(--tooltipRadius, $fallback--tooltipRadius);\n padding: 0.5em;\n margin: 0;\n }\n\n .reply-or-quote-selector {\n margin-bottom: 0.5em;\n }\n\n .text-format {\n .only-format {\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n }\n }\n\n .visibility-tray {\n display: flex;\n justify-content: space-between;\n padding-top: 5px;\n align-items: baseline;\n }\n\n .visibility-notice.edit-warning {\n > :first-child {\n margin-top: 0;\n }\n\n > :last-child {\n margin-bottom: 0;\n }\n }\n\n // Order is not necessary but a good indicator\n .media-upload-icon {\n order: 1;\n justify-content: left;\n }\n\n .emoji-icon {\n order: 2;\n justify-content: center;\n }\n\n .poll-icon {\n order: 3;\n justify-content: right;\n }\n\n .media-upload-icon,\n .poll-icon,\n .emoji-icon {\n font-size: 1.85em;\n line-height: 1.1;\n flex: 1;\n padding: 0 0.1em;\n display: flex;\n align-items: center;\n\n &.selected,\n &:hover {\n // needs to be specific to override icon default color\n svg,\n i,\n label {\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n }\n }\n\n &.disabled {\n svg,\n i {\n cursor: not-allowed;\n color: $fallback--icon;\n color: var(--btnDisabledText, $fallback--icon);\n\n &:hover {\n color: $fallback--icon;\n color: var(--btnDisabledText, $fallback--icon);\n }\n }\n }\n }\n\n .error {\n text-align: center;\n }\n\n .media-upload-wrapper {\n margin-right: 0.2em;\n margin-bottom: 0.5em;\n width: 18em;\n\n img,\n video {\n object-fit: contain;\n max-height: 10em;\n }\n\n .video {\n max-height: 10em;\n }\n\n input {\n flex: 1;\n width: 100%;\n }\n }\n\n .status-input-wrapper {\n display: flex;\n position: relative;\n width: 100%;\n flex-direction: column;\n }\n\n .btn[disabled] {\n cursor: not-allowed;\n }\n\n form {\n display: flex;\n flex-direction: column;\n margin: 0.6em;\n position: relative;\n }\n\n .form-group {\n display: flex;\n flex-direction: column;\n padding: 0.25em 0.5em 0.5em;\n line-height: 1.85;\n }\n\n .form-post-body {\n // TODO: make a resizable textarea component?\n box-sizing: content-box; // needed for easier computation of dynamic size\n overflow: hidden;\n transition: min-height 200ms 100ms;\n // stock padding + 1 line of text (for counter)\n padding-bottom: calc(var(--_padding) + var(--post-line-height) * 1em);\n // two lines of text\n height: calc(var(--post-line-height) * 1em);\n min-height: calc(var(--post-line-height) * 1em);\n resize: none;\n\n &.scrollable-form {\n overflow-y: auto;\n }\n }\n\n .main-input {\n position: relative;\n }\n\n .character-counter {\n position: absolute;\n bottom: 0;\n right: 0;\n padding: 0;\n margin: 0 0.5em;\n\n &.error {\n color: $fallback--cRed;\n color: var(--cRed, $fallback--cRed);\n }\n }\n\n @keyframes fade-in {\n from { opacity: 0; }\n to { opacity: 0.6; }\n }\n\n @keyframes fade-out {\n from { opacity: 0.6; }\n to { opacity: 0; }\n }\n\n .drop-indicator {\n position: absolute;\n width: 100%;\n height: 100%;\n font-size: 5em;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0.6;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n border-radius: $fallback--tooltipRadius;\n border-radius: var(--tooltipRadius, $fallback--tooltipRadius);\n border: 2px dashed $fallback--text;\n border: 2px dashed var(--text, $fallback--text);\n }\n}\n","\n.remote-follow {\n max-width: 220px;\n\n .remote-button {\n width: 100%;\n min-height: 2em;\n }\n}\n","\n@import \"../../variables\";\n\n// TODO: unify with other modals.\n.dark-overlay {\n &::before {\n bottom: 0;\n content: \" \";\n display: block;\n cursor: default;\n left: 0;\n position: fixed;\n right: 0;\n top: 0;\n background: rgb(27 31 35 / 50%);\n z-index: 2000;\n }\n}\n\n.dialog-modal.panel {\n top: 0;\n left: 50%;\n max-height: 80vh;\n max-width: 90vw;\n margin: 15vh auto;\n position: fixed;\n transform: translateX(-50%);\n z-index: 2001;\n cursor: default;\n display: block;\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n\n .dialog-modal-heading {\n .title {\n text-align: center;\n }\n }\n\n .dialog-modal-content {\n margin: 0;\n padding: 1rem;\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n white-space: normal;\n }\n\n .dialog-modal-footer {\n margin: 0;\n padding: 0.5em;\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n border-top: 1px solid $fallback--border;\n border-top: 1px solid var(--border, $fallback--border);\n display: flex;\n justify-content: flex-end;\n\n button {\n width: auto;\n margin-left: 0.5rem;\n }\n }\n}\n\n","\n@import \"../../variables\";\n\n.moderation-tools-popover {\n height: 100%;\n\n .trigger {\n /* stylelint-disable-next-line declaration-no-important */\n display: flex !important;\n height: 100%;\n }\n}\n\n.moderation-tools-button {\n svg,\n i {\n font-size: 0.8em;\n }\n}\n","\n@import \"../../variables\";\n\n.AccountActions {\n .ellipsis-button {\n width: 2.5em;\n margin: -0.5em 0;\n padding: 0.5em 0;\n text-align: center;\n\n &:not(:hover) .icon {\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n }\n }\n}\n","\n@import \"../../variables\";\n\n.user-note {\n display: flex;\n flex-direction: column;\n\n .heading {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 0.75em;\n\n .btn {\n min-width: 95px;\n }\n\n .buttons {\n display: flex;\n flex-direction: row;\n justify-content: right;\n\n .btn {\n margin-left: 0.5em;\n }\n }\n }\n\n .note-text {\n align-self: stretch;\n }\n\n .note-text.-blank {\n font-style: italic;\n color: var(--faint, $fallback--faint);\n }\n}\n","@import \"../../variables\";\n\n.user-card {\n position: relative;\n z-index: 1;\n\n &:hover {\n --_still-image-img-visibility: visible;\n --_still-image-canvas-visibility: hidden;\n --_still-image-label-visibility: hidden;\n }\n\n .panel-heading {\n padding: 0.5em 0;\n text-align: center;\n box-shadow: none;\n background: transparent;\n flex-direction: column;\n align-items: stretch;\n // create new stacking context\n position: relative;\n }\n\n .panel-body {\n word-wrap: break-word;\n border-bottom-right-radius: inherit;\n border-bottom-left-radius: inherit;\n // create new stacking context\n position: relative;\n }\n\n .background-image {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n mask:\n linear-gradient(to top, white, transparent) bottom no-repeat,\n linear-gradient(to top, white, white);\n // Autoprefixer seem to ignore this one, and also syntax is different\n mask-composite: xor;\n mask-composite: exclude;\n background-size: cover;\n mask-size: 100% 60%;\n border-top-left-radius: calc(var(--__roundnessTop, --panelRadius) - 1px);\n border-top-right-radius: calc(var(--__roundnessTop, --panelRadius) - 1px);\n border-bottom-left-radius: calc(var(--__roundnessBottom, --panelRadius) - 1px);\n border-bottom-right-radius: calc(var(--__roundnessBottom, --panelRadius) - 1px);\n background-color: var(--profileBg);\n z-index: -2;\n\n &.hide-bio {\n mask-size: 100% 40px;\n }\n }\n\n &-bio {\n text-align: center;\n display: block;\n line-height: 1.3;\n padding: 1em;\n margin: 0;\n\n a {\n color: $fallback--link;\n color: var(--postLink, $fallback--link);\n }\n\n img {\n object-fit: contain;\n vertical-align: middle;\n max-width: 100%;\n max-height: 400px;\n }\n }\n\n &.-rounded-t {\n border-top-left-radius: $fallback--panelRadius;\n border-top-left-radius: var(--panelRadius, $fallback--panelRadius);\n border-top-right-radius: $fallback--panelRadius;\n border-top-right-radius: var(--panelRadius, $fallback--panelRadius);\n\n --__roundnessTop: var(--panelRadius);\n --__roundnessBottom: 0;\n }\n\n &.-rounded {\n border-radius: $fallback--panelRadius;\n border-radius: var(--panelRadius, $fallback--panelRadius);\n\n --__roundnessTop: var(--panelRadius);\n --__roundnessBottom: var(--panelRadius);\n }\n\n &.-popover {\n border-radius: $fallback--tooltipRadius;\n border-radius: var(--tooltipRadius, $fallback--tooltipRadius);\n\n --__roundnessTop: var(--tooltipRadius);\n --__roundnessBottom: var(--tooltipRadius);\n }\n\n &.-bordered {\n border-width: 1px;\n border-style: solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n }\n}\n\n.user-info {\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n padding: 0 26px;\n\n a {\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n\n &:hover {\n color: var(--icon);\n }\n }\n\n .container {\n min-width: 0;\n padding: 16px 0 6px;\n display: flex;\n align-items: flex-start;\n max-height: 56px;\n\n > * {\n min-width: 0;\n }\n\n > a {\n vertical-align: middle;\n display: flex;\n }\n\n .Avatar {\n --_avatarShadowBox: var(--avatarShadow);\n --_avatarShadowFilter: var(--avatarShadowFilter);\n --_avatarShadowInset: var(--avatarShadowInset);\n\n width: 56px;\n height: 56px;\n object-fit: cover;\n }\n }\n\n &-avatar {\n position: relative;\n cursor: pointer;\n\n &.-overlay {\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n bottom: 0;\n background-color: rgb(0 0 0 / 30%);\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: $fallback--avatarRadius;\n border-radius: var(--avatarRadius, $fallback--avatarRadius);\n opacity: 0;\n transition: opacity 0.2s ease;\n\n svg {\n color: #fff;\n }\n }\n\n &:hover &.-overlay {\n opacity: 1;\n }\n }\n\n .external-link-button,\n .edit-profile-button {\n cursor: pointer;\n width: 2.5em;\n text-align: center;\n margin: -0.5em 0;\n padding: 0.5em 0;\n\n &:not(:hover) .icon {\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n }\n }\n\n .bottom-line {\n font-weight: light;\n font-size: 1.1em;\n align-items: baseline;\n\n .lock-icon {\n margin-left: 0.5em;\n }\n\n .user-screen-name {\n min-width: 1px;\n flex: 0 1 auto;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n .dailyAvg {\n min-width: 1px;\n flex: 0 0 auto;\n margin-left: 1em;\n font-size: 0.7em;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n\n .user-role {\n flex: none;\n color: $fallback--text;\n color: var(--alertNeutralText, $fallback--text);\n background-color: $fallback--fg;\n background-color: var(--alertNeutral, $fallback--fg);\n }\n }\n\n .user-summary {\n display: block;\n margin-left: 0.6em;\n text-align: left;\n text-overflow: ellipsis;\n white-space: nowrap;\n flex: 1 1 0;\n // This is so that text doesn't get overlapped by avatar's shadow if it has\n // big one\n z-index: 1;\n line-height: 2em;\n\n --emoji-size: 1.7em;\n\n .top-line,\n .bottom-line {\n display: flex;\n }\n }\n\n .user-name {\n text-overflow: ellipsis;\n overflow: hidden;\n flex: 1 1 auto;\n margin-right: 1em;\n font-size: 1.1em;\n }\n\n .user-meta {\n margin-bottom: 0.15em;\n display: flex;\n align-items: baseline;\n line-height: 22px;\n flex-wrap: wrap;\n\n .following {\n flex: 1 0 auto;\n margin: 0;\n margin-bottom: 0.25em;\n text-align: left;\n }\n\n .highlighter {\n flex: 0 1 auto;\n display: flex;\n flex-wrap: wrap;\n margin-right: -0.5em;\n align-self: start;\n\n .userHighlightCl {\n padding: 2px 10px;\n flex: 1 0 auto;\n }\n\n .userHighlightSel {\n padding-top: 0;\n padding-bottom: 0;\n flex: 1 0 auto;\n }\n\n .userHighlightText {\n width: 70px;\n flex: 1 0 auto;\n }\n\n .userHighlightCl,\n .userHighlightText,\n .userHighlightSel {\n vertical-align: top;\n margin-right: 0.5em;\n margin-bottom: 0.25em;\n }\n }\n }\n\n .user-interactions {\n position: relative;\n display: flex;\n flex-flow: row wrap;\n margin-right: -0.75em;\n\n > * {\n margin: 0 0.75em 0.6em 0;\n white-space: nowrap;\n min-width: 95px;\n }\n\n button {\n margin: 0;\n }\n }\n\n .user-note {\n margin: 0 0.75em 0.6em 0;\n }\n}\n\n.sidebar .edit-profile-button {\n display: none;\n}\n\n.user-counts {\n display: flex;\n line-height: 16px;\n padding: 0.5em 1.5em 0;\n text-align: center;\n justify-content: space-between;\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n flex-wrap: wrap;\n}\n\n.user-count {\n flex: 1 0 auto;\n padding: 0.5em 0;\n margin: 0 0.5em;\n\n h5 {\n font-size: 1em;\n font-weight: bolder;\n margin: 0 0 0.25em;\n }\n\n /* stylelint-disable-next-line no-descending-specificity */\n a {\n text-decoration: none;\n }\n}\n\n.mute-expiry {\n display: flex;\n flex-direction: row;\n}\n","\n.user-panel .signed-in {\n overflow: visible;\n z-index: 10;\n}\n","\n@import \"../../variables\";\n\n.NavigationEntry {\n display: flex;\n box-sizing: border-box;\n align-items: baseline;\n height: 3.5em;\n line-height: 3.5em;\n padding: 0 1em;\n width: 100%;\n color: $fallback--link;\n color: var(--link, $fallback--link);\n\n .timelines-chevron {\n margin-right: 0;\n }\n\n .main-link {\n flex: 1;\n }\n\n .menu-icon {\n margin-right: 0.8em;\n }\n\n .extra-button {\n width: 3em;\n text-align: center;\n\n &:last-child {\n margin-right: -0.8em;\n }\n }\n\n &:hover {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n color: $fallback--link;\n color: var(--selectedMenuText, $fallback--link);\n\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n\n .menu-icon {\n --icon: var(--text, $fallback--icon);\n }\n }\n\n &.-active {\n font-weight: bolder;\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n color: $fallback--text;\n color: var(--selectedMenuText, $fallback--text);\n\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n\n .menu-icon {\n --icon: var(--text, $fallback--icon);\n }\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n","\n@import \"../../variables\";\n\n.NavigationPins {\n display: flex;\n flex-wrap: wrap;\n overflow: hidden;\n height: 100%;\n\n .alert-dot {\n border-radius: 100%;\n height: 0.5em;\n width: 0.5em;\n position: absolute;\n right: calc(50% - 0.75em);\n top: calc(50% - 0.5em);\n background-color: $fallback--cRed;\n background-color: var(--badgeNotification, $fallback--cRed);\n }\n\n .pinned-item {\n position: relative;\n flex: 1 0 3em;\n min-width: 2em;\n text-align: center;\n overflow: visible;\n box-sizing: border-box;\n height: 100%;\n\n & .svg-inline--fa,\n & .iconLetter {\n margin: 0;\n }\n\n &.router-link-active {\n color: $fallback--text;\n color: var(--panelText, $fallback--text);\n border-bottom: 4px solid;\n\n & .svg-inline--fa,\n & .iconLetter {\n color: inherit;\n }\n }\n }\n}\n","\n@import \"../../variables\";\n\n.NavPanel {\n .panel {\n overflow: hidden;\n box-shadow: var(--panelShadow);\n }\n\n ul {\n list-style: none;\n margin: 0;\n padding: 0;\n }\n\n li {\n position: relative;\n border-bottom: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n }\n\n > li {\n &:first-child .menu-item {\n border-top-right-radius: $fallback--panelRadius;\n border-top-right-radius: var(--panelRadius, $fallback--panelRadius);\n border-top-left-radius: $fallback--panelRadius;\n border-top-left-radius: var(--panelRadius, $fallback--panelRadius);\n }\n\n &:last-child .menu-item {\n border-bottom-right-radius: $fallback--panelRadius;\n border-bottom-right-radius: var(--panelRadius, $fallback--panelRadius);\n border-bottom-left-radius: $fallback--panelRadius;\n border-bottom-left-radius: var(--panelRadius, $fallback--panelRadius);\n }\n }\n\n li:last-child {\n border: none;\n }\n\n .navigation-chevron {\n margin-left: 0.8em;\n margin-right: 0.8em;\n font-size: 1.1em;\n }\n\n .timelines-chevron {\n margin-left: 0.8em;\n font-size: 1.1em;\n }\n\n .timelines-background {\n padding: 0 0 0 0.6em;\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n border-bottom: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n }\n\n .timelines {\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n }\n\n .nav-panel-heading {\n // breaks without a unit\n // stylelint-disable-next-line length-zero-no-unit\n --panel-heading-height-padding: 0px;\n }\n}\n","\n .features-panel li {\n line-height: 24px;\n }\n","\n .who-to-follow * {\n vertical-align: middle;\n }\n\n .who-to-follow img {\n width: 32px;\n height: 32px;\n }\n\n .who-to-follow {\n padding: 0 1em;\n margin: 0;\n }\n\n .who-to-follow-items {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 0;\n margin: 1em 0;\n }\n\n .who-to-follow-more {\n padding: 0;\n margin: 1em 0;\n text-align: center;\n }\n","\n@import \"../../variables\";\n\n.floating-shout {\n position: fixed;\n bottom: 0.5em;\n z-index: var(--ZI_popovers);\n max-width: 25em;\n\n &.-left {\n left: 0.5em;\n }\n\n &:not(.-left) {\n right: 0.5em;\n }\n}\n\n.shout-panel {\n .shout-heading {\n cursor: pointer;\n\n .icon {\n color: $fallback--text;\n color: var(--panelText, $fallback--text);\n margin-right: 0.5em;\n }\n\n .title {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n }\n\n .shout-window {\n overflow-y: auto;\n overflow-x: hidden;\n max-height: 20em;\n }\n\n .shout-window-container {\n height: 100%;\n }\n\n .shout-message {\n display: flex;\n padding: 0.2em 0.5em;\n }\n\n .shout-avatar {\n img {\n height: 24px;\n width: 24px;\n border-radius: $fallback--avatarRadius;\n border-radius: var(--avatarRadius, $fallback--avatarRadius);\n margin-right: 0.5em;\n margin-top: 0.25em;\n }\n }\n\n .shout-input {\n display: flex;\n\n textarea {\n flex: 1;\n margin: 0.6em;\n min-height: 3.5em;\n resize: none;\n }\n }\n\n .shout-panel {\n .title {\n display: flex;\n justify-content: space-between;\n }\n }\n}\n","\n$modal-view-button-icon-height: 3em;\n$modal-view-button-icon-half-height: calc(#{$modal-view-button-icon-height} / 2);\n$modal-view-button-icon-width: 3em;\n$modal-view-button-icon-margin: 0.5em;\n\n.media-modal-view {\n @keyframes media-fadein {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n }\n\n .modal-image-container {\n display: flex;\n overflow: hidden;\n align-items: center;\n flex-direction: column;\n max-width: 100%;\n max-height: 100%;\n width: 100%;\n height: 100%;\n flex-grow: 1;\n justify-content: center;\n\n &-inner {\n width: 100%;\n height: 100%;\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n }\n }\n\n .description,\n .counter {\n /* Hardcoded since background is also hardcoded */\n color: white;\n margin-top: 1em;\n text-shadow: 0 0 10px black, 0 0 10px black;\n padding: 0.2em 2em;\n }\n\n .description {\n flex: 0 0 auto;\n overflow-y: auto;\n min-height: 1em;\n max-width: 500px;\n max-height: 9.5em;\n word-break: break-all;\n }\n\n .modal-image {\n max-width: 100%;\n max-height: 100%;\n image-orientation: from-image; // NOTE: only FF supports this\n animation: 0.1s cubic-bezier(0.7, 0, 1, 0.6) media-fadein;\n\n &.loading {\n opacity: 0.5;\n }\n }\n\n .loading-spinner {\n width: 100%;\n height: 100%;\n position: absolute;\n pointer-events: none;\n display: flex;\n justify-content: center;\n align-items: center;\n\n svg {\n color: white;\n }\n }\n\n .modal-view-button {\n border: 0;\n padding: 0;\n opacity: 0;\n box-shadow: none;\n background: none;\n appearance: none;\n overflow: visible;\n cursor: pointer;\n transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);\n height: $modal-view-button-icon-height;\n width: $modal-view-button-icon-width;\n\n .button-icon {\n position: absolute;\n height: $modal-view-button-icon-height;\n width: $modal-view-button-icon-width;\n font-size: 1rem;\n line-height: $modal-view-button-icon-height;\n color: #fff;\n text-align: center;\n background-color: rgb(0 0 0 / 30%);\n }\n }\n\n .modal-view-button-arrow {\n position: absolute;\n display: block;\n top: 50%;\n margin-top: $modal-view-button-icon-half-height;\n width: $modal-view-button-icon-width;\n height: $modal-view-button-icon-height;\n\n .arrow-icon {\n position: absolute;\n top: 0;\n line-height: $modal-view-button-icon-height;\n color: #fff;\n text-align: center;\n background-color: rgb(0 0 0 / 30%);\n }\n\n &--prev {\n left: 0;\n\n .arrow-icon {\n left: $modal-view-button-icon-margin;\n }\n }\n\n &--next {\n right: 0;\n\n .arrow-icon {\n right: $modal-view-button-icon-margin;\n }\n }\n }\n\n .modal-view-button-hide {\n position: absolute;\n top: 0;\n right: 0;\n\n .button-icon {\n top: $modal-view-button-icon-margin;\n right: $modal-view-button-icon-margin;\n }\n }\n}\n\n.modal-view.media-modal-view {\n z-index: var(--ZI_media_modal);\n flex-direction: column;\n\n .modal-view-button-arrow,\n .modal-view-button-hide {\n opacity: 0.75;\n\n &:focus,\n &:hover {\n outline: none;\n box-shadow: none;\n }\n\n &:hover {\n opacity: 1;\n }\n }\n\n overflow: hidden;\n}\n","\n@import \"../../variables\";\n\n.side-drawer-container {\n position: fixed;\n z-index: var(--ZI_navbar);\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: stretch;\n transition-duration: 0s;\n transition-property: transform;\n}\n\n.side-drawer-container-open {\n transform: translate(0%);\n}\n\n.side-drawer-container-closed {\n transition-delay: 0.35s;\n transform: translate(-100%);\n}\n\n.side-drawer-darken {\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n position: fixed;\n z-index: -1;\n transition: 0.35s;\n transition-property: background-color;\n background-color: rgb(0 0 0 / 50%);\n}\n\n.side-drawer-darken-closed {\n background-color: rgb(0 0 0 / 0%);\n}\n\n.side-drawer-click-outside {\n flex: 1 1 100%;\n}\n\n.side-drawer {\n overflow-x: hidden;\n transition: 0.35s;\n transition-timing-function: cubic-bezier(0, 1, 0.5, 1);\n transition-property: transform;\n margin: 0 0 0 -100px;\n padding: 0 0 1em 100px;\n width: 80%;\n max-width: 20em;\n flex: 0 0 80%;\n box-shadow: 1px 1px 4px rgb(0 0 0 / 60%);\n box-shadow: var(--panelShadow);\n background-color: $fallback--bg;\n background-color: var(--popover, $fallback--bg);\n color: $fallback--link;\n color: var(--popoverText, $fallback--link);\n\n --faint: var(--popoverFaintText, $fallback--faint);\n --faintLink: var(--popoverFaintLink, $fallback--faint);\n --lightText: var(--popoverLightText, $fallback--lightText);\n --icon: var(--popoverIcon, $fallback--icon);\n\n .badge {\n margin-left: 10px;\n }\n}\n\n.side-drawer-logo-wrapper {\n display: flex;\n align-items: center;\n padding: 0.85em;\n\n img {\n flex: none;\n height: 50px;\n margin-right: 0.85em;\n }\n\n span {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n}\n\n.side-drawer-click-outside-closed {\n flex: 0 0 0;\n}\n\n.side-drawer-closed {\n transform: translate(-100%);\n}\n\n.side-drawer-heading {\n background: transparent;\n flex-direction: column;\n align-items: stretch;\n display: flex;\n padding: 0;\n margin: 0;\n}\n\n.side-drawer ul {\n list-style: none;\n margin: 0;\n padding: 0;\n border-bottom: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n}\n\n.side-drawer ul:last-child {\n border: 0;\n}\n\n.side-drawer li {\n padding: 0;\n\n a,\n button {\n box-sizing: border-box;\n display: block;\n height: 3em;\n line-height: 3em;\n padding: 0 0.7em;\n\n &:hover {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenuPopover, $fallback--lightBg);\n color: $fallback--text;\n color: var(--selectedMenuPopoverText, $fallback--text);\n\n --faint: var(--selectedMenuPopoverFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuPopoverFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuPopoverLightText, $fallback--lightText);\n --icon: var(--selectedMenuPopoverIcon, $fallback--icon);\n }\n }\n}\n","\n@import \"../../variables\";\n\n.MobilePostButton {\n &.button-default {\n width: 5em;\n height: 5em;\n border-radius: 100%;\n position: fixed;\n bottom: 1.5em;\n right: 1.5em;\n // TODO: this needs its own color, it has to stand out enough and link color\n // is not very optimal for this particular use.\n background-color: $fallback--fg;\n background-color: var(--btn, $fallback--fg);\n display: flex;\n justify-content: center;\n align-items: center;\n box-shadow: 0 2px 2px rgb(0 0 0 / 30%), 0 4px 6px rgb(0 0 0 / 30%);\n z-index: 10;\n transition: 0.35s transform;\n transition-timing-function: cubic-bezier(0, 1, 0.5, 1);\n }\n\n &.hidden {\n transform: translateY(150%);\n }\n\n svg {\n font-size: 1.5em;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n}\n\n@media all and (min-width: 801px) {\n .new-status-button:not(.always-show) {\n display: none;\n }\n}\n\n","\n@import \"../../variables\";\n@import \"../../mixins\";\n\n.ReplyButton {\n display: flex;\n\n > :first-child {\n padding: 10px;\n margin: -10px -8px -10px -10px;\n }\n\n .action-counter {\n pointer-events: none;\n user-select: none;\n }\n\n .interactive {\n &:hover .svg-inline--fa,\n &.-active .svg-inline--fa {\n color: $fallback--cBlue;\n color: var(--cBlue, $fallback--cBlue);\n }\n\n @include unfocused-style {\n .focus-marker {\n visibility: hidden;\n }\n }\n\n @include focused-style {\n .focus-marker {\n visibility: visible;\n }\n }\n }\n}\n","\n@import \"../../variables\";\n@import \"../../mixins\";\n\n.FavoriteButton {\n display: flex;\n\n > :first-child {\n padding: 10px;\n margin: -10px -8px -10px -10px;\n }\n\n .action-counter {\n pointer-events: none;\n user-select: none;\n }\n\n .interactive {\n .svg-inline--fa {\n animation-duration: 0.6s;\n }\n\n &:hover .svg-inline--fa,\n &.-favorited .svg-inline--fa {\n color: $fallback--cOrange;\n color: var(--cOrange, $fallback--cOrange);\n }\n\n @include unfocused-style {\n .focus-marker {\n visibility: hidden;\n }\n\n .active-marker {\n visibility: visible;\n }\n }\n\n @include focused-style {\n .focus-marker {\n visibility: visible;\n }\n\n .active-marker {\n visibility: hidden;\n }\n }\n }\n}\n","\n@import \"../../variables\";\n@import \"../../mixins\";\n\n.ReactButton {\n .reaction-picker-filter {\n padding: 0.5em;\n display: flex;\n\n input {\n flex: 1;\n }\n }\n\n .reaction-picker-divider {\n height: 1px;\n width: 100%;\n margin: 0.5em;\n background-color: var(--border, $fallback--border);\n }\n\n .reaction-picker {\n width: 10em;\n height: 9em;\n font-size: 1.5em;\n overflow-y: scroll;\n display: flex;\n flex-wrap: wrap;\n padding: 0.5em;\n text-align: center;\n align-content: flex-start;\n user-select: none;\n mask:\n linear-gradient(to top, white 0, transparent 100%) bottom no-repeat,\n linear-gradient(to bottom, white 0, transparent 100%) top no-repeat,\n linear-gradient(to top, white, white);\n transition: mask-size 150ms;\n mask-size: 100% 20px, 100% 20px, auto;\n\n /* Autoprefixed seem to ignore this one, and also syntax is different */\n mask-composite: xor;\n mask-composite: exclude;\n\n .emoji-button {\n cursor: pointer;\n flex-basis: 20%;\n line-height: 1.5;\n align-content: center;\n\n &:hover {\n transform: scale(1.25);\n }\n }\n }\n\n .popover-trigger {\n padding: 10px;\n margin: -10px;\n\n &:hover .svg-inline--fa {\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n\n @include unfocused-style {\n .focus-marker {\n visibility: hidden;\n }\n }\n\n @include focused-style {\n .focus-marker {\n visibility: visible;\n }\n }\n }\n}\n\n","\n@import \"../../variables\";\n@import \"../../mixins\";\n\n.RetweetButton {\n display: flex;\n\n > :first-child {\n padding: 10px;\n margin: -10px -8px -10px -10px;\n }\n\n .action-counter {\n pointer-events: none;\n user-select: none;\n }\n\n .interactive {\n .svg-inline--fa {\n animation-duration: 0.6s;\n }\n\n &:hover .svg-inline--fa,\n &.-repeated .svg-inline--fa {\n color: $fallback--cGreen;\n color: var(--cGreen, $fallback--cGreen);\n }\n\n @include unfocused-style {\n .focus-marker {\n visibility: hidden;\n }\n\n .active-marker {\n visibility: visible;\n }\n }\n\n @include focused-style {\n .focus-marker {\n visibility: visible;\n }\n\n .active-marker {\n visibility: hidden;\n }\n }\n }\n}\n","\n@import \"../../variables\";\n@import \"../../mixins\";\n\n.ExtraButtons {\n .popover-trigger {\n position: static;\n padding: 10px;\n margin: -10px;\n\n &:hover .svg-inline--fa {\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n }\n\n .popover-trigger-button {\n /* override of popover internal stuff */\n width: auto;\n\n @include unfocused-style {\n .focus-marker {\n visibility: hidden;\n }\n }\n\n @include focused-style {\n .focus-marker {\n visibility: visible;\n }\n }\n }\n}\n","\n@import \"../../variables\";\n\n.avatars {\n display: flex;\n margin: 0;\n padding: 0;\n\n // For hiding overflowing elements\n flex-wrap: wrap;\n height: 24px;\n\n .avatars-item {\n margin: 0 0 5px 5px;\n\n &:first-child {\n padding-left: 5px;\n }\n\n .avatar-small {\n border-radius: $fallback--avatarAltRadius;\n border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);\n height: 24px;\n width: 24px;\n }\n }\n}\n","\n@import \"../../variables\";\n\n/* popover styles load on-demand, so we need to override */\n.status-popover.popover {\n font-size: 1rem;\n min-width: 15em;\n max-width: 95%;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n border-style: solid;\n border-width: 1px;\n border-radius: $fallback--tooltipRadius;\n border-radius: var(--tooltipRadius, $fallback--tooltipRadius);\n\n /* TODO cleanup this */\n .Status.Status {\n border: none;\n }\n\n .status-preview-no-content {\n padding: 1em;\n text-align: center;\n\n i {\n font-size: 2em;\n }\n }\n}\n\n","\n@import \"../../variables\";\n\n.user-list-popover {\n padding: 0.5em;\n\n --emoji-size: 16px;\n\n .user-list-row {\n padding: 0.25em;\n display: flex;\n flex-direction: row;\n\n .user-list-names {\n display: flex;\n flex-direction: column;\n margin-left: 0.5em;\n min-width: 5em;\n\n img {\n width: 1em;\n height: 1em;\n }\n }\n\n .user-list-screen-name {\n font-size: 0.65em;\n }\n }\n}\n\n","\n@import \"../../variables\";\n@import \"../../mixins\";\n\n.EmojiReactions {\n display: flex;\n margin-top: 0.25em;\n flex-wrap: wrap;\n\n --emoji-size: calc(1.25em * var(--emojiReactionsScale, 1));\n\n .emoji-reaction-container {\n display: flex;\n align-items: stretch;\n margin-top: 0.5em;\n margin-right: 0.5em;\n\n .emoji-reaction-popover {\n padding: 0;\n\n .emoji-reaction-count-button {\n background-color: var(--btn);\n margin: 0;\n height: 100%;\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n box-sizing: border-box;\n min-width: 2em;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n color: $fallback--text;\n color: var(--btnText, $fallback--text);\n\n &.-picked-reaction {\n border: 1px solid var(--accent, $fallback--link);\n margin-right: -1px;\n }\n }\n }\n }\n\n .emoji-reaction {\n padding-left: 0.5em;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n margin: 0;\n\n .reaction-emoji {\n width: var(--emoji-size);\n height: var(--emoji-size);\n margin-right: 0.25em;\n line-height: var(--emoji-size);\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n .reaction-emoji-content {\n max-width: 100%;\n max-height: 100%;\n width: auto;\n height: auto;\n line-height: inherit;\n overflow: hidden;\n font-size: calc(var(--emoji-size) * 0.8);\n margin: 0;\n }\n\n &:focus {\n outline: none;\n }\n\n .svg-inline--fa {\n color: $fallback--text;\n color: var(--btnText, $fallback--text);\n }\n\n &.-picked-reaction {\n border: 1px solid var(--accent, $fallback--link);\n margin-left: -1px; // offset the border, can't use inset shadows either\n margin-right: -1px;\n\n .svg-inline--fa {\n color: $fallback--link;\n color: var(--accent, $fallback--link);\n }\n }\n\n @include unfocused-style {\n .focus-marker {\n visibility: hidden;\n }\n\n .active-marker {\n visibility: visible;\n }\n }\n\n @include focused-style {\n .svg-inline--fa {\n color: $fallback--link;\n color: var(--accent, $fallback--link);\n }\n\n .focus-marker {\n visibility: visible;\n }\n\n .active-marker {\n visibility: hidden;\n }\n }\n }\n\n .emoji-reaction-expand {\n padding: 0 0.5em;\n margin-right: 0.5em;\n margin-top: 0.5em;\n display: flex;\n align-items: center;\n justify-content: center;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n","@import \"../../variables\";\n\n.Status {\n min-width: 0;\n white-space: normal;\n word-wrap: break-word;\n word-break: break-word;\n\n &:hover {\n --_still-image-img-visibility: visible;\n --_still-image-canvas-visibility: hidden;\n --_still-image-label-visibility: hidden;\n }\n\n &.-focused {\n background-color: $fallback--lightBg;\n background-color: var(--selectedPost, $fallback--lightBg);\n color: $fallback--text;\n color: var(--selectedPostText, $fallback--text);\n\n --lightText: var(--selectedPostLightText, $fallback--light);\n --faint: var(--selectedPostFaintText, $fallback--faint);\n --faintLink: var(--selectedPostFaintLink, $fallback--faint);\n --postLink: var(--selectedPostPostLink, $fallback--faint);\n --postFaintLink: var(--selectedPostFaintPostLink, $fallback--faint);\n --icon: var(--selectedPostIcon, $fallback--icon);\n }\n\n .gravestone {\n padding: var(--status-margin, $status-margin);\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n display: flex;\n\n .deleted-text {\n margin: 0.5em 0;\n align-items: center;\n }\n }\n\n .status-container {\n display: flex;\n padding: var(--status-margin, $status-margin);\n\n > * {\n min-width: 0;\n }\n\n &.-repeat {\n padding-top: 0;\n }\n }\n\n .pin {\n padding: var(--status-margin, $status-margin) var(--status-margin, $status-margin) 0;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n }\n\n ._misclick-prevention & {\n pointer-events: none;\n\n .attachments {\n pointer-events: initial;\n cursor: initial;\n }\n }\n\n .left-side {\n margin-right: var(--status-margin, $status-margin);\n }\n\n .right-side {\n flex: 1;\n min-width: 0;\n }\n\n .usercard {\n margin-bottom: var(--status-margin, $status-margin);\n }\n\n .status-username {\n white-space: nowrap;\n overflow: hidden;\n max-width: 85%;\n font-weight: bold;\n flex-shrink: 1;\n margin-right: 0.4em;\n text-overflow: ellipsis;\n\n --_still_image-label-scale: 0.25;\n --emoji-size: 14px;\n }\n\n .status-favicon {\n height: 18px;\n width: 18px;\n margin-right: 0.4em;\n }\n\n .status-heading {\n margin-bottom: 0.5em;\n }\n\n .heading-name-row {\n display: flex;\n justify-content: space-between;\n line-height: 1.3;\n\n a {\n display: inline-block;\n word-break: break-all;\n }\n }\n\n .account-name {\n min-width: 1.6em;\n margin-right: 0.4em;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n flex: 1 1 0;\n }\n\n .heading-left {\n display: flex;\n min-width: 0;\n }\n\n .heading-right {\n display: flex;\n flex-shrink: 0;\n\n .button-unstyled {\n padding: 5px;\n margin: -5px;\n\n &:hover svg {\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n }\n }\n\n .svg-inline--fa {\n margin-left: 0.25em;\n }\n }\n\n .glued-label {\n display: inline-flex;\n white-space: nowrap;\n }\n\n .timeago {\n margin-right: 0.2em;\n }\n\n & .heading-reply-row,\n & .heading-edited-row {\n position: relative;\n align-content: baseline;\n font-size: 0.85em;\n margin-top: 0.2em;\n line-height: 130%;\n max-width: 100%;\n align-items: stretch;\n }\n\n & .reply-to-popover,\n & .reply-to-no-popover,\n & .mentions {\n min-width: 0;\n margin-right: 0.4em;\n flex-shrink: 0;\n }\n\n .reply-glued-label {\n margin-right: 0.5em;\n }\n\n .reply-to-popover {\n .reply-to:hover::before {\n content: \"\";\n display: block;\n position: absolute;\n bottom: 0;\n width: 100%;\n border-bottom: 1px solid var(--faint);\n pointer-events: none;\n }\n\n .faint-link:hover {\n // override default\n text-decoration: none;\n }\n\n &.-strikethrough {\n .reply-to::after {\n content: \"\";\n display: block;\n position: absolute;\n top: 50%;\n width: 100%;\n border-bottom: 1px solid var(--faint);\n pointer-events: none;\n }\n }\n }\n\n & .mentions,\n & .reply-to {\n white-space: nowrap;\n position: relative;\n }\n\n & .mentions-text,\n & .reply-to-text {\n color: var(--faint);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .mentions-line {\n display: inline;\n }\n\n .replies {\n margin-top: 0.25em;\n line-height: 1.3;\n font-size: 0.85em;\n display: flex;\n flex-wrap: wrap;\n\n & > * {\n margin-right: 0.4em;\n }\n }\n\n .reply-link {\n height: 17px;\n }\n\n .repeat-info {\n padding: 0.4em var(--status-margin, $status-margin);\n\n .repeat-icon {\n color: $fallback--cGreen;\n color: var(--cGreen, $fallback--cGreen);\n }\n }\n\n .repeater-avatar {\n border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);\n margin-left: 28px;\n width: 20px;\n height: 20px;\n }\n\n .repeater-name {\n text-overflow: ellipsis;\n margin-right: 0;\n\n .emoji {\n width: 14px;\n height: 14px;\n vertical-align: middle;\n object-fit: contain;\n }\n }\n\n .status-fadein {\n animation-duration: 0.4s;\n animation-name: fadein;\n }\n\n @keyframes fadein {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n }\n\n .status-actions {\n position: relative;\n width: 100%;\n display: flex;\n margin-top: var(--status-margin, $status-margin);\n\n > * {\n max-width: 4em;\n flex: 1;\n }\n }\n\n .muted {\n padding: 0.25em 0.6em;\n height: 1.2em;\n line-height: 1.2em;\n text-overflow: ellipsis;\n overflow: hidden;\n display: flex;\n flex-wrap: nowrap;\n\n & .status-username,\n & .mute-thread,\n & .mute-words {\n word-wrap: normal;\n word-break: normal;\n white-space: nowrap;\n }\n\n & .status-username,\n & .mute-words {\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n .status-username {\n font-weight: normal;\n flex: 0 1 auto;\n margin-right: 0.2em;\n font-size: smaller;\n }\n\n .mute-thread {\n flex: 0 0 auto;\n }\n\n .mute-words {\n flex: 1 0 5em;\n margin-left: 0.2em;\n\n &::before {\n content: \" \";\n }\n }\n\n .unmute {\n flex: 0 0 auto;\n margin-left: auto;\n display: block;\n }\n }\n\n .reply-form {\n padding-top: 0;\n padding-bottom: 0;\n }\n\n .reply-body {\n flex: 1;\n }\n\n .favs-repeated-users {\n margin-top: var(--status-margin, $status-margin);\n }\n\n .stats {\n width: 100%;\n display: flex;\n line-height: 1em;\n }\n\n .avatar-row {\n flex: 1;\n overflow: hidden;\n position: relative;\n display: flex;\n align-items: center;\n\n &::before {\n content: \"\";\n position: absolute;\n height: 100%;\n width: 1px;\n left: 0;\n background-color: var(--faint, $fallback--faint);\n }\n }\n\n .stat-count {\n margin-right: var(--status-margin, $status-margin);\n user-select: none;\n\n .stat-title {\n color: var(--faint, $fallback--faint);\n font-size: 0.85em;\n text-transform: uppercase;\n position: relative;\n }\n\n .stat-number {\n font-weight: bolder;\n font-size: 1.1em;\n line-height: 1em;\n }\n\n &:hover .stat-title {\n text-decoration: underline;\n }\n }\n\n @media all and (max-width: 800px) {\n .repeater-avatar {\n margin-left: 20px;\n }\n\n .post-avatar {\n width: 40px;\n height: 40px;\n\n // TODO define those other way somehow?\n // stylelint-disable rscss/class-format\n &.-compact {\n width: 32px;\n height: 32px;\n }\n }\n }\n\n .quoted-status {\n margin-top: 0.5em;\n border: 1px solid var(--border, $fallback--border);\n border-radius: var(--attachmentRadius, $fallback--attachmentRadius);\n\n &.-unavailable-prompt {\n padding: 0.5em;\n }\n }\n\n .display-quoted-status-button {\n margin: 0.5em;\n\n &-icon {\n color: inherit;\n }\n }\n}\n","@import \"../../variables\";\n\n.Report {\n .report-content {\n margin: 0.5em 0 1em;\n }\n\n .report-state {\n margin: 0.5em 0 1em;\n }\n\n .reported-status {\n border: 1px solid $fallback--faint;\n border-color: var(--faint, $fallback--faint);\n border-radius: $fallback--inputRadius;\n border-radius: var(--inputRadius, $fallback--inputRadius);\n color: $fallback--text;\n color: var(--text, $fallback--text);\n display: block;\n padding: 0.5em;\n margin: 0.5em 0;\n\n .status-content {\n pointer-events: none;\n }\n\n .reported-status-heading {\n display: flex;\n width: 100%;\n justify-content: space-between;\n margin-bottom: 0.2em;\n }\n\n .reported-status-name {\n font-weight: bold;\n }\n }\n\n .note {\n width: 100%;\n margin-bottom: 0.5em;\n }\n}\n","@import \"../../variables\";\n\n// TODO Copypaste from Status, should unify it somehow\n.Notification {\n border-bottom: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n word-wrap: break-word;\n word-break: break-word;\n\n --emoji-size: 14px;\n\n &:hover {\n --_still-image-img-visibility: visible;\n --_still-image-canvas-visibility: hidden;\n --_still-image-label-visibility: hidden;\n }\n\n &.-muted {\n padding: 0.25em 0.6em;\n height: 1.2em;\n line-height: 1.2em;\n text-overflow: ellipsis;\n overflow: hidden;\n display: flex;\n flex-wrap: nowrap;\n\n & .status-username,\n & .mute-thread,\n & .mute-words {\n word-wrap: normal;\n word-break: normal;\n white-space: nowrap;\n }\n\n & .status-username,\n & .mute-words {\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n .status-username {\n font-weight: normal;\n flex: 0 1 auto;\n margin-right: 0.2em;\n font-size: smaller;\n }\n\n .mute-thread {\n flex: 0 0 auto;\n }\n\n .mute-words {\n flex: 1 0 5em;\n margin-left: 0.2em;\n\n &::before {\n content: \" \";\n }\n }\n\n .unmute {\n flex: 0 0 auto;\n margin-left: auto;\n display: block;\n }\n }\n\n .type-icon {\n margin: 0 0.1em;\n }\n\n &.-type--repeat .type-icon {\n color: $fallback--cGreen;\n color: var(--cGreen, $fallback--cGreen);\n }\n\n &.-type--follow .type-icon {\n color: $fallback--cBlue;\n color: var(--cBlue, $fallback--cBlue);\n }\n\n &.-type--follow-request .type-icon {\n color: $fallback--cBlue;\n color: var(--cBlue, $fallback--cBlue);\n }\n\n &.-type--like .type-icon {\n color: orange;\n color: $fallback--cOrange;\n color: var(--cOrange, $fallback--cOrange);\n }\n\n &.-type--move .type-icon {\n color: $fallback--cBlue;\n color: var(--cBlue, $fallback--cBlue);\n }\n}\n","@import \"../../variables\";\n\n.Notifications {\n &:not(.minimal) {\n // a bit of a hack to allow scrolling below notifications\n padding-bottom: 15em;\n }\n\n .loadmore-error {\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n\n .notification {\n position: relative;\n\n .notification-overlay {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n bottom: 0;\n pointer-events: none;\n }\n\n &.unseen {\n .notification-overlay {\n background-image: linear-gradient(135deg, var(--badgeNotification, $fallback--cRed) 4px, transparent 10px);\n }\n }\n }\n}\n\n/* stylelint-disable-next-line no-descending-specificity */\n.notification {\n box-sizing: border-box;\n\n &:hover .animated.Avatar {\n canvas {\n display: none;\n }\n\n img {\n visibility: visible;\n }\n }\n\n &:last-child .Notification {\n border-bottom: none;\n }\n\n .non-mention {\n display: flex;\n flex: 1;\n flex-wrap: nowrap;\n padding: 0.6em;\n min-width: 0;\n\n .avatar-container {\n width: 32px;\n height: 32px;\n }\n\n .faint {\n --link: var(--faintLink);\n --text: var(--faint);\n }\n }\n\n .follow-request-accept {\n &:hover {\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n }\n\n .follow-request-reject {\n &:hover {\n color: $fallback--cRed;\n color: var(--cRed, $fallback--cRed);\n }\n }\n\n .follow-text,\n .move-text {\n padding: 0.5em 0;\n overflow-wrap: break-word;\n display: flex;\n justify-content: space-between;\n\n .follow-name {\n display: block;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n }\n\n /* TODO cleanup this */\n .Status {\n flex: 1;\n }\n\n time {\n white-space: nowrap;\n }\n\n .notification-right {\n flex: 1;\n padding-left: 0.8em;\n min-width: 0;\n\n .timeago {\n min-width: 3em;\n text-align: right;\n }\n\n .timeago-link {\n margin-right: 0.2em;\n }\n\n .expand-icon {\n .svg-inline--fa {\n margin-left: 0.25em;\n }\n }\n }\n\n .emoji-reaction-emoji {\n font-size: 1.3em;\n max-width: 1.25em;\n height: 1.25em;\n width: auto;\n }\n\n .emoji-reaction-emoji-image {\n vertical-align: middle;\n object-fit: contain;\n }\n\n .notification-details {\n min-width: 0;\n word-wrap: break-word;\n line-height: var(--post-line-height);\n position: relative;\n overflow: hidden;\n width: 100%;\n flex: 1 1 0;\n display: flex;\n flex-wrap: nowrap;\n justify-content: space-between;\n\n .name-and-action {\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .username {\n font-weight: bolder;\n max-width: 100%;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .timeago {\n margin-right: 0.2em;\n }\n\n .status-content {\n margin: 0;\n max-height: 300px;\n }\n\n h1 {\n word-break: break-all;\n margin: 0 0 0.3em;\n padding: 0;\n font-size: 1em;\n line-height: 1.5;\n\n small {\n font-weight: lighter;\n }\n }\n\n p {\n margin: 0;\n margin-top: 0;\n margin-bottom: 0.3em;\n }\n }\n}\n","\n@import \"../../variables\";\n\n.MobileNav {\n z-index: var(--ZI_navbar);\n\n .mobile-nav {\n display: grid;\n line-height: var(--navbar-height);\n grid-template-rows: 50px;\n grid-template-columns: 2fr auto;\n width: 100%;\n box-sizing: border-box;\n\n a {\n color: var(--topBarLink, $fallback--link);\n }\n }\n\n .mobile-inner-nav {\n width: 100%;\n display: flex;\n align-items: center;\n }\n\n .mobile-nav-button {\n display: inline-block;\n text-align: center;\n padding: 0 1em;\n position: relative;\n cursor: pointer;\n }\n\n .site-name {\n padding: 0 0.3em;\n display: inline-block;\n }\n\n .item {\n /* moslty just to get rid of extra whitespaces */\n display: flex;\n }\n\n .alert-dot {\n border-radius: 100%;\n height: 8px;\n width: 8px;\n position: absolute;\n left: calc(50% - 4px);\n top: calc(50% - 4px);\n margin-left: 6px;\n margin-top: -6px;\n background-color: $fallback--cRed;\n background-color: var(--badgeNotification, $fallback--cRed);\n }\n\n .mobile-notifications-drawer {\n width: 100%;\n height: 100vh;\n overflow-x: hidden;\n position: fixed;\n top: 0;\n left: 0;\n box-shadow: 1px 1px 4px rgb(0 0 0 / 60%);\n box-shadow: var(--panelShadow);\n transition-property: transform;\n transition-duration: 0.25s;\n transform: translateX(0);\n z-index: var(--ZI_navbar);\n -webkit-overflow-scrolling: touch;\n\n &.-closed {\n transform: translateX(100%);\n box-shadow: none;\n }\n }\n\n .mobile-notifications-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n z-index: calc(var(--ZI_navbar) + 100);\n width: 100%;\n height: 50px;\n line-height: 50px;\n position: absolute;\n color: var(--topBarText);\n background-color: $fallback--fg;\n background-color: var(--topBar, $fallback--fg);\n box-shadow: 0 0 4px rgb(0 0 0 / 60%);\n box-shadow: var(--topBarShadow);\n\n .spacer {\n flex: 1;\n }\n\n .title {\n font-size: 1.3em;\n margin-left: 0.6em;\n }\n }\n\n .pins {\n flex: 1;\n\n .pinned-item {\n flex-grow: 1;\n }\n }\n\n .mobile-notifications {\n margin-top: 50px;\n width: 100vw;\n height: calc(100vh - var(--navbar-height));\n overflow-x: hidden;\n overflow-y: scroll;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n\n .notifications {\n padding: 0;\n border-radius: 0;\n box-shadow: none;\n\n .panel {\n border-radius: 0;\n margin: 0;\n box-shadow: none;\n }\n\n .panel::after {\n border-radius: 0;\n }\n\n .panel .panel-heading {\n border-radius: 0;\n box-shadow: none;\n }\n }\n }\n\n .confirm-modal.dark-overlay {\n &::before {\n z-index: 3000;\n }\n\n .dialog-modal.panel {\n z-index: 3001;\n }\n }\n}\n\n","\n@import \"../../variables\";\n\n.SearchBar {\n display: inline-flex;\n align-items: baseline;\n vertical-align: baseline;\n justify-content: flex-end;\n\n &.-expanded {\n width: 100%;\n }\n\n .search-bar-input,\n .search-button {\n height: 29px;\n }\n\n .search-bar-input {\n flex: 1 0 auto;\n }\n\n .cancel-search {\n height: 50px;\n }\n\n .cancel-icon {\n color: $fallback--text;\n color: var(--btnTopBarText, $fallback--text);\n }\n}\n\n","@import \"../../variables\";\n\n.DesktopNav {\n width: 100%;\n z-index: var(--ZI_navbar);\n\n input {\n color: var(--inputTopbarText, var(--inputText));\n }\n\n a {\n color: var(--topBarLink, $fallback--link);\n }\n\n .inner-nav {\n display: grid;\n grid-template-rows: var(--navbar-height);\n grid-template-columns: 2fr auto 2fr;\n grid-template-areas: \"sitename logo actions\";\n box-sizing: border-box;\n padding: 0 1.2em;\n margin: auto;\n max-width: 980px;\n }\n\n &.-column-stretch .inner-nav {\n --miniColumn: 25rem;\n --maxiColumn: 45rem;\n --columnGap: 1em;\n\n max-width:\n calc(\n var(--sidebarColumnWidth, var(--miniColumn)) +\n var(--contentColumnWidth, var(--maxiColumn)) +\n var(--columnGap)\n );\n }\n\n &.-logoLeft .inner-nav {\n grid-template-columns: auto 2fr 2fr;\n grid-template-areas: \"logo sitename actions\";\n }\n\n &.-column-stretch.-wide .inner-nav {\n max-width:\n calc(\n var(--sidebarColumnWidth, var(--miniColumn)) +\n var(--contentColumnWidth, var(--maxiColumn)) +\n var(--notifsColumnWidth, var(--miniColumn)) +\n var(--columnGap)\n );\n }\n\n .button-default {\n &,\n svg {\n color: $fallback--text;\n color: var(--btnTopBarText, $fallback--text);\n }\n\n &:active {\n background-color: $fallback--fg;\n background-color: var(--btnPressedTopBar, $fallback--fg);\n color: $fallback--text;\n color: var(--btnPressedTopBarText, $fallback--text);\n }\n\n &:disabled {\n color: $fallback--text;\n color: var(--btnDisabledTopBarText, $fallback--text);\n }\n\n &.toggled {\n color: $fallback--text;\n color: var(--btnToggledTopBarText, $fallback--text);\n background-color: $fallback--fg;\n background-color: var(--btnToggledTopBar, $fallback--fg);\n }\n }\n\n .logo {\n grid-area: logo;\n position: relative;\n transition: opacity;\n transition-timing-function: ease-out;\n transition-duration: 100ms;\n\n @media all and (min-width: 800px) {\n /* stylelint-disable-next-line declaration-no-important */\n opacity: 1 !important;\n }\n\n .mask {\n mask-repeat: no-repeat;\n mask-position: center;\n mask-size: contain;\n background-color: $fallback--fg;\n background-color: var(--topBarText, $fallback--fg);\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n }\n\n img {\n display: inline-block;\n height: var(--navbar-height);\n }\n }\n\n .nav-icon {\n margin-left: 0.2em;\n width: 2em;\n height: 100%;\n text-align: center;\n\n .svg-inline--fa {\n color: $fallback--link;\n color: var(--topBarLink, $fallback--link);\n }\n }\n\n .sitename {\n grid-area: sitename;\n }\n\n .actions {\n grid-area: actions;\n }\n\n .item {\n flex: 1;\n line-height: var(--navbar-height);\n height: var(--navbar-height);\n overflow: hidden;\n display: flex;\n flex-wrap: wrap;\n\n &.right {\n justify-content: flex-end;\n text-align: right;\n }\n }\n\n .spacer {\n width: 1em;\n }\n}\n","\n@import \"../../variables\";\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","\n@import \"../../variables\";\n\n.user-reporting-panel {\n width: 90vw;\n max-width: 700px;\n min-height: 20vh;\n max-height: 80vh;\n\n .panel-body {\n display: flex;\n flex-direction: column-reverse;\n border-top: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n overflow: hidden;\n }\n\n &-left {\n padding: 1.1em 0.7em 0.7em;\n line-height: var(--post-line-height);\n box-sizing: border-box;\n\n > div {\n margin-bottom: 1em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n p {\n margin-top: 0;\n }\n\n textarea.form-control {\n line-height: 16px;\n resize: none;\n overflow: hidden;\n transition: min-height 200ms 100ms;\n min-height: 44px;\n width: 100%;\n }\n\n .btn {\n min-width: 10em;\n padding: 0 2em;\n }\n\n .alert {\n margin: 1em 0 0;\n line-height: 1.3em;\n }\n }\n\n &-right {\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n }\n\n &-sitem {\n display: flex;\n justify-content: space-between;\n\n /* TODO cleanup this */\n > .Status {\n flex: 1;\n }\n\n > .checkbox {\n margin: 0.75em;\n }\n }\n\n @media all and (min-width: 801px) {\n .panel-body {\n flex-direction: row;\n }\n\n &-left {\n width: 50%;\n max-width: 320px;\n border-right: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n padding: 1.1em;\n\n > div {\n margin-bottom: 2em;\n }\n }\n\n &-right {\n width: 50%;\n flex: 1 1 auto;\n margin-bottom: 12px;\n }\n }\n}\n","\n.modal-view.edit-form-modal-view {\n align-items: flex-start;\n}\n\n.edit-form-modal-panel {\n flex-shrink: 0;\n margin-top: 25%;\n margin-bottom: 2em;\n width: 100%;\n max-width: 700px;\n\n @media (orientation: landscape) {\n margin-top: 8%;\n }\n\n .form-bottom-left {\n max-width: 6.5em;\n\n .emoji-icon {\n justify-content: right;\n }\n }\n}\n","\n.modal-view.post-form-modal-view {\n align-items: flex-start;\n}\n\n.post-form-modal-panel {\n flex-shrink: 0;\n margin-top: 25%;\n margin-bottom: 2em;\n width: 100%;\n max-width: 700px;\n\n @media (orientation: landscape) {\n margin-top: 8%;\n }\n}\n","\n.modal-view.status-history-modal-view {\n align-items: flex-start;\n}\n\n.status-history-modal-panel {\n flex-shrink: 0;\n margin-top: 25%;\n margin-bottom: 2em;\n width: 100%;\n max-width: 700px;\n\n @media (orientation: landscape) {\n margin-top: 8%;\n }\n}\n","\n@import \"../../variables\";\n\n.global-notice-list {\n position: fixed;\n top: calc(var(--navbar-height) + 0.5em);\n width: 100%;\n pointer-events: none;\n z-index: var(--ZI_modals_popovers);\n display: flex;\n flex-direction: column;\n align-items: center;\n\n .global-notice {\n pointer-events: auto;\n text-align: center;\n width: 40em;\n max-width: calc(100% - 3em);\n display: flex;\n padding-left: 1.5em;\n line-height: 2;\n margin-bottom: 0.5em;\n\n .notice-message {\n flex: 1 1 100%;\n }\n }\n\n .global-error {\n background-color: var(--alertPopupError, $fallback--cRed);\n color: var(--alertPopupErrorText, $fallback--text);\n\n .svg-inline--fa {\n color: var(--alertPopupErrorText, $fallback--text);\n }\n }\n\n .global-warning {\n background-color: var(--alertPopupWarning, $fallback--cOrange);\n color: var(--alertPopupWarningText, $fallback--text);\n\n .svg-inline--fa {\n color: var(--alertPopupWarningText, $fallback--text);\n }\n }\n\n .global-success {\n background-color: var(--alertPopupSuccess, $fallback--cGreen);\n color: var(--alertPopupSuccessText, $fallback--text);\n\n .svg-inline--fa {\n color: var(--alertPopupSuccessText, $fallback--text);\n }\n }\n\n .global-info {\n background-color: var(--alertPopupNeutral, $fallback--fg);\n color: var(--alertPopupNeutralText, $fallback--text);\n\n .svg-inline--fa {\n color: var(--alertPopupNeutralText, $fallback--text);\n }\n }\n\n .close-notice {\n padding-right: 0.2em;\n\n .svg-inline--fa:hover {\n opacity: 0.6;\n }\n }\n}\n","// stylelint-disable rscss/class-format\n/* stylelint-disable no-descending-specificity */\n@import \"./variables\";\n@import \"./panel\";\n\n:root {\n --navbar-height: 3.5rem;\n --post-line-height: 1.4;\n // Z-Index stuff\n --ZI_media_modal: 9000;\n --ZI_modals_popovers: 8500;\n --ZI_modals: 8000;\n --ZI_navbar_popovers: 7500;\n --ZI_navbar: 7000;\n --ZI_popovers: 6000;\n}\n\nhtml {\n font-size: 14px;\n // overflow-x: clip causes my browser's tab to crash with SIGILL lul\n}\n\nbody {\n font-family: sans-serif;\n font-family: var(--interfaceFont, sans-serif);\n margin: 0;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n overscroll-behavior-y: none;\n overflow-x: clip;\n overflow-y: scroll;\n\n &.hidden {\n display: none;\n }\n}\n\n// ## Custom scrollbars\n// Only show custom scrollbars on devices which\n// have a cursor/pointer to operate them\n@media (any-pointer: fine) {\n * {\n scrollbar-color: var(--btn) transparent;\n\n &::-webkit-scrollbar {\n background: transparent;\n }\n\n &::-webkit-scrollbar-button,\n &::-webkit-scrollbar-thumb {\n background-color: var(--btn);\n box-shadow: var(--buttonShadow);\n border-radius: var(--btnRadius);\n }\n\n // horizontal/vertical/increment/decrement are webkit-specific stuff\n // that indicates whether we're affecting vertical scrollbar, increase button etc\n // stylelint-disable selector-pseudo-class-no-unknown\n &::-webkit-scrollbar-button {\n --___bgPadding: 2px;\n\n color: var(--btnText);\n background-repeat: no-repeat, no-repeat;\n\n &:horizontal {\n background-size: 50% calc(50% - var(--___bgPadding)), 50% calc(50% - var(--___bgPadding));\n\n &:increment {\n background-image:\n linear-gradient(45deg, var(--btnText) 50%, transparent 51%),\n linear-gradient(-45deg, transparent 50%, var(--btnText) 51%);\n background-position: top var(--___bgPadding) left 50%, right 50% bottom var(--___bgPadding);\n }\n\n &:decrement {\n background-image:\n linear-gradient(45deg, transparent 50%, var(--btnText) 51%),\n linear-gradient(-45deg, var(--btnText) 50%, transparent 51%);\n background-position: bottom var(--___bgPadding) right 50%, left 50% top var(--___bgPadding);\n }\n }\n\n &:vertical {\n background-size: calc(50% - var(--___bgPadding)) 50%, calc(50% - var(--___bgPadding)) 50%;\n\n &:increment {\n background-image:\n linear-gradient(-45deg, transparent 50%, var(--btnText) 51%),\n linear-gradient(45deg, transparent 50%, var(--btnText) 51%);\n background-position: right var(--___bgPadding) top 50%, left var(--___bgPadding) top 50%;\n }\n\n &:decrement {\n background-image:\n linear-gradient(-45deg, var(--btnText) 50%, transparent 51%),\n linear-gradient(45deg, var(--btnText) 50%, transparent 51%);\n background-position: left var(--___bgPadding) top 50%, right var(--___bgPadding) top 50%;\n }\n }\n }\n // stylelint-enable selector-pseudo-class-no-unknown\n }\n // Body should have background to scrollbar otherwise it will use white (body color?)\n html {\n scrollbar-color: var(--selectedMenu) var(--wallpaper);\n background: var(--wallpaper);\n }\n}\n\na {\n text-decoration: none;\n color: $fallback--link;\n color: var(--link, $fallback--link);\n}\n\nh4 {\n margin: 0;\n}\n\n.iconLetter {\n display: inline-block;\n text-align: center;\n font-weight: 1000;\n}\n\ni[class*=\"icon-\"],\n.svg-inline--fa,\n.iconLetter {\n color: $fallback--icon;\n color: var(--icon, $fallback--icon);\n}\n\n.button-unstyled:hover,\na:hover {\n > i[class*=\"icon-\"],\n > .svg-inline--fa,\n > .iconLetter {\n color: var(--text);\n }\n}\n\nnav {\n z-index: var(--ZI_navbar);\n background-color: $fallback--fg;\n background-color: var(--topBar, $fallback--fg);\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n box-shadow: 0 0 4px rgb(0 0 0 / 60%);\n box-shadow: var(--topBarShadow);\n box-sizing: border-box;\n height: var(--navbar-height);\n position: fixed;\n}\n\n#sidebar {\n grid-area: sidebar;\n}\n\n#modal {\n position: absolute;\n z-index: var(--ZI_modals);\n}\n\n.column.-scrollable {\n top: var(--navbar-height);\n position: sticky;\n}\n\n#main-scroller {\n grid-area: content;\n position: relative;\n}\n\n#notifs-column {\n grid-area: notifs;\n}\n\n.app-bg-wrapper {\n position: fixed;\n height: 100%;\n top: var(--navbar-height);\n z-index: -1000;\n left: 0;\n right: -20px;\n background-size: cover;\n background-repeat: no-repeat;\n background-color: var(--wallpaper);\n background-image: var(--body-background-image);\n background-position: 50%;\n}\n\n.underlay {\n grid-column: 1 / span 3;\n grid-row: 1 / 1;\n pointer-events: none;\n background-color: rgb(0 0 0 / 15%);\n background-color: var(--underlay, rgb(0 0 0 / 15%));\n z-index: -1000;\n}\n\n.app-layout {\n --miniColumn: 25rem;\n --maxiColumn: 45rem;\n --columnGap: 1em;\n --status-margin: 0.75em;\n --effectiveSidebarColumnWidth: minmax(var(--miniColumn), var(--sidebarColumnWidth, var(--miniColumn)));\n --effectiveNotifsColumnWidth: minmax(var(--miniColumn), var(--notifsColumnWidth, var(--miniColumn)));\n --effectiveContentColumnWidth: minmax(var(--miniColumn), var(--contentColumnWidth, var(--maxiColumn)));\n\n position: relative;\n display: grid;\n grid-template-columns:\n var(--effectiveSidebarColumnWidth)\n var(--effectiveContentColumnWidth);\n grid-template-areas: \"sidebar content\";\n grid-template-rows: 1fr;\n box-sizing: border-box;\n margin: 0 auto;\n align-content: flex-start;\n flex-wrap: wrap;\n justify-content: center;\n min-height: 100vh;\n overflow-x: clip;\n\n .column {\n --___columnMargin: var(--columnGap);\n\n display: grid;\n grid-template-columns: 100%;\n box-sizing: border-box;\n grid-row: 1 / 1;\n margin: 0 calc(var(--___columnMargin) / 2);\n padding: calc(var(--___columnMargin)) 0;\n row-gap: var(--___columnMargin);\n align-content: start;\n\n &:not(.-scrollable) {\n margin-top: var(--navbar-height);\n }\n\n &:hover {\n z-index: 2;\n }\n\n &.-full-height {\n margin-bottom: 0;\n padding-top: 0;\n padding-bottom: 0;\n }\n\n &.-scrollable {\n --___paddingIncrease: calc(var(--columnGap) / 2);\n\n position: sticky;\n top: var(--navbar-height);\n max-height: calc(100vh - var(--navbar-height));\n overflow-y: auto;\n overflow-x: hidden;\n margin-left: calc(var(--___paddingIncrease) * -1);\n padding-left: calc(var(--___paddingIncrease) + var(--___columnMargin) / 2);\n\n // On browsers that don't support hiding scrollbars we enforce \"show scrolbars\" mode\n // might implement old style of hiding scrollbars later if there's demand\n @supports (scrollbar-width: none) or (-webkit-text-fill-color: initial) {\n &:not(.-show-scrollbar) {\n scrollbar-width: none;\n margin-right: calc(var(--___paddingIncrease) * -1);\n padding-right: calc(var(--___paddingIncrease) + var(--___columnMargin) / 2);\n\n &::-webkit-scrollbar {\n display: block;\n width: 0;\n }\n }\n }\n\n .panel-heading.-sticky {\n top: calc(var(--columnGap) / -1);\n }\n }\n }\n\n &.-has-new-post-button {\n .column {\n padding-bottom: 10rem;\n }\n }\n\n &.-no-sticky-headers {\n .column {\n .panel-heading.-sticky {\n position: relative;\n top: 0;\n }\n }\n }\n\n .column-inner {\n display: grid;\n grid-template-columns: 100%;\n box-sizing: border-box;\n row-gap: 1em;\n align-content: start;\n }\n\n &.-reverse:not(.-wide, .-mobile) {\n grid-template-columns:\n var(--effectiveContentColumnWidth)\n var(--effectiveSidebarColumnWidth);\n grid-template-areas: \"content sidebar\";\n }\n\n &.-wide {\n grid-template-columns:\n var(--effectiveSidebarColumnWidth)\n var(--effectiveContentColumnWidth)\n var(--effectiveNotifsColumnWidth);\n grid-template-areas: \"sidebar content notifs\";\n\n &.-reverse {\n grid-template-columns:\n var(--effectiveNotifsColumnWidth)\n var(--effectiveContentColumnWidth)\n var(--effectiveSidebarColumnWidth);\n grid-template-areas: \"notifs content sidebar\";\n }\n }\n\n &.-mobile {\n grid-template-columns: 100vw;\n grid-template-areas: \"content\";\n padding: 0;\n\n .column {\n padding-top: 0;\n margin: var(--navbar-height) 0 0 0;\n }\n\n .panel-heading,\n .panel-heading::after,\n .panel-heading::before,\n .panel,\n .panel::after {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n\n #sidebar,\n #notifs-column {\n display: none;\n }\n }\n\n &.-normal {\n #notifs-column {\n display: none;\n }\n }\n}\n\n.text-center {\n text-align: center;\n}\n\n.button-default {\n user-select: none;\n color: $fallback--text;\n color: var(--btnText, $fallback--text);\n background-color: $fallback--fg;\n background-color: var(--btn, $fallback--fg);\n border: none;\n border-radius: $fallback--btnRadius;\n border-radius: var(--btnRadius, $fallback--btnRadius);\n cursor: pointer;\n box-shadow: $fallback--buttonShadow;\n box-shadow: var(--buttonShadow);\n font-size: 1em;\n font-family: sans-serif;\n font-family: var(--interfaceFont, sans-serif);\n\n &.-sublime {\n background: transparent;\n }\n\n i[class*=\"icon-\"],\n .svg-inline--fa {\n color: $fallback--text;\n color: var(--btnText, $fallback--text);\n }\n\n &::-moz-focus-inner {\n border: none;\n }\n\n &:hover {\n box-shadow: 0 0 4px rgb(255 255 255 / 30%);\n box-shadow: var(--buttonHoverShadow);\n }\n\n &:active {\n box-shadow:\n 0 0 4px 0 rgb(255 255 255 / 30%),\n 0 1px 0 0 rgb(0 0 0 / 20%) inset,\n 0 -1px 0 0 rgb(255 255 255 / 20%) inset;\n box-shadow: var(--buttonPressedShadow);\n color: $fallback--text;\n color: var(--btnPressedText, $fallback--text);\n background-color: $fallback--fg;\n background-color: var(--btnPressed, $fallback--fg);\n\n svg,\n i {\n color: $fallback--text;\n color: var(--btnPressedText, $fallback--text);\n }\n }\n\n &:disabled {\n cursor: not-allowed;\n color: $fallback--text;\n color: var(--btnDisabledText, $fallback--text);\n background-color: $fallback--fg;\n background-color: var(--btnDisabled, $fallback--fg);\n\n svg,\n i {\n color: $fallback--text;\n color: var(--btnDisabledText, $fallback--text);\n }\n }\n\n &.toggled {\n color: $fallback--text;\n color: var(--btnToggledText, $fallback--text);\n background-color: $fallback--fg;\n background-color: var(--btnToggled, $fallback--fg);\n box-shadow:\n 0 0 4px 0 rgb(255 255 255 / 30%),\n 0 1px 0 0 rgb(0 0 0 / 20%) inset,\n 0 -1px 0 0 rgb(255 255 255 / 20%) inset;\n box-shadow: var(--buttonPressedShadow);\n\n svg,\n i {\n color: $fallback--text;\n color: var(--btnToggledText, $fallback--text);\n }\n }\n\n &.danger {\n // TODO: add better color variable\n color: $fallback--text;\n color: var(--alertErrorPanelText, $fallback--text);\n background-color: $fallback--alertError;\n background-color: var(--alertError, $fallback--alertError);\n }\n}\n\n.button-unstyled {\n background: none;\n border: none;\n outline: none;\n display: inline;\n text-align: initial;\n font-size: 100%;\n font-family: inherit;\n padding: 0;\n line-height: unset;\n cursor: pointer;\n box-sizing: content-box;\n color: inherit;\n\n &.-link {\n color: $fallback--link;\n color: var(--link, $fallback--link);\n }\n\n &.-fullwidth {\n width: 100%;\n }\n\n &.-hover-highlight {\n &:hover svg {\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n }\n }\n}\n\ninput,\ntextarea,\n.input {\n &.unstyled {\n border-radius: 0;\n background: none;\n box-shadow: none;\n height: unset;\n }\n\n --_padding: 0.5em;\n\n border: none;\n border-radius: $fallback--inputRadius;\n border-radius: var(--inputRadius, $fallback--inputRadius);\n box-shadow:\n 0 1px 0 0 rgb(0 0 0 / 20%) inset,\n 0 -1px 0 0 rgb(255 255 255 / 20%) inset,\n 0 0 2px 0 rgb(0 0 0 / 100%) inset;\n box-shadow: var(--inputShadow);\n background-color: $fallback--fg;\n background-color: var(--input, $fallback--fg);\n color: $fallback--lightText;\n color: var(--inputText, $fallback--lightText);\n font-family: sans-serif;\n font-family: var(--inputFont, sans-serif);\n font-size: 1em;\n margin: 0;\n box-sizing: border-box;\n display: inline-block;\n position: relative;\n line-height: 2;\n hyphens: none;\n padding: 0 var(--_padding);\n\n &:disabled,\n &[disabled=\"disabled\"],\n &.disabled {\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n &[type=\"range\"] {\n background: none;\n border: none;\n margin: 0;\n box-shadow: none;\n flex: 1;\n }\n\n &[type=\"radio\"] {\n display: none;\n\n &:checked + label::before {\n box-shadow: 0 0 2px black inset, 0 0 0 4px $fallback--fg inset;\n box-shadow: var(--inputShadow), 0 0 0 4px var(--fg, $fallback--fg) inset;\n background-color: var(--accent, $fallback--link);\n }\n\n &:disabled {\n &,\n & + label,\n & + label::before {\n opacity: 0.5;\n }\n }\n\n + label::before {\n flex-shrink: 0;\n display: inline-block;\n content: \"\";\n transition: box-shadow 200ms;\n width: 1.1em;\n height: 1.1em;\n border-radius: 100%; // Radio buttons should always be circle\n box-shadow: 0 0 2px black inset;\n box-shadow: var(--inputShadow);\n margin-right: 0.5em;\n background-color: $fallback--fg;\n background-color: var(--input, $fallback--fg);\n vertical-align: top;\n text-align: center;\n line-height: 1.1;\n font-size: 1.1em;\n box-sizing: border-box;\n color: transparent;\n overflow: hidden;\n }\n }\n\n &[type=\"checkbox\"] {\n &:checked + label::before {\n color: $fallback--text;\n color: var(--inputText, $fallback--text);\n }\n\n &:disabled {\n &,\n & + label,\n & + label::before {\n opacity: 0.5;\n }\n }\n\n + label::before {\n flex-shrink: 0;\n display: inline-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: 0 0 2px black inset;\n box-shadow: var(--inputShadow);\n margin-right: 0.5em;\n background-color: $fallback--fg;\n background-color: var(--input, $fallback--fg);\n vertical-align: top;\n text-align: center;\n line-height: 1.1;\n font-size: 1.1em;\n box-sizing: border-box;\n color: transparent;\n overflow: hidden;\n }\n }\n\n &.resize-height {\n resize: vertical;\n }\n}\n\n// Textareas should have stock line-height + vertical padding instead of huge line-height\ntextarea {\n padding: var(--_padding);\n line-height: var(--post-line-height);\n}\n\noption {\n color: $fallback--text;\n color: var(--text, $fallback--text);\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n}\n\n.hide-number-spinner {\n appearance: textfield;\n\n &[type=\"number\"]::-webkit-inner-spin-button,\n &[type=\"number\"]::-webkit-outer-spin-button {\n opacity: 0;\n display: none;\n }\n}\n\n.cards-list {\n list-style: none;\n display: grid;\n grid-auto-flow: row dense;\n grid-template-columns: 1fr 1fr;\n\n li {\n border: 1px solid var(--border);\n border-radius: var(--inputRadius);\n padding: 0.5em;\n margin: 0.25em;\n }\n}\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n.btn-group {\n position: relative;\n display: inline-flex;\n vertical-align: middle;\n\n button,\n .button-dropdown {\n position: relative;\n flex: 1 1 auto;\n\n &:not(:last-child),\n &:not(:last-child) .button-default {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n\n &:not(:first-child),\n &:not(:first-child) .button-default {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n }\n}\n\n.fa {\n color: grey;\n}\n\n.mobile-shown {\n display: none;\n}\n\n.badge {\n box-sizing: border-box;\n display: inline-block;\n border-radius: 99px;\n max-width: 10em;\n min-width: 1.7em;\n height: 1.3em;\n padding: 0.15em;\n vertical-align: middle;\n font-weight: normal;\n font-style: normal;\n font-size: 0.9em;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &.badge-notification {\n background-color: $fallback--cRed;\n background-color: var(--badgeNotification, $fallback--cRed);\n color: white;\n color: var(--badgeNotificationText, white);\n }\n}\n\n.alert {\n margin: 0 0.35em;\n padding: 0 0.25em;\n border-radius: $fallback--tooltipRadius;\n border-radius: var(--tooltipRadius, $fallback--tooltipRadius);\n\n &.error {\n background-color: $fallback--alertError;\n background-color: var(--alertError, $fallback--alertError);\n color: $fallback--text;\n color: var(--alertErrorText, $fallback--text);\n\n .panel-heading & {\n color: $fallback--text;\n color: var(--alertErrorPanelText, $fallback--text);\n }\n }\n\n &.warning {\n background-color: $fallback--alertWarning;\n background-color: var(--alertWarning, $fallback--alertWarning);\n color: $fallback--text;\n color: var(--alertWarningText, $fallback--text);\n\n .panel-heading & {\n color: $fallback--text;\n color: var(--alertWarningPanelText, $fallback--text);\n }\n }\n\n &.success {\n background-color: var(--alertSuccess, $fallback--alertWarning);\n color: var(--alertSuccessText, $fallback--text);\n\n .panel-heading & {\n color: var(--alertSuccessPanelText, $fallback--text);\n }\n }\n}\n\n.faint {\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n}\n\n.faint-link {\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n\n &:hover {\n text-decoration: underline;\n }\n}\n\n.visibility-notice {\n padding: 0.5em;\n border: 1px solid $fallback--faint;\n border: 1px solid var(--faint, $fallback--faint);\n border-radius: $fallback--inputRadius;\n border-radius: var(--inputRadius, $fallback--inputRadius);\n}\n\n.notice-dismissible {\n padding-right: 4rem;\n position: relative;\n\n .dismiss {\n position: absolute;\n top: 0;\n right: 0;\n padding: 0.5em;\n color: inherit;\n }\n}\n\n.fa-scale-110 {\n &.svg-inline--fa,\n &.iconLetter {\n font-size: 1.1em;\n }\n}\n\n.fa-old-padding {\n &.iconLetter,\n &.svg-inline--fa,\n &-layer {\n padding: 0 0.3em;\n }\n}\n\n.veryfaint {\n opacity: 0.25;\n}\n\n.login-hint {\n text-align: center;\n\n @media all and (min-width: 801px) {\n display: none;\n }\n\n a {\n display: inline-block;\n padding: 1em 0;\n width: 100%;\n }\n}\n\n.btn.button-default {\n min-height: 2em;\n}\n\n.new-status-notification {\n position: relative;\n font-size: 1.1em;\n z-index: 1;\n flex: 1;\n}\n\n@media all and (max-width: 800px) {\n .mobile-hidden {\n display: none;\n }\n}\n\n@keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n\n 100% {\n transform: rotate(359deg);\n }\n}\n\n@keyframes shakeError {\n 0% {\n transform: translateX(0);\n }\n\n 15% {\n transform: translateX(0.375rem);\n }\n\n 30% {\n transform: translateX(-0.375rem);\n }\n\n 45% {\n transform: translateX(0.375rem);\n }\n\n 60% {\n transform: translateX(-0.375rem);\n }\n\n 75% {\n transform: translateX(0.375rem);\n }\n\n 90% {\n transform: translateX(-0.375rem);\n }\n\n 100% {\n transform: translateX(0);\n }\n}\n\n// Vue transitions\n.fade-enter-active,\n.fade-leave-active {\n transition: opacity 0.3s;\n}\n\n.fade-enter-from,\n.fade-leave-active {\n opacity: 0;\n}\n/* stylelint-enable no-descending-specificity */\n\n.visible-for-screenreader-only {\n display: block;\n width: 1px;\n height: 1px;\n margin: -1px;\n overflow: hidden;\n visibility: visible;\n clip: rect(0 0 0 0);\n padding: 0;\n position: absolute;\n}\n","/* stylelint-disable no-descending-specificity */\n.panel {\n position: relative;\n display: flex;\n flex-direction: column;\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n\n &::after,\n & {\n border-radius: $fallback--panelRadius;\n border-radius: var(--panelRadius, $fallback--panelRadius);\n }\n\n &::after {\n content: \"\";\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 5;\n box-shadow: 1px 1px 4px rgb(0 0 0 / 60%);\n box-shadow: var(--panelShadow);\n pointer-events: none;\n }\n}\n\n.panel-body {\n padding: var(--panel-body-padding, 0);\n\n &:empty::before {\n content: \"¯\\\\_(ツ)_/¯\"; // Could use words but it'd require translations\n display: block;\n margin: 1em;\n text-align: center;\n }\n\n > p {\n line-height: 1.3;\n padding: 1em;\n margin: 0;\n }\n}\n\n.panel-heading,\n.panel-footer {\n --panel-heading-height-padding: 0.6em;\n --__panel-heading-gap: 0.5em;\n --__panel-heading-height: 3.2em;\n --__panel-heading-height-inner: calc(var(--__panel-heading-height) - 2 * var(--panel-heading-height-padding, 0));\n\n position: relative;\n box-sizing: border-box;\n display: grid;\n grid-auto-flow: column;\n grid-template-columns: minmax(50%, 1fr);\n grid-auto-columns: auto;\n grid-column-gap: var(--__panel-heading-gap);\n flex: none;\n background-size: cover;\n padding: var(--panel-heading-height-padding);\n height: var(--__panel-heading-height);\n line-height: var(--__panel-heading-height-inner);\n z-index: 4;\n\n &.-flexible-height {\n --__panel-heading-height: auto;\n\n &::after,\n &::before {\n display: none;\n }\n }\n\n &.-stub {\n &,\n &::after {\n border-radius: $fallback--panelRadius;\n border-radius: var(--panelRadius, $fallback--panelRadius);\n }\n }\n\n &.-sticky {\n position: sticky;\n top: var(--navbar-height);\n }\n\n &::after,\n &::before {\n content: \"\";\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n left: 0;\n pointer-events: none;\n }\n\n .title {\n font-size: 1.3em;\n }\n\n .alert {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow-x: hidden;\n }\n\n &:not(.-flexible-height) {\n > .button-default,\n > .alert {\n height: var(--__panel-heading-height-inner);\n min-height: 0;\n box-sizing: border-box;\n margin: 0;\n min-width: 1px;\n padding-top: 0;\n padding-bottom: 0;\n align-self: stretch;\n }\n }\n}\n\n// TODO Should refactor panels into separate component and utilize slots\n\n.panel-heading {\n border-radius: $fallback--panelRadius $fallback--panelRadius 0 0;\n border-radius: var(--panelRadius, $fallback--panelRadius) var(--panelRadius, $fallback--panelRadius) 0 0;\n border-width: 0 0 1px;\n align-items: start;\n // panel theme\n color: var(--panelText);\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n\n &::after {\n background-color: $fallback--fg;\n background-color: var(--panel, $fallback--fg);\n z-index: -2;\n border-radius: $fallback--panelRadius $fallback--panelRadius 0 0;\n border-radius: var(--panelRadius, $fallback--panelRadius) var(--panelRadius, $fallback--panelRadius) 0 0;\n box-shadow: var(--panelHeaderShadow);\n }\n\n a,\n .-link {\n color: $fallback--link;\n color: var(--panelLink, $fallback--link);\n }\n\n .button-unstyled:hover,\n a:hover {\n i[class*=\"icon-\"],\n .svg-inline--fa,\n .iconLetter {\n color: var(--panelText);\n }\n }\n\n .faint {\n background-color: transparent;\n color: $fallback--faint;\n color: var(--panelFaint, $fallback--faint);\n }\n\n .faint-link {\n color: $fallback--faint;\n color: var(--faintLink, $fallback--faint);\n }\n\n &:not(.-flexible-height) {\n > .button-default {\n flex-shrink: 0;\n\n &,\n i[class*=\"icon-\"] {\n color: $fallback--text;\n color: var(--btnPanelText, $fallback--text);\n }\n\n &:active {\n background-color: $fallback--fg;\n background-color: var(--btnPressedPanel, $fallback--fg);\n color: $fallback--text;\n color: var(--btnPressedPanelText, $fallback--text);\n }\n\n &:disabled {\n color: $fallback--text;\n color: var(--btnDisabledPanelText, $fallback--text);\n }\n\n &.toggled {\n color: $fallback--text;\n color: var(--btnToggledPanelText, $fallback--text);\n }\n }\n }\n\n .rightside-button {\n align-self: stretch;\n text-align: center;\n width: var(--__panel-heading-height);\n height: var(--__panel-heading-height);\n margin: calc(-1 * var(--panel-heading-height-padding)) 0;\n margin-right: calc(-1 * var(--__panel-heading-gap));\n\n > button {\n box-sizing: border-box;\n padding: calc(1 * var(--panel-heading-height-padding)) 0;\n height: 100%;\n width: 100%;\n text-align: center;\n\n svg {\n font-size: 1.2em;\n }\n }\n }\n\n .rightside-icon {\n align-self: stretch;\n text-align: center;\n width: var(--__panel-heading-height);\n margin-right: calc(-1 * var(--__panel-heading-gap));\n\n svg {\n font-size: 1.2em;\n }\n }\n}\n\n.panel-footer {\n border-radius: 0 0 $fallback--panelRadius $fallback--panelRadius;\n border-radius: 0 0 var(--panelRadius, $fallback--panelRadius) var(--panelRadius, $fallback--panelRadius);\n align-items: center;\n border-width: 1px 0 0;\n border-style: solid;\n border-color: var(--border, $fallback--border);\n}\n/* stylelint-enable no-descending-specificity */\n","\n@import \"../../variables\";\n\n.thread-tree-replies {\n margin-left: var(--status-margin, $status-margin);\n border-left: 2px solid var(--border, $fallback--border);\n}\n\n.thread-tree-replies-hidden {\n padding: var(--status-margin, $status-margin);\n\n /* Make the button stretch along the whole row */\n display: flex;\n align-items: stretch;\n flex-direction: column;\n}\n","\n@import \"../../variables\";\n\n.Conversation {\n z-index: 1;\n\n .conversation-dive-to-top-level-box {\n padding: var(--status-margin, $status-margin);\n border-bottom: 1px solid var(--border, $fallback--border);\n border-radius: 0;\n\n /* Make the button stretch along the whole row */\n display: flex;\n align-items: stretch;\n flex-direction: column;\n }\n\n .thread-ancestors {\n margin-left: var(--status-margin, $status-margin);\n border-left: 2px solid var(--border, $fallback--border);\n }\n\n .thread-ancestor.-faded .StatusContent {\n --link: var(--faintLink);\n --text: var(--faint);\n\n color: var(--text);\n }\n\n .thread-ancestor-dive-box {\n padding-left: var(--status-margin, $status-margin);\n border-bottom: 1px solid var(--border, $fallback--border);\n border-radius: 0;\n\n /* Make the button stretch along the whole row */\n &,\n &-inner {\n display: flex;\n align-items: stretch;\n flex-direction: column;\n }\n }\n\n .thread-ancestor-dive-box-inner {\n padding: var(--status-margin, $status-margin);\n }\n\n .conversation-status {\n border-bottom: 1px solid var(--border, $fallback--border);\n border-radius: 0;\n }\n\n .thread-ancestor-has-other-replies .conversation-status,\n &:last-child .conversation-status,\n .thread-ancestor:last-child .conversation-status,\n .thread-ancestor:last-child .thread-ancestor-dive-box,\n &.-expanded .thread-tree .conversation-status {\n border-bottom: none;\n }\n\n .thread-ancestors + .thread-tree > .conversation-status {\n border-top: 1px solid var(--border, $fallback--border);\n }\n\n /* expanded conversation in timeline */\n &.status-fadein.-expanded .thread-body {\n border-left: 4px solid $fallback--cRed;\n border-left-color: var(--cRed, $fallback--cRed);\n border-radius: 0 0 $fallback--panelRadius $fallback--panelRadius;\n border-radius: 0 0 var(--panelRadius, $fallback--panelRadius) var(--panelRadius, $fallback--panelRadius);\n border-bottom: 1px solid var(--border, $fallback--border);\n }\n\n &.-expanded.status-fadein {\n margin: calc(var(--status-margin, $status-margin) / 2);\n }\n}\n","\n@import \"../../variables\";\n\n.timeline-menu-popover {\n min-width: 24rem;\n max-width: 100vw;\n margin-top: 0.6rem;\n font-size: 1rem;\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n\n ul {\n list-style: none;\n margin: 0;\n padding: 0;\n }\n\n a {\n display: block;\n padding: 0 0.65em;\n height: 3.5em;\n line-height: 3.5em;\n\n &:hover {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n color: $fallback--link;\n color: var(--selectedMenuText, $fallback--link);\n\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n --icon: var(--selectedMenuIcon, $fallback--icon);\n }\n\n &.router-link-active {\n font-weight: bolder;\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n color: $fallback--text;\n color: var(--selectedMenuText, $fallback--text);\n\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n --icon: var(--selectedMenuIcon, $fallback--icon);\n\n &:hover {\n text-decoration: underline;\n }\n }\n\n svg {\n margin-right: 0.4em;\n margin-left: -0.2em;\n }\n }\n\n li {\n border-bottom: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n padding: 0;\n\n &:last-child a {\n border-bottom-right-radius: $fallback--panelRadius;\n border-bottom-right-radius: var(--panelRadius, $fallback--panelRadius);\n border-bottom-left-radius: $fallback--panelRadius;\n border-bottom-left-radius: var(--panelRadius, $fallback--panelRadius);\n }\n\n &:last-child {\n border: none;\n }\n }\n}\n\n.TimelineMenu {\n margin-right: auto;\n min-width: 0;\n\n .popover-trigger-button {\n vertical-align: bottom;\n }\n\n .panel::after {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n }\n\n .timeline-menu-title {\n margin: 0;\n cursor: pointer;\n user-select: none;\n width: 100%;\n display: flex;\n\n .timeline-menu-name {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n svg {\n margin-left: 0.6em;\n transition: transform 100ms;\n }\n\n .click-blocker {\n cursor: default;\n flex-grow: 1;\n }\n }\n\n &.open .timeline-menu-title svg {\n color: $fallback--text;\n color: var(--panelText, $fallback--text);\n transform: rotate(180deg);\n }\n\n .panel {\n box-shadow: var(--popoverShadow);\n }\n}\n","@import \"../../variables\";\n\n.Timeline {\n .alert-dot {\n border-radius: 100%;\n height: 8px;\n width: 8px;\n position: absolute;\n left: calc(50% - 4px);\n top: calc(50% - 4px);\n margin-left: 6px;\n margin-top: -6px;\n background-color: var(--badgeNeutral);\n }\n\n .alert-badge {\n font-size: 0.75em;\n line-height: 1;\n text-align: right;\n border-radius: var(--tooltipRadius);\n position: absolute;\n left: calc(50% - 0.5em);\n top: calc(50% - 0.4em);\n padding: 0.2em;\n margin-left: 0.7em;\n margin-top: -1em;\n background-color: var(--badgeNeutral);\n color: var(--badgeNeutralText);\n }\n\n .loadmore-button {\n position: relative;\n }\n\n &.-blocked {\n cursor: progress;\n }\n\n .conversation-heading {\n top: calc(var(--__panel-heading-height) * var(--currentPanelStack, 2));\n z-index: 2;\n }\n\n &.-nonpanel {\n .timeline-heading {\n text-align: center;\n line-height: 2.75em;\n padding: 0 0.5em;\n\n .button-default,\n .alert {\n line-height: 2em;\n width: 100%;\n }\n }\n }\n}\n","@import \"../../variables\";\n\n/* stylelint-disable no-descending-specificity */\n.tab-switcher {\n display: flex;\n\n .tab-icon {\n margin: 0.2em auto;\n display: block;\n }\n\n &.top-tabs {\n flex-direction: column;\n\n > .tabs {\n width: 100%;\n overflow-y: hidden;\n overflow-x: auto;\n padding-top: 5px;\n flex-direction: row;\n flex: 0 0 auto;\n\n &::after,\n &::before {\n content: \"\";\n flex: 1 1 auto;\n border-bottom: 1px solid;\n border-bottom-color: $fallback--border;\n border-bottom-color: var(--border, $fallback--border);\n }\n\n .tab-wrapper {\n height: 2em;\n\n &:not(.active)::after {\n left: 0;\n right: 0;\n bottom: 0;\n border-bottom: 1px solid;\n border-bottom-color: $fallback--border;\n border-bottom-color: var(--border, $fallback--border);\n }\n }\n\n .tab {\n width: 100%;\n min-width: 1px;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n padding-bottom: 99px;\n margin-bottom: 6px - 99px;\n }\n }\n\n .contents.scrollable-tabs {\n flex-basis: 0;\n }\n }\n\n &.side-tabs {\n flex-direction: row;\n\n @media all and (max-width: 800px) {\n overflow-x: auto;\n }\n\n > .contents {\n flex: 1 1 auto;\n }\n\n > .tabs {\n flex: 0 0 auto;\n overflow-y: auto;\n overflow-x: hidden;\n flex-direction: column;\n\n &::after,\n &::before {\n flex-shrink: 0;\n flex-basis: 0.5em;\n content: \"\";\n border-right: 1px solid;\n border-right-color: $fallback--border;\n border-right-color: var(--border, $fallback--border);\n }\n\n &::after {\n flex-grow: 1;\n }\n\n &::before {\n flex-grow: 0;\n }\n\n .tab-wrapper {\n min-width: 10em;\n display: flex;\n flex-direction: column;\n\n @media all and (max-width: 800px) {\n min-width: 4em;\n }\n\n &:not(.active)::after {\n top: 0;\n right: 0;\n bottom: 0;\n border-right: 1px solid;\n border-right-color: $fallback--border;\n border-right-color: var(--border, $fallback--border);\n }\n\n &::before {\n flex: 0 0 6px;\n content: \"\";\n border-right: 1px solid;\n border-right-color: $fallback--border;\n border-right-color: var(--border, $fallback--border);\n }\n\n &:last-child .tab {\n margin-bottom: 0;\n }\n }\n\n .tab {\n flex: 1;\n box-sizing: content-box;\n min-width: 10em;\n min-width: 1px;\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n padding-left: 1em;\n padding-right: calc(1em + 200px);\n margin-right: -200px;\n margin-left: 1em;\n\n @media all and (max-width: 800px) {\n padding-left: 0.25em;\n padding-right: calc(0.25em + 200px);\n margin-right: calc(0.25em - 200px);\n margin-left: 0.25em;\n\n .text {\n display: none;\n }\n }\n }\n }\n }\n\n .contents {\n flex: 1 0 auto;\n min-height: 0;\n\n .hidden {\n display: none;\n }\n\n .full-height:not(.hidden) {\n height: 100%;\n display: flex;\n flex-direction: column;\n\n > *:not(.mobile-label) {\n flex: 1;\n }\n }\n\n &.scrollable-tabs {\n overflow-y: auto;\n }\n }\n\n .tab {\n position: relative;\n white-space: nowrap;\n padding: 6px 1em;\n\n &:not(.active) {\n z-index: 4;\n\n &:hover {\n z-index: 6;\n }\n }\n\n &.active {\n background: transparent;\n z-index: 5;\n color: $fallback--text;\n color: var(--tabActiveText, $fallback--text);\n }\n\n img {\n max-height: 26px;\n vertical-align: top;\n margin-top: -5px;\n }\n }\n\n .tabs {\n display: flex;\n position: relative;\n box-sizing: border-box;\n\n &::after,\n &::before {\n display: block;\n flex: 1 1 auto;\n }\n }\n\n .tab-wrapper {\n position: relative;\n display: flex;\n flex: 0 0 auto;\n\n &:not(.active) {\n &::after {\n content: \"\";\n position: absolute;\n z-index: 7;\n }\n }\n }\n\n .mobile-label {\n padding-left: 0.3em;\n padding-bottom: 0.25em;\n margin-top: 0.5em;\n margin-left: 0.2em;\n margin-bottom: 0.25em;\n border-bottom: 1px solid var(--border, $fallback--border);\n\n @media all and (min-width: 800px) {\n display: none;\n }\n }\n}\n/* stylelint-enable no-descending-specificity */\n","\n@import \"../../variables\";\n\n.chat-title {\n display: flex;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n --emoji-size: 14px;\n\n .username {\n max-width: 100%;\n text-overflow: ellipsis;\n white-space: nowrap;\n display: inline;\n word-wrap: break-word;\n overflow: hidden;\n }\n\n .avatar-container {\n align-self: center;\n line-height: 1;\n }\n\n .titlebar-avatar {\n margin-right: 0.5em;\n height: 1.5em;\n width: 1.5em;\n border-radius: $fallback--avatarAltRadius;\n border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);\n\n &.animated::before {\n display: none;\n }\n }\n}\n",".chat-list-item {\n display: flex;\n flex-direction: row;\n padding: 0.75em;\n height: 5em;\n overflow: hidden;\n box-sizing: border-box;\n cursor: pointer;\n\n :focus {\n outline: none;\n }\n\n &:hover {\n background-color: var(--selectedPost, $fallback--lightBg);\n box-shadow: 0 0 3px 1px rgb(0 0 0 / 10%);\n }\n\n .chat-list-item-left {\n margin-right: 1em;\n }\n\n .chat-list-item-center {\n width: 100%;\n box-sizing: border-box;\n overflow: hidden;\n word-wrap: break-word;\n }\n\n .heading {\n width: 100%;\n display: inline-flex;\n justify-content: space-between;\n line-height: 1em;\n }\n\n .heading-right {\n white-space: nowrap;\n }\n\n .name-and-account-name {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n flex-shrink: 1;\n line-height: var(--post-line-height);\n }\n\n .chat-preview {\n display: inline-flex;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n margin: 0.35em 0;\n color: $fallback--text;\n color: var(--faint, $fallback--text);\n width: 100%;\n }\n\n a {\n color: var(--faintLink, $fallback--link);\n text-decoration: none;\n pointer-events: none;\n }\n\n &:hover .animated.avatar {\n canvas {\n display: none;\n }\n\n img {\n visibility: visible;\n }\n }\n\n .Avatar {\n border-radius: $fallback--avatarAltRadius;\n border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);\n }\n\n .chat-preview-body {\n --emoji-size: 1.4em;\n\n padding-right: 1em;\n }\n\n .time-wrapper {\n line-height: var(--post-line-height);\n }\n}\n","\n.basic-user-card {\n display: flex;\n flex: 1 0;\n margin: 0;\n padding: 0.6em 1em;\n\n --emoji-size: 14px;\n\n &-collapsed-content {\n margin-left: 0.7em;\n text-align: left;\n flex: 1;\n min-width: 0;\n }\n\n &-user-name {\n img {\n object-fit: contain;\n height: 16px;\n width: 16px;\n vertical-align: middle;\n }\n }\n\n &-user-name-value,\n &-screen-name {\n display: inline-block;\n max-width: 100%;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n &-expanded-content {\n flex: 1;\n margin-left: 0.7em;\n min-width: 0;\n }\n}\n",".chat-new {\n .input-wrap {\n display: flex;\n margin: 0.7em 0.5em;\n\n input {\n width: 100%;\n }\n }\n\n .search-icon {\n margin-right: 0.3em;\n }\n\n .member-list {\n padding-bottom: 0.7rem;\n }\n\n .basic-user-card:hover {\n cursor: pointer;\n background-color: var(--selectedPost, $fallback--lightBg);\n }\n\n .go-back-button {\n text-align: center;\n line-height: 1;\n height: 100%;\n align-self: start;\n width: var(--__panel-heading-height-inner);\n }\n}\n","\n@import \"../../variables\";\n\n.chat-list {\n min-height: 25em;\n margin-bottom: 0;\n}\n\n.emtpy-chat-list-alert {\n padding: 3em;\n font-size: 1.2em;\n display: flex;\n justify-content: center;\n color: $fallback--text;\n color: var(--faint, $fallback--text);\n}\n\n","@import \"../../variables\";\n\n.chat-message-wrapper {\n &.hovered-message-chain {\n .animated.Avatar {\n canvas {\n display: none;\n }\n\n img {\n visibility: visible;\n }\n }\n }\n\n .chat-message-menu {\n transition: opacity 0.1s;\n opacity: 0;\n position: absolute;\n top: -0.8em;\n\n button {\n padding-top: 0.2em;\n padding-bottom: 0.2em;\n }\n }\n\n .menu-icon {\n cursor: pointer;\n\n &:hover,\n .extra-button-popover.open & {\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n }\n\n .popover {\n width: 12em;\n }\n\n .chat-message {\n display: flex;\n padding-bottom: 0.5em;\n\n .status-body:hover {\n --_still-image-img-visibility: visible;\n --_still-image-canvas-visibility: hidden;\n --_still-image-label-visibility: hidden;\n }\n }\n\n .avatar-wrapper {\n margin-right: 0.72em;\n width: 32px;\n }\n\n .link-preview,\n .attachments {\n margin-bottom: 1em;\n }\n\n .status {\n border-radius: $fallback--chatMessageRadius;\n border-radius: var(--chatMessageRadius, $fallback--chatMessageRadius);\n display: flex;\n padding: 0.75em;\n }\n\n .created-at {\n position: relative;\n float: right;\n font-size: 0.8em;\n margin: -1em 0 -0.5em;\n font-style: italic;\n opacity: 0.8;\n }\n\n .without-attachment {\n .message-content {\n // TODO figure out how to do it properly\n .RichContent::after {\n margin-right: 5.4em;\n content: \" \";\n display: inline-block;\n }\n }\n }\n\n .pending {\n .status-content.media-body,\n .created-at {\n color: var(--faint);\n }\n }\n\n .error {\n .status-content.media-body,\n .created-at {\n color: $fallback--cRed;\n color: var(--badgeNotification, $fallback--cRed);\n }\n }\n\n .chat-message-inner {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n max-width: 80%;\n min-width: 10em;\n width: 100%;\n }\n\n .outgoing {\n display: flex;\n flex-flow: row wrap;\n align-content: end;\n justify-content: flex-end;\n\n a {\n color: var(--chatMessageOutgoingLink, $fallback--link);\n }\n\n .status {\n color: var(--chatMessageOutgoingText, $fallback--text);\n background-color: var(--chatMessageOutgoingBg, $fallback--lightBg);\n border: 1px solid var(--chatMessageOutgoingBorder, --lightBg);\n }\n\n .chat-message-inner {\n align-items: flex-end;\n }\n\n .chat-message-menu {\n right: 0.4rem;\n }\n }\n\n .incoming {\n a {\n color: var(--chatMessageIncomingLink, $fallback--link);\n }\n\n .status {\n color: var(--chatMessageIncomingText, $fallback--text);\n background-color: var(--chatMessageIncomingBg, $fallback--bg);\n border: 1px solid var(--chatMessageIncomingBorder, --border);\n }\n\n .created-at {\n a {\n color: var(--chatMessageIncomingText, $fallback--text);\n }\n }\n\n .chat-message-menu {\n left: 0.4rem;\n }\n }\n\n .chat-message-inner.with-media {\n width: 100%;\n\n .status {\n width: 100%;\n }\n }\n\n .visible {\n opacity: 1;\n }\n}\n\n.chat-message-date-separator {\n text-align: center;\n margin: 1.4em 0;\n font-size: 0.9em;\n user-select: none;\n color: $fallback--text;\n color: var(--faintedText, $fallback--text);\n}\n",".chat-view {\n display: flex;\n height: 100%;\n\n .chat-view-inner {\n height: auto;\n width: 100%;\n overflow: visible;\n display: flex;\n }\n\n .chat-view-body {\n box-sizing: border-box;\n background-color: var(--chatBg, $fallback--bg);\n display: flex;\n flex-direction: column;\n width: 100%;\n overflow: visible;\n min-height: calc(100vh - var(--navbar-height));\n margin: 0;\n border-radius: 10px 10px 0 0;\n border-radius: var(--panelRadius, 10px) var(--panelRadius, 10px) 0 0;\n\n &::after {\n border-radius: 0;\n }\n }\n\n .message-list {\n padding: 0 0.8em;\n height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: end;\n }\n\n .footer {\n position: sticky;\n bottom: 0;\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n z-index: 1;\n }\n\n .chat-view-heading {\n grid-template-columns: auto minmax(50%, 1fr);\n }\n\n .go-back-button {\n text-align: center;\n line-height: 1;\n height: 100%;\n align-self: start;\n width: var(--__panel-heading-height-inner);\n }\n\n .jump-to-bottom-button {\n width: 2.5em;\n height: 2.5em;\n border-radius: 100%;\n position: absolute;\n right: 1.3em;\n top: -3.2em;\n background-color: $fallback--fg;\n background-color: var(--btn, $fallback--fg);\n display: flex;\n justify-content: center;\n align-items: center;\n box-shadow: 0 1px 1px rgb(0 0 0 / 30%), 0 2px 4px rgb(0 0 0 / 30%);\n z-index: 10;\n transition: 0.35s all;\n transition-timing-function: cubic-bezier(0, 1, 0.5, 1);\n opacity: 0;\n visibility: hidden;\n cursor: pointer;\n\n &.visible {\n opacity: 1;\n visibility: visible;\n }\n\n i {\n font-size: 1em;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n\n .unread-message-count {\n font-size: 0.8em;\n left: 50%;\n margin-top: -1rem;\n padding: 0.1em;\n border-radius: 50px;\n position: absolute;\n }\n\n .chat-loading-error {\n width: 100%;\n display: flex;\n align-items: flex-end;\n height: 100%;\n\n .error {\n width: 100%;\n }\n }\n }\n}\n","\n.follow-card {\n &-content-container {\n flex-shrink: 0;\n display: flex;\n flex-flow: row wrap;\n justify-content: space-between;\n line-height: 1.5em;\n }\n\n &-button {\n margin-top: 0.5em;\n padding: 0 1.5em;\n margin-left: 1em;\n }\n\n &-follow-button {\n margin-top: 0.5em;\n margin-left: auto;\n width: 10em;\n }\n}\n","@import \"../../variables\";\n\n.with-load-more {\n &-footer {\n padding: 10px;\n text-align: center;\n border-top: 1px solid;\n border-top-color: $fallback--border;\n border-top-color: var(--border, $fallback--border);\n\n .error {\n font-size: 1rem;\n }\n\n a {\n cursor: pointer;\n }\n }\n}\n","\n@import \"../../variables\";\n\n.user-profile {\n flex: 2;\n flex-basis: 500px;\n\n // No sticky header on user profile\n --currentPanelStack: 1;\n\n .user-birthday {\n margin: 0 0.75em 0.5em;\n }\n\n .user-profile-fields {\n margin: 0 0.5em;\n\n img {\n object-fit: contain;\n vertical-align: middle;\n max-width: 100%;\n max-height: 400px;\n\n &.emoji {\n width: 18px;\n height: 18px;\n }\n }\n\n .user-profile-field {\n display: flex;\n margin: 0.25em;\n border: 1px solid var(--border, $fallback--border);\n border-radius: $fallback--inputRadius;\n border-radius: var(--inputRadius, $fallback--inputRadius);\n\n .user-profile-field-name {\n flex: 0 1 30%;\n font-weight: 500;\n text-align: right;\n color: var(--lightText);\n min-width: 120px;\n border-right: 1px solid var(--border, $fallback--border);\n }\n\n .user-profile-field-value {\n flex: 1 1 70%;\n color: var(--text);\n margin: 0 0 0 0.25em;\n }\n\n .user-profile-field-name,\n .user-profile-field-value {\n line-height: 1.3;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n padding: 0.5em 1.5em;\n box-sizing: border-box;\n }\n }\n }\n\n .userlist-placeholder {\n display: flex;\n justify-content: center;\n align-items: middle;\n padding: 2em;\n }\n}\n\n.user-profile-placeholder {\n .panel-body {\n display: flex;\n justify-content: center;\n align-items: middle;\n padding: 7em;\n }\n}\n","\n@import \"../../variables\";\n\n.search-result-heading {\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n padding: 0.75rem;\n text-align: center;\n}\n\n@media all and (max-width: 800px) {\n .search-nav-heading {\n .tab-switcher .tabs .tab-wrapper {\n display: block;\n justify-content: center;\n flex: 1 1 auto;\n text-align: center;\n }\n }\n}\n\n.search-result {\n box-sizing: border-box;\n border-bottom: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n}\n\n.search-result-footer {\n border-width: 1px 0 0;\n border-style: solid;\n border-color: var(--border, $fallback--border);\n padding: 10px;\n background-color: $fallback--fg;\n background-color: var(--panel, $fallback--fg);\n}\n\n.search-input-container {\n padding: 0.8rem;\n display: flex;\n justify-content: center;\n\n .search-input {\n width: 100%;\n line-height: 1.125rem;\n font-size: 1rem;\n padding: 0.5rem;\n box-sizing: border-box;\n }\n\n .search-button {\n margin-left: 0.5em;\n }\n}\n\n.loading-icon {\n padding: 1em;\n}\n\n.trend {\n display: flex;\n align-items: center;\n\n .hashtag {\n flex: 1 1 auto;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .count {\n flex: 0 0 auto;\n width: 2rem;\n font-size: 1.5rem;\n line-height: 2.25rem;\n font-weight: 500;\n text-align: center;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n}\n\n.more-statuses-button {\n height: 3.5em;\n line-height: 3.5em;\n}\n\n","\n@import \"../../variables\";\n\n.interface-language-switcher {\n .language-select {\n margin-right: 1em;\n }\n}\n","\n@import \"../../variables\";\n$validations-cRed: #f04124;\n\n.registration-form {\n display: flex;\n flex-direction: column;\n margin: 0.6em;\n\n .container {\n display: flex;\n flex-direction: row;\n\n > * {\n min-width: 0;\n }\n }\n\n .terms-of-service {\n flex: 0 1 50%;\n margin: 0.8em;\n }\n\n .text-fields {\n margin-top: 0.6em;\n flex: 1 0;\n display: flex;\n flex-direction: column;\n }\n\n textarea {\n min-height: 100px;\n resize: vertical;\n }\n\n .form-group {\n display: flex;\n flex-direction: column;\n padding: 0.3em 0;\n line-height: 2;\n margin-bottom: 1em;\n }\n\n .form-group--error {\n animation-name: shakeError;\n animation-duration: 0.6s;\n animation-timing-function: ease-in-out;\n }\n\n .form-group--error .form--label {\n color: $validations-cRed;\n color: var(--cRed, $validations-cRed);\n }\n\n .form-error {\n margin-top: -0.7em;\n text-align: left;\n\n span {\n font-size: 0.85em;\n }\n }\n\n .form-error ul {\n list-style: none;\n padding: 0 0 0 5px;\n margin-top: 0;\n\n li::before {\n content: \"• \";\n }\n }\n\n form textarea {\n line-height: 16px;\n resize: vertical;\n }\n\n .captcha {\n max-width: 350px;\n margin-bottom: 0.4em;\n }\n\n .btn {\n margin-top: 0.6em;\n height: 2em;\n }\n\n .error {\n text-align: center;\n }\n}\n\n@media all and (max-width: 800px) {\n .registration-form .container {\n flex-direction: column-reverse;\n }\n}\n","\n@import \"../../variables\";\n\n.password-reset-form {\n display: flex;\n flex-direction: column;\n align-items: center;\n margin: 0.6em;\n\n .container {\n display: flex;\n flex: 1 0;\n flex-direction: column;\n margin-top: 0.6em;\n max-width: 18rem;\n\n > * {\n min-width: 0;\n }\n }\n\n .form-group {\n display: flex;\n flex-direction: column;\n margin-bottom: 1em;\n padding: 0.3em 0;\n line-height: 1.85em;\n }\n\n .error {\n text-align: center;\n animation-name: shakeError;\n animation-duration: 0.4s;\n animation-timing-function: ease-in-out;\n }\n\n .alert {\n padding: 0.5em;\n margin: 0.3em 0 1em;\n }\n\n .password-reset-required {\n background-color: var(--alertError, $fallback--alertError);\n padding: 10px 0;\n }\n\n .notice-dismissible {\n padding-right: 2rem;\n }\n\n .dismiss {\n cursor: pointer;\n }\n}\n\n","\n.follow-request-card-content-container {\n display: flex;\n flex-flow: row wrap;\n\n button {\n margin-top: 0.5em;\n margin-right: 0.5em;\n flex: 1 1;\n max-width: 12em;\n min-width: 8em;\n\n &:last-child {\n margin-right: 0;\n }\n }\n}\n","\n.tos-content {\n margin: 1em;\n}\n","\n.staff-group {\n padding-left: 1em;\n padding-top: 1em;\n\n .basic-user-card {\n padding-left: 0;\n }\n}\n\n",".mrf-section {\n margin: 1em;\n\n table {\n width: 100%;\n text-align: left;\n padding-left: 10px;\n padding-bottom: 20px;\n\n th,\n td {\n width: 180px;\n max-width: 360px;\n overflow: hidden;\n vertical-align: text-top;\n }\n\n th + th,\n td + td {\n width: auto;\n }\n }\n}\n","\n@import \"../../variables\";\n\n.list-card {\n display: flex;\n}\n\n.list-name {\n flex-grow: 1;\n}\n\n.list-name,\n.button-list-edit {\n margin: 0;\n padding: 1em;\n color: $fallback--link;\n color: var(--link, $fallback--link);\n\n &:hover {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n color: $fallback--link;\n color: var(--selectedMenuText, $fallback--link);\n\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n }\n}\n","\n.Lists {\n .new-list-button {\n padding: 0 0.5em;\n }\n}\n","\n@import \"../../variables\";\n\n.ListsUserSearch {\n .input-wrap {\n display: flex;\n margin: 0.7em 0.5em;\n\n input {\n width: 100%;\n }\n }\n\n .search-icon {\n margin-right: 0.3em;\n }\n}\n\n","\n@import \"src/variables\";\n\n.panel-loading {\n display: flex;\n height: 100%;\n align-items: center;\n justify-content: center;\n font-size: 2em;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n\n .loading-text svg {\n line-height: 0;\n vertical-align: middle;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n}\n","\n@import \"../../variables\";\n\n.ListEdit {\n --panel-body-padding: 0.5em;\n\n height: calc(100vh - var(--navbar-height));\n overflow: hidden;\n display: flex;\n flex-direction: column;\n\n .list-edit-heading {\n grid-template-columns: auto minmax(50%, 1fr);\n }\n\n .panel-body {\n display: flex;\n flex: 1;\n flex-direction: column;\n overflow: hidden;\n }\n\n .list-member-management {\n flex: 1 0 auto;\n }\n\n .search-icon {\n margin-right: 0.3em;\n }\n\n .users-list {\n padding-bottom: 0.7rem;\n overflow-y: auto;\n }\n\n & .search-list,\n & .members-list {\n overflow: hidden;\n flex-direction: column;\n min-height: 0;\n }\n\n .go-back-button {\n text-align: center;\n line-height: 1;\n height: 100%;\n align-self: start;\n width: var(--__panel-heading-height-inner);\n }\n\n .btn {\n margin: 0 0.5em;\n }\n\n .panel-footer {\n grid-template-columns: minmax(10%, 1fr);\n\n .footer-button {\n min-width: 9em;\n }\n }\n}\n","\n.announcement-editor {\n display: flex;\n align-items: stretch;\n flex-direction: column;\n\n .announcement-metadata {\n margin-top: 0.5em;\n }\n\n .post-textarea {\n resize: vertical;\n height: 10em;\n overflow: none;\n box-sizing: content-box;\n }\n}\n","\n@import \"../../variables\";\n\n.announcement {\n border-bottom: 1px solid var(--border, $fallback--border);\n border-radius: 0;\n padding: var(--status-margin, $status-margin);\n\n .heading,\n .body {\n margin-bottom: var(--status-margin, $status-margin);\n }\n\n .footer {\n display: flex;\n flex-direction: column;\n\n .times {\n display: flex;\n flex-direction: column;\n }\n }\n\n .footer .actions {\n display: flex;\n flex-direction: row;\n justify-content: space-evenly;\n\n .btn {\n flex: 1;\n margin: 1em;\n max-width: 10em;\n }\n }\n}\n","\n@import \"../../variables\";\n\n.announcements-page {\n .post-form {\n padding: var(--status-margin, $status-margin);\n\n .heading,\n .body {\n margin-bottom: var(--status-margin, $status-margin);\n }\n\n .post-button {\n min-width: 10em;\n }\n }\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file
diff --git a/priv/static/static/js/7586.628f729b9c8b2e6f4e1f.js b/priv/static/static/js/7586.628f729b9c8b2e6f4e1f.js
new file mode 100644
index 000000000..7755913b5
--- /dev/null
+++ b/priv/static/static/js/7586.628f729b9c8b2e6f4e1f.js
@@ -0,0 +1,2 @@
+(self.webpackChunkpleroma_fe=self.webpackChunkpleroma_fe||[]).push([[7586],{25771:(t,e,n)=>{"use strict";n.d(e,{M:()=>i,i:()=>a});var r=n(57458),o=n.n(r),i=function(t){var e=t.filename,n=void 0===e?"data":e,r=t.getExportedObject;return{exportData:function(){var t=o().encode(JSON.stringify(r(),null,2)),e=document.createElement("a");e.setAttribute("download","".concat(n,".json")),e.setAttribute("href","data:application/json;base64,"+window.btoa(t)),e.style.display="none",document.body.appendChild(e),e.click(),document.body.removeChild(e)}}},a=function(t){var e=t.onImport,n=t.onImportFailure,r=t.validator,o=void 0===r?function(){return!0}:r;return{importData:function(){var t=document.createElement("input");t.setAttribute("type","file"),t.setAttribute("accept",".json"),t.addEventListener("change",(function(t){if(t.target.files[0]){var r=new FileReader;r.onload=function(t){var r=t.target;try{var i=JSON.parse(r.result),a=o(i);!0===a?e(i):n({validationResult:a})}catch(t){n({error:t})}},r.readAsText(t.target.files[0])}})),document.body.appendChild(t),t.click(),document.body.removeChild(t)}}}},57458:(t,e)=>{!function(t){var e,n,r,o=String.fromCharCode;function i(t){for(var e,n,r=[],o=0,i=t.length;o<i;)(e=t.charCodeAt(o++))>=55296&&e<=56319&&o<i?56320==(64512&(n=t.charCodeAt(o++)))?r.push(((1023&e)<<10)+(1023&n)+65536):(r.push(e),o--):r.push(e);return r}function a(t){if(t>=55296&&t<=57343)throw Error("Lone surrogate U+"+t.toString(16).toUpperCase()+" is not a scalar value")}function s(t,e){return o(t>>e&63|128)}function l(t){if(0==(4294967168&t))return o(t);var e="";return 0==(4294965248&t)?e=o(t>>6&31|192):0==(4294901760&t)?(a(t),e=o(t>>12&15|224),e+=s(t,6)):0==(4292870144&t)&&(e=o(t>>18&7|240),e+=s(t,12),e+=s(t,6)),e+o(63&t|128)}function c(){if(r>=n)throw Error("Invalid byte index");var t=255&e[r];if(r++,128==(192&t))return 63&t;throw Error("Invalid continuation byte")}function d(){var t,o;if(r>n)throw Error("Invalid byte index");if(r==n)return!1;if(t=255&e[r],r++,0==(128&t))return t;if(192==(224&t)){if((o=(31&t)<<6|c())>=128)return o;throw Error("Invalid continuation byte")}if(224==(240&t)){if((o=(15&t)<<12|c()<<6|c())>=2048)return a(o),o;throw Error("Invalid continuation byte")}if(240==(248&t)&&(o=(7&t)<<18|c()<<12|c()<<6|c())>=65536&&o<=1114111)return o;throw Error("Invalid UTF-8 detected")}t.version="3.0.0",t.encode=function(t){for(var e=i(t),n=e.length,r=-1,o="";++r<n;)o+=l(e[r]);return o},t.decode=function(t){e=i(t),n=e.length,r=0;for(var a,s=[];!1!==(a=d());)s.push(a);return function(t){for(var e,n=t.length,r=-1,i="";++r<n;)(e=t[r])>65535&&(i+=o((e-=65536)>>>10&1023|55296),e=56320|1023&e),i+=o(e);return i}(s)}}(e)},27586:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>J});var r=n(66252),o=n(3577),i=n(49963),a={class:"settings-modal-panel panel"},s={class:"panel-heading"},l={class:"title"},c=["title"],d=["title"],u={class:"panel-body"},p={class:"panel-footer settings-footer -flexible-height"},f=["title"],m={class:"dropdown-menu"},g=["onClick"],h=["onClick"],b=["onClick"],v={key:1},_={href:"/pleroma/admin/#/login-pleroma",target:"_blank"},w=(0,r._)("span",{id:"unscrolled-content",class:"extra-content"},null,-1),y={key:2,class:"admin-buttons"},k=["disabled"],O=["disabled"],x=n(4942),C=n(29439),j=n(18446),M=n.n(j),$=n(50361),A=n.n($),S=n(48328),D=n(29187),E={class:"async-component-error"};const P={emits:["resetAsyncComponent"],methods:{retry:function(){this.$emit("resetAsyncComponent")}}};var I=n(83744);const z=(0,I.Z)(P,[["render",function(t,e,n,i,a,s){return(0,r.wg)(),(0,r.iD)("div",E,[(0,r._)("div",null,[(0,r._)("h4",null,(0,o.zw)(t.$t("general.generic_error")),1),(0,r._)("p",null,(0,o.zw)(t.$t("general.error_retry")),1),(0,r._)("button",{class:"btn button-default",onClick:e[0]||(e[0]=function(){return s.retry&&s.retry.apply(s,arguments)})},(0,o.zw)(t.$t("general.retry")),1)])])}]]);var N=n(2262);function U(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}const W=function(t,e){var n=function(){return function(){return(0,r.RC)(function(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?U(Object(n),!0).forEach((function(e){(0,x.Z)(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):U(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}({loader:t},e))}},o=(0,N.Um)({c:n()});return{render:function(){return(0,r.h)(o.c(),{onResetAsyncComponent:function(){o.c=n()}})}}};var L=n(84535),T=n(66141),Z=n(9382),F=n(25771),q=n(84131),K=n(5737);function R(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function G(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?R(Object(n),!0).forEach((function(e){(0,x.Z)(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):R(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}Z.vI.add(q.NBC,K.IQi,q.Y9i,q.kwI,q.ptq);const V={data:function(){var t=this;return{dataImporter:(0,F.i)({validator:this.importValidator,onImport:this.onImport,onImportFailure:this.onImportFailure}),dataThemeExporter:(0,F.M)({filename:"pleromafe_settings.full",getExportedObject:function(){return t.generateExport(!0)}}),dataExporter:(0,F.M)({filename:"pleromafe_settings",getExportedObject:function(){return t.generateExport()}})}},components:{Modal:S.Z,Popover:L.default,Checkbox:T.Z,SettingsModalUserContent:W((function(){return Promise.all([n.e(48),n.e(9060),n.e(7962)]).then(n.bind(n,62691))}),{loadingComponent:D.Z,errorComponent:z,delay:0}),SettingsModalAdminContent:W((function(){return Promise.all([n.e(9060),n.e(8859)]).then(n.bind(n,17135))}),{loadingComponent:D.Z,errorComponent:z,delay:0})},methods:{closeModal:function(){this.$store.dispatch("closeSettingsModal")},peekModal:function(){this.$store.dispatch("togglePeekSettingsModal")},importValidator:function(t){if(!Array.isArray(t._pleroma_settings_version))return{messageKey:"settings.file_import_export.invalid_file"};var e=(0,C.Z)(t._pleroma_settings_version,2),n=e[0],r=e[1];return n>1?{messageKey:"settings.file_export_import.errors.file_too_new",messageArgs:{fileMajor:n,feMajor:1}}:n<1?{messageKey:"settings.file_export_import.errors.file_too_old",messageArgs:{fileMajor:n,feMajor:1}}:(r>0&&this.$store.dispatch("pushGlobalNotice",{level:"warning",messageKey:"settings.file_export_import.errors.file_slightly_new"}),!0)},onImportFailure:function(t){t.error?this.$store.dispatch("pushGlobalNotice",{messageKey:"settings.invalid_settings_imported",level:"error"}):this.$store.dispatch("pushGlobalNotice",G(G({},t.validationResult),{},{level:"error"}))},onImport:function(t){t&&this.$store.dispatch("loadSettings",t)},restore:function(){this.dataImporter.importData()},backup:function(){this.dataExporter.exportData()},backupWithTheme:function(){this.dataThemeExporter.exportData()},generateExport:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=this.$store.state.config,n=e;if(!t){var r=new Set(["customTheme","customThemeSource","colors"]);n=Object.fromEntries(Object.entries(n).filter((function(t){var e=(0,C.Z)(t,1)[0];return!r.has(e)})))}var o=A()(n);return o._pleroma_settings_version=[1,0],o},resetAdminDraft:function(){this.$store.commit("resetAdminDraft")},pushAdminDraft:function(){this.$store.dispatch("pushAdminDraft")}},computed:{currentSaveStateNotice:function(){return this.$store.state.interface.settings.currentSaveStateNotice},modalActivated:function(){return"hidden"!==this.$store.state.interface.settingsModalState},modalMode:function(){return this.$store.state.interface.settingsModalMode},modalOpenedOnceUser:function(){return this.$store.state.interface.settingsModalLoadedUser},modalOpenedOnceAdmin:function(){return this.$store.state.interface.settingsModalLoadedAdmin},modalPeeked:function(){return"minimized"===this.$store.state.interface.settingsModalState},expertLevel:{get:function(){return this.$store.state.config.expertLevel>0},set:function(t){this.$store.dispatch("setOption",{name:"expertLevel",value:t?1:0})}},adminDraftAny:function(){return!M()(this.$store.state.adminSettings.config,this.$store.state.adminSettings.draft)}}},J=(0,I.Z)(V,[["render",function(t,e,n,x,C,j){var M=(0,r.up)("FAIcon"),$=(0,r.up)("SettingsModalUserContent"),A=(0,r.up)("SettingsModalAdminContent"),S=(0,r.up)("Popover"),D=(0,r.up)("Checkbox"),E=(0,r.up)("i18n-t"),P=(0,r.up)("Modal");return(0,r.wg)(),(0,r.j4)(P,{"is-open":t.modalActivated,class:(0,o.C_)(["settings-modal",{peek:t.modalPeeked}]),"no-background":t.modalPeeked},{default:(0,r.w5)((function(){return[(0,r._)("div",a,[(0,r._)("div",s,[(0,r._)("span",l,(0,o.zw)("user"===t.modalMode?t.$t("settings.settings"):t.$t("admin_dash.window_title")),1),(0,r.Wm)(i.uT,{name:"fade"},{default:(0,r.w5)((function(){return[t.currentSaveStateNotice?((0,r.wg)(),(0,r.iD)("div",{key:0,class:(0,o.C_)(["alert",{transparent:!t.currentSaveStateNotice.error,error:t.currentSaveStateNotice.error}]),onClick:e[0]||(e[0]=(0,i.iM)((function(){}),["prevent"]))},(0,o.zw)(t.currentSaveStateNotice.error?t.$t("settings.saving_err"):t.$t("settings.saving_ok")),3)):(0,r.kq)("",!0)]})),_:1}),(0,r._)("button",{class:"btn button-default",title:t.$t("general.peek"),onClick:e[1]||(e[1]=function(){return t.peekModal&&t.peekModal.apply(t,arguments)})},[(0,r.Wm)(M,{icon:["far","window-minimize"],"fixed-width":""})],8,c),(0,r._)("button",{class:"btn button-default",title:t.$t("general.close"),onClick:e[2]||(e[2]=function(){return t.closeModal&&t.closeModal.apply(t,arguments)})},[(0,r.Wm)(M,{icon:"times","fixed-width":""})],8,d)]),(0,r._)("div",u,["user"===t.modalMode&&t.modalOpenedOnceUser?((0,r.wg)(),(0,r.j4)($,{key:0})):(0,r.kq)("",!0),"admin"===t.modalMode&&t.modalOpenedOnceAdmin?((0,r.wg)(),(0,r.j4)(A,{key:1})):(0,r.kq)("",!0)]),(0,r._)("div",p,["user"===t.modalMode?((0,r.wg)(),(0,r.j4)(S,{key:0,class:"export",trigger:"click",placement:"top",offset:{y:5,x:5},"bound-to":{x:"container"},"remove-padding":""},{trigger:(0,r.w5)((function(){return[(0,r._)("button",{class:"btn button-default",title:t.$t("general.close")},[(0,r._)("span",null,(0,o.zw)(t.$t("settings.file_export_import.backup_restore")),1),(0,r.Uk)(" "+(0,o.zw)(" ")+" "),(0,r.Wm)(M,{icon:"chevron-down"})],8,f)]})),content:(0,r.w5)((function(n){var a=n.close;return[(0,r._)("div",m,[(0,r._)("button",{class:"button-default dropdown-item dropdown-item-icon",onClick:[e[3]||(e[3]=(0,i.iM)((function(){return t.backup&&t.backup.apply(t,arguments)}),["prevent"])),a]},[(0,r.Wm)(M,{icon:"file-download","fixed-width":""}),(0,r._)("span",null,(0,o.zw)(t.$t("settings.file_export_import.backup_settings")),1)],8,g),(0,r._)("button",{class:"button-default dropdown-item dropdown-item-icon",onClick:[e[4]||(e[4]=(0,i.iM)((function(){return t.backupWithTheme&&t.backupWithTheme.apply(t,arguments)}),["prevent"])),a]},[(0,r.Wm)(M,{icon:"file-download","fixed-width":""}),(0,r._)("span",null,(0,o.zw)(t.$t("settings.file_export_import.backup_settings_theme")),1)],8,h),(0,r._)("button",{class:"button-default dropdown-item dropdown-item-icon",onClick:[e[5]||(e[5]=(0,i.iM)((function(){return t.restore&&t.restore.apply(t,arguments)}),["prevent"])),a]},[(0,r.Wm)(M,{icon:"file-upload","fixed-width":""}),(0,r._)("span",null,(0,o.zw)(t.$t("settings.file_export_import.restore_settings")),1)],8,b)])]})),_:1})):(0,r.kq)("",!0),(0,r.Wm)(D,{"model-value":!!t.expertLevel,"onUpdate:modelValue":e[6]||(e[6]=function(e){return t.expertLevel=Number(e)})},{default:(0,r.w5)((function(){return[(0,r.Uk)((0,o.zw)(t.$t("settings.expert_mode")),1)]})),_:1},8,["model-value"]),"admin"===t.modalMode?((0,r.wg)(),(0,r.iD)("span",v,[(0,r.Wm)(E,{keypath:"admin_dash.wip_notice"},{adminFeLink:(0,r.w5)((function(){return[(0,r._)("a",_,(0,o.zw)(t.$t("admin_dash.old_ui_link")),1)]})),_:1})])):(0,r.kq)("",!0),w,"admin"===t.modalMode?((0,r.wg)(),(0,r.iD)("span",y,[(0,r._)("button",{class:"button-default btn",disabled:!t.adminDraftAny,onClick:e[7]||(e[7]=function(){return t.resetAdminDraft&&t.resetAdminDraft.apply(t,arguments)})},(0,o.zw)(t.$t("admin_dash.reset_all")),9,k),(0,r.Uk)(" "+(0,o.zw)(" ")+" "),(0,r._)("button",{class:"button-default btn",disabled:!t.adminDraftAny,onClick:e[8]||(e[8]=function(){return t.pushAdminDraft&&t.pushAdminDraft.apply(t,arguments)})},(0,o.zw)(t.$t("admin_dash.commit_all")),9,O)])):(0,r.kq)("",!0)])])]})),_:1},8,["is-open","class","no-background"])}]])}}]);
+//# sourceMappingURL=7586.628f729b9c8b2e6f4e1f.js.map \ No newline at end of file
diff --git a/priv/static/static/js/7586.981b2305a0019f6042a5.js.map b/priv/static/static/js/7586.628f729b9c8b2e6f4e1f.js.map
index 8795927ac..d76dd91ac 100644
--- a/priv/static/static/js/7586.981b2305a0019f6042a5.js.map
+++ b/priv/static/static/js/7586.628f729b9c8b2e6f4e1f.js.map
@@ -1 +1 @@
-{"version":3,"file":"static/js/7586.981b2305a0019f6042a5.js","mappings":"0JAEaA,EAAc,SAAHC,GAAA,IAAAC,EAAAD,EACtBE,SAAAA,OAAQ,IAAAD,EAAG,OAAMA,EACjBE,EAAiBH,EAAjBG,kBAAiB,MACZ,CACLC,WAAU,WACR,IAAMC,EAAcC,IAAAA,OAAYC,KAAKC,UAAUL,IAAqB,KAAM,IAGpEM,EAAIC,SAASC,cAAc,KACjCF,EAAEG,aAAa,WAAY,GAAFC,OAAKX,EAAQ,UACtCO,EAAEG,aAAa,OAAQ,gCAAkCE,OAAOC,KAAKV,IACrEI,EAAEO,MAAMC,QAAU,OAElBP,SAASQ,KAAKC,YAAYV,GAC1BA,EAAEW,QACFV,SAASQ,KAAKG,YAAYZ,EAC5B,EACD,EAEYa,EAAc,SAAHC,GAAA,IACtBC,EAAQD,EAARC,SACAC,EAAeF,EAAfE,gBAAeC,EAAAH,EACfI,UAAAA,OAAS,IAAAD,EAAG,kBAAM,CAAI,EAAAA,EAAA,MACjB,CACLE,WAAU,WACR,IAAMC,EAAanB,SAASC,cAAc,SAC1CkB,EAAWjB,aAAa,OAAQ,QAChCiB,EAAWjB,aAAa,SAAU,SAElCiB,EAAWC,iBAAiB,UAAU,SAAAC,GACpC,GAAIA,EAAMC,OAAOC,MAAM,GAAI,CAEzB,IAAMC,EAAS,IAAIC,WACnBD,EAAOE,OAAS,SAAAC,GAAgB,IAAbL,EAAMK,EAANL,OACjB,IACE,IAAMM,EAAS/B,KAAKgC,MAAMP,EAAOQ,QAC3BC,EAAmBd,EAAUW,IACV,IAArBG,EACFjB,EAASc,GAETb,EAAgB,CAAEgB,iBAAAA,GAItB,CAFE,MAAOC,GACPjB,EAAgB,CAAEiB,MAAAA,GACpB,CACF,EACAR,EAAOS,WAAWZ,EAAMC,OAAOC,MAAM,GACvC,CACF,IAEAvB,SAASQ,KAAKC,YAAYU,GAC1BA,EAAWT,QACXV,SAASQ,KAAKG,YAAYQ,EAC5B,EACD,C,iBCvDC,SAASe,GAEV,IAiLIC,EACAC,EACAC,EAnLAC,EAAqBC,OAAOC,aAGhC,SAASC,EAAWC,GAMnB,IALA,IAGIC,EACAC,EAJAC,EAAS,GACTC,EAAU,EACVC,EAASL,EAAOK,OAGbD,EAAUC,IAChBJ,EAAQD,EAAOM,WAAWF,OACb,OAAUH,GAAS,OAAUG,EAAUC,EAG3B,QAAX,OADbH,EAAQF,EAAOM,WAAWF,OAEzBD,EAAOI,OAAe,KAARN,IAAkB,KAAe,KAARC,GAAiB,QAIxDC,EAAOI,KAAKN,GACZG,KAGDD,EAAOI,KAAKN,GAGd,OAAOE,CACR,CAoBA,SAASK,EAAiBC,GACzB,GAAIA,GAAa,OAAUA,GAAa,MACvC,MAAMC,MACL,oBAAsBD,EAAUE,SAAS,IAAIC,cAC7C,yBAGH,CAGA,SAASC,EAAWJ,EAAWK,GAC9B,OAAOlB,EAAqBa,GAAaK,EAAS,GAAQ,IAC3D,CAEA,SAASC,EAAgBN,GACxB,GAAgC,IAAf,WAAZA,GACJ,OAAOb,EAAmBa,GAE3B,IAAIO,EAAS,GAeb,OAdgC,IAAf,WAAZP,GACJO,EAASpB,EAAqBa,GAAa,EAAK,GAAQ,KAEpB,IAAf,WAAZA,IACTD,EAAiBC,GACjBO,EAASpB,EAAqBa,GAAa,GAAM,GAAQ,KACzDO,GAAUH,EAAWJ,EAAW,IAEI,IAAf,WAAZA,KACTO,EAASpB,EAAqBa,GAAa,GAAM,EAAQ,KACzDO,GAAUH,EAAWJ,EAAW,IAChCO,GAAUH,EAAWJ,EAAW,IAEjCO,EAAUpB,EAAgC,GAAZa,EAAoB,IAEnD,CAiBA,SAASQ,IACR,GAAItB,GAAaD,EAChB,MAAMgB,MAAM,sBAGb,IAAIQ,EAA0C,IAAvBzB,EAAUE,GAGjC,GAFAA,IAEiC,MAAT,IAAnBuB,GACJ,OAA0B,GAAnBA,EAIR,MAAMR,MAAM,4BACb,CAEA,SAASS,IACR,IAAIC,EAIAX,EAEJ,GAAId,EAAYD,EACf,MAAMgB,MAAM,sBAGb,GAAIf,GAAaD,EAChB,OAAO,EAQR,GAJA0B,EAA+B,IAAvB3B,EAAUE,GAClBA,IAGsB,IAAT,IAARyB,GACJ,OAAOA,EAIR,GAAsB,MAAT,IAARA,GAAuB,CAG3B,IADAX,GAAsB,GAARW,IAAiB,EADvBH,MAES,IAChB,OAAOR,EAEP,MAAMC,MAAM,4BAEd,CAGA,GAAsB,MAAT,IAARU,GAAuB,CAI3B,IADAX,GAAsB,GAARW,IAAiB,GAFvBH,KAEuC,EADvCA,MAES,KAEhB,OADAT,EAAiBC,GACVA,EAEP,MAAMC,MAAM,4BAEd,CAGA,GAAsB,MAAT,IAARU,KAIJX,GAAsB,EAARW,IAAiB,GAHvBH,KAGyC,GAFzCA,KAGG,EAFHA,MAGS,OAAYR,GAAa,QACzC,OAAOA,EAIT,MAAMC,MAAM,yBACb,CAmBAlB,EAAK6B,QAAU,QACf7B,EAAK8B,OAhHL,SAAoBtB,GAMnB,IALA,IAAIuB,EAAaxB,EAAWC,GACxBK,EAASkB,EAAWlB,OACpBmB,GAAS,EAETC,EAAa,KACRD,EAAQnB,GAEhBoB,GAAcV,EADFQ,EAAWC,IAGxB,OAAOC,CACR,EAsGAjC,EAAKkC,OAhBL,SAAoBD,GACnBhC,EAAYM,EAAW0B,GACvB/B,EAAYD,EAAUY,OACtBV,EAAY,EAGZ,IAFA,IACIgC,EADAJ,EAAa,IAEiB,KAA1BI,EAAMR,MACbI,EAAWhB,KAAKoB,GAEjB,OA/JD,SAAoBC,GAKnB,IAJA,IAEI3B,EAFAI,EAASuB,EAAMvB,OACfmB,GAAS,EAETrB,EAAS,KACJqB,EAAQnB,IAChBJ,EAAQ2B,EAAMJ,IACF,QAEXrB,GAAUP,GADVK,GAAS,SAC8B,GAAK,KAAQ,OACpDA,EAAQ,MAAiB,KAARA,GAElBE,GAAUP,EAAmBK,GAE9B,OAAOE,CACR,CAgJQ0B,CAAWN,EACnB,CAQD,CAxMC,CAwMmDO,E,oGClM3CC,MAAM,8B,GACJA,MAAM,iB,GACHA,MAAM,S,2BAkCTA,MAAM,c,GAINA,MAAM,iD,eAuBAA,MAAM,iB,uDA6CPC,KAAK,iCACLpD,OAAO,U,GAOfqD,EAAAA,EAAAA,GAGE,QAFAC,GAAG,qBACHH,MAAM,iB,kBAINA,MAAM,iB,oHChITA,MAAM,yBAmBb,SACEI,MAAO,CAAC,uBACRC,QAAS,CACPC,MAAI,WACFC,KAAKC,MAAM,sBACb,I,eClBJ,MAEA,GAFiC,OAAgB,EAAQ,CAAC,CAAC,S,wCDNzDC,EAAAA,EAAAA,IAeM,MAfNC,EAeM,EAdJR,EAAAA,EAAAA,GAaM,aAZJA,EAAAA,EAAAA,GAEK,WAAAS,EAAAA,EAAAA,IADAC,EAAAC,GAAG,0BAAD,IAEPX,EAAAA,EAAAA,GAEI,UAAAS,EAAAA,EAAAA,IADCC,EAAAC,GAAG,wBAAD,IAEPX,EAAAA,EAAAA,GAKS,UAJPF,MAAM,qBACLc,QAAKC,EAAA,KAAAA,EAAA,qBAAEC,EAAAV,OAAAU,EAAAV,MAAAW,MAAAD,EAAAE,UAAK,K,QAEVN,EAAAC,GAAG,kBAAD,M,iPEgBb,QApBA,SAAsCM,EAAgBC,GACpD,IAAMC,EAAwB,WAAH,OAAS,kBAAMC,EAAAA,EAAAA,I,qWAAoBC,CAAC,CAC7DC,OAAQL,GACLC,GACH,GAEIK,GAAUC,EAAAA,EAAAA,IAAgB,CAAEC,EAAGN,MAErC,MAAO,CACLO,OAAM,WAEJ,OAAOC,EAAAA,EAAAA,GAAEJ,EAAQE,IAAK,CACpBG,sBAAqB,WACnBL,EAAQE,EAAIN,GACd,GAEJ,EAEJ,E,yoBCFAU,EAAAA,GAAAA,IACEC,EAAAA,IACAC,EAAAA,IACAC,EAAAA,IACAC,EAAAA,IACAC,EAAAA,KA2KF,QAxKsB,CACpBC,KAAI,WAAI,IAAAC,EAAA,KACN,MAAO,CACLC,cAAcpG,EAAAA,EAAAA,GAAY,CACxBK,UAAW+D,KAAKiC,gBAChBnG,SAAUkE,KAAKlE,SACfC,gBAAiBiE,KAAKjE,kBAExBmG,mBAAmB7H,EAAAA,EAAAA,GAAY,CAC7BG,SAAU,0BACVC,kBAAmB,kBAAMsH,EAAKI,gBAAe,EAAK,IAEpDC,cAAc/H,EAAAA,EAAAA,GAAY,CACxBG,SAAU,qBACVC,kBAAmB,kBAAMsH,EAAKI,gBAAgB,IAGpD,EACAE,WAAY,CACVC,MAAAA,EAAAA,EACAC,QAAAA,EAAAA,QACAC,SAAAA,EAAAA,EACAC,yBAA0BC,GACxB,kBAAM,gEAA2C,GACjD,CACEC,iBAAkBC,EAAAA,EAClBC,eAAgBC,EAChBC,MAAO,IAGXC,0BAA2BN,GACzB,kBAAM,uDAA4C,GAClD,CACEC,iBAAkBC,EAAAA,EAClBC,eAAgBC,EAChBC,MAAO,KAIbjD,QAAS,CACPmD,WAAU,WACRjD,KAAKkD,OAAOC,SAAS,qBACvB,EACAC,UAAS,WACPpD,KAAKkD,OAAOC,SAAS,0BACvB,EACAlB,gBAAe,SAAEH,GACf,IAAKuB,MAAMC,QAAQxB,EAAKyB,2BACtB,MAAO,CACLC,WAAY,4CAIhB,IAAAC,GAAAC,EAAAA,EAAAA,GAAuB5B,EAAKyB,0BAAyB,GAA9CI,EAAKF,EAAA,GAAEG,EAAKH,EAAA,GAEnB,OAAIE,EAlE+B,EAmE1B,CACLH,WAAY,kDACZK,YAAa,CACXC,UAAWH,EACXI,QAvE6B,IA4E/BJ,EA5E+B,EA6E1B,CACLH,WAAY,kDACZK,YAAa,CACXC,UAAWH,EACXI,QAjF6B,KAsF/BH,EArF+B,GAsFjC5D,KAAKkD,OAAOC,SAAS,mBAAoB,CACvCa,MAAO,UACPR,WAAY,0DAIT,EACT,EACAzH,gBAAe,SAAEe,GACXA,EAAOE,MACTgD,KAAKkD,OAAOC,SAAS,mBAAoB,CAAEK,WAAY,qCAAsCQ,MAAO,UAEpGhE,KAAKkD,OAAOC,SAAS,mBAAkBnC,EAAAA,EAAA,GAAOlE,EAAOC,kBAAgB,IAAEiH,MAAO,UAElF,EACAlI,SAAQ,SAAEgG,GACJA,GAAQ9B,KAAKkD,OAAOC,SAAS,eAAgBrB,EACnD,EACAmC,QAAO,WACLjE,KAAKgC,aAAa9F,YACpB,EACAgI,OAAM,WACJlE,KAAKoC,aAAa1H,YACpB,EACAyJ,gBAAe,WACbnE,KAAKkC,kBAAkBxH,YACzB,EACAyH,eAAc,WAAiB,IAAfiC,EAAKzD,UAAA5C,OAAA,QAAAsG,IAAA1D,UAAA,IAAAA,UAAA,GACX2D,EAAWtE,KAAKkD,OAAOqB,MAAvBD,OACJE,EAASF,EACb,IAAKF,EAAO,CACV,IAAMK,EAAa,IAAIC,IAAI,CACzB,cACA,oBACA,WAEFF,EAASG,OAAOC,YACdD,OACGE,QAAQL,GACRM,QAAO,SAAAxK,GAAA,IAAEyK,GAAFrB,EAAAA,EAAAA,GAAApJ,EAAA,GAAK,UAAOmK,EAAWO,IAAID,EAAI,IAE7C,CACA,IAAME,EAAQC,IAAUV,GAKxB,OAJAS,EAAM1B,0BAA4B,CAlIC,EACA,GAqI5B0B,CACT,EACAE,gBAAe,WACbnF,KAAKkD,OAAOkC,OAAO,kBACrB,EACAC,eAAc,WACZrF,KAAKkD,OAAOC,SAAS,iBACvB,GAEFmC,SAAU,CACRC,uBAAsB,WACpB,OAAOvF,KAAKkD,OAAOqB,MAAK,UAAWiB,SAASD,sBAC9C,EACAE,eAAc,WACZ,MAA0D,WAAnDzF,KAAKkD,OAAOqB,MAAK,UAAWmB,kBACrC,EACAC,UAAS,WACP,OAAO3F,KAAKkD,OAAOqB,MAAK,UAAWqB,iBACrC,EACAC,oBAAmB,WACjB,OAAO7F,KAAKkD,OAAOqB,MAAK,UAAWuB,uBACrC,EACAC,qBAAoB,WAClB,OAAO/F,KAAKkD,OAAOqB,MAAK,UAAWyB,wBACrC,EACAC,YAAW,WACT,MAA0D,cAAnDjG,KAAKkD,OAAOqB,MAAK,UAAWmB,kBACrC,EACAQ,YAAa,CACXC,IAAG,WACD,OAAOnG,KAAKkD,OAAOqB,MAAMD,OAAO4B,YAAc,CAChD,EACAE,IAAG,SAAEzI,GACHqC,KAAKkD,OAAOC,SAAS,YAAa,CAAEkD,KAAM,cAAe1I,MAAOA,EAAQ,EAAI,GAC9E,GAEF2I,cAAa,WACX,OAAQC,IACNvG,KAAKkD,OAAOqB,MAAMiC,cAAclC,OAChCtE,KAAKkD,OAAOqB,MAAMiC,cAAcC,MAEpC,IC5LJ,GAFiC,OAAgB,EAAQ,CAAC,CAAC,S,sOLNzDC,EAAAA,EAAAA,IAoJQC,EAAA,CAnJL,UAAStG,EAAAoF,eACVhG,OAAKmH,EAAAA,EAAAA,IAAA,CAAC,iBAAgB,CAAAC,KACNxG,EAAA4F,eACf,gBAAe5F,EAAA4F,a,mBAEhB,iBA6IM,EA7INtG,EAAAA,EAAAA,GA6IM,MA7INQ,EA6IM,EA5IJR,EAAAA,EAAAA,GAkCM,MAlCNmH,EAkCM,EAjCJnH,EAAAA,EAAAA,GAEO,OAFPoH,GAEO3G,EAAAA,EAAAA,IADY,SAAdC,EAAAsF,UAAuBtF,EAAAC,GAAG,qBAAuBD,EAAAC,GAAG,4BAAD,IAExD0G,EAAAA,EAAAA,IASaC,EAAAA,GAAA,CATDZ,KAAK,QAAM,C,kBACrB,iBAOM,CANEhG,EAAAkF,yBAAsB,WAD9BrF,EAAAA,EAAAA,IAOM,O,MALJT,OAAKmH,EAAAA,EAAAA,IAAA,CAAC,QAAO,CAAAM,aACW7G,EAAAkF,uBAAuBvI,MAAKA,MAASqD,EAAAkF,uBAAuBvI,SACnFuD,QAAKC,EAAA,KAAAA,EAAA,IAAA2G,EAAAA,EAAAA,KAAN,cAAc,gB,QAEX9G,EAAAkF,uBAAuBvI,MAAQqD,EAAAC,GAAG,uBAAyBD,EAAAC,GAAG,uBAAD,oB,WAGpEX,EAAAA,EAAAA,GASS,UARPF,MAAM,qBACL2H,MAAO/G,EAAAC,GAAG,gBACVC,QAAKC,EAAA,KAAAA,EAAA,qBAAEH,EAAA+C,WAAA/C,EAAA+C,UAAA1C,MAAAL,EAAAM,UAAS,I,EAEjBqG,EAAAA,EAAAA,IAGEK,EAAA,CAFCC,KAAM,CAAC,MAAO,mBACf,oB,MAGJ3H,EAAAA,EAAAA,GASS,UARPF,MAAM,qBACL2H,MAAO/G,EAAAC,GAAG,iBACVC,QAAKC,EAAA,KAAAA,EAAA,qBAAEH,EAAA4C,YAAA5C,EAAA4C,WAAAvC,MAAAL,EAAAM,UAAU,I,EAElBqG,EAAAA,EAAAA,IAGEK,EAAA,CAFAC,KAAK,QACL,oB,QAIN3H,EAAAA,EAAAA,GAGM,MAHN4H,EAGM,CAF0C,SAAdlH,EAAAsF,WAAwBtF,EAAAwF,sBAAmB,WAA3Ea,EAAAA,EAAAA,IAA+Ec,EAAA,CAAAzC,IAAA,qBAChC,UAAd1E,EAAAsF,WAAyBtF,EAAA0F,uBAAoB,WAA9EW,EAAAA,EAAAA,IAAkFe,EAAA,CAAA1C,IAAA,wBAEpFpF,EAAAA,EAAAA,GAoGM,MApGN+H,EAoGM,CAlGkB,SAAdrH,EAAAsF,YAAS,WADjBe,EAAAA,EAAAA,IAuDUiB,EAAA,C,MArDRlI,MAAM,SACNmI,QAAQ,QACRC,UAAU,MACTC,OAAQ,CAAAC,EAAA,EAAAC,EAAA,GACR,WAAU,CAAAA,EAAA,aACX,qB,CAEWJ,SAAOK,EAAAA,EAAAA,KAChB,iBASS,EATTtI,EAAAA,EAAAA,GASS,UARPF,MAAM,qBACL2H,MAAO/G,EAAAC,GAAG,kB,EAEXX,EAAAA,EAAAA,GAAmE,aAAAS,EAAAA,EAAAA,IAA1DC,EAAAC,GAAG,+CAAD,YAAwD,KACnEF,EAAAA,EAAAA,IAAG,KAAM,MACT4G,EAAAA,EAAAA,IAEEK,EAAA,CADAC,KAAK,kBAAc,K,IAIdY,SAAOD,EAAAA,EAAAA,KAChB,SAAA3N,GAAA,IADmB6N,EAAK7N,EAAL6N,MAAK,QACxBxI,EAAAA,EAAAA,GA+BM,MA/BNyI,EA+BM,EA9BJzI,EAAAA,EAAAA,GASS,UARPF,MAAM,kDACLc,QAAK,kC,OAAUF,EAAA6D,QAAA7D,EAAA6D,OAAAxD,MAAAL,EAAAM,UAAM,iBACdwH,I,EAERnB,EAAAA,EAAAA,IAGEK,EAAA,CAFAC,KAAK,gBACL,oBACA3H,EAAAA,EAAAA,GAAoE,aAAAS,EAAAA,EAAAA,IAA3DC,EAAAC,GAAG,gDAAD,UAEfX,EAAAA,EAAAA,GASS,UARPF,MAAM,kDACLc,QAAK,kC,OAAUF,EAAA8D,iBAAA9D,EAAA8D,gBAAAzD,MAAAL,EAAAM,UAAe,iBACvBwH,I,EAERnB,EAAAA,EAAAA,IAGEK,EAAA,CAFAC,KAAK,gBACL,oBACA3H,EAAAA,EAAAA,GAA0E,aAAAS,EAAAA,EAAAA,IAAjEC,EAAAC,GAAG,sDAAD,UAEfX,EAAAA,EAAAA,GASS,UARPF,MAAM,kDACLc,QAAK,kC,OAAUF,EAAA4D,SAAA5D,EAAA4D,QAAAvD,MAAAL,EAAAM,UAAO,iBACfwH,I,EAERnB,EAAAA,EAAAA,IAGEK,EAAA,CAFAC,KAAK,cACL,oBACA3H,EAAAA,EAAAA,GAAqE,aAAAS,EAAAA,EAAAA,IAA5DC,EAAAC,GAAG,iDAAD,W,4BAMrB0G,EAAAA,EAAAA,IAKWqB,EAAA,CAJR,gBAAehI,EAAA6F,YACf,sBAAiB1F,EAAA,KAAAA,EAAA,YAAA8H,GAAA,OAAEjI,EAAA6F,YAAcqC,OAAOD,EAAM,I,mBAE/C,iBAAgC,mBAA7BjI,EAAAC,GAAG,yBAAD,G,4BAEmB,UAAdD,EAAAsF,YAAS,WAArBzF,EAAAA,EAAAA,IAWO,OAAAsI,EAAA,EAVLxB,EAAAA,EAAAA,IASSyB,EAAA,CATDC,QAAQ,yBAAuB,CAC1BC,aAAWV,EAAAA,EAAAA,KACpB,iBAKI,EALJtI,EAAAA,EAAAA,GAKI,IALJiJ,GAKIxI,EAAAA,EAAAA,IADCC,EAAAC,GAAG,2BAAD,G,6BAKbuI,EAKsB,UAAdxI,EAAAsF,YAAS,WADjBzF,EAAAA,EAAAA,IAmBO,OAnBP4I,EAmBO,EAfLnJ,EAAAA,EAAAA,GAMS,UALPF,MAAM,qBACLsJ,UAAW1I,EAAAiG,cACX/F,QAAKC,EAAA,KAAAA,EAAA,qBAAEH,EAAA8E,iBAAA9E,EAAA8E,gBAAAzE,MAAAL,EAAAM,UAAe,K,QAEpBN,EAAAC,GAAG,yBAAD,EAAA0I,IAAA,QACE,KACT5I,EAAAA,EAAAA,IAAG,KAAM,MACTT,EAAAA,EAAAA,GAMS,UALPF,MAAM,qBACLsJ,UAAW1I,EAAAiG,cACX/F,QAAKC,EAAA,KAAAA,EAAA,qBAAEH,EAAAgF,gBAAAhF,EAAAgF,eAAA3E,MAAAL,EAAAM,UAAc,K,QAEnBN,EAAAC,GAAG,0BAAD,EAAA2I,OAAA,mB","sources":["webpack://pleroma_fe/./src/services/export_import/export_import.js","webpack://pleroma_fe/./node_modules/utf8/utf8.js","webpack://pleroma_fe/./src/components/settings_modal/settings_modal.vue","webpack://pleroma_fe/./src/components/async_component_error/async_component_error.vue","webpack://pleroma_fe/./src/components/async_component_error/async_component_error.vue?c151","webpack://pleroma_fe/./src/services/resettable_async_component.js","webpack://pleroma_fe/./src/components/settings_modal/settings_modal.js","webpack://pleroma_fe/./src/components/settings_modal/settings_modal.vue?2a2f"],"sourcesContent":["import utf8 from 'utf8'\n\nexport const newExporter = ({\n filename = 'data',\n getExportedObject\n}) => ({\n exportData () {\n const stringified = utf8.encode(JSON.stringify(getExportedObject(), 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', `${filename}.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})\n\nexport const newImporter = ({\n onImport,\n onImportFailure,\n validator = () => true\n}) => ({\n importData () {\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 validationResult = validator(parsed)\n if (validationResult === true) {\n onImport(parsed)\n } else {\n onImportFailure({ validationResult })\n }\n } catch (error) {\n onImportFailure({ error })\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","/*! https://mths.be/utf8js v3.0.0 by @mathias */\n;(function(root) {\n\n\tvar stringFromCharCode = String.fromCharCode;\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2decode(string) {\n\t\tvar output = [];\n\t\tvar counter = 0;\n\t\tvar length = string.length;\n\t\tvar value;\n\t\tvar extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2encode(array) {\n\t\tvar length = array.length;\n\t\tvar index = -1;\n\t\tvar value;\n\t\tvar output = '';\n\t\twhile (++index < length) {\n\t\t\tvalue = array[index];\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t}\n\t\treturn output;\n\t}\n\n\tfunction checkScalarValue(codePoint) {\n\t\tif (codePoint >= 0xD800 && codePoint <= 0xDFFF) {\n\t\t\tthrow Error(\n\t\t\t\t'Lone surrogate U+' + codePoint.toString(16).toUpperCase() +\n\t\t\t\t' is not a scalar value'\n\t\t\t);\n\t\t}\n\t}\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction createByte(codePoint, shift) {\n\t\treturn stringFromCharCode(((codePoint >> shift) & 0x3F) | 0x80);\n\t}\n\n\tfunction encodeCodePoint(codePoint) {\n\t\tif ((codePoint & 0xFFFFFF80) == 0) { // 1-byte sequence\n\t\t\treturn stringFromCharCode(codePoint);\n\t\t}\n\t\tvar symbol = '';\n\t\tif ((codePoint & 0xFFFFF800) == 0) { // 2-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 6) & 0x1F) | 0xC0);\n\t\t}\n\t\telse if ((codePoint & 0xFFFF0000) == 0) { // 3-byte sequence\n\t\t\tcheckScalarValue(codePoint);\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 12) & 0x0F) | 0xE0);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\telse if ((codePoint & 0xFFE00000) == 0) { // 4-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 18) & 0x07) | 0xF0);\n\t\t\tsymbol += createByte(codePoint, 12);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\tsymbol += stringFromCharCode((codePoint & 0x3F) | 0x80);\n\t\treturn symbol;\n\t}\n\n\tfunction utf8encode(string) {\n\t\tvar codePoints = ucs2decode(string);\n\t\tvar length = codePoints.length;\n\t\tvar index = -1;\n\t\tvar codePoint;\n\t\tvar byteString = '';\n\t\twhile (++index < length) {\n\t\t\tcodePoint = codePoints[index];\n\t\t\tbyteString += encodeCodePoint(codePoint);\n\t\t}\n\t\treturn byteString;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction readContinuationByte() {\n\t\tif (byteIndex >= byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tvar continuationByte = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\tif ((continuationByte & 0xC0) == 0x80) {\n\t\t\treturn continuationByte & 0x3F;\n\t\t}\n\n\t\t// If we end up here, it’s not a continuation byte\n\t\tthrow Error('Invalid continuation byte');\n\t}\n\n\tfunction decodeSymbol() {\n\t\tvar byte1;\n\t\tvar byte2;\n\t\tvar byte3;\n\t\tvar byte4;\n\t\tvar codePoint;\n\n\t\tif (byteIndex > byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tif (byteIndex == byteCount) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Read first byte\n\t\tbyte1 = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\t// 1-byte sequence (no continuation bytes)\n\t\tif ((byte1 & 0x80) == 0) {\n\t\t\treturn byte1;\n\t\t}\n\n\t\t// 2-byte sequence\n\t\tif ((byte1 & 0xE0) == 0xC0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x1F) << 6) | byte2;\n\t\t\tif (codePoint >= 0x80) {\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 3-byte sequence (may include unpaired surrogates)\n\t\tif ((byte1 & 0xF0) == 0xE0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x0F) << 12) | (byte2 << 6) | byte3;\n\t\t\tif (codePoint >= 0x0800) {\n\t\t\t\tcheckScalarValue(codePoint);\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 4-byte sequence\n\t\tif ((byte1 & 0xF8) == 0xF0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tbyte4 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x07) << 0x12) | (byte2 << 0x0C) |\n\t\t\t\t(byte3 << 0x06) | byte4;\n\t\t\tif (codePoint >= 0x010000 && codePoint <= 0x10FFFF) {\n\t\t\t\treturn codePoint;\n\t\t\t}\n\t\t}\n\n\t\tthrow Error('Invalid UTF-8 detected');\n\t}\n\n\tvar byteArray;\n\tvar byteCount;\n\tvar byteIndex;\n\tfunction utf8decode(byteString) {\n\t\tbyteArray = ucs2decode(byteString);\n\t\tbyteCount = byteArray.length;\n\t\tbyteIndex = 0;\n\t\tvar codePoints = [];\n\t\tvar tmp;\n\t\twhile ((tmp = decodeSymbol()) !== false) {\n\t\t\tcodePoints.push(tmp);\n\t\t}\n\t\treturn ucs2encode(codePoints);\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\troot.version = '3.0.0';\n\troot.encode = utf8encode;\n\troot.decode = utf8decode;\n\n}(typeof exports === 'undefined' ? this.utf8 = {} : exports));\n","<template>\n <Modal\n :is-open=\"modalActivated\"\n class=\"settings-modal\"\n :class=\"{ peek: modalPeeked }\"\n :no-background=\"modalPeeked\"\n >\n <div class=\"settings-modal-panel panel\">\n <div class=\"panel-heading\">\n <span class=\"title\">\n {{ modalMode === 'user' ? $t('settings.settings') : $t('admin_dash.window_title') }}\n </span>\n <transition name=\"fade\">\n <div\n v-if=\"currentSaveStateNotice\"\n class=\"alert\"\n :class=\"{ transparent: !currentSaveStateNotice.error, error: currentSaveStateNotice.error}\"\n @click.prevent\n >\n {{ currentSaveStateNotice.error ? $t('settings.saving_err') : $t('settings.saving_ok') }}\n </div>\n </transition>\n <button\n class=\"btn button-default\"\n :title=\"$t('general.peek')\"\n @click=\"peekModal\"\n >\n <FAIcon\n :icon=\"['far', 'window-minimize']\"\n fixed-width\n />\n </button>\n <button\n class=\"btn button-default\"\n :title=\"$t('general.close')\"\n @click=\"closeModal\"\n >\n <FAIcon\n icon=\"times\"\n fixed-width\n />\n </button>\n </div>\n <div class=\"panel-body\">\n <SettingsModalUserContent v-if=\"modalMode === 'user' && modalOpenedOnceUser\" />\n <SettingsModalAdminContent v-if=\"modalMode === 'admin' && modalOpenedOnceAdmin\" />\n </div>\n <div class=\"panel-footer settings-footer -flexible-height\">\n <Popover\n v-if=\"modalMode === 'user'\"\n class=\"export\"\n trigger=\"click\"\n placement=\"top\"\n :offset=\"{ y: 5, x: 5 }\"\n :bound-to=\"{ x: 'container' }\"\n remove-padding\n >\n <template #trigger>\n <button\n class=\"btn button-default\"\n :title=\"$t('general.close')\"\n >\n <span>{{ $t(\"settings.file_export_import.backup_restore\") }}</span>\n {{ ' ' }}\n <FAIcon\n icon=\"chevron-down\"\n />\n </button>\n </template>\n <template #content=\"{close}\">\n <div class=\"dropdown-menu\">\n <button\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click.prevent=\"backup\"\n @click=\"close\"\n >\n <FAIcon\n icon=\"file-download\"\n fixed-width\n /><span>{{ $t(\"settings.file_export_import.backup_settings\") }}</span>\n </button>\n <button\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click.prevent=\"backupWithTheme\"\n @click=\"close\"\n >\n <FAIcon\n icon=\"file-download\"\n fixed-width\n /><span>{{ $t(\"settings.file_export_import.backup_settings_theme\") }}</span>\n </button>\n <button\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click.prevent=\"restore\"\n @click=\"close\"\n >\n <FAIcon\n icon=\"file-upload\"\n fixed-width\n /><span>{{ $t(\"settings.file_export_import.restore_settings\") }}</span>\n </button>\n </div>\n </template>\n </Popover>\n\n <Checkbox\n :model-value=\"!!expertLevel\"\n @update:modelValue=\"expertLevel = Number($event)\"\n >\n {{ $t(\"settings.expert_mode\") }}\n </Checkbox>\n <span v-if=\"modalMode === 'admin'\">\n <i18n-t keypath=\"admin_dash.wip_notice\">\n <template #adminFeLink>\n <a\n href=\"/pleroma/admin/#/login-pleroma\"\n target=\"_blank\"\n >\n {{ $t(\"admin_dash.old_ui_link\") }}\n </a>\n </template>\n </i18n-t>\n </span>\n <span\n id=\"unscrolled-content\"\n class=\"extra-content\"\n />\n <span\n v-if=\"modalMode === 'admin'\"\n class=\"admin-buttons\"\n >\n <button\n class=\"button-default btn\"\n :disabled=\"!adminDraftAny\"\n @click=\"resetAdminDraft\"\n >\n {{ $t(\"admin_dash.reset_all\") }}\n </button>\n {{ ' ' }}\n <button\n class=\"button-default btn\"\n :disabled=\"!adminDraftAny\"\n @click=\"pushAdminDraft\"\n >\n {{ $t(\"admin_dash.commit_all\") }}\n </button>\n </span>\n </div>\n </div>\n </Modal>\n</template>\n\n<script src=\"./settings_modal.js\"></script>\n\n<style src=\"./settings_modal.scss\" lang=\"scss\"></style>\n","<template>\n <div class=\"async-component-error\">\n <div>\n <h4>\n {{ $t('general.generic_error') }}\n </h4>\n <p>\n {{ $t('general.error_retry') }}\n </p>\n <button\n class=\"btn button-default\"\n @click=\"retry\"\n >\n {{ $t('general.retry') }}\n </button>\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n emits: ['resetAsyncComponent'],\n methods: {\n retry () {\n this.$emit('resetAsyncComponent')\n }\n }\n}\n</script>\n\n<style lang=\"scss\">\n.async-component-error {\n display: flex;\n height: 100%;\n align-items: center;\n justify-content: center;\n\n .btn {\n margin: 0.5em;\n padding: 0.5em 2em;\n }\n}\n</style>\n","import { render } from \"./async_component_error.vue?vue&type=template&id=0e326028\"\nimport script from \"./async_component_error.vue?vue&type=script&lang=js\"\nexport * from \"./async_component_error.vue?vue&type=script&lang=js\"\n\nimport \"./async_component_error.vue?vue&type=style&index=0&id=0e326028&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { defineAsyncComponent, shallowReactive, h } from 'vue'\n\n/* By default async components don't have any way to recover, if component is\n * failed, it is failed forever. This helper tries to remedy that by recreating\n * async component when retry is requested (by user). You need to emit the\n * `resetAsyncComponent` event from child to reset the component. Generally,\n * this should be done from error component but could be done from loading or\n * actual target component itself if needs to be.\n */\nfunction getResettableAsyncComponent (asyncComponent, options) {\n const asyncComponentFactory = () => () => defineAsyncComponent({\n loader: asyncComponent,\n ...options\n })\n\n const observe = shallowReactive({ c: asyncComponentFactory() })\n\n return {\n render () {\n // emit event resetAsyncComponent to reloading\n return h(observe.c(), {\n onResetAsyncComponent () {\n observe.c = asyncComponentFactory()\n }\n })\n }\n }\n}\n\nexport default getResettableAsyncComponent\n","import Modal from 'src/components/modal/modal.vue'\nimport PanelLoading from 'src/components/panel_loading/panel_loading.vue'\nimport AsyncComponentError from 'src/components/async_component_error/async_component_error.vue'\nimport getResettableAsyncComponent from 'src/services/resettable_async_component.js'\nimport Popover from '../popover/popover.vue'\nimport Checkbox from 'src/components/checkbox/checkbox.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { cloneDeep, isEqual } from 'lodash'\nimport {\n newImporter,\n newExporter\n} from 'src/services/export_import/export_import.js'\nimport {\n faTimes,\n faFileUpload,\n faFileDownload,\n faChevronDown\n} from '@fortawesome/free-solid-svg-icons'\nimport {\n faWindowMinimize\n} from '@fortawesome/free-regular-svg-icons'\n\nconst PLEROMAFE_SETTINGS_MAJOR_VERSION = 1\nconst PLEROMAFE_SETTINGS_MINOR_VERSION = 0\n\nlibrary.add(\n faTimes,\n faWindowMinimize,\n faFileUpload,\n faFileDownload,\n faChevronDown\n)\n\nconst SettingsModal = {\n data () {\n return {\n dataImporter: newImporter({\n validator: this.importValidator,\n onImport: this.onImport,\n onImportFailure: this.onImportFailure\n }),\n dataThemeExporter: newExporter({\n filename: 'pleromafe_settings.full',\n getExportedObject: () => this.generateExport(true)\n }),\n dataExporter: newExporter({\n filename: 'pleromafe_settings',\n getExportedObject: () => this.generateExport()\n })\n }\n },\n components: {\n Modal,\n Popover,\n Checkbox,\n SettingsModalUserContent: getResettableAsyncComponent(\n () => import('./settings_modal_user_content.vue'),\n {\n loadingComponent: PanelLoading,\n errorComponent: AsyncComponentError,\n delay: 0\n }\n ),\n SettingsModalAdminContent: getResettableAsyncComponent(\n () => import('./settings_modal_admin_content.vue'),\n {\n loadingComponent: PanelLoading,\n errorComponent: AsyncComponentError,\n delay: 0\n }\n )\n },\n methods: {\n closeModal () {\n this.$store.dispatch('closeSettingsModal')\n },\n peekModal () {\n this.$store.dispatch('togglePeekSettingsModal')\n },\n importValidator (data) {\n if (!Array.isArray(data._pleroma_settings_version)) {\n return {\n messageKey: 'settings.file_import_export.invalid_file'\n }\n }\n\n const [major, minor] = data._pleroma_settings_version\n\n if (major > PLEROMAFE_SETTINGS_MAJOR_VERSION) {\n return {\n messageKey: 'settings.file_export_import.errors.file_too_new',\n messageArgs: {\n fileMajor: major,\n feMajor: PLEROMAFE_SETTINGS_MAJOR_VERSION\n }\n }\n }\n\n if (major < PLEROMAFE_SETTINGS_MAJOR_VERSION) {\n return {\n messageKey: 'settings.file_export_import.errors.file_too_old',\n messageArgs: {\n fileMajor: major,\n feMajor: PLEROMAFE_SETTINGS_MAJOR_VERSION\n }\n }\n }\n\n if (minor > PLEROMAFE_SETTINGS_MINOR_VERSION) {\n this.$store.dispatch('pushGlobalNotice', {\n level: 'warning',\n messageKey: 'settings.file_export_import.errors.file_slightly_new'\n })\n }\n\n return true\n },\n onImportFailure (result) {\n if (result.error) {\n this.$store.dispatch('pushGlobalNotice', { messageKey: 'settings.invalid_settings_imported', level: 'error' })\n } else {\n this.$store.dispatch('pushGlobalNotice', { ...result.validationResult, level: 'error' })\n }\n },\n onImport (data) {\n if (data) { this.$store.dispatch('loadSettings', data) }\n },\n restore () {\n this.dataImporter.importData()\n },\n backup () {\n this.dataExporter.exportData()\n },\n backupWithTheme () {\n this.dataThemeExporter.exportData()\n },\n generateExport (theme = false) {\n const { config } = this.$store.state\n let sample = config\n if (!theme) {\n const ignoreList = new Set([\n 'customTheme',\n 'customThemeSource',\n 'colors'\n ])\n sample = Object.fromEntries(\n Object\n .entries(sample)\n .filter(([key]) => !ignoreList.has(key))\n )\n }\n const clone = cloneDeep(sample)\n clone._pleroma_settings_version = [\n PLEROMAFE_SETTINGS_MAJOR_VERSION,\n PLEROMAFE_SETTINGS_MINOR_VERSION\n ]\n return clone\n },\n resetAdminDraft () {\n this.$store.commit('resetAdminDraft')\n },\n pushAdminDraft () {\n this.$store.dispatch('pushAdminDraft')\n }\n },\n computed: {\n currentSaveStateNotice () {\n return this.$store.state.interface.settings.currentSaveStateNotice\n },\n modalActivated () {\n return this.$store.state.interface.settingsModalState !== 'hidden'\n },\n modalMode () {\n return this.$store.state.interface.settingsModalMode\n },\n modalOpenedOnceUser () {\n return this.$store.state.interface.settingsModalLoadedUser\n },\n modalOpenedOnceAdmin () {\n return this.$store.state.interface.settingsModalLoadedAdmin\n },\n modalPeeked () {\n return this.$store.state.interface.settingsModalState === 'minimized'\n },\n expertLevel: {\n get () {\n return this.$store.state.config.expertLevel > 0\n },\n set (value) {\n this.$store.dispatch('setOption', { name: 'expertLevel', value: value ? 1 : 0 })\n }\n },\n adminDraftAny () {\n return !isEqual(\n this.$store.state.adminSettings.config,\n this.$store.state.adminSettings.draft\n )\n }\n }\n}\n\nexport default SettingsModal\n","import { render } from \"./settings_modal.vue?vue&type=template&id=e07b3cd0\"\nimport script from \"./settings_modal.js?vue&type=script&lang=js\"\nexport * from \"./settings_modal.js?vue&type=script&lang=js\"\n\nimport \"./settings_modal.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["newExporter","_ref","_ref$filename","filename","getExportedObject","exportData","stringified","utf8","JSON","stringify","e","document","createElement","setAttribute","concat","window","btoa","style","display","body","appendChild","click","removeChild","newImporter","_ref2","onImport","onImportFailure","_ref2$validator","validator","importData","filePicker","addEventListener","event","target","files","reader","FileReader","onload","_ref3","parsed","parse","result","validationResult","error","readAsText","root","byteArray","byteCount","byteIndex","stringFromCharCode","String","fromCharCode","ucs2decode","string","value","extra","output","counter","length","charCodeAt","push","checkScalarValue","codePoint","Error","toString","toUpperCase","createByte","shift","encodeCodePoint","symbol","readContinuationByte","continuationByte","decodeSymbol","byte1","version","encode","codePoints","index","byteString","decode","tmp","array","ucs2encode","exports","class","href","_createElementVNode","id","emits","methods","retry","this","$emit","_createElementBlock","_hoisted_1","_toDisplayString","_ctx","$t","onClick","_cache","$options","apply","arguments","asyncComponent","options","asyncComponentFactory","defineAsyncComponent","_objectSpread","loader","observe","shallowReactive","c","render","h","onResetAsyncComponent","library","faTimes","faWindowMinimize","faFileUpload","faFileDownload","faChevronDown","data","_this","dataImporter","importValidator","dataThemeExporter","generateExport","dataExporter","components","Modal","Popover","Checkbox","SettingsModalUserContent","getResettableAsyncComponent","loadingComponent","PanelLoading","errorComponent","AsyncComponentError","delay","SettingsModalAdminContent","closeModal","$store","dispatch","peekModal","Array","isArray","_pleroma_settings_version","messageKey","_data$_pleroma_settin","_slicedToArray","major","minor","messageArgs","fileMajor","feMajor","level","restore","backup","backupWithTheme","theme","undefined","config","state","sample","ignoreList","Set","Object","fromEntries","entries","filter","key","has","clone","_cloneDeep","resetAdminDraft","commit","pushAdminDraft","computed","currentSaveStateNotice","settings","modalActivated","settingsModalState","modalMode","settingsModalMode","modalOpenedOnceUser","settingsModalLoadedUser","modalOpenedOnceAdmin","settingsModalLoadedAdmin","modalPeeked","expertLevel","get","set","name","adminDraftAny","_isEqual","adminSettings","draft","_createBlock","_component_Modal","_normalizeClass","peek","_hoisted_2","_hoisted_3","_createVNode","_Transition","transparent","_withModifiers","title","_component_FAIcon","icon","_hoisted_6","_component_SettingsModalUserContent","_component_SettingsModalAdminContent","_hoisted_7","_component_Popover","trigger","placement","offset","y","x","_withCtx","content","close","_hoisted_9","_component_Checkbox","$event","Number","_hoisted_13","_component_i18n_t","keypath","adminFeLink","_hoisted_14","_hoisted_15","_hoisted_16","disabled","_hoisted_17","_hoisted_18"],"sourceRoot":""} \ No newline at end of file
+{"version":3,"file":"static/js/7586.628f729b9c8b2e6f4e1f.js","mappings":"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","sources":["webpack://pleroma_fe/./src/services/export_import/export_import.js","webpack://pleroma_fe/./node_modules/utf8/utf8.js","webpack://pleroma_fe/./src/components/settings_modal/settings_modal.vue","webpack://pleroma_fe/./src/components/async_component_error/async_component_error.vue","webpack://pleroma_fe/./src/components/async_component_error/async_component_error.vue?c151","webpack://pleroma_fe/./src/services/resettable_async_component.js","webpack://pleroma_fe/./src/components/settings_modal/settings_modal.js","webpack://pleroma_fe/./src/components/settings_modal/settings_modal.vue?2a2f"],"sourcesContent":["import utf8 from 'utf8'\n\nexport const newExporter = ({\n filename = 'data',\n getExportedObject\n}) => ({\n exportData () {\n const stringified = utf8.encode(JSON.stringify(getExportedObject(), 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', `${filename}.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})\n\nexport const newImporter = ({\n onImport,\n onImportFailure,\n validator = () => true\n}) => ({\n importData () {\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 validationResult = validator(parsed)\n if (validationResult === true) {\n onImport(parsed)\n } else {\n onImportFailure({ validationResult })\n }\n } catch (error) {\n onImportFailure({ error })\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","/*! https://mths.be/utf8js v3.0.0 by @mathias */\n;(function(root) {\n\n\tvar stringFromCharCode = String.fromCharCode;\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2decode(string) {\n\t\tvar output = [];\n\t\tvar counter = 0;\n\t\tvar length = string.length;\n\t\tvar value;\n\t\tvar extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t// Taken from https://mths.be/punycode\n\tfunction ucs2encode(array) {\n\t\tvar length = array.length;\n\t\tvar index = -1;\n\t\tvar value;\n\t\tvar output = '';\n\t\twhile (++index < length) {\n\t\t\tvalue = array[index];\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t}\n\t\treturn output;\n\t}\n\n\tfunction checkScalarValue(codePoint) {\n\t\tif (codePoint >= 0xD800 && codePoint <= 0xDFFF) {\n\t\t\tthrow Error(\n\t\t\t\t'Lone surrogate U+' + codePoint.toString(16).toUpperCase() +\n\t\t\t\t' is not a scalar value'\n\t\t\t);\n\t\t}\n\t}\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction createByte(codePoint, shift) {\n\t\treturn stringFromCharCode(((codePoint >> shift) & 0x3F) | 0x80);\n\t}\n\n\tfunction encodeCodePoint(codePoint) {\n\t\tif ((codePoint & 0xFFFFFF80) == 0) { // 1-byte sequence\n\t\t\treturn stringFromCharCode(codePoint);\n\t\t}\n\t\tvar symbol = '';\n\t\tif ((codePoint & 0xFFFFF800) == 0) { // 2-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 6) & 0x1F) | 0xC0);\n\t\t}\n\t\telse if ((codePoint & 0xFFFF0000) == 0) { // 3-byte sequence\n\t\t\tcheckScalarValue(codePoint);\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 12) & 0x0F) | 0xE0);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\telse if ((codePoint & 0xFFE00000) == 0) { // 4-byte sequence\n\t\t\tsymbol = stringFromCharCode(((codePoint >> 18) & 0x07) | 0xF0);\n\t\t\tsymbol += createByte(codePoint, 12);\n\t\t\tsymbol += createByte(codePoint, 6);\n\t\t}\n\t\tsymbol += stringFromCharCode((codePoint & 0x3F) | 0x80);\n\t\treturn symbol;\n\t}\n\n\tfunction utf8encode(string) {\n\t\tvar codePoints = ucs2decode(string);\n\t\tvar length = codePoints.length;\n\t\tvar index = -1;\n\t\tvar codePoint;\n\t\tvar byteString = '';\n\t\twhile (++index < length) {\n\t\t\tcodePoint = codePoints[index];\n\t\t\tbyteString += encodeCodePoint(codePoint);\n\t\t}\n\t\treturn byteString;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tfunction readContinuationByte() {\n\t\tif (byteIndex >= byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tvar continuationByte = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\tif ((continuationByte & 0xC0) == 0x80) {\n\t\t\treturn continuationByte & 0x3F;\n\t\t}\n\n\t\t// If we end up here, it’s not a continuation byte\n\t\tthrow Error('Invalid continuation byte');\n\t}\n\n\tfunction decodeSymbol() {\n\t\tvar byte1;\n\t\tvar byte2;\n\t\tvar byte3;\n\t\tvar byte4;\n\t\tvar codePoint;\n\n\t\tif (byteIndex > byteCount) {\n\t\t\tthrow Error('Invalid byte index');\n\t\t}\n\n\t\tif (byteIndex == byteCount) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Read first byte\n\t\tbyte1 = byteArray[byteIndex] & 0xFF;\n\t\tbyteIndex++;\n\n\t\t// 1-byte sequence (no continuation bytes)\n\t\tif ((byte1 & 0x80) == 0) {\n\t\t\treturn byte1;\n\t\t}\n\n\t\t// 2-byte sequence\n\t\tif ((byte1 & 0xE0) == 0xC0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x1F) << 6) | byte2;\n\t\t\tif (codePoint >= 0x80) {\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 3-byte sequence (may include unpaired surrogates)\n\t\tif ((byte1 & 0xF0) == 0xE0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x0F) << 12) | (byte2 << 6) | byte3;\n\t\t\tif (codePoint >= 0x0800) {\n\t\t\t\tcheckScalarValue(codePoint);\n\t\t\t\treturn codePoint;\n\t\t\t} else {\n\t\t\t\tthrow Error('Invalid continuation byte');\n\t\t\t}\n\t\t}\n\n\t\t// 4-byte sequence\n\t\tif ((byte1 & 0xF8) == 0xF0) {\n\t\t\tbyte2 = readContinuationByte();\n\t\t\tbyte3 = readContinuationByte();\n\t\t\tbyte4 = readContinuationByte();\n\t\t\tcodePoint = ((byte1 & 0x07) << 0x12) | (byte2 << 0x0C) |\n\t\t\t\t(byte3 << 0x06) | byte4;\n\t\t\tif (codePoint >= 0x010000 && codePoint <= 0x10FFFF) {\n\t\t\t\treturn codePoint;\n\t\t\t}\n\t\t}\n\n\t\tthrow Error('Invalid UTF-8 detected');\n\t}\n\n\tvar byteArray;\n\tvar byteCount;\n\tvar byteIndex;\n\tfunction utf8decode(byteString) {\n\t\tbyteArray = ucs2decode(byteString);\n\t\tbyteCount = byteArray.length;\n\t\tbyteIndex = 0;\n\t\tvar codePoints = [];\n\t\tvar tmp;\n\t\twhile ((tmp = decodeSymbol()) !== false) {\n\t\t\tcodePoints.push(tmp);\n\t\t}\n\t\treturn ucs2encode(codePoints);\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\troot.version = '3.0.0';\n\troot.encode = utf8encode;\n\troot.decode = utf8decode;\n\n}(typeof exports === 'undefined' ? this.utf8 = {} : exports));\n","<template>\n <Modal\n :is-open=\"modalActivated\"\n class=\"settings-modal\"\n :class=\"{ peek: modalPeeked }\"\n :no-background=\"modalPeeked\"\n >\n <div class=\"settings-modal-panel panel\">\n <div class=\"panel-heading\">\n <span class=\"title\">\n {{ modalMode === 'user' ? $t('settings.settings') : $t('admin_dash.window_title') }}\n </span>\n <transition name=\"fade\">\n <div\n v-if=\"currentSaveStateNotice\"\n class=\"alert\"\n :class=\"{ transparent: !currentSaveStateNotice.error, error: currentSaveStateNotice.error}\"\n @click.prevent\n >\n {{ currentSaveStateNotice.error ? $t('settings.saving_err') : $t('settings.saving_ok') }}\n </div>\n </transition>\n <button\n class=\"btn button-default\"\n :title=\"$t('general.peek')\"\n @click=\"peekModal\"\n >\n <FAIcon\n :icon=\"['far', 'window-minimize']\"\n fixed-width\n />\n </button>\n <button\n class=\"btn button-default\"\n :title=\"$t('general.close')\"\n @click=\"closeModal\"\n >\n <FAIcon\n icon=\"times\"\n fixed-width\n />\n </button>\n </div>\n <div class=\"panel-body\">\n <SettingsModalUserContent v-if=\"modalMode === 'user' && modalOpenedOnceUser\" />\n <SettingsModalAdminContent v-if=\"modalMode === 'admin' && modalOpenedOnceAdmin\" />\n </div>\n <div class=\"panel-footer settings-footer -flexible-height\">\n <Popover\n v-if=\"modalMode === 'user'\"\n class=\"export\"\n trigger=\"click\"\n placement=\"top\"\n :offset=\"{ y: 5, x: 5 }\"\n :bound-to=\"{ x: 'container' }\"\n remove-padding\n >\n <template #trigger>\n <button\n class=\"btn button-default\"\n :title=\"$t('general.close')\"\n >\n <span>{{ $t(\"settings.file_export_import.backup_restore\") }}</span>\n {{ ' ' }}\n <FAIcon\n icon=\"chevron-down\"\n />\n </button>\n </template>\n <template #content=\"{close}\">\n <div class=\"dropdown-menu\">\n <button\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click.prevent=\"backup\"\n @click=\"close\"\n >\n <FAIcon\n icon=\"file-download\"\n fixed-width\n /><span>{{ $t(\"settings.file_export_import.backup_settings\") }}</span>\n </button>\n <button\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click.prevent=\"backupWithTheme\"\n @click=\"close\"\n >\n <FAIcon\n icon=\"file-download\"\n fixed-width\n /><span>{{ $t(\"settings.file_export_import.backup_settings_theme\") }}</span>\n </button>\n <button\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click.prevent=\"restore\"\n @click=\"close\"\n >\n <FAIcon\n icon=\"file-upload\"\n fixed-width\n /><span>{{ $t(\"settings.file_export_import.restore_settings\") }}</span>\n </button>\n </div>\n </template>\n </Popover>\n\n <Checkbox\n :model-value=\"!!expertLevel\"\n @update:modelValue=\"expertLevel = Number($event)\"\n >\n {{ $t(\"settings.expert_mode\") }}\n </Checkbox>\n <span v-if=\"modalMode === 'admin'\">\n <i18n-t keypath=\"admin_dash.wip_notice\">\n <template #adminFeLink>\n <a\n href=\"/pleroma/admin/#/login-pleroma\"\n target=\"_blank\"\n >\n {{ $t(\"admin_dash.old_ui_link\") }}\n </a>\n </template>\n </i18n-t>\n </span>\n <span\n id=\"unscrolled-content\"\n class=\"extra-content\"\n />\n <span\n v-if=\"modalMode === 'admin'\"\n class=\"admin-buttons\"\n >\n <button\n class=\"button-default btn\"\n :disabled=\"!adminDraftAny\"\n @click=\"resetAdminDraft\"\n >\n {{ $t(\"admin_dash.reset_all\") }}\n </button>\n {{ ' ' }}\n <button\n class=\"button-default btn\"\n :disabled=\"!adminDraftAny\"\n @click=\"pushAdminDraft\"\n >\n {{ $t(\"admin_dash.commit_all\") }}\n </button>\n </span>\n </div>\n </div>\n </Modal>\n</template>\n\n<script src=\"./settings_modal.js\"></script>\n\n<style src=\"./settings_modal.scss\" lang=\"scss\"></style>\n","<template>\n <div class=\"async-component-error\">\n <div>\n <h4>\n {{ $t('general.generic_error') }}\n </h4>\n <p>\n {{ $t('general.error_retry') }}\n </p>\n <button\n class=\"btn button-default\"\n @click=\"retry\"\n >\n {{ $t('general.retry') }}\n </button>\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n emits: ['resetAsyncComponent'],\n methods: {\n retry () {\n this.$emit('resetAsyncComponent')\n }\n }\n}\n</script>\n\n<style lang=\"scss\">\n.async-component-error {\n display: flex;\n height: 100%;\n align-items: center;\n justify-content: center;\n\n .btn {\n margin: 0.5em;\n padding: 0.5em 2em;\n }\n}\n</style>\n","import { render } from \"./async_component_error.vue?vue&type=template&id=0e326028\"\nimport script from \"./async_component_error.vue?vue&type=script&lang=js\"\nexport * from \"./async_component_error.vue?vue&type=script&lang=js\"\n\nimport \"./async_component_error.vue?vue&type=style&index=0&id=0e326028&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { defineAsyncComponent, shallowReactive, h } from 'vue'\n\n/* By default async components don't have any way to recover, if component is\n * failed, it is failed forever. This helper tries to remedy that by recreating\n * async component when retry is requested (by user). You need to emit the\n * `resetAsyncComponent` event from child to reset the component. Generally,\n * this should be done from error component but could be done from loading or\n * actual target component itself if needs to be.\n */\nfunction getResettableAsyncComponent (asyncComponent, options) {\n const asyncComponentFactory = () => () => defineAsyncComponent({\n loader: asyncComponent,\n ...options\n })\n\n const observe = shallowReactive({ c: asyncComponentFactory() })\n\n return {\n render () {\n // emit event resetAsyncComponent to reloading\n return h(observe.c(), {\n onResetAsyncComponent () {\n observe.c = asyncComponentFactory()\n }\n })\n }\n }\n}\n\nexport default getResettableAsyncComponent\n","import Modal from 'src/components/modal/modal.vue'\nimport PanelLoading from 'src/components/panel_loading/panel_loading.vue'\nimport AsyncComponentError from 'src/components/async_component_error/async_component_error.vue'\nimport getResettableAsyncComponent from 'src/services/resettable_async_component.js'\nimport Popover from '../popover/popover.vue'\nimport Checkbox from 'src/components/checkbox/checkbox.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { cloneDeep, isEqual } from 'lodash'\nimport {\n newImporter,\n newExporter\n} from 'src/services/export_import/export_import.js'\nimport {\n faTimes,\n faFileUpload,\n faFileDownload,\n faChevronDown\n} from '@fortawesome/free-solid-svg-icons'\nimport {\n faWindowMinimize\n} from '@fortawesome/free-regular-svg-icons'\n\nconst PLEROMAFE_SETTINGS_MAJOR_VERSION = 1\nconst PLEROMAFE_SETTINGS_MINOR_VERSION = 0\n\nlibrary.add(\n faTimes,\n faWindowMinimize,\n faFileUpload,\n faFileDownload,\n faChevronDown\n)\n\nconst SettingsModal = {\n data () {\n return {\n dataImporter: newImporter({\n validator: this.importValidator,\n onImport: this.onImport,\n onImportFailure: this.onImportFailure\n }),\n dataThemeExporter: newExporter({\n filename: 'pleromafe_settings.full',\n getExportedObject: () => this.generateExport(true)\n }),\n dataExporter: newExporter({\n filename: 'pleromafe_settings',\n getExportedObject: () => this.generateExport()\n })\n }\n },\n components: {\n Modal,\n Popover,\n Checkbox,\n SettingsModalUserContent: getResettableAsyncComponent(\n () => import('./settings_modal_user_content.vue'),\n {\n loadingComponent: PanelLoading,\n errorComponent: AsyncComponentError,\n delay: 0\n }\n ),\n SettingsModalAdminContent: getResettableAsyncComponent(\n () => import('./settings_modal_admin_content.vue'),\n {\n loadingComponent: PanelLoading,\n errorComponent: AsyncComponentError,\n delay: 0\n }\n )\n },\n methods: {\n closeModal () {\n this.$store.dispatch('closeSettingsModal')\n },\n peekModal () {\n this.$store.dispatch('togglePeekSettingsModal')\n },\n importValidator (data) {\n if (!Array.isArray(data._pleroma_settings_version)) {\n return {\n messageKey: 'settings.file_import_export.invalid_file'\n }\n }\n\n const [major, minor] = data._pleroma_settings_version\n\n if (major > PLEROMAFE_SETTINGS_MAJOR_VERSION) {\n return {\n messageKey: 'settings.file_export_import.errors.file_too_new',\n messageArgs: {\n fileMajor: major,\n feMajor: PLEROMAFE_SETTINGS_MAJOR_VERSION\n }\n }\n }\n\n if (major < PLEROMAFE_SETTINGS_MAJOR_VERSION) {\n return {\n messageKey: 'settings.file_export_import.errors.file_too_old',\n messageArgs: {\n fileMajor: major,\n feMajor: PLEROMAFE_SETTINGS_MAJOR_VERSION\n }\n }\n }\n\n if (minor > PLEROMAFE_SETTINGS_MINOR_VERSION) {\n this.$store.dispatch('pushGlobalNotice', {\n level: 'warning',\n messageKey: 'settings.file_export_import.errors.file_slightly_new'\n })\n }\n\n return true\n },\n onImportFailure (result) {\n if (result.error) {\n this.$store.dispatch('pushGlobalNotice', { messageKey: 'settings.invalid_settings_imported', level: 'error' })\n } else {\n this.$store.dispatch('pushGlobalNotice', { ...result.validationResult, level: 'error' })\n }\n },\n onImport (data) {\n if (data) { this.$store.dispatch('loadSettings', data) }\n },\n restore () {\n this.dataImporter.importData()\n },\n backup () {\n this.dataExporter.exportData()\n },\n backupWithTheme () {\n this.dataThemeExporter.exportData()\n },\n generateExport (theme = false) {\n const { config } = this.$store.state\n let sample = config\n if (!theme) {\n const ignoreList = new Set([\n 'customTheme',\n 'customThemeSource',\n 'colors'\n ])\n sample = Object.fromEntries(\n Object\n .entries(sample)\n .filter(([key]) => !ignoreList.has(key))\n )\n }\n const clone = cloneDeep(sample)\n clone._pleroma_settings_version = [\n PLEROMAFE_SETTINGS_MAJOR_VERSION,\n PLEROMAFE_SETTINGS_MINOR_VERSION\n ]\n return clone\n },\n resetAdminDraft () {\n this.$store.commit('resetAdminDraft')\n },\n pushAdminDraft () {\n this.$store.dispatch('pushAdminDraft')\n }\n },\n computed: {\n currentSaveStateNotice () {\n return this.$store.state.interface.settings.currentSaveStateNotice\n },\n modalActivated () {\n return this.$store.state.interface.settingsModalState !== 'hidden'\n },\n modalMode () {\n return this.$store.state.interface.settingsModalMode\n },\n modalOpenedOnceUser () {\n return this.$store.state.interface.settingsModalLoadedUser\n },\n modalOpenedOnceAdmin () {\n return this.$store.state.interface.settingsModalLoadedAdmin\n },\n modalPeeked () {\n return this.$store.state.interface.settingsModalState === 'minimized'\n },\n expertLevel: {\n get () {\n return this.$store.state.config.expertLevel > 0\n },\n set (value) {\n this.$store.dispatch('setOption', { name: 'expertLevel', value: value ? 1 : 0 })\n }\n },\n adminDraftAny () {\n return !isEqual(\n this.$store.state.adminSettings.config,\n this.$store.state.adminSettings.draft\n )\n }\n }\n}\n\nexport default SettingsModal\n","import { render } from \"./settings_modal.vue?vue&type=template&id=e07b3cd0\"\nimport script from \"./settings_modal.js?vue&type=script&lang=js\"\nexport * from \"./settings_modal.js?vue&type=script&lang=js\"\n\nimport \"./settings_modal.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["newExporter","_ref","_ref$filename","filename","getExportedObject","exportData","stringified","utf8","JSON","stringify","e","document","createElement","setAttribute","concat","window","btoa","style","display","body","appendChild","click","removeChild","newImporter","_ref2","onImport","onImportFailure","_ref2$validator","validator","importData","filePicker","addEventListener","event","target","files","reader","FileReader","onload","_ref3","parsed","parse","result","validationResult","error","readAsText","root","byteArray","byteCount","byteIndex","stringFromCharCode","String","fromCharCode","ucs2decode","string","value","extra","output","counter","length","charCodeAt","push","checkScalarValue","codePoint","Error","toString","toUpperCase","createByte","shift","encodeCodePoint","symbol","readContinuationByte","continuationByte","decodeSymbol","byte1","version","encode","codePoints","index","byteString","decode","tmp","array","ucs2encode","exports","class","href","_createElementVNode","id","emits","methods","retry","this","$emit","_createElementBlock","_hoisted_1","_toDisplayString","_ctx","$t","onClick","_cache","$options","apply","arguments","asyncComponent","options","asyncComponentFactory","defineAsyncComponent","_objectSpread","loader","observe","shallowReactive","c","render","h","onResetAsyncComponent","library","faTimes","faWindowMinimize","faFileUpload","faFileDownload","faChevronDown","data","_this","dataImporter","importValidator","dataThemeExporter","generateExport","dataExporter","components","Modal","Popover","Checkbox","SettingsModalUserContent","getResettableAsyncComponent","loadingComponent","PanelLoading","errorComponent","AsyncComponentError","delay","SettingsModalAdminContent","closeModal","$store","dispatch","peekModal","Array","isArray","_pleroma_settings_version","messageKey","_data$_pleroma_settin","_slicedToArray","major","minor","messageArgs","fileMajor","feMajor","level","restore","backup","backupWithTheme","theme","undefined","config","state","sample","ignoreList","Set","Object","fromEntries","entries","filter","key","has","clone","_cloneDeep","resetAdminDraft","commit","pushAdminDraft","computed","currentSaveStateNotice","settings","modalActivated","settingsModalState","modalMode","settingsModalMode","modalOpenedOnceUser","settingsModalLoadedUser","modalOpenedOnceAdmin","settingsModalLoadedAdmin","modalPeeked","expertLevel","get","set","name","adminDraftAny","_isEqual","adminSettings","draft","_createBlock","_component_Modal","_normalizeClass","peek","_hoisted_2","_hoisted_3","_createVNode","_Transition","transparent","_withModifiers","title","_component_FAIcon","icon","_hoisted_6","_component_SettingsModalUserContent","_component_SettingsModalAdminContent","_hoisted_7","_component_Popover","trigger","placement","offset","y","x","_withCtx","content","close","_hoisted_9","_component_Checkbox","$event","Number","_hoisted_13","_component_i18n_t","keypath","adminFeLink","_hoisted_14","_hoisted_15","_hoisted_16","disabled","_hoisted_17","_hoisted_18"],"sourceRoot":""} \ No newline at end of file
diff --git a/priv/static/static/js/7586.981b2305a0019f6042a5.js b/priv/static/static/js/7586.981b2305a0019f6042a5.js
deleted file mode 100644
index ea48cced4..000000000
--- a/priv/static/static/js/7586.981b2305a0019f6042a5.js
+++ /dev/null
@@ -1,2 +0,0 @@
-(self.webpackChunkpleroma_fe=self.webpackChunkpleroma_fe||[]).push([[7586],{25771:(t,e,n)=>{"use strict";n.d(e,{M:()=>i,i:()=>a});var r=n(57458),o=n.n(r),i=function(t){var e=t.filename,n=void 0===e?"data":e,r=t.getExportedObject;return{exportData:function(){var t=o().encode(JSON.stringify(r(),null,2)),e=document.createElement("a");e.setAttribute("download","".concat(n,".json")),e.setAttribute("href","data:application/json;base64,"+window.btoa(t)),e.style.display="none",document.body.appendChild(e),e.click(),document.body.removeChild(e)}}},a=function(t){var e=t.onImport,n=t.onImportFailure,r=t.validator,o=void 0===r?function(){return!0}:r;return{importData:function(){var t=document.createElement("input");t.setAttribute("type","file"),t.setAttribute("accept",".json"),t.addEventListener("change",(function(t){if(t.target.files[0]){var r=new FileReader;r.onload=function(t){var r=t.target;try{var i=JSON.parse(r.result),a=o(i);!0===a?e(i):n({validationResult:a})}catch(t){n({error:t})}},r.readAsText(t.target.files[0])}})),document.body.appendChild(t),t.click(),document.body.removeChild(t)}}}},57458:(t,e)=>{!function(t){var e,n,r,o=String.fromCharCode;function i(t){for(var e,n,r=[],o=0,i=t.length;o<i;)(e=t.charCodeAt(o++))>=55296&&e<=56319&&o<i?56320==(64512&(n=t.charCodeAt(o++)))?r.push(((1023&e)<<10)+(1023&n)+65536):(r.push(e),o--):r.push(e);return r}function a(t){if(t>=55296&&t<=57343)throw Error("Lone surrogate U+"+t.toString(16).toUpperCase()+" is not a scalar value")}function s(t,e){return o(t>>e&63|128)}function l(t){if(0==(4294967168&t))return o(t);var e="";return 0==(4294965248&t)?e=o(t>>6&31|192):0==(4294901760&t)?(a(t),e=o(t>>12&15|224),e+=s(t,6)):0==(4292870144&t)&&(e=o(t>>18&7|240),e+=s(t,12),e+=s(t,6)),e+o(63&t|128)}function c(){if(r>=n)throw Error("Invalid byte index");var t=255&e[r];if(r++,128==(192&t))return 63&t;throw Error("Invalid continuation byte")}function d(){var t,o;if(r>n)throw Error("Invalid byte index");if(r==n)return!1;if(t=255&e[r],r++,0==(128&t))return t;if(192==(224&t)){if((o=(31&t)<<6|c())>=128)return o;throw Error("Invalid continuation byte")}if(224==(240&t)){if((o=(15&t)<<12|c()<<6|c())>=2048)return a(o),o;throw Error("Invalid continuation byte")}if(240==(248&t)&&(o=(7&t)<<18|c()<<12|c()<<6|c())>=65536&&o<=1114111)return o;throw Error("Invalid UTF-8 detected")}t.version="3.0.0",t.encode=function(t){for(var e=i(t),n=e.length,r=-1,o="";++r<n;)o+=l(e[r]);return o},t.decode=function(t){e=i(t),n=e.length,r=0;for(var a,s=[];!1!==(a=d());)s.push(a);return function(t){for(var e,n=t.length,r=-1,i="";++r<n;)(e=t[r])>65535&&(i+=o((e-=65536)>>>10&1023|55296),e=56320|1023&e),i+=o(e);return i}(s)}}(e)},27586:(t,e,n)=>{"use strict";n.r(e),n.d(e,{default:()=>J});var r=n(66252),o=n(3577),i=n(49963),a={class:"settings-modal-panel panel"},s={class:"panel-heading"},l={class:"title"},c=["title"],d=["title"],u={class:"panel-body"},p={class:"panel-footer settings-footer -flexible-height"},f=["title"],m={class:"dropdown-menu"},g=["onClick"],h=["onClick"],b=["onClick"],v={key:1},_={href:"/pleroma/admin/#/login-pleroma",target:"_blank"},w=(0,r._)("span",{id:"unscrolled-content",class:"extra-content"},null,-1),y={key:2,class:"admin-buttons"},k=["disabled"],O=["disabled"],x=n(4942),C=n(29439),j=n(18446),M=n.n(j),$=n(50361),A=n.n($),S=n(48328),D=n(29187),E={class:"async-component-error"};const P={emits:["resetAsyncComponent"],methods:{retry:function(){this.$emit("resetAsyncComponent")}}};var I=n(83744);const z=(0,I.Z)(P,[["render",function(t,e,n,i,a,s){return(0,r.wg)(),(0,r.iD)("div",E,[(0,r._)("div",null,[(0,r._)("h4",null,(0,o.zw)(t.$t("general.generic_error")),1),(0,r._)("p",null,(0,o.zw)(t.$t("general.error_retry")),1),(0,r._)("button",{class:"btn button-default",onClick:e[0]||(e[0]=function(){return s.retry&&s.retry.apply(s,arguments)})},(0,o.zw)(t.$t("general.retry")),1)])])}]]);var N=n(2262);function U(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}const W=function(t,e){var n=function(){return function(){return(0,r.RC)(function(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?U(Object(n),!0).forEach((function(e){(0,x.Z)(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):U(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}({loader:t},e))}},o=(0,N.Um)({c:n()});return{render:function(){return(0,r.h)(o.c(),{onResetAsyncComponent:function(){o.c=n()}})}}};var L=n(84535),T=n(66141),Z=n(9382),F=n(25771),q=n(84131),K=n(5737);function R(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function G(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?R(Object(n),!0).forEach((function(e){(0,x.Z)(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):R(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}Z.vI.add(q.NBC,K.IQi,q.Y9i,q.kwI,q.ptq);const V={data:function(){var t=this;return{dataImporter:(0,F.i)({validator:this.importValidator,onImport:this.onImport,onImportFailure:this.onImportFailure}),dataThemeExporter:(0,F.M)({filename:"pleromafe_settings.full",getExportedObject:function(){return t.generateExport(!0)}}),dataExporter:(0,F.M)({filename:"pleromafe_settings",getExportedObject:function(){return t.generateExport()}})}},components:{Modal:S.Z,Popover:L.default,Checkbox:T.Z,SettingsModalUserContent:W((function(){return Promise.all([n.e(48),n.e(9060),n.e(7962)]).then(n.bind(n,62691))}),{loadingComponent:D.Z,errorComponent:z,delay:0}),SettingsModalAdminContent:W((function(){return Promise.all([n.e(9060),n.e(9801)]).then(n.bind(n,9541))}),{loadingComponent:D.Z,errorComponent:z,delay:0})},methods:{closeModal:function(){this.$store.dispatch("closeSettingsModal")},peekModal:function(){this.$store.dispatch("togglePeekSettingsModal")},importValidator:function(t){if(!Array.isArray(t._pleroma_settings_version))return{messageKey:"settings.file_import_export.invalid_file"};var e=(0,C.Z)(t._pleroma_settings_version,2),n=e[0],r=e[1];return n>1?{messageKey:"settings.file_export_import.errors.file_too_new",messageArgs:{fileMajor:n,feMajor:1}}:n<1?{messageKey:"settings.file_export_import.errors.file_too_old",messageArgs:{fileMajor:n,feMajor:1}}:(r>0&&this.$store.dispatch("pushGlobalNotice",{level:"warning",messageKey:"settings.file_export_import.errors.file_slightly_new"}),!0)},onImportFailure:function(t){t.error?this.$store.dispatch("pushGlobalNotice",{messageKey:"settings.invalid_settings_imported",level:"error"}):this.$store.dispatch("pushGlobalNotice",G(G({},t.validationResult),{},{level:"error"}))},onImport:function(t){t&&this.$store.dispatch("loadSettings",t)},restore:function(){this.dataImporter.importData()},backup:function(){this.dataExporter.exportData()},backupWithTheme:function(){this.dataThemeExporter.exportData()},generateExport:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=this.$store.state.config,n=e;if(!t){var r=new Set(["customTheme","customThemeSource","colors"]);n=Object.fromEntries(Object.entries(n).filter((function(t){var e=(0,C.Z)(t,1)[0];return!r.has(e)})))}var o=A()(n);return o._pleroma_settings_version=[1,0],o},resetAdminDraft:function(){this.$store.commit("resetAdminDraft")},pushAdminDraft:function(){this.$store.dispatch("pushAdminDraft")}},computed:{currentSaveStateNotice:function(){return this.$store.state.interface.settings.currentSaveStateNotice},modalActivated:function(){return"hidden"!==this.$store.state.interface.settingsModalState},modalMode:function(){return this.$store.state.interface.settingsModalMode},modalOpenedOnceUser:function(){return this.$store.state.interface.settingsModalLoadedUser},modalOpenedOnceAdmin:function(){return this.$store.state.interface.settingsModalLoadedAdmin},modalPeeked:function(){return"minimized"===this.$store.state.interface.settingsModalState},expertLevel:{get:function(){return this.$store.state.config.expertLevel>0},set:function(t){this.$store.dispatch("setOption",{name:"expertLevel",value:t?1:0})}},adminDraftAny:function(){return!M()(this.$store.state.adminSettings.config,this.$store.state.adminSettings.draft)}}},J=(0,I.Z)(V,[["render",function(t,e,n,x,C,j){var M=(0,r.up)("FAIcon"),$=(0,r.up)("SettingsModalUserContent"),A=(0,r.up)("SettingsModalAdminContent"),S=(0,r.up)("Popover"),D=(0,r.up)("Checkbox"),E=(0,r.up)("i18n-t"),P=(0,r.up)("Modal");return(0,r.wg)(),(0,r.j4)(P,{"is-open":t.modalActivated,class:(0,o.C_)(["settings-modal",{peek:t.modalPeeked}]),"no-background":t.modalPeeked},{default:(0,r.w5)((function(){return[(0,r._)("div",a,[(0,r._)("div",s,[(0,r._)("span",l,(0,o.zw)("user"===t.modalMode?t.$t("settings.settings"):t.$t("admin_dash.window_title")),1),(0,r.Wm)(i.uT,{name:"fade"},{default:(0,r.w5)((function(){return[t.currentSaveStateNotice?((0,r.wg)(),(0,r.iD)("div",{key:0,class:(0,o.C_)(["alert",{transparent:!t.currentSaveStateNotice.error,error:t.currentSaveStateNotice.error}]),onClick:e[0]||(e[0]=(0,i.iM)((function(){}),["prevent"]))},(0,o.zw)(t.currentSaveStateNotice.error?t.$t("settings.saving_err"):t.$t("settings.saving_ok")),3)):(0,r.kq)("",!0)]})),_:1}),(0,r._)("button",{class:"btn button-default",title:t.$t("general.peek"),onClick:e[1]||(e[1]=function(){return t.peekModal&&t.peekModal.apply(t,arguments)})},[(0,r.Wm)(M,{icon:["far","window-minimize"],"fixed-width":""})],8,c),(0,r._)("button",{class:"btn button-default",title:t.$t("general.close"),onClick:e[2]||(e[2]=function(){return t.closeModal&&t.closeModal.apply(t,arguments)})},[(0,r.Wm)(M,{icon:"times","fixed-width":""})],8,d)]),(0,r._)("div",u,["user"===t.modalMode&&t.modalOpenedOnceUser?((0,r.wg)(),(0,r.j4)($,{key:0})):(0,r.kq)("",!0),"admin"===t.modalMode&&t.modalOpenedOnceAdmin?((0,r.wg)(),(0,r.j4)(A,{key:1})):(0,r.kq)("",!0)]),(0,r._)("div",p,["user"===t.modalMode?((0,r.wg)(),(0,r.j4)(S,{key:0,class:"export",trigger:"click",placement:"top",offset:{y:5,x:5},"bound-to":{x:"container"},"remove-padding":""},{trigger:(0,r.w5)((function(){return[(0,r._)("button",{class:"btn button-default",title:t.$t("general.close")},[(0,r._)("span",null,(0,o.zw)(t.$t("settings.file_export_import.backup_restore")),1),(0,r.Uk)(" "+(0,o.zw)(" ")+" "),(0,r.Wm)(M,{icon:"chevron-down"})],8,f)]})),content:(0,r.w5)((function(n){var a=n.close;return[(0,r._)("div",m,[(0,r._)("button",{class:"button-default dropdown-item dropdown-item-icon",onClick:[e[3]||(e[3]=(0,i.iM)((function(){return t.backup&&t.backup.apply(t,arguments)}),["prevent"])),a]},[(0,r.Wm)(M,{icon:"file-download","fixed-width":""}),(0,r._)("span",null,(0,o.zw)(t.$t("settings.file_export_import.backup_settings")),1)],8,g),(0,r._)("button",{class:"button-default dropdown-item dropdown-item-icon",onClick:[e[4]||(e[4]=(0,i.iM)((function(){return t.backupWithTheme&&t.backupWithTheme.apply(t,arguments)}),["prevent"])),a]},[(0,r.Wm)(M,{icon:"file-download","fixed-width":""}),(0,r._)("span",null,(0,o.zw)(t.$t("settings.file_export_import.backup_settings_theme")),1)],8,h),(0,r._)("button",{class:"button-default dropdown-item dropdown-item-icon",onClick:[e[5]||(e[5]=(0,i.iM)((function(){return t.restore&&t.restore.apply(t,arguments)}),["prevent"])),a]},[(0,r.Wm)(M,{icon:"file-upload","fixed-width":""}),(0,r._)("span",null,(0,o.zw)(t.$t("settings.file_export_import.restore_settings")),1)],8,b)])]})),_:1})):(0,r.kq)("",!0),(0,r.Wm)(D,{"model-value":!!t.expertLevel,"onUpdate:modelValue":e[6]||(e[6]=function(e){return t.expertLevel=Number(e)})},{default:(0,r.w5)((function(){return[(0,r.Uk)((0,o.zw)(t.$t("settings.expert_mode")),1)]})),_:1},8,["model-value"]),"admin"===t.modalMode?((0,r.wg)(),(0,r.iD)("span",v,[(0,r.Wm)(E,{keypath:"admin_dash.wip_notice"},{adminFeLink:(0,r.w5)((function(){return[(0,r._)("a",_,(0,o.zw)(t.$t("admin_dash.old_ui_link")),1)]})),_:1})])):(0,r.kq)("",!0),w,"admin"===t.modalMode?((0,r.wg)(),(0,r.iD)("span",y,[(0,r._)("button",{class:"button-default btn",disabled:!t.adminDraftAny,onClick:e[7]||(e[7]=function(){return t.resetAdminDraft&&t.resetAdminDraft.apply(t,arguments)})},(0,o.zw)(t.$t("admin_dash.reset_all")),9,k),(0,r.Uk)(" "+(0,o.zw)(" ")+" "),(0,r._)("button",{class:"button-default btn",disabled:!t.adminDraftAny,onClick:e[8]||(e[8]=function(){return t.pushAdminDraft&&t.pushAdminDraft.apply(t,arguments)})},(0,o.zw)(t.$t("admin_dash.commit_all")),9,O)])):(0,r.kq)("",!0)])])]})),_:1},8,["is-open","class","no-background"])}]])}}]);
-//# sourceMappingURL=7586.981b2305a0019f6042a5.js.map \ No newline at end of file
diff --git a/priv/static/static/js/8859.c76b0a0c3a4b5acbef11.js b/priv/static/static/js/8859.c76b0a0c3a4b5acbef11.js
new file mode 100644
index 000000000..d175c89ea
--- /dev/null
+++ b/priv/static/static/js/8859.c76b0a0c3a4b5acbef11.js
@@ -0,0 +1,2 @@
+"use strict";(self.webpackChunkpleroma_fe=self.webpackChunkpleroma_fe||[]).push([[8859],{17135:(t,e,n)=>{n.r(e),n.d(e,{default:()=>oe});var a=n(66252),i=n(3577),r=["label"],l=["label"],o={class:"setting-item"},s={href:"https://docs-develop.pleroma.social/backend/configuration/howto_database_config/",target:"_blank"},c=(0,a._)("code",null,"config :pleroma, configurable_from_database",-1),d=(0,a._)("code",null,"true",-1),u=["label"],p=["label"],m=["label"],f=n(79354),h=["label"],_={class:"setting-item"},b={class:"setting-list"},g={key:0},w={class:"setting-item"},v={class:"setting-list"},y={class:"setting-list suboptions"},k={class:"setting-list suboptions"},O={class:"setting-list"},D={class:"setting-list suboptions"},S={key:0},j={class:"setting-list"},P={class:"setting-item"},$={class:"setting-list"},W={key:0},z={class:"setting-list"},Z={class:"setting-list"},C={class:"setting-list"},L={class:"setting-list"},q=n(4942),I=n(59236),M=n(77218),x=n(87449),U={key:0,class:"StringSetting"},E=["for"],A=["id","disabled","value"],B=n(7761);function F(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,a)}return n}const T=function(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?F(Object(n),!0).forEach((function(e){(0,q.Z)(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):F(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}({},B.Z);var Y=n(83744);const H=(0,Y.Z)(T,[["render",function(t,e,n,r,l,o){var s=(0,a.up)("ModifiedIndicator"),c=(0,a.up)("ProfileSettingIndicator"),d=(0,a.up)("DraftButtons");return t.matchesExpertLevel?((0,a.wg)(),(0,a.iD)("label",U,[(0,a._)("label",{for:t.path,class:(0,i.C_)({faint:t.shouldBeDisabled})},[t.backendDescriptionLabel?((0,a.wg)(),(0,a.iD)(a.HY,{key:0},[(0,a.Uk)((0,i.zw)(t.backendDescriptionLabel+" "),1)],64)):"admin"===t.source?((0,a.wg)(),(0,a.iD)(a.HY,{key:1},[(0,a.Uk)(" MISSING LABEL FOR "+(0,i.zw)(t.path),1)],64)):(0,a.WI)(t.$slots,"default",{key:2})],10,E),(0,a._)("input",{id:t.path,class:"string-input",disabled:t.shouldBeDisabled,value:t.realDraftMode?t.draft:t.state,onChange:e[0]||(e[0]=function(){return t.update&&t.update.apply(t,arguments)})},null,40,A),(0,a.Uk)(" "+(0,i.zw)(" ")+" "),(0,a.Wm)(s,{changed:t.isChanged,onclick:t.reset},null,8,["changed","onclick"]),(0,a.Wm)(c,{"is-profile":t.isProfileSetting},null,8,["is-profile"]),(0,a.Wm)(d),t.backendDescriptionDescription?((0,a.wg)(),(0,a.iD)("p",{key:0,class:(0,i.C_)(["setting-description",{faint:t.shouldBeDisabled}])},(0,i.zw)(t.backendDescriptionDescription+" "),3)):(0,a.kq)("",!0)])):(0,a.kq)("",!0)}]]);var G={key:0,class:"GroupSetting"},K=n(18446),N=n.n(K);function R(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,a)}return n}function V(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?R(Object(n),!0).forEach((function(e){(0,q.Z)(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):R(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}const X=V(V({},B.Z),{},{computed:V(V({},B.Z.computed),{},{isDirty:function(){return!N()(this.state,this.draft)}})}),J=(0,Y.Z)(X,[["render",function(t,e,n,i,r,l){var o=(0,a.up)("ModifiedIndicator"),s=(0,a.up)("ProfileSettingIndicator"),c=(0,a.up)("DraftButtons");return t.matchesExpertLevel?((0,a.wg)(),(0,a.iD)("span",G,[(0,a.Wm)(o,{changed:t.isChanged,onclick:t.reset},null,8,["changed","onclick"]),(0,a.Wm)(s,{"is-profile":t.isProfileSetting},null,8,["is-profile"]),(0,a.Wm)(c)])):(0,a.kq)("",!0)}]]);var Q=["for"],tt={class:"attachment-input"},et={class:"controls control-field"},nt={for:"path"},at=["id","disabled","value"],it={key:0},rt={class:"controls control-upload"},lt=n(58394),ot=n(37804),st=n(66596);function ct(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,a)}return n}function dt(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?ct(Object(n),!0).forEach((function(e){(0,q.Z)(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):ct(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}const ut=dt(dt({},B.Z),{},{props:dt(dt({},B.Z.props),{},{compact:Boolean,acceptTypes:{type:String,required:!1,default:"image/*"}}),components:dt(dt({},B.Z.components),{},{MediaUpload:ot.Z,Attachment:st.Z}),computed:dt(dt({},B.Z.computed),{},{attachment:function(){var t=this.realDraftMode?this.draft:this.state,e=t.includes("://")?t:this.$store.state.instance.server+t;return{mimetype:(0,lt.iL)(e),url:e}}}),methods:dt(dt({},B.Z.methods),{},{setMediaFile:function(t){this.realDraftMode?this.draft=t.url:this.configSink(this.path,t.url)}})}),pt=(0,Y.Z)(ut,[["render",function(t,e,n,r,l,o){var s=(0,a.up)("ModifiedIndicator"),c=(0,a.up)("ProfileSettingIndicator"),d=(0,a.up)("Attachment"),u=(0,a.up)("MediaUpload"),p=(0,a.up)("DraftButtons");return t.matchesExpertLevel?((0,a.wg)(),(0,a.iD)("span",{key:0,class:(0,i.C_)(["AttachmentSetting",{"-compact":t.compact}])},[(0,a._)("label",{for:t.path,class:(0,i.C_)({faint:t.shouldBeDisabled})},[t.backendDescriptionLabel?((0,a.wg)(),(0,a.iD)(a.HY,{key:0},[(0,a.Uk)((0,i.zw)(t.backendDescriptionLabel+" "),1)],64)):"admin"===t.source?((0,a.wg)(),(0,a.iD)(a.HY,{key:1},[(0,a.Uk)(" MISSING LABEL FOR "+(0,i.zw)(t.path),1)],64)):(0,a.WI)(t.$slots,"default",{key:2})],10,Q),t.backendDescriptionDescription?((0,a.wg)(),(0,a.iD)("p",{key:0,class:(0,i.C_)(["setting-description",{faint:t.shouldBeDisabled}])},(0,i.zw)(t.backendDescriptionDescription+" "),3)):(0,a.kq)("",!0),(0,a._)("div",tt,[(0,a._)("div",et,[(0,a._)("label",nt,(0,i.zw)(t.$t("settings.url")),1),(0,a._)("input",{id:t.path,class:"string-input",disabled:t.shouldBeDisabled,value:t.realDraftMode?t.draft:t.state,onChange:e[0]||(e[0]=function(){return t.update&&t.update.apply(t,arguments)})},null,40,at),(0,a.Uk)(" "+(0,i.zw)(" ")+" "),(0,a.Wm)(s,{changed:t.isChanged,onclick:t.reset},null,8,["changed","onclick"]),(0,a.Wm)(c,{"is-profile":t.isProfileSetting},null,8,["is-profile"])]),t.compact?(0,a.kq)("",!0):((0,a.wg)(),(0,a.iD)("div",it,(0,i.zw)(t.$t("settings.preview")),1)),(0,a.Wm)(d,{class:"attachment",compact:t.compact,attachment:t.attachment,size:"small","hide-description":"",onSetMedia:t.onMedia,onNaturalSizeLoad:t.onNaturalSizeLoad},null,8,["compact","attachment","onSetMedia","onNaturalSizeLoad"]),(0,a._)("div",rt,[(0,a.Wm)(u,{ref:"mediaUpload",class:"media-upload-icon","drop-files":t.dropFiles,"normal-button":"","accept-types":t.acceptTypes,onUploaded:t.setMediaFile,onUploadFailed:t.uploadFailed},null,8,["drop-files","accept-types","onUploaded","onUploadFailed"])])]),(0,a.Wm)(p)],2)):(0,a.kq)("",!0)}]]);var mt=n(76875),ft=n(9382),ht=n(84131);function _t(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,a)}return n}ft.vI.add(ht.g4A);const bt={provide:function(){return{defaultDraftMode:!0,defaultSource:"admin"}},components:{BooleanSetting:I.Z,ChoiceSetting:M.Z,IntegerSetting:x.Z,StringSetting:H,AttachmentSetting:pt,GroupSetting:J},computed:function(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?_t(Object(n),!0).forEach((function(e){(0,q.Z)(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):_t(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}({},(0,mt.Z)())},gt=(0,Y.Z)(bt,[["render",function(t,e,n,r,l,o){var s=(0,a.up)("StringSetting"),c=(0,a.up)("AttachmentSetting"),d=(0,a.up)("BooleanSetting"),u=(0,a.up)("IntegerSetting"),p=(0,a.up)("ChoiceSetting"),m=(0,a.up)("GroupSetting");return(0,a.wg)(),(0,a.iD)("div",{label:t.$t("admin_dash.tabs.instance")},[(0,a._)("div",_,[(0,a._)("h2",null,(0,i.zw)(t.$t("admin_dash.instance.instance")),1),(0,a._)("ul",b,[(0,a._)("li",null,[(0,a.Wm)(s,{path:":pleroma.:instance.:name"})]),void 0!==t.adminDraft[":pleroma"][":instance"][":favicon"]?((0,a.wg)(),(0,a.iD)("li",g,[(0,a.Wm)(c,{compact:"",path:":pleroma.:instance.:favicon"})])):(0,a.kq)("",!0),(0,a._)("li",null,[(0,a.Wm)(s,{path:":pleroma.:instance.:email"})]),(0,a._)("li",null,[(0,a.Wm)(s,{path:":pleroma.:instance.:description"})]),(0,a._)("li",null,[(0,a.Wm)(s,{path:":pleroma.:instance.:short_description"})]),(0,a._)("li",null,[(0,a.Wm)(c,{compact:"",path:":pleroma.:instance.:instance_thumbnail"})]),(0,a._)("li",null,[(0,a.Wm)(c,{path:":pleroma.:instance.:background_image"})])])]),(0,a._)("div",w,[(0,a._)("h2",null,(0,i.zw)(t.$t("admin_dash.instance.registrations")),1),(0,a._)("ul",v,[(0,a._)("li",null,[(0,a.Wm)(d,{path:":pleroma.:instance.:registrations_open"}),(0,a._)("ul",y,[(0,a._)("li",null,[(0,a.Wm)(d,{path:":pleroma.:instance.:invites_enabled","parent-path":":pleroma.:instance.:registrations_open","parent-invert":""})])])]),(0,a._)("li",null,[(0,a.Wm)(d,{path:":pleroma.:instance.:birthday_required"}),(0,a._)("ul",k,[(0,a._)("li",null,[(0,a.Wm)(u,{path:":pleroma.:instance.:birthday_min_age","parent-path":":pleroma.:instance.:birthday_required"})])])]),(0,a._)("li",null,[(0,a.Wm)(d,{path:":pleroma.:instance.:account_activation_required"})]),(0,a._)("li",null,[(0,a.Wm)(d,{path:":pleroma.:instance.:account_approval_required"})]),(0,a._)("li",null,[(0,a._)("h3",null,(0,i.zw)(t.$t("admin_dash.instance.captcha_header")),1),(0,a._)("ul",O,[(0,a._)("li",null,[(0,a.Wm)(d,{path:[":pleroma","Pleroma.Captcha",":enabled"]},null,8,["path"]),(0,a._)("ul",D,[(0,a._)("li",null,[(0,a.Wm)(p,{path:[":pleroma","Pleroma.Captcha",":method"],"parent-path":[":pleroma","Pleroma.Captcha",":enabled"],"option-label-map":{"Pleroma.Captcha.Native":t.$t("admin_dash.captcha.native"),"Pleroma.Captcha.Kocaptcha":t.$t("admin_dash.captcha.kocaptcha")}},null,8,["path","parent-path","option-label-map"]),(0,a.Wm)(u,{path:[":pleroma","Pleroma.Captcha",":seconds_valid"],"parent-path":[":pleroma","Pleroma.Captcha",":enabled"]},null,8,["path","parent-path"])]),t.adminDraft[":pleroma"]["Pleroma.Captcha"][":enabled"]&&"Pleroma.Captcha.Kocaptcha"===t.adminDraft[":pleroma"]["Pleroma.Captcha"][":method"]?((0,a.wg)(),(0,a.iD)("li",S,[(0,a._)("h4",null,(0,i.zw)(t.$t("admin_dash.instance.kocaptcha")),1),(0,a._)("ul",j,[(0,a._)("li",null,[(0,a.Wm)(s,{path:[":pleroma","Pleroma.Captcha.Kocaptcha",":endpoint"]},null,8,["path"])])])])):(0,a.kq)("",!0)])])])])])]),(0,a._)("div",P,[(0,a._)("h2",null,(0,i.zw)(t.$t("admin_dash.instance.access")),1),(0,a._)("ul",$,[(0,a._)("li",null,[(0,a.Wm)(d,{"override-backend-description":"","override-backend-description-label":"",path:":pleroma.:instance.:public"})]),(0,a._)("li",null,[(0,a.Wm)(p,{"override-backend-description":"","override-backend-description-label":"",path:":pleroma.:instance.:limit_to_local_content"})]),t.expertLevel?((0,a.wg)(),(0,a.iD)("li",W,[(0,a._)("h3",null,(0,i.zw)(t.$t("admin_dash.instance.restrict.header")),1),(0,a._)("p",null,(0,i.zw)(t.$t("admin_dash.instance.restrict.description")),1),(0,a._)("ul",z,[(0,a._)("li",null,[(0,a._)("h4",null,(0,i.zw)(t.$t("admin_dash.instance.restrict.timelines")),1),(0,a._)("ul",Z,[(0,a._)("li",null,[(0,a.Wm)(d,{path:":pleroma.:restrict_unauthenticated.:timelines.:local","indeterminate-state":":if_instance_is_private","swap-description-and-label":"","hide-description":""})]),(0,a._)("li",null,[(0,a.Wm)(d,{path:":pleroma.:restrict_unauthenticated.:timelines.:federated","indeterminate-state":":if_instance_is_private","swap-description-and-label":"","hide-description":""})]),(0,a._)("li",null,[(0,a.Wm)(m,{path:":pleroma.:restrict_unauthenticated.:timelines"})])])]),(0,a._)("li",null,[(0,a._)("h4",null,(0,i.zw)(t.$t("admin_dash.instance.restrict.profiles")),1),(0,a._)("ul",C,[(0,a._)("li",null,[(0,a.Wm)(d,{path:":pleroma.:restrict_unauthenticated.:profiles.:local","indeterminate-state":":if_instance_is_private","swap-description-and-label":"","hide-description":""})]),(0,a._)("li",null,[(0,a.Wm)(d,{path:":pleroma.:restrict_unauthenticated.:profiles.:remote","indeterminate-state":":if_instance_is_private","swap-description-and-label":"","hide-description":""})]),(0,a._)("li",null,[(0,a.Wm)(m,{path:":pleroma.:restrict_unauthenticated.:profiles"})])])]),(0,a._)("li",null,[(0,a._)("h4",null,(0,i.zw)(t.$t("admin_dash.instance.restrict.activities")),1),(0,a._)("ul",L,[(0,a._)("li",null,[(0,a.Wm)(d,{path:":pleroma.:restrict_unauthenticated.:activities.:local","indeterminate-state":":if_instance_is_private","swap-description-and-label":"","hide-description":""})]),(0,a._)("li",null,[(0,a.Wm)(d,{path:":pleroma.:restrict_unauthenticated.:activities.:remote","indeterminate-state":":if_instance_is_private","swap-description-and-label":"","hide-description":""})]),(0,a._)("li",null,[(0,a.Wm)(m,{path:":pleroma.:restrict_unauthenticated.:activities"})])])])])])):(0,a.kq)("",!0)])])],8,h)}]]);var wt=["label"],vt={class:"setting-item"},yt={class:"setting-list"},kt={class:"setting-list"},Ot={class:"setting-list"},Dt={class:"setting-list"},St={class:"setting-list"},jt={class:"setting-list"};function Pt(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,a)}return n}ft.vI.add(ht.g4A);const $t={data:function(){},components:{BooleanSetting:I.Z,ChoiceSetting:M.Z,IntegerSetting:x.Z,StringSetting:H},computed:function(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?Pt(Object(n),!0).forEach((function(e){(0,q.Z)(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Pt(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}({},(0,mt.Z)())},Wt=(0,Y.Z)($t,[["render",function(t,e,n,r,l,o){var s=(0,a.up)("IntegerSetting");return(0,a.wg)(),(0,a.iD)("div",{label:t.$t("admin_dash.tabs.limits")},[(0,a._)("div",vt,[(0,a._)("h2",null,(0,i.zw)(t.$t("admin_dash.limits.arbitrary_limits")),1),(0,a._)("ul",yt,[(0,a._)("li",null,[(0,a._)("h3",null,(0,i.zw)(t.$t("admin_dash.limits.posts")),1),(0,a._)("ul",kt,[(0,a._)("li",null,[(0,a.Wm)(s,{source:"admin",path:":pleroma.:instance.:limit","draft-mode":""})]),(0,a._)("li",null,[(0,a.Wm)(s,{source:"admin",path:":pleroma.:instance.:remote_limit",expert:"1","draft-mode":""})])])]),(0,a._)("li",null,[(0,a._)("h3",null,(0,i.zw)(t.$t("admin_dash.limits.uploads")),1),(0,a._)("ul",Ot,[(0,a._)("li",null,[(0,a.Wm)(s,{source:"admin",path:":pleroma.:instance.:description_limit","draft-mode":""})]),(0,a._)("li",null,[(0,a.Wm)(s,{source:"admin",path:":pleroma.:instance.:upload_limit","draft-mode":""})]),(0,a._)("li",null,[(0,a.Wm)(s,{source:"admin",path:":pleroma.:instance.:max_media_attachments","draft-mode":""})])])]),(0,a._)("li",null,[(0,a._)("h3",null,(0,i.zw)(t.$t("admin_dash.limits.users")),1),(0,a._)("ul",Dt,[(0,a._)("li",null,[(0,a.Wm)(s,{source:"admin",path:":pleroma.:instance.:max_pinned_statuses","draft-mode":""})]),(0,a._)("li",null,[(0,a.Wm)(s,{source:"admin",path:":pleroma.:instance.:user_bio_length","draft-mode":""})]),(0,a._)("li",null,[(0,a.Wm)(s,{source:"admin",path:":pleroma.:instance.:user_name_length","draft-mode":""})]),(0,a._)("li",null,[(0,a._)("h4",null,(0,i.zw)(t.$t("admin_dash.limits.profile_fields")),1),(0,a._)("ul",St,[(0,a._)("li",null,[(0,a.Wm)(s,{source:"admin",path:":pleroma.:instance.:max_account_fields","draft-mode":""})]),(0,a._)("li",null,[(0,a.Wm)(s,{source:"admin",path:":pleroma.:instance.:max_remote_account_fields","draft-mode":"",expert:"1"})]),(0,a._)("li",null,[(0,a.Wm)(s,{source:"admin",path:":pleroma.:instance.:account_field_name_length","draft-mode":""})]),(0,a._)("li",null,[(0,a.Wm)(s,{source:"admin",path:":pleroma.:instance.:account_field_value_length","draft-mode":""})])])]),(0,a._)("li",null,[(0,a._)("h4",null,(0,i.zw)(t.$t("admin_dash.limits.user_uploads")),1),(0,a._)("ul",jt,[(0,a._)("li",null,[(0,a.Wm)(s,{source:"admin",path:":pleroma.:instance.:avatar_upload_limit","draft-mode":""})]),(0,a._)("li",null,[(0,a.Wm)(s,{source:"admin",path:":pleroma.:instance.:banner_upload_limit","draft-mode":""})])])])])])])])],8,wt)}]]);var zt=n(49963),Zt=["label"],Ct={class:"setting-item"},Lt={class:"setting-list"},qt={class:"setting-list"},It={class:"setting-list relative"},Mt={class:"cards-list"},xt={key:0},Ut=["href"],Et={key:1},At={key:2},Bt=["href"],Ft={class:"btn-group"},Tt=["onClick"],Yt={class:"dropdown-menu"},Ht=["onClick"],Gt=["title"],Kt={key:0,class:"btn-group"},Nt=["disabled","onClick"],Rt={class:"dropdown-menu"},Vt=["onClick"],Xt=["title"],Jt=n(15861),Qt=n(64687),te=n.n(Qt),ee=n(84535),ne=n(29187);function ae(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,a)}return n}ft.vI.add(ht.g4A);const ie={provide:function(){return{defaultDraftMode:!0,defaultSource:"admin"}},data:function(){return{working:!1}},components:{BooleanSetting:I.Z,ChoiceSetting:M.Z,IntegerSetting:x.Z,StringSetting:H,GroupSetting:J,PanelLoading:ne.Z,Popover:ee.default},created:function(){this.user.rights.admin&&this.$store.dispatch("loadFrontendsStuff")},computed:function(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?ae(Object(n),!0).forEach((function(e){(0,q.Z)(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):ae(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}({frontends:function(){return this.$store.state.adminSettings.frontends}},(0,mt.Z)()),methods:{canInstall:function(t){var e=this.frontends.find((function(e){return e.name===t.name}));return!!e&&e.refs.includes(t.ref)},getSuggestedRef:function(t){var e=this.adminDraft[":pleroma"][":frontends"][":primary"];return(null==e?void 0:e.name)===t.name&&this.canInstall(e)?e.ref:t.refs[0]},update:function(t,e){var n=this,a=e||this.getSuggestedRef(t),i=t.name,r={name:i,ref:a};this.working=!0,this.$store.state.api.backendInteractor.installFrontend({payload:r}).finally((function(){n.working=!1})).then(function(){var t=(0,Jt.Z)(te().mark((function t(e){var r;return te().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n.$store.dispatch("loadFrontendsStuff"),!e.error){t.next=8;break}return t.next=4,e.error.json();case 4:r=t.sent,n.$store.dispatch("pushGlobalNotice",{level:"error",messageKey:"admin_dash.frontend.failure_installing_frontend",messageArgs:{version:i+"/"+a,reason:r.error},timeout:5e3}),t.next=9;break;case 8:n.$store.dispatch("pushGlobalNotice",{level:"success",messageKey:"admin_dash.frontend.success_installing_frontend",messageArgs:{version:i+"/"+a},timeout:2e3});case 9:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}())},setDefault:function(t,e){var n=e||this.getSuggestedRef(t),a=t.name;this.$store.commit("updateAdminDraft",{path:[":pleroma",":frontends",":primary"],value:{name:a,ref:n}})}}},re=(0,Y.Z)(ie,[["render",function(t,e,n,r,l,o){var s=(0,a.up)("StringSetting"),c=(0,a.up)("GroupSetting"),d=(0,a.up)("PanelLoading"),u=(0,a.up)("i18n-t"),p=(0,a.up)("FAIcon"),m=(0,a.up)("Popover");return(0,a.wg)(),(0,a.iD)("div",{class:"frontends-tab",label:t.$t("admin_dash.tabs.frontends")},[(0,a._)("div",Ct,[(0,a._)("h2",null,(0,i.zw)(t.$t("admin_dash.tabs.frontends")),1),(0,a._)("p",null,(0,i.zw)(t.$t("admin_dash.frontend.wip_notice")),1),(0,a._)("ul",Lt,[(0,a._)("li",null,[(0,a._)("h3",null,(0,i.zw)(t.$t("admin_dash.frontend.default_frontend")),1),(0,a._)("p",null,(0,i.zw)(t.$t("admin_dash.frontend.default_frontend_tip")),1),(0,a._)("ul",qt,[(0,a._)("li",null,[(0,a.Wm)(s,{path:":pleroma.:frontends.:primary.name"})]),(0,a._)("li",null,[(0,a.Wm)(s,{path:":pleroma.:frontends.:primary.ref"})]),(0,a._)("li",null,[(0,a.Wm)(c,{path:":pleroma.:frontends.:primary"})])])])]),(0,a._)("div",It,[t.working?((0,a.wg)(),(0,a.j4)(d,{key:0,class:"overlay"})):(0,a.kq)("",!0),(0,a._)("h3",null,(0,i.zw)(t.$t("admin_dash.frontend.available_frontends")),1),(0,a._)("ul",Mt,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(t.frontends,(function(e){var n,r,l,o;return(0,a.wg)(),(0,a.iD)("li",{key:e.name},[(0,a._)("strong",null,(0,i.zw)(e.name),1),(0,a.Uk)(" "+(0,i.zw)(" ")+" "),(null===(n=t.adminDraft[":pleroma"][":frontends"][":primary"])||void 0===n?void 0:n.name)===e.name?((0,a.wg)(),(0,a.iD)("span",xt,[(null===(r=t.adminDraft[":pleroma"][":frontends"][":primary"])||void 0===r?void 0:r.ref)===e.refs[0]?((0,a.wg)(),(0,a.j4)(u,{key:0,keypath:"admin_dash.frontend.is_default"})):((0,a.wg)(),(0,a.j4)(u,{key:1,keypath:"admin_dash.frontend.is_default_custom"},{version:(0,a.w5)((function(){return[(0,a._)("code",null,(0,i.zw)(t.adminDraft[":pleroma"][":frontends"][":primary"].ref),1)]})),_:1}))])):(0,a.kq)("",!0),(0,a._)("dl",null,[(0,a._)("dt",null,(0,i.zw)(t.$t("admin_dash.frontend.repository")),1),(0,a._)("dd",null,[(0,a._)("a",{href:e.git,target:"_blank"},(0,i.zw)(e.git),9,Ut)]),t.expertLevel?((0,a.wg)(),(0,a.iD)(a.HY,{key:0},[(0,a._)("dt",null,(0,i.zw)(t.$t("admin_dash.frontend.versions")),1),((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(e.refs,(function(t){return(0,a.wg)(),(0,a.iD)("dd",{key:t},[(0,a._)("code",null,(0,i.zw)(t),1)])})),128))],64)):(0,a.kq)("",!0),t.expertLevel?((0,a.wg)(),(0,a.iD)("dt",Et,(0,i.zw)(t.$t("admin_dash.frontend.build_url")),1)):(0,a.kq)("",!0),t.expertLevel?((0,a.wg)(),(0,a.iD)("dd",At,[(0,a._)("a",{href:e.build_url,target:"_blank"},(0,i.zw)(e.build_url),9,Bt)])):(0,a.kq)("",!0)]),(0,a._)("div",null,[(0,a._)("span",Ft,[(0,a._)("button",{class:"button button-default btn",type:"button",onClick:function(n){return t.update(e)}},[(0,a.Uk)((0,i.zw)(e.installed?t.$t("admin_dash.frontend.reinstall"):t.$t("admin_dash.frontend.install"))+" ",1),(0,a._)("code",null,(0,i.zw)(t.getSuggestedRef(e)),1)],8,Tt),e.refs.length>1?((0,a.wg)(),(0,a.j4)(m,{key:0,trigger:"click",class:"button-dropdown",placement:"bottom"},{content:(0,a.w5)((function(n){var r=n.close;return[(0,a._)("div",Yt,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(e.refs,(function(n){return(0,a.wg)(),(0,a.iD)("button",{key:n,class:"button-default dropdown-item",onClick:[(0,zt.iM)((function(a){return t.update(e,n)}),["prevent"]),r]},[(0,a.Wm)(u,{keypath:"admin_dash.frontend.install_version"},{version:(0,a.w5)((function(){return[(0,a._)("code",null,(0,i.zw)(n),1)]})),_:2},1024)],8,Ht)})),128))])]})),trigger:(0,a.w5)((function(){return[(0,a._)("button",{class:"button button-default btn dropdown-button",type:"button",title:t.$t("admin_dash.frontend.more_install_options")},[(0,a.Wm)(p,{icon:"chevron-down"})],8,Gt)]})),_:2},1024)):(0,a.kq)("",!0)]),e.installed&&"admin-fe"!==e.name?((0,a.wg)(),(0,a.iD)("span",Kt,[(0,a._)("button",{class:"button button-default btn",type:"button",disabled:(null===(l=t.adminDraft[":pleroma"][":frontends"][":primary"])||void 0===l?void 0:l.name)===e.name&&(null===(o=t.adminDraft[":pleroma"][":frontends"][":primary"])||void 0===o?void 0:o.ref)===e.refs[0],onClick:function(n){return t.setDefault(e)}},[(0,a.Uk)((0,i.zw)(t.$t("admin_dash.frontend.set_default"))+" ",1),(0,a._)("code",null,(0,i.zw)(t.getSuggestedRef(e)),1)],8,Nt),(0,a.Uk)(" "+(0,i.zw)(" ")+" "),e.refs.length>1?((0,a.wg)(),(0,a.j4)(m,{key:0,trigger:"click",class:"button-dropdown",placement:"bottom"},{content:(0,a.w5)((function(n){var r=n.close;return[(0,a._)("div",Rt,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(e.installedRefs||e.refs,(function(n){return(0,a.wg)(),(0,a.iD)("button",{key:n,class:"button-default dropdown-item",onClick:[(0,zt.iM)((function(a){return t.setDefault(e,n)}),["prevent"]),r]},[(0,a.Wm)(u,{keypath:"admin_dash.frontend.set_default_version"},{version:(0,a.w5)((function(){return[(0,a._)("code",null,(0,i.zw)(n),1)]})),_:2},1024)],8,Vt)})),128))])]})),trigger:(0,a.w5)((function(){return[(0,a._)("button",{class:"button button-default btn dropdown-button",type:"button",title:t.$t("admin_dash.frontend.more_default_options")},[(0,a.Wm)(p,{icon:"chevron-down"})],8,Xt)]})),_:2},1024)):(0,a.kq)("",!0)])):(0,a.kq)("",!0)])])})),128))])])])],8,Zt)}]]);ft.vI.add(ht.klh,ht.ioV,ht.py1,ht.XsY,ht.qmU,ht.q7m,ht.Aq,ht.YHc);const le={components:{TabSwitcher:f.Z,InstanceTab:gt,LimitsTab:Wt,FrontendsTab:re},computed:{user:function(){return this.$store.state.users.currentUser},isLoggedIn:function(){return!!this.$store.state.users.currentUser},open:function(){return"hidden"!==this.$store.state.interface.settingsModalState},bodyLock:function(){return"visible"===this.$store.state.interface.settingsModalState},adminDbLoaded:function(){return this.$store.state.adminSettings.loaded},adminDescriptionsLoaded:function(){return null!==this.$store.state.adminSettings.descriptions},noDb:function(){return!1===this.$store.state.adminSettings.dbConfigEnabled}},created:function(){this.user.rights.admin&&this.$store.dispatch("loadAdminStuff")},methods:{onOpen:function(){var t=this.$store.state.interface.settingsModalTargetTab;if(t){var e=this.$refs.tabSwitcher.$slots.default().findIndex((function(e){return e.props&&e.props["data-tab-name"]===t}));e>=0&&this.$refs.tabSwitcher.setTab(e)}this.$store.dispatch("clearSettingsModalTargetTab")}},mounted:function(){this.onOpen()},watch:{open:function(t){t&&this.onOpen()}}},oe=(0,Y.Z)(le,[["render",function(t,e,n,f,h,_){var b=(0,a.up)("i18n-t"),g=(0,a.up)("InstanceTab"),w=(0,a.up)("LimitsTab"),v=(0,a.up)("FrontendsTab"),y=(0,a.up)("tab-switcher");return t.adminDescriptionsLoaded&&(t.noDb||t.adminDbLoaded)?((0,a.wg)(),(0,a.j4)(y,{key:0,ref:"tabSwitcher",class:"settings_tab-switcher","side-tab-bar":!0,"scrollable-tabs":!0,"render-only-focused":!0,"body-scroll-lock":t.bodyLock},{default:(0,a.w5)((function(){return[t.noDb?((0,a.wg)(),(0,a.iD)("div",{key:0,label:t.$t("admin_dash.tabs.nodb"),icon:"exclamation-triangle","data-tab-name":"nodb-notice"},[(0,a._)("div",{label:t.$t("admin_dash.tabs.nodb")},[(0,a._)("div",o,[(0,a._)("h2",null,(0,i.zw)(t.$t("admin_dash.nodb.heading")),1),(0,a.Wm)(b,{keypath:"admin_dash.nodb.text"},{documentation:(0,a.w5)((function(){return[(0,a._)("a",s,(0,i.zw)(t.$t("admin_dash.nodb.documentation")),1)]})),property:(0,a.w5)((function(){return[c]})),value:(0,a.w5)((function(){return[d]})),_:1}),(0,a._)("p",null,(0,i.zw)(t.$t("admin_dash.nodb.text2")),1)])],8,l)],8,r)):(0,a.kq)("",!0),t.adminDbLoaded?((0,a.wg)(),(0,a.iD)("div",{key:1,label:t.$t("admin_dash.tabs.instance"),icon:"wrench","data-tab-name":"general"},[(0,a.Wm)(g)],8,u)):(0,a.kq)("",!0),t.adminDbLoaded?((0,a.wg)(),(0,a.iD)("div",{key:2,label:t.$t("admin_dash.tabs.limits"),icon:"hand","data-tab-name":"limits"},[(0,a.Wm)(w)],8,p)):(0,a.kq)("",!0),(0,a._)("div",{label:t.$t("admin_dash.tabs.frontends"),icon:"laptop-code","data-tab-name":"frontends"},[(0,a.Wm)(v)],8,m)]})),_:1},8,["body-scroll-lock"])):(0,a.kq)("",!0)}]])}}]);
+//# sourceMappingURL=8859.c76b0a0c3a4b5acbef11.js.map \ No newline at end of file
diff --git a/priv/static/static/js/8859.c76b0a0c3a4b5acbef11.js.map b/priv/static/static/js/8859.c76b0a0c3a4b5acbef11.js.map
new file mode 100644
index 000000000..52283bef4
--- /dev/null
+++ b/priv/static/static/js/8859.c76b0a0c3a4b5acbef11.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/js/8859.c76b0a0c3a4b5acbef11.js","mappings":"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","sources":["webpack://pleroma_fe/./src/components/settings_modal/settings_modal_admin_content.vue","webpack://pleroma_fe/./src/components/settings_modal/admin_tabs/instance_tab.vue","webpack://pleroma_fe/./src/components/settings_modal/helpers/string_setting.vue","webpack://pleroma_fe/./src/components/settings_modal/helpers/string_setting.js","webpack://pleroma_fe/./src/components/settings_modal/helpers/string_setting.vue?3ee8","webpack://pleroma_fe/./src/components/settings_modal/helpers/group_setting.vue","webpack://pleroma_fe/./src/components/settings_modal/helpers/group_setting.js","webpack://pleroma_fe/./src/components/settings_modal/helpers/group_setting.vue?7ac1","webpack://pleroma_fe/./src/components/settings_modal/helpers/attachment_setting.vue","webpack://pleroma_fe/./src/components/settings_modal/helpers/attachment_setting.js","webpack://pleroma_fe/./src/components/settings_modal/helpers/attachment_setting.vue?5a3a","webpack://pleroma_fe/./src/components/settings_modal/admin_tabs/instance_tab.js","webpack://pleroma_fe/./src/components/settings_modal/admin_tabs/instance_tab.vue?14f3","webpack://pleroma_fe/./src/components/settings_modal/admin_tabs/limits_tab.vue","webpack://pleroma_fe/./src/components/settings_modal/admin_tabs/limits_tab.js","webpack://pleroma_fe/./src/components/settings_modal/admin_tabs/limits_tab.vue?14a2","webpack://pleroma_fe/./src/components/settings_modal/admin_tabs/frontends_tab.vue","webpack://pleroma_fe/./src/components/settings_modal/admin_tabs/frontends_tab.js","webpack://pleroma_fe/./src/components/settings_modal/admin_tabs/frontends_tab.vue?a9d3","webpack://pleroma_fe/./src/components/settings_modal/settings_modal_admin_content.js","webpack://pleroma_fe/./src/components/settings_modal/settings_modal_admin_content.vue?3247"],"sourcesContent":["<template>\n <tab-switcher\n v-if=\"adminDescriptionsLoaded && (noDb || adminDbLoaded)\"\n ref=\"tabSwitcher\"\n class=\"settings_tab-switcher\"\n :side-tab-bar=\"true\"\n :scrollable-tabs=\"true\"\n :render-only-focused=\"true\"\n :body-scroll-lock=\"bodyLock\"\n >\n <div\n v-if=\"noDb\"\n :label=\"$t('admin_dash.tabs.nodb')\"\n icon=\"exclamation-triangle\"\n data-tab-name=\"nodb-notice\"\n >\n <div :label=\"$t('admin_dash.tabs.nodb')\">\n <div class=\"setting-item\">\n <h2>{{ $t('admin_dash.nodb.heading') }}</h2>\n <i18n-t keypath=\"admin_dash.nodb.text\">\n <template #documentation>\n <a\n href=\"https://docs-develop.pleroma.social/backend/configuration/howto_database_config/\"\n target=\"_blank\"\n >\n {{ $t(\"admin_dash.nodb.documentation\") }}\n </a>\n </template>\n <template #property>\n <code>config :pleroma, configurable_from_database</code>\n </template>\n <template #value>\n <code>true</code>\n </template>\n </i18n-t>\n <p>{{ $t('admin_dash.nodb.text2') }}</p>\n </div>\n </div>\n </div>\n <div\n v-if=\"adminDbLoaded\"\n :label=\"$t('admin_dash.tabs.instance')\"\n icon=\"wrench\"\n data-tab-name=\"general\"\n >\n <InstanceTab />\n </div>\n <div\n v-if=\"adminDbLoaded\"\n :label=\"$t('admin_dash.tabs.limits')\"\n icon=\"hand\"\n data-tab-name=\"limits\"\n >\n <LimitsTab />\n </div>\n <div\n :label=\"$t('admin_dash.tabs.frontends')\"\n icon=\"laptop-code\"\n data-tab-name=\"frontends\"\n >\n <FrontendsTab />\n </div>\n </tab-switcher>\n</template>\n\n<script src=\"./settings_modal_admin_content.js\"></script>\n\n<style src=\"./settings_modal_admin_content.scss\" lang=\"scss\"></style>\n","<template>\n <div :label=\"$t('admin_dash.tabs.instance')\">\n <div class=\"setting-item\">\n <h2>{{ $t('admin_dash.instance.instance') }}</h2>\n <ul class=\"setting-list\">\n <li>\n <StringSetting path=\":pleroma.:instance.:name\" />\n </li>\n <!-- See https://git.pleroma.social/pleroma/pleroma/-/merge_requests/3963 -->\n <li v-if=\"adminDraft[':pleroma'][':instance'][':favicon'] !== undefined\">\n <AttachmentSetting compact path=\":pleroma.:instance.:favicon\" />\n </li>\n <li>\n <StringSetting path=\":pleroma.:instance.:email\" />\n </li>\n <li>\n <StringSetting path=\":pleroma.:instance.:description\" />\n </li>\n <li>\n <StringSetting path=\":pleroma.:instance.:short_description\" />\n </li>\n <li>\n <AttachmentSetting compact path=\":pleroma.:instance.:instance_thumbnail\" />\n </li>\n <li>\n <AttachmentSetting path=\":pleroma.:instance.:background_image\" />\n </li>\n </ul>\n </div>\n <div class=\"setting-item\">\n <h2>{{ $t('admin_dash.instance.registrations') }}</h2>\n <ul class=\"setting-list\">\n <li>\n <BooleanSetting path=\":pleroma.:instance.:registrations_open\" />\n <ul class=\"setting-list suboptions\">\n <li>\n <BooleanSetting\n path=\":pleroma.:instance.:invites_enabled\"\n parent-path=\":pleroma.:instance.:registrations_open\"\n parent-invert\n />\n </li>\n </ul>\n </li>\n <li>\n <BooleanSetting path=\":pleroma.:instance.:birthday_required\" />\n <ul class=\"setting-list suboptions\">\n <li>\n <IntegerSetting\n path=\":pleroma.:instance.:birthday_min_age\"\n parent-path=\":pleroma.:instance.:birthday_required\"\n />\n </li>\n </ul>\n </li>\n <li>\n <BooleanSetting path=\":pleroma.:instance.:account_activation_required\" />\n </li>\n <li>\n <BooleanSetting path=\":pleroma.:instance.:account_approval_required\" />\n </li>\n <li>\n <h3>{{ $t('admin_dash.instance.captcha_header') }}</h3>\n <ul class=\"setting-list\">\n <li>\n <BooleanSetting :path=\"[':pleroma', 'Pleroma.Captcha', ':enabled']\" />\n <ul class=\"setting-list suboptions\">\n <li>\n <ChoiceSetting\n :path=\"[':pleroma', 'Pleroma.Captcha', ':method']\"\n :parent-path=\"[':pleroma', 'Pleroma.Captcha', ':enabled']\"\n :option-label-map=\"{\n 'Pleroma.Captcha.Native': $t('admin_dash.captcha.native'),\n 'Pleroma.Captcha.Kocaptcha': $t('admin_dash.captcha.kocaptcha')\n }\"\n />\n <IntegerSetting\n :path=\"[':pleroma', 'Pleroma.Captcha', ':seconds_valid']\"\n :parent-path=\"[':pleroma', 'Pleroma.Captcha', ':enabled']\"\n />\n </li>\n <li\n v-if=\"adminDraft[':pleroma']['Pleroma.Captcha'][':enabled'] && adminDraft[':pleroma']['Pleroma.Captcha'][':method'] === 'Pleroma.Captcha.Kocaptcha'\"\n >\n <h4>{{ $t('admin_dash.instance.kocaptcha') }}</h4>\n <ul class=\"setting-list\">\n <li>\n <StringSetting :path=\"[':pleroma', 'Pleroma.Captcha.Kocaptcha', ':endpoint']\" />\n </li>\n </ul>\n </li>\n </ul>\n </li>\n </ul>\n </li>\n </ul>\n </div>\n <div class=\"setting-item\">\n <h2>{{ $t('admin_dash.instance.access') }}</h2>\n <ul class=\"setting-list\">\n <li>\n <BooleanSetting\n override-backend-description\n override-backend-description-label\n path=\":pleroma.:instance.:public\"\n />\n </li>\n <li>\n <ChoiceSetting\n override-backend-description\n override-backend-description-label\n path=\":pleroma.:instance.:limit_to_local_content\"\n />\n </li>\n <li v-if=\"expertLevel\">\n <h3>{{ $t('admin_dash.instance.restrict.header') }}</h3>\n <p>\n {{ $t('admin_dash.instance.restrict.description') }}\n </p>\n <ul class=\"setting-list\">\n <li>\n <h4>{{ $t('admin_dash.instance.restrict.timelines') }}</h4>\n <ul class=\"setting-list\">\n <li>\n <BooleanSetting\n path=\":pleroma.:restrict_unauthenticated.:timelines.:local\"\n indeterminate-state=\":if_instance_is_private\"\n swap-description-and-label\n hide-description\n />\n </li>\n <li>\n <BooleanSetting\n path=\":pleroma.:restrict_unauthenticated.:timelines.:federated\"\n indeterminate-state=\":if_instance_is_private\"\n swap-description-and-label\n hide-description\n />\n </li>\n <li>\n <GroupSetting path=\":pleroma.:restrict_unauthenticated.:timelines\" />\n </li>\n </ul>\n </li>\n <li>\n <h4>{{ $t('admin_dash.instance.restrict.profiles') }}</h4>\n <ul class=\"setting-list\">\n <li>\n <BooleanSetting\n path=\":pleroma.:restrict_unauthenticated.:profiles.:local\"\n indeterminate-state=\":if_instance_is_private\"\n swap-description-and-label\n hide-description\n />\n </li>\n <li>\n <BooleanSetting\n path=\":pleroma.:restrict_unauthenticated.:profiles.:remote\"\n indeterminate-state=\":if_instance_is_private\"\n swap-description-and-label\n hide-description\n />\n </li>\n <li>\n <GroupSetting path=\":pleroma.:restrict_unauthenticated.:profiles\" />\n </li>\n </ul>\n </li>\n <li>\n <h4>{{ $t('admin_dash.instance.restrict.activities') }}</h4>\n <ul class=\"setting-list\">\n <li>\n <BooleanSetting\n path=\":pleroma.:restrict_unauthenticated.:activities.:local\"\n indeterminate-state=\":if_instance_is_private\"\n swap-description-and-label\n hide-description\n />\n </li>\n <li>\n <BooleanSetting\n path=\":pleroma.:restrict_unauthenticated.:activities.:remote\"\n indeterminate-state=\":if_instance_is_private\"\n swap-description-and-label\n hide-description\n />\n </li>\n <li>\n <GroupSetting path=\":pleroma.:restrict_unauthenticated.:activities\" />\n </li>\n </ul>\n </li>\n </ul>\n </li>\n </ul>\n </div>\n </div>\n</template>\n\n<script src=\"./instance_tab.js\"></script>\n","<template>\n <label\n v-if=\"matchesExpertLevel\"\n class=\"StringSetting\"\n >\n <label\n :for=\"path\"\n :class=\"{ 'faint': shouldBeDisabled }\"\n >\n <template v-if=\"backendDescriptionLabel\">\n {{ backendDescriptionLabel + ' ' }}\n </template>\n <template v-else-if=\"source === 'admin'\">\n MISSING LABEL FOR {{ path }}\n </template>\n <slot v-else />\n </label>\n <input\n :id=\"path\"\n class=\"string-input\"\n :disabled=\"shouldBeDisabled\"\n :value=\"realDraftMode ? draft : state\"\n @change=\"update\"\n >\n {{ ' ' }}\n <ModifiedIndicator\n :changed=\"isChanged\"\n :onclick=\"reset\"\n />\n <ProfileSettingIndicator :is-profile=\"isProfileSetting\" />\n <DraftButtons />\n <p\n v-if=\"backendDescriptionDescription\"\n class=\"setting-description\"\n :class=\"{ 'faint': shouldBeDisabled }\"\n >\n {{ backendDescriptionDescription + ' ' }}\n </p>\n </label>\n</template>\n\n<script src=\"./string_setting.js\"></script>\n","import Setting from './setting.js'\n\nexport default {\n ...Setting\n}\n","import { render } from \"./string_setting.vue?vue&type=template&id=77b0b493\"\nimport script from \"./string_setting.js?vue&type=script&lang=js\"\nexport * from \"./string_setting.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <span\n v-if=\"matchesExpertLevel\"\n class=\"GroupSetting\"\n >\n <ModifiedIndicator\n :changed=\"isChanged\"\n :onclick=\"reset\"\n />\n <ProfileSettingIndicator :is-profile=\"isProfileSetting\" />\n <DraftButtons />\n </span>\n</template>\n\n<script src=\"./group_setting.js\"></script>\n","import { isEqual } from 'lodash'\n\nimport Setting from './setting.js'\n\nexport default {\n ...Setting,\n computed: {\n ...Setting.computed,\n isDirty () {\n return !isEqual(this.state, this.draft)\n }\n }\n}\n","import { render } from \"./group_setting.vue?vue&type=template&id=19cb3543\"\nimport script from \"./group_setting.js?vue&type=script&lang=js\"\nexport * from \"./group_setting.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <span\n v-if=\"matchesExpertLevel\"\n class=\"AttachmentSetting\"\n :class=\"{ '-compact': compact }\"\n >\n <label\n :for=\"path\"\n :class=\"{ 'faint': shouldBeDisabled }\"\n >\n <template v-if=\"backendDescriptionLabel\">\n {{ backendDescriptionLabel + ' ' }}\n </template>\n <template v-else-if=\"source === 'admin'\">\n MISSING LABEL FOR {{ path }}\n </template>\n <slot v-else />\n\n </label>\n <p\n v-if=\"backendDescriptionDescription\"\n class=\"setting-description\"\n :class=\"{ 'faint': shouldBeDisabled }\"\n >\n {{ backendDescriptionDescription + ' ' }}\n </p>\n <div class=\"attachment-input\">\n <div class=\"controls control-field\">\n <label for=\"path\">{{ $t('settings.url') }}</label>\n <input\n :id=\"path\"\n class=\"string-input\"\n :disabled=\"shouldBeDisabled\"\n :value=\"realDraftMode ? draft : state\"\n @change=\"update\"\n >\n {{ ' ' }}\n <ModifiedIndicator\n :changed=\"isChanged\"\n :onclick=\"reset\"\n />\n <ProfileSettingIndicator :is-profile=\"isProfileSetting\" />\n </div>\n <div v-if=\"!compact\">{{ $t('settings.preview') }}</div>\n <Attachment\n class=\"attachment\"\n :compact=\"compact\"\n :attachment=\"attachment\"\n size=\"small\"\n hide-description\n @setMedia=\"onMedia\"\n @naturalSizeLoad=\"onNaturalSizeLoad\"\n />\n <div class=\"controls control-upload\">\n <MediaUpload\n ref=\"mediaUpload\"\n class=\"media-upload-icon\"\n :drop-files=\"dropFiles\"\n normal-button\n :accept-types=\"acceptTypes\"\n @uploaded=\"setMediaFile\"\n @upload-failed=\"uploadFailed\"\n />\n </div>\n </div>\n <DraftButtons />\n </span>\n</template>\n\n<script src=\"./attachment_setting.js\"></script>\n\n<style lang=\"scss\">\n.AttachmentSetting {\n .attachment {\n display: block;\n width: 100%;\n height: 15em;\n margin-bottom: 0.5em;\n }\n\n .attachment-input {\n margin-left: 1em;\n display: flex;\n flex-direction: column;\n width: 20em;\n }\n\n &.-compact {\n .attachment-input {\n flex-direction: row;\n align-items: flex-end;\n }\n\n .attachment {\n flex: 0;\n order: 0;\n display: block;\n min-width: 4em;\n height: 4em;\n align-self: center;\n margin-bottom: 0;\n }\n\n .control-field {\n order: 1;\n min-width: 12em;\n margin-left: 0.5em;\n }\n\n .control-upload {\n order: 2;\n min-width: 12em;\n padding: 0 0.5em;\n }\n }\n\n .controls {\n margin-bottom: 0.5em;\n\n input,\n button {\n width: 100%;\n }\n }\n}\n</style>\n","import Setting from './setting.js'\nimport { fileTypeExt } from 'src/services/file_type/file_type.service.js'\nimport MediaUpload from 'src/components/media_upload/media_upload.vue'\nimport Attachment from 'src/components/attachment/attachment.vue'\n\nexport default {\n ...Setting,\n props: {\n ...Setting.props,\n compact: Boolean,\n acceptTypes: {\n type: String,\n required: false,\n default: 'image/*'\n }\n },\n components: {\n ...Setting.components,\n MediaUpload,\n Attachment\n },\n computed: {\n ...Setting.computed,\n attachment () {\n const path = this.realDraftMode ? this.draft : this.state\n // The \"server\" part is primarily for local dev, but could be useful for alt-domain or multiuser usage.\n const url = path.includes('://') ? path : this.$store.state.instance.server + path\n return {\n mimetype: fileTypeExt(url),\n url\n }\n }\n },\n methods: {\n ...Setting.methods,\n setMediaFile (fileInfo) {\n if (this.realDraftMode) {\n this.draft = fileInfo.url\n } else {\n this.configSink(this.path, fileInfo.url)\n }\n }\n }\n}\n","import { render } from \"./attachment_setting.vue?vue&type=template&id=01b5193b\"\nimport script from \"./attachment_setting.js?vue&type=script&lang=js\"\nexport * from \"./attachment_setting.js?vue&type=script&lang=js\"\n\nimport \"./attachment_setting.vue?vue&type=style&index=0&id=01b5193b&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import BooleanSetting from '../helpers/boolean_setting.vue'\nimport ChoiceSetting from '../helpers/choice_setting.vue'\nimport IntegerSetting from '../helpers/integer_setting.vue'\nimport StringSetting from '../helpers/string_setting.vue'\nimport GroupSetting from '../helpers/group_setting.vue'\nimport AttachmentSetting from '../helpers/attachment_setting.vue'\n\nimport SharedComputedObject from '../helpers/shared_computed_object.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faGlobe\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faGlobe\n)\n\nconst InstanceTab = {\n provide () {\n return {\n defaultDraftMode: true,\n defaultSource: 'admin'\n }\n },\n components: {\n BooleanSetting,\n ChoiceSetting,\n IntegerSetting,\n StringSetting,\n AttachmentSetting,\n GroupSetting\n },\n computed: {\n ...SharedComputedObject()\n }\n}\n\nexport default InstanceTab\n","import { render } from \"./instance_tab.vue?vue&type=template&id=a448cf80\"\nimport script from \"./instance_tab.js?vue&type=script&lang=js\"\nexport * from \"./instance_tab.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div :label=\"$t('admin_dash.tabs.limits')\">\n <div class=\"setting-item\">\n <h2>{{ $t('admin_dash.limits.arbitrary_limits') }}</h2>\n <ul class=\"setting-list\">\n <li>\n <h3>{{ $t('admin_dash.limits.posts') }}</h3>\n <ul class=\"setting-list\">\n <li>\n <IntegerSetting\n source=\"admin\"\n path=\":pleroma.:instance.:limit\"\n draft-mode\n />\n </li>\n <li>\n <IntegerSetting\n source=\"admin\"\n path=\":pleroma.:instance.:remote_limit\"\n expert=\"1\"\n draft-mode\n />\n </li>\n </ul>\n </li>\n <li>\n <h3>{{ $t('admin_dash.limits.uploads') }}</h3>\n <ul class=\"setting-list\">\n <li>\n <IntegerSetting\n source=\"admin\"\n path=\":pleroma.:instance.:description_limit\"\n draft-mode\n />\n </li>\n <li>\n <IntegerSetting\n source=\"admin\"\n path=\":pleroma.:instance.:upload_limit\"\n draft-mode\n />\n </li>\n <li>\n <IntegerSetting\n source=\"admin\"\n path=\":pleroma.:instance.:max_media_attachments\"\n draft-mode\n />\n </li>\n </ul>\n </li>\n <li>\n <h3>{{ $t('admin_dash.limits.users') }}</h3>\n <ul class=\"setting-list\">\n <li>\n <IntegerSetting\n source=\"admin\"\n path=\":pleroma.:instance.:max_pinned_statuses\"\n draft-mode\n />\n </li>\n <li>\n <IntegerSetting\n source=\"admin\"\n path=\":pleroma.:instance.:user_bio_length\"\n draft-mode\n />\n </li>\n <li>\n <IntegerSetting\n source=\"admin\"\n path=\":pleroma.:instance.:user_name_length\"\n draft-mode\n />\n </li>\n <li>\n <h4>{{ $t('admin_dash.limits.profile_fields') }}</h4>\n <ul class=\"setting-list\">\n <li>\n <IntegerSetting\n source=\"admin\"\n path=\":pleroma.:instance.:max_account_fields\"\n draft-mode\n />\n </li>\n <li>\n <IntegerSetting\n source=\"admin\"\n path=\":pleroma.:instance.:max_remote_account_fields\"\n draft-mode\n expert=\"1\"\n />\n </li>\n <li>\n <IntegerSetting\n source=\"admin\"\n path=\":pleroma.:instance.:account_field_name_length\"\n draft-mode\n />\n </li>\n <li>\n <IntegerSetting\n source=\"admin\"\n path=\":pleroma.:instance.:account_field_value_length\"\n draft-mode\n />\n </li>\n </ul>\n </li>\n <li>\n <h4>{{ $t('admin_dash.limits.user_uploads') }}</h4>\n <ul class=\"setting-list\">\n <li>\n <IntegerSetting\n source=\"admin\"\n path=\":pleroma.:instance.:avatar_upload_limit\"\n draft-mode\n />\n </li>\n <li>\n <IntegerSetting\n source=\"admin\"\n path=\":pleroma.:instance.:banner_upload_limit\"\n draft-mode\n />\n </li>\n </ul>\n </li>\n </ul>\n </li>\n </ul>\n </div>\n </div>\n</template>\n\n<script src=\"./limits_tab.js\"></script>\n","import BooleanSetting from '../helpers/boolean_setting.vue'\nimport ChoiceSetting from '../helpers/choice_setting.vue'\nimport IntegerSetting from '../helpers/integer_setting.vue'\nimport StringSetting from '../helpers/string_setting.vue'\n\nimport SharedComputedObject from '../helpers/shared_computed_object.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faGlobe\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faGlobe\n)\n\nconst LimitsTab = {\n data () {},\n components: {\n BooleanSetting,\n ChoiceSetting,\n IntegerSetting,\n StringSetting\n },\n computed: {\n ...SharedComputedObject()\n }\n}\n\nexport default LimitsTab\n","import { render } from \"./limits_tab.vue?vue&type=template&id=04194dfc\"\nimport script from \"./limits_tab.js?vue&type=script&lang=js\"\nexport * from \"./limits_tab.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n class=\"frontends-tab\"\n :label=\"$t('admin_dash.tabs.frontends')\"\n >\n <div class=\"setting-item\">\n <h2>{{ $t('admin_dash.tabs.frontends') }}</h2>\n <p>{{ $t('admin_dash.frontend.wip_notice') }}</p>\n <ul class=\"setting-list\">\n <li>\n <h3>{{ $t('admin_dash.frontend.default_frontend') }}</h3>\n <p>{{ $t('admin_dash.frontend.default_frontend_tip') }}</p>\n <ul class=\"setting-list\">\n <li>\n <StringSetting path=\":pleroma.:frontends.:primary.name\" />\n </li>\n <li>\n <StringSetting path=\":pleroma.:frontends.:primary.ref\" />\n </li>\n <li>\n <GroupSetting path=\":pleroma.:frontends.:primary\" />\n </li>\n </ul>\n </li>\n </ul>\n <div class=\"setting-list relative\">\n <PanelLoading class=\"overlay\" v-if=\"working\"/>\n <h3>{{ $t('admin_dash.frontend.available_frontends') }}</h3>\n <ul class=\"cards-list\">\n <li\n v-for=\"frontend in frontends\"\n :key=\"frontend.name\"\n >\n <strong>{{ frontend.name }}</strong>\n {{ ' ' }}\n <span v-if=\"adminDraft[':pleroma'][':frontends'][':primary']?.name === frontend.name\">\n <i18n-t\n v-if=\"adminDraft[':pleroma'][':frontends'][':primary']?.ref === frontend.refs[0]\"\n keypath=\"admin_dash.frontend.is_default\"\n />\n <i18n-t\n v-else\n keypath=\"admin_dash.frontend.is_default_custom\"\n >\n <template #version>\n <code>{{ adminDraft[':pleroma'][':frontends'][':primary'].ref }}</code>\n </template>\n </i18n-t>\n </span>\n <dl>\n <dt>{{ $t('admin_dash.frontend.repository') }}</dt>\n <dd>\n <a\n :href=\"frontend.git\"\n target=\"_blank\"\n >{{ frontend.git }}</a>\n </dd>\n <template v-if=\"expertLevel\">\n <dt>{{ $t('admin_dash.frontend.versions') }}</dt>\n <dd\n v-for=\"ref in frontend.refs\"\n :key=\"ref\"\n >\n <code>{{ ref }}</code>\n </dd>\n </template>\n <dt v-if=\"expertLevel\">\n {{ $t('admin_dash.frontend.build_url') }}\n </dt>\n <dd v-if=\"expertLevel\">\n <a\n :href=\"frontend.build_url\"\n target=\"_blank\"\n >{{ frontend.build_url }}</a>\n </dd>\n </dl>\n <div>\n <span class=\"btn-group\">\n <button\n class=\"button button-default btn\"\n type=\"button\"\n @click=\"update(frontend)\"\n >\n {{\n frontend.installed\n ? $t('admin_dash.frontend.reinstall')\n : $t('admin_dash.frontend.install')\n }}\n <code>\n {{\n getSuggestedRef(frontend)\n }}\n </code>\n </button>\n <Popover\n v-if=\"frontend.refs.length > 1\"\n trigger=\"click\"\n class=\"button-dropdown\"\n placement=\"bottom\"\n >\n <template #content=\"{close}\">\n <div class=\"dropdown-menu\">\n <button\n v-for=\"ref in frontend.refs\"\n :key=\"ref\"\n class=\"button-default dropdown-item\"\n @click.prevent=\"update(frontend, ref)\"\n @click=\"close\"\n >\n <i18n-t keypath=\"admin_dash.frontend.install_version\">\n <template #version>\n <code>{{ ref }}</code>\n </template>\n </i18n-t>\n </button>\n </div>\n </template>\n <template #trigger>\n <button\n class=\"button button-default btn dropdown-button\"\n type=\"button\"\n :title=\"$t('admin_dash.frontend.more_install_options')\"\n >\n <FAIcon icon=\"chevron-down\" />\n </button>\n </template>\n </Popover>\n </span>\n <span\n v-if=\"frontend.installed && frontend.name !== 'admin-fe'\"\n class=\"btn-group\"\n >\n <button\n class=\"button button-default btn\"\n type=\"button\"\n :disabled=\"\n adminDraft[':pleroma'][':frontends'][':primary']?.name === frontend.name &&\n adminDraft[':pleroma'][':frontends'][':primary']?.ref === frontend.refs[0]\n \"\n @click=\"setDefault(frontend)\"\n >\n {{\n $t('admin_dash.frontend.set_default')\n }}\n <code>\n {{\n getSuggestedRef(frontend)\n }}\n </code>\n </button>\n {{ ' ' }}\n <Popover\n v-if=\"frontend.refs.length > 1\"\n trigger=\"click\"\n class=\"button-dropdown\"\n placement=\"bottom\"\n >\n <template #content=\"{close}\">\n <div class=\"dropdown-menu\">\n <button\n v-for=\"ref in frontend.installedRefs || frontend.refs\"\n :key=\"ref\"\n class=\"button-default dropdown-item\"\n @click.prevent=\"setDefault(frontend, ref)\"\n @click=\"close\"\n >\n <i18n-t keypath=\"admin_dash.frontend.set_default_version\">\n <template #version>\n <code>{{ ref }}</code>\n </template>\n </i18n-t>\n </button>\n </div>\n </template>\n <template #trigger>\n <button\n class=\"button button-default btn dropdown-button\"\n type=\"button\"\n :title=\"$t('admin_dash.frontend.more_default_options')\"\n >\n <FAIcon icon=\"chevron-down\" />\n </button>\n </template>\n </Popover>\n </span>\n </div>\n </li>\n </ul>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./frontends_tab.js\"></script>\n\n<style lang=\"scss\" src=\"./frontends_tab.scss\"></style>\n","import BooleanSetting from '../helpers/boolean_setting.vue'\nimport ChoiceSetting from '../helpers/choice_setting.vue'\nimport IntegerSetting from '../helpers/integer_setting.vue'\nimport StringSetting from '../helpers/string_setting.vue'\nimport GroupSetting from '../helpers/group_setting.vue'\nimport Popover from 'src/components/popover/popover.vue'\nimport PanelLoading from 'src/components/panel_loading/panel_loading.vue'\n\nimport SharedComputedObject from '../helpers/shared_computed_object.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faGlobe\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faGlobe\n)\n\nconst FrontendsTab = {\n provide () {\n return {\n defaultDraftMode: true,\n defaultSource: 'admin'\n }\n },\n data () {\n return {\n working: false\n }\n },\n components: {\n BooleanSetting,\n ChoiceSetting,\n IntegerSetting,\n StringSetting,\n GroupSetting,\n PanelLoading,\n Popover\n },\n created () {\n if (this.user.rights.admin) {\n this.$store.dispatch('loadFrontendsStuff')\n }\n },\n computed: {\n frontends () {\n return this.$store.state.adminSettings.frontends\n },\n ...SharedComputedObject()\n },\n methods: {\n canInstall (frontend) {\n const fe = this.frontends.find(f => f.name === frontend.name)\n if (!fe) return false\n return fe.refs.includes(frontend.ref)\n },\n getSuggestedRef (frontend) {\n const defaultFe = this.adminDraft[':pleroma'][':frontends'][':primary']\n if (defaultFe?.name === frontend.name && this.canInstall(defaultFe)) {\n return defaultFe.ref\n } else {\n return frontend.refs[0]\n }\n },\n update (frontend, suggestRef) {\n const ref = suggestRef || this.getSuggestedRef(frontend)\n const { name } = frontend\n const payload = { name, ref }\n\n this.working = true\n this.$store.state.api.backendInteractor.installFrontend({ payload })\n .finally(() => {\n this.working = false\n })\n .then(async (response) => {\n this.$store.dispatch('loadFrontendsStuff')\n if (response.error) {\n const reason = await response.error.json()\n this.$store.dispatch('pushGlobalNotice', {\n level: 'error',\n messageKey: 'admin_dash.frontend.failure_installing_frontend',\n messageArgs: {\n version: name + '/' + ref,\n reason: reason.error\n },\n timeout: 5000\n })\n } else {\n this.$store.dispatch('pushGlobalNotice', {\n level: 'success',\n messageKey: 'admin_dash.frontend.success_installing_frontend',\n messageArgs: {\n version: name + '/' + ref\n },\n timeout: 2000\n })\n }\n })\n },\n setDefault (frontend, suggestRef) {\n const ref = suggestRef || this.getSuggestedRef(frontend)\n const { name } = frontend\n\n this.$store.commit('updateAdminDraft', { path: [':pleroma', ':frontends', ':primary'], value: { name, ref } })\n }\n }\n}\n\nexport default FrontendsTab\n","import { render } from \"./frontends_tab.vue?vue&type=template&id=57d082ef\"\nimport script from \"./frontends_tab.js?vue&type=script&lang=js\"\nexport * from \"./frontends_tab.js?vue&type=script&lang=js\"\n\nimport \"./frontends_tab.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'\n\nimport InstanceTab from './admin_tabs/instance_tab.vue'\nimport LimitsTab from './admin_tabs/limits_tab.vue'\nimport FrontendsTab from './admin_tabs/frontends_tab.vue'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faWrench,\n faHand,\n faLaptopCode,\n faPaintBrush,\n faBell,\n faDownload,\n faEyeSlash,\n faInfo\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faWrench,\n faHand,\n faLaptopCode,\n faPaintBrush,\n faBell,\n faDownload,\n faEyeSlash,\n faInfo\n)\n\nconst SettingsModalAdminContent = {\n components: {\n TabSwitcher,\n\n InstanceTab,\n LimitsTab,\n FrontendsTab\n },\n computed: {\n user () {\n return this.$store.state.users.currentUser\n },\n isLoggedIn () {\n return !!this.$store.state.users.currentUser\n },\n open () {\n return this.$store.state.interface.settingsModalState !== 'hidden'\n },\n bodyLock () {\n return this.$store.state.interface.settingsModalState === 'visible'\n },\n adminDbLoaded () {\n return this.$store.state.adminSettings.loaded\n },\n adminDescriptionsLoaded () {\n return this.$store.state.adminSettings.descriptions !== null\n },\n noDb () {\n return this.$store.state.adminSettings.dbConfigEnabled === false\n }\n },\n created () {\n if (this.user.rights.admin) {\n this.$store.dispatch('loadAdminStuff')\n }\n },\n methods: {\n onOpen () {\n const targetTab = this.$store.state.interface.settingsModalTargetTab\n // We're being told to open in specific tab\n if (targetTab) {\n const tabIndex = this.$refs.tabSwitcher.$slots.default().findIndex(elm => {\n return elm.props && elm.props['data-tab-name'] === targetTab\n })\n if (tabIndex >= 0) {\n this.$refs.tabSwitcher.setTab(tabIndex)\n }\n }\n // Clear the state of target tab, so that next time settings is opened\n // it doesn't force it.\n this.$store.dispatch('clearSettingsModalTargetTab')\n }\n },\n mounted () {\n this.onOpen()\n },\n watch: {\n open: function (value) {\n if (value) this.onOpen()\n }\n }\n}\n\nexport default SettingsModalAdminContent\n","import { render } from \"./settings_modal_admin_content.vue?vue&type=template&id=43a9ece4\"\nimport script from \"./settings_modal_admin_content.js?vue&type=script&lang=js\"\nexport * from \"./settings_modal_admin_content.js?vue&type=script&lang=js\"\n\nimport \"./settings_modal_admin_content.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["class","href","target","_createElementVNode","Setting","_ctx","matchesExpertLevel","_createElementBlock","_hoisted_1","for","path","_normalizeClass","shouldBeDisabled","backendDescriptionLabel","_Fragment","key","source","_toDisplayString","_renderSlot","$slots","id","disabled","value","realDraftMode","draft","state","onChange","_cache","update","apply","arguments","_createVNode","_component_ModifiedIndicator","changed","isChanged","onclick","reset","_component_ProfileSettingIndicator","isProfileSetting","_component_DraftButtons","backendDescriptionDescription","_objectSpread","computed","isDirty","_isEqual","this","props","compact","Boolean","acceptTypes","type","String","required","default","components","MediaUpload","Attachment","attachment","url","includes","$store","instance","server","mimetype","fileTypeExt","methods","setMediaFile","fileInfo","configSink","_hoisted_2","_hoisted_3","_hoisted_4","$t","_hoisted_6","_component_Attachment","size","onSetMedia","onMedia","onNaturalSizeLoad","_hoisted_7","_component_MediaUpload","ref","dropFiles","onUploaded","onUploadFailed","uploadFailed","library","faGlobe","provide","defaultDraftMode","defaultSource","BooleanSetting","ChoiceSetting","IntegerSetting","StringSetting","AttachmentSetting","GroupSetting","SharedComputedObject","label","_component_StringSetting","undefined","adminDraft","_component_AttachmentSetting","_hoisted_5","_component_BooleanSetting","_hoisted_8","_component_IntegerSetting","_hoisted_9","_hoisted_10","_component_ChoiceSetting","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","expertLevel","_hoisted_15","_hoisted_16","_hoisted_17","_component_GroupSetting","_hoisted_18","_hoisted_19","data","expert","working","PanelLoading","Popover","created","user","rights","admin","dispatch","frontends","adminSettings","canInstall","frontend","fe","find","f","name","refs","getSuggestedRef","defaultFe","suggestRef","_this","payload","api","backendInteractor","installFrontend","then","_ref","_asyncToGenerator","_regeneratorRuntime","_callee","response","reason","_context","prev","next","error","json","sent","level","messageKey","messageArgs","version","timeout","stop","_x","setDefault","commit","_createBlock","_component_PanelLoading","_renderList","_ctx$adminDraft$Pler","_ctx$adminDraft$Pler2","_ctx$adminDraft$Pler3","_ctx$adminDraft$Pler4","_component_i18n_t","keypath","_withCtx","git","build_url","onClick","$event","installed","length","_component_Popover","trigger","placement","content","close","title","_component_FAIcon","icon","_ref2","installedRefs","faWrench","faHand","faLaptopCode","faPaintBrush","faBell","faDownload","faEyeSlash","faInfo","TabSwitcher","InstanceTab","LimitsTab","FrontendsTab","users","currentUser","isLoggedIn","open","settingsModalState","bodyLock","adminDbLoaded","loaded","adminDescriptionsLoaded","descriptions","noDb","dbConfigEnabled","onOpen","targetTab","settingsModalTargetTab","tabIndex","$refs","tabSwitcher","findIndex","elm","setTab","mounted","watch","_component_tab_switcher","documentation","property","_component_InstanceTab","_component_LimitsTab","_component_FrontendsTab"],"sourceRoot":""} \ No newline at end of file
diff --git a/priv/static/static/js/9801.99ace6b5dc657bf1a65b.js b/priv/static/static/js/9801.99ace6b5dc657bf1a65b.js
deleted file mode 100644
index b96ffb7f0..000000000
--- a/priv/static/static/js/9801.99ace6b5dc657bf1a65b.js
+++ /dev/null
@@ -1,2 +0,0 @@
-"use strict";(self.webpackChunkpleroma_fe=self.webpackChunkpleroma_fe||[]).push([[9801],{9541:(t,e,n)=>{n.r(e),n.d(e,{default:()=>te});var a=n(66252),i=n(3577),r=["label"],l=["label"],s={class:"setting-item"},o={href:"https://docs-develop.pleroma.social/backend/configuration/howto_database_config/",target:"_blank"},d=(0,a._)("code",null,"config :pleroma, configurable_from_database",-1),c=(0,a._)("code",null,"true",-1),u=["label"],p=["label"],m=["label"],f=n(79354),h=["label"],_={class:"setting-item"},b={class:"setting-list"},g={class:"setting-item"},w={class:"setting-list"},y={class:"setting-list suboptions"},v={class:"setting-list suboptions"},k={class:"setting-list"},O={class:"setting-list suboptions"},D={key:0},S={class:"setting-list"},j={class:"setting-item"},P={class:"setting-list"},$={key:0},W={class:"setting-list"},z={class:"setting-list"},Z={class:"setting-list"},C={class:"setting-list"},L=n(4942),I=n(59236),q=n(77218),M=n(87449),E={key:0,class:"StringSetting"},U=["for"],x=["id","disabled","value"],B=n(7761);function A(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,a)}return n}const F=function(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?A(Object(n),!0).forEach((function(e){(0,L.Z)(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):A(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}({},B.Z);var T=n(83744);const Y=(0,T.Z)(F,[["render",function(t,e,n,r,l,s){var o=(0,a.up)("ModifiedIndicator"),d=(0,a.up)("ProfileSettingIndicator"),c=(0,a.up)("DraftButtons");return t.matchesExpertLevel?((0,a.wg)(),(0,a.iD)("label",E,[(0,a._)("label",{for:t.path,class:(0,i.C_)({faint:t.shouldBeDisabled})},[t.backendDescriptionLabel?((0,a.wg)(),(0,a.iD)(a.HY,{key:0},[(0,a.Uk)((0,i.zw)(t.backendDescriptionLabel+" "),1)],64)):"admin"===t.source?((0,a.wg)(),(0,a.iD)(a.HY,{key:1},[(0,a.Uk)(" MISSING LABEL FOR "+(0,i.zw)(t.path),1)],64)):(0,a.WI)(t.$slots,"default",{key:2})],10,U),(0,a._)("input",{id:t.path,class:"string-input",disabled:t.shouldBeDisabled,value:t.realDraftMode?t.draft:t.state,onChange:e[0]||(e[0]=function(){return t.update&&t.update.apply(t,arguments)})},null,40,x),(0,a.Uk)(" "+(0,i.zw)(" ")+" "),(0,a.Wm)(o,{changed:t.isChanged,onclick:t.reset},null,8,["changed","onclick"]),(0,a.Wm)(d,{"is-profile":t.isProfileSetting},null,8,["is-profile"]),(0,a.Wm)(c),t.backendDescriptionDescription?((0,a.wg)(),(0,a.iD)("p",{key:0,class:(0,i.C_)(["setting-description",{faint:t.shouldBeDisabled}])},(0,i.zw)(t.backendDescriptionDescription+" "),3)):(0,a.kq)("",!0)])):(0,a.kq)("",!0)}]]);var H={key:0,class:"GroupSetting"},G=n(18446),K=n.n(G);function N(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,a)}return n}function R(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?N(Object(n),!0).forEach((function(e){(0,L.Z)(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):N(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}const V=R(R({},B.Z),{},{computed:R(R({},B.Z.computed),{},{isDirty:function(){return!K()(this.state,this.draft)}})}),X=(0,T.Z)(V,[["render",function(t,e,n,i,r,l){var s=(0,a.up)("ModifiedIndicator"),o=(0,a.up)("ProfileSettingIndicator"),d=(0,a.up)("DraftButtons");return t.matchesExpertLevel?((0,a.wg)(),(0,a.iD)("span",H,[(0,a.Wm)(s,{changed:t.isChanged,onclick:t.reset},null,8,["changed","onclick"]),(0,a.Wm)(o,{"is-profile":t.isProfileSetting},null,8,["is-profile"]),(0,a.Wm)(d)])):(0,a.kq)("",!0)}]]);var J={key:0,class:"AttachmentSetting"},Q=["for"],tt={class:"attachment-input"},et={class:"controls"},nt=["id","disabled","value"],at={class:"controls"},it=n(58394),rt=n(37804),lt=n(66596);function st(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,a)}return n}function ot(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?st(Object(n),!0).forEach((function(e){(0,L.Z)(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):st(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}const dt=ot(ot({},B.Z),{},{props:ot(ot({},B.Z.props),{},{acceptTypes:{type:String,required:!1,default:"image/*"}}),components:ot(ot({},B.Z.components),{},{MediaUpload:rt.Z,Attachment:lt.Z}),computed:ot(ot({},B.Z.computed),{},{attachment:function(){var t=this.realDraftMode?this.draft:this.state,e=t.includes("://")?t:this.$store.state.instance.server+t;return{mimetype:(0,it.iL)(e),url:e}}}),methods:ot(ot({},B.Z.methods),{},{setMediaFile:function(t){this.realDraftMode?this.draft=t.url:this.configSink(this.path,t.url)}})}),ct=(0,T.Z)(dt,[["render",function(t,e,n,r,l,s){var o=(0,a.up)("ModifiedIndicator"),d=(0,a.up)("ProfileSettingIndicator"),c=(0,a.up)("Attachment"),u=(0,a.up)("MediaUpload"),p=(0,a.up)("DraftButtons");return t.matchesExpertLevel?((0,a.wg)(),(0,a.iD)("span",J,[(0,a._)("label",{for:t.path,class:(0,i.C_)({faint:t.shouldBeDisabled})},[t.backendDescriptionLabel?((0,a.wg)(),(0,a.iD)(a.HY,{key:0},[(0,a.Uk)((0,i.zw)(t.backendDescriptionLabel+" "),1)],64)):"admin"===t.source?((0,a.wg)(),(0,a.iD)(a.HY,{key:1},[(0,a.Uk)(" MISSING LABEL FOR "+(0,i.zw)(t.path),1)],64)):(0,a.WI)(t.$slots,"default",{key:2})],10,Q),t.backendDescriptionDescription?((0,a.wg)(),(0,a.iD)("p",{key:0,class:(0,i.C_)(["setting-description",{faint:t.shouldBeDisabled}])},(0,i.zw)(t.backendDescriptionDescription+" "),3)):(0,a.kq)("",!0),(0,a._)("div",tt,[(0,a._)("div",null,(0,i.zw)(t.$t("settings.url")),1),(0,a._)("div",et,[(0,a._)("input",{id:t.path,class:"string-input",disabled:t.shouldBeDisabled,value:t.realDraftMode?t.draft:t.state,onChange:e[0]||(e[0]=function(){return t.update&&t.update.apply(t,arguments)})},null,40,nt),(0,a.Uk)(" "+(0,i.zw)(" ")+" "),(0,a.Wm)(o,{changed:t.isChanged,onclick:t.reset},null,8,["changed","onclick"]),(0,a.Wm)(d,{"is-profile":t.isProfileSetting},null,8,["is-profile"])]),(0,a._)("div",null,(0,i.zw)(t.$t("settings.preview")),1),(0,a.Wm)(c,{class:"attachment",compact:t.compact,attachment:t.attachment,size:"small","hide-description":"",onSetMedia:t.onMedia,onNaturalSizeLoad:t.onNaturalSizeLoad},null,8,["compact","attachment","onSetMedia","onNaturalSizeLoad"]),(0,a._)("div",at,[(0,a.Wm)(u,{ref:"mediaUpload",class:"media-upload-icon","drop-files":t.dropFiles,"normal-button":"","accept-types":t.acceptTypes,onUploaded:t.setMediaFile,onUploadFailed:t.uploadFailed},null,8,["drop-files","accept-types","onUploaded","onUploadFailed"])])]),(0,a.Wm)(p)])):(0,a.kq)("",!0)}]]);var ut=n(76875),pt=n(9382),mt=n(84131);function ft(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,a)}return n}pt.vI.add(mt.g4A);const ht={provide:function(){return{defaultDraftMode:!0,defaultSource:"admin"}},components:{BooleanSetting:I.Z,ChoiceSetting:q.Z,IntegerSetting:M.Z,StringSetting:Y,AttachmentSetting:ct,GroupSetting:X},computed:function(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?ft(Object(n),!0).forEach((function(e){(0,L.Z)(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):ft(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}({},(0,ut.Z)())},_t=(0,T.Z)(ht,[["render",function(t,e,n,r,l,s){var o=(0,a.up)("StringSetting"),d=(0,a.up)("AttachmentSetting"),c=(0,a.up)("BooleanSetting"),u=(0,a.up)("IntegerSetting"),p=(0,a.up)("ChoiceSetting"),m=(0,a.up)("GroupSetting");return(0,a.wg)(),(0,a.iD)("div",{label:t.$t("admin_dash.tabs.instance")},[(0,a._)("div",_,[(0,a._)("h2",null,(0,i.zw)(t.$t("admin_dash.instance.instance")),1),(0,a._)("ul",b,[(0,a._)("li",null,[(0,a.Wm)(o,{path:":pleroma.:instance.:name"})]),(0,a._)("li",null,[(0,a.Wm)(o,{path:":pleroma.:instance.:email"})]),(0,a._)("li",null,[(0,a.Wm)(o,{path:":pleroma.:instance.:description"})]),(0,a._)("li",null,[(0,a.Wm)(o,{path:":pleroma.:instance.:short_description"})]),(0,a._)("li",null,[(0,a.Wm)(d,{path:":pleroma.:instance.:instance_thumbnail"})]),(0,a._)("li",null,[(0,a.Wm)(d,{path:":pleroma.:instance.:background_image"})])])]),(0,a._)("div",g,[(0,a._)("h2",null,(0,i.zw)(t.$t("admin_dash.instance.registrations")),1),(0,a._)("ul",w,[(0,a._)("li",null,[(0,a.Wm)(c,{path:":pleroma.:instance.:registrations_open"}),(0,a._)("ul",y,[(0,a._)("li",null,[(0,a.Wm)(c,{path:":pleroma.:instance.:invites_enabled","parent-path":":pleroma.:instance.:registrations_open","parent-invert":""})])])]),(0,a._)("li",null,[(0,a.Wm)(c,{path:":pleroma.:instance.:birthday_required"}),(0,a._)("ul",v,[(0,a._)("li",null,[(0,a.Wm)(u,{path:":pleroma.:instance.:birthday_min_age","parent-path":":pleroma.:instance.:birthday_required"})])])]),(0,a._)("li",null,[(0,a.Wm)(c,{path:":pleroma.:instance.:account_activation_required"})]),(0,a._)("li",null,[(0,a.Wm)(c,{path:":pleroma.:instance.:account_approval_required"})]),(0,a._)("li",null,[(0,a._)("h3",null,(0,i.zw)(t.$t("admin_dash.instance.captcha_header")),1),(0,a._)("ul",k,[(0,a._)("li",null,[(0,a.Wm)(c,{path:[":pleroma","Pleroma.Captcha",":enabled"]},null,8,["path"]),(0,a._)("ul",O,[(0,a._)("li",null,[(0,a.Wm)(p,{path:[":pleroma","Pleroma.Captcha",":method"],"parent-path":[":pleroma","Pleroma.Captcha",":enabled"],"option-label-map":{"Pleroma.Captcha.Native":t.$t("admin_dash.captcha.native"),"Pleroma.Captcha.Kocaptcha":t.$t("admin_dash.captcha.kocaptcha")}},null,8,["path","parent-path","option-label-map"]),(0,a.Wm)(u,{path:[":pleroma","Pleroma.Captcha",":seconds_valid"],"parent-path":[":pleroma","Pleroma.Captcha",":enabled"]},null,8,["path","parent-path"])]),t.adminDraft[":pleroma"]["Pleroma.Captcha"][":enabled"]&&"Pleroma.Captcha.Kocaptcha"===t.adminDraft[":pleroma"]["Pleroma.Captcha"][":method"]?((0,a.wg)(),(0,a.iD)("li",D,[(0,a._)("h4",null,(0,i.zw)(t.$t("admin_dash.instance.kocaptcha")),1),(0,a._)("ul",S,[(0,a._)("li",null,[(0,a.Wm)(o,{path:[":pleroma","Pleroma.Captcha.Kocaptcha",":endpoint"]},null,8,["path"])])])])):(0,a.kq)("",!0)])])])])])]),(0,a._)("div",j,[(0,a._)("h2",null,(0,i.zw)(t.$t("admin_dash.instance.access")),1),(0,a._)("ul",P,[(0,a._)("li",null,[(0,a.Wm)(c,{"override-backend-description":"","override-backend-description-label":"",path:":pleroma.:instance.:public"})]),(0,a._)("li",null,[(0,a.Wm)(p,{"override-backend-description":"","override-backend-description-label":"",path:":pleroma.:instance.:limit_to_local_content"})]),t.expertLevel?((0,a.wg)(),(0,a.iD)("li",$,[(0,a._)("h3",null,(0,i.zw)(t.$t("admin_dash.instance.restrict.header")),1),(0,a._)("p",null,(0,i.zw)(t.$t("admin_dash.instance.restrict.description")),1),(0,a._)("ul",W,[(0,a._)("li",null,[(0,a._)("h4",null,(0,i.zw)(t.$t("admin_dash.instance.restrict.timelines")),1),(0,a._)("ul",z,[(0,a._)("li",null,[(0,a.Wm)(c,{path:":pleroma.:restrict_unauthenticated.:timelines.:local","indeterminate-state":":if_instance_is_private","swap-description-and-label":"","hide-description":""})]),(0,a._)("li",null,[(0,a.Wm)(c,{path:":pleroma.:restrict_unauthenticated.:timelines.:federated","indeterminate-state":":if_instance_is_private","swap-description-and-label":"","hide-description":""})]),(0,a._)("li",null,[(0,a.Wm)(m,{path:":pleroma.:restrict_unauthenticated.:timelines"})])])]),(0,a._)("li",null,[(0,a._)("h4",null,(0,i.zw)(t.$t("admin_dash.instance.restrict.profiles")),1),(0,a._)("ul",Z,[(0,a._)("li",null,[(0,a.Wm)(c,{path:":pleroma.:restrict_unauthenticated.:profiles.:local","indeterminate-state":":if_instance_is_private","swap-description-and-label":"","hide-description":""})]),(0,a._)("li",null,[(0,a.Wm)(c,{path:":pleroma.:restrict_unauthenticated.:profiles.:remote","indeterminate-state":":if_instance_is_private","swap-description-and-label":"","hide-description":""})]),(0,a._)("li",null,[(0,a.Wm)(m,{path:":pleroma.:restrict_unauthenticated.:profiles"})])])]),(0,a._)("li",null,[(0,a._)("h4",null,(0,i.zw)(t.$t("admin_dash.instance.restrict.activities")),1),(0,a._)("ul",C,[(0,a._)("li",null,[(0,a.Wm)(c,{path:":pleroma.:restrict_unauthenticated.:activities.:local","indeterminate-state":":if_instance_is_private","swap-description-and-label":"","hide-description":""})]),(0,a._)("li",null,[(0,a.Wm)(c,{path:":pleroma.:restrict_unauthenticated.:activities.:remote","indeterminate-state":":if_instance_is_private","swap-description-and-label":"","hide-description":""})]),(0,a._)("li",null,[(0,a.Wm)(m,{path:":pleroma.:restrict_unauthenticated.:activities"})])])])])])):(0,a.kq)("",!0)])])],8,h)}]]);var bt=["label"],gt={class:"setting-item"},wt={class:"setting-list"},yt={class:"setting-list"},vt={class:"setting-list"},kt={class:"setting-list"},Ot={class:"setting-list"},Dt={class:"setting-list"};function St(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,a)}return n}pt.vI.add(mt.g4A);const jt={data:function(){},components:{BooleanSetting:I.Z,ChoiceSetting:q.Z,IntegerSetting:M.Z,StringSetting:Y},computed:function(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?St(Object(n),!0).forEach((function(e){(0,L.Z)(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):St(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}({},(0,ut.Z)())},Pt=(0,T.Z)(jt,[["render",function(t,e,n,r,l,s){var o=(0,a.up)("IntegerSetting");return(0,a.wg)(),(0,a.iD)("div",{label:t.$t("admin_dash.tabs.limits")},[(0,a._)("div",gt,[(0,a._)("h2",null,(0,i.zw)(t.$t("admin_dash.limits.arbitrary_limits")),1),(0,a._)("ul",wt,[(0,a._)("li",null,[(0,a._)("h3",null,(0,i.zw)(t.$t("admin_dash.limits.posts")),1),(0,a._)("ul",yt,[(0,a._)("li",null,[(0,a.Wm)(o,{source:"admin",path:":pleroma.:instance.:limit","draft-mode":""})]),(0,a._)("li",null,[(0,a.Wm)(o,{source:"admin",path:":pleroma.:instance.:remote_limit",expert:"1","draft-mode":""})])])]),(0,a._)("li",null,[(0,a._)("h3",null,(0,i.zw)(t.$t("admin_dash.limits.uploads")),1),(0,a._)("ul",vt,[(0,a._)("li",null,[(0,a.Wm)(o,{source:"admin",path:":pleroma.:instance.:description_limit","draft-mode":""})]),(0,a._)("li",null,[(0,a.Wm)(o,{source:"admin",path:":pleroma.:instance.:upload_limit","draft-mode":""})]),(0,a._)("li",null,[(0,a.Wm)(o,{source:"admin",path:":pleroma.:instance.:max_media_attachments","draft-mode":""})])])]),(0,a._)("li",null,[(0,a._)("h3",null,(0,i.zw)(t.$t("admin_dash.limits.users")),1),(0,a._)("ul",kt,[(0,a._)("li",null,[(0,a.Wm)(o,{source:"admin",path:":pleroma.:instance.:max_pinned_statuses","draft-mode":""})]),(0,a._)("li",null,[(0,a.Wm)(o,{source:"admin",path:":pleroma.:instance.:user_bio_length","draft-mode":""})]),(0,a._)("li",null,[(0,a.Wm)(o,{source:"admin",path:":pleroma.:instance.:user_name_length","draft-mode":""})]),(0,a._)("li",null,[(0,a._)("h4",null,(0,i.zw)(t.$t("admin_dash.limits.profile_fields")),1),(0,a._)("ul",Ot,[(0,a._)("li",null,[(0,a.Wm)(o,{source:"admin",path:":pleroma.:instance.:max_account_fields","draft-mode":""})]),(0,a._)("li",null,[(0,a.Wm)(o,{source:"admin",path:":pleroma.:instance.:max_remote_account_fields","draft-mode":"",expert:"1"})]),(0,a._)("li",null,[(0,a.Wm)(o,{source:"admin",path:":pleroma.:instance.:account_field_name_length","draft-mode":""})]),(0,a._)("li",null,[(0,a.Wm)(o,{source:"admin",path:":pleroma.:instance.:account_field_value_length","draft-mode":""})])])]),(0,a._)("li",null,[(0,a._)("h4",null,(0,i.zw)(t.$t("admin_dash.limits.user_uploads")),1),(0,a._)("ul",Dt,[(0,a._)("li",null,[(0,a.Wm)(o,{source:"admin",path:":pleroma.:instance.:avatar_upload_limit","draft-mode":""})]),(0,a._)("li",null,[(0,a.Wm)(o,{source:"admin",path:":pleroma.:instance.:banner_upload_limit","draft-mode":""})])])])])])])])],8,bt)}]]);var $t=["label"],Wt={class:"setting-item"},zt={class:"setting-list"},Zt={class:"setting-list"},Ct={class:"setting-list"},Lt={class:"cards-list"},It={key:0},qt=["href"],Mt={key:1},Et={key:2},Ut=["href"],xt={class:"btn-group"},Bt=["onClick"],At={class:"dropdown-menu"},Ft=["onClick"],Tt=["title"],Yt={key:0,class:"btn-group"},Ht=["disabled","onClick"],Gt={class:"dropdown-menu"},Kt=["onClick"],Nt=["title"],Rt=n(84535);function Vt(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,a)}return n}pt.vI.add(mt.g4A);const Xt={provide:function(){return{defaultDraftMode:!0,defaultSource:"admin"}},components:{BooleanSetting:I.Z,ChoiceSetting:q.Z,IntegerSetting:M.Z,StringSetting:Y,GroupSetting:X,Popover:Rt.default},created:function(){this.user.rights.admin&&this.$store.dispatch("loadFrontendsStuff")},computed:function(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?Vt(Object(n),!0).forEach((function(e){(0,L.Z)(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Vt(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}({frontends:function(){return this.$store.state.adminSettings.frontends}},(0,ut.Z)()),methods:{update:function(t,e){var n=this,a=e||t.refs[0],i={name:t.name,ref:a};this.$store.state.api.backendInteractor.installFrontend({payload:i}).then((function(t){n.$store.dispatch("loadFrontendsStuff")}))},setDefault:function(t,e){var n=e||t.refs[0],a=t.name;this.$store.commit("updateAdminDraft",{path:[":pleroma",":frontends",":primary"],value:{name:a,ref:n}})}}},Jt=(0,T.Z)(Xt,[["render",function(t,e,n,r,l,s){var o=(0,a.up)("StringSetting"),d=(0,a.up)("GroupSetting"),c=(0,a.up)("i18n-t"),u=(0,a.up)("FAIcon"),p=(0,a.up)("Popover");return(0,a.wg)(),(0,a.iD)("div",{class:"frontends-tab",label:t.$t("admin_dash.tabs.frontends")},[(0,a._)("div",Wt,[(0,a._)("h2",null,(0,i.zw)(t.$t("admin_dash.tabs.frontends")),1),(0,a._)("p",null,(0,i.zw)(t.$t("admin_dash.frontend.wip_notice")),1),(0,a._)("ul",zt,[(0,a._)("li",null,[(0,a._)("h3",null,(0,i.zw)(t.$t("admin_dash.frontend.default_frontend")),1),(0,a._)("p",null,(0,i.zw)(t.$t("admin_dash.frontend.default_frontend_tip")),1),(0,a._)("p",null,(0,i.zw)(t.$t("admin_dash.frontend.default_frontend_tip2")),1),(0,a._)("ul",Zt,[(0,a._)("li",null,[(0,a.Wm)(o,{path:":pleroma.:frontends.:primary.name"})]),(0,a._)("li",null,[(0,a.Wm)(o,{path:":pleroma.:frontends.:primary.ref"})]),(0,a._)("li",null,[(0,a.Wm)(d,{path:":pleroma.:frontends.:primary"})])])])]),(0,a._)("div",Ct,[(0,a._)("h3",null,(0,i.zw)(t.$t("admin_dash.frontend.available_frontends")),1),(0,a._)("ul",Lt,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(t.frontends,(function(e){return(0,a.wg)(),(0,a.iD)("li",{key:e.name},[(0,a._)("strong",null,(0,i.zw)(e.name),1),(0,a.Uk)(" "+(0,i.zw)(" ")+" "),t.adminDraft[":pleroma"][":frontends"][":primary"].name===e.name?((0,a.wg)(),(0,a.iD)("span",It,[t.adminDraft[":pleroma"][":frontends"][":primary"].ref===e.refs[0]?((0,a.wg)(),(0,a.j4)(c,{key:0,keypath:"admin_dash.frontend.is_default"})):((0,a.wg)(),(0,a.j4)(c,{key:1,keypath:"admin_dash.frontend.is_default_custom"},{version:(0,a.w5)((function(){return[(0,a._)("code",null,(0,i.zw)(t.adminDraft[":pleroma"][":frontends"][":primary"].ref),1)]})),_:1}))])):(0,a.kq)("",!0),(0,a._)("dl",null,[(0,a._)("dt",null,(0,i.zw)(t.$t("admin_dash.frontend.repository")),1),(0,a._)("dd",null,[(0,a._)("a",{href:e.git,target:"_blank"},(0,i.zw)(e.git),9,qt)]),t.expertLevel?((0,a.wg)(),(0,a.iD)(a.HY,{key:0},[(0,a._)("dt",null,(0,i.zw)(t.$t("admin_dash.frontend.versions")),1),((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(e.refs,(function(t){return(0,a.wg)(),(0,a.iD)("dd",{key:t},[(0,a._)("code",null,(0,i.zw)(t),1)])})),128))],64)):(0,a.kq)("",!0),t.expertLevel?((0,a.wg)(),(0,a.iD)("dt",Mt,(0,i.zw)(t.$t("admin_dash.frontend.build_url")),1)):(0,a.kq)("",!0),t.expertLevel?((0,a.wg)(),(0,a.iD)("dd",Et,[(0,a._)("a",{href:e.build_url,target:"_blank"},(0,i.zw)(e.build_url),9,Ut)])):(0,a.kq)("",!0)]),(0,a._)("div",null,[(0,a._)("span",xt,[(0,a._)("button",{class:"button button-default btn",type:"button",onClick:function(n){return t.update(e)}},(0,i.zw)(e.installed?t.$t("admin_dash.frontend.reinstall"):t.$t("admin_dash.frontend.install")),9,Bt),e.refs.length>1?((0,a.wg)(),(0,a.j4)(p,{key:0,trigger:"click",class:"button-dropdown",placement:"bottom"},{content:(0,a.w5)((function(){return[(0,a._)("div",At,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(e.refs,(function(n){return(0,a.wg)(),(0,a.iD)("button",{key:n,class:"button-default dropdown-item",onClick:function(a){return t.update(e,n)}},[(0,a.Wm)(c,{keypath:"admin_dash.frontend.install_version"},{version:(0,a.w5)((function(){return[(0,a._)("code",null,(0,i.zw)(n),1)]})),_:2},1024)],8,Ft)})),128))])]})),trigger:(0,a.w5)((function(){return[(0,a._)("button",{class:"button button-default btn dropdown-button",type:"button",title:t.$t("admin_dash.frontend.more_install_options")},[(0,a.Wm)(u,{icon:"chevron-down"})],8,Tt)]})),_:2},1024)):(0,a.kq)("",!0)]),e.installed&&"admin-fe"!==e.name?((0,a.wg)(),(0,a.iD)("span",Yt,[(0,a._)("button",{class:"button button-default btn",type:"button",disabled:t.adminDraft[":pleroma"][":frontends"][":primary"].name===e.name&&t.adminDraft[":pleroma"][":frontends"][":primary"].ref===e.refs[0],onClick:function(n){return t.setDefault(e)}},(0,i.zw)(t.$t("admin_dash.frontend.set_default")),9,Ht),(0,a.Uk)(" "+(0,i.zw)(" ")+" "),e.refs.length>1?((0,a.wg)(),(0,a.j4)(p,{key:0,trigger:"click",class:"button-dropdown",placement:"bottom"},{content:(0,a.w5)((function(){return[(0,a._)("div",Gt,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(e.refs.slice(1),(function(n){return(0,a.wg)(),(0,a.iD)("button",{key:n,class:"button-default dropdown-item",onClick:function(a){return t.setDefault(e,n)}},[(0,a.Wm)(c,{keypath:"admin_dash.frontend.set_default_version"},{version:(0,a.w5)((function(){return[(0,a._)("code",null,(0,i.zw)(n),1)]})),_:2},1024)],8,Kt)})),128))])]})),trigger:(0,a.w5)((function(){return[(0,a._)("button",{class:"button button-default btn dropdown-button",type:"button",title:t.$t("admin_dash.frontend.more_default_options")},[(0,a.Wm)(u,{icon:"chevron-down"})],8,Nt)]})),_:2},1024)):(0,a.kq)("",!0)])):(0,a.kq)("",!0)])])})),128))])])])],8,$t)}]]);pt.vI.add(mt.klh,mt.ioV,mt.py1,mt.XsY,mt.qmU,mt.q7m,mt.Aq,mt.YHc);const Qt={components:{TabSwitcher:f.Z,InstanceTab:_t,LimitsTab:Pt,FrontendsTab:Jt},computed:{user:function(){return this.$store.state.users.currentUser},isLoggedIn:function(){return!!this.$store.state.users.currentUser},open:function(){return"hidden"!==this.$store.state.interface.settingsModalState},bodyLock:function(){return"visible"===this.$store.state.interface.settingsModalState},adminDbLoaded:function(){return this.$store.state.adminSettings.loaded},adminDescriptionsLoaded:function(){return null!==this.$store.state.adminSettings.descriptions},noDb:function(){return!1===this.$store.state.adminSettings.dbConfigEnabled}},created:function(){this.user.rights.admin&&this.$store.dispatch("loadAdminStuff")},methods:{onOpen:function(){var t=this.$store.state.interface.settingsModalTargetTab;if(t){var e=this.$refs.tabSwitcher.$slots.default().findIndex((function(e){return e.props&&e.props["data-tab-name"]===t}));e>=0&&this.$refs.tabSwitcher.setTab(e)}this.$store.dispatch("clearSettingsModalTargetTab")}},mounted:function(){this.onOpen()},watch:{open:function(t){t&&this.onOpen()}}},te=(0,T.Z)(Qt,[["render",function(t,e,n,f,h,_){var b=(0,a.up)("i18n-t"),g=(0,a.up)("InstanceTab"),w=(0,a.up)("LimitsTab"),y=(0,a.up)("FrontendsTab"),v=(0,a.up)("tab-switcher");return t.adminDescriptionsLoaded&&(t.noDb||t.adminDbLoaded)?((0,a.wg)(),(0,a.j4)(v,{key:0,ref:"tabSwitcher",class:"settings_tab-switcher","side-tab-bar":!0,"scrollable-tabs":!0,"render-only-focused":!0,"body-scroll-lock":t.bodyLock},{default:(0,a.w5)((function(){return[t.noDb?((0,a.wg)(),(0,a.iD)("div",{key:0,label:t.$t("admin_dash.tabs.nodb"),icon:"exclamation-triangle","data-tab-name":"nodb-notice"},[(0,a._)("div",{label:t.$t("admin_dash.tabs.nodb")},[(0,a._)("div",s,[(0,a._)("h2",null,(0,i.zw)(t.$t("admin_dash.nodb.heading")),1),(0,a.Wm)(b,{keypath:"admin_dash.nodb.text"},{documentation:(0,a.w5)((function(){return[(0,a._)("a",o,(0,i.zw)(t.$t("admin_dash.nodb.documentation")),1)]})),property:(0,a.w5)((function(){return[d]})),value:(0,a.w5)((function(){return[c]})),_:1}),(0,a._)("p",null,(0,i.zw)(t.$t("admin_dash.nodb.text2")),1)])],8,l)],8,r)):(0,a.kq)("",!0),t.adminDbLoaded?((0,a.wg)(),(0,a.iD)("div",{key:1,label:t.$t("admin_dash.tabs.instance"),icon:"wrench","data-tab-name":"general"},[(0,a.Wm)(g)],8,u)):(0,a.kq)("",!0),t.adminDbLoaded?((0,a.wg)(),(0,a.iD)("div",{key:2,label:t.$t("admin_dash.tabs.limits"),icon:"hand","data-tab-name":"limits"},[(0,a.Wm)(w)],8,p)):(0,a.kq)("",!0),(0,a._)("div",{label:t.$t("admin_dash.tabs.frontends"),icon:"laptop-code","data-tab-name":"frontends"},[(0,a.Wm)(y)],8,m)]})),_:1},8,["body-scroll-lock"])):(0,a.kq)("",!0)}]])}}]);
-//# sourceMappingURL=9801.99ace6b5dc657bf1a65b.js.map \ No newline at end of file
diff --git a/priv/static/static/js/9801.99ace6b5dc657bf1a65b.js.map b/priv/static/static/js/9801.99ace6b5dc657bf1a65b.js.map
deleted file mode 100644
index 5529600fb..000000000
--- a/priv/static/static/js/9801.99ace6b5dc657bf1a65b.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/js/9801.99ace6b5dc657bf1a65b.js","mappings":"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","sources":["webpack://pleroma_fe/./src/components/settings_modal/settings_modal_admin_content.vue","webpack://pleroma_fe/./src/components/settings_modal/admin_tabs/instance_tab.vue","webpack://pleroma_fe/./src/components/settings_modal/helpers/string_setting.vue","webpack://pleroma_fe/./src/components/settings_modal/helpers/string_setting.js","webpack://pleroma_fe/./src/components/settings_modal/helpers/string_setting.vue?3ee8","webpack://pleroma_fe/./src/components/settings_modal/helpers/group_setting.vue","webpack://pleroma_fe/./src/components/settings_modal/helpers/group_setting.js","webpack://pleroma_fe/./src/components/settings_modal/helpers/group_setting.vue?7ac1","webpack://pleroma_fe/./src/components/settings_modal/helpers/attachment_setting.vue","webpack://pleroma_fe/./src/components/settings_modal/helpers/attachment_setting.js","webpack://pleroma_fe/./src/components/settings_modal/helpers/attachment_setting.vue?5a3a","webpack://pleroma_fe/./src/components/settings_modal/admin_tabs/instance_tab.js","webpack://pleroma_fe/./src/components/settings_modal/admin_tabs/instance_tab.vue?14f3","webpack://pleroma_fe/./src/components/settings_modal/admin_tabs/limits_tab.vue","webpack://pleroma_fe/./src/components/settings_modal/admin_tabs/limits_tab.js","webpack://pleroma_fe/./src/components/settings_modal/admin_tabs/limits_tab.vue?14a2","webpack://pleroma_fe/./src/components/settings_modal/admin_tabs/frontends_tab.vue","webpack://pleroma_fe/./src/components/settings_modal/admin_tabs/frontends_tab.js","webpack://pleroma_fe/./src/components/settings_modal/admin_tabs/frontends_tab.vue?a9d3","webpack://pleroma_fe/./src/components/settings_modal/settings_modal_admin_content.js","webpack://pleroma_fe/./src/components/settings_modal/settings_modal_admin_content.vue?3247"],"sourcesContent":["<template>\n <tab-switcher\n v-if=\"adminDescriptionsLoaded && (noDb || adminDbLoaded)\"\n ref=\"tabSwitcher\"\n class=\"settings_tab-switcher\"\n :side-tab-bar=\"true\"\n :scrollable-tabs=\"true\"\n :render-only-focused=\"true\"\n :body-scroll-lock=\"bodyLock\"\n >\n <div\n v-if=\"noDb\"\n :label=\"$t('admin_dash.tabs.nodb')\"\n icon=\"exclamation-triangle\"\n data-tab-name=\"nodb-notice\"\n >\n <div :label=\"$t('admin_dash.tabs.nodb')\">\n <div class=\"setting-item\">\n <h2>{{ $t('admin_dash.nodb.heading') }}</h2>\n <i18n-t keypath=\"admin_dash.nodb.text\">\n <template #documentation>\n <a\n href=\"https://docs-develop.pleroma.social/backend/configuration/howto_database_config/\"\n target=\"_blank\"\n >\n {{ $t(\"admin_dash.nodb.documentation\") }}\n </a>\n </template>\n <template #property>\n <code>config :pleroma, configurable_from_database</code>\n </template>\n <template #value>\n <code>true</code>\n </template>\n </i18n-t>\n <p>{{ $t('admin_dash.nodb.text2') }}</p>\n </div>\n </div>\n </div>\n <div\n v-if=\"adminDbLoaded\"\n :label=\"$t('admin_dash.tabs.instance')\"\n icon=\"wrench\"\n data-tab-name=\"general\"\n >\n <InstanceTab />\n </div>\n <div\n v-if=\"adminDbLoaded\"\n :label=\"$t('admin_dash.tabs.limits')\"\n icon=\"hand\"\n data-tab-name=\"limits\"\n >\n <LimitsTab />\n </div>\n <div\n :label=\"$t('admin_dash.tabs.frontends')\"\n icon=\"laptop-code\"\n data-tab-name=\"frontends\"\n >\n <FrontendsTab />\n </div>\n </tab-switcher>\n</template>\n\n<script src=\"./settings_modal_admin_content.js\"></script>\n\n<style src=\"./settings_modal_admin_content.scss\" lang=\"scss\"></style>\n","<template>\n <div :label=\"$t('admin_dash.tabs.instance')\">\n <div class=\"setting-item\">\n <h2>{{ $t('admin_dash.instance.instance') }}</h2>\n <ul class=\"setting-list\">\n <li>\n <StringSetting path=\":pleroma.:instance.:name\" />\n </li>\n <li>\n <StringSetting path=\":pleroma.:instance.:email\" />\n </li>\n <li>\n <StringSetting path=\":pleroma.:instance.:description\" />\n </li>\n <li>\n <StringSetting path=\":pleroma.:instance.:short_description\" />\n </li>\n <li>\n <AttachmentSetting path=\":pleroma.:instance.:instance_thumbnail\" />\n </li>\n <li>\n <AttachmentSetting path=\":pleroma.:instance.:background_image\" />\n </li>\n </ul>\n </div>\n <div class=\"setting-item\">\n <h2>{{ $t('admin_dash.instance.registrations') }}</h2>\n <ul class=\"setting-list\">\n <li>\n <BooleanSetting path=\":pleroma.:instance.:registrations_open\" />\n <ul class=\"setting-list suboptions\">\n <li>\n <BooleanSetting\n path=\":pleroma.:instance.:invites_enabled\"\n parent-path=\":pleroma.:instance.:registrations_open\"\n parent-invert\n />\n </li>\n </ul>\n </li>\n <li>\n <BooleanSetting path=\":pleroma.:instance.:birthday_required\" />\n <ul class=\"setting-list suboptions\">\n <li>\n <IntegerSetting\n path=\":pleroma.:instance.:birthday_min_age\"\n parent-path=\":pleroma.:instance.:birthday_required\"\n />\n </li>\n </ul>\n </li>\n <li>\n <BooleanSetting path=\":pleroma.:instance.:account_activation_required\" />\n </li>\n <li>\n <BooleanSetting path=\":pleroma.:instance.:account_approval_required\" />\n </li>\n <li>\n <h3>{{ $t('admin_dash.instance.captcha_header') }}</h3>\n <ul class=\"setting-list\">\n <li>\n <BooleanSetting :path=\"[':pleroma', 'Pleroma.Captcha', ':enabled']\" />\n <ul class=\"setting-list suboptions\">\n <li>\n <ChoiceSetting\n :path=\"[':pleroma', 'Pleroma.Captcha', ':method']\"\n :parent-path=\"[':pleroma', 'Pleroma.Captcha', ':enabled']\"\n :option-label-map=\"{\n 'Pleroma.Captcha.Native': $t('admin_dash.captcha.native'),\n 'Pleroma.Captcha.Kocaptcha': $t('admin_dash.captcha.kocaptcha')\n }\"\n />\n <IntegerSetting\n :path=\"[':pleroma', 'Pleroma.Captcha', ':seconds_valid']\"\n :parent-path=\"[':pleroma', 'Pleroma.Captcha', ':enabled']\"\n />\n </li>\n <li\n v-if=\"adminDraft[':pleroma']['Pleroma.Captcha'][':enabled'] && adminDraft[':pleroma']['Pleroma.Captcha'][':method'] === 'Pleroma.Captcha.Kocaptcha'\"\n >\n <h4>{{ $t('admin_dash.instance.kocaptcha') }}</h4>\n <ul class=\"setting-list\">\n <li>\n <StringSetting :path=\"[':pleroma', 'Pleroma.Captcha.Kocaptcha', ':endpoint']\" />\n </li>\n </ul>\n </li>\n </ul>\n </li>\n </ul>\n </li>\n </ul>\n </div>\n <div class=\"setting-item\">\n <h2>{{ $t('admin_dash.instance.access') }}</h2>\n <ul class=\"setting-list\">\n <li>\n <BooleanSetting\n override-backend-description\n override-backend-description-label\n path=\":pleroma.:instance.:public\"\n />\n </li>\n <li>\n <ChoiceSetting\n override-backend-description\n override-backend-description-label\n path=\":pleroma.:instance.:limit_to_local_content\"\n />\n </li>\n <li v-if=\"expertLevel\">\n <h3>{{ $t('admin_dash.instance.restrict.header') }}</h3>\n <p>\n {{ $t('admin_dash.instance.restrict.description') }}\n </p>\n <ul class=\"setting-list\">\n <li>\n <h4>{{ $t('admin_dash.instance.restrict.timelines') }}</h4>\n <ul class=\"setting-list\">\n <li>\n <BooleanSetting\n path=\":pleroma.:restrict_unauthenticated.:timelines.:local\"\n indeterminate-state=\":if_instance_is_private\"\n swap-description-and-label\n hide-description\n />\n </li>\n <li>\n <BooleanSetting\n path=\":pleroma.:restrict_unauthenticated.:timelines.:federated\"\n indeterminate-state=\":if_instance_is_private\"\n swap-description-and-label\n hide-description\n />\n </li>\n <li>\n <GroupSetting path=\":pleroma.:restrict_unauthenticated.:timelines\" />\n </li>\n </ul>\n </li>\n <li>\n <h4>{{ $t('admin_dash.instance.restrict.profiles') }}</h4>\n <ul class=\"setting-list\">\n <li>\n <BooleanSetting\n path=\":pleroma.:restrict_unauthenticated.:profiles.:local\"\n indeterminate-state=\":if_instance_is_private\"\n swap-description-and-label\n hide-description\n />\n </li>\n <li>\n <BooleanSetting\n path=\":pleroma.:restrict_unauthenticated.:profiles.:remote\"\n indeterminate-state=\":if_instance_is_private\"\n swap-description-and-label\n hide-description\n />\n </li>\n <li>\n <GroupSetting path=\":pleroma.:restrict_unauthenticated.:profiles\" />\n </li>\n </ul>\n </li>\n <li>\n <h4>{{ $t('admin_dash.instance.restrict.activities') }}</h4>\n <ul class=\"setting-list\">\n <li>\n <BooleanSetting\n path=\":pleroma.:restrict_unauthenticated.:activities.:local\"\n indeterminate-state=\":if_instance_is_private\"\n swap-description-and-label\n hide-description\n />\n </li>\n <li>\n <BooleanSetting\n path=\":pleroma.:restrict_unauthenticated.:activities.:remote\"\n indeterminate-state=\":if_instance_is_private\"\n swap-description-and-label\n hide-description\n />\n </li>\n <li>\n <GroupSetting path=\":pleroma.:restrict_unauthenticated.:activities\" />\n </li>\n </ul>\n </li>\n </ul>\n </li>\n </ul>\n </div>\n </div>\n</template>\n\n<script src=\"./instance_tab.js\"></script>\n","<template>\n <label\n v-if=\"matchesExpertLevel\"\n class=\"StringSetting\"\n >\n <label\n :for=\"path\"\n :class=\"{ 'faint': shouldBeDisabled }\"\n >\n <template v-if=\"backendDescriptionLabel\">\n {{ backendDescriptionLabel + ' ' }}\n </template>\n <template v-else-if=\"source === 'admin'\">\n MISSING LABEL FOR {{ path }}\n </template>\n <slot v-else />\n </label>\n <input\n :id=\"path\"\n class=\"string-input\"\n :disabled=\"shouldBeDisabled\"\n :value=\"realDraftMode ? draft : state\"\n @change=\"update\"\n >\n {{ ' ' }}\n <ModifiedIndicator\n :changed=\"isChanged\"\n :onclick=\"reset\"\n />\n <ProfileSettingIndicator :is-profile=\"isProfileSetting\" />\n <DraftButtons />\n <p\n v-if=\"backendDescriptionDescription\"\n class=\"setting-description\"\n :class=\"{ 'faint': shouldBeDisabled }\"\n >\n {{ backendDescriptionDescription + ' ' }}\n </p>\n </label>\n</template>\n\n<script src=\"./string_setting.js\"></script>\n","import Setting from './setting.js'\n\nexport default {\n ...Setting\n}\n","import { render } from \"./string_setting.vue?vue&type=template&id=77b0b493\"\nimport script from \"./string_setting.js?vue&type=script&lang=js\"\nexport * from \"./string_setting.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <span\n v-if=\"matchesExpertLevel\"\n class=\"GroupSetting\"\n >\n <ModifiedIndicator\n :changed=\"isChanged\"\n :onclick=\"reset\"\n />\n <ProfileSettingIndicator :is-profile=\"isProfileSetting\" />\n <DraftButtons />\n </span>\n</template>\n\n<script src=\"./group_setting.js\"></script>\n","import { isEqual } from 'lodash'\n\nimport Setting from './setting.js'\n\nexport default {\n ...Setting,\n computed: {\n ...Setting.computed,\n isDirty () {\n return !isEqual(this.state, this.draft)\n }\n }\n}\n","import { render } from \"./group_setting.vue?vue&type=template&id=19cb3543\"\nimport script from \"./group_setting.js?vue&type=script&lang=js\"\nexport * from \"./group_setting.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <span\n v-if=\"matchesExpertLevel\"\n class=\"AttachmentSetting\"\n >\n <label\n :for=\"path\"\n :class=\"{ 'faint': shouldBeDisabled }\"\n >\n <template v-if=\"backendDescriptionLabel\">\n {{ backendDescriptionLabel + ' ' }}\n </template>\n <template v-else-if=\"source === 'admin'\">\n MISSING LABEL FOR {{ path }}\n </template>\n <slot v-else />\n\n </label>\n <p\n v-if=\"backendDescriptionDescription\"\n class=\"setting-description\"\n :class=\"{ 'faint': shouldBeDisabled }\"\n >\n {{ backendDescriptionDescription + ' ' }}\n </p>\n <div class=\"attachment-input\">\n <div>{{ $t('settings.url') }}</div>\n <div class=\"controls\">\n <input\n :id=\"path\"\n class=\"string-input\"\n :disabled=\"shouldBeDisabled\"\n :value=\"realDraftMode ? draft : state\"\n @change=\"update\"\n >\n {{ ' ' }}\n <ModifiedIndicator\n :changed=\"isChanged\"\n :onclick=\"reset\"\n />\n <ProfileSettingIndicator :is-profile=\"isProfileSetting\" />\n </div>\n <div>{{ $t('settings.preview') }}</div>\n <Attachment\n class=\"attachment\"\n :compact=\"compact\"\n :attachment=\"attachment\"\n size=\"small\"\n hide-description\n @setMedia=\"onMedia\"\n @naturalSizeLoad=\"onNaturalSizeLoad\"\n />\n <div class=\"controls\">\n <MediaUpload\n ref=\"mediaUpload\"\n class=\"media-upload-icon\"\n :drop-files=\"dropFiles\"\n normal-button\n :accept-types=\"acceptTypes\"\n @uploaded=\"setMediaFile\"\n @upload-failed=\"uploadFailed\"\n />\n </div>\n </div>\n <DraftButtons />\n </span>\n</template>\n\n<script src=\"./attachment_setting.js\"></script>\n\n<style lang=\"scss\">\n.AttachmentSetting {\n .attachment {\n display: block;\n width: 100%;\n height: 15em;\n margin-bottom: 0.5em;\n }\n\n .attachment-input {\n margin-left: 1em;\n display: flex;\n flex-direction: column;\n width: 20em;\n }\n\n .controls {\n margin-bottom: 0.5em;\n\n input,\n button {\n width: 100%;\n }\n }\n}\n</style>\n","import Setting from './setting.js'\nimport { fileTypeExt } from 'src/services/file_type/file_type.service.js'\nimport MediaUpload from 'src/components/media_upload/media_upload.vue'\nimport Attachment from 'src/components/attachment/attachment.vue'\n\nexport default {\n ...Setting,\n props: {\n ...Setting.props,\n acceptTypes: {\n type: String,\n required: false,\n default: 'image/*'\n }\n },\n components: {\n ...Setting.components,\n MediaUpload,\n Attachment\n },\n computed: {\n ...Setting.computed,\n attachment () {\n const path = this.realDraftMode ? this.draft : this.state\n // The \"server\" part is primarily for local dev, but could be useful for alt-domain or multiuser usage.\n const url = path.includes('://') ? path : this.$store.state.instance.server + path\n return {\n mimetype: fileTypeExt(url),\n url\n }\n }\n },\n methods: {\n ...Setting.methods,\n setMediaFile (fileInfo) {\n if (this.realDraftMode) {\n this.draft = fileInfo.url\n } else {\n this.configSink(this.path, fileInfo.url)\n }\n }\n }\n}\n","import { render } from \"./attachment_setting.vue?vue&type=template&id=780a2e22\"\nimport script from \"./attachment_setting.js?vue&type=script&lang=js\"\nexport * from \"./attachment_setting.js?vue&type=script&lang=js\"\n\nimport \"./attachment_setting.vue?vue&type=style&index=0&id=780a2e22&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import BooleanSetting from '../helpers/boolean_setting.vue'\nimport ChoiceSetting from '../helpers/choice_setting.vue'\nimport IntegerSetting from '../helpers/integer_setting.vue'\nimport StringSetting from '../helpers/string_setting.vue'\nimport GroupSetting from '../helpers/group_setting.vue'\nimport AttachmentSetting from '../helpers/attachment_setting.vue'\n\nimport SharedComputedObject from '../helpers/shared_computed_object.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faGlobe\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faGlobe\n)\n\nconst InstanceTab = {\n provide () {\n return {\n defaultDraftMode: true,\n defaultSource: 'admin'\n }\n },\n components: {\n BooleanSetting,\n ChoiceSetting,\n IntegerSetting,\n StringSetting,\n AttachmentSetting,\n GroupSetting\n },\n computed: {\n ...SharedComputedObject()\n }\n}\n\nexport default InstanceTab\n","import { render } from \"./instance_tab.vue?vue&type=template&id=0dfeca4e\"\nimport script from \"./instance_tab.js?vue&type=script&lang=js\"\nexport * from \"./instance_tab.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div :label=\"$t('admin_dash.tabs.limits')\">\n <div class=\"setting-item\">\n <h2>{{ $t('admin_dash.limits.arbitrary_limits') }}</h2>\n <ul class=\"setting-list\">\n <li>\n <h3>{{ $t('admin_dash.limits.posts') }}</h3>\n <ul class=\"setting-list\">\n <li>\n <IntegerSetting\n source=\"admin\"\n path=\":pleroma.:instance.:limit\"\n draft-mode\n />\n </li>\n <li>\n <IntegerSetting\n source=\"admin\"\n path=\":pleroma.:instance.:remote_limit\"\n expert=\"1\"\n draft-mode\n />\n </li>\n </ul>\n </li>\n <li>\n <h3>{{ $t('admin_dash.limits.uploads') }}</h3>\n <ul class=\"setting-list\">\n <li>\n <IntegerSetting\n source=\"admin\"\n path=\":pleroma.:instance.:description_limit\"\n draft-mode\n />\n </li>\n <li>\n <IntegerSetting\n source=\"admin\"\n path=\":pleroma.:instance.:upload_limit\"\n draft-mode\n />\n </li>\n <li>\n <IntegerSetting\n source=\"admin\"\n path=\":pleroma.:instance.:max_media_attachments\"\n draft-mode\n />\n </li>\n </ul>\n </li>\n <li>\n <h3>{{ $t('admin_dash.limits.users') }}</h3>\n <ul class=\"setting-list\">\n <li>\n <IntegerSetting\n source=\"admin\"\n path=\":pleroma.:instance.:max_pinned_statuses\"\n draft-mode\n />\n </li>\n <li>\n <IntegerSetting\n source=\"admin\"\n path=\":pleroma.:instance.:user_bio_length\"\n draft-mode\n />\n </li>\n <li>\n <IntegerSetting\n source=\"admin\"\n path=\":pleroma.:instance.:user_name_length\"\n draft-mode\n />\n </li>\n <li>\n <h4>{{ $t('admin_dash.limits.profile_fields') }}</h4>\n <ul class=\"setting-list\">\n <li>\n <IntegerSetting\n source=\"admin\"\n path=\":pleroma.:instance.:max_account_fields\"\n draft-mode\n />\n </li>\n <li>\n <IntegerSetting\n source=\"admin\"\n path=\":pleroma.:instance.:max_remote_account_fields\"\n draft-mode\n expert=\"1\"\n />\n </li>\n <li>\n <IntegerSetting\n source=\"admin\"\n path=\":pleroma.:instance.:account_field_name_length\"\n draft-mode\n />\n </li>\n <li>\n <IntegerSetting\n source=\"admin\"\n path=\":pleroma.:instance.:account_field_value_length\"\n draft-mode\n />\n </li>\n </ul>\n </li>\n <li>\n <h4>{{ $t('admin_dash.limits.user_uploads') }}</h4>\n <ul class=\"setting-list\">\n <li>\n <IntegerSetting\n source=\"admin\"\n path=\":pleroma.:instance.:avatar_upload_limit\"\n draft-mode\n />\n </li>\n <li>\n <IntegerSetting\n source=\"admin\"\n path=\":pleroma.:instance.:banner_upload_limit\"\n draft-mode\n />\n </li>\n </ul>\n </li>\n </ul>\n </li>\n </ul>\n </div>\n </div>\n</template>\n\n<script src=\"./limits_tab.js\"></script>\n","import BooleanSetting from '../helpers/boolean_setting.vue'\nimport ChoiceSetting from '../helpers/choice_setting.vue'\nimport IntegerSetting from '../helpers/integer_setting.vue'\nimport StringSetting from '../helpers/string_setting.vue'\n\nimport SharedComputedObject from '../helpers/shared_computed_object.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faGlobe\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faGlobe\n)\n\nconst LimitsTab = {\n data () {},\n components: {\n BooleanSetting,\n ChoiceSetting,\n IntegerSetting,\n StringSetting\n },\n computed: {\n ...SharedComputedObject()\n }\n}\n\nexport default LimitsTab\n","import { render } from \"./limits_tab.vue?vue&type=template&id=04194dfc\"\nimport script from \"./limits_tab.js?vue&type=script&lang=js\"\nexport * from \"./limits_tab.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n class=\"frontends-tab\"\n :label=\"$t('admin_dash.tabs.frontends')\"\n >\n <div class=\"setting-item\">\n <h2>{{ $t('admin_dash.tabs.frontends') }}</h2>\n <p>{{ $t('admin_dash.frontend.wip_notice') }}</p>\n <ul class=\"setting-list\">\n <li>\n <h3>{{ $t('admin_dash.frontend.default_frontend') }}</h3>\n <p>{{ $t('admin_dash.frontend.default_frontend_tip') }}</p>\n <p>{{ $t('admin_dash.frontend.default_frontend_tip2') }}</p>\n <ul class=\"setting-list\">\n <li>\n <StringSetting path=\":pleroma.:frontends.:primary.name\" />\n </li>\n <li>\n <StringSetting path=\":pleroma.:frontends.:primary.ref\" />\n </li>\n <li>\n <GroupSetting path=\":pleroma.:frontends.:primary\" />\n </li>\n </ul>\n </li>\n </ul>\n <div class=\"setting-list\">\n <h3>{{ $t('admin_dash.frontend.available_frontends') }}</h3>\n <ul class=\"cards-list\">\n <li\n v-for=\"frontend in frontends\"\n :key=\"frontend.name\"\n >\n <strong>{{ frontend.name }}</strong>\n {{ ' ' }}\n <span v-if=\"adminDraft[':pleroma'][':frontends'][':primary'].name === frontend.name\">\n <i18n-t\n v-if=\"adminDraft[':pleroma'][':frontends'][':primary'].ref === frontend.refs[0]\"\n keypath=\"admin_dash.frontend.is_default\"\n />\n <i18n-t\n v-else\n keypath=\"admin_dash.frontend.is_default_custom\"\n >\n <template #version>\n <code>{{ adminDraft[':pleroma'][':frontends'][':primary'].ref }}</code>\n </template>\n </i18n-t>\n </span>\n <dl>\n <dt>{{ $t('admin_dash.frontend.repository') }}</dt>\n <dd>\n <a\n :href=\"frontend.git\"\n target=\"_blank\"\n >{{ frontend.git }}</a>\n </dd>\n <template v-if=\"expertLevel\">\n <dt>{{ $t('admin_dash.frontend.versions') }}</dt>\n <dd\n v-for=\"ref in frontend.refs\"\n :key=\"ref\"\n >\n <code>{{ ref }}</code>\n </dd>\n </template>\n <dt v-if=\"expertLevel\">\n {{ $t('admin_dash.frontend.build_url') }}\n </dt>\n <dd v-if=\"expertLevel\">\n <a\n :href=\"frontend.build_url\"\n target=\"_blank\"\n >{{ frontend.build_url }}</a>\n </dd>\n </dl>\n <div>\n <span class=\"btn-group\">\n <button\n class=\"button button-default btn\"\n type=\"button\"\n @click=\"update(frontend)\"\n >\n {{\n frontend.installed\n ? $t('admin_dash.frontend.reinstall')\n : $t('admin_dash.frontend.install')\n }}\n </button>\n <Popover\n v-if=\"frontend.refs.length > 1\"\n trigger=\"click\"\n class=\"button-dropdown\"\n placement=\"bottom\"\n >\n <template #content>\n <div class=\"dropdown-menu\">\n <button\n v-for=\"ref in frontend.refs\"\n :key=\"ref\"\n class=\"button-default dropdown-item\"\n @click=\"update(frontend, ref)\"\n >\n <i18n-t keypath=\"admin_dash.frontend.install_version\">\n <template #version>\n <code>{{ ref }}</code>\n </template>\n </i18n-t>\n </button>\n </div>\n </template>\n <template #trigger>\n <button\n class=\"button button-default btn dropdown-button\"\n type=\"button\"\n :title=\"$t('admin_dash.frontend.more_install_options')\"\n >\n <FAIcon icon=\"chevron-down\" />\n </button>\n </template>\n </Popover>\n </span>\n <span\n v-if=\"frontend.installed && frontend.name !== 'admin-fe'\"\n class=\"btn-group\"\n >\n <button\n class=\"button button-default btn\"\n type=\"button\"\n :disabled=\"\n adminDraft[':pleroma'][':frontends'][':primary'].name === frontend.name &&\n adminDraft[':pleroma'][':frontends'][':primary'].ref === frontend.refs[0]\n \"\n @click=\"setDefault(frontend)\"\n >\n {{\n $t('admin_dash.frontend.set_default')\n }}\n </button>\n {{ ' ' }}\n <Popover\n v-if=\"frontend.refs.length > 1\"\n trigger=\"click\"\n class=\"button-dropdown\"\n placement=\"bottom\"\n >\n <template #content>\n <div class=\"dropdown-menu\">\n <button\n v-for=\"ref in frontend.refs.slice(1)\"\n :key=\"ref\"\n class=\"button-default dropdown-item\"\n @click=\"setDefault(frontend, ref)\"\n >\n <i18n-t keypath=\"admin_dash.frontend.set_default_version\">\n <template #version>\n <code>{{ ref }}</code>\n </template>\n </i18n-t>\n </button>\n </div>\n </template>\n <template #trigger>\n <button\n class=\"button button-default btn dropdown-button\"\n type=\"button\"\n :title=\"$t('admin_dash.frontend.more_default_options')\"\n >\n <FAIcon icon=\"chevron-down\" />\n </button>\n </template>\n </Popover>\n </span>\n </div>\n </li>\n </ul>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./frontends_tab.js\"></script>\n\n<style lang=\"scss\" src=\"./frontends_tab.scss\"></style>\n","import BooleanSetting from '../helpers/boolean_setting.vue'\nimport ChoiceSetting from '../helpers/choice_setting.vue'\nimport IntegerSetting from '../helpers/integer_setting.vue'\nimport StringSetting from '../helpers/string_setting.vue'\nimport GroupSetting from '../helpers/group_setting.vue'\nimport Popover from 'src/components/popover/popover.vue'\n\nimport SharedComputedObject from '../helpers/shared_computed_object.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faGlobe\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faGlobe\n)\n\nconst FrontendsTab = {\n provide () {\n return {\n defaultDraftMode: true,\n defaultSource: 'admin'\n }\n },\n components: {\n BooleanSetting,\n ChoiceSetting,\n IntegerSetting,\n StringSetting,\n GroupSetting,\n Popover\n },\n created () {\n if (this.user.rights.admin) {\n this.$store.dispatch('loadFrontendsStuff')\n }\n },\n computed: {\n frontends () {\n return this.$store.state.adminSettings.frontends\n },\n ...SharedComputedObject()\n },\n methods: {\n update (frontend, suggestRef) {\n const ref = suggestRef || frontend.refs[0]\n const { name } = frontend\n const payload = { name, ref }\n\n this.$store.state.api.backendInteractor.installFrontend({ payload })\n .then((externalUser) => {\n this.$store.dispatch('loadFrontendsStuff')\n })\n },\n setDefault (frontend, suggestRef) {\n const ref = suggestRef || frontend.refs[0]\n const { name } = frontend\n\n this.$store.commit('updateAdminDraft', { path: [':pleroma', ':frontends', ':primary'], value: { name, ref } })\n }\n }\n}\n\nexport default FrontendsTab\n","import { render } from \"./frontends_tab.vue?vue&type=template&id=31875566\"\nimport script from \"./frontends_tab.js?vue&type=script&lang=js\"\nexport * from \"./frontends_tab.js?vue&type=script&lang=js\"\n\nimport \"./frontends_tab.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'\n\nimport InstanceTab from './admin_tabs/instance_tab.vue'\nimport LimitsTab from './admin_tabs/limits_tab.vue'\nimport FrontendsTab from './admin_tabs/frontends_tab.vue'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faWrench,\n faHand,\n faLaptopCode,\n faPaintBrush,\n faBell,\n faDownload,\n faEyeSlash,\n faInfo\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faWrench,\n faHand,\n faLaptopCode,\n faPaintBrush,\n faBell,\n faDownload,\n faEyeSlash,\n faInfo\n)\n\nconst SettingsModalAdminContent = {\n components: {\n TabSwitcher,\n\n InstanceTab,\n LimitsTab,\n FrontendsTab\n },\n computed: {\n user () {\n return this.$store.state.users.currentUser\n },\n isLoggedIn () {\n return !!this.$store.state.users.currentUser\n },\n open () {\n return this.$store.state.interface.settingsModalState !== 'hidden'\n },\n bodyLock () {\n return this.$store.state.interface.settingsModalState === 'visible'\n },\n adminDbLoaded () {\n return this.$store.state.adminSettings.loaded\n },\n adminDescriptionsLoaded () {\n return this.$store.state.adminSettings.descriptions !== null\n },\n noDb () {\n return this.$store.state.adminSettings.dbConfigEnabled === false\n }\n },\n created () {\n if (this.user.rights.admin) {\n this.$store.dispatch('loadAdminStuff')\n }\n },\n methods: {\n onOpen () {\n const targetTab = this.$store.state.interface.settingsModalTargetTab\n // We're being told to open in specific tab\n if (targetTab) {\n const tabIndex = this.$refs.tabSwitcher.$slots.default().findIndex(elm => {\n return elm.props && elm.props['data-tab-name'] === targetTab\n })\n if (tabIndex >= 0) {\n this.$refs.tabSwitcher.setTab(tabIndex)\n }\n }\n // Clear the state of target tab, so that next time settings is opened\n // it doesn't force it.\n this.$store.dispatch('clearSettingsModalTargetTab')\n }\n },\n mounted () {\n this.onOpen()\n },\n watch: {\n open: function (value) {\n if (value) this.onOpen()\n }\n }\n}\n\nexport default SettingsModalAdminContent\n","import { render } from \"./settings_modal_admin_content.vue?vue&type=template&id=43a9ece4\"\nimport script from \"./settings_modal_admin_content.js?vue&type=script&lang=js\"\nexport * from \"./settings_modal_admin_content.js?vue&type=script&lang=js\"\n\nimport \"./settings_modal_admin_content.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__"],"names":["class","href","target","_createElementVNode","Setting","_ctx","matchesExpertLevel","_createElementBlock","_hoisted_1","for","path","_normalizeClass","shouldBeDisabled","backendDescriptionLabel","_Fragment","key","source","_toDisplayString","_renderSlot","$slots","id","disabled","value","realDraftMode","draft","state","onChange","_cache","update","apply","arguments","_createVNode","_component_ModifiedIndicator","changed","isChanged","onclick","reset","_component_ProfileSettingIndicator","isProfileSetting","_component_DraftButtons","backendDescriptionDescription","_objectSpread","computed","isDirty","_isEqual","this","props","acceptTypes","type","String","required","default","components","MediaUpload","Attachment","attachment","url","includes","$store","instance","server","mimetype","fileTypeExt","methods","setMediaFile","fileInfo","configSink","_hoisted_3","$t","_hoisted_4","_component_Attachment","compact","size","onSetMedia","onMedia","onNaturalSizeLoad","_hoisted_6","_component_MediaUpload","ref","dropFiles","onUploaded","onUploadFailed","uploadFailed","library","faGlobe","provide","defaultDraftMode","defaultSource","BooleanSetting","ChoiceSetting","IntegerSetting","StringSetting","AttachmentSetting","GroupSetting","SharedComputedObject","label","_hoisted_2","_component_StringSetting","_component_AttachmentSetting","_hoisted_5","_component_BooleanSetting","_hoisted_7","_component_IntegerSetting","_hoisted_8","_hoisted_9","_component_ChoiceSetting","adminDraft","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","expertLevel","_hoisted_14","_hoisted_15","_hoisted_16","_component_GroupSetting","_hoisted_17","_hoisted_18","data","expert","Popover","created","user","rights","admin","dispatch","frontends","adminSettings","frontend","suggestRef","_this","refs","payload","name","api","backendInteractor","installFrontend","then","externalUser","setDefault","commit","_renderList","_createBlock","_component_i18n_t","keypath","version","_withCtx","git","build_url","onClick","$event","installed","length","_component_Popover","trigger","placement","content","title","_component_FAIcon","icon","_hoisted_19","slice","faWrench","faHand","faLaptopCode","faPaintBrush","faBell","faDownload","faEyeSlash","faInfo","TabSwitcher","InstanceTab","LimitsTab","FrontendsTab","users","currentUser","isLoggedIn","open","settingsModalState","bodyLock","adminDbLoaded","loaded","adminDescriptionsLoaded","descriptions","noDb","dbConfigEnabled","onOpen","targetTab","settingsModalTargetTab","tabIndex","$refs","tabSwitcher","findIndex","elm","setTab","mounted","watch","_component_tab_switcher","documentation","property","_component_InstanceTab","_component_LimitsTab","_component_FrontendsTab"],"sourceRoot":""} \ No newline at end of file
diff --git a/priv/static/static/js/app.7c4b412b26221a7c8572.js b/priv/static/static/js/app.7c4b412b26221a7c8572.js
deleted file mode 100644
index d48c8194f..000000000
--- a/priv/static/static/js/app.7c4b412b26221a7c8572.js
+++ /dev/null
@@ -1,2 +0,0 @@
-(()=>{var e,t,n,o,r,i={88797:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});const o={about:{mrf:{federation:e=>{const{normalize:t}=e;return t(["Federation"])},keyword:{keyword_policies:e=>{const{normalize:t}=e;return t(["Keyword policies"])},ftl_removal:e=>{const{normalize:t}=e;return t(['Removal from "The Whole Known Network" Timeline'])},reject:e=>{const{normalize:t}=e;return t(["Reject"])},replace:e=>{const{normalize:t}=e;return t(["Replace"])},is_replaced_by:e=>{const{normalize:t}=e;return t(["→"])}},mrf_policies:e=>{const{normalize:t}=e;return t(["Enabled MRF policies"])},mrf_policies_desc:e=>{const{normalize:t}=e;return t(["MRF policies manipulate the federation behaviour of the instance. The following policies are enabled:"])},simple:{simple_policies:e=>{const{normalize:t}=e;return t(["Instance-specific policies"])},instance:e=>{const{normalize:t}=e;return t(["Instance"])},reason:e=>{const{normalize:t}=e;return t(["Reason"])},not_applicable:e=>{const{normalize:t}=e;return t(["N/A"])},accept:e=>{const{normalize:t}=e;return t(["Accept"])},accept_desc:e=>{const{normalize:t}=e;return t(["This instance only accepts messages from the following instances:"])},reject:e=>{const{normalize:t}=e;return t(["Reject"])},reject_desc:e=>{const{normalize:t}=e;return t(["This instance will not accept messages from the following instances:"])},quarantine:e=>{const{normalize:t}=e;return t(["Quarantine"])},quarantine_desc:e=>{const{normalize:t}=e;return t(["This instance will send only public posts to the following instances:"])},ftl_removal:e=>{const{normalize:t}=e;return t(['Removal from "Known Network" Timeline'])},ftl_removal_desc:e=>{const{normalize:t}=e;return t(['This instance removes these instances from "Known Network" timeline:'])},media_removal:e=>{const{normalize:t}=e;return t(["Media Removal"])},media_removal_desc:e=>{const{normalize:t}=e;return t(["This instance removes media from posts on the following instances:"])},media_nsfw:e=>{const{normalize:t}=e;return t(["Media force-set as sensitive"])},media_nsfw_desc:e=>{const{normalize:t}=e;return t(["This instance forces media to be set sensitive in posts on the following instances:"])}}},staff:e=>{const{normalize:t}=e;return t(["Staff"])}},announcements:{page_header:e=>{const{normalize:t}=e;return t(["Announcements"])},title:e=>{const{normalize:t}=e;return t(["Announcement"])},mark_as_read_action:e=>{const{normalize:t}=e;return t(["Mark as read"])},post_form_header:e=>{const{normalize:t}=e;return t(["Post announcement"])},post_placeholder:e=>{const{normalize:t}=e;return t(["Type your announcement content here..."])},post_action:e=>{const{normalize:t}=e;return t(["Post"])},post_error:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Error: ",n(o("error"))])},close_error:e=>{const{normalize:t}=e;return t(["Close"])},delete_action:e=>{const{normalize:t}=e;return t(["Delete"])},start_time_prompt:e=>{const{normalize:t}=e;return t(["Start time: "])},end_time_prompt:e=>{const{normalize:t}=e;return t(["End time: "])},all_day_prompt:e=>{const{normalize:t}=e;return t(["This is an all-day event"])},published_time_display:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Published at ",n(o("time"))])},start_time_display:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Starts at ",n(o("time"))])},end_time_display:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Ends at ",n(o("time"))])},edit_action:e=>{const{normalize:t}=e;return t(["Edit"])},submit_edit_action:e=>{const{normalize:t}=e;return t(["Submit"])},cancel_edit_action:e=>{const{normalize:t}=e;return t(["Cancel"])},inactive_message:e=>{const{normalize:t}=e;return t(["This announcement is inactive"])}},shoutbox:{title:e=>{const{normalize:t}=e;return t(["Shoutbox"])}},domain_mute_card:{mute:e=>{const{normalize:t}=e;return t(["Mute"])},mute_progress:e=>{const{normalize:t}=e;return t(["Muting…"])},unmute:e=>{const{normalize:t}=e;return t(["Unmute"])},unmute_progress:e=>{const{normalize:t}=e;return t(["Unmuting…"])}},exporter:{export:e=>{const{normalize:t}=e;return t(["Export"])},processing:e=>{const{normalize:t}=e;return t(["Processing, you'll soon be asked to download your file"])}},features_panel:{shout:e=>{const{normalize:t}=e;return t(["Shoutbox"])},pleroma_chat_messages:e=>{const{normalize:t}=e;return t(["Pleroma Chat"])},gopher:e=>{const{normalize:t}=e;return t(["Gopher"])},media_proxy:e=>{const{normalize:t}=e;return t(["Media proxy"])},scope_options:e=>{const{normalize:t}=e;return t(["Scope options"])},text_limit:e=>{const{normalize:t}=e;return t(["Text limit"])},title:e=>{const{normalize:t}=e;return t(["Features"])},who_to_follow:e=>{const{normalize:t}=e;return t(["Who to follow"])},upload_limit:e=>{const{normalize:t}=e;return t(["Upload limit"])}},finder:{error_fetching_user:e=>{const{normalize:t}=e;return t(["Error fetching user"])},find_user:e=>{const{normalize:t}=e;return t(["Find user"])}},general:{apply:e=>{const{normalize:t}=e;return t(["Apply"])},submit:e=>{const{normalize:t}=e;return t(["Submit"])},more:e=>{const{normalize:t}=e;return t(["More"])},loading:e=>{const{normalize:t}=e;return t(["Loading…"])},generic_error:e=>{const{normalize:t}=e;return t(["An error occured"])},generic_error_message:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["An error occured: ",n(o(0))])},error_retry:e=>{const{normalize:t}=e;return t(["Please try again"])},retry:e=>{const{normalize:t}=e;return t(["Try again"])},optional:e=>{const{normalize:t}=e;return t(["optional"])},show_more:e=>{const{normalize:t}=e;return t(["Show more"])},show_less:e=>{const{normalize:t}=e;return t(["Show less"])},never_show_again:e=>{const{normalize:t}=e;return t(["Never show again"])},dismiss:e=>{const{normalize:t}=e;return t(["Dismiss"])},cancel:e=>{const{normalize:t}=e;return t(["Cancel"])},disable:e=>{const{normalize:t}=e;return t(["Disable"])},enable:e=>{const{normalize:t}=e;return t(["Enable"])},confirm:e=>{const{normalize:t}=e;return t(["Confirm"])},verify:e=>{const{normalize:t}=e;return t(["Verify"])},close:e=>{const{normalize:t}=e;return t(["Close"])},undo:e=>{const{normalize:t}=e;return t(["Undo"])},yes:e=>{const{normalize:t}=e;return t(["Yes"])},no:e=>{const{normalize:t}=e;return t(["No"])},peek:e=>{const{normalize:t}=e;return t(["Peek"])},scroll_to_top:e=>{const{normalize:t}=e;return t(["Scroll to top"])},role:{admin:e=>{const{normalize:t}=e;return t(["Admin"])},moderator:e=>{const{normalize:t}=e;return t(["Moderator"])}},unpin:e=>{const{normalize:t}=e;return t(["Unpin item"])},pin:e=>{const{normalize:t}=e;return t(["Pin item"])},flash_content:e=>{const{normalize:t}=e;return t(["Click to show Flash content using Ruffle (Experimental, may not work)."])},flash_security:e=>{const{normalize:t}=e;return t(["Note that this can be potentially dangerous since Flash content is still arbitrary code."])},flash_fail:e=>{const{normalize:t}=e;return t(["Failed to load flash content, see console for details."])},scope_in_timeline:{direct:e=>{const{normalize:t}=e;return t(["Direct"])},private:e=>{const{normalize:t}=e;return t(["Followers-only"])},public:e=>{const{normalize:t}=e;return t(["Public"])},unlisted:e=>{const{normalize:t}=e;return t(["Unlisted"])}}},image_cropper:{crop_picture:e=>{const{normalize:t}=e;return t(["Crop picture"])},save:e=>{const{normalize:t}=e;return t(["Save"])},save_without_cropping:e=>{const{normalize:t}=e;return t(["Save without cropping"])},cancel:e=>{const{normalize:t}=e;return t(["Cancel"])}},importer:{submit:e=>{const{normalize:t}=e;return t(["Submit"])},success:e=>{const{normalize:t}=e;return t(["Imported successfully."])},error:e=>{const{normalize:t}=e;return t(["An error occured while importing this file."])}},login:{login:e=>{const{normalize:t}=e;return t(["Log in"])},description:e=>{const{normalize:t}=e;return t(["Log in with OAuth"])},logout:e=>{const{normalize:t}=e;return t(["Log out"])},logout_confirm_title:e=>{const{normalize:t}=e;return t(["Logout confirmation"])},logout_confirm:e=>{const{normalize:t}=e;return t(["Do you really want to logout?"])},logout_confirm_accept_button:e=>{const{normalize:t}=e;return t(["Logout"])},logout_confirm_cancel_button:e=>{const{normalize:t}=e;return t(["Do not logout"])},password:e=>{const{normalize:t}=e;return t(["Password"])},placeholder:e=>{const{normalize:t}=e;return t(["e.g. lain"])},register:e=>{const{normalize:t}=e;return t(["Register"])},username:e=>{const{normalize:t}=e;return t(["Username"])},hint:e=>{const{normalize:t}=e;return t(["Log in to join the discussion"])},authentication_code:e=>{const{normalize:t}=e;return t(["Authentication code"])},enter_recovery_code:e=>{const{normalize:t}=e;return t(["Enter a recovery code"])},enter_two_factor_code:e=>{const{normalize:t}=e;return t(["Enter a two-factor code"])},recovery_code:e=>{const{normalize:t}=e;return t(["Recovery code"])},heading:{totp:e=>{const{normalize:t}=e;return t(["Two-factor authentication"])},recovery:e=>{const{normalize:t}=e;return t(["Two-factor recovery"])}}},media_modal:{previous:e=>{const{normalize:t}=e;return t(["Previous"])},next:e=>{const{normalize:t}=e;return t(["Next"])},counter:e=>{const{normalize:t,interpolate:n,named:o}=e;return t([n(o("current"))," / ",n(o("total"))])},hide:e=>{const{normalize:t}=e;return t(["Close media viewer"])}},nav:{about:e=>{const{normalize:t}=e;return t(["About"])},administration:e=>{const{normalize:t}=e;return t(["Administration"])},back:e=>{const{normalize:t}=e;return t(["Back"])},friend_requests:e=>{const{normalize:t}=e;return t(["Follow requests"])},mentions:e=>{const{normalize:t}=e;return t(["Mentions"])},interactions:e=>{const{normalize:t}=e;return t(["Interactions"])},dms:e=>{const{normalize:t}=e;return t(["Direct messages"])},public_tl:e=>{const{normalize:t}=e;return t(["Public timeline"])},timeline:e=>{const{normalize:t}=e;return t(["Timeline"])},home_timeline:e=>{const{normalize:t}=e;return t(["Home timeline"])},twkn:e=>{const{normalize:t}=e;return t(["Known Network"])},bookmarks:e=>{const{normalize:t}=e;return t(["Bookmarks"])},user_search:e=>{const{normalize:t}=e;return t(["User Search"])},search:e=>{const{normalize:t}=e;return t(["Search"])},search_close:e=>{const{normalize:t}=e;return t(["Close search bar"])},who_to_follow:e=>{const{normalize:t}=e;return t(["Who to follow"])},preferences:e=>{const{normalize:t}=e;return t(["Preferences"])},timelines:e=>{const{normalize:t}=e;return t(["Timelines"])},chats:e=>{const{normalize:t}=e;return t(["Chats"])},lists:e=>{const{normalize:t}=e;return t(["Lists"])},edit_nav_mobile:e=>{const{normalize:t}=e;return t(["Customize navigation bar"])},edit_pinned:e=>{const{normalize:t}=e;return t(["Edit pinned items"])},edit_finish:e=>{const{normalize:t}=e;return t(["Done editing"])},mobile_sidebar:e=>{const{normalize:t}=e;return t(["Toggle mobile sidebar"])},mobile_notifications:e=>{const{normalize:t}=e;return t(["Open notifications"])},mobile_notifications:e=>{const{normalize:t}=e;return t(["Open notifications (there are unread ones)"])},mobile_notifications_close:e=>{const{normalize:t}=e;return t(["Close notifications"])},announcements:e=>{const{normalize:t}=e;return t(["Announcements"])}},notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Unknown status, searching for it…"])},error:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["Error fetching notifications: ",n(o(0))])},favorited_you:e=>{const{normalize:t}=e;return t(["favorited your status"])},followed_you:e=>{const{normalize:t}=e;return t(["followed you"])},follow_request:e=>{const{normalize:t}=e;return t(["wants to follow you"])},load_older:e=>{const{normalize:t}=e;return t(["Load older notifications"])},notifications:e=>{const{normalize:t}=e;return t(["Notifications"])},read:e=>{const{normalize:t}=e;return t(["Read!"])},repeated_you:e=>{const{normalize:t}=e;return t(["repeated your status"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["No more notifications"])},migrated_to:e=>{const{normalize:t}=e;return t(["migrated to"])},reacted_with:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["reacted with ",n(o(0))])},submitted_report:e=>{const{normalize:t}=e;return t(["submitted a report"])},poll_ended:e=>{const{normalize:t}=e;return t(["poll has ended"])}},polls:{add_poll:e=>{const{normalize:t}=e;return t(["Add poll"])},add_option:e=>{const{normalize:t}=e;return t(["Add option"])},option:e=>{const{normalize:t}=e;return t(["Option"])},votes:e=>{const{normalize:t}=e;return t(["votes"])},people_voted_count:e=>{const{normalize:t,interpolate:n,named:o,plural:r}=e;return r([t([n(o("count"))," person voted"]),t([n(o("count"))," people voted"])])},votes_count:e=>{const{normalize:t,interpolate:n,named:o,plural:r}=e;return r([t([n(o("count"))," vote"]),t([n(o("count"))," votes"])])},vote:e=>{const{normalize:t}=e;return t(["Vote"])},type:e=>{const{normalize:t}=e;return t(["Poll type"])},single_choice:e=>{const{normalize:t}=e;return t(["Single choice"])},multiple_choices:e=>{const{normalize:t}=e;return t(["Multiple choices"])},expiry:e=>{const{normalize:t}=e;return t(["Poll age"])},expires_in:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["Poll ends in ",n(o(0))])},expired:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["Poll ended ",n(o(0))," ago"])},not_enough_options:e=>{const{normalize:t}=e;return t(["Too few unique options in poll"])}},emoji:{stickers:e=>{const{normalize:t}=e;return t(["Stickers"])},emoji:e=>{const{normalize:t}=e;return t(["Emoji"])},keep_open:e=>{const{normalize:t}=e;return t(["Keep picker open"])},search_emoji:e=>{const{normalize:t}=e;return t(["Search for an emoji"])},add_emoji:e=>{const{normalize:t}=e;return t(["Insert emoji"])},custom:e=>{const{normalize:t}=e;return t(["Custom emoji"])},unpacked:e=>{const{normalize:t}=e;return t(["Unpacked emoji"])},unicode:e=>{const{normalize:t}=e;return t(["Unicode emoji"])},unicode_groups:{activities:e=>{const{normalize:t}=e;return t(["Activities"])},"animals-and-nature":e=>{const{normalize:t}=e;return t(["Animals & Nature"])},flags:e=>{const{normalize:t}=e;return t(["Flags"])},"food-and-drink":e=>{const{normalize:t}=e;return t(["Food & Drink"])},objects:e=>{const{normalize:t}=e;return t(["Objects"])},"people-and-body":e=>{const{normalize:t}=e;return t(["People & Body"])},"smileys-and-emotion":e=>{const{normalize:t}=e;return t(["Smileys & Emotion"])},symbols:e=>{const{normalize:t}=e;return t(["Symbols"])},"travel-and-places":e=>{const{normalize:t}=e;return t(["Travel & Places"])}},load_all_hint:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Loaded first ",n(o("saneAmount"))," emoji, loading all emoji may cause performance issues."])},load_all:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Loading all ",n(o("emojiAmount"))," emoji"])},regional_indicator:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Regional indicator ",n(o("letter"))])}},errors:{storage_unavailable:e=>{const{normalize:t}=e;return t(["Pleroma could not access browser storage. Your login or your local settings won't be saved and you might encounter unexpected issues. Try enabling cookies."])}},interactions:{favs_repeats:e=>{const{normalize:t}=e;return t(["Repeats and favorites"])},follows:e=>{const{normalize:t}=e;return t(["New follows"])},emoji_reactions:e=>{const{normalize:t}=e;return t(["Emoji Reactions"])},reports:e=>{const{normalize:t}=e;return t(["Reports"])},moves:e=>{const{normalize:t}=e;return t(["User migrates"])},load_older:e=>{const{normalize:t}=e;return t(["Load older interactions"])}},post_status:{edit_status:e=>{const{normalize:t}=e;return t(["Edit status"])},new_status:e=>{const{normalize:t}=e;return t(["Post new status"])},reply_option:e=>{const{normalize:t}=e;return t(["Reply to this status"])},quote_option:e=>{const{normalize:t}=e;return t(["Quote this status"])},account_not_locked_warning:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["Your account is not ",n(o(0)),". Anyone can follow you to view your follower-only posts."])},account_not_locked_warning_link:e=>{const{normalize:t}=e;return t(["locked"])},attachments_sensitive:e=>{const{normalize:t}=e;return t(["Mark attachments as sensitive"])},media_description:e=>{const{normalize:t}=e;return t(["Media description"])},content_type:{"text/plain":e=>{const{normalize:t}=e;return t(["Plain text"])},"text/html":e=>{const{normalize:t}=e;return t(["HTML"])},"text/markdown":e=>{const{normalize:t}=e;return t(["Markdown"])},"text/bbcode":e=>{const{normalize:t}=e;return t(["BBCode"])}},content_type_selection:e=>{const{normalize:t}=e;return t(["Post format"])},content_warning:e=>{const{normalize:t}=e;return t(["Subject (optional)"])},default:e=>{const{normalize:t}=e;return t(["Just landed in L.A."])},direct_warning_to_all:e=>{const{normalize:t}=e;return t(["This post will be visible to all the mentioned users."])},direct_warning_to_first_only:e=>{const{normalize:t}=e;return t(["This post will only be visible to the mentioned users at the beginning of the message."])},edit_remote_warning:e=>{const{normalize:t}=e;return t(["Other remote instances may not support editing and unable to receive the latest version of your post."])},edit_unsupported_warning:e=>{const{normalize:t}=e;return t(["Pleroma does not support editing mentions or polls."])},posting:e=>{const{normalize:t}=e;return t(["Posting"])},post:e=>{const{normalize:t}=e;return t(["Post"])},preview:e=>{const{normalize:t}=e;return t(["Preview"])},preview_empty:e=>{const{normalize:t}=e;return t(["Empty"])},empty_status_error:e=>{const{normalize:t}=e;return t(["Can't post an empty status with no files"])},media_description_error:e=>{const{normalize:t}=e;return t(["Failed to update media, try again"])},scope_notice:{public:e=>{const{normalize:t}=e;return t(["This post will be visible to everyone"])},private:e=>{const{normalize:t}=e;return t(["This post will be visible to your followers only"])},unlisted:e=>{const{normalize:t}=e;return t(["This post will not be visible in Public Timeline and The Whole Known Network"])}},scope_notice_dismiss:e=>{const{normalize:t}=e;return t(["Close this notice"])},scope:{direct:e=>{const{normalize:t}=e;return t(["Direct - post to mentioned users only"])},private:e=>{const{normalize:t}=e;return t(["Followers-only - post to followers only"])},public:e=>{const{normalize:t}=e;return t(["Public - post to public timelines"])},unlisted:e=>{const{normalize:t}=e;return t(["Unlisted - do not post to public timelines"])}}},registration:{bio_optional:e=>{const{normalize:t}=e;return t(["Bio (optional)"])},email:e=>{const{normalize:t}=e;return t(["Email"])},email_optional:e=>{const{normalize:t}=e;return t(["Email (optional)"])},fullname:e=>{const{normalize:t}=e;return t(["Display name"])},password_confirm:e=>{const{normalize:t}=e;return t(["Password confirmation"])},registration:e=>{const{normalize:t}=e;return t(["Registration"])},token:e=>{const{normalize:t}=e;return t(["Invite token"])},captcha:e=>{const{normalize:t}=e;return t(["CAPTCHA"])},new_captcha:e=>{const{normalize:t}=e;return t(["Click the image to get a new captcha"])},username_placeholder:e=>{const{normalize:t}=e;return t(["e.g. lain"])},fullname_placeholder:e=>{const{normalize:t}=e;return t(["e.g. Lain Iwakura"])},bio_placeholder:e=>{const{normalize:t}=e;return t(["e.g.\nHi, I'm Lain.\nI’m an anime girl living in suburban Japan. You may know me from the Wired."])},reason:e=>{const{normalize:t}=e;return t(["Reason to register"])},reason_placeholder:e=>{const{normalize:t}=e;return t(["This instance approves registrations manually.\nLet the administration know why you want to register."])},register:e=>{const{normalize:t}=e;return t(["Register"])},validations:{username_required:e=>{const{normalize:t}=e;return t(["cannot be left blank"])},fullname_required:e=>{const{normalize:t}=e;return t(["cannot be left blank"])},email_required:e=>{const{normalize:t}=e;return t(["cannot be left blank"])},password_required:e=>{const{normalize:t}=e;return t(["cannot be left blank"])},password_confirmation_required:e=>{const{normalize:t}=e;return t(["cannot be left blank"])},password_confirmation_match:e=>{const{normalize:t}=e;return t(["should be the same as password"])},birthday_required:e=>{const{normalize:t}=e;return t(["cannot be left blank"])},birthday_min_age:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["must be on or before ",n(o("date"))])}},email_language:e=>{const{normalize:t}=e;return t(["In which language do you want to receive emails from the server?"])},birthday:e=>{const{normalize:t}=e;return t(["Birthday:"])},birthday_optional:e=>{const{normalize:t}=e;return t(["Birthday (optional):"])}},remote_user_resolver:{remote_user_resolver:e=>{const{normalize:t}=e;return t(["Remote user resolver"])},searching_for:e=>{const{normalize:t}=e;return t(["Searching for"])},error:e=>{const{normalize:t}=e;return t(["Not found."])}},report:{reporter:e=>{const{normalize:t}=e;return t(["Reporter:"])},reported_user:e=>{const{normalize:t}=e;return t(["Reported user:"])},reported_statuses:e=>{const{normalize:t}=e;return t(["Reported statuses:"])},notes:e=>{const{normalize:t}=e;return t(["Notes:"])},state:e=>{const{normalize:t}=e;return t(["State:"])},state_open:e=>{const{normalize:t}=e;return t(["Open"])},state_closed:e=>{const{normalize:t}=e;return t(["Closed"])},state_resolved:e=>{const{normalize:t}=e;return t(["Resolved"])}},selectable_list:{select_all:e=>{const{normalize:t}=e;return t(["Select all"])}},settings:{add_language:e=>{const{normalize:t}=e;return t(["Add fallback language"])},remove_language:e=>{const{normalize:t}=e;return t(["Remove"])},primary_language:e=>{const{normalize:t}=e;return t(["Primary language:"])},fallback_language:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Fallback language ",n(o("index")),":"])},app_name:e=>{const{normalize:t}=e;return t(["App name"])},expert_mode:e=>{const{normalize:t}=e;return t(["Show advanced"])},save:e=>{const{normalize:t}=e;return t(["Save changes"])},security:e=>{const{normalize:t}=e;return t(["Security"])},setting_changed:e=>{const{normalize:t}=e;return t(["Setting is different from default"])},setting_server_side:e=>{const{normalize:t}=e;return t(["This setting is tied to your profile and affects all sessions and clients"])},enter_current_password_to_confirm:e=>{const{normalize:t}=e;return t(["Enter your current password to confirm your identity"])},post_look_feel:e=>{const{normalize:t}=e;return t(["Posts Look & Feel"])},mention_links:e=>{const{normalize:t}=e;return t(["Mention links"])},mfa:{otp:e=>{const{normalize:t}=e;return t(["OTP"])},setup_otp:e=>{const{normalize:t}=e;return t(["Setup OTP"])},wait_pre_setup_otp:e=>{const{normalize:t}=e;return t(["presetting OTP"])},confirm_and_enable:e=>{const{normalize:t}=e;return t(["Confirm & enable OTP"])},title:e=>{const{normalize:t}=e;return t(["Two-factor Authentication"])},generate_new_recovery_codes:e=>{const{normalize:t}=e;return t(["Generate new recovery codes"])},warning_of_generate_new_codes:e=>{const{normalize:t}=e;return t(["When you generate new recovery codes, your old codes won’t work anymore."])},recovery_codes:e=>{const{normalize:t}=e;return t(["Recovery codes."])},waiting_a_recovery_codes:e=>{const{normalize:t}=e;return t(["Receiving backup codes…"])},recovery_codes_warning:e=>{const{normalize:t}=e;return t(["Write the codes down or save them somewhere secure - otherwise you won't see them again. If you lose access to your 2FA app and recovery codes you'll be locked out of your account."])},authentication_methods:e=>{const{normalize:t}=e;return t(["Authentication methods"])},scan:{title:e=>{const{normalize:t}=e;return t(["Scan"])},desc:e=>{const{normalize:t}=e;return t(["Using your two-factor app, scan this QR code or enter text key:"])},secret_code:e=>{const{normalize:t}=e;return t(["Key"])}},verify:{desc:e=>{const{normalize:t}=e;return t(["To enable two-factor authentication, enter the code from your two-factor app:"])}}},lists_navigation:e=>{const{normalize:t}=e;return t(["Show lists in navigation"])},allow_following_move:e=>{const{normalize:t}=e;return t(["Allow auto-follow when following account moves"])},attachmentRadius:e=>{const{normalize:t}=e;return t(["Attachments"])},attachments:e=>{const{normalize:t}=e;return t(["Attachments"])},avatar:e=>{const{normalize:t}=e;return t(["Avatar"])},avatarAltRadius:e=>{const{normalize:t}=e;return t(["Avatars (notifications)"])},avatarRadius:e=>{const{normalize:t}=e;return t(["Avatars"])},background:e=>{const{normalize:t}=e;return t(["Background"])},bio:e=>{const{normalize:t}=e;return t(["Bio"])},email_language:e=>{const{normalize:t}=e;return t(["Language for receiving emails from the server"])},block_export:e=>{const{normalize:t}=e;return t(["Block export"])},block_export_button:e=>{const{normalize:t}=e;return t(["Export your blocks to a csv file"])},block_import:e=>{const{normalize:t}=e;return t(["Block import"])},block_import_error:e=>{const{normalize:t}=e;return t(["Error importing blocks"])},blocks_imported:e=>{const{normalize:t}=e;return t(["Blocks imported! Processing them will take a while."])},mute_export:e=>{const{normalize:t}=e;return t(["Mute export"])},mute_export_button:e=>{const{normalize:t}=e;return t(["Export your mutes to a csv file"])},mute_import:e=>{const{normalize:t}=e;return t(["Mute import"])},mute_import_error:e=>{const{normalize:t}=e;return t(["Error importing mutes"])},mutes_imported:e=>{const{normalize:t}=e;return t(["Mutes imported! Processing them will take a while."])},import_mutes_from_a_csv_file:e=>{const{normalize:t}=e;return t(["Import mutes from a csv file"])},account_backup:e=>{const{normalize:t}=e;return t(["Account backup"])},account_backup_description:e=>{const{normalize:t}=e;return t(["This allows you to download an archive of your account information and your posts, but they cannot yet be imported into a Pleroma account."])},account_backup_table_head:e=>{const{normalize:t}=e;return t(["Backup"])},download_backup:e=>{const{normalize:t}=e;return t(["Download"])},backup_not_ready:e=>{const{normalize:t}=e;return t(["This backup is not ready yet."])},backup_running:e=>{const{normalize:t,interpolate:n,named:o,plural:r}=e;return r([t(["This backup is in progress, processed ",n(o("number"))," record."]),t(["This backup is in progress, processed ",n(o("number"))," records."])])},backup_failed:e=>{const{normalize:t}=e;return t(["This backup has failed."])},remove_backup:e=>{const{normalize:t}=e;return t(["Remove"])},list_backups_error:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Error fetching backup list: ",n(o("error"))])},add_backup:e=>{const{normalize:t}=e;return t(["Create a new backup"])},added_backup:e=>{const{normalize:t}=e;return t(["Added a new backup."])},add_backup_error:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Error adding a new backup: ",n(o("error"))])},blocks_tab:e=>{const{normalize:t}=e;return t(["Blocks"])},bot:e=>{const{normalize:t}=e;return t(["This is a bot account"])},btnRadius:e=>{const{normalize:t}=e;return t(["Buttons"])},cBlue:e=>{const{normalize:t}=e;return t(["Blue (Reply, follow)"])},cGreen:e=>{const{normalize:t}=e;return t(["Green (Retweet)"])},cOrange:e=>{const{normalize:t}=e;return t(["Orange (Favorite)"])},cRed:e=>{const{normalize:t}=e;return t(["Red (Cancel)"])},change_email:e=>{const{normalize:t}=e;return t(["Change email"])},change_email_error:e=>{const{normalize:t}=e;return t(["There was an issue changing your email."])},changed_email:e=>{const{normalize:t}=e;return t(["Email changed successfully!"])},change_password:e=>{const{normalize:t}=e;return t(["Change password"])},change_password_error:e=>{const{normalize:t}=e;return t(["There was an issue changing your password."])},changed_password:e=>{const{normalize:t}=e;return t(["Password changed successfully!"])},chatMessageRadius:e=>{const{normalize:t}=e;return t(["Chat message"])},collapse_subject:e=>{const{normalize:t}=e;return t(["Collapse posts with subjects"])},composing:e=>{const{normalize:t}=e;return t(["Composing"])},confirm_new_password:e=>{const{normalize:t}=e;return t(["Confirm new password"])},current_password:e=>{const{normalize:t}=e;return t(["Current password"])},confirm_dialogs:e=>{const{normalize:t}=e;return t(["Ask for confirmation when"])},confirm_dialogs_repeat:e=>{const{normalize:t}=e;return t(["repeating a status"])},confirm_dialogs_unfollow:e=>{const{normalize:t}=e;return t(["unfollowing a user"])},confirm_dialogs_block:e=>{const{normalize:t}=e;return t(["blocking a user"])},confirm_dialogs_mute:e=>{const{normalize:t}=e;return t(["muting a user"])},confirm_dialogs_delete:e=>{const{normalize:t}=e;return t(["deleting a status"])},confirm_dialogs_logout:e=>{const{normalize:t}=e;return t(["logging out"])},confirm_dialogs_approve_follow:e=>{const{normalize:t}=e;return t(["approving a follower"])},confirm_dialogs_deny_follow:e=>{const{normalize:t}=e;return t(["denying a follower"])},confirm_dialogs_remove_follower:e=>{const{normalize:t}=e;return t(["removing a follower"])},mutes_and_blocks:e=>{const{normalize:t}=e;return t(["Mutes and Blocks"])},data_import_export_tab:e=>{const{normalize:t}=e;return t(["Data import / export"])},default_vis:e=>{const{normalize:t}=e;return t(["Default visibility scope"])},delete_account:e=>{const{normalize:t}=e;return t(["Delete account"])},delete_account_description:e=>{const{normalize:t}=e;return t(["Permanently delete your data and deactivate your account."])},delete_account_error:e=>{const{normalize:t}=e;return t(["There was an issue deleting your account. If this persists please contact your instance administrator."])},delete_account_instructions:e=>{const{normalize:t}=e;return t(["Type your password in the input below to confirm account deletion."])},account_alias:e=>{const{normalize:t}=e;return t(["Account aliases"])},account_alias_table_head:e=>{const{normalize:t}=e;return t(["Alias"])},list_aliases_error:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Error fetching aliases: ",n(o("error"))])},hide_list_aliases_error_action:e=>{const{normalize:t}=e;return t(["Close"])},remove_alias:e=>{const{normalize:t}=e;return t(["Remove this alias"])},new_alias_target:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Add a new alias (e.g. ",n(o("example")),")"])},added_alias:e=>{const{normalize:t}=e;return t(["Alias is added."])},add_alias_error:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Error adding alias: ",n(o("error"))])},move_account:e=>{const{normalize:t}=e;return t(["Move account"])},move_account_notes:e=>{const{normalize:t}=e;return t(["If you want to move the account somewhere else, you must go to your target account and add an alias pointing here."])},move_account_target:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Target account (e.g. ",n(o("example")),")"])},moved_account:e=>{const{normalize:t}=e;return t(["Account is moved."])},move_account_error:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Error moving account: ",n(o("error"))])},discoverable:e=>{const{normalize:t}=e;return t(["Allow discovery of this account in search results and other services"])},domain_mutes:e=>{const{normalize:t}=e;return t(["Domains"])},avatar_size_instruction:e=>{const{normalize:t}=e;return t(["The recommended minimum size for avatar images is 150x150 pixels."])},pad_emoji:e=>{const{normalize:t}=e;return t(["Pad emoji with spaces when adding from picker"])},autocomplete_select_first:e=>{const{normalize:t}=e;return t(["Automatically select the first candidate when autocomplete results are available"])},emoji_reactions_on_timeline:e=>{const{normalize:t}=e;return t(["Show emoji reactions on timeline"])},emoji_reactions_scale:e=>{const{normalize:t}=e;return t(["Reactions scale factor"])},export_theme:e=>{const{normalize:t}=e;return t(["Save preset"])},filtering:e=>{const{normalize:t}=e;return t(["Filtering"])},wordfilter:e=>{const{normalize:t}=e;return t(["Wordfilter"])},filtering_explanation:e=>{const{normalize:t}=e;return t(["All statuses containing these words will be muted, one per line"])},word_filter_and_more:e=>{const{normalize:t}=e;return t(["Word filter and more..."])},follow_export:e=>{const{normalize:t}=e;return t(["Follow export"])},follow_export_button:e=>{const{normalize:t}=e;return t(["Export your follows to a csv file"])},follow_import:e=>{const{normalize:t}=e;return t(["Follow import"])},follow_import_error:e=>{const{normalize:t}=e;return t(["Error importing followers"])},follows_imported:e=>{const{normalize:t}=e;return t(["Follows imported! Processing them will take a while."])},accent:e=>{const{normalize:t}=e;return t(["Accent"])},foreground:e=>{const{normalize:t}=e;return t(["Foreground"])},general:e=>{const{normalize:t}=e;return t(["General"])},hide_attachments_in_convo:e=>{const{normalize:t}=e;return t(["Hide attachments in conversations"])},hide_attachments_in_tl:e=>{const{normalize:t}=e;return t(["Hide attachments in timeline"])},hide_media_previews:e=>{const{normalize:t}=e;return t(["Hide media previews"])},hide_muted_posts:e=>{const{normalize:t}=e;return t(["Hide posts of muted users"])},mute_bot_posts:e=>{const{normalize:t}=e;return t(["Mute bot posts"])},hide_bot_indication:e=>{const{normalize:t}=e;return t(["Hide bot indication in posts"])},hide_all_muted_posts:e=>{const{normalize:t}=e;return t(["Hide muted posts"])},max_thumbnails:e=>{const{normalize:t}=e;return t(["Maximum amount of thumbnails per post (empty = no limit)"])},hide_isp:e=>{const{normalize:t}=e;return t(["Hide instance-specific panel"])},hide_shoutbox:e=>{const{normalize:t}=e;return t(["Hide instance shoutbox"])},right_sidebar:e=>{const{normalize:t}=e;return t(["Reverse order of columns"])},navbar_column_stretch:e=>{const{normalize:t}=e;return t(["Stretch navbar to columns width"])},always_show_post_button:e=>{const{normalize:t}=e;return t(["Always show floating New Post button"])},hide_wallpaper:e=>{const{normalize:t}=e;return t(["Hide instance wallpaper"])},preload_images:e=>{const{normalize:t}=e;return t(["Preload images"])},use_one_click_nsfw:e=>{const{normalize:t}=e;return t(["Open NSFW attachments with just one click"])},hide_post_stats:e=>{const{normalize:t}=e;return t(["Hide post statistics (e.g. the number of favorites)"])},hide_user_stats:e=>{const{normalize:t}=e;return t(["Hide user statistics (e.g. the number of followers)"])},hide_filtered_statuses:e=>{const{normalize:t}=e;return t(["Hide all filtered posts"])},hide_wordfiltered_statuses:e=>{const{normalize:t}=e;return t(["Hide word-filtered statuses"])},hide_muted_threads:e=>{const{normalize:t}=e;return t(["Hide muted threads"])},import_blocks_from_a_csv_file:e=>{const{normalize:t}=e;return t(["Import blocks from a csv file"])},import_followers_from_a_csv_file:e=>{const{normalize:t}=e;return t(["Import follows from a csv file"])},import_theme:e=>{const{normalize:t}=e;return t(["Load preset"])},inputRadius:e=>{const{normalize:t}=e;return t(["Input fields"])},checkboxRadius:e=>{const{normalize:t}=e;return t(["Checkboxes"])},instance_default:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["(default: ",n(o("value")),")"])},instance_default_simple:e=>{const{normalize:t}=e;return t(["(default)"])},interface:e=>{const{normalize:t}=e;return t(["Interface"])},interfaceLanguage:e=>{const{normalize:t}=e;return t(["Interface language"])},invalid_theme_imported:e=>{const{normalize:t}=e;return t(["The selected file is not a supported Pleroma theme. No changes to your theme were made."])},limited_availability:e=>{const{normalize:t}=e;return t(["Unavailable in your browser"])},links:e=>{const{normalize:t}=e;return t(["Links"])},lock_account_description:e=>{const{normalize:t}=e;return t(["Restrict your account to approved followers only"])},loop_video:e=>{const{normalize:t}=e;return t(["Loop videos"])},loop_video_silent_only:e=>{const{normalize:t}=e;return t(['Loop only videos without sound (i.e. Mastodon\'s "gifs")'])},mutes_tab:e=>{const{normalize:t}=e;return t(["Mutes"])},play_videos_in_modal:e=>{const{normalize:t}=e;return t(["Play videos in a popup frame"])},url:e=>{const{normalize:t}=e;return t(["URL"])},preview:e=>{const{normalize:t}=e;return t(["Preview"])},file_export_import:{backup_restore:e=>{const{normalize:t}=e;return t(["Settings backup"])},backup_settings:e=>{const{normalize:t}=e;return t(["Backup settings to file"])},backup_settings_theme:e=>{const{normalize:t}=e;return t(["Backup settings and theme to file"])},restore_settings:e=>{const{normalize:t}=e;return t(["Restore settings from file"])},errors:{invalid_file:e=>{const{normalize:t}=e;return t(["The selected file is not a supported Pleroma settings backup. No changes were made."])},file_too_new:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Incompatile major version: ",n(o("fileMajor")),", this PleromaFE (settings ver ",n(o("feMajor")),") is too old to handle it"])},file_too_old:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Incompatile major version: ",n(o("fileMajor")),", file version is too old and not supported (min. set. ver. ",n(o("feMajor")),")"])},file_slightly_new:e=>{const{normalize:t}=e;return t(["File minor version is different, some settings might not load"])}}},profile_fields:{label:e=>{const{normalize:t}=e;return t(["Profile metadata"])},add_field:e=>{const{normalize:t}=e;return t(["Add field"])},name:e=>{const{normalize:t}=e;return t(["Label"])},value:e=>{const{normalize:t}=e;return t(["Content"])}},birthday:{label:e=>{const{normalize:t}=e;return t(["Birthday"])},show_birthday:e=>{const{normalize:t}=e;return t(["Show my birthday"])}},account_privacy:e=>{const{normalize:t}=e;return t(["Privacy"])},use_contain_fit:e=>{const{normalize:t}=e;return t(["Don't crop the attachment in thumbnails"])},name:e=>{const{normalize:t}=e;return t(["Name"])},name_bio:e=>{const{normalize:t}=e;return t(["Name & bio"])},new_email:e=>{const{normalize:t}=e;return t(["New email"])},new_password:e=>{const{normalize:t}=e;return t(["New password"])},posts:e=>{const{normalize:t}=e;return t(["Posts"])},user_profiles:e=>{const{normalize:t}=e;return t(["User Profiles"])},notification_visibility:e=>{const{normalize:t}=e;return t(["Types of notifications to show"])},notification_visibility_follows:e=>{const{normalize:t}=e;return t(["Follows"])},notification_visibility_likes:e=>{const{normalize:t}=e;return t(["Favorites"])},notification_visibility_mentions:e=>{const{normalize:t}=e;return t(["Mentions"])},notification_visibility_repeats:e=>{const{normalize:t}=e;return t(["Repeats"])},notification_visibility_moves:e=>{const{normalize:t}=e;return t(["User Migrates"])},notification_visibility_emoji_reactions:e=>{const{normalize:t}=e;return t(["Reactions"])},notification_visibility_polls:e=>{const{normalize:t}=e;return t(["Ends of polls you voted in"])},no_rich_text_description:e=>{const{normalize:t}=e;return t(["Strip rich text formatting from all posts"])},no_blocks:e=>{const{normalize:t}=e;return t(["No blocks"])},no_mutes:e=>{const{normalize:t}=e;return t(["No mutes"])},hide_favorites_description:e=>{const{normalize:t}=e;return t(["Don't show list of my favorites (people still get notified)"])},hide_follows_description:e=>{const{normalize:t}=e;return t(["Don't show who I'm following"])},hide_followers_description:e=>{const{normalize:t}=e;return t(["Don't show who's following me"])},hide_follows_count_description:e=>{const{normalize:t}=e;return t(["Don't show follow count"])},hide_followers_count_description:e=>{const{normalize:t}=e;return t(["Don't show follower count"])},show_admin_badge:e=>{const{normalize:t}=e;return t(['Show "Admin" badge in my profile'])},show_moderator_badge:e=>{const{normalize:t}=e;return t(['Show "Moderator" badge in my profile'])},nsfw_clickthrough:e=>{const{normalize:t}=e;return t(["Hide sensitive/NSFW media"])},oauth_tokens:e=>{const{normalize:t}=e;return t(["OAuth tokens"])},token:e=>{const{normalize:t}=e;return t(["Token"])},refresh_token:e=>{const{normalize:t}=e;return t(["Refresh token"])},valid_until:e=>{const{normalize:t}=e;return t(["Valid until"])},revoke_token:e=>{const{normalize:t}=e;return t(["Revoke"])},panelRadius:e=>{const{normalize:t}=e;return t(["Panels"])},pause_on_unfocused:e=>{const{normalize:t}=e;return t(["Pause when tab is not focused"])},presets:e=>{const{normalize:t}=e;return t(["Presets"])},profile_background:e=>{const{normalize:t}=e;return t(["Profile background"])},profile_banner:e=>{const{normalize:t}=e;return t(["Profile banner"])},profile_tab:e=>{const{normalize:t}=e;return t(["Profile"])},radii_help:e=>{const{normalize:t}=e;return t(["Set up interface edge rounding (in pixels)"])},replies_in_timeline:e=>{const{normalize:t}=e;return t(["Replies in timeline"])},reply_visibility_all:e=>{const{normalize:t}=e;return t(["Show all replies"])},reply_visibility_following:e=>{const{normalize:t}=e;return t(["Only show replies directed at me or users I'm following"])},reply_visibility_self:e=>{const{normalize:t}=e;return t(["Only show replies directed at me"])},reply_visibility_following_short:e=>{const{normalize:t}=e;return t(["Show replies to my follows"])},reply_visibility_self_short:e=>{const{normalize:t}=e;return t(["Show replies to self only"])},autohide_floating_post_button:e=>{const{normalize:t}=e;return t(["Automatically hide New Post button (mobile)"])},saving_err:e=>{const{normalize:t}=e;return t(["Error saving settings"])},saving_ok:e=>{const{normalize:t}=e;return t(["Settings saved"])},search_user_to_block:e=>{const{normalize:t}=e;return t(["Search whom you want to block"])},search_user_to_mute:e=>{const{normalize:t}=e;return t(["Search whom you want to mute"])},security_tab:e=>{const{normalize:t}=e;return t(["Security"])},scope_copy:e=>{const{normalize:t}=e;return t(["Copy scope when replying (DMs are always copied)"])},minimal_scopes_mode:e=>{const{normalize:t}=e;return t(["Minimize post scope selection options"])},set_new_avatar:e=>{const{normalize:t}=e;return t(["Set new avatar"])},set_new_profile_background:e=>{const{normalize:t}=e;return t(["Set new profile background"])},set_new_profile_banner:e=>{const{normalize:t}=e;return t(["Set new profile banner"])},reset_avatar:e=>{const{normalize:t}=e;return t(["Reset avatar"])},reset_profile_background:e=>{const{normalize:t}=e;return t(["Reset profile background"])},reset_profile_banner:e=>{const{normalize:t}=e;return t(["Reset profile banner"])},reset_avatar_confirm:e=>{const{normalize:t}=e;return t(["Do you really want to reset the avatar?"])},reset_banner_confirm:e=>{const{normalize:t}=e;return t(["Do you really want to reset the banner?"])},reset_background_confirm:e=>{const{normalize:t}=e;return t(["Do you really want to reset the background?"])},settings:e=>{const{normalize:t}=e;return t(["Settings"])},subject_input_always_show:e=>{const{normalize:t}=e;return t(["Always show subject field"])},subject_line_behavior:e=>{const{normalize:t}=e;return t(["Copy subject when replying"])},subject_line_email:e=>{const{normalize:t}=e;return t(['Like email: "re: subject"'])},subject_line_mastodon:e=>{const{normalize:t}=e;return t(["Like mastodon: copy as is"])},subject_line_noop:e=>{const{normalize:t}=e;return t(["Do not copy"])},conversation_display:e=>{const{normalize:t}=e;return t(["Conversation display style"])},conversation_display_tree:e=>{const{normalize:t}=e;return t(["Tree-style"])},conversation_display_tree_quick:e=>{const{normalize:t}=e;return t(["Tree view"])},disable_sticky_headers:e=>{const{normalize:t}=e;return t(["Don't stick column headers to top of the screen"])},show_scrollbars:e=>{const{normalize:t}=e;return t(["Show side column's scrollbars"])},third_column_mode:e=>{const{normalize:t}=e;return t(["When there's enough space, show third column containing"])},third_column_mode_none:e=>{const{normalize:t}=e;return t(["Don't show third column at all"])},third_column_mode_notifications:e=>{const{normalize:t}=e;return t(["Notifications column"])},third_column_mode_postform:e=>{const{normalize:t}=e;return t(["Main post form and navigation"])},columns:e=>{const{normalize:t}=e;return t(["Columns"])},column_sizes:e=>{const{normalize:t}=e;return t(["Column sizes"])},column_sizes_sidebar:e=>{const{normalize:t}=e;return t(["Sidebar"])},column_sizes_content:e=>{const{normalize:t}=e;return t(["Content"])},column_sizes_notifs:e=>{const{normalize:t}=e;return t(["Notifications"])},tree_advanced:e=>{const{normalize:t}=e;return t(["Allow more flexible navigation in tree view"])},tree_fade_ancestors:e=>{const{normalize:t}=e;return t(["Display ancestors of the current status in faint text"])},conversation_display_linear:e=>{const{normalize:t}=e;return t(["Linear-style"])},conversation_display_linear_quick:e=>{const{normalize:t}=e;return t(["Linear view"])},conversation_other_replies_button:e=>{const{normalize:t}=e;return t(['Show the "other replies" button'])},conversation_other_replies_button_below:e=>{const{normalize:t}=e;return t(["Below statuses"])},conversation_other_replies_button_inside:e=>{const{normalize:t}=e;return t(["Inside statuses"])},max_depth_in_thread:e=>{const{normalize:t}=e;return t(["Maximum number of levels in thread to display by default"])},post_status_content_type:e=>{const{normalize:t}=e;return t(["Post status content type"])},sensitive_by_default:e=>{const{normalize:t}=e;return t(["Mark posts as sensitive by default"])},stop_gifs:e=>{const{normalize:t}=e;return t(["Pause animated images until you hover on them"])},streaming:e=>{const{normalize:t}=e;return t(["Automatically show new posts when scrolled to the top"])},auto_update:e=>{const{normalize:t}=e;return t(["Show new posts automatically"])},user_mutes:e=>{const{normalize:t}=e;return t(["Users"])},useStreamingApi:e=>{const{normalize:t}=e;return t(["Receive posts and notifications real-time"])},use_websockets:e=>{const{normalize:t}=e;return t(["Use websockets (Realtime updates)"])},text:e=>{const{normalize:t}=e;return t(["Text"])},theme:e=>{const{normalize:t}=e;return t(["Theme"])},theme_help:e=>{const{normalize:t}=e;return t(["Use hex color codes (#rrggbb) to customize your color theme."])},theme_help_v2_1:e=>{const{normalize:t}=e;return t(['You can also override certain component\'s colors and opacity by toggling the checkbox, use "Clear all" button to clear all overrides.'])},theme_help_v2_2:e=>{const{normalize:t}=e;return t(["Icons underneath some entries are background/text contrast indicators, hover over for detailed info. Please keep in mind that when using transparency contrast indicators show the worst possible case."])},tooltipRadius:e=>{const{normalize:t}=e;return t(["Tooltips/alerts"])},type_domains_to_mute:e=>{const{normalize:t}=e;return t(["Search domains to mute"])},upload_a_photo:e=>{const{normalize:t}=e;return t(["Upload a photo"])},user_settings:e=>{const{normalize:t}=e;return t(["User Settings"])},values:{false:e=>{const{normalize:t}=e;return t(["no"])},true:e=>{const{normalize:t}=e;return t(["yes"])}},virtual_scrolling:e=>{const{normalize:t}=e;return t(["Optimize timeline rendering"])},use_at_icon:e=>{const{normalize:t}=e;return t(["Display ","@"," symbol as an icon instead of text"])},mention_link_display:e=>{const{normalize:t}=e;return t(["Display mention links"])},mention_link_display_short:e=>{const{normalize:t}=e;return t(["always as short names (e.g. ","@","foo)"])},mention_link_display_full_for_remote:e=>{const{normalize:t}=e;return t(["as full names only for remote users (e.g. ","@","foo","@","example.org)"])},mention_link_display_full:e=>{const{normalize:t}=e;return t(["always as full names (e.g. ","@","foo","@","example.org)"])},mention_link_use_tooltip:e=>{const{normalize:t}=e;return t(["Show user card when clicking mention links"])},mention_link_show_avatar:e=>{const{normalize:t}=e;return t(["Show user avatar beside the link"])},mention_link_show_avatar_quick:e=>{const{normalize:t}=e;return t(["Show user avatar next to mentions"])},mention_link_fade_domain:e=>{const{normalize:t}=e;return t(["Fade domains (e.g. ","@","example.org in ","@","foo","@","example.org)"])},mention_link_bolden_you:e=>{const{normalize:t}=e;return t(["Highlight mention of you when you are mentioned"])},user_popover_avatar_action:e=>{const{normalize:t}=e;return t(["Popover avatar click action"])},user_popover_avatar_action_zoom:e=>{const{normalize:t}=e;return t(["Zoom the avatar"])},user_popover_avatar_action_close:e=>{const{normalize:t}=e;return t(["Close the popover"])},user_popover_avatar_action_open:e=>{const{normalize:t}=e;return t(["Open profile"])},user_popover_avatar_overlay:e=>{const{normalize:t}=e;return t(["Show user popover over user avatar"])},fun:e=>{const{normalize:t}=e;return t(["Fun"])},greentext:e=>{const{normalize:t}=e;return t(["Meme arrows"])},show_yous:e=>{const{normalize:t}=e;return t(["Show (You)s"])},notifications:e=>{const{normalize:t}=e;return t(["Notifications"])},notification_setting_filters:e=>{const{normalize:t}=e;return t(["Filters"])},notification_setting_block_from_strangers:e=>{const{normalize:t}=e;return t(["Block notifications from users who you do not follow"])},notification_setting_privacy:e=>{const{normalize:t}=e;return t(["Privacy"])},notification_setting_hide_notification_contents:e=>{const{normalize:t}=e;return t(["Hide the sender and contents of push notifications"])},notification_mutes:e=>{const{normalize:t}=e;return t(["To stop receiving notifications from a specific user, use a mute."])},notification_blocks:e=>{const{normalize:t}=e;return t(["Blocking a user stops all notifications as well as unsubscribes them."])},enable_web_push_notifications:e=>{const{normalize:t}=e;return t(["Enable web push notifications"])},more_settings:e=>{const{normalize:t}=e;return t(["More settings"])},style:{switcher:{keep_color:e=>{const{normalize:t}=e;return t(["Keep colors"])},keep_shadows:e=>{const{normalize:t}=e;return t(["Keep shadows"])},keep_opacity:e=>{const{normalize:t}=e;return t(["Keep opacity"])},keep_roundness:e=>{const{normalize:t}=e;return t(["Keep roundness"])},keep_fonts:e=>{const{normalize:t}=e;return t(["Keep fonts"])},save_load_hint:e=>{const{normalize:t}=e;return t(['"Keep" options preserve currently set options when selecting or loading themes, it also stores said options when exporting a theme. When all checkboxes unset, exporting theme will save everything.'])},reset:e=>{const{normalize:t}=e;return t(["Reset"])},clear_all:e=>{const{normalize:t}=e;return t(["Clear all"])},clear_opacity:e=>{const{normalize:t}=e;return t(["Clear opacity"])},load_theme:e=>{const{normalize:t}=e;return t(["Load theme"])},keep_as_is:e=>{const{normalize:t}=e;return t(["Keep as is"])},use_snapshot:e=>{const{normalize:t}=e;return t(["Old version"])},use_source:e=>{const{normalize:t}=e;return t(["New version"])},help:{upgraded_from_v2:e=>{const{normalize:t}=e;return t(["PleromaFE has been upgraded, theme could look a little bit different than you remember."])},v2_imported:e=>{const{normalize:t}=e;return t(["File you imported was made for older FE. We try to maximize compatibility but there still could be inconsistencies."])},future_version_imported:e=>{const{normalize:t}=e;return t(["File you imported was made in newer version of FE."])},older_version_imported:e=>{const{normalize:t}=e;return t(["File you imported was made in older version of FE."])},snapshot_present:e=>{const{normalize:t}=e;return t(["Theme snapshot is loaded, so all values are overriden. You can load theme's actual data instead."])},snapshot_missing:e=>{const{normalize:t}=e;return t(["No theme snapshot was in the file so it could look different than originally envisioned."])},fe_upgraded:e=>{const{normalize:t}=e;return t(["PleromaFE's theme engine upgraded after version update."])},fe_downgraded:e=>{const{normalize:t}=e;return t(["PleromaFE's version rolled back."])},migration_snapshot_ok:e=>{const{normalize:t}=e;return t(["Just to be safe, theme snapshot loaded. You can try loading theme data."])},migration_napshot_gone:e=>{const{normalize:t}=e;return t(["For whatever reason snapshot was missing, some stuff could look different than you remember."])},snapshot_source_mismatch:e=>{const{normalize:t}=e;return t(["Versions conflict: most likely FE was rolled back and updated again, if you changed theme using older version of FE you most likely want to use old version, otherwise use new version."])}}},common:{color:e=>{const{normalize:t}=e;return t(["Color"])},opacity:e=>{const{normalize:t}=e;return t(["Opacity"])},contrast:{hint:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Contrast ratio is ",n(o("ratio")),", it ",n(o("level"))," ",n(o("context"))])},level:{aa:e=>{const{normalize:t}=e;return t(["meets Level AA guideline (minimal)"])},aaa:e=>{const{normalize:t}=e;return t(["meets Level AAA guideline (recommended)"])},bad:e=>{const{normalize:t}=e;return t(["doesn't meet any accessibility guidelines"])}},context:{"18pt":e=>{const{normalize:t}=e;return t(["for large (18pt+) text"])},text:e=>{const{normalize:t}=e;return t(["for text"])}}}},common_colors:{_tab_label:e=>{const{normalize:t}=e;return t(["Common"])},main:e=>{const{normalize:t}=e;return t(["Common colors"])},foreground_hint:e=>{const{normalize:t}=e;return t(['See "Advanced" tab for more detailed control'])},rgbo:e=>{const{normalize:t}=e;return t(["Icons, accents, badges"])}},advanced_colors:{_tab_label:e=>{const{normalize:t}=e;return t(["Advanced"])},alert:e=>{const{normalize:t}=e;return t(["Alert background"])},alert_error:e=>{const{normalize:t}=e;return t(["Error"])},alert_warning:e=>{const{normalize:t}=e;return t(["Warning"])},alert_neutral:e=>{const{normalize:t}=e;return t(["Neutral"])},post:e=>{const{normalize:t}=e;return t(["Posts/User bios"])},badge:e=>{const{normalize:t}=e;return t(["Badge background"])},popover:e=>{const{normalize:t}=e;return t(["Tooltips, menus, popovers"])},badge_notification:e=>{const{normalize:t}=e;return t(["Notification"])},panel_header:e=>{const{normalize:t}=e;return t(["Panel header"])},top_bar:e=>{const{normalize:t}=e;return t(["Top bar"])},borders:e=>{const{normalize:t}=e;return t(["Borders"])},buttons:e=>{const{normalize:t}=e;return t(["Buttons"])},inputs:e=>{const{normalize:t}=e;return t(["Input fields"])},faint_text:e=>{const{normalize:t}=e;return t(["Faded text"])},underlay:e=>{const{normalize:t}=e;return t(["Underlay"])},wallpaper:e=>{const{normalize:t}=e;return t(["Wallpaper"])},poll:e=>{const{normalize:t}=e;return t(["Poll graph"])},icons:e=>{const{normalize:t}=e;return t(["Icons"])},highlight:e=>{const{normalize:t}=e;return t(["Highlighted elements"])},pressed:e=>{const{normalize:t}=e;return t(["Pressed"])},selectedPost:e=>{const{normalize:t}=e;return t(["Selected post"])},selectedMenu:e=>{const{normalize:t}=e;return t(["Selected menu item"])},disabled:e=>{const{normalize:t}=e;return t(["Disabled"])},toggled:e=>{const{normalize:t}=e;return t(["Toggled"])},tabs:e=>{const{normalize:t}=e;return t(["Tabs"])},chat:{incoming:e=>{const{normalize:t}=e;return t(["Incoming"])},outgoing:e=>{const{normalize:t}=e;return t(["Outgoing"])},border:e=>{const{normalize:t}=e;return t(["Border"])}}},radii:{_tab_label:e=>{const{normalize:t}=e;return t(["Roundness"])}},shadows:{_tab_label:e=>{const{normalize:t}=e;return t(["Shadow and lighting"])},component:e=>{const{normalize:t}=e;return t(["Component"])},override:e=>{const{normalize:t}=e;return t(["Override"])},shadow_id:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Shadow #",n(o("value"))])},blur:e=>{const{normalize:t}=e;return t(["Blur"])},spread:e=>{const{normalize:t}=e;return t(["Spread"])},inset:e=>{const{normalize:t}=e;return t(["Inset"])},hintV3:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["For shadows you can also use the ",n(o(0))," notation to use other color slot."])},filter_hint:{always_drop_shadow:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["Warning, this shadow always uses ",n(o(0))," when browser supports it."])},drop_shadow_syntax:e=>{const{normalize:t,interpolate:n,list:o}=e;return t([n(o(0))," does not support ",n(o(1))," parameter and ",n(o(2))," keyword."])},avatar_inset:e=>{const{normalize:t}=e;return t(["Please note that combining both inset and non-inset shadows on avatars might give unexpected results with transparent avatars."])},spread_zero:e=>{const{normalize:t}=e;return t(["Shadows with spread > 0 will appear as if it was set to zero"])},inset_classic:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["Inset shadows will be using ",n(o(0))])}},components:{panel:e=>{const{normalize:t}=e;return t(["Panel"])},panelHeader:e=>{const{normalize:t}=e;return t(["Panel header"])},topBar:e=>{const{normalize:t}=e;return t(["Top bar"])},avatar:e=>{const{normalize:t}=e;return t(["User avatar (in profile view)"])},avatarStatus:e=>{const{normalize:t}=e;return t(["User avatar (in post display)"])},popup:e=>{const{normalize:t}=e;return t(["Popups and tooltips"])},button:e=>{const{normalize:t}=e;return t(["Button"])},buttonHover:e=>{const{normalize:t}=e;return t(["Button (hover)"])},buttonPressed:e=>{const{normalize:t}=e;return t(["Button (pressed)"])},buttonPressedHover:e=>{const{normalize:t}=e;return t(["Button (pressed+hover)"])},input:e=>{const{normalize:t}=e;return t(["Input field"])}}},fonts:{_tab_label:e=>{const{normalize:t}=e;return t(["Fonts"])},help:e=>{const{normalize:t}=e;return t(['Select font to use for elements of UI. For "custom" you have to enter exact font name as it appears in system.'])},components:{interface:e=>{const{normalize:t}=e;return t(["Interface"])},input:e=>{const{normalize:t}=e;return t(["Input fields"])},post:e=>{const{normalize:t}=e;return t(["Post text"])},postCode:e=>{const{normalize:t}=e;return t(["Monospaced text in a post (rich text)"])}},family:e=>{const{normalize:t}=e;return t(["Font name"])},size:e=>{const{normalize:t}=e;return t(["Size (in px)"])},weight:e=>{const{normalize:t}=e;return t(["Weight (boldness)"])},custom:e=>{const{normalize:t}=e;return t(["Custom"])}},preview:{header:e=>{const{normalize:t}=e;return t(["Preview"])},content:e=>{const{normalize:t}=e;return t(["Content"])},error:e=>{const{normalize:t}=e;return t(["Example error"])},button:e=>{const{normalize:t}=e;return t(["Button"])},text:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["A bunch of more ",n(o(0))," and ",n(o(1))])},mono:e=>{const{normalize:t}=e;return t(["content"])},input:e=>{const{normalize:t}=e;return t(["Just landed in L.A."])},faint_link:e=>{const{normalize:t}=e;return t(["helpful manual"])},fine_print:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["Read our ",n(o(0))," to learn nothing useful!"])},header_faint:e=>{const{normalize:t}=e;return t(["This is fine"])},checkbox:e=>{const{normalize:t}=e;return t(["I have skimmed over terms and conditions"])},link:e=>{const{normalize:t}=e;return t(["a nice lil' link"])}}},version:{title:e=>{const{normalize:t}=e;return t(["Version"])},backend_version:e=>{const{normalize:t}=e;return t(["Backend version"])},frontend_version:e=>{const{normalize:t}=e;return t(["Frontend version"])}},commit_value:e=>{const{normalize:t}=e;return t(["Save"])},commit_value_tooltip:e=>{const{normalize:t}=e;return t(["Value is not saved, press this button to commit your changes"])},reset_value:e=>{const{normalize:t}=e;return t(["Reset"])},reset_value_tooltip:e=>{const{normalize:t}=e;return t(["Reset draft"])},hard_reset_value:e=>{const{normalize:t}=e;return t(["Hard reset"])},hard_reset_value_tooltip:e=>{const{normalize:t}=e;return t(["Remove setting from storage, forcing use of default value"])}},admin_dash:{window_title:e=>{const{normalize:t}=e;return t(["Administration"])},wip_notice:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["This admin dashboard is experimental and WIP, ",n(o("adminFeLink")),"."])},old_ui_link:e=>{const{normalize:t}=e;return t(["old admin UI available here"])},reset_all:e=>{const{normalize:t}=e;return t(["Reset all"])},commit_all:e=>{const{normalize:t}=e;return t(["Save all"])},tabs:{nodb:e=>{const{normalize:t}=e;return t(["No DB Config"])},instance:e=>{const{normalize:t}=e;return t(["Instance"])},limits:e=>{const{normalize:t}=e;return t(["Limits"])},frontends:e=>{const{normalize:t}=e;return t(["Front-ends"])}},nodb:{heading:e=>{const{normalize:t}=e;return t(["Database config is disabled"])},text:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["You need to change backend config files so that ",n(o("property"))," is set to ",n(o("value")),", see more in ",n(o("documentation")),"."])},documentation:e=>{const{normalize:t}=e;return t(["documentation"])},text2:e=>{const{normalize:t}=e;return t(["Most configuration options will be unavailable."])}},captcha:{native:e=>{const{normalize:t}=e;return t(["Native"])},kocaptcha:e=>{const{normalize:t}=e;return t(["KoCaptcha"])}},instance:{instance:e=>{const{normalize:t}=e;return t(["Instance information"])},registrations:e=>{const{normalize:t}=e;return t(["User sign-ups"])},captcha_header:e=>{const{normalize:t}=e;return t(["CAPTCHA"])},kocaptcha:e=>{const{normalize:t}=e;return t(["KoCaptcha settings"])},access:e=>{const{normalize:t}=e;return t(["Instance access"])},restrict:{header:e=>{const{normalize:t}=e;return t(["Restrict access for anonymous visitors"])},description:e=>{const{normalize:t}=e;return t(["Detailed setting for allowing/disallowing access to certain aspects of API. By default (indeterminate state) it will disallow if instance is not public, ticked checkbox means disallow access even if instance is public, unticked means allow access even if instance is private. Please note that unexpected behavior might happen if some settings are set, i.e. if profile access is disabled posts will show without profile information."])},timelines:e=>{const{normalize:t}=e;return t(["Timelines access"])},profiles:e=>{const{normalize:t}=e;return t(["User profiles access"])},activities:e=>{const{normalize:t}=e;return t(["Statues/activities access"])}}},limits:{arbitrary_limits:e=>{const{normalize:t}=e;return t(["Arbitrary limits"])},posts:e=>{const{normalize:t}=e;return t(["Post limits"])},uploads:e=>{const{normalize:t}=e;return t(["Attachments limits"])},users:e=>{const{normalize:t}=e;return t(["User profile limits"])},profile_fields:e=>{const{normalize:t}=e;return t(["Profile fields limits"])},user_uploads:e=>{const{normalize:t}=e;return t(["Profile media limits"])}},frontend:{repository:e=>{const{normalize:t}=e;return t(["Repository link"])},versions:e=>{const{normalize:t}=e;return t(["Available versions"])},build_url:e=>{const{normalize:t}=e;return t(["Build URL"])},reinstall:e=>{const{normalize:t}=e;return t(["Reinstall"])},is_default:e=>{const{normalize:t}=e;return t(["(Default)"])},is_default_custom:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["(Default, version: ",n(o("version")),")"])},install:e=>{const{normalize:t}=e;return t(["Install"])},install_version:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Install version ",n(o("version"))])},more_install_options:e=>{const{normalize:t}=e;return t(["More install options"])},more_default_options:e=>{const{normalize:t}=e;return t(["More default setting options"])},set_default:e=>{const{normalize:t}=e;return t(["Set default"])},set_default_version:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Set version ",n(o("version"))," as default"])},wip_notice:e=>{const{normalize:t}=e;return t(["Please note that this section is a WIP and lacks certain features as backend implementation of front-end management is incomplete."])},default_frontend:e=>{const{normalize:t}=e;return t(["Default front-end"])},default_frontend_tip:e=>{const{normalize:t}=e;return t(["Default front-end will be shown to all users. Currently there's no way to for a user to select personal front-end. If you switch away from PleromaFE you'll most likely have to use old and buggy AdminFE to do instance configuration until we replace it."])},default_frontend_tip2:e=>{const{normalize:t}=e;return t(["WIP: Since Pleroma backend doesn't properly list all installed frontends you'll have to enter name and reference manually. List below provides shortcuts to fill the values."])},available_frontends:e=>{const{normalize:t}=e;return t(["Available for install"])}},temp_overrides:{":pleroma":{":instance":{":public":{label:e=>{const{normalize:t}=e;return t(["Instance is public"])},description:e=>{const{normalize:t}=e;return t(["Disabling this will make all API accessible only for logged-in users, this will make Public and Federated timelines inaccessible to anonymous visitors."])}},":limit_to_local_content":{label:e=>{const{normalize:t}=e;return t(["Limit search to local content"])},description:e=>{const{normalize:t}=e;return t(["Disables global network search for unauthenticated (default), all users or none"])}},":description_limit":{label:e=>{const{normalize:t}=e;return t(["Limit"])},description:e=>{const{normalize:t}=e;return t(["Character limit for attachment descriptions"])}},":background_image":{label:e=>{const{normalize:t}=e;return t(["Background image"])},description:e=>{const{normalize:t}=e;return t(["Background image (primarily used by PleromaFE)"])}}}}}},time:{unit:{days:e=>{const{normalize:t,interpolate:n,list:o,plural:r}=e;return r([t([n(o(0))," day"]),t([n(o(0))," days"])])},days_short:e=>{const{normalize:t,interpolate:n,list:o}=e;return t([n(o(0)),"d"])},hours:e=>{const{normalize:t,interpolate:n,list:o,plural:r}=e;return r([t([n(o(0))," hour"]),t([n(o(0))," hours"])])},hours_short:e=>{const{normalize:t,interpolate:n,list:o}=e;return t([n(o(0)),"h"])},minutes:e=>{const{normalize:t,interpolate:n,list:o,plural:r}=e;return r([t([n(o(0))," minute"]),t([n(o(0))," minutes"])])},minutes_short:e=>{const{normalize:t,interpolate:n,list:o}=e;return t([n(o(0)),"min"])},months:e=>{const{normalize:t,interpolate:n,list:o,plural:r}=e;return r([t([n(o(0))," month"]),t([n(o(0))," months"])])},months_short:e=>{const{normalize:t,interpolate:n,list:o}=e;return t([n(o(0)),"mo"])},seconds:e=>{const{normalize:t,interpolate:n,list:o,plural:r}=e;return r([t([n(o(0))," second"]),t([n(o(0))," seconds"])])},seconds_short:e=>{const{normalize:t,interpolate:n,list:o}=e;return t([n(o(0)),"s"])},weeks:e=>{const{normalize:t,interpolate:n,list:o,plural:r}=e;return r([t([n(o(0))," week"]),t([n(o(0))," weeks"])])},weeks_short:e=>{const{normalize:t,interpolate:n,list:o}=e;return t([n(o(0)),"w"])},years:e=>{const{normalize:t,interpolate:n,list:o,plural:r}=e;return r([t([n(o(0))," year"]),t([n(o(0))," years"])])},years_short:e=>{const{normalize:t,interpolate:n,list:o}=e;return t([n(o(0)),"y"])}},in_future:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["in ",n(o(0))])},in_past:e=>{const{normalize:t,interpolate:n,list:o}=e;return t([n(o(0))," ago"])},now:e=>{const{normalize:t}=e;return t(["just now"])},now_short:e=>{const{normalize:t}=e;return t(["now"])}},timeline:{collapse:e=>{const{normalize:t}=e;return t(["Collapse"])},conversation:e=>{const{normalize:t}=e;return t(["Conversation"])},error:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["Error fetching timeline: ",n(o(0))])},load_older:e=>{const{normalize:t}=e;return t(["Load older statuses"])},no_retweet_hint:e=>{const{normalize:t}=e;return t(["Post is marked as followers-only or direct and cannot be repeated"])},repeated:e=>{const{normalize:t}=e;return t(["repeated"])},show_new:e=>{const{normalize:t}=e;return t(["Show new"])},reload:e=>{const{normalize:t}=e;return t(["Reload"])},up_to_date:e=>{const{normalize:t}=e;return t(["Up-to-date"])},no_more_statuses:e=>{const{normalize:t}=e;return t(["No more statuses"])},no_statuses:e=>{const{normalize:t}=e;return t(["No statuses"])},socket_reconnected:e=>{const{normalize:t}=e;return t(["Realtime connection established"])},socket_broke:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["Realtime connection lost: CloseEvent code ",n(o(0))])},quick_view_settings:e=>{const{normalize:t}=e;return t(["Quick view settings"])},quick_filter_settings:e=>{const{normalize:t}=e;return t(["Quick filter settings"])}},status:{favorites:e=>{const{normalize:t}=e;return t(["Favorites"])},repeats:e=>{const{normalize:t}=e;return t(["Repeats"])},repeat_confirm:e=>{const{normalize:t}=e;return t(["Do you really want to repeat this status?"])},repeat_confirm_title:e=>{const{normalize:t}=e;return t(["Repeat confirmation"])},repeat_confirm_accept_button:e=>{const{normalize:t}=e;return t(["Repeat"])},repeat_confirm_cancel_button:e=>{const{normalize:t}=e;return t(["Do not repeat"])},delete:e=>{const{normalize:t}=e;return t(["Delete status"])},delete_error:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["Error deleting status: ",n(o(0))])},edit:e=>{const{normalize:t}=e;return t(["Edit status"])},edited_at:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["(last edited ",n(o("time")),")"])},pin:e=>{const{normalize:t}=e;return t(["Pin on profile"])},unpin:e=>{const{normalize:t}=e;return t(["Unpin from profile"])},pinned:e=>{const{normalize:t}=e;return t(["Pinned"])},bookmark:e=>{const{normalize:t}=e;return t(["Bookmark"])},unbookmark:e=>{const{normalize:t}=e;return t(["Unbookmark"])},delete_confirm:e=>{const{normalize:t}=e;return t(["Do you really want to delete this status?"])},delete_confirm_title:e=>{const{normalize:t}=e;return t(["Delete confirmation"])},delete_confirm_accept_button:e=>{const{normalize:t}=e;return t(["Delete"])},delete_confirm_cancel_button:e=>{const{normalize:t}=e;return t(["Keep"])},reply_to:e=>{const{normalize:t}=e;return t(["Reply to"])},mentions:e=>{const{normalize:t}=e;return t(["Mentions"])},replies_list:e=>{const{normalize:t}=e;return t(["Replies:"])},replies_list_with_others:e=>{const{normalize:t,interpolate:n,named:o,plural:r}=e;return r([t(["Replies (+",n(o("numReplies"))," other):"]),t(["Replies (+",n(o("numReplies"))," others):"])])},mute_conversation:e=>{const{normalize:t}=e;return t(["Mute conversation"])},unmute_conversation:e=>{const{normalize:t}=e;return t(["Unmute conversation"])},status_unavailable:e=>{const{normalize:t}=e;return t(["Status unavailable"])},copy_link:e=>{const{normalize:t}=e;return t(["Copy link to status"])},external_source:e=>{const{normalize:t}=e;return t(["External source"])},thread_muted:e=>{const{normalize:t}=e;return t(["Thread muted"])},thread_muted_and_words:e=>{const{normalize:t}=e;return t([", has words:"])},show_full_subject:e=>{const{normalize:t}=e;return t(["Show full subject"])},hide_full_subject:e=>{const{normalize:t}=e;return t(["Hide full subject"])},show_content:e=>{const{normalize:t}=e;return t(["Show content"])},hide_content:e=>{const{normalize:t}=e;return t(["Hide content"])},status_deleted:e=>{const{normalize:t}=e;return t(["This post was deleted"])},nsfw:e=>{const{normalize:t}=e;return t(["NSFW"])},expand:e=>{const{normalize:t}=e;return t(["Expand"])},you:e=>{const{normalize:t}=e;return t(["(You)"])},plus_more:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["+",n(o("number"))," more"])},many_attachments:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Post has ",n(o("number"))," attachment(s)"])},collapse_attachments:e=>{const{normalize:t}=e;return t(["Collapse attachments"])},show_all_attachments:e=>{const{normalize:t}=e;return t(["Show all attachments"])},show_attachment_in_modal:e=>{const{normalize:t}=e;return t(["Show in media modal"])},show_attachment_description:e=>{const{normalize:t}=e;return t(["Preview description (open attachment for full description)"])},hide_attachment:e=>{const{normalize:t}=e;return t(["Hide attachment"])},remove_attachment:e=>{const{normalize:t}=e;return t(["Remove attachment"])},attachment_stop_flash:e=>{const{normalize:t}=e;return t(["Stop Flash player"])},move_up:e=>{const{normalize:t}=e;return t(["Shift attachment left"])},move_down:e=>{const{normalize:t}=e;return t(["Shift attachment right"])},open_gallery:e=>{const{normalize:t}=e;return t(["Open gallery"])},thread_hide:e=>{const{normalize:t}=e;return t(["Hide this thread"])},thread_show:e=>{const{normalize:t}=e;return t(["Show this thread"])},thread_show_full:e=>{const{normalize:t,interpolate:n,named:o,plural:r}=e;return r([t(["Show everything under this thread (",n(o("numStatus"))," status in total, max depth ",n(o("depth")),")"]),t(["Show everything under this thread (",n(o("numStatus"))," statuses in total, max depth ",n(o("depth")),")"])])},thread_show_full_with_icon:e=>{const{normalize:t,interpolate:n,named:o}=e;return t([n(o("icon"))," ",n(o("text"))])},thread_follow:e=>{const{normalize:t,interpolate:n,named:o,plural:r}=e;return r([t(["See the remaining part of this thread (",n(o("numStatus"))," status in total)"]),t(["See the remaining part of this thread (",n(o("numStatus"))," statuses in total)"])])},thread_follow_with_icon:e=>{const{normalize:t,interpolate:n,named:o}=e;return t([n(o("icon"))," ",n(o("text"))])},ancestor_follow:e=>{const{normalize:t,interpolate:n,named:o,plural:r}=e;return r([t(["See ",n(o("numReplies"))," other reply under this status"]),t(["See ",n(o("numReplies"))," other replies under this status"])])},ancestor_follow_with_icon:e=>{const{normalize:t,interpolate:n,named:o}=e;return t([n(o("icon"))," ",n(o("text"))])},show_all_conversation_with_icon:e=>{const{normalize:t,interpolate:n,named:o}=e;return t([n(o("icon"))," ",n(o("text"))])},show_all_conversation:e=>{const{normalize:t,interpolate:n,named:o,plural:r}=e;return r([t(["Show full conversation (",n(o("numStatus"))," other status)"]),t(["Show full conversation (",n(o("numStatus"))," other statuses)"])])},show_only_conversation_under_this:e=>{const{normalize:t}=e;return t(["Only show replies to this status"])},status_history:e=>{const{normalize:t}=e;return t(["Status history"])},reaction_count_label:e=>{const{normalize:t,interpolate:n,named:o,plural:r}=e;return r([t([n(o("num"))," person reacted"]),t([n(o("num"))," people reacted"])])},hide_quote:e=>{const{normalize:t}=e;return t(["Hide the quoted status"])},display_quote:e=>{const{normalize:t}=e;return t(["Display the quoted status"])},invisible_quote:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Quoted status unavailable: ",n(o("link"))])}},user_card:{approve:e=>{const{normalize:t}=e;return t(["Approve"])},approve_confirm_title:e=>{const{normalize:t}=e;return t(["Approve confirmation"])},approve_confirm_accept_button:e=>{const{normalize:t}=e;return t(["Approve"])},approve_confirm_cancel_button:e=>{const{normalize:t}=e;return t(["Do not approve"])},approve_confirm:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Do you want to approve ",n(o("user")),"'s follow request?"])},block:e=>{const{normalize:t}=e;return t(["Block"])},blocked:e=>{const{normalize:t}=e;return t(["Blocked!"])},block_confirm_title:e=>{const{normalize:t}=e;return t(["Block confirmation"])},block_confirm:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Do you really want to block ",n(o("user")),"?"])},block_confirm_accept_button:e=>{const{normalize:t}=e;return t(["Block"])},block_confirm_cancel_button:e=>{const{normalize:t}=e;return t(["Do not block"])},deactivated:e=>{const{normalize:t}=e;return t(["Deactivated"])},deny:e=>{const{normalize:t}=e;return t(["Deny"])},deny_confirm_title:e=>{const{normalize:t}=e;return t(["Deny confirmation"])},deny_confirm_accept_button:e=>{const{normalize:t}=e;return t(["Deny"])},deny_confirm_cancel_button:e=>{const{normalize:t}=e;return t(["Do not deny"])},deny_confirm:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Do you want to deny ",n(o("user")),"'s follow request?"])},edit_profile:e=>{const{normalize:t}=e;return t(["Edit profile"])},favorites:e=>{const{normalize:t}=e;return t(["Favorites"])},follow:e=>{const{normalize:t}=e;return t(["Follow"])},follow_cancel:e=>{const{normalize:t}=e;return t(["Cancel request"])},follow_sent:e=>{const{normalize:t}=e;return t(["Request sent!"])},follow_progress:e=>{const{normalize:t}=e;return t(["Requesting…"])},follow_unfollow:e=>{const{normalize:t}=e;return t(["Unfollow"])},unfollow_confirm_title:e=>{const{normalize:t}=e;return t(["Unfollow confirmation"])},unfollow_confirm:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Do you really want to unfollow ",n(o("user")),"?"])},unfollow_confirm_accept_button:e=>{const{normalize:t}=e;return t(["Unfollow"])},unfollow_confirm_cancel_button:e=>{const{normalize:t}=e;return t(["Do not unfollow"])},followees:e=>{const{normalize:t}=e;return t(["Following"])},followers:e=>{const{normalize:t}=e;return t(["Followers"])},following:e=>{const{normalize:t}=e;return t(["Following!"])},follows_you:e=>{const{normalize:t}=e;return t(["Follows you!"])},hidden:e=>{const{normalize:t}=e;return t(["Hidden"])},its_you:e=>{const{normalize:t}=e;return t(["It's you!"])},media:e=>{const{normalize:t}=e;return t(["Media"])},mention:e=>{const{normalize:t}=e;return t(["Mention"])},message:e=>{const{normalize:t}=e;return t(["Message"])},mute:e=>{const{normalize:t}=e;return t(["Mute"])},muted:e=>{const{normalize:t}=e;return t(["Muted"])},mute_confirm_title:e=>{const{normalize:t}=e;return t(["Mute confirmation"])},mute_confirm:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Do you really want to mute ",n(o("user")),"?"])},mute_confirm_accept_button:e=>{const{normalize:t}=e;return t(["Mute"])},mute_confirm_cancel_button:e=>{const{normalize:t}=e;return t(["Do not mute"])},mute_duration_prompt:e=>{const{normalize:t}=e;return t(["Mute this user for (0 for indefinite time):"])},per_day:e=>{const{normalize:t}=e;return t(["per day"])},remote_follow:e=>{const{normalize:t}=e;return t(["Remote follow"])},remove_follower:e=>{const{normalize:t}=e;return t(["Remove follower"])},remove_follower_confirm_title:e=>{const{normalize:t}=e;return t(["Remove follower confirmation"])},remove_follower_confirm_accept_button:e=>{const{normalize:t}=e;return t(["Remove"])},remove_follower_confirm_cancel_button:e=>{const{normalize:t}=e;return t(["Keep"])},remove_follower_confirm:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Do you really want to remove ",n(o("user"))," from your followers?"])},report:e=>{const{normalize:t}=e;return t(["Report"])},statuses:e=>{const{normalize:t}=e;return t(["Statuses"])},subscribe:e=>{const{normalize:t}=e;return t(["Subscribe"])},unsubscribe:e=>{const{normalize:t}=e;return t(["Unsubscribe"])},unblock:e=>{const{normalize:t}=e;return t(["Unblock"])},unblock_progress:e=>{const{normalize:t}=e;return t(["Unblocking…"])},block_progress:e=>{const{normalize:t}=e;return t(["Blocking…"])},unmute:e=>{const{normalize:t}=e;return t(["Unmute"])},unmute_progress:e=>{const{normalize:t}=e;return t(["Unmuting…"])},mute_progress:e=>{const{normalize:t}=e;return t(["Muting…"])},hide_repeats:e=>{const{normalize:t}=e;return t(["Hide repeats"])},show_repeats:e=>{const{normalize:t}=e;return t(["Show repeats"])},bot:e=>{const{normalize:t}=e;return t(["Bot"])},birthday:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Born ",n(o("birthday"))])},admin_menu:{moderation:e=>{const{normalize:t}=e;return t(["Moderation"])},grant_admin:e=>{const{normalize:t}=e;return t(["Grant Admin"])},revoke_admin:e=>{const{normalize:t}=e;return t(["Revoke Admin"])},grant_moderator:e=>{const{normalize:t}=e;return t(["Grant Moderator"])},revoke_moderator:e=>{const{normalize:t}=e;return t(["Revoke Moderator"])},activate_account:e=>{const{normalize:t}=e;return t(["Activate account"])},deactivate_account:e=>{const{normalize:t}=e;return t(["Deactivate account"])},delete_account:e=>{const{normalize:t}=e;return t(["Delete account"])},force_nsfw:e=>{const{normalize:t}=e;return t(["Mark all posts as NSFW"])},strip_media:e=>{const{normalize:t}=e;return t(["Remove media from posts"])},force_unlisted:e=>{const{normalize:t}=e;return t(["Force posts to be unlisted"])},sandbox:e=>{const{normalize:t}=e;return t(["Force posts to be followers-only"])},disable_remote_subscription:e=>{const{normalize:t}=e;return t(["Disallow following user from remote instances"])},disable_any_subscription:e=>{const{normalize:t}=e;return t(["Disallow following user at all"])},quarantine:e=>{const{normalize:t}=e;return t(["Disallow user posts from federating"])},delete_user:e=>{const{normalize:t}=e;return t(["Delete user"])},delete_user_data_and_deactivate_confirmation:e=>{const{normalize:t}=e;return t(["This will permanently delete the data from this account and deactivate it. Are you absolutely sure?"])}},highlight:{disabled:e=>{const{normalize:t}=e;return t(["No highlight"])},solid:e=>{const{normalize:t}=e;return t(["Solid bg"])},striped:e=>{const{normalize:t}=e;return t(["Striped bg"])},side:e=>{const{normalize:t}=e;return t(["Side stripe"])}},note:e=>{const{normalize:t}=e;return t(["Note"])},note_blank:e=>{const{normalize:t}=e;return t(["(None)"])},edit_note:e=>{const{normalize:t}=e;return t(["Edit note"])},edit_note_apply:e=>{const{normalize:t}=e;return t(["Apply"])},edit_note_cancel:e=>{const{normalize:t}=e;return t(["Cancel"])}},user_profile:{timeline_title:e=>{const{normalize:t}=e;return t(["User timeline"])},profile_does_not_exist:e=>{const{normalize:t}=e;return t(["Sorry, this profile does not exist."])},profile_loading_error:e=>{const{normalize:t}=e;return t(["Sorry, there was an error loading this profile."])}},user_reporting:{title:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["Reporting ",n(o(0))])},add_comment_description:e=>{const{normalize:t}=e;return t(["The report will be sent to your instance moderators. You can provide an explanation of why you are reporting this account below:"])},additional_comments:e=>{const{normalize:t}=e;return t(["Additional comments"])},forward_description:e=>{const{normalize:t}=e;return t(["The account is from another server. Send a copy of the report there as well?"])},forward_to:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["Forward to ",n(o(0))])},submit:e=>{const{normalize:t}=e;return t(["Submit"])},generic_error:e=>{const{normalize:t}=e;return t(["An error occurred while processing your request."])}},who_to_follow:{more:e=>{const{normalize:t}=e;return t(["More"])},who_to_follow:e=>{const{normalize:t}=e;return t(["Who to follow"])}},tool_tip:{media_upload:e=>{const{normalize:t}=e;return t(["Upload media"])},repeat:e=>{const{normalize:t}=e;return t(["Repeat"])},reply:e=>{const{normalize:t}=e;return t(["Reply"])},favorite:e=>{const{normalize:t}=e;return t(["Favorite"])},add_reaction:e=>{const{normalize:t}=e;return t(["Add Reaction"])},user_settings:e=>{const{normalize:t}=e;return t(["User Settings"])},accept_follow_request:e=>{const{normalize:t}=e;return t(["Accept follow request"])},reject_follow_request:e=>{const{normalize:t}=e;return t(["Reject follow request"])},bookmark:e=>{const{normalize:t}=e;return t(["Bookmark"])},toggle_expand:e=>{const{normalize:t}=e;return t(["Expand or collapse notification to show post in full"])},toggle_mute:e=>{const{normalize:t}=e;return t(["Expand or collapse notification to reveal muted content"])},autocomplete_available:e=>{const{normalize:t,interpolate:n,named:o,plural:r}=e;return r([t([n(o("number"))," result is available. Use up and down keys to navigate through them."]),t([n(o("number"))," results are available. Use up and down keys to navigate through them."])])}},upload:{error:{base:e=>{const{normalize:t}=e;return t(["Upload failed."])},message:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["Upload failed: ",n(o(0))])},file_too_big:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["File too big [",n(o("filesize")),n(o("filesizeunit"))," / ",n(o("allowedsize")),n(o("allowedsizeunit")),"]"])},default:e=>{const{normalize:t}=e;return t(["Try again later"])}},file_size_units:{B:e=>{const{normalize:t}=e;return t(["B"])},KiB:e=>{const{normalize:t}=e;return t(["KiB"])},MiB:e=>{const{normalize:t}=e;return t(["MiB"])},GiB:e=>{const{normalize:t}=e;return t(["GiB"])},TiB:e=>{const{normalize:t}=e;return t(["TiB"])}}},search:{people:e=>{const{normalize:t}=e;return t(["People"])},hashtags:e=>{const{normalize:t}=e;return t(["Hashtags"])},person_talking:e=>{const{normalize:t,interpolate:n,named:o}=e;return t([n(o("count"))," person talking"])},people_talking:e=>{const{normalize:t,interpolate:n,named:o}=e;return t([n(o("count"))," people talking"])},no_results:e=>{const{normalize:t}=e;return t(["No results"])},no_more_results:e=>{const{normalize:t}=e;return t(["No more results"])},load_more:e=>{const{normalize:t}=e;return t(["Load more results"])}},password_reset:{forgot_password:e=>{const{normalize:t}=e;return t(["Forgot password?"])},password_reset:e=>{const{normalize:t}=e;return t(["Password reset"])},instruction:e=>{const{normalize:t}=e;return t(["Enter your email address or username. We will send you a link to reset your password."])},placeholder:e=>{const{normalize:t}=e;return t(["Your email or username"])},check_email:e=>{const{normalize:t}=e;return t(["Check your email for a link to reset your password."])},return_home:e=>{const{normalize:t}=e;return t(["Return to the home page"])},too_many_requests:e=>{const{normalize:t}=e;return t(["You have reached the limit of attempts, try again later."])},password_reset_disabled:e=>{const{normalize:t}=e;return t(["Password reset is disabled. Please contact your instance administrator."])},password_reset_required:e=>{const{normalize:t}=e;return t(["You must reset your password to log in."])},password_reset_required_but_mailer_is_disabled:e=>{const{normalize:t}=e;return t(["You must reset your password, but password reset is disabled. Please contact your instance administrator."])}},chats:{you:e=>{const{normalize:t}=e;return t(["You:"])},message_user:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Message ",n(o("nickname"))])},delete:e=>{const{normalize:t}=e;return t(["Delete"])},chats:e=>{const{normalize:t}=e;return t(["Chats"])},new:e=>{const{normalize:t}=e;return t(["New Chat"])},empty_message_error:e=>{const{normalize:t}=e;return t(["Cannot post empty message"])},more:e=>{const{normalize:t}=e;return t(["More"])},delete_confirm:e=>{const{normalize:t}=e;return t(["Do you really want to delete this message?"])},error_loading_chat:e=>{const{normalize:t}=e;return t(["Something went wrong when loading the chat."])},error_sending_message:e=>{const{normalize:t}=e;return t(["Something went wrong when sending the message."])},empty_chat_list_placeholder:e=>{const{normalize:t}=e;return t(["You don't have any chats yet. Start a new chat!"])}},lists:{lists:e=>{const{normalize:t}=e;return t(["Lists"])},new:e=>{const{normalize:t}=e;return t(["New List"])},title:e=>{const{normalize:t}=e;return t(["List title"])},search:e=>{const{normalize:t}=e;return t(["Search users"])},create:e=>{const{normalize:t}=e;return t(["Create"])},save:e=>{const{normalize:t}=e;return t(["Save changes"])},delete:e=>{const{normalize:t}=e;return t(["Delete list"])},following_only:e=>{const{normalize:t}=e;return t(["Limit to Following"])},manage_lists:e=>{const{normalize:t}=e;return t(["Manage lists"])},manage_members:e=>{const{normalize:t}=e;return t(["Manage list members"])},add_members:e=>{const{normalize:t}=e;return t(["Search for more users"])},remove_from_list:e=>{const{normalize:t}=e;return t(["Remove from list"])},add_to_list:e=>{const{normalize:t}=e;return t(["Add to list"])},is_in_list:e=>{const{normalize:t}=e;return t(["Already in list"])},editing_list:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Editing list ",n(o("listTitle"))])},creating_list:e=>{const{normalize:t}=e;return t(["Creating new list"])},update_title:e=>{const{normalize:t}=e;return t(["Save Title"])},really_delete:e=>{const{normalize:t}=e;return t(["Really delete list?"])},error:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["Error manipulating lists: ",n(o(0))])}},file_type:{audio:e=>{const{normalize:t}=e;return t(["Audio"])},video:e=>{const{normalize:t}=e;return t(["Video"])},image:e=>{const{normalize:t}=e;return t(["Image"])},file:e=>{const{normalize:t}=e;return t(["File"])}},display_date:{today:e=>{const{normalize:t}=e;return t(["Today"])}},update:{big_update_title:e=>{const{normalize:t}=e;return t(["Please bear with us"])},big_update_content:e=>{const{normalize:t}=e;return t(["We haven't had a release in a while, so things might look and feel different than what you're used to."])},update_bugs:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Please report any issues and bugs on ",n(o("pleromaGitlab")),", as we have changed a lot, and although we test thoroughly and use development versions ourselves, we may have missed some things. We welcome your feedback and suggestions on issues you might encounter, or how to improve Pleroma and Pleroma-FE."])},update_bugs_gitlab:e=>{const{normalize:t}=e;return t(["Pleroma GitLab"])},update_changelog:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["For more details on what's changed, see ",n(o("theFullChangelog")),"."])},update_changelog_here:e=>{const{normalize:t}=e;return t(["the full changelog"])},art_by:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Art by ",n(o("linkToArtist"))])}},unicode_domain_indicator:{tooltip:e=>{const{normalize:t}=e;return t(["This domain contains non-ascii characters."])}}}},1395:(e,t,n)=>{var o={"./af.json":[44919,6355],"./am.json":[53139,5119],"./ar.json":[44557,9873],"./ar_SA.json":[23450,7360],"./as.json":[44359,3377],"./ast.json":[13764,7569],"./az.json":[86459,2342],"./be.json":[50866,7304],"./bg.json":[26219,3974],"./bn.json":[69178,9064],"./br.json":[67871,6148],"./bs.json":[75340,8134],"./ca.json":[86914,4691],"./ccp.json":[73872,1162],"./ceb.json":[64478,9790],"./chr.json":[61017,6869],"./ckb.json":[56412,2656],"./cs.json":[8888,4710],"./cy.json":[25392,6272],"./da.json":[35042,1596],"./de.json":[35169,6226],"./de_CH.json":[28246,7164],"./doi.json":[59784,4209],"./dsb.json":[60634,1790],"./el.json":[98338,7879],"./en.json":[74990,5728],"./en_001.json":[62736,577],"./en_AU.json":[2597,9360],"./en_CA.json":[1516,4879],"./en_GB.json":[84830,50],"./en_IN.json":[71809,8988],"./es.json":[61148,6831],"./es_419.json":[25696,8873],"./es_MX.json":[11915,2699],"./es_US.json":[87826,3313],"./et.json":[66641,3276],"./eu.json":[6541,2992],"./fa.json":[43305,5521],"./fi.json":[40752,420],"./fil.json":[26843,1236],"./fo.json":[43032,8995],"./fr.json":[80898,2223],"./fr_CA.json":[54515,1821],"./ga.json":[66572,4571],"./gd.json":[9185,6116],"./gl.json":[23840,6126],"./gu.json":[85811,7261],"./ha.json":[91566,227],"./ha_NE.json":[3400,5304],"./he.json":[26260,5548],"./hi.json":[18136,5968],"./hi_Latn.json":[95638,3056],"./hr.json":[77435,2861],"./hsb.json":[15758,8015],"./hu.json":[2727,4902],"./hy.json":[8397,6344],"./ia.json":[49796,6936],"./id.json":[56635,9465],"./ig.json":[26406,9895],"./is.json":[51391,7300],"./it.json":[54879,8970],"./ja.json":[2971,1290],"./jv.json":[18644,2479],"./ka.json":[71255,6068],"./kab.json":[92892,9780],"./kk.json":[46419,2873],"./kl.json":[2227,2397],"./km.json":[65729,1404],"./kn.json":[65611,278],"./ko.json":[67080,2966],"./kok.json":[47209,2599],"./ku.json":[18738,2883],"./ky.json":[89690,4785],"./lb.json":[3929,4770],"./lo.json":[19778,7464],"./lt.json":[41683,7169],"./lv.json":[54873,8898],"./mai.json":[11781,1613],"./mi.json":[11569,6701],"./mk.json":[67589,9921],"./ml.json":[24415,2685],"./mn.json":[50512,4718],"./mni.json":[81597,5401],"./mr.json":[97747,1911],"./ms.json":[81588,9924],"./mt.json":[25081,9399],"./my.json":[8608,6790],"./ne.json":[8572,9377],"./nl.json":[52355,6773],"./nn.json":[52874,9414],"./no.json":[48005,9979],"./or.json":[26728,1012],"./pa.json":[15042,6946],"./pa_Arab.json":[43578,9994],"./pcm.json":[91163,5104],"./pl.json":[61335,1095],"./ps.json":[51828,678],"./pt.json":[38543,5041],"./pt_PT.json":[8063,1546],"./qu.json":[15821,8031],"./rm.json":[5014,5887],"./ro.json":[34064,9864],"./ru.json":[95222,8395],"./rw.json":[12710,346],"./sa.json":[69343,2243],"./sat.json":[51243,7855],"./sc.json":[1319,2874],"./sd.json":[67728,6826],"./si.json":[5044,4354],"./sk.json":[45626,2350],"./sl.json":[76091,1553],"./so.json":[93761,625],"./sq.json":[1230,4368],"./sr.json":[60445,3887],"./sr_Cyrl_BA.json":[38940,6060],"./sr_Latn.json":[21650,8681],"./sr_Latn_BA.json":[78328,5115],"./su.json":[54395,1959],"./sv.json":[3418,3241],"./sw.json":[11958,7585],"./sw_KE.json":[35001,3994],"./ta.json":[92930,7897],"./te.json":[8748,4786],"./tg.json":[20999,313],"./th.json":[23900,3951],"./ti.json":[368,3568],"./tk.json":[88770,1780],"./to.json":[95781,1584],"./tr.json":[92619,9978],"./tt.json":[87782,2569],"./ug.json":[19005,9757],"./uk.json":[82057,9871],"./ur.json":[13889,6797],"./uz.json":[45108,1056],"./vi.json":[97099,5224],"./wo.json":[9923,7303],"./xh.json":[29064,786],"./yo.json":[11971,8732],"./yo_BJ.json":[64533,9926],"./yue.json":[40648,1452],"./yue_Hans.json":[24800,4424],"./zh.json":[34626,457],"./zh_Hant.json":[82560,2767],"./zh_Hant_HK.json":[47677,1044],"./zu.json":[73784,9319]};function r(e){if(!n.o(o,e))return Promise.resolve().then((()=>{var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=o[e],r=t[0];return n.e(t[1]).then((()=>n.t(r,19)))}r.keys=()=>Object.keys(o),r.id=1395,e.exports=r},19003:(e,t,n)=>{"use strict";n.d(t,{ZP:()=>l});var o=n(15861),r=n(93433),i=n(4942),s=n(64687),a=n.n(s);function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function c(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?u(Object(n),!0).forEach((function(t){(0,i.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}const l=function(e){var t=d(e.emoji),n=e.store&&p(e.store);return function(o,r){var i=o[0];return":"===i&&e.emoji?t(o,r):"@"===i&&n?n(o):[]}};var d=function(e){return function(t,n){var o=t.toLowerCase().substr(1);return e.map((function(e){return c(c({},e),n(e))})).filter((function(e){return e.names.concat(e.keywords).filter((function(e){return e.toLowerCase().match(o)})).length})).map((function(e){var t=0;return t+=Math.max.apply(Math,(0,r.Z)(e.names.map((function(e){return e.toLowerCase()===o?200:0}))).concat([0])),t+=e.imageUrl?100:0,t+=Math.max.apply(Math,(0,r.Z)(e.names.map((function(e){return e.toLowerCase().startsWith(o)?10:0}))).concat([0])),t-=e.displayText.length,e.score=t,e})).sort((function(e,t){var n=e.displayText>t.displayText?.5:-.5;return t.score-e.score+n}))}},p=function(e){var t=e.dispatch,n=e.state,r=[],i="",s=null,u=null,c=function(e){return u&&u(),new Promise((function(n,o){s=setTimeout((function(){(function(e){return t("searchUsers",{query:e})})(e).then(n).catch(o)}),300),u=function(){clearTimeout(s),n([])}}))};return function(){var e=(0,o.Z)(a().mark((function e(t){var o,s;return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=t.toLowerCase().substr(1),i!==o){e.next=3;break}return e.abrupt("return",r);case 3:if(r=[],i=o,o.includes("@")){e.next=8;break}return e.next=8,c(o);case 8:return s=n.users.users.filter((function(e){return e.screen_name&&e.name&&(e.screen_name.toLowerCase().startsWith(o)||e.name.toLowerCase().startsWith(o))})).slice(0,20).sort((function(e,t){var n=0,r=0;return n+=e.screen_name.toLowerCase().startsWith(o)?2:0,r+=t.screen_name.toLowerCase().startsWith(o)?2:0,n+=e.name.toLowerCase().startsWith(o)?1:0,10*((r+=t.name.toLowerCase().startsWith(o)?1:0)-n)+(e.name>t.name?1:-1)+(e.screen_name>t.screen_name?1:-1)})).map((function(e){return{user:e,displayText:e.screen_name_ui,detailText:e.name,imageUrl:e.profile_image_url_original,replacement:"@"+e.screen_name+" "}})),r=s||[],e.abrupt("return",r);case 11:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()}},92820:(e,t,n)=>{"use strict";n.d(t,{Z:()=>F});var o=n(93433),r=n(29439),i=n(44925),s=n(42348),a=n.n(s),u=n(27955),c=n.n(u),l=n(66252);function d(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return p(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?p(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0,r=function(){};return{s:r,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,i=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw i}}}}function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}var m=function(e){var t=/(?:<\/(\w+)>|<(\w+)\s?[\s\S]*?\/?>)/gi.exec(e);return t&&(t[1]||t[2])},h=function(e,t){var n=e.substring(1,e.length-1).replace(new RegExp("^"+m(e)),"").replace(/\/?$/,"").trim(),o=Array.from(n.matchAll(/([a-z]+[a-z0-9-]*)(?:=("[^"]+?"|'[^']+?'))?/gi)).map((function(e){var t=(0,r.Z)(e,3);return t[0],[t[1],t[2]]})).map((function(e){var t=(0,r.Z)(e,2),n=t[0],o=t[1];return o?[n,o.substring(1,o.length-1)]:[n,!0]}));return Object.fromEntries(o.filter(t||function(e){var t=(0,r.Z)(e,2),n=t[0],o=t[1],i=n.toLowerCase();return"style"!==i&&("class"!==i||"greentext"===o||"cyantext"===o)}))},f=function(e,t,n){for(var o=[],r="",i=0;i<e.length;i++){var s=e[i];if(":"===s){var a,u=e.slice(i+1),c=!1,l=d(t);try{for(l.s();!(a=l.n()).done;){var p=a.value;if(u.slice(0,p.shortcode.length+1)===p.shortcode+":"){c=p;break}}}catch(e){l.e(e)}finally{l.f()}c?(o.push(r),r="",o.push(n(c)),i+=c.shortcode.length+1):r+=s}else r+=s}return r&&o.push(r),o};function g(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return v(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?v(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0,r=function(){};return{s:r,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,i=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw i}}}}function v(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}var w=n(32140),b=n(21268),y=n(49963),D={class:"HashtagLink"},_=["href","innerHTML"];const k={name:"HashtagLink",props:{url:{required:!0,type:String},content:{required:!0,type:String},tag:{required:!1,type:String,default:""}},methods:{onClick:function(){var e,t,n,o=this.tag||(e=this.url,t=decodeURI(e),!!(n=/tags*\/((?:[0-9A-Z_a-z\xAA\xB2\xB3\xB5\xB9\xBA\xBC-\xBE\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u0660-\u0669\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07C0-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0966-\u096F\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09E6-\u09F1\u09F4-\u09F9\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A66-\u0A6F\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AE6-\u0AEF\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B66-\u0B6F\u0B71-\u0B77\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0BE6-\u0BF2\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C66-\u0C6F\u0C78-\u0C7E\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CE6-\u0CEF\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D58-\u0D61\u0D66-\u0D78\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DE6-\u0DEF\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F20-\u0F33\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F-\u1049\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u1090-\u1099\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1369-\u137C\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A16\u1A20-\u1A54\u1A80-\u1A89\u1A90-\u1A99\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B50-\u1B59\u1B83-\u1BA0\u1BAE-\u1BE5\u1C00-\u1C23\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2070\u2071\u2074-\u2079\u207F-\u2089\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2150-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2CFD\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u3192-\u3195\u31A0-\u31BF\u31F0-\u31FF\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA830-\uA835\uA840-\uA873\uA882-\uA8B3\uA8D0-\uA8D9\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA900-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF-\uA9D9\uA9E0-\uA9E4\uA9E6-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDE80-\uDE9C\uDEA0-\uDED0\uDEE1-\uDEFB\uDF00-\uDF23\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC58-\uDC76\uDC79-\uDC9E\uDCA7-\uDCAF\uDCE0-\uDCF2\uDCF4\uDCF5\uDCFB-\uDD1B\uDD20-\uDD39\uDD80-\uDDB7\uDDBC-\uDDCF\uDDD2-\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE40-\uDE48\uDE60-\uDE7E\uDE80-\uDE9F\uDEC0-\uDEC7\uDEC9-\uDEE4\uDEEB-\uDEEF\uDF00-\uDF35\uDF40-\uDF55\uDF58-\uDF72\uDF78-\uDF91\uDFA9-\uDFAF]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDCFA-\uDD23\uDD30-\uDD39\uDE60-\uDE7E\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF27\uDF30-\uDF45\uDF51-\uDF54\uDF70-\uDF81\uDFB0-\uDFCB\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC52-\uDC6F\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD03-\uDD26\uDD36-\uDD3F\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDD0-\uDDDA\uDDDC\uDDE1-\uDDF4\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDEF0-\uDEF9\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC50-\uDC59\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE50-\uDE59\uDE80-\uDEAA\uDEB8\uDEC0-\uDEC9\uDF00-\uDF1A\uDF30-\uDF3B\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCF2\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDD50-\uDD59\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC50-\uDC6C\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDDA0-\uDDA9\uDEE0-\uDEF2\uDFB0\uDFC0-\uDFD4]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDE70-\uDEBE\uDEC0-\uDEC9\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF50-\uDF59\uDF5B-\uDF61\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE96\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD834[\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD837[\uDF00-\uDF1E]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD40-\uDD49\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB\uDEF0-\uDEF9]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDCC7-\uDCCF\uDD00-\uDD43\uDD4B\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])*(?:[A-Z_a-z\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0345\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05B0-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05EF-\u05F2\u0610-\u061A\u0620-\u0657\u0659-\u065F\u066E-\u06D3\u06D5-\u06DC\u06E1-\u06E8\u06ED-\u06EF\u06FA-\u06FC\u06FF\u0710-\u073F\u074D-\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0817\u081A-\u082C\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u08D4-\u08DF\u08E3-\u08E9\u08F0-\u093B\u093D-\u094C\u094E-\u0950\u0955-\u0963\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD-\u09C4\u09C7\u09C8\u09CB\u09CC\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09F0\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3E-\u0A42\u0A47\u0A48\u0A4B\u0A4C\u0A51\u0A59-\u0A5C\u0A5E\u0A70-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD-\u0AC5\u0AC7-\u0AC9\u0ACB\u0ACC\u0AD0\u0AE0-\u0AE3\u0AF9-\u0AFC\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D-\u0B44\u0B47\u0B48\u0B4B\u0B4C\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCC\u0BD0\u0BD7\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4C\u0C55\u0C56\u0C58-\u0C5A\u0C5D\u0C60-\u0C63\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCC\u0CD5\u0CD6\u0CDD\u0CDE\u0CE0-\u0CE3\u0CF1\u0CF2\u0D00-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4C\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D7A-\u0D7F\u0D81-\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E46\u0E4D\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0ECD\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F71-\u0F81\u0F88-\u0F97\u0F99-\u0FBC\u1000-\u1036\u1038\u103B-\u103F\u1050-\u108F\u109A-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1713\u171F-\u1733\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17B3\u17B6-\u17C8\u17D7\u17DC\u1820-\u1878\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u1938\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A1B\u1A20-\u1A5E\u1A61-\u1A74\u1AA7\u1ABF\u1AC0\u1ACC-\u1ACE\u1B00-\u1B33\u1B35-\u1B43\u1B45-\u1B4C\u1B80-\u1BA9\u1BAC-\u1BAF\u1BBA-\u1BE5\u1BE7-\u1BF1\u1C00-\u1C36\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1DE7-\u1DF4\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u24B6-\u24E9\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA674-\uA67B\uA67F-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA805\uA807-\uA827\uA840-\uA873\uA880-\uA8C3\uA8C5\uA8F2-\uA8F7\uA8FB\uA8FD-\uA8FF\uA90A-\uA92A\uA930-\uA952\uA960-\uA97C\uA980-\uA9B2\uA9B4-\uA9BF\uA9CF\uA9E0-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA60-\uAA76\uAA7A-\uAABE\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF5\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABEA\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD27\uDE80-\uDEA9\uDEAB\uDEAC\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC00-\uDC45\uDC71-\uDC75\uDC82-\uDCB8\uDCC2\uDCD0-\uDCE8\uDD00-\uDD32\uDD44-\uDD47\uDD50-\uDD72\uDD76\uDD80-\uDDBF\uDDC1-\uDDC4\uDDCE\uDDCF\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE34\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEE8\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D-\uDF44\uDF47\uDF48\uDF4B\uDF4C\uDF50\uDF57\uDF5D-\uDF63]|\uD805[\uDC00-\uDC41\uDC43-\uDC45\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCC1\uDCC4\uDCC5\uDCC7\uDD80-\uDDB5\uDDB8-\uDDBE\uDDD8-\uDDDD\uDE00-\uDE3E\uDE40\uDE44\uDE80-\uDEB5\uDEB8\uDF00-\uDF1A\uDF1D-\uDF2A\uDF40-\uDF46]|\uD806[\uDC00-\uDC38\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD35\uDD37\uDD38\uDD3B\uDD3C\uDD3F-\uDD42\uDDA0-\uDDA7\uDDAA-\uDDD7\uDDDA-\uDDDF\uDDE1\uDDE3\uDDE4\uDE00-\uDE32\uDE35-\uDE3E\uDE50-\uDE97\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC3E\uDC40\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD41\uDD43\uDD46\uDD47\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD8E\uDD90\uDD91\uDD93-\uDD96\uDD98\uDEE0-\uDEF6\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF4F-\uDF87\uDF8F-\uDF9F\uDFE0\uDFE1\uDFE3\uDFF0\uDFF1]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9E]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD47\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83C[\uDD30-\uDD49\uDD50-\uDD69\uDD70-\uDD89]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])(?:[0-9A-Z_a-z\xAA\xB2\xB3\xB5\xB7\xB9\xBA\xBC-\xBE\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u052F\u0531-\u0556\u0559\u0560-\u0588\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05EF-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u07FD\u0800-\u082D\u0840-\u085B\u0860-\u086A\u0870-\u0887\u0889-\u088E\u0898-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09F4-\u09F9\u09FC\u09FE\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71-\u0B77\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BF2\u0C00-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3C-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C5D\u0C60-\u0C63\u0C66-\u0C6F\u0C78-\u0C7E\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDD\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D63\u0D66-\u0D78\u0D7A-\u0D7F\u0D81-\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F33\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u137C\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1715\u171F-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u17F0-\u17F9\u180B-\u180D\u180F-\u1819\u1820-\u1878\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ACE\u1B00-\u1B4C\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CD0-\u1CD2\u1CD4-\u1CFA\u1D00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u2070\u2071\u2074-\u2079\u207F-\u2089\u2090-\u209C\u20D0-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2150-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2C00-\u2CE4\u2CEB-\u2CF3\u2CFD\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u3192-\u3195\u31A0-\u31BF\u31F0-\u31FF\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA672\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA827\uA82C\uA830-\uA835\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0-\uDEFB\uDF00-\uDF23\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC58-\uDC76\uDC79-\uDC9E\uDCA7-\uDCAF\uDCE0-\uDCF2\uDCF4\uDCF5\uDCFB-\uDD1B\uDD20-\uDD39\uDD80-\uDDB7\uDDBC-\uDDCF\uDDD2-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE38-\uDE3A\uDE3F-\uDE48\uDE60-\uDE7E\uDE80-\uDE9F\uDEC0-\uDEC7\uDEC9-\uDEE6\uDEEB-\uDEEF\uDF00-\uDF35\uDF40-\uDF55\uDF58-\uDF72\uDF78-\uDF91\uDFA9-\uDFAF]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDCFA-\uDD27\uDD30-\uDD39\uDE60-\uDE7E\uDE80-\uDEA9\uDEAB\uDEAC\uDEB0\uDEB1\uDF00-\uDF27\uDF30-\uDF54\uDF70-\uDF85\uDFB0-\uDFCB\uDFE0-\uDFF6]|\uD804[\uDC00-\uDC46\uDC52-\uDC75\uDC7F-\uDCBA\uDCC2\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD44-\uDD47\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDC9-\uDDCC\uDDCE-\uDDDA\uDDDC\uDDE1-\uDDF4\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3B-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC5E-\uDC61\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB8\uDEC0-\uDEC9\uDF00-\uDF1A\uDF1D-\uDF2B\uDF30-\uDF3B\uDF40-\uDF46]|\uD806[\uDC00-\uDC3A\uDCA0-\uDCF2\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD35\uDD37\uDD38\uDD3B-\uDD43\uDD50-\uDD59\uDDA0-\uDDA7\uDDAA-\uDDD7\uDDDA-\uDDE1\uDDE3\uDDE4\uDE00-\uDE3E\uDE47\uDE50-\uDE99\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC6C\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD8E\uDD90\uDD91\uDD93-\uDD98\uDDA0-\uDDA9\uDEE0-\uDEF6\uDFB0\uDFC0-\uDFD4]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDE70-\uDEBE\uDEC0-\uDEC9\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF5B-\uDF61\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE96\uDF00-\uDF4A\uDF4F-\uDF87\uDF8F-\uDF9F\uDFE0\uDFE1\uDFE3\uDFE4\uDFF0\uDFF1]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD833[\uDF00-\uDF2D\uDF30-\uDF46]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD837[\uDF00-\uDF1E]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDD00-\uDD2C\uDD30-\uDD3D\uDD40-\uDD49\uDD4E\uDE90-\uDEAE\uDEC0-\uDEF9]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDCC7-\uDCD6\uDD00-\uDD4B\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A]|\uDB40[\uDD00-\uDDEF])*)$/g.exec(t))&&n[1]);if(o){var r=this.generateTagLink(o);this.$router.push(r)}else window.open(this.url,"_blank")},generateTagLink:function(e){return"/tag/".concat(e)}}},C=(0,n(83744).Z)(k,[["render",function(e,t,n,o,r,i){return(0,l.wg)(),(0,l.iD)("span",D,[(0,l._)("a",{href:e.url,class:"original",target:"_blank",onClick:t[0]||(t[0]=(0,y.iM)((function(){return e.onClick&&e.onClick.apply(e,arguments)}),["prevent"])),innerHTML:e.content},null,8,_)])}]]);var S=["index"],j=["blockquote","br","hr","ul","ol","li","p","table","tbody","td","th","thead","tr","h1","h2","h3","h4","h5"];const F={name:"RichContent",components:{MentionsLine:b.Z,HashtagLink:C},props:{html:{required:!0,type:String},attentions:{required:!1,default:function(){return[]}},emoji:{required:!0,type:Array},handleLinks:{required:!1,type:Boolean,default:!1},greentext:{required:!1,type:Boolean,default:!1}},render:function(){var e=this,t=O(this.html,this.greentext).newHtml,n=null,s="",a=[],u=[],d=[],p=[],g=0,v=0,y=!1,D=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=new Set(["area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"]),n=[],o=[["",n]],r="",i=null,s=function(){return o[o.length-1][1]},a=function(){""!==r&&(s().push(r),r="")},u=function(e){s().push([e])},l=function(e){var t=s(),n=[c()(e),[]];o.push(n),t.push(n)},d=function(e){var t=o[o.length-1];m(o[o.length-1][0])===m(e)?(t.push(e),o.pop()):s().push(e)},p=0;p<e.length;p++){var h=e[p];if("<"===h&&null===i)a(),i=h;else if(">"!==h&&null!==i)i+=h;else if(">"===h&&null!==i){var f=i+=h;i=null;var g=m(f);"/"===f[1]?d(f):t.has(g)||"/"===f[f.length-2]?u(f):l(f)}else r+=h}return i&&(r+=i),a(),n}(t).map((function t(o,i,a,c){if("string"==typeof o){var p=""===o.trim();return o.includes("\n")&&(n=null),p?(s=o,i!==a.length-1&&null!==n?o.trim():o):(n=null,o.includes(":")&&(o=["",f(o,e.emoji,(function(e){var t=e.shortcode,n=e.url;return(0,l.Wm)(w.Z,{class:"emoji img",src:n,title:":".concat(t,":"),alt:":".concat(t,":")},null)}))]),o)}if(Array.isArray(o)){var v=o,y=(0,r.Z)(v,3),D=y[0],_=y[1],k=y[2],C=m(D);"script"===C.toLowerCase()&&(C="js-exploit"),"style"===C.toLowerCase()&&(C="css-exploit");var S=h(D,(function(){return!0})),F=h(D),O=null===n||_&&"string"==typeof _[0]&&_[0].match(/^\s/)?"":s;if(j.includes(C))n=null;else{if("img"===C)return["",[O,(E=D,(0,l.Wm)(w.Z,(0,l.dG)(h(E),{class:"img"}),null))],""];if("a"===C&&e.handleLinks){if(S.class&&S.class.includes("mention"))return function(t,o){var r=A(t,o,g++);return r.notifying=e.attentions.some((function(e){return e.statusnet_profile_url===r.url})),u.push(r),null===n&&(n=[]),n.push(r),n.length>b.d&&d.push(r),1===n.length?(0,l.Wm)(b.Z,{mentions:n},null):""}(F,_);n=null}else if("span"===C&&e.handleLinks&&S.class&&S.class.includes("h-card"))return["",_.map(t),""]}return void 0!==_?["",[O,[D,_.map(t),k]],""]:["",[O,o],""]}var E})),_=(0,o.Z)(D).reverse().map((function t(n,s,u,d){var f;if("string"==typeof n)return""===n.trim()?n:(y||(y=!0),c()(n));if(Array.isArray(n)){var g=(0,r.Z)(n,2),w=g[0],b=g[1],D=""===w?"":m(w);switch(D){case"a":if(!e.handleLinks)break;var _=h(w,(function(){return!0})),k=h(w,(function(){return!0}));if(_.class&&_.class.includes("hashtag")||"tag"===_.rel)return function(e,t,n){var o=A(e,t,v++),r=(o.index,(0,i.Z)(o,S));p.push(r),n||a.push(r);var s=r.url,u=r.tag,c=r.content;return(0,l.Wm)(C,{url:s,tag:u,content:c},null)}(k,b,y);k.target="_blank";var j=(0,o.Z)(b).reverse().map(t).reverse();return(0,l.Wm)("a",k,[j]);case"":return(0,o.Z)(b).reverse().map(t).reverse()}if(void 0!==b){var F=Array.isArray(b)?(0,o.Z)(b).reverse().map(t).reverse():b;return(0,l.Wm)(D,h(w),"function"==typeof(f=F)||"[object Object]"===Object.prototype.toString.call(f)&&!(0,l.lA)(f)?F:{default:function(){return[F]}})}return(0,l.Wm)(D,null,null)}return n})).reverse(),k=(0,l.Wm)("span",{class:"RichContent"},[_]),F={lastTags:a,writtenMentions:u,writtenTags:p,invisibleMentions:d};return this.$emit("parseReady",F),k}};var A=function(e,t,n){var o=t.map((function e(t){return"string"==typeof t?t:t[1].map(e).join("")})).join("");return{index:n,url:e.href,tag:e["data-tag"],content:a()(t).join(""),textContent:o}},O=function(e,t){var n=new Set(["p","div"]),r=function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",n=new Set(["area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"]),r=new Set(["address","article","aside","blockquote","details","dialog","dd","div","dl","dt","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","li","main","nav","ol","p","pre","section","table","ul"]),i=new Set(["br"]),s=new Set([].concat((0,o.Z)(r.values()),(0,o.Z)(i.values()))),a=new Set(s),u=g(n);try{for(u.s();!(e=u.n()).done;){var c=e.value;a.delete(c)}}catch(e){u.e(e)}finally{u.f()}for(var l=new Set([].concat((0,o.Z)(a.values()),(0,o.Z)(n.values()))),d=[],p=[],h="",f=null,v=function(){h.trim().length>0?d.push({level:[].concat(p),text:h}):d.push(h),h=""},w=function(e){v(),d.push(e)},b=function(e){v(),d.push(e),p.unshift(m(e))},y=function(e){p[0]===m(e)?(v(),d.push(e),p.shift()):h+=e},D=0;D<t.length;D++){var _=t[D];if("<"===_&&null===f)f=_;else if(">"!==_&&null!==f)f+=_;else if(">"===_&&null!==f){var k=f+=_;f=null;var C=m(k);l.has(C)?i.has(C)?w(k):a.has(C)?"/"===k[1]?y(k):"/"===k[k.length-2]?w(k):b(k):h+=k:h+=k}else"\n"===_?w(_):h+=_}return f&&(h+=f),v(),d}(e);return{newHtml:r.reverse().map((function(e,o,r){if(!e.text)return e;var i=e.text;if(t&&e.level.every((function(e){return n.has(e)}))&&(i.includes("&gt;")||i.includes("&lt;"))){var s=i.replace(/<[^>]+?>/gi,"").replace(/@\w+/gi,"").trim();if(s.startsWith("&gt;"))return"<span class='greentext'>".concat(i,"</span>");if(s.startsWith("&lt;"))return"<span class='cyantext'>".concat(i,"</span>")}return i})).reverse().join("")}}},79354:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var o=n(66252),r=n(57810),i=function(e){return e.findIndex((function(e){return e.props}))};const s={name:"TabSwitcher",props:{renderOnlyFocused:{required:!1,type:Boolean,default:!1},onSwitch:{required:!1,type:Function,default:void 0},activeTab:{required:!1,type:String,default:void 0},scrollableTabs:{required:!1,type:Boolean,default:!1},sideTabBar:{required:!1,type:Boolean,default:!1},bodyScrollLock:{required:!1,type:Boolean,default:!1}},data:function(){return{active:i(this.slots())}},computed:{activeIndex:function(){var e=this;return this.activeTab?this.slots().findIndex((function(t){return t&&t.props&&e.activeTab===t.props.key})):this.active},isActive:function(){var e=this;return function(t){return e.$slots.default().findIndex((function(e){return e.props&&e.props["data-tab-name"]===t}))===e.activeIndex}}},beforeUpdate:function(){this.slots()[this.active].props||(this.active=i(this.slots()))},methods:{clickTab:function(e){var t=this;return function(n){n.preventDefault(),t.setTab(e)}},slots:function(){return this.$slots.default()[0].type===o.HY?this.$slots.default()[0].children:this.$slots.default()},setTab:function(e){"function"==typeof this.onSwitch&&this.onSwitch.call(null,this.slots()[e].key),this.active=e,this.scrollableTabs&&(this.$refs.contents.scrollTop=0)}},render:function(){var e=this,t=this.slots().map((function(t,n){var i=t.props;if(i){var s=["tab","button-default"],a=["tab-wrapper"];return e.activeIndex===n&&(s.push("active"),a.push("active")),i.image?(0,o.Wm)("div",{class:a.join(" ")},[(0,o.Wm)("button",{disabled:i.disabled,onClick:e.clickTab(n),class:s.join(" "),type:"button",role:"tab"},[(0,o.Wm)("img",{src:i.image,title:i["image-tooltip"]},null),i.label?"":i.label])]):(0,o.Wm)("div",{class:a.join(" ")},[(0,o.Wm)("button",{disabled:i.disabled,onClick:e.clickTab(n),class:s.join(" "),type:"button",role:"tab"},[i.icon?(0,o.Wm)(r.GN,{class:"tab-icon",size:"2x","fixed-width":!0,icon:i.icon},null):"",(0,o.Wm)("span",{class:"text"},[i.label])])])}})),n=this.slots().map((function(t,n){var r=t.props;if(r){var i=e.activeIndex===n,s=[i?"active":"hidden"];r.fullHeight&&s.push("full-height");var a=!e.renderOnlyFocused||i?t:"";return(0,o.Wm)("div",{class:s},[e.sideTabBar?(0,o.Wm)("h1",{class:"mobile-label"},[r.label]):"",a])}}));return(0,o.Wm)("div",{class:"tab-switcher "+(this.sideTabBar?"side-tabs":"top-tabs")},[(0,o.Wm)("div",{class:"tabs",role:"tablist"},[t]),(0,o.wy)((0,o.Wm)("div",{ref:"contents",role:"tabpanel",class:"contents"+(this.scrollableTabs?" scrollable-tabs":"")},[n]),[[(0,o.Q2)("body-scroll-lock"),this.bodyScrollLock]])])}}},98027:(e,t,n)=>{"use strict";n.d(t,{Z:()=>m});var o=n(4942),r=n(66252),i=n(41609),s=n.n(i),a=n(13562),u=n(57810),c=n(9382),l=n(84131);function d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function p(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?d(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):d(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}c.vI.add(l.IJ7);const m=function(e){var t=e.fetch,n=e.select,i=e.unmounted,c=e.childPropName,l=void 0===c?"entries":c,d=e.additionalPropNames,m=void 0===d?[]:d;return function(e){return{props:Object.keys((0,a.g)(e)).filter((function(e){return e!==l})).concat(m),data:function(){return{loading:!1,bottomedOut:!1,error:!1,entries:[]}},created:function(){window.addEventListener("scroll",this.scrollLoad),0===this.entries.length&&this.fetchEntries()},unmounted:function(){window.removeEventListener("scroll",this.scrollLoad),i&&i(this.$props,this.$store)},methods:{updateEntries:function(){this.entries=n(this.$props,this.$store)||[]},fetchEntries:function(){var e=this;this.loading||(this.loading=!0,this.error=!1,t(this.$props,this.$store).then((function(t){e.loading=!1,e.bottomedOut=s()(t)})).catch((function(){e.loading=!1,e.error=!0})).finally((function(){e.updateEntries()})))},scrollLoad:function(e){var t=document.body.getBoundingClientRect(),n=Math.max(t.height,-t.y);!1===this.loading&&!1===this.bottomedOut&&this.$el.offsetHeight>0&&window.innerHeight+window.pageYOffset>=n-750&&this.fetchEntries()}},render:function(){var t,n=p(p({},this.$props),{},(0,o.Z)({},l,this.entries)),i=this.$slots;return(0,r.Wm)("div",{class:"with-load-more"},[(0,r.Wm)(e,n,(t=i,"function"==typeof t||"[object Object]"===Object.prototype.toString.call(t)&&!(0,r.lA)(t)?i:{default:function(){return[i]}})),(0,r.Wm)("div",{class:"with-load-more-footer"},[this.error&&(0,r.Wm)("button",{onClick:this.fetchEntries,class:"button-unstyled -link -fullwidth alert error"},[this.$t("general.generic_error")]),!this.error&&this.loading&&(0,r.Wm)(u.GN,{spin:!0,icon:"circle-notch"},null),!this.error&&!this.loading&&!this.bottomedOut&&(0,r.Wm)("a",{onClick:this.fetchEntries,role:"button",tabindex:"0"},[this.$t("general.more")])])])}}}}},8312:e=>{var t={ja:"ja_pedantic"};e.exports={languages:["ar","ca","cs","de","eo","en","es","et","eu","fi","fr","ga","he","hu","it","ja","ja_easy","ko","nan-TW","nb","nl","oc","pl","pt","ro","ru","sk","te","uk","zh","zh_Hant"],langCodeToJsonName:function(e){return t[e]||e},langCodeToCldrName:function(e){return e},ensureFinalFallback:function(e){var t=Array.isArray(e)?e:[e];return t.includes("en")?t:t.concat(["en"])}}},72617:(e,t,n)=>{"use strict";n.d(t,{Z:()=>h});var o=n(84506),r=n(15861),i=n(18446),s=n.n(i),a=n(64687),u=n.n(a),c=n(8312);function l(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return d(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?d(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0,r=function(){};return{s:r,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,i=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw i}}}}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}var p,m=function(e){return n(27650)("./".concat((0,c.langCodeToJsonName)(e),".json"))};const h={languages:c.languages,default:{en:n(88797).default},setLanguage:(p=(0,r.Z)(u().mark((function e(t,n){var r,i,a,d,p,h,f,g;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if((r=(Array.isArray(n)?n:[n]).filter((function(e){return e}))).includes("en")||r.push("en"),i=(0,o.Z)(r),a=i[0],d=i.slice(1),a!==t.locale||!s()(d,t.fallbackLocale)){e.next=5;break}return e.abrupt("return");case 5:p=l(r),e.prev=6,p.s();case 8:if((h=p.n()).done){e.next=17;break}if(u=f=h.value,!c.languages.includes(u)){e.next=15;break}return e.next=13,m(f);case 13:g=e.sent,t.setLocaleMessage(f,g.default);case 15:e.next=8;break;case 17:e.next=22;break;case 19:e.prev=19,e.t0=e.catch(6),p.e(e.t0);case 22:return e.prev=22,p.f(),e.finish(22);case 25:t.fallbackLocale=d,t.locale=a;case 27:case"end":return e.stop()}var u}),e,null,[[6,19,22,25]])}))),function(e,t){return p.apply(this,arguments)})}},2514:(e,t,n)=>{"use strict";var o=n(15861),r=n(64687),i=n.n(r),s=n(989),a=(n(67810),n(73152));try{new EventTarget}catch(e){window.EventTarget=a.Z}const u={state:{settingsModalState:"hidden",settingsModalLoadedUser:!1,settingsModalLoadedAdmin:!1,settingsModalTargetTab:null,settingsModalMode:"user",settings:{currentSaveStateNotice:null,noticeClearTimeout:null,notificationPermission:null},browserSupport:{cssFilter:window.CSS&&window.CSS.supports&&(window.CSS.supports("filter","drop-shadow(0 0)")||window.CSS.supports("-webkit-filter","drop-shadow(0 0)"))},layoutType:"normal",globalNotices:[],layoutHeight:0,lastTimeline:null},mutations:{settingsSaved:function(e,t){var n=t.success,o=t.error;n?(e.noticeClearTimeout&&clearTimeout(e.noticeClearTimeout),e.settings.currentSaveStateNotice={error:!1,data:n},e.settings.noticeClearTimeout=setTimeout((function(){return delete e.settings.currentSaveStateNotice}),2e3)):e.settings.currentSaveStateNotice={error:!0,errorData:o}},setNotificationPermission:function(e,t){e.notificationPermission=t},setLayoutType:function(e,t){e.layoutType=t},closeSettingsModal:function(e){e.settingsModalState="hidden"},togglePeekSettingsModal:function(e){switch(e.settingsModalState){case"minimized":return void(e.settingsModalState="visible");case"visible":return void(e.settingsModalState="minimized");default:throw new Error("Illegal minimization state of settings modal")}},openSettingsModal:function(e,t){e.settingsModalMode=t,e.settingsModalState="visible","user"===t?e.settingsModalLoadedUser||(e.settingsModalLoadedUser=!0):"admin"===t&&(e.settingsModalLoadedAdmin||(e.settingsModalLoadedAdmin=!0))},setSettingsModalTargetTab:function(e,t){e.settingsModalTargetTab=t},pushGlobalNotice:function(e,t){e.globalNotices.push(t)},removeGlobalNotice:function(e,t){e.globalNotices=e.globalNotices.filter((function(e){return e!==t}))},setLayoutHeight:function(e,t){e.layoutHeight=t},setLayoutWidth:function(e,t){e.layoutWidth=t},setLastTimeline:function(e,t){e.lastTimeline=t}},actions:{setPageTitle:function(e){var t=e.rootState,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";document.title="".concat(n," ").concat(t.instance.name)},settingsSaved:function(e,t){var n=e.commit;e.dispatch,n("settingsSaved",{success:t.success,error:t.error})},setNotificationPermission:function(e,t){(0,e.commit)("setNotificationPermission",t)},closeSettingsModal:function(e){(0,e.commit)("closeSettingsModal")},openSettingsModal:function(e){var t=e.commit,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"user";t("openSettingsModal",n)},togglePeekSettingsModal:function(e){(0,e.commit)("togglePeekSettingsModal")},clearSettingsModalTargetTab:function(e){(0,e.commit)("setSettingsModalTargetTab",null)},openSettingsModalTab:function(e,t){var n=e.commit;n("setSettingsModalTargetTab",t),n("openSettingsModal","user")},pushGlobalNotice:function(e,t){var n=e.commit,o=e.dispatch,r=e.state,i=t.messageKey,s=t.messageArgs,a=void 0===s?{}:s,u=t.level,c=void 0===u?"error":u,l=t.timeout,d=void 0===l?0:l;n("pushGlobalNotice",{messageKey:i,messageArgs:a,level:c});var p=r.globalNotices[r.globalNotices.length-1];return d&&setTimeout((function(){return o("removeGlobalNotice",p)}),d),p},removeGlobalNotice:function(e,t){(0,e.commit)("removeGlobalNotice",t)},setLayoutHeight:function(e,t){(0,e.commit)("setLayoutHeight",t)},setLayoutWidth:function(e,t){var n=e.commit,o=e.state,r=e.rootGetters,i=e.rootState,s=t;void 0!==t?n("setLayoutWidth",t):s=o.layoutWidth;var a=s<=800?"mobile":"normal";"none"!==r.mergedConfig.thirdColumnMode&&i.users.currentUser?n("setLayoutType",s>=1300?"wide":a):n("setLayoutType",a)},setLastTimeline:function(e,t){(0,e.commit)("setLastTimeline",t)}}};var c=n(29439),l=n(93433),d=n(4942),p=n(77394),m=n(40454),h=n(77776),f=n(85565),g=n(8312);function v(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function w(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?v(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):v(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var b=["smileys-and-emotion","people-and-body","animals-and-nature","food-and-drink","travel-and-places","activities","objects","symbols","flags"],y=function(){for(var e=127462,t="A".codePointAt(0),n=new Array(26),o=e;o<=127487;++o){var r=String.fromCodePoint(t+o-e);n[o-e]={replacement:String.fromCodePoint(o),imageUrl:!1,displayText:"regional_indicator_"+r,displayTextI18n:{key:"emoji.regional_indicator",args:{letter:r}}}}return n}(),D=function(e){return n(1395)("./".concat((0,g.langCodeToCldrName)(e),".json")).then((function(e){return e.default}))},_=function(e,t){var n=Object.keys(t);return w(w({},e),{},{annotations:n.reduce((function(n,o){return n[o]=t[o][e.replacement],n}),{})})};const k={state:{name:"Pleroma FE",registrationOpen:!0,server:"http://localhost:4040/",textlimit:5e3,themeData:void 0,vapidPublicKey:void 0,alwaysShowSubjectInput:!0,defaultAvatar:"/images/avi.png",defaultBanner:"/images/banner.png",background:"/static/aurora_borealis.jpg",collapseMessageWithSubject:!1,greentext:!1,useAtIcon:!1,mentionLinkDisplay:"short",mentionLinkShowTooltip:!0,mentionLinkShowAvatar:!1,mentionLinkFadeDomain:!0,mentionLinkShowYous:!1,mentionLinkBoldenYou:!0,hideFilteredStatuses:!1,hideMutedPosts:!1,hideMutedThreads:!0,hideWordFilteredPosts:!1,hidePostStats:!1,hideBotIndication:!1,hideSitename:!1,hideUserStats:!1,muteBotStatuses:!1,modalOnRepeat:!1,modalOnUnfollow:!1,modalOnBlock:!0,modalOnMute:!1,modalOnDelete:!0,modalOnLogout:!0,modalOnApproveFollow:!1,modalOnDenyFollow:!1,modalOnRemoveUserFromFollowers:!1,loginMethod:"password",logo:"/static/logo.svg",logoMargin:".2em",logoMask:!0,logoLeft:!1,disableUpdateNotification:!1,minimalScopesMode:!1,nsfwCensorImage:void 0,postContentType:"text/plain",redirectRootLogin:"/main/friends",redirectRootNoLogin:"/main/all",scopeCopy:!0,showFeaturesPanel:!0,showInstanceSpecificPanel:!1,sidebarRight:!1,subjectLineBehavior:"email",theme:"pleroma-dark",virtualScrolling:!0,sensitiveByDefault:!1,conversationDisplay:"linear",conversationTreeAdvanced:!1,conversationOtherRepliesButton:"below",conversationTreeFadeAncestors:!1,maxDepthInThread:6,autocompleteSelect:!1,customEmoji:[],customEmojiFetched:!1,emoji:{},emojiFetched:!1,unicodeEmojiAnnotations:{},pleromaBackend:!0,postFormats:[],restrictedNicknames:[],safeDM:!0,knownDomains:[],birthdayRequired:!1,birthdayMinAge:0,shoutAvailable:!1,pleromaChatMessagesAvailable:!1,pleromaCustomEmojiReactionsAvailable:!1,gopherAvailable:!1,mediaProxyAvailable:!1,suggestionsEnabled:!1,suggestionsWeb:"",quotingAvailable:!1,instanceSpecificPanelContent:"",tos:"",backendVersion:"",frontendVersion:"",pollsAvailable:!1,pollLimits:{max_options:4,max_option_chars:255,min_expiration:60,max_expiration:86400}},mutations:{setInstanceOption:function(e,t){var n=t.name,o=t.value;void 0!==o&&(e[n]=o)},setKnownDomains:function(e,t){e.knownDomains=t},setUnicodeEmojiAnnotations:function(e,t){var n=t.lang,o=t.annotations;e.unicodeEmojiAnnotations[n]=o}},getters:{instanceDefaultConfig:function(e){return f.Oi.map((function(t){return[t,e[t]]})).reduce((function(e,t){var n=(0,c.Z)(t,2),o=n[0],r=n[1];return w(w({},e),{},(0,d.Z)({},o,r))}),{})},groupedCustomEmojis:function(e){return e.customEmoji.reduce((function(e,t){return function(e){var t=e.tags.filter((function(e){return e.startsWith("pack:")})).map((function(e){var t=e.slice(5);return{id:"custom-".concat(t),text:t}}));return t.length?t:[{id:"unpacked"}]}(t).forEach((function(n){var o=n.id,r=n.text;e[o]||(e[o]={id:o,text:r,image:t.imageUrl,emojis:[]}),e[o].emojis.push(t)})),e}),{})},standardEmojiList:function(e){return b.map((function(t){return(e.emoji[t]||[]).map((function(t){return _(t,e.unicodeEmojiAnnotations)}))})).reduce((function(e,t){return e.concat(t)}),[])},standardEmojiGroupList:function(e){return b.map((function(t){return{id:t,emojis:(e.emoji[t]||[]).map((function(t){return _(t,e.unicodeEmojiAnnotations)}))}}))},instanceDomain:function(e){return new URL(e.server).hostname},remoteInteractionLink:function(e){var t=(e.server.endsWith("/")?e.server.slice(0,-1):e.server)+"/main/ostatus";return function(e){var n=e.statusId,o=e.nickname;return n?"".concat(t,"?status_id=").concat(n):"".concat(t,"?nickname=").concat(o)}}},actions:{setInstanceOption:function(e,t){var n=e.commit,o=e.dispatch,r=t.name,i=t.value;switch(n("setInstanceOption",{name:r,value:i}),r){case"name":o("setPageTitle");break;case"shoutAvailable":i&&o("initializeSocket");break;case"theme":o("setTheme",i)}},getStaticEmoji:function(e){return(0,o.Z)(i().mark((function t(){var o,r,s;return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return o=e.commit,t.prev=1,t.next=4,n.e(3687).then(n.t.bind(n,13315,19));case 4:r=t.sent.default,s=Object.keys(r).reduce((function(e,t){return e[t]=r[t].map((function(e){return{displayText:e.slug,imageUrl:!1,replacement:e.emoji}})),e}),{}),o("setInstanceOption",{name:"emoji",value:(i=s,a=void 0,(a=i.symbols).push.apply(a,(0,l.Z)(y)),i)}),t.next=13;break;case 9:t.prev=9,t.t0=t.catch(1),console.warn("Can't load static emoji"),console.warn(t.t0);case 13:case"end":return t.stop()}var i,a}),t,null,[[1,9]])})))()},loadUnicodeEmojiData:function(e,t){var n=e.commit,r=e.state,s=(0,g.ensureFinalFallback)(t);return Promise.all(s.map(function(){var e=(0,o.Z)(i().mark((function e(t){var o;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r.unicodeEmojiAnnotations[t]){e.next=11;break}return e.prev=1,e.next=4,D(t);case 4:o=e.sent,n("setUnicodeEmojiAnnotations",{lang:t,annotations:o}),e.next=11;break;case 8:e.prev=8,e.t0=e.catch(1),console.warn("Error loading unicode emoji annotations for ".concat(t,": "),e.t0);case 11:case"end":return e.stop()}}),e,null,[[1,8]])})));return function(t){return e.apply(this,arguments)}}()))},getCustomEmoji:function(e){return(0,o.Z)(i().mark((function t(){var n,o,r,s,a,u,d,p,m;return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=e.commit,o=e.state,t.prev=1,t.next=4,window.fetch("/api/pleroma/emoji.json");case 4:if(!(r=t.sent).ok){t.next=17;break}return t.next=8,r.json();case 8:s=t.sent,a=Array.isArray(s)?Object.assign.apply(Object,[{}].concat((0,l.Z)(s))):s,u=function(e,t){var n=e.toLowerCase(),o=t.toLowerCase();return n>o?1:n<o?-1:0},d=function(e,t){var n=""===e,o=""===t;return n===o?0:n&&!o?1:-1},p=function(e,t){var n=function(e){return(e.tags.filter((function(e){return e.startsWith("pack:")}))[0]||"").slice(5)},o=n(e),r=n(t);return d(o,r)||u(o,r)||u(e.displayText,t.displayText)},m=Object.entries(a).map((function(e){var t=(0,c.Z)(e,2),n=t[0],r=t[1],i=r.image_url;return{displayText:n,imageUrl:i?o.server+i:r,tags:i?r.tags.sort((function(e,t){return e>t?1:0})):["utf"],replacement:":".concat(n,": ")}})).sort(p),n("setInstanceOption",{name:"customEmoji",value:m}),t.next=18;break;case 17:throw r;case 18:t.next=24;break;case 20:t.prev=20,t.t0=t.catch(1),console.warn("Can't load custom emojis"),console.warn(t.t0);case 24:case"end":return t.stop()}}),t,null,[[1,20]])})))()},setTheme:function(e,t){var n=e.commit,o=e.rootState;n("setInstanceOption",{name:"theme",value:t}),(0,p.I3)(t).then((function(e){if(n("setInstanceOption",{name:"themeData",value:e}),!o.config.customTheme){var t=e.source;!e.theme||t&&t.themeEngineVersion===m.we?(0,p._v)(t):(0,p._v)(e.theme)}}))},fetchEmoji:function(e){var t=e.dispatch,n=e.state;n.customEmojiFetched||(n.customEmojiFetched=!0,t("getCustomEmoji")),n.emojiFetched||(n.emojiFetched=!0,t("getStaticEmoji"))},getKnownDomains:function(e){return(0,o.Z)(i().mark((function t(){var n,o,r;return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=e.commit,o=e.rootState,t.prev=1,t.next=4,h.ZP.fetchKnownDomains({credentials:o.users.currentUser.credentials});case 4:r=t.sent,n("setKnownDomains",r),t.next=12;break;case 8:t.prev=8,t.t0=t.catch(1),console.warn("Can't load known domains"),console.warn(t.t0);case 12:case"end":return t.stop()}}),t,null,[[1,8]])})))()}}};var C=n(14176),S=n.n(C),j=n(1469),F=n.n(j),A=n(10928),O=n.n(A),E=n(8804),z=n.n(E),P=n(82492),I=n.n(P),x=n(22762),T=n.n(x),$=n(84753),B=n.n($),U=n(13311),M=n.n(U),L=n(30998),R=n.n(L),q=n(66073),N=n.n(q),Z=n(12571),W=n.n(Z),H=n(82729),V=n.n(H),K=n(52230);function G(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Y(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?G(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):G(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var J=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return{statuses:[],statusesObject:{},faves:[],visibleStatuses:[],visibleStatusesObject:{},newStatusCount:0,maxId:0,minId:0,minVisibleId:0,loading:!1,followers:[],friends:[],userId:e,flushMarker:0}},Q=function(){return{desktopNotificationSilence:!0,maxId:0,minId:Number.POSITIVE_INFINITY,data:[],idStore:{},loading:!1}},X=function(){return{allStatuses:[],allStatusesObject:{},conversationsObject:{},maxId:0,notifications:Q(),favorites:new Set,timelines:{mentions:J(),public:J(),user:J(),favorites:J(),media:J(),publicAndExternal:J(),friends:J(),tag:J(),dms:J(),bookmarks:J(),list:J()}}},ee=function(e,t,n){var o=t[n.id];return o?(I()(o,S()(n,(function(e,t){return null===e||"user"===t}))),o.attachments.splice(o.attachments.length),{item:o,new:!1}):(function(e){e.deleted=!1,e.attachments=e.attachments||[]}(n),e.push(n),t[n.id]=n,{item:n,new:!0})},te=function(e,t){var n=Number(e.id),o=Number(t.id),r=!Number.isNaN(n),i=!Number.isNaN(o);return r&&i?n>o?-1:1:r&&!i?1:!r&&i||e.id>t.id?-1:1},ne=function(e){return e.visibleStatuses=e.visibleStatuses.sort(te),e.statuses=e.statuses.sort(te),e.minVisibleId=(O()(e.visibleStatuses)||{}).id,e},oe=function(e,t){var n=ee(e.allStatuses,e.allStatusesObject,t);if(n.new){var o=n.item,r=e.conversationsObject,i=o.statusnet_conversation_id;r[i]?r[i].push(o):r[i]=[o]}return n},re=function(e,t){e.notifications.maxId=t.id>e.notifications.maxId?t.id:e.notifications.maxId,e.notifications.minId=t.id<e.notifications.minId?t.id:e.notifications.minId},ie={addNewStatuses:function(e,t){var n=t.statuses,o=t.showImmediately,r=void 0!==o&&o,i=t.timeline,s=t.user,a=void 0===s?{}:s,u=t.noIdUpdate,c=void 0!==u&&u,l=t.userId,d=t.pagination,p=void 0===d?{}:d;if(!F()(n))return!1;var m=e.allStatuses,h=e.timelines[i],f=p.maxId||(n.length>0?T()(n,"id").id:0),g=p.minId||(n.length>0?B()(n,"id").id:0),v=i&&(g>h.maxId||0===h.maxId)&&n.length>0,w=i&&(f<h.minId||0===h.minId)&&n.length>0;if(!c&&v&&(h.maxId=g),!c&&w&&(h.minId=f),"user"!==i&&"media"!==i||h.userId===l){var b=function t(n,o){var r,s=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],u=oe(e,n),c=u.item;if(u.new){if("status"===c.type&&M()(c.attentions,{id:a.id})){var l=e.timelines.mentions;h!==l&&(ee(l.statuses,l.statusesObject,c),l.newStatusCount+=1,ne(l))}if("direct"===c.visibility){var d=e.timelines.dms;ee(d.statuses,d.statusesObject,c),d.newStatusCount+=1,ne(d)}}return i&&s&&(r=ee(h.statuses,h.statusesObject,c)),i&&o?ee(h.visibleStatuses,h.visibleStatusesObject,c):i&&s&&r.new&&(h.newStatusCount+=1),c.quote&&t(c.quote,!1,!1),c},y={status:function(e){b(e,r)},edit:function(e){b(e,r)},retweet:function(e){var t=b(e.retweeted_status,!1,!1);(i&&M()(h.statuses,(function(e){return e.retweeted_status?e.id===t.id||e.retweeted_status.id===t.id:e.id===t.id}))?b(e,!1,!1):b(e,r)).retweeted_status=t},favorite:function(t){e.favorites.has(t.id)||(e.favorites.add(t.id),function(e,t){var n=M()(m,{id:e.in_reply_to_status_id});n&&(e.user.id===a.id?n.favorited=!0:n.fave_num+=1)}(t))},deletion:function(t){var n=t.uri,o=M()(m,{uri:n});o&&(function(e,t){V()(e.allStatuses,{id:t.id}),V()(e.notifications.data,(function(e){return e.action.id===t.id}));var n=t.statusnet_conversation_id;e.conversationsObject[n]&&V()(e.conversationsObject[n],{id:t.id})}(e,o),i&&(V()(h.statuses,{uri:n}),V()(h.visibleStatuses,{uri:n})))},follow:function(e){},default:function(e){console.log("unknown status type"),console.log(e)}};N()(n,(function(e){var t=e.type;(y[t]||y.default)(e)})),i&&"bookmarks"!==i&&ne(h)}},addNewNotifications:function(e,t){var n=t.dispatch,o=t.notifications,r=(t.older,t.visibleNotificationTypes,t.rootGetters,t.newNotificationSideEffects);N()(o,(function(t){if(!(0,K.nU)(t))return console.error("Invalid notification:",t),void re(e,t);(0,K.Gr)(t.type)&&(t.action=oe(e,t.action).item,t.status=t.status&&oe(e,t.status).item),"pleroma:report"===t.type&&n("addReport",t.report),"pleroma:emoji_reaction"===t.type&&n("fetchEmojiReactionsBy",t.status.id),e.notifications.idStore.hasOwnProperty(t.id)?t.seen&&(e.notifications.idStore[t.id].seen=!0):(re(e,t),e.notifications.data.push(t),e.notifications.idStore[t.id]=t,r(t))}))},removeStatus:function(e,t){var n=t.timeline,o=t.userId,r=e.timelines[n];o&&(V()(r.statuses,{user:{id:o}}),V()(r.visibleStatuses,{user:{id:o}}),r.minVisibleId=r.visibleStatuses.length>0?O()(r.visibleStatuses).id:0,r.maxId=r.statuses.length>0?z()(r.statuses).id:0)},showNewStatuses:function(e,t){var n=t.timeline,o=e.timelines[n];o.newStatusCount=0,o.visibleStatuses=W()(o.statuses,0,50),o.minVisibleId=O()(o.visibleStatuses).id,o.minId=o.minVisibleId,o.visibleStatusesObject={},N()(o.visibleStatuses,(function(e){o.visibleStatusesObject[e.id]=e}))},resetStatuses:function(e){var t=X();Object.entries(t).forEach((function(t){var n=(0,c.Z)(t,2),o=n[0],r=n[1];e[o]=r}))},clearTimeline:function(e,t){var n=t.timeline,o=t.excludeUserId,r=void 0!==o&&o?e.timelines[n].userId:void 0;e.timelines[n]=J(r)},clearNotifications:function(e){e.notifications=Q()},setFavorited:function(e,t){var n=t.status,o=t.value,r=e.allStatusesObject[n.id];r.favorited!==o&&(o?r.fave_num++:r.fave_num--),r.favorited=o},setFavoritedConfirm:function(e,t){var n=t.status,o=t.user,r=e.allStatusesObject[n.id];r.favorited=n.favorited,r.fave_num=n.fave_num;var i=R()(r.favoritedBy,{id:o.id});-1===i||r.favorited?-1===i&&r.favorited&&r.favoritedBy.push(o):r.favoritedBy.splice(i,1)},setMutedStatus:function(e,t){var n=e.allStatusesObject[t.id];n.thread_muted=t.thread_muted,void 0!==n.thread_muted&&e.conversationsObject[n.statusnet_conversation_id].forEach((function(e){e.thread_muted=n.thread_muted}))},setRetweeted:function(e,t){var n=t.status,o=t.value,r=e.allStatusesObject[n.id];r.repeated!==o&&(o?r.repeat_num++:r.repeat_num--),r.repeated=o},setRetweetedConfirm:function(e,t){var n=t.status,o=t.user,r=e.allStatusesObject[n.id];r.repeated=n.repeated,r.repeat_num=n.repeat_num;var i=R()(r.rebloggedBy,{id:o.id});-1===i||r.repeated?-1===i&&r.repeated&&r.rebloggedBy.push(o):r.rebloggedBy.splice(i,1)},setBookmarked:function(e,t){var n=t.status,o=t.value;e.allStatusesObject[n.id].bookmarked=o},setBookmarkedConfirm:function(e,t){var n=t.status;e.allStatusesObject[n.id].bookmarked=n.bookmarked},setDeleted:function(e,t){var n=t.status,o=e.allStatusesObject[n.id];o&&(o.deleted=!0)},setManyDeleted:function(e,t){Object.values(e.allStatusesObject).forEach((function(e){t(e)&&(e.deleted=!0)}))},setLoading:function(e,t){var n=t.timeline,o=t.value;e.timelines[n].loading=o},setNsfw:function(e,t){var n=t.id,o=t.nsfw;e.allStatusesObject[n].nsfw=o},setNotificationsLoading:function(e,t){var n=t.value;e.notifications.loading=n},setNotificationsSilence:function(e,t){var n=t.value;e.notifications.desktopNotificationSilence=n},markNotificationsAsSeen:function(e){N()(e.notifications.data,(function(e){e.seen=!0}))},markSingleNotificationAsSeen:function(e,t){var n=t.id,o=M()(e.notifications.data,(function(e){return e.id===n}));o&&(o.seen=!0)},dismissNotification:function(e,t){var n=t.id;e.notifications.data=e.notifications.data.filter((function(e){return e.id!==n}))},dismissNotifications:function(e,t){var n=t.finder;e.notifications.data=e.notifications.data.filter((function(e){return n}))},updateNotification:function(e,t){var n=t.id,o=t.updater,r=M()(e.notifications.data,(function(e){return e.id===n}));r&&o(r)},queueFlush:function(e,t){var n=t.timeline,o=t.id;e.timelines[n].flushMarker=o},queueFlushAll:function(e){Object.keys(e.timelines).forEach((function(t){e.timelines[t].flushMarker=e.timelines[t].maxId}))},addRepeats:function(e,t){var n=t.id,o=t.rebloggedByUsers,r=t.currentUser,i=e.allStatusesObject[n];i.rebloggedBy=o.filter((function(e){return e})),i.repeat_num=i.rebloggedBy.length,i.repeated=!!i.rebloggedBy.find((function(e){var t=e.id;return r.id===t}))},addFavs:function(e,t){var n=t.id,o=t.favoritedByUsers,r=t.currentUser,i=e.allStatusesObject[n];i.favoritedBy=o.filter((function(e){return e})),i.fave_num=i.favoritedBy.length,i.favorited=!!i.favoritedBy.find((function(e){var t=e.id;return r.id===t}))},addEmojiReactionsBy:function(e,t){var n=t.id,o=t.emojiReactions;t.currentUser,e.allStatusesObject[n].emoji_reactions=o},addOwnReaction:function(e,t){var n=t.id,o=t.emoji,r=t.currentUser,i=e.allStatusesObject[n],s=R()(i.emoji_reactions,{name:o}),a=i.emoji_reactions[s]||{name:o,count:0,accounts:[]},u=Y(Y({},a),{},{count:a.count+1,me:!0,accounts:[].concat((0,l.Z)(a.accounts),[r])});s>=0?i.emoji_reactions[s]=u:i.emoji_reactions=[].concat((0,l.Z)(i.emoji_reactions),[u])},removeOwnReaction:function(e,t){var n=t.id,o=t.emoji,r=t.currentUser,i=e.allStatusesObject[n],s=R()(i.emoji_reactions,{name:o});if(!(s<0)){var a=i.emoji_reactions[s],u=a.accounts||[],c=Y(Y({},a),{},{count:a.count-1,me:!1,accounts:u.filter((function(e){return e.id!==r.id}))});c.count>0?i.emoji_reactions[s]=c:i.emoji_reactions=i.emoji_reactions.filter((function(e){return e.name!==o}))}},updateStatusWithPoll:function(e,t){var n=t.id,o=t.poll;e.allStatusesObject[n].poll=o},setVirtualHeight:function(e,t){var n=t.statusId,o=t.height;e.allStatusesObject[n].virtualHeight=o}},se={state:X(),actions:{addNewStatuses:function(e,t){var n=e.rootState,o=e.commit,r=t.statuses,i=t.showImmediately,s=void 0!==i&&i,a=t.timeline,u=void 0!==a&&a,c=t.noIdUpdate,l=void 0!==c&&c,d=t.userId,p=t.pagination;o("addNewStatuses",{statuses:r,showImmediately:s,timeline:u,noIdUpdate:l,user:n.users.currentUser,userId:d,pagination:p})},addNewNotifications:function(e,t){var n=t.notifications,o=t.older;(0,e.commit)("addNewNotifications",{dispatch:e.dispatch,notifications:n,older:o,rootGetters:e.rootGetters,newNotificationSideEffects:function(t){(0,K.nJ)(e,t)}})},setNotificationsLoading:function(e,t){e.rootState,(0,e.commit)("setNotificationsLoading",{value:t.value})},setNotificationsSilence:function(e,t){e.rootState,(0,e.commit)("setNotificationsSilence",{value:t.value})},fetchStatus:function(e,t){var n=e.rootState,o=e.dispatch;return n.api.backendInteractor.fetchStatus({id:t}).then((function(e){return o("addNewStatuses",{statuses:[e]})}))},fetchStatusSource:function(e,t){var n=e.rootState;return e.dispatch,h.ZP.fetchStatusSource({id:t.id,credentials:n.users.currentUser.credentials})},fetchStatusHistory:function(e,t){return e.rootState,e.dispatch,h.ZP.fetchStatusHistory({status:t})},deleteStatus:function(e,t){var n=e.rootState,o=e.commit,r=e.dispatch;h.ZP.deleteStatus({id:t.id,credentials:n.users.currentUser.credentials}).then((function(e){o("setDeleted",{status:t})})).catch((function(e){r("pushGlobalNotice",{level:"error",messageKey:"status.delete_error",messageArgs:[e.message],timeout:5e3})}))},deleteStatusById:function(e,t){var n=e.rootState;(0,e.commit)("setDeleted",{status:n.statuses.allStatusesObject[t]})},markStatusesAsDeleted:function(e,t){(0,e.commit)("setManyDeleted",t)},favorite:function(e,t){var n=e.rootState,o=e.commit;o("setFavorited",{status:t,value:!0}),n.api.backendInteractor.favorite({id:t.id}).then((function(e){return o("setFavoritedConfirm",{status:e,user:n.users.currentUser})}))},unfavorite:function(e,t){var n=e.rootState,o=e.commit;o("setFavorited",{status:t,value:!1}),n.api.backendInteractor.unfavorite({id:t.id}).then((function(e){return o("setFavoritedConfirm",{status:e,user:n.users.currentUser})}))},fetchPinnedStatuses:function(e,t){var n=e.rootState,o=e.dispatch;n.api.backendInteractor.fetchPinnedStatuses({id:t}).then((function(e){return o("addNewStatuses",{statuses:e,timeline:"user",userId:t,showImmediately:!0,noIdUpdate:!0})}))},pinStatus:function(e,t){var n=e.rootState,o=e.dispatch;return n.api.backendInteractor.pinOwnStatus({id:t}).then((function(e){return o("addNewStatuses",{statuses:[e]})}))},unpinStatus:function(e,t){var n=e.rootState,o=e.dispatch;n.api.backendInteractor.unpinOwnStatus({id:t}).then((function(e){return o("addNewStatuses",{statuses:[e]})}))},muteConversation:function(e,t){var n=e.rootState,o=e.commit;return n.api.backendInteractor.muteConversation({id:t}).then((function(e){return o("setMutedStatus",e)}))},unmuteConversation:function(e,t){var n=e.rootState,o=e.commit;return n.api.backendInteractor.unmuteConversation({id:t}).then((function(e){return o("setMutedStatus",e)}))},retweet:function(e,t){var n=e.rootState,o=e.commit;o("setRetweeted",{status:t,value:!0}),n.api.backendInteractor.retweet({id:t.id}).then((function(e){return o("setRetweetedConfirm",{status:e.retweeted_status,user:n.users.currentUser})}))},unretweet:function(e,t){var n=e.rootState,o=e.commit;o("setRetweeted",{status:t,value:!1}),n.api.backendInteractor.unretweet({id:t.id}).then((function(e){return o("setRetweetedConfirm",{status:e,user:n.users.currentUser})}))},bookmark:function(e,t){var n=e.rootState,o=e.commit;o("setBookmarked",{status:t,value:!0}),n.api.backendInteractor.bookmarkStatus({id:t.id}).then((function(e){o("setBookmarkedConfirm",{status:e})}))},unbookmark:function(e,t){var n=e.rootState,o=e.commit;o("setBookmarked",{status:t,value:!1}),n.api.backendInteractor.unbookmarkStatus({id:t.id}).then((function(e){o("setBookmarkedConfirm",{status:e})}))},queueFlush:function(e,t){e.rootState,(0,e.commit)("queueFlush",{timeline:t.timeline,id:t.id})},queueFlushAll:function(e){e.rootState,(0,e.commit)("queueFlushAll")},markNotificationsAsSeen:function(e){var t=e.rootState;(0,e.commit)("markNotificationsAsSeen"),h.ZP.markNotificationsAsSeen({id:t.statuses.notifications.maxId,credentials:t.users.currentUser.credentials})},markSingleNotificationAsSeen:function(e,t){var n=e.rootState,o=e.commit,r=t.id;o("markSingleNotificationAsSeen",{id:r}),h.ZP.markNotificationsAsSeen({single:!0,id:r,credentials:n.users.currentUser.credentials})},dismissNotificationLocal:function(e,t){e.rootState,(0,e.commit)("dismissNotification",{id:t.id})},dismissNotification:function(e,t){var n=e.rootState,o=e.commit,r=t.id;o("dismissNotification",{id:r}),n.api.backendInteractor.dismissNotification({id:r})},updateNotification:function(e,t){e.rootState,(0,e.commit)("updateNotification",{id:t.id,updater:t.updater})},fetchFavsAndRepeats:function(e,t){var n=e.rootState,o=e.commit;Promise.all([n.api.backendInteractor.fetchFavoritedByUsers({id:t}),n.api.backendInteractor.fetchRebloggedByUsers({id:t})]).then((function(e){var r=(0,c.Z)(e,2),i=r[0],s=r[1];o("addFavs",{id:t,favoritedByUsers:i,currentUser:n.users.currentUser}),o("addRepeats",{id:t,rebloggedByUsers:s,currentUser:n.users.currentUser})}))},reactWithEmoji:function(e,t){var n=e.rootState,o=e.dispatch,r=e.commit,i=t.id,s=t.emoji,a=n.users.currentUser;a&&(r("addOwnReaction",{id:i,emoji:s,currentUser:a}),n.api.backendInteractor.reactWithEmoji({id:i,emoji:s}).then((function(e){o("fetchEmojiReactionsBy",i)})))},unreactWithEmoji:function(e,t){var n=e.rootState,o=e.dispatch,r=e.commit,i=t.id,s=t.emoji,a=n.users.currentUser;a&&(r("removeOwnReaction",{id:i,emoji:s,currentUser:a}),n.api.backendInteractor.unreactWithEmoji({id:i,emoji:s}).then((function(e){o("fetchEmojiReactionsBy",i)})))},fetchEmojiReactionsBy:function(e,t){var n=e.rootState,o=e.commit;return n.api.backendInteractor.fetchEmojiReactions({id:t}).then((function(e){o("addEmojiReactionsBy",{id:t,emojiReactions:e,currentUser:n.users.currentUser})}))},fetchFavs:function(e,t){var n=e.rootState,o=e.commit;n.api.backendInteractor.fetchFavoritedByUsers({id:t}).then((function(e){return o("addFavs",{id:t,favoritedByUsers:e,currentUser:n.users.currentUser})}))},fetchRepeats:function(e,t){var n=e.rootState,o=e.commit;n.api.backendInteractor.fetchRebloggedByUsers({id:t}).then((function(e){return o("addRepeats",{id:t,rebloggedByUsers:e,currentUser:n.users.currentUser})}))},search:function(e,t){var n=t.q,o=t.resolve,r=t.limit,i=t.offset,s=t.following,a=t.type;return e.rootState.api.backendInteractor.search2({q:n,resolve:o,limit:r,offset:i,following:s,type:a}).then((function(t){return e.commit("addNewUsers",t.accounts),e.commit("addNewUsers",t.statuses.map((function(e){return e.user})).filter((function(e){return e}))),e.commit("addNewStatuses",{statuses:t.statuses}),t}))},setVirtualHeight:function(e,t){(0,e.commit)("setVirtualHeight",{statusId:t.statusId,height:t.height})}},mutations:ie};const ae=se;var ue={setLists:function(e,t){e.allLists=t},setList:function(e,t){var n=t.listId,o=t.title;e.allListsObject[n]||(e.allListsObject[n]={accountIds:[]}),e.allListsObject[n].title=o;var r=M()(e.allLists,{id:n});r?r.title=o:e.allLists.push({id:n,title:o})},setListAccounts:function(e,t){var n=t.listId,o=t.accountIds;e.allListsObject[n]||(e.allListsObject[n]={accountIds:[]}),e.allListsObject[n].accountIds=o},addListAccount:function(e,t){var n=t.listId,o=t.accountId;e.allListsObject[n]||(e.allListsObject[n]={accountIds:[]}),e.allListsObject[n].accountIds.push(o)},removeListAccount:function(e,t){var n=t.listId,o=t.accountId;e.allListsObject[n]||(e.allListsObject[n]={accountIds:[]});var r=e.allListsObject[n].accountIds,i=new Set(r);i.delete(o),e.allListsObject[n].accountIds=(0,l.Z)(i)},deleteList:function(e,t){var n=t.listId;delete e.allListsObject[n],V()(e.allLists,(function(e){return e.id===n}))}},ce={state:{allLists:[],allListsObject:{}},mutations:ue,actions:{setLists:function(e,t){(0,e.commit)("setLists",t)},createList:function(e,t){var n=e.rootState,o=e.commit,r=t.title;return n.api.backendInteractor.createList({title:r}).then((function(e){return o("setList",{listId:e.id,title:r}),e}))},fetchList:function(e,t){var n=e.rootState,o=e.commit,r=t.listId;return n.api.backendInteractor.getList({listId:r}).then((function(e){return o("setList",{listId:e.id,title:e.title})}))},fetchListAccounts:function(e,t){var n=e.rootState,o=e.commit,r=t.listId;return n.api.backendInteractor.getListAccounts({listId:r}).then((function(e){return o("setListAccounts",{listId:r,accountIds:e})}))},setList:function(e,t){var n=e.rootState,o=e.commit,r=t.listId,i=t.title;n.api.backendInteractor.updateList({listId:r,title:i}),o("setList",{listId:r,title:i})},setListAccounts:function(e,t){var n=e.rootState,o=e.commit,r=t.listId,i=t.accountIds,s=n.lists.allListsObject[r].accountIds||[],a=i.filter((function(e){return!s.includes(e)})),u=s.filter((function(e){return!i.includes(e)}));o("setListAccounts",{listId:r,accountIds:i}),a.length>0&&n.api.backendInteractor.addAccountsToList({listId:r,accountIds:a}),u.length>0&&n.api.backendInteractor.removeAccountsFromList({listId:r,accountIds:u})},addListAccount:function(e,t){var n=e.rootState,o=e.commit,r=t.listId,i=t.accountId;return n.api.backendInteractor.addAccountsToList({listId:r,accountIds:[i]}).then((function(e){return o("addListAccount",{listId:r,accountId:i}),e}))},removeListAccount:function(e,t){var n=e.rootState,o=e.commit,r=t.listId,i=t.accountId;return n.api.backendInteractor.removeAccountsFromList({listId:r,accountIds:[i]}).then((function(e){return o("removeListAccount",{listId:r,accountId:i}),e}))},deleteList:function(e,t){var n=e.rootState,o=e.commit,r=t.listId;n.api.backendInteractor.deleteList({listId:r}),o("deleteList",{listId:r})}},getters:{findListTitle:function(e){return function(t){if(e.allListsObject[t])return e.allListsObject[t].title}},findListAccounts:function(e){return function(t){return(0,l.Z)(e.allListsObject[t].accountIds)}}}};const le=ce;var de=n(71002),pe=n(44908),me=n.n(pe),he=n(57043),fe=n.n(he),ge=n(30236),ve=n.n(ge),we=n(35161),be=n.n(we),ye=n(39693),De=n.n(ye),_e=n(68929),ke=n.n(_e),Ce=n(22626),Se=function(e){var t=e.store,n=e.credentials,o=e.timeline,r=void 0===o?"friends":o,i=e.older,s=void 0!==i&&i,a=e.showImmediately,u=void 0!==a&&a,c=e.userId,l=void 0!==c&&c,d=e.listId,p=void 0!==d&&d,m=e.tag,f=void 0!==m&&m,g=e.until,v=e.since,w={timeline:r,credentials:n},b=t.rootState||t.state,y=t.getters,D=b.statuses.timelines[ke()(r)],_=y.mergedConfig,k=_.hideMutedPosts,C=_.replyVisibility,S=!!b.users.currentUser;s?w.until=g||D.minId:void 0===v?w.since=D.maxId:null!==v&&(w.since=v),w.userId=l,w.listId=p,w.tag=f,w.withMuted=!k,S&&["friends","public","publicAndExternal"].includes(r)&&(w.replyVisibility=C);var j=D.statuses.length;return h.ZP.fetchTimeline(w).then((function(e){if(e.errors)throw new Error("".concat(e.status," ").concat(e.statusText));var n=e.data,o=e.pagination;return!s&&n.length>=20&&!D.loading&&j>0&&t.dispatch("queueFlush",{timeline:r,id:D.maxId}),function(e){var t=e.store,n=e.statuses,o=e.timeline,r=e.showImmediately,i=e.userId,s=e.listId,a=e.pagination,u=ke()(o);t.dispatch("addNewStatuses",{timeline:u,userId:i,listId:s,statuses:n,showImmediately:r,pagination:a})}({store:t,statuses:n,timeline:r,showImmediately:u,userId:l,listId:p,pagination:o}),{statuses:n,pagination:o}})).catch((function(e){t.dispatch("pushGlobalNotice",{level:"error",messageKey:"timeline.error",messageArgs:[e.message],timeout:5e3})}))},je={fetchAndUpdate:Se,startFetching:function(e){var t=e.timeline,n=void 0===t?"friends":t,o=e.credentials,r=e.store,i=e.userId,s=void 0!==i&&i,a=e.listId,u=void 0!==a&&a,c=e.tag,l=void 0!==c&&c,d=(r.rootState||r.state).statuses.timelines[ke()(n)],p=0===d.visibleStatuses.length;return d.userId=s,d.listId=u,Se({timeline:n,credentials:o,store:r,showImmediately:p,userId:s,listId:u,tag:l}),(0,Ce.F)((function(){return Se({timeline:n,credentials:o,store:r,userId:s,listId:u,tag:l})}),1e4)}};const Fe=je;var Ae=n(15568);const Oe=function(e){var t=e.credentials,n=e.store,o=function(){return function(e){var t=e.store,n=e.credentials;return h.ZP.fetchFollowRequests({credentials:n}).then((function(e){t.commit("setFollowRequests",e),t.commit("addNewUsers",e)}),(function(){})).catch((function(){}))}({credentials:t,store:n})};return o(),(0,Ce.F)(o,1e4)};var Ee={startFetching:function(e){var t=e.credentials,n=e.store,o=function(){return function(e){var t=e.store,n=e.credentials;return h.ZP.fetchLists({credentials:n}).then((function(e){t.commit("setLists",e)}),(function(){})).catch((function(){}))}({credentials:t,store:n})};return o(),(0,Ce.F)(o,24e4)}};const ze=Ee;function Pe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Ie(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Pe(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Pe(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}const xe=function(e){return Ie(Ie({startFetchingTimeline:function(t){var n=t.timeline,o=t.store,r=t.userId,i=void 0!==r&&r,s=t.listId,a=void 0!==s&&s,u=t.tag;return Fe.startFetching({timeline:n,store:o,credentials:e,userId:i,listId:a,tag:u})},fetchTimeline:function(t){return Fe.fetchAndUpdate(Ie(Ie({},t),{},{credentials:e}))},startFetchingNotifications:function(t){var n=t.store;return Ae.Z.startFetching({store:n,credentials:e})},fetchNotifications:function(t){return Ae.Z.fetchAndUpdate(Ie(Ie({},t),{},{credentials:e}))},startFetchingFollowRequests:function(t){var n=t.store;return Oe({store:n,credentials:e})},startFetchingLists:function(t){var n=t.store;return ze.startFetching({store:n,credentials:e})},startUserSocket:function(t){var n=t.store.rootState.instance.server.replace("http","ws")+(0,h.pR)({credentials:e,stream:"user"});return(0,h.ro)({url:n,id:"User"})}},Object.entries(h.ZP).reduce((function(t,n){var o=(0,c.Z)(n,2),r=o[0],i=o[1];return Ie(Ie({},t),{},(0,d.Z)({},r,(function(t){return i(Ie({credentials:e},t))})))}),{})),{},{verifyCredentials:h.ZP.verifyCredentials})};var Te=function(){return window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth},$e=function(){return window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight},Be=n(54061),Ue=n.n(Be),Me="".concat(window.location.origin,"/oauth-callback"),Le=function(e){var t=e.clientId,n=e.clientSecret,o=e.instance,r=e.commit;if(t&&n)return Promise.resolve({clientId:t,clientSecret:n});var i="".concat(o,"/api/v1/apps"),s=new window.FormData;return s.append("client_name","PleromaFE_".concat(window.___pleromafe_commit_hash,"_").concat((new Date).toISOString())),s.append("redirect_uris",Me),s.append("scopes","read write follow push admin"),window.fetch(i,{method:"POST",body:s}).then((function(e){return e.json()})).then((function(e){return{clientId:e.client_id,clientSecret:e.client_secret}})).then((function(e){return r("setClientData",e)||e}))},Re=function(e){var t=e.clientId,n=e.clientSecret,o=e.instance,r="".concat(o,"/oauth/token"),i=new window.FormData;return i.append("client_id",t),i.append("client_secret",n),i.append("grant_type","client_credentials"),i.append("redirect_uri","".concat(window.location.origin,"/oauth-callback")),window.fetch(r,{method:"POST",body:i}).then((function(e){return e.json()}))},qe={login:function(e){var t=e.instance,n={response_type:"code",client_id:e.clientId,redirect_uri:Me,scope:"read write follow push admin"},o=Ue()(n,(function(e,t,n){var o="".concat(n,"=").concat(encodeURIComponent(t));return e?"".concat(e,"&").concat(o):o}),!1),r="".concat(t,"/oauth/authorize?").concat(o);window.location.href=r},getToken:function(e){var t=e.clientId,n=e.clientSecret,o=e.instance,r=e.code,i="".concat(o,"/oauth/token"),s=new window.FormData;return s.append("client_id",t),s.append("client_secret",n),s.append("grant_type","authorization_code"),s.append("code",r),s.append("redirect_uri","".concat(window.location.origin,"/oauth-callback")),window.fetch(i,{method:"POST",body:s}).then((function(e){return e.json()}))},getTokenWithCredentials:function(e){var t=e.clientId,n=e.clientSecret,o=e.instance,r=e.username,i=e.password,s="".concat(o,"/oauth/token"),a=new window.FormData;return a.append("client_id",t),a.append("client_secret",n),a.append("grant_type","password"),a.append("username",r),a.append("password",i),window.fetch(s,{method:"POST",body:a}).then((function(e){return e.json()}))},getOrCreateApp:Le,verifyOTPCode:function(e){var t=e.app,n=e.instance,o=e.mfaToken,r=e.code,i="".concat(n,"/oauth/mfa/challenge"),s=new window.FormData;return s.append("client_id",t.client_id),s.append("client_secret",t.client_secret),s.append("mfa_token",o),s.append("code",r),s.append("challenge_type","totp"),window.fetch(i,{method:"POST",body:s}).then((function(e){return e.json()}))},verifyRecoveryCode:function(e){var t=e.app,n=e.instance,o=e.mfaToken,r=e.code,i="".concat(n,"/oauth/mfa/challenge"),s=new window.FormData;return s.append("client_id",t.client_id),s.append("client_secret",t.client_secret),s.append("mfa_token",o),s.append("code",r),s.append("challenge_type","recovery"),window.fetch(i,{method:"POST",body:s}).then((function(e){return e.json()}))},revokeToken:function(e){var t=e.app,n=e.instance,o=e.token,r="".concat(n,"/oauth/revoke"),i=new window.FormData;return i.append("client_id",t.clientId),i.append("client_secret",t.clientSecret),i.append("token",o),window.fetch(r,{method:"POST",body:i}).then((function(e){return e.json()}))}};const Ne=qe;var Ze=n(56012),We=n.n(Ze);function He(){return"serviceWorker"in navigator&&"PushManager"in window}function Ve(){return We().register().catch((function(e){return console.error("Unable to get or create a service worker.",e)}))}function Ke(e){return window.fetch("/api/v1/push/subscription/",{method:"DELETE",headers:{"Content-Type":"application/json",Authorization:"Bearer ".concat(e)}}).then((function(e){if(!e.ok)throw new Error("Bad status code from server.");return e}))}function Ge(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Ye(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ge(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ge(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Je=function e(t,n){if(F()(t)&&F()(n))return t.length=n.length,ve()(t,n,e)},Qe=function(e,t){return e.rootState.api.backendInteractor.blockUser({id:t}).then((function(n){e.commit("updateUserRelationship",[n]),e.commit("addBlockId",t),e.commit("removeStatus",{timeline:"friends",userId:t}),e.commit("removeStatus",{timeline:"public",userId:t}),e.commit("removeStatus",{timeline:"publicAndExternal",userId:t})}))},Xe=function(e,t){return e.rootState.api.backendInteractor.unblockUser({id:t}).then((function(t){return e.commit("updateUserRelationship",[t])}))},et=function(e,t){var n="object"===(0,de.Z)(t)?t.id:t,o="object"===(0,de.Z)(t)?t.expiresIn:0,r=e.state.relationships[n]||{id:n};return r.muting=!0,e.commit("updateUserRelationship",[r]),e.commit("addMuteId",n),e.rootState.api.backendInteractor.muteUser({id:n,expiresIn:o}).then((function(t){e.commit("updateUserRelationship",[t]),e.commit("addMuteId",n)}))},tt=function(e,t){var n=e.state.relationships[t]||{id:t};return n.muting=!1,e.commit("updateUserRelationship",[n]),e.rootState.api.backendInteractor.unmuteUser({id:t}).then((function(t){return e.commit("updateUserRelationship",[t])}))},nt=function(e,t){return e.rootState.api.backendInteractor.muteDomain({domain:t}).then((function(){return e.commit("addDomainMute",t)}))},ot=function(e,t){return e.rootState.api.backendInteractor.unmuteDomain({domain:t}).then((function(){return e.commit("removeDomainMute",t)}))},rt={tagUser:function(e,t){var n=t.user.id,o=t.tag,r=e.usersObject[n],i=(r.tags||[]).concat([o]);r.tags=i},untagUser:function(e,t){var n=t.user.id,o=t.tag,r=e.usersObject[n],i=(r.tags||[]).filter((function(e){return e!==o}));r.tags=i},updateRight:function(e,t){var n=t.user.id,o=t.right,r=t.value,i=e.usersObject[n],s=i.rights;s[o]=r,i.rights=s},updateActivationStatus:function(e,t){var n=t.user.id,o=t.deactivated;e.usersObject[n].deactivated=o},setCurrentUser:function(e,t){e.lastLoginName=t.screen_name,e.currentUser=ve()(e.currentUser||{},t,Je)},clearCurrentUser:function(e){e.currentUser=!1,e.lastLoginName=!1},beginLogin:function(e){e.loggingIn=!0},endLogin:function(e){e.loggingIn=!1},saveFriendIds:function(e,t){var n=t.id,o=t.friendIds,r=e.usersObject[n];r.friendIds=me()(fe()(r.friendIds||[],o))},saveFollowerIds:function(e,t){var n=t.id,o=t.followerIds,r=e.usersObject[n];r.followerIds=me()(fe()(r.followerIds||[],o))},clearFriends:function(e,t){var n=e.usersObject[t];n&&(n.friendIds=[])},clearFollowers:function(e,t){var n=e.usersObject[t];n&&(n.followerIds=[])},addNewUsers:function(e,t){N()(t,(function(t){t.relationship&&(e.relationships[t.relationship.id]=t.relationship);var n=function(e,t,n){if(!n)return!1;var o=t[n.id];return o?(ve()(o,n,Je),{item:o,new:!1}):(e.push(n),t[n.id]=n,{item:n,new:!0})}(e.users,e.usersObject,t),o=n.item;n.new&&o.screen_name&&!o.screen_name.includes("@")&&(e.usersByNameObject[o.screen_name.toLowerCase()]=o)}))},updateUserRelationship:function(e,t){t.forEach((function(t){e.relationships[t.id]=t}))},updateUserInLists:function(e,t){var n=t.id,o=t.inLists;e.usersObject[n].inLists=o},saveBlockIds:function(e,t){e.currentUser.blockIds=t},addBlockId:function(e,t){-1===e.currentUser.blockIds.indexOf(t)&&e.currentUser.blockIds.push(t)},setBlockIdsMaxId:function(e,t){e.currentUser.blockIdsMaxId=t},saveMuteIds:function(e,t){e.currentUser.muteIds=t},setMuteIdsMaxId:function(e,t){e.currentUser.muteIdsMaxId=t},addMuteId:function(e,t){-1===e.currentUser.muteIds.indexOf(t)&&e.currentUser.muteIds.push(t)},saveDomainMutes:function(e,t){e.currentUser.domainMutes=t},addDomainMute:function(e,t){-1===e.currentUser.domainMutes.indexOf(t)&&e.currentUser.domainMutes.push(t)},removeDomainMute:function(e,t){var n=e.currentUser.domainMutes.indexOf(t);-1!==n&&e.currentUser.domainMutes.splice(n,1)},setPinnedToUser:function(e,t){var n=e.usersObject[t.user.id];n.pinnedStatusIds=n.pinnedStatusIds||[];var o=n.pinnedStatusIds.indexOf(t.id);t.pinned&&-1===o?n.pinnedStatusIds.push(t.id):t.pinned||-1===o||n.pinnedStatusIds.splice(o,1)},setUserForStatus:function(e,t){t.user=e.usersObject[t.user.id]},setUserForNotification:function(e,t){"follow"!==t.type&&(t.action.user=e.usersObject[t.action.user.id]),t.from_profile=e.usersObject[t.from_profile.id]},setColor:function(e,t){var n=t.user.id,o=t.highlighted;e.usersObject[n].highlight=o},signUpPending:function(e){e.signUpPending=!0,e.signUpErrors=[]},signUpSuccess:function(e){e.signUpPending=!1},signUpFailure:function(e,t){e.signUpPending=!1,e.signUpErrors=t}},it={state:{loggingIn:!1,lastLoginName:!1,currentUser:!1,users:[],usersObject:{},usersByNameObject:{},signUpPending:!1,signUpErrors:[],relationships:{}},mutations:rt,getters:{findUser:function(e){return function(t){return e.usersObject[t]}},findUserByName:function(e){return function(t){return e.usersByNameObject[t.toLowerCase()]}},findUserByUrl:function(e){return function(t){return e.users.find((function(e){return e.statusnet_profile_url&&e.statusnet_profile_url.toLowerCase()===t.toLowerCase()}))}},relationship:function(e){return function(t){return t&&e.relationships[t]||{id:t,loading:!0}}}},actions:{fetchUserIfMissing:function(e,t){e.getters.findUser(t)||e.dispatch("fetchUser",t)},fetchUser:function(e,t){return e.rootState.api.backendInteractor.fetchUser({id:t}).then((function(t){return e.commit("addNewUsers",[t]),t}))},fetchUserByName:function(e,t){return e.rootState.api.backendInteractor.fetchUserByName({name:t}).then((function(t){return e.commit("addNewUsers",[t]),t}))},fetchUserRelationship:function(e,t){e.state.currentUser&&e.rootState.api.backendInteractor.fetchUserRelationship({id:t}).then((function(t){return e.commit("updateUserRelationship",t)}))},fetchUserInLists:function(e,t){e.state.currentUser&&e.rootState.api.backendInteractor.fetchUserInLists({id:t}).then((function(n){return e.commit("updateUserInLists",{id:t,inLists:n})}))},fetchBlocks:function(e,t){var n=(t||{}).reset,o=e.state.currentUser.blockIdsMaxId;return e.rootState.api.backendInteractor.fetchBlocks({maxId:o}).then((function(t){return n?e.commit("saveBlockIds",be()(t,"id")):be()(t,"id").map((function(t){return e.commit("addBlockId",t)})),t.length&&e.commit("setBlockIdsMaxId",O()(t).id),e.commit("addNewUsers",t),t}))},blockUser:function(e,t){return Qe(e,t)},unblockUser:function(e,t){return Xe(e,t)},removeUserFromFollowers:function(e,t){return function(e,t){return e.rootState.api.backendInteractor.removeUserFromFollowers({id:t}).then((function(t){return e.commit("updateUserRelationship",[t])}))}(e,t)},blockUsers:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Promise.all(t.map((function(t){return Qe(e,t)})))},unblockUsers:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Promise.all(t.map((function(t){return Xe(e,t)})))},editUserNote:function(e,t){return function(e,t){var n=t.id,o=t.comment;return e.rootState.api.backendInteractor.editUserNote({id:n,comment:o}).then((function(t){return e.commit("updateUserRelationship",[t])}))}(e,t)},fetchMutes:function(e,t){var n=(t||{}).reset,o=e.state.currentUser.muteIdsMaxId;return e.rootState.api.backendInteractor.fetchMutes({maxId:o}).then((function(t){return n?e.commit("saveMuteIds",be()(t,"id")):be()(t,"id").map((function(t){return e.commit("addMuteId",t)})),t.length&&e.commit("setMuteIdsMaxId",O()(t).id),e.commit("addNewUsers",t),t}))},muteUser:function(e,t){return et(e,t)},unmuteUser:function(e,t){return tt(e,t)},hideReblogs:function(e,t){return function(e,t){return e.rootState.api.backendInteractor.followUser({id:t,reblogs:!1}).then((function(t){e.commit("updateUserRelationship",[t])}))}(e,t)},showReblogs:function(e,t){return function(e,t){return e.rootState.api.backendInteractor.followUser({id:t,reblogs:!0}).then((function(t){return e.commit("updateUserRelationship",[t])}))}(e,t)},muteUsers:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Promise.all(t.map((function(t){return et(e,t)})))},unmuteUsers:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Promise.all(t.map((function(t){return tt(e,t)})))},fetchDomainMutes:function(e){return e.rootState.api.backendInteractor.fetchDomainMutes().then((function(t){return e.commit("saveDomainMutes",t),t}))},muteDomain:function(e,t){return nt(e,t)},unmuteDomain:function(e,t){return ot(e,t)},muteDomains:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Promise.all(t.map((function(t){return nt(e,t)})))},unmuteDomains:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Promise.all(t.map((function(t){return ot(e,t)})))},fetchFriends:function(e,t){var n=e.rootState,o=e.commit,r=n.users.usersObject[t],i=O()(r.friendIds);return n.api.backendInteractor.fetchFriends({id:t,maxId:i}).then((function(e){return o("addNewUsers",e),o("saveFriendIds",{id:t,friendIds:be()(e,"id")}),e}))},fetchFollowers:function(e,t){var n=e.rootState,o=e.commit,r=n.users.usersObject[t],i=O()(r.followerIds);return n.api.backendInteractor.fetchFollowers({id:t,maxId:i}).then((function(e){return o("addNewUsers",e),o("saveFollowerIds",{id:t,followerIds:be()(e,"id")}),e}))},clearFriends:function(e,t){(0,e.commit)("clearFriends",t)},clearFollowers:function(e,t){(0,e.commit)("clearFollowers",t)},subscribeUser:function(e,t){var n=e.rootState,o=e.commit;return n.api.backendInteractor.subscribeUser({id:t}).then((function(e){return o("updateUserRelationship",[e])}))},unsubscribeUser:function(e,t){var n=e.rootState,o=e.commit;return n.api.backendInteractor.unsubscribeUser({id:t}).then((function(e){return o("updateUserRelationship",[e])}))},toggleActivationStatus:function(e,t){var n=e.rootState,o=e.commit,r=t.user;(r.deactivated?n.api.backendInteractor.activateUser:n.api.backendInteractor.deactivateUser)({user:r}).then((function(e){var t=!e.is_active;o("updateActivationStatus",{user:e,deactivated:t})}))},registerPushNotifications:function(e){var t=e.state.currentUser.credentials,n=e.rootState.instance.vapidPublicKey;!function(e,t,n,o){He()&&Ve().then((function(n){return function(e,t,n){if(!t)return Promise.reject(new Error("Web Push is disabled in config"));if(!n)return Promise.reject(new Error("VAPID public key is not found"));var o,r,i,s={userVisibleOnly:!0,applicationServerKey:(o=n,r=(o+"=".repeat((4-o.length%4)%4)).replace(/-/g,"+").replace(/_/g,"/"),i=window.atob(r),Uint8Array.from((0,l.Z)(i).map((function(e){return e.charCodeAt(0)}))))};return e.pushManager.subscribe(s)}(n,e,t)})).then((function(e){return function(e,t,n){return window.fetch("/api/v1/push/subscription/",{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer ".concat(t)},body:JSON.stringify({subscription:e,data:{alerts:{follow:n.follows,favourite:n.likes,mention:n.mentions,reblog:n.repeats,move:n.moves}}})}).then((function(e){if(!e.ok)throw new Error("Bad status code from server.");return e.json()})).then((function(e){if(!e.id)throw new Error("Bad response from server.");return e}))}(e,n,o)})).catch((function(e){return console.warn("Failed to setup Web Push Notifications: ".concat(e.message))}))}(e.rootState.config.webPushNotifications,n,t,e.rootState.config.notificationVisibility)},unregisterPushNotifications:function(e){var t;t=e.state.currentUser.credentials,He()&&Promise.all([Ke(t),Ve().then((function(e){return function(e){return e.pushManager.getSubscription().then((function(e){if(null!==e)return e.unsubscribe()}))}(e).then((function(t){return[e,t]}))})).then((function(e){var t=(0,c.Z)(e,2),n=t[0];return t[1]||console.warn("Push subscription cancellation wasn't successful, killing SW anyway..."),n.unregister().then((function(e){e||console.warn("Failed to kill SW")}))}))]).catch((function(e){return console.warn("Failed to disable Web Push Notifications: ".concat(e.message))}))},addNewUsers:function(e,t){(0,e.commit)("addNewUsers",t)},addNewStatuses:function(e,t){var n=t.statuses,o=be()(n,"user"),r=De()(be()(n,"retweeted_status.user"));e.commit("addNewUsers",o),e.commit("addNewUsers",r),N()(n,(function(t){e.commit("setUserForStatus",t),e.commit("setPinnedToUser",t)})),N()(De()(be()(n,"retweeted_status")),(function(t){e.commit("setUserForStatus",t),e.commit("setPinnedToUser",t)}))},addNewNotifications:function(e,t){var n=t.notifications,o=be()(n,"from_profile"),r=be()(n,"target").filter((function(e){return e})),i=n.map((function(e){return e.id}));e.commit("addNewUsers",o),e.commit("addNewUsers",r);var s=e.rootState.statuses.notifications.idStore,a=Object.entries(s).filter((function(e){var t=(0,c.Z)(e,2),n=t[0];return t[1],i.includes(n)})).map((function(e){var t=(0,c.Z)(e,2);return t[0],t[1]}));N()(a,(function(t){e.commit("setUserForNotification",t)}))},searchUsers:function(e,t){var n=e.rootState,o=e.commit,r=t.query;return n.api.backendInteractor.searchUsers({query:r}).then((function(e){return o("addNewUsers",e),e}))},signUp:function(e,t){return(0,o.Z)(i().mark((function n(){var o,r,s;return i().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return e.commit("signUpPending"),o=e.rootState,n.prev=2,n.next=5,o.api.backendInteractor.register({params:Ye({},t)});case 5:r=n.sent,e.commit("signUpSuccess"),e.commit("setToken",r.access_token),e.dispatch("loginUser",r.access_token),n.next=16;break;case 11:throw n.prev=11,n.t0=n.catch(2),s=n.t0.message,e.commit("signUpFailure",s),n.t0;case 16:case"end":return n.stop()}}),n,null,[[2,11]])})))()},getCaptcha:function(e){return(0,o.Z)(i().mark((function t(){return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",e.rootState.api.backendInteractor.getCaptcha());case 1:case"end":return t.stop()}}),t)})))()},logout:function(e){var t=e.rootState,n=t.oauth,o=t.instance,r=Ye(Ye({},n),{},{commit:e.commit,instance:o.server});return Ne.getOrCreateApp(r).then((function(e){var t={app:e,instance:r.instance,token:n.userToken};return Ne.revokeToken(t)})).then((function(){e.commit("clearCurrentUser"),e.dispatch("disconnectFromSocket"),e.commit("clearToken"),e.dispatch("stopFetchingTimeline","friends"),e.commit("setBackendInteractor",xe(e.getters.getToken())),e.dispatch("stopFetchingNotifications"),e.dispatch("stopFetchingLists"),e.dispatch("stopFetchingFollowRequests"),e.commit("clearNotifications"),e.commit("resetStatuses"),e.dispatch("resetChats"),e.dispatch("setLastTimeline","public-timeline"),e.dispatch("setLayoutWidth",Te()),e.dispatch("setLayoutHeight",$e()),e.commit("clearServerSideStorage")}))},loginUser:function(e,t){return new Promise((function(n,o){var r=e.commit,i=e.dispatch;r("beginLogin"),e.rootState.api.backendInteractor.verifyCredentials(t).then((function(s){if(s.error){var a=s.error;r("endLogin"),[400,401,403,422].includes(a.status)&&r("clearToken"),401===a.status?o(new Error("Wrong username or password")):o(new Error("An error occurred, please try again"))}else{var u=s;u.credentials=t,u.blockIds=[],u.muteIds=[],u.domainMutes=[],r("setCurrentUser",u),r("setServerSideStorage",u),r("addNewUsers",[u]),i("fetchEmoji"),(c=window.Notification,c?"default"===c.permission?c.requestPermission():Promise.resolve(c.permission):Promise.resolve(null)).then((function(e){return r("setNotificationPermission",e)})),r("setBackendInteractor",xe(t)),i("pushServerSideStorage"),u.token&&(i("setWsToken",u.token),i("initializeSocket")),i("startFetchingLists"),u.locked&&i("startFetchingFollowRequests"),e.getters.mergedConfig.useStreamingApi?(i("fetchTimeline",{timeline:"friends",since:null}),i("fetchNotifications",{since:null}),i("enableMastoSockets",!0).catch((function(e){console.error("Failed initializing MastoAPI Streaming socket",e)})).then((function(){i("fetchChats",{latest:!0}),setTimeout((function(){return i("setNotificationsSilence",!1)}),1e4)}))):(i("startFetchingTimeline",{timeline:"friends"}),i("startFetchingNotifications"),i("startFetchingChats")),i("fetchMutes"),i("setLayoutWidth",Te()),i("setLayoutHeight",$e()),e.rootState.api.backendInteractor.fetchFriends({id:u.id}).then((function(e){return r("addNewUsers",e)}))}var c;r("endLogin"),n()})).catch((function(e){console.log(e),r("endLogin"),o(new Error("Failed to connect to server, try again"))}))}))}}};const st=it;var at=n(36459),ut=n(87462),ct=n(44925),lt=n(64689),dt=function(e,t){if(t.lastMessage&&(e.rootState.chats.currentChatId!==t.id||document.hidden)&&e.rootState.users.currentUser.id!==t.lastMessage.account_id){var n={tag:t.lastMessage.id,title:t.account.name,icon:t.account.profile_image_url,body:t.lastMessage.content};t.lastMessage.attachment&&"image"===t.lastMessage.attachment.type&&(n.image=t.lastMessage.attachment.preview_url),(0,lt.w)(e.rootState,n)}},pt=n(61796),mt=["timeline"];function ht(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function ft(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ht(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ht(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var gt={state:{retryMultiplier:1,backendInteractor:xe(),fetchers:{},socket:null,mastoUserSocket:null,mastoUserSocketStatus:null,followRequests:[]},getters:{followRequestCount:function(e){return e.followRequests.length}},mutations:{setBackendInteractor:function(e,t){e.backendInteractor=t},addFetcher:function(e,t){var n=t.fetcherName,o=t.fetcher;e.fetchers[n]=o},removeFetcher:function(e,t){var n=t.fetcherName;t.fetcher,e.fetchers[n].stop(),delete e.fetchers[n]},setWsToken:function(e,t){e.wsToken=t},setSocket:function(e,t){e.socket=t},setFollowRequests:function(e,t){e.followRequests=t},setMastoUserSocketStatus:function(e,t){e.mastoUserSocketStatus=t},incrementRetryMultiplier:function(e){e.retryMultiplier=Math.max(++e.retryMultiplier,3)},resetRetryMultiplier:function(e){e.retryMultiplier=1}},actions:{enableMastoSockets:function(e,t){var n=e.state,o=e.dispatch,r=e.commit;if(!n.mastoUserSocket||[WebSocket.CLOSED,WebSocket.CLOSING].includes(n.mastoUserSocket.getState()))return r("setMastoUserSocketStatus",t?h._z.STARTING_INITIAL:h._z.STARTING),o("startMastoUserSocket")},disableMastoSockets:function(e){var t=e.state,n=e.dispatch,o=e.commit;if(t.mastoUserSocket)return o("setMastoUserSocketStatus",h._z.DISABLED),n("stopMastoUserSocket")},startMastoUserSocket:function(e){return new Promise((function(t,n){try{var o=e.state,r=e.commit,i=e.dispatch,s=e.rootState.statuses.timelines.friends;o.mastoUserSocket=o.backendInteractor.startUserSocket({store:e}),o.mastoUserSocket.addEventListener("message",(function(t){var n=t.detail;n&&("notification"===n.event?i("addNewNotifications",{notifications:[n.notification],older:!1}):"update"===n.event?i("addNewStatuses",{statuses:[n.status],userId:!1,showImmediately:0===s.visibleStatuses.length,timeline:"friends"}):"status.update"===n.event?i("addNewStatuses",{statuses:[n.status],userId:!1,showImmediately:n.status.id in s.visibleStatusesObject,timeline:"friends"}):"delete"===n.event?i("deleteStatusById",n.id):"pleroma:chat_update"===n.event&&setTimeout((function(){i("addChatMessages",{chatId:n.chatUpdate.id,messages:[n.chatUpdate.lastMessage]}),i("updateChat",{chat:n.chatUpdate}),dt(e,n.chatUpdate)}),100))})),o.mastoUserSocket.addEventListener("open",(function(){o.mastoUserSocketStatus!==h._z.STARTING_INITIAL&&i("pushGlobalNotice",{level:"success",messageKey:"timeline.socket_reconnected",timeout:5e3}),new Set([h._z.ERROR,h._z.DISABLED]).has(o.mastoUserSocketStatus)&&(i("stopFetchingTimeline",{timeline:"friends"}),i("stopFetchingNotifications"),i("stopFetchingChats")),r("resetRetryMultiplier"),r("setMastoUserSocketStatus",h._z.JOINED)})),o.mastoUserSocket.addEventListener("error",(function(e){var t=e.detail;console.error("Error in MastoAPI websocket:",t),i("clearOpenedChats")})),o.mastoUserSocket.addEventListener("close",(function(e){var t=e.detail,n=new Set([1e3,1001]),s=t.code;n.has(s)?(console.debug("Not restarting socket becasue of closure code ".concat(s," is in ignore list")),r("setMastoUserSocketStatus",h._z.CLOSED)):(console.warn("MastoAPI websocket disconnected, restarting. CloseEvent code: ".concat(s)),setTimeout((function(){i("startMastoUserSocket")}),1e3*o.retryMultiplier),r("incrementRetryMultiplier"),o.mastoUserSocketStatus!==h._z.ERROR&&(i("startFetchingTimeline",{timeline:"friends"}),i("startFetchingNotifications"),i("startFetchingChats"),i("pushGlobalNotice",{level:"error",messageKey:"timeline.socket_broke",messageArgs:[s],timeout:5e3})),r("setMastoUserSocketStatus",h._z.ERROR)),i("clearOpenedChats")})),t()}catch(e){n(e)}}))},stopMastoUserSocket:function(e){var t=e.state,n=e.dispatch;n("startFetchingTimeline",{timeline:"friends"}),n("startFetchingNotifications"),n("startFetchingChats"),t.mastoUserSocket.close()},startFetchingTimeline:function(e,t){var n=t.timeline,o=void 0===n?"friends":n,r=t.tag,i=void 0!==r&&r,s=t.userId,a=void 0!==s&&s,u=t.listId,c=void 0!==u&&u;if(!e.state.fetchers[o]){var l=e.state.backendInteractor.startFetchingTimeline({timeline:o,store:e,userId:a,listId:c,tag:i});e.commit("addFetcher",{fetcherName:o,fetcher:l})}},stopFetchingTimeline:function(e,t){var n=e.state.fetchers[t];n&&e.commit("removeFetcher",{fetcherName:t,fetcher:n})},fetchTimeline:function(e,t){var n=t.timeline,o=(0,ct.Z)(t,mt);e.state.backendInteractor.fetchTimeline(ft({store:e,timeline:n},o))},startFetchingNotifications:function(e){if(!e.state.fetchers.notifications){var t=e.state.backendInteractor.startFetchingNotifications({store:e});e.commit("addFetcher",{fetcherName:"notifications",fetcher:t})}},stopFetchingNotifications:function(e){var t=e.state.fetchers.notifications;t&&e.commit("removeFetcher",{fetcherName:"notifications",fetcher:t})},fetchNotifications:function(e,t){var n=(0,ut.Z)({},((0,at.Z)(t),t));e.state.backendInteractor.fetchNotifications(ft({store:e},n))},startFetchingFollowRequests:function(e){if(!e.state.fetchers.followRequests){var t=e.state.backendInteractor.startFetchingFollowRequests({store:e});e.commit("addFetcher",{fetcherName:"followRequests",fetcher:t})}},stopFetchingFollowRequests:function(e){var t=e.state.fetchers.followRequests;t&&e.commit("removeFetcher",{fetcherName:"followRequests",fetcher:t})},removeFollowRequest:function(e,t){var n=e.state.followRequests.filter((function(e){return e!==t}));e.commit("setFollowRequests",n)},startFetchingLists:function(e){if(!e.state.fetchers.lists){var t=e.state.backendInteractor.startFetchingLists({store:e});e.commit("addFetcher",{fetcherName:"lists",fetcher:t})}},stopFetchingLists:function(e){var t=e.state.fetchers.lists;t&&e.commit("removeFetcher",{fetcherName:"lists",fetcher:t})},setWsToken:function(e,t){e.commit("setWsToken",t)},initializeSocket:function(e){var t=e.dispatch,n=e.commit,o=e.state,r=e.rootState,i=o.wsToken;if(r.instance.shoutAvailable&&void 0!==i&&null===o.socket){var s=new pt.sk("/socket",{params:{token:i}});s.connect(),n("setSocket",s),t("initializeShout",s)}},disconnectFromSocket:function(e){var t=e.commit,n=e.state;n.socket&&n.socket.disconnect(),t("setSocket",null)}}};const vt=gt;var wt=n(36968),bt=n.n(wt),yt=n(27361),Dt=n.n(yt);function _t(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}var kt=function(e,t){var n=e.rootState,o=e.commit,r=t.path,i=t.value,s={};return bt()(s,r,i),n.api.backendInteractor.updateProfile({params:s}).then((function(e){o("addNewUsers",[e]),o("setCurrentUser",e)}))},Ct=function(e,t){var n=e.rootState,o=e.commit,r=t.path,i=t.value,s=t.oldValue,a={};return bt()(a,r,i),n.api.backendInteractor.updateNotificationSettings({settings:a}).then((function(e){"success"===e.status?o("confirmProfileOption",{name,value:i}):o("confirmProfileOption",{name,value:s})}))},St={defaultScope:"source.privacy",defaultNSFW:"source.sensitive",stripRichContent:{get:"source.pleroma.no_rich_text",set:"no_rich_text"},locked:"locked",acceptChatMessages:{get:"pleroma.accepts_chat_messages",set:"accepts_chat_messages"},allowFollowingMove:{get:"pleroma.allow_following_move",set:"allow_following_move"},discoverable:{get:"source.pleroma.discoverable",set:"discoverable"},hideFavorites:{get:"pleroma.hide_favorites",set:"hide_favorites"},hideFollowers:{get:"pleroma.hide_followers",set:"hide_followers"},hideFollows:{get:"pleroma.hide_follows",set:"hide_follows"},hideFollowersCount:{get:"pleroma.hide_followers_count",set:"hide_followers_count"},hideFollowsCount:{get:"pleroma.hide_follows_count",set:"hide_follows_count"},webPushHideContents:{get:"pleroma.notification_settings.hide_notification_contents",set:"hide_notification_contents",api:Ct},blockNotificationsFromStrangers:{get:"pleroma.notification_settings.block_from_strangers",set:"block_from_strangers",api:Ct}},jt={state:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?_t(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):_t(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},Object.fromEntries(Object.keys(St).map((function(e){return[e,null]})))),mutations:{confirmProfileOption:function(e,t){var n=t.name,o=t.value;bt()(e,n,o)},wipeProfileOption:function(e,t){var n=t.name;bt()(e,n,null)},wipeAllProfileOptions:function(e){Object.keys(St).forEach((function(t){bt()(e,t,null)}))},setCurrentUser:function(e,t){Object.entries(St).forEach((function(n){var o=(0,c.Z)(n,2),r=o[0],i=o[1],s=i.get,a=void 0===s?i:s;bt()(e,r,Dt()(t._original,a))}))}},actions:{setProfileOption:function(e,t){var n=e.rootState,o=e.state,r=e.commit,i=(e.dispatch,t.name),s=t.value,a=Dt()(o,i),u=St[i];if(!u)throw new Error("Invalid server-side setting");var c=u.set,l=void 0===c?u:c,d=u.api,p=void 0===d?kt:d;r("wipeProfileOption",{name:i}),p({rootState:n,commit:r},{path:l,value:s,oldValue:a}).catch((function(e){console.warn("Error setting server-side option:",e),r("confirmProfileOption",{name:i,value:a})}))},logout:function(e){(0,e.commit)("wipeAllProfileOptions")}}};const Ft=jt;var At=n(87185),Ot=n.n(At),Et=n(69579),zt=n.n(Et),Pt=n(7436),It=n.n(Pt),xt=n(7739),Tt=n.n(xt),$t=n(85564),Bt=n.n($t),Ut=n(74691),Mt=n.n(Ut),Lt=n(50361),Rt=n.n(Lt),qt=n(18446),Nt=n.n(qt),Zt=n(2262),Wt=n(48328),Ht=n(9382),Vt=(n(31934),n(95326),n(43011),n(68789),n(84131));Ht.vI.add(Vt.NBC),Wt.Z;var Kt=["_journal"],Gt=["_timestamp","_version"],Yt=["_timestamp","_version"];function Jt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Qt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Jt(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Jt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Xt=new Date("2022-08-04"),en=1001,tn={dirty:!1,flagStorage:{updateCounter:0,reset:0},prefsStorage:{_journal:[],simple:{dontShowUpdateNotifs:!1,collapseNav:!1},collections:{pinnedNavItems:["home","dms","chats"]}},raw:null,cache:null},nn=Qt(Qt({},tn.flagStorage),{},{updateCounter:1}),on=function(e,t,n){var o=e.indexOf(t),r=o+n,i=(0,l.Z)(e);return i.splice(o,1),i.splice(Mt()(r,0,i.length+1),0,t),i},rn=function(e,t){return Qt(Qt({},e),{},{_user:t,_timestamp:Date.now(),_version:1})},sn=function(e){return e._timestamp>0&&e._version>0},an=function(e){e.prefsStorage=e.prefsStorage||{simple:{},collections:{}},Object.entries(tn.prefsStorage.simple).forEach((function(t){var n=(0,c.Z)(t,2),o=n[0],r=n[1];"number"!=typeof r&&"boolean"!=typeof r&&(console.warn("Preference simple.".concat(o," as invalid type, reinitializing")),bt()(e.prefsStorage.simple,o,tn.prefsStorage.simple[o]))})),Object.entries(tn.prefsStorage.collections).forEach((function(t){var n=(0,c.Z)(t,2),o=n[0],r=n[1];Array.isArray(r)||(console.warn("Preference collections.".concat(o," as invalid type, reinitializing")),bt()(e.prefsStorage.collections,o,tn.prefsStorage.collections[o]))}))},un=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var o=Bt()(t.map((function(e){return Array.isArray(e)?e:[]}))).filter((function(e){return Object.prototype.hasOwnProperty.call(e,"path")&&Object.prototype.hasOwnProperty.call(e,"operation")&&Object.prototype.hasOwnProperty.call(e,"args")&&Object.prototype.hasOwnProperty.call(e,"timestamp")})),r=Tt()(o,"path"),i=Object.entries(r).map((function(e){var t=(0,c.Z)(e,2),n=t[0],o=t[1];if(o.sort((function(e,t){return e.timestamp>t.timestamp?1:-1})),n.startsWith("collections")){var r,i=It()(o,(function(e){return"removeFromCollection"===e.operation}));return r=i>0?o.slice(i):o,Ot()(r,(function(e,t){return e.path===t.path&&e.operation===t.operation&&"addToCollection"===e.operation&&e.args[0]===t.args[0]}))}return n.startsWith("simple")?zt()(o):o}));return Bt()(i).sort((function(e,t){return e.timestamp>t.timestamp?1:-1}))},cn={clearServerSideStorage:function(e,t){Qt({},Rt()(tn))},setServerSideStorage:function(e,t){var n=t.storage;e.raw=n;var o=e.cache;o&&o._user!==t.fqn&&(console.warn("cache belongs to another user! reinitializing local cache!"),o=null);var r=function(e,t){var n={recent:null,stale:null,needUpload:!1},o=sn(e||{}),r=sn(t||{});return!r&&o?(n.needUpload=!0,console.debug("Nothing valid stored on server, assuming cache to be source of truth"),n.recent=e,n.stale=t):!o&&r?(console.debug("Valid storage on server found, no local cache found, using live as source of truth"),n.recent=t,n.stale=e):o&&r?(console.debug("Both sources have valid data, figuring things out..."),t._timestamp===e._timestamp&&t._version===e._version?(console.debug("Same version/timestamp on both source, source of truth irrelevant"),n.recent=e,n.stale=t):(console.debug("Different timestamp, figuring out which one is more recent"),t._timestamp<e._timestamp?(n.recent=e,n.stale=t):(n.recent=t,n.stale=e))):(console.debug("Both sources are invalid, start from scratch"),n.needUpload=!0),n}(o=function(e){return e?(e._version<1&&(console.debug("Local cached data has older version, seeing if there any migrations that can be applied"),console.debug("No migrations found")),e._version>1&&(console.debug("Local cached data has newer version, seeing if there any reverse migrations that can be applied"),window._PLEROMA_HOTPATCH&&window._PLEROMA_HOTPATCH.reverseMigrations)?(console.debug("Found hotpatch migration, applying"),window._PLEROMA_HOTPATCH.reverseMigrations.call({},"serverSideStorage",{from:e._version,to:1},e)):e):e}(o),n),i=r.recent,s=r.stale,a=r.needsUpload,u=t.created_at>Xt,d=u?nn:tn.flagStorage,p=!1;if(null===i&&(console.debug("Data is empty, initializing for ".concat(u?"new":"existing"," user")),i=rn({flagStorage:Qt({},d),prefsStorage:Qt({},tn.prefsStorage)})),!a&&i&&s){console.debug("Checking if data needs merging...");var m=i,h=(m._timestamp,m._version,(0,ct.Z)(m,Gt)),f=(s._timestamp,s._version,(0,ct.Z)(s,Yt));p=!Nt()(h,f),console.debug("Data ".concat(p?"needs":"doesn't need"," merging"))}var g,v,w=function(e,t){return Array.from(new Set([].concat((0,l.Z)(Object.keys((0,Zt.IU)((e||{}).flagStorage||{}))),(0,l.Z)(Object.keys((0,Zt.IU)((t||{}).flagStorage||{}))))))}(i,s);p?(console.debug("Merging the data..."),g=function(e,t,n){return t.flagStorage?e.flagStorage?Object.fromEntries(n.map((function(n){var o=e.flagStorage[n],r=t.flagStorage[n];return[n,Number((o>r?o:r)||0)]}))):t.flagStorage:e.flagStorage}(i,s,w),an(i),an(s),v=function(e,t,n){if(!t)return e;if(!e)return t;var o=e._journal,r=(0,ct.Z)(e,Kt),i=t._journal,s=Qt({},r),a=un(i,o);return a.forEach((function(e){var t=e.path,n=(e.timestamp,e.operation),o=(e.command,e.args);if(t.startsWith("_"))console.error("journal contains entry to edit internal (starts with _) field '".concat(t,"', something is incorrect here, ignoring."));else switch(n){case"set":bt()(s,t,o[0]);break;case"addToCollection":bt()(s,t,Array.from(new Set(Dt()(s,t)).add(o[0])));break;case"removeFromCollection":var r=new Set(Dt()(s,t));r.delete(o[0]),bt()(s,t,Array.from(r));break;case"reorderCollection":var i=(0,c.Z)(o,2),a=i[0],u=i[1];bt()(s,t,on(Dt()(s,t),a,u));break;default:console.error("Unknown journal operation: '".concat(n,"', did we forget to run reverse migrations beforehand?"))}})),Qt(Qt({},s),{},{_journal:a})}(i.prefsStorage,s.prefsStorage)):(g=i.flagStorage,v=i.prefsStorage),g=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:tn.flagStorage,n=Qt({},e),o=Object.keys(e);if(e.reset>=1e3&&e.reset<=en){console.debug("Received command to trim the flags");var r=new Set(Object.keys(t));n={},o.forEach((function(t){r.has(t)&&(n[t]=e[t])})),e.reset===en&&(console.debug("Received command to reset the flags"),Object.keys(t).forEach((function(e){n[e]=0})))}else e.reset>0&&e.reset<9e3&&(console.debug("Received command to reset the flags"),o.forEach((function(e){n[e]=0})));return n.reset=0,n}(g),i.flagStorage=Qt(Qt({},d),g),i.prefsStorage=Qt(Qt({},tn.prefsStorage),v),e.dirty=p||a,e.cache=i,s&&i&&!e.dirty&&(e.cache._timestamp=Math.min(s._timestamp,i._timestamp)),e.flagStorage=e.cache.flagStorage,e.prefsStorage=e.cache.prefsStorage},setFlag:function(e,t){var n=t.flag,o=t.value;e.flagStorage[n]=o,e.dirty=!0},setPreference:function(e,t){var n=t.path,o=t.value;n.startsWith("_")?console.error("tried to edit internal (starts with _) field '".concat(n,"', ignoring.")):(bt()(e.prefsStorage,n,o),e.prefsStorage._journal=[].concat((0,l.Z)(e.prefsStorage._journal),[{operation:"set",path:n,args:[o],timestamp:Date.now()}]),e.dirty=!0)},addCollectionPreference:function(e,t){var n=t.path,o=t.value;if(n.startsWith("_"))console.error("tried to edit internal (starts with _) field '".concat(n,"', ignoring."));else{var r=new Set(Dt()(e.prefsStorage,n));r.add(o),bt()(e.prefsStorage,n,(0,l.Z)(r)),e.prefsStorage._journal=[].concat((0,l.Z)(e.prefsStorage._journal),[{operation:"addToCollection",path:n,args:[o],timestamp:Date.now()}]),e.dirty=!0}},removeCollectionPreference:function(e,t){var n=t.path,o=t.value;if(n.startsWith("_"))console.error("tried to edit internal (starts with _) field '".concat(n,"', ignoring."));else{var r=new Set(Dt()(e.prefsStorage,n));r.delete(o),bt()(e.prefsStorage,n,(0,l.Z)(r)),e.prefsStorage._journal=[].concat((0,l.Z)(e.prefsStorage._journal),[{operation:"removeFromCollection",path:n,args:[o],timestamp:Date.now()}]),e.dirty=!0}},reorderCollectionPreference:function(e,t){var n=t.path,o=t.value,r=t.movement;if(n.startsWith("_"))console.error("tried to edit internal (starts with _) field '".concat(n,"', ignoring."));else{var i=Dt()(e.prefsStorage,n),s=on(i,o,r);bt()(e.prefsStorage,n,s),e.prefsStorage._journal=[].concat((0,l.Z)(e.prefsStorage._journal),[{operation:"arrangeCollection",path:n,args:[o],timestamp:Date.now()}]),e.dirty=!0}},updateCache:function(e,t){var n=t.username;e.prefsStorage._journal=un(e.prefsStorage._journal),e.cache=rn({flagStorage:(0,Zt.IU)(e.flagStorage),prefsStorage:(0,Zt.IU)(e.prefsStorage)},n)}};const ln={state:Qt({},Rt()(tn)),mutations:cn,actions:{pushServerSideStorage:function(e){var t=e.state,n=e.rootState,o=e.commit,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=r.force,s=void 0!==i&&i,a=t.dirty||s;if(console.log(a),a){o("updateCache",{username:n.users.currentUser.fqn});var u={pleroma_settings_store:{"pleroma-fe":t.cache}};n.api.backendInteractor.updateProfile({params:u}).then((function(e){o("setServerSideStorage",e),t.dirty=!1}))}}}};var dn=n(84506),pn=n(29521),mn=n.n(pn);function hn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function fn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?hn(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):hn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var gn={frontends:[],loaded:!1,needsReboot:null,config:null,modifiedPaths:null,descriptions:null,draft:null,dbConfigEnabled:null},vn=(fn({},gn.flagStorage),{state:fn({},Rt()(gn)),mutations:{setInstanceAdminNoDbConfig:function(e){e.loaded=!1,e.dbConfigEnabled=!1},setAvailableFrontends:function(e,t){var n=t.frontends;e.frontends=n.map((function(e){return"pleroma-fe"===e.name?e.refs=["master","develop"]:e.refs=[e.ref],e}))},updateAdminSettings:function(e,t){var n=t.config,o=t.modifiedPaths;e.loaded=!0,e.dbConfigEnabled=!0,e.config=n,e.modifiedPaths=o},updateAdminDescriptions:function(e,t){var n=t.descriptions;e.descriptions=n},updateAdminDraft:function(e,t){var n=t.path,o=t.value,r=(0,c.Z)(n,3),i=[r[0],r[1],r[2]];bt()(e.draft,n,o),n.length>i.length&&bt()(e.draft,i,Rt()(Dt()(e.draft,i)))},resetAdminDraft:function(e){e.draft=Rt()(e.config)}},actions:{loadFrontendsStuff:function(e){e.state;var t=e.rootState,n=(e.dispatch,e.commit);t.api.backendInteractor.fetchAvailableFrontends().then((function(e){return n("setAvailableFrontends",{frontends:e})}))},loadAdminStuff:function(e){var t=e.state,n=e.rootState,o=e.dispatch,r=e.commit;n.api.backendInteractor.fetchInstanceDBConfig().then((function(e){e.error?400===e.error.status&&e.error.json().then((function(e){/configurable_from_database/.test(e.error)&&r("setInstanceAdminNoDbConfig")})):o("setInstanceAdminSettings",{backendDbConfig:e})})),null===t.descriptions&&n.api.backendInteractor.fetchInstanceConfigDescriptions().then((function(e){return o("setInstanceAdminDescriptions",{backendDescriptions:e})}))},setInstanceAdminSettings:function(e,t){var n=e.state,o=e.commit,r=(e.dispatch,t.backendDbConfig),i=n.config||{},s=new Set;r.configs.forEach((function(e){var t=[e.group,e.key];e.db&&e.db.forEach((function(e){return s.add([].concat(t,[e]).join(" -> "))})),bt()(i,t,function e(t){return Array.isArray(t)&&t.length>0&&t[0].tuple?t.reduce((function(t,n){return fn(fn({},t),{},(0,d.Z)({},n.tuple[0],e(n.tuple[1])))}),{}):t}(e.value))})),console.log(i[":pleroma"]),o("updateAdminSettings",{config:i,modifiedPaths:s}),o("resetAdminDraft")},setInstanceAdminDescriptions:function(e,t){e.state;var n=e.commit,o=(e.dispatch,t.backendDescriptions),r=function e(t,n,o){var r=t.children,i=t.description,s=t.label,a=t.key,u=void 0===a?"<ROOT>":a,c=t.group,l=t.suggestions,d=c?[c,u]:[u],p={description:i,label:s,suggestions:l};Array.isArray(r)&&r.forEach((function(t){e(t,0,p)})),bt()(o,d,p)},i={};o.forEach((function(e){return r(e,0,i)})),console.log(i[":pleroma"]["Pleroma.Captcha"]),n("updateAdminDescriptions",{descriptions:i})},pushAdminDraft:function(e){var t=e.rootState,n=e.state,o=(e.commit,e.dispatch),r=function e(t){return"object"!==(0,de.Z)(t)?t:Array.isArray(t)?t.map(e):Object.entries(t).map((function(e){var t=(0,c.Z)(e,2);return{tuple:[t[0],t[1]]}}))},i=Bt()(Object.entries(n.config).map((function(e){var t=(0,c.Z)(e,2),n=t[0],o=t[1];return Object.keys(o).map((function(e){return{group:n,key:e}}))}))).filter((function(e){var t=e.group,o=e.key;return!Nt()(n.config[t][o],n.draft[t][o])})).map((function(e){var t=e.group,o=e.key,i=n.config[t][o],s=n.draft[t][o],a=Object.entries(i),u=Object.entries(s);return{group:t,key:o,value:r(Object.fromEntries(mn()(u,a,Nt())))}}));t.api.backendInteractor.pushInstanceDBConfig({payload:{configs:i}}).then((function(){return t.api.backendInteractor.fetchInstanceDBConfig()})).then((function(e){return o("setInstanceAdminSettings",{backendDbConfig:e})}))},pushAdminSetting:function(e,t){var n=e.rootState,o=(e.state,e.commit,e.dispatch),r=t.path,i=t.value,s=Array.isArray(r)?r:r.split(/\./g),a=(0,dn.Z)(s),u=a[0],l=a[1],d=a.slice(2),p={};bt()(p,d,i),n.api.backendInteractor.pushInstanceDBConfig({payload:{configs:[{group:u,key:l,value:function e(t){return"object"!==(0,de.Z)(t)?t:Array.isArray(t)?t.map(e):Object.entries(t).map((function(e){var t=(0,c.Z)(e,2);return{tuple:[t[0],t[1]]}}))}(p)}]}}).then((function(){return n.api.backendInteractor.fetchInstanceDBConfig()})).then((function(e){return o("setInstanceAdminSettings",{backendDbConfig:e})}))},resetAdminSetting:function(e,t){var n=e.rootState,o=e.state,r=(e.commit,e.dispatch),i=t.path,s=i.split(/\./g),a=(0,c.Z)(s,3),u=a[0],l=a[1],d=a[2];return o.modifiedPaths.delete(i),n.api.backendInteractor.pushInstanceDBConfig({payload:{configs:[{group:u,key:l,delete:!0,subkeys:[d]}]}}).then((function(){return n.api.backendInteractor.fetchInstanceDBConfig()})).then((function(e){return r("setInstanceAdminSettings",{backendDbConfig:e})}))}}});const wn=vn,bn={state:{messages:[],channel:{state:""},joined:!1},mutations:{setChannel:function(e,t){e.channel=t},addMessage:function(e,t){e.messages.push(t),e.messages=e.messages.slice(-19,20)},setMessages:function(e,t){e.messages=t.slice(-19,20)},setJoined:function(e,t){e.joined=t}},actions:{initializeShout:function(e,t){var n=t.channel("chat:public");n.joinPush.receive("ok",(function(){e.commit("setJoined",!0)})),n.onClose((function(){e.commit("setJoined",!1)})),n.onError((function(){e.commit("setJoined",!1)})),n.on("new_msg",(function(t){e.commit("addMessage",t)})),n.on("messages",(function(t){var n=t.messages;e.commit("setMessages",n)})),n.join(),e.commit("setChannel",n)}}},yn={state:{clientId:!1,clientSecret:!1,appToken:!1,userToken:!1},mutations:{setClientData:function(e,t){var n=t.clientId,o=t.clientSecret;e.clientId=n,e.clientSecret=o},setAppToken:function(e,t){e.appToken=t},setToken:function(e,t){e.userToken=t},clearToken:function(e){e.userToken=!1,delete e.token}},getters:{getToken:function(e){return function(){return e.userToken||e.token||e.appToken}},getUserToken:function(e){return function(){return e.userToken||e.token}}}};var Dn="password",_n="token",kn="totp",Cn="recovery",Sn=function(e){e.strategy=e.initStrategy,e.settings={}};const jn={namespaced:!0,state:{settings:{},strategy:Dn,initStrategy:Dn},getters:{settings:function(e,t){return e.settings},requiredPassword:function(e,t,n){return e.strategy===Dn},requiredToken:function(e,t,n){return e.strategy===_n},requiredTOTP:function(e,t,n){return e.strategy===kn},requiredRecovery:function(e,t,n){return e.strategy===Cn}},mutations:{setInitialStrategy:function(e,t){t&&(e.initStrategy=t,e.strategy=t)},requirePassword:function(e){e.strategy=Dn},requireToken:function(e){e.strategy=_n},requireMFA:function(e,t){var n=t.settings;e.settings=n,e.strategy=kn},requireRecovery:function(e){e.strategy=Cn},requireTOTP:function(e){e.strategy=kn},abortMFA:function(e){Sn(e)}},actions:{login:function(e,t){return(0,o.Z)(i().mark((function n(){var o,r,s,a;return i().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return o=e.state,r=e.dispatch,s=e.commit,a=t.access_token,s("setToken",a,{root:!0}),n.next=5,r("loginUser",a,{root:!0});case 5:Sn(o);case 6:case"end":return n.stop()}}),n)})))()}}};var Fn=n(58394),An=new Set(["image","video","audio","flash"]),On={state:{media:[],currentIndex:0,activated:!1},mutations:{setMedia:function(e,t){e.media=t},setCurrentMedia:function(e,t){e.activated=!0,e.currentIndex=t},close:function(e){e.activated=!1}},actions:{setMedia:function(e,t){var n=e.commit,o=t.filter((function(e){var t=Fn.ZP.fileType(e.mimetype);return An.has(t)}));n("setMedia",o)},setCurrentMedia:function(e,t){(0,e.commit)("setCurrentMedia",e.state.media.indexOf(t)||0)},closeMediaViewer:function(e){(0,e.commit)("close")}}};const En=On,zn={state:{tokens:[]},actions:{fetchTokens:function(e){var t=e.rootState,n=e.commit;t.api.backendInteractor.fetchOAuthTokens().then((function(e){n("swapTokens",e)}))},revokeToken:function(e,t){var n=e.rootState,o=e.commit,r=e.state;n.api.backendInteractor.revokeOAuthToken({id:t}).then((function(e){201===e.status&&o("swapTokens",r.tokens.filter((function(e){return e.id!==t})))}))}},mutations:{swapTokens:function(e,t){e.tokens=t}}};var Pn=n(63105),In=n.n(Pn),xn={state:{reportModal:{userId:null,statuses:[],preTickedIds:[],activated:!1},reports:{}},mutations:{openUserReportingModal:function(e,t){var n=t.userId,o=t.statuses,r=t.preTickedIds;e.reportModal.userId=n,e.reportModal.statuses=o,e.reportModal.preTickedIds=r,e.reportModal.activated=!0},closeUserReportingModal:function(e){e.reportModal.activated=!1},setReportState:function(e,t){var n=t.id,o=t.state;e.reports[n].state=o},addReport:function(e,t){e.reports[t.id]=t}},actions:{openUserReportingModal:function(e,t){var n=e.rootState,o=e.commit,r=t.userId,i=t.statusIds,s=void 0===i?[]:i,a=s.map((function(e){return n.statuses.allStatusesObject[e]})),u=s,c=a.concat(In()(n.statuses.allStatuses,(function(e){return e.user.id===r&&!u.includes(e.id)})));o("openUserReportingModal",{userId:r,statuses:c,preTickedIds:u})},closeUserReportingModal:function(e){(0,e.commit)("closeUserReportingModal")},setReportState:function(e,t){var n=e.commit,o=e.dispatch,r=e.rootState,i=t.id,s=t.state,a=r.reports.reports[i].state;n("setReportState",{id:i,state:s}),r.api.backendInteractor.setReportState({id:i,state:s}).catch((function(e){console.error("Failed to set report state",e),o("pushGlobalNotice",{level:"error",messageKey:"general.generic_error_message",messageArgs:[e.message],timeout:5e3}),n("setReportState",{id:i,state:a})}))},addReport:function(e,t){(0,e.commit)("addReport",t)}}};const Tn=xn;const $n={state:{trackedPolls:{},pollsObject:{}},mutations:{mergeOrAddPoll:function(e,t){var n=e.pollsObject[t.id];t.expired=Date.now()>Date.parse(t.expires_at),e.pollsObject[t.id]=n?I()(n,t):t},trackPoll:function(e,t){var n=e.trackedPolls[t];e.trackedPolls[t]=n?n+1:1},untrackPoll:function(e,t){var n=e.trackedPolls[t];e.trackedPolls[t]=n?n-1:0}},actions:{mergeOrAddPoll:function(e,t){(0,e.commit)("mergeOrAddPoll",t)},updateTrackedPoll:function(e,t){var n=e.rootState,o=e.dispatch,r=e.commit;n.api.backendInteractor.fetchPoll({pollId:t}).then((function(e){setTimeout((function(){n.polls.trackedPolls[t]&&o("updateTrackedPoll",t)}),3e4),r("mergeOrAddPoll",e)}))},trackPoll:function(e,t){var n=e.rootState,o=e.commit,r=e.dispatch;n.polls.trackedPolls[t]||setTimeout((function(){return r("updateTrackedPoll",t)}),3e4),o("trackPoll",t)},untrackPoll:function(e,t){(0,e.commit)("untrackPoll",t)},votePoll:function(e,t){var n=e.rootState,o=e.commit,r=(t.id,t.pollId),i=t.choices;return n.api.backendInteractor.vote({pollId:r,choices:i}).then((function(e){return o("mergeOrAddPoll",e),e}))}}},Bn={state:{params:null,modalActivated:!1},mutations:{openPostStatusModal:function(e,t){e.params=t,e.modalActivated=!0},closePostStatusModal:function(e){e.modalActivated=!1},resetPostStatusModal:function(e){e.params=null}},actions:{openPostStatusModal:function(e,t){(0,e.commit)("openPostStatusModal",t)},closePostStatusModal:function(e){(0,e.commit)("closePostStatusModal")},resetPostStatusModal:function(e){(0,e.commit)("resetPostStatusModal")}}},Un={state:{params:null,modalActivated:!1},mutations:{openEditStatusModal:function(e,t){e.params=t,e.modalActivated=!0},closeEditStatusModal:function(e){e.modalActivated=!1}},actions:{openEditStatusModal:function(e,t){(0,e.commit)("openEditStatusModal",t)},closeEditStatusModal:function(e){(0,e.commit)("closeEditStatusModal")}}},Mn={state:{params:{},modalActivated:!1},mutations:{openStatusHistoryModal:function(e,t){e.params=t,e.modalActivated=!0},closeStatusHistoryModal:function(e){e.modalActivated=!1}},actions:{openStatusHistoryModal:function(e,t){(0,e.commit)("openStatusHistoryModal",t)},closeStatusHistoryModal:function(e){(0,e.commit)("closeStatusHistoryModal")}}};var Ln=n(73303),Rn=n.n(Ln),qn=n(75472),Nn=n.n(qn),Zn=n(73955),Wn=n.n(Zn),Hn=n(89734),Vn=n.n(Hn);function Kn(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Gn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Gn(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0,r=function(){};return{s:r,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,i=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw i}}}}function Gn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}var Yn={add:function(e,t){var n=t.messages,o=t.updateMaxId,r=void 0===o||o;if(e)for(var i=function(){var t=n[s];if(t.chat_id!==e.chatId)return{v:void 0};if(t.fakeId){var o=e.idIndex[t.fakeId];if(o)return e.idIndex[t.id]&&(delete e.idIndex[t.id],e.messages=e.messages.filter((function(e){return e.id!==t.id}))),Object.assign(o,t,{error:!1}),delete o.fakeId,e.idIndex[o.id]=o,delete e.idIndex[t.fakeId],{v:void 0}}(!e.minId||!t.pending&&t.id<e.minId)&&(e.minId=t.id),(!e.maxId||t.id>e.maxId)&&r&&(e.maxId=t.id),e.idIndex[t.id]||function(e,t){if(t.idempotency_key)return e.idempotencyKeyIndex[t.idempotency_key]}(e,t)||(e.lastSeenMessageId<t.id&&e.newMessageCount++,e.idIndex[t.id]=t,e.messages.push(e.idIndex[t.id]),e.idempotencyKeyIndex[t.idempotency_key]=!0)},s=0;s<n.length;s++){var a=i();if("object"===(0,de.Z)(a))return a.v}},empty:function(e){return{idIndex:{},idempotencyKeyIndex:{},messages:[],newMessageCount:0,lastSeenMessageId:"0",chatId:e,minId:void 0,maxId:void 0}},getView:function(e){if(!e)return[];var t,n=[],o=Nn()(e.messages,["pending","id"],["asc","asc"]),r=o[0],i=o[o.length-1];if(r){var s=new Date(r.created_at);s.setHours(0,0,0,0),n.push({type:"date",date:s,id:s.getTime().toString()})}for(var a=!1,u=0;u<o.length;u++){var c=o[u],l=o[u+1],d=new Date(c.created_at);d.setHours(0,0,0,0),i&&i.date<d&&(n.push({type:"date",date:d,id:d.getTime().toString()}),i.isTail=!0,t=void 0,a=!0);var p={type:"message",data:c,date:d,id:c.id,messageChainId:t};(l&&l.account_id)!==c.account_id&&(p.isTail=!0,t=void 0),((i&&i.data&&i.data.account_id)!==c.account_id||a)&&(t=Wn()(),p.isHead=!0,p.messageChainId=t),n.push(p),i=p,a=!1}return n},deleteMessage:function(e,t){if(e){if(e.messages=e.messages.filter((function(e){return e.id!==t})),delete e.idIndex[t],e.maxId===t){var n=B()(e.messages,"id");e.maxId=n.id}if(e.minId===t){var o=T()(e.messages,"id");e.minId=o.id}}},cullOlderMessages:function(e){var t=e.messages.length,n=t-50;if(!(t<=50)){e.messages=Vn()(e.messages,["id"]),e.minId=e.messages[n].id;var o,r=Kn(e.messages);try{for(r.s();!(o=r.n()).done;){var i=o.value;i.id<e.minId&&(delete e.idIndex[i.id],delete e.idempotencyKeyIndex[i.idempotency_key])}}catch(e){r.e(e)}finally{r.f()}e.messages=e.messages.slice(n,t)}},resetNewMessageCount:function(e){e&&(e.newMessageCount=0,e.lastSeenMessageId=e.maxId)},clear:function(e){var t,n=[],o=Kn(e.messages);try{for(o.s();!(t=o.n()).done;){var r=t.value;r.error?n.push(r.id):(delete e.idIndex[r.id],delete e.idempotencyKeyIndex[r.idempotency_key])}}catch(e){o.e(e)}finally{o.f()}e.messages=e.messages.filter((function(e){return n.includes(e.id)})),e.newMessageCount=0,e.lastSeenMessageId="0",e.minId=void 0,e.maxId=void 0},handleMessageError:function(e,t,n){if(e){var o=e.idIndex[t];if(o&&(o.error=!0,o.pending=!1,!n)){var r=Nn()(e.messages,["pending","id"],["asc","desc"])[0];if(r){var i=o.id;o.id="".concat(r.id,"-").concat((new Date).getTime()),e.idIndex[o.id]=o,delete e.idIndex[i]}}}}};const Jn=Yn;var Qn=n(27742);function Xn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function eo(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Xn(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Xn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var to={chatList:{data:[],idStore:{}},chatListFetcher:null,openedChats:(0,Zt.qj)({}),openedChatMessageServices:(0,Zt.qj)({}),fetcher:void 0,currentChatId:null,lastReadMessageId:null},no=function(e,t){return M()(e.chatList.data,{id:t})},oo={state:eo({},to),getters:{currentChat:function(e){return e.openedChats[e.currentChatId]},currentChatMessageService:function(e){return e.openedChatMessageServices[e.currentChatId]},findOpenedChatByRecipientId:function(e){return function(t){return M()(e.openedChats,(function(e){return e.account.id===t}))}},sortedChatList:function(e){return Nn()(e.chatList.data,["updated_at"],["desc"])},unreadChatCount:function(e){return Rn()(e.chatList.data,"unread")}},actions:{startFetchingChats:function(e){var t=e.dispatch,n=e.commit,o=function(){return t("fetchChats",{latest:!0})};o(),n("setChatListFetcher",{fetcher:function(){return(0,Ce.F)(o,5e3)}})},stopFetchingChats:function(e){(0,e.commit)("setChatListFetcher",{fetcher:void 0})},fetchChats:function(e){var t=e.dispatch,n=e.rootState;return e.commit,n.api.backendInteractor.chats().then((function(e){var n=e.chats;return t("addNewChats",{chats:n}),n}))},addNewChats:function(e,t){var n=t.chats,o=e.commit,r=e.dispatch,i=e.rootGetters;o("addNewUsers",n.map((function(e){return e.account})).filter((function(e){return e}))),o("addNewChats",{dispatch:r,chats:n,rootGetters:i,newChatMessageSideEffects:function(t){dt(e,t)}})},updateChat:function(e,t){(0,e.commit)("updateChat",{chat:t.chat})},startFetchingCurrentChat:function(e,t){e.commit,(0,e.dispatch)("setCurrentChatFetcher",{fetcher:t.fetcher})},setCurrentChatFetcher:function(e,t){e.rootState,(0,e.commit)("setCurrentChatFetcher",{fetcher:t.fetcher})},addOpenedChat:function(e,t){e.rootState;var n=e.commit,o=e.dispatch,r=t.chat;n("addOpenedChat",{dispatch:o,chat:(0,Qn._J)(r)}),o("addNewUsers",[r.account])},addChatMessages:function(e,t){var n=e.commit;n("addChatMessages",eo({commit:n},t))},resetChatNewMessageCount:function(e,t){(0,e.commit)("resetChatNewMessageCount",t)},clearCurrentChat:function(e,t){e.rootState;var n=e.commit;e.dispatch,n("setCurrentChatId",{chatId:void 0}),n("setCurrentChatFetcher",{fetcher:void 0})},readChat:function(e,t){var n=e.rootState,o=e.commit,r=e.dispatch,i=t.id,s=t.lastReadId,a=n.chats.lastReadMessageId!==s;r("resetChatNewMessageCount"),o("readChat",{id:i,lastReadId:s}),a&&n.api.backendInteractor.readChat({id:i,lastReadId:s})},deleteChatMessage:function(e,t){var n=e.rootState,o=e.commit;n.api.backendInteractor.deleteChatMessage(t),o("deleteChatMessage",eo({commit:o},t))},resetChats:function(e){var t=e.commit;(0,e.dispatch)("clearCurrentChat"),t("resetChats",{commit:t})},clearOpenedChats:function(e){e.rootState;var t=e.commit;e.dispatch,e.rootGetters,t("clearOpenedChats",{commit:t})},handleMessageError:function(e,t){var n=e.commit;n("handleMessageError",eo({commit:n},t))},cullOlderMessages:function(e,t){(0,e.commit)("cullOlderMessages",t)}},mutations:{setChatListFetcher:function(e,t){t.commit;var n=t.fetcher,o=e.chatListFetcher;o&&o.stop(),e.chatListFetcher=n&&n()},setCurrentChatFetcher:function(e,t){var n=t.fetcher,o=e.fetcher;o&&o.stop(),e.fetcher=n&&n()},addOpenedChat:function(e,t){t._dispatch;var n=t.chat;e.currentChatId=n.id,e.openedChats[n.id]=n,e.openedChatMessageServices[n.id]||(e.openedChatMessageServices[n.id]=Jn.empty(n.id))},setCurrentChatId:function(e,t){var n=t.chatId;e.currentChatId=n},addNewChats:function(e,t){var n=t.chats,o=t.newChatMessageSideEffects;n.forEach((function(t){var n=no(e,t.id);if(n){var r=(n.lastMessage&&n.lastMessage.id)!==(t.lastMessage&&t.lastMessage.id);n.lastMessage=t.lastMessage,n.unread=t.unread,n.updated_at=t.updated_at,r&&n.unread&&o(t)}else e.chatList.data.push(t),e.chatList.idStore[t.id]=t}))},updateChat:function(e,t){t._dispatch;var n=t.chat,o=(t._rootGetters,no(e,n.id));o&&(o.lastMessage=n.lastMessage,o.unread=n.unread,o.updated_at=n.updated_at),o||e.chatList.data.unshift(n),e.chatList.idStore[n.id]=n},deleteChat:function(e,t){t._dispatch;var n=t.id;t._rootGetters,e.chats.data=e.chats.data.filter((function(e){return e.last_status.id!==n})),e.chats.idStore=S()(e.chats.idStore,(function(e){return e.last_status.id===n}))},resetChats:function(e,t){var n=t.commit;for(var o in e.chatList={data:[],idStore:{}},e.currentChatId=null,n("setChatListFetcher",{fetcher:void 0}),e.openedChats)Jn.clear(e.openedChatMessageServices[o]),delete e.openedChats[o],delete e.openedChatMessageServices[o]},setChatsLoading:function(e,t){var n=t.value;e.chats.loading=n},addChatMessages:function(e,t){var n=t.chatId,o=t.messages,r=t.updateMaxId,i=e.openedChatMessageServices[n];i&&Jn.add(i,{messages:o.map(Qn.UB),updateMaxId:r})},deleteChatMessage:function(e,t){var n=t.chatId,o=t.messageId,r=e.openedChatMessageServices[n];r&&Jn.deleteMessage(r,o)},resetChatNewMessageCount:function(e,t){var n=e.openedChatMessageServices[e.currentChatId];Jn.resetNewMessageCount(n)},clearOpenedChats:function(e){var t=e.currentChatId;for(var n in e.openedChats)t!==n&&(Jn.clear(e.openedChatMessageServices[n]),delete e.openedChats[n],delete e.openedChatMessageServices[n])},readChat:function(e,t){var n=t.id,o=t.lastReadId;e.lastReadMessageId=o;var r=no(e,n);r&&(r.unread=0)},handleMessageError:function(e,t){var n=t.chatId,o=t.fakeId,r=t.isRetry,i=e.openedChatMessageServices[n];Jn.handleMessageError(i,o,r)},cullOlderMessages:function(e,t){Jn.cullOlderMessages(e.openedChatMessageServices[t])}}};const ro=oo;const io={state:{announcements:[],supportsAnnouncements:!0,fetchAnnouncementsTimer:void 0},mutations:{setAnnouncements:function(e,t){e.announcements=t},setAnnouncementRead:function(e,t){var n=t.id,o=t.read,r=e.announcements.findIndex((function(e){return e.id===n}));r<0||(e.announcements[r].read=o)},setFetchAnnouncementsTimer:function(e,t){e.fetchAnnouncementsTimer=t},setSupportsAnnouncements:function(e,t){e.supportsAnnouncements=t}},getters:{unreadAnnouncementCount:function(e,t,n){return n.users.currentUser?e.announcements.filter((function(e){return!(e.inactive||e.read)})).length:0}},actions:{fetchAnnouncements:function(e){if(!e.state.supportsAnnouncements)return Promise.resolve();var t=e.rootState.users.currentUser,n=t&&t.privileges.includes("announcements_manage_announcements"),r=function(){var t=(0,o.Z)(i().mark((function t(){var o,r,s,a;return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n){t.next=2;break}return t.abrupt("return",e.rootState.api.backendInteractor.fetchAnnouncements());case 2:return t.next=4,e.rootState.api.backendInteractor.adminFetchAnnouncements();case 4:return o=t.sent,t.next=7,e.rootState.api.backendInteractor.fetchAnnouncements();case 7:return r=t.sent,s=r.reduce((function(e,t){return e[t.id]=t,e}),{}),a=function(e){return s[e.id]},o.forEach((function(e){var t=a(e);t?e.read=t.read:e.inactive=!0})),t.abrupt("return",o);case 12:case"end":return t.stop()}}),t)})));return function(){return t.apply(this,arguments)}}();return r().then((function(t){e.commit("setAnnouncements",t)})).catch((function(t){if(!t||404!==t.statusCode)throw t;e.commit("setSupportsAnnouncements",!1)}))},markAnnouncementAsRead:function(e,t){return e.rootState.api.backendInteractor.dismissAnnouncement({id:t}).then((function(){e.commit("setAnnouncementRead",{id:t,read:!0})}))},startFetchingAnnouncements:function(e){if(!e.state.fetchAnnouncementsTimer){var t=setInterval((function(){return e.dispatch("fetchAnnouncements")}),3e5);return e.commit("setFetchAnnouncementsTimer",t),e.dispatch("fetchAnnouncements")}},stopFetchingAnnouncements:function(e){var t=e.state.fetchAnnouncementsTimer;e.commit("setFetchAnnouncementsTimer",void 0),clearInterval(t)},postAnnouncement:function(e,t){var n=t.content,o=t.startsAt,r=t.endsAt,i=t.allDay;return e.rootState.api.backendInteractor.postAnnouncement({content:n,startsAt:o,endsAt:r,allDay:i}).then((function(){return e.dispatch("fetchAnnouncements")}))},editAnnouncement:function(e,t){var n=t.id,o=t.content,r=t.startsAt,i=t.endsAt,s=t.allDay;return e.rootState.api.backendInteractor.editAnnouncement({id:n,content:o,startsAt:r,endsAt:i,allDay:s}).then((function(){return e.dispatch("fetchAnnouncements")}))},deleteAnnouncement:function(e,t){return e.rootState.api.backendInteractor.deleteAnnouncement({id:t}).then((function(){return e.dispatch("fetchAnnouncements")}))}}};var so=n(90308),ao=n(72378),uo=n.n(ao),co=n(69483),lo=!1,po=function(e,t){return 0===t.length?e:t.reduce((function(t,n){return bt()(t,n,Dt()(e,n)),t}),{})},mo=["markNotificationsAsSeen","clearCurrentUser","setCurrentUser","setServerSideStorage","setHighlight","setOption","setClientData","setToken","clearToken"],ho=n.n(co)();function fo(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.key,n=void 0===t?"vuex-lz":t,o=e.paths,r=void 0===o?[]:o,i=e.getState,s=void 0===i?function(e,t){return t.getItem(e)}:i,a=e.setState,u=void 0===a?function(e,t,n){return lo?n.setItem(e,t):(console.log("waiting for old state to be loaded..."),Promise.resolve())}:a,c=e.reducer,l=void 0===c?po:c,d=e.storage,p=void 0===d?ho:d,m=e.subscriber,h=void 0===m?function(e){return function(t){return e.subscribe(t)}}:m;return s(n,p).then((function(e){return function(t){try{if(null!==e&&"object"===(0,de.Z)(e)){var o=e.users||{};o.usersObject={};var i=o.users||[];N()(i,(function(e){o.usersObject[e.id]=e})),e.users=o,t.replaceState(uo()({},t.state,e))}lo=!0}catch(e){console.log("Couldn't load state"),console.error(e),lo=!0}h(t)((function(e,o){try{mo.includes(e.type)&&u(n,l(Rt()(o),r),p).then((function(n){void 0!==n&&("setOption"!==e.type&&"setCurrentUser"!==e.type||t.dispatch("settingsSaved",{success:n}))}),(function(n){"setOption"!==e.type&&"setCurrentUser"!==e.type||t.dispatch("settingsSaved",{error:n})}))}catch(e){console.log("Couldn't persist state:"),console.log(e)}}))}}))}const go=function(e){e.subscribe((function(t,n){var o=n.instance.vapidPublicKey,r=n.config.webPushNotifications,i="granted"===n.interface.notificationPermission,s=n.users.currentUser,a="setCurrentUser"===t.type,u="setInstanceOption"===t.type&&"vapidPublicKey"===t.payload.name,c="setNotificationPermission"===t.type&&"granted"===t.payload,l="setOption"===t.type&&"webPushNotifications"===t.payload.name,d="setOption"===t.type&&"notificationVisibility"===t.payload.name;if(a||u||c||l||d){if(s&&o&&i&&r)return e.dispatch("registerPushNotifications");if(l&&!r)return e.dispatch("unregisterPushNotifications")}}))};var vo=n(72617),wo=n(49963),bo=n(28339),yo=n(20425),Do=n.n(yo),_o=n(42570),ko=n(57810),Co=n(66252),So=n(3577),jo=(0,Co._)("div",{id:"app_bg_wrapper",class:"app-bg-wrapper"},null,-1),Fo=(0,Co._)("div",{class:"underlay"},null,-1),Ao=(0,Co._)("div",{id:"notifs-sidebar"},null,-1),Oo={key:0,class:"login-hint panel panel-default"},Eo={class:"user-panel"},zo={key:"user-panel-signed",class:"panel panel-default signed-in"},Po={class:"login panel panel-default"},Io={class:"panel-heading"},xo={class:"panel-body"},To={class:"form-group"},$o={for:"username"},Bo=["disabled","placeholder"],Uo={class:"form-group"},Mo={for:"password"},Lo=["disabled"],Ro={class:"form-group"},qo={key:1,class:"form-group"},No={class:"form-group"},Zo={class:"login-bottom"},Wo=["disabled"],Ho={key:0,class:"form-group"},Vo={class:"alert error"};function Ko(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Go(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ko(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ko(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Ht.vI.add(Vt.NBC);const Yo={data:function(){return{user:{},error:!1}},computed:Go(Go({isPasswordAuth:function(){return this.requiredPassword},isTokenAuth:function(){return this.requiredToken}},(0,s.rn)({registrationOpen:function(e){return e.instance.registrationOpen},instance:function(e){return e.instance},loggingIn:function(e){return e.users.loggingIn},oauth:function(e){return e.oauth}})),(0,s.Se)("authFlow",["requiredPassword","requiredToken","requiredMFA"])),methods:Go(Go(Go({},(0,s.OI)("authFlow",["requireMFA"])),(0,s.nv)({login:"authFlow/login"})),{},{submit:function(){this.isTokenAuth?this.submitToken():this.submitPassword()},submitToken:function(){var e=this.oauth,t={clientId:e.clientId,clientSecret:e.clientSecret,instance:this.instance.server,commit:this.$store.commit};Ne.getOrCreateApp(t).then((function(e){Ne.login(Go(Go({},e),t))}))},submitPassword:function(){var e=this,t={clientId:this.oauth.clientId,oauth:this.oauth,instance:this.instance.server,commit:this.$store.commit};this.error=!1,Ne.getOrCreateApp(t).then((function(n){Ne.getTokenWithCredentials(Go(Go({},n),{},{instance:t.instance,username:e.user.username,password:e.user.password})).then((function(t){t.error?"mfa_required"===t.error?e.requireMFA({settings:t}):"password_reset_required"===t.identifier?e.$router.push({name:"password-reset",params:{passwordResetRequested:!0}}):(e.error=t.error,e.focusOnPasswordInput()):e.login(t).then((function(){e.$router.push({name:"friends"})}))}))}))},clearError:function(){this.error=!1},focusOnPasswordInput:function(){var e=this.$refs.passwordInput;e.focus(),e.setSelectionRange(0,e.value.length)}})};var Jo=n(83744);const Qo=(0,Jo.Z)(Yo,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("router-link"),a=(0,Co.up)("FAIcon");return(0,Co.wg)(),(0,Co.iD)("div",Po,[(0,Co._)("div",Io,(0,So.zw)(e.$t("login.login")),1),(0,Co._)("div",xo,[(0,Co._)("form",{class:"login-form",onSubmit:t[2]||(t[2]=(0,wo.iM)((function(){return e.submit&&e.submit.apply(e,arguments)}),["prevent"]))},[e.isPasswordAuth?((0,Co.wg)(),(0,Co.iD)(Co.HY,{key:0},[(0,Co._)("div",To,[(0,Co._)("label",$o,(0,So.zw)(e.$t("login.username")),1),(0,Co.wy)((0,Co._)("input",{id:"username","onUpdate:modelValue":t[0]||(t[0]=function(t){return e.user.username=t}),disabled:e.loggingIn,class:"form-control",placeholder:e.$t("login.placeholder")},null,8,Bo),[[wo.nr,e.user.username]])]),(0,Co._)("div",Uo,[(0,Co._)("label",Mo,(0,So.zw)(e.$t("login.password")),1),(0,Co.wy)((0,Co._)("input",{id:"password",ref:"passwordInput","onUpdate:modelValue":t[1]||(t[1]=function(t){return e.user.password=t}),disabled:e.loggingIn,class:"form-control",type:"password"},null,8,Lo),[[wo.nr,e.user.password]])]),(0,Co._)("div",Ro,[(0,Co.Wm)(s,{to:{name:"password-reset"}},{default:(0,Co.w5)((function(){return[(0,Co.Uk)((0,So.zw)(e.$t("password_reset.forgot_password")),1)]})),_:1})])],64)):(0,Co.kq)("",!0),e.isTokenAuth?((0,Co.wg)(),(0,Co.iD)("div",qo,[(0,Co._)("p",null,(0,So.zw)(e.$t("login.description")),1)])):(0,Co.kq)("",!0),(0,Co._)("div",No,[(0,Co._)("div",Zo,[(0,Co._)("div",null,[e.registrationOpen?((0,Co.wg)(),(0,Co.j4)(s,{key:0,to:{name:"registration"},class:"register"},{default:(0,Co.w5)((function(){return[(0,Co.Uk)((0,So.zw)(e.$t("login.register")),1)]})),_:1})):(0,Co.kq)("",!0)]),(0,Co._)("button",{disabled:e.loggingIn,type:"submit",class:"btn button-default"},(0,So.zw)(e.$t("login.login")),9,Wo)])])],32)]),e.error?((0,Co.wg)(),(0,Co.iD)("div",Ho,[(0,Co._)("div",Vo,[(0,Co.Uk)((0,So.zw)(e.error)+" ",1),(0,Co._)("button",{class:"button-unstyled",onClick:t[3]||(t[3]=function(){return e.clearError&&e.clearError.apply(e,arguments)})},[(0,Co.Wm)(a,{class:"fa-scale-110 fa-old-padding",icon:"times"})])])])):(0,Co.kq)("",!0)])}]]);var Xo={class:"login panel panel-default"},er={class:"panel-heading"},tr={class:"panel-body"},nr={class:"form-group"},or={for:"code"},rr={class:"form-group"},ir={class:"login-bottom"},sr=(0,Co._)("br",null,null,-1),ar={type:"submit",class:"btn button-default"},ur={key:0,class:"form-group"},cr={class:"alert error"},lr={verifyOTPCode:function(e){var t=e.clientId,n=e.clientSecret,o=e.instance,r=e.mfaToken,i=e.code,s="".concat(o,"/oauth/mfa/challenge"),a=new window.FormData;return a.append("client_id",t),a.append("client_secret",n),a.append("mfa_token",r),a.append("code",i),a.append("challenge_type","totp"),window.fetch(s,{method:"POST",body:a}).then((function(e){return e.json()}))},verifyRecoveryCode:function(e){var t=e.clientId,n=e.clientSecret,o=e.instance,r=e.mfaToken,i=e.code,s="".concat(o,"/oauth/mfa/challenge"),a=new window.FormData;return a.append("client_id",t),a.append("client_secret",n),a.append("mfa_token",r),a.append("code",i),a.append("challenge_type","recovery"),window.fetch(s,{method:"POST",body:a}).then((function(e){return e.json()}))}};const dr=lr;function pr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function mr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?pr(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):pr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Ht.vI.add(Vt.NBC);const hr={data:function(){return{code:null,error:!1}},computed:mr(mr({},(0,s.Se)({authSettings:"authFlow/settings"})),(0,s.rn)({instance:"instance",oauth:"oauth"})),methods:mr(mr(mr({},(0,s.OI)("authFlow",["requireTOTP","abortMFA"])),(0,s.nv)({login:"authFlow/login"})),{},{clearError:function(){this.error=!1},submit:function(){var e=this,t=this.oauth,n={clientId:t.clientId,clientSecret:t.clientSecret,instance:this.instance.server,mfaToken:this.authSettings.mfa_token,code:this.code};dr.verifyRecoveryCode(n).then((function(t){if(t.error)return e.error=t.error,void(e.code=null);e.login(t).then((function(){e.$router.push({name:"friends"})}))}))}})},fr=(0,Jo.Z)(hr,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("FAIcon");return(0,Co.wg)(),(0,Co.iD)("div",Xo,[(0,Co._)("div",er,(0,So.zw)(e.$t("login.heading.recovery")),1),(0,Co._)("div",tr,[(0,Co._)("form",{class:"login-form",onSubmit:t[3]||(t[3]=(0,wo.iM)((function(){return e.submit&&e.submit.apply(e,arguments)}),["prevent"]))},[(0,Co._)("div",nr,[(0,Co._)("label",or,(0,So.zw)(e.$t("login.recovery_code")),1),(0,Co.wy)((0,Co._)("input",{id:"code","onUpdate:modelValue":t[0]||(t[0]=function(t){return e.code=t}),class:"form-control"},null,512),[[wo.nr,e.code]])]),(0,Co._)("div",rr,[(0,Co._)("div",ir,[(0,Co._)("div",null,[(0,Co._)("button",{class:"button-unstyled -link",type:"button",onClick:t[1]||(t[1]=(0,wo.iM)((function(){return e.requireTOTP&&e.requireTOTP.apply(e,arguments)}),["prevent"]))},(0,So.zw)(e.$t("login.enter_two_factor_code")),1),sr,(0,Co._)("button",{class:"button-unstyled -link",type:"button",onClick:t[2]||(t[2]=(0,wo.iM)((function(){return e.abortMFA&&e.abortMFA.apply(e,arguments)}),["prevent"]))},(0,So.zw)(e.$t("general.cancel")),1)]),(0,Co._)("button",ar,(0,So.zw)(e.$t("general.verify")),1)])])],32)]),e.error?((0,Co.wg)(),(0,Co.iD)("div",ur,[(0,Co._)("div",cr,[(0,Co.Uk)((0,So.zw)(e.error)+" ",1),(0,Co._)("button",{class:"button-unstyled",onClick:t[4]||(t[4]=function(){return e.clearError&&e.clearError.apply(e,arguments)})},[(0,Co.Wm)(s,{class:"fa-scale-110 fa-old-padding",icon:"times"})])])])):(0,Co.kq)("",!0)])}]]);var gr={class:"login panel panel-default"},vr={class:"panel-heading"},wr={class:"panel-body"},br={class:"form-group"},yr={for:"code"},Dr={class:"form-group"},_r={class:"login-bottom"},kr=(0,Co._)("br",null,null,-1),Cr={type:"submit",class:"btn button-default"},Sr={key:0,class:"form-group"},jr={class:"alert error"};function Fr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Ar(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Fr(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Fr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Ht.vI.add(Vt.NBC);const Or={data:function(){return{code:null,error:!1}},computed:Ar(Ar({},(0,s.Se)({authSettings:"authFlow/settings"})),(0,s.rn)({instance:"instance",oauth:"oauth"})),methods:Ar(Ar(Ar({},(0,s.OI)("authFlow",["requireRecovery","abortMFA"])),(0,s.nv)({login:"authFlow/login"})),{},{clearError:function(){this.error=!1},submit:function(){var e=this,t=this.oauth,n={clientId:t.clientId,clientSecret:t.clientSecret,instance:this.instance.server,mfaToken:this.authSettings.mfa_token,code:this.code};dr.verifyOTPCode(n).then((function(t){if(t.error)return e.error=t.error,void(e.code=null);e.login(t).then((function(){e.$router.push({name:"friends"})}))}))}})},Er=(0,Jo.Z)(Or,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("FAIcon");return(0,Co.wg)(),(0,Co.iD)("div",gr,[(0,Co._)("div",vr,(0,So.zw)(e.$t("login.heading.totp")),1),(0,Co._)("div",wr,[(0,Co._)("form",{class:"login-form",onSubmit:t[3]||(t[3]=(0,wo.iM)((function(){return e.submit&&e.submit.apply(e,arguments)}),["prevent"]))},[(0,Co._)("div",br,[(0,Co._)("label",yr,(0,So.zw)(e.$t("login.authentication_code")),1),(0,Co.wy)((0,Co._)("input",{id:"code","onUpdate:modelValue":t[0]||(t[0]=function(t){return e.code=t}),class:"form-control"},null,512),[[wo.nr,e.code]])]),(0,Co._)("div",Dr,[(0,Co._)("div",_r,[(0,Co._)("div",null,[(0,Co._)("button",{class:"button-unstyled -link",type:"button",onClick:t[1]||(t[1]=(0,wo.iM)((function(){return e.requireRecovery&&e.requireRecovery.apply(e,arguments)}),["prevent"]))},(0,So.zw)(e.$t("login.enter_recovery_code")),1),kr,(0,Co._)("button",{class:"button-unstyled -link",type:"button",onClick:t[2]||(t[2]=(0,wo.iM)((function(){return e.abortMFA&&e.abortMFA.apply(e,arguments)}),["prevent"]))},(0,So.zw)(e.$t("general.cancel")),1)]),(0,Co._)("button",Cr,(0,So.zw)(e.$t("general.verify")),1)])])],32)]),e.error?((0,Co.wg)(),(0,Co.iD)("div",Sr,[(0,Co._)("div",jr,[(0,Co.Uk)((0,So.zw)(e.error)+" ",1),(0,Co._)("button",{class:"button-unstyled",onClick:t[4]||(t[4]=function(){return e.clearError&&e.clearError.apply(e,arguments)})},[(0,Co.Wm)(s,{size:"lg",class:"fa-scale-110 fa-old-padding",icon:"times"})])])])):(0,Co.kq)("",!0)])}]]);function zr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}const Pr={name:"AuthForm",render:function(){return(0,Co.h)((0,Co.up)(this.authForm))},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?zr(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):zr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({authForm:function(){return this.requiredTOTP?"MFATOTPForm":this.requiredRecovery?"MFARecoveryForm":"LoginForm"}},(0,s.Se)("authFlow",["requiredTOTP","requiredRecovery"])),components:{MFARecoveryForm:fr,MFATOTPForm:Er,LoginForm:Qo}};var Ir=n(45333),xr=n(20392);function Tr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}const $r={computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Tr(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Tr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({signedIn:function(){return this.user}},(0,s.rn)({user:function(e){return e.users.currentUser}})),components:{AuthForm:Pr,PostStatusForm:Ir.Z,UserCard:xr.Z}},Br=(0,Jo.Z)($r,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("UserCard"),a=(0,Co.up)("PostStatusForm"),u=(0,Co.up)("auth-form");return(0,Co.wg)(),(0,Co.iD)("aside",Eo,[e.signedIn?((0,Co.wg)(),(0,Co.iD)("div",zo,[(0,Co.Wm)(s,{"user-id":e.user.id,"hide-bio":!0,rounded:"top"},null,8,["user-id"]),(0,Co.Wm)(a)])):((0,Co.wg)(),(0,Co.j4)(u,{key:"user-panel"}))])}]]);var Ur={class:"NavPanel"},Mr={class:"panel panel-default"},Lr={key:0,class:"panel-heading nav-panel-heading"},Rr=(0,Co._)("div",{class:"spacer"},null,-1),qr={key:1,class:"panel-body"},Nr={class:"timelines-background"},Zr={class:"timelines"},Wr={class:"timelines-background"},Hr={key:0,class:"icon iconLetter fa-scale-110 menu-icon"},Vr={class:"label"},Kr={key:0,class:"badge badge-notification"},Gr=["title","aria-pressed"],Yr=new Set(["bookmarks","dms","interactions","notifications","chat","chats","user-profile"]),Jr={home:{route:"friends",icon:"home",label:"nav.home_timeline",criteria:["!private"]},public:{route:"public-timeline",anon:!0,icon:"users",label:"nav.public_tl",criteria:["!private"]},twkn:{route:"public-external-timeline",anon:!0,icon:"globe",label:"nav.twkn",criteria:["!private","federating"]},bookmarks:{route:"bookmarks",icon:"bookmark",label:"nav.bookmarks"},favorites:{routeObject:{name:"user-profile",query:{tab:"favorites"}},icon:"star",label:"user_card.favorites"},dms:{route:"dms",icon:"envelope",label:"nav.dms"}},Qr={interactions:{route:"interactions",icon:"bell",label:"nav.interactions"},chats:{route:"chats",icon:"comments",label:"nav.chats",badgeGetter:"unreadChatCount",criteria:["chats"]},friendRequests:{route:"friend-requests",icon:"user-plus",label:"nav.friend_requests",criteria:["lockedUser"],badgeGetter:"followRequestCount"},about:{route:"about",anon:!0,icon:"info-circle",label:"nav.about"},announcements:{route:"announcements",icon:"bullhorn",label:"nav.announcements",badgeGetter:"unreadAnnouncementCount",criteria:["announcements"]}};function Xr(e,t){return e.route||e.routeObject?(n=e.routeObject?e.routeObject:{name:e.anon||t?e.route:e.anonRoute},Yr.has(n.name)&&(n.params={username:t.screen_name,name:t.screen_name}),n):null;var n}const ei={props:["to"]},ti=(0,Jo.Z)(ei,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("router-link");return n.to?((0,Co.wg)(),(0,Co.j4)(s,{key:0,to:n.to,custom:""},{default:(0,Co.w5)((function(t){return[(0,Co.WI)(e.$slots,"default",(0,So.vs)((0,Co.F4)(t)))]})),_:3},8,["to"])):(0,Co.WI)(e.$slots,"default",(0,So.vs)((0,Co.dG)({key:1},{})))}]]);function ni(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}Ht.vI.add(Vt.RP7);const oi={props:["item","showPin"],components:{OptionalRouterLink:ti},methods:{isPinned:function(e){return this.pinnedItems.has(e)},togglePin:function(e){this.isPinned(e)?this.$store.commit("removeCollectionPreference",{path:"collections.pinnedNavItems",value:e}):this.$store.commit("addCollectionPreference",{path:"collections.pinnedNavItems",value:e}),this.$store.dispatch("pushServerSideStorage")}},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ni(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ni(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({routeTo:function(){return Xr(this.item,this.currentUser)},getters:function(){return this.$store.getters}},(0,s.rn)({currentUser:function(e){return e.users.currentUser},pinnedItems:function(e){return new Set(e.serverSideStorage.prefsStorage.collections.pinnedNavItems)}}))},ri=(0,Jo.Z)(oi,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("FAIcon"),a=(0,Co.up)("OptionalRouterLink");return(0,Co.wg)(),(0,Co.j4)(a,{ass:"ass",to:e.routeTo},{default:(0,Co.w5)((function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=n.isActive,r=n.href,i=n.navigate;return[(0,Co._)("li",(0,Co.dG)({class:["NavigationEntry menu-item",{"-active":o}]},e.$attrs),[((0,Co.wg)(),(0,Co.j4)((0,Co.LL)(e.routeTo?"a":"button"),{class:"main-link button-unstyled",href:r,onClick:i},{default:(0,Co.w5)((function(){return[(0,Co._)("span",null,[e.item.icon?((0,Co.wg)(),(0,Co.j4)(s,{key:0,"fixed-width":"",class:"fa-scale-110 menu-icon",icon:e.item.icon},null,8,["icon"])):(0,Co.kq)("",!0)]),e.item.iconLetter?((0,Co.wg)(),(0,Co.iD)("span",Hr,(0,So.zw)(e.item.iconLetter),1)):(0,Co.kq)("",!0),(0,Co._)("span",Vr,(0,So.zw)(e.item.labelRaw||e.$t(e.item.label)),1)]})),_:2},1032,["href","onClick"])),(0,Co.WI)(e.$slots,"default"),e.item.badgeGetter&&e.getters[e.item.badgeGetter]?((0,Co.wg)(),(0,Co.iD)("div",Kr,(0,So.zw)(e.getters[e.item.badgeGetter]),1)):(0,Co.kq)("",!0),e.showPin&&e.currentUser?((0,Co.wg)(),(0,Co.iD)("button",{key:1,type:"button",class:"button-unstyled extra-button",title:e.$t(e.isPinned?"general.unpin":"general.pin"),"aria-pressed":!!e.isPinned,onClick:t[0]||(t[0]=(0,wo.iM)((function(t){return e.togglePin(e.item.name)}),["stop","prevent"]))},[e.showPin&&e.currentUser?((0,Co.wg)(),(0,Co.j4)(s,{key:0,"fixed-width":"",class:(0,So.C_)(["fa-scale-110",{veryfaint:!e.isPinned(e.item.name)}]),transform:e.isPinned(e.item.name)?"":"rotate-45",icon:"thumbtack"},null,8,["class","transform"])):(0,Co.kq)("",!0)],8,Gr)):(0,Co.kq)("",!0)],16)]})),_:3},8,["to"])}]]);var ii=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0,n=t.hasChats,o=t.hasAnnouncements,r=t.isFederating,i=t.isPrivate,s=t.currentUser;return e.filter((function(e){var t=e.criteria,a=e.anon,u=e.anonRoute,c=new Set(t||[]);return!(!r&&c.has("federating")||!s&&i&&c.has("!private")||!(s||a||u)||!(s&&s.locked||!c.has("lockedUser"))||!n&&c.has("chats")||!o&&c.has("announcements"))}))},si=function(e){return e.lists.allLists.map((function(e){return{name:"list-"+e.id,routeObject:{name:"lists-timeline",params:{id:e.id}},labelRaw:e.title,iconLetter:e.title[0]}}))};function ai(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}var ui={props:["showPin"],components:{NavigationEntry:ri},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ai(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ai(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},(0,s.rn)({lists:si,currentUser:function(e){return e.users.currentUser},privateMode:function(e){return e.instance.private},federating:function(e){return e.instance.federating}}))};const ci=ui,li=(0,Jo.Z)(ci,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("NavigationEntry");return(0,Co.wg)(),(0,Co.iD)("ul",null,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.lists,(function(t){return(0,Co.wg)(),(0,Co.j4)(s,{key:t.name,"show-pin":e.showPin,item:t},null,8,["show-pin","item"])})),128))])}]]);var di={class:"NavigationPins"},pi={key:1,class:"iconLetter fa-scale-110 fa-old-padding"},mi={key:2,class:"alert-dot"};function hi(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function fi(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?hi(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):hi(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Ht.vI.add(Vt.FVb,Vt.g4A,Vt.xVw,Vt.FU$,Vt.lXL,Vt.qmU,Vt.sqG,Vt.aC2,Vt.Zrf);const gi={props:["limit"],methods:{getRouteTo:function(e){return Xr(e,this.currentUser)}},computed:fi(fi({getters:function(){return this.$store.getters}},(0,s.rn)({lists:si,currentUser:function(e){return e.users.currentUser},followRequestCount:function(e){return e.api.followRequests.length},privateMode:function(e){return e.instance.private},federating:function(e){return e.instance.federating},pleromaChatMessagesAvailable:function(e){return e.instance.pleromaChatMessagesAvailable},supportsAnnouncements:function(e){return e.announcements.supportsAnnouncements},pinnedItems:function(e){return new Set(e.serverSideStorage.prefsStorage.collections.pinnedNavItems)}})),{},{pinnedList:function(){var e=this;return this.currentUser?ii([].concat((0,l.Z)(Object.entries(fi({},Jr)).filter((function(t){var n=(0,c.Z)(t,1)[0];return e.pinnedItems.has(n)})).map((function(e){var t=(0,c.Z)(e,2),n=t[0];return fi(fi({},t[1]),{},{name:n})}))),(0,l.Z)(this.lists.filter((function(t){return e.pinnedItems.has(t.name)}))),(0,l.Z)(Object.entries(fi({},Qr)).filter((function(t){var n=(0,c.Z)(t,1)[0];return e.pinnedItems.has(n)})).map((function(e){var t=(0,c.Z)(e,2),n=t[0];return fi(fi({},t[1]),{},{name:n})})))),{hasChats:this.pleromaChatMessagesAvailable,hasAnnouncements:this.supportsAnnouncements,isFederating:this.federating,isPrivate:this.privateMode,currentUser:this.currentUser}).slice(0,this.limit):ii([fi(fi({},Jr.public),{},{name:"public"}),fi(fi({},Jr.twkn),{},{name:"twkn"}),fi(fi({},Qr.about),{},{name:"about"})],{hasChats:this.pleromaChatMessagesAvailable,hasAnnouncements:this.supportsAnnouncements,isFederating:this.federating,isPrivate:this.privateMode,currentUser:this.currentUser})}})},vi=(0,Jo.Z)(gi,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("FAIcon"),a=(0,Co.up)("router-link");return(0,Co.wg)(),(0,Co.iD)("span",di,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.pinnedList,(function(t){return(0,Co.wg)(),(0,Co.j4)(a,{key:t.name,class:"pinned-item",to:e.getRouteTo(t),title:t.labelRaw||e.$t(t.label)},{default:(0,Co.w5)((function(){return[t.icon?((0,Co.wg)(),(0,Co.j4)(s,{key:0,"fixed-width":"",icon:t.icon},null,8,["icon"])):(0,Co.kq)("",!0),t.iconLetter?((0,Co.wg)(),(0,Co.iD)("span",pi,(0,So.zw)(t.iconLetter),1)):(0,Co.kq)("",!0),t.badgeGetter&&e.getters[t.badgeGetter]?((0,Co.wg)(),(0,Co.iD)("div",mi)):(0,Co.kq)("",!0)]})),_:2},1032,["to","title"])})),128))])}]]);var wi=n(66141);function bi(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function yi(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?bi(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):bi(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Ht.vI.add(Vt.FVb,Vt.g4A,Vt.xVw,Vt.FU$,Vt.ptq,Vt.mTx,Vt.lXL,Vt.qmU,Vt.sqG,Vt.aC2,Vt.Zrf,Vt.Acd);const Di={props:["forceExpand","forceEditMode"],created:function(){},components:{ListsMenuContent:li,NavigationEntry:ri,NavigationPins:vi,Checkbox:wi.Z},data:function(){return{editMode:!1,showTimelines:!1,showLists:!1,timelinesList:Object.entries(Jr).map((function(e){var t=(0,c.Z)(e,2),n=t[0];return yi(yi({},t[1]),{},{name:n})})),rootList:Object.entries(Qr).map((function(e){var t=(0,c.Z)(e,2),n=t[0];return yi(yi({},t[1]),{},{name:n})}))}},methods:{toggleTimelines:function(){this.showTimelines=!this.showTimelines},toggleLists:function(){this.showLists=!this.showLists},toggleEditMode:function(){this.editMode=!this.editMode},toggleCollapse:function(){this.$store.commit("setPreference",{path:"simple.collapseNav",value:!this.collapsed}),this.$store.dispatch("pushServerSideStorage")},isPinned:function(e){return this.pinnedItems.has(e)},togglePin:function(e){this.isPinned(e)?this.$store.commit("removeCollectionPreference",{path:"collections.pinnedNavItems",value:e}):this.$store.commit("addCollectionPreference",{path:"collections.pinnedNavItems",value:e}),this.$store.dispatch("pushServerSideStorage")}},computed:yi(yi({},(0,s.rn)({currentUser:function(e){return e.users.currentUser},followRequestCount:function(e){return e.api.followRequests.length},privateMode:function(e){return e.instance.private},federating:function(e){return e.instance.federating},pleromaChatMessagesAvailable:function(e){return e.instance.pleromaChatMessagesAvailable},supportsAnnouncements:function(e){return e.announcements.supportsAnnouncements},pinnedItems:function(e){return new Set(e.serverSideStorage.prefsStorage.collections.pinnedNavItems)},collapsed:function(e){return e.serverSideStorage.prefsStorage.simple.collapseNav}})),{},{timelinesItems:function(){return ii(Object.entries(yi({},Jr)).map((function(e){var t=(0,c.Z)(e,2),n=t[0];return yi(yi({},t[1]),{},{name:n})})),{hasChats:this.pleromaChatMessagesAvailable,hasAnnouncements:this.supportsAnnouncements,isFederating:this.federating,isPrivate:this.privateMode,currentUser:this.currentUser})},rootItems:function(){return ii(Object.entries(yi({},Qr)).map((function(e){var t=(0,c.Z)(e,2),n=t[0];return yi(yi({},t[1]),{},{name:n})})),{hasChats:this.pleromaChatMessagesAvailable,hasAnnouncements:this.supportsAnnouncements,isFederating:this.federating,isPrivate:this.privateMode,currentUser:this.currentUser})}},(0,s.Se)(["unreadChatCount","unreadAnnouncementCount"]))},_i=(0,Jo.Z)(Di,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("NavigationPins"),a=(0,Co.up)("FAIcon"),u=(0,Co.up)("NavigationEntry"),c=(0,Co.up)("router-link"),l=(0,Co.up)("ListsMenuContent");return(0,Co.wg)(),(0,Co.iD)("div",Ur,[(0,Co._)("div",Mr,[e.forceExpand?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.iD)("div",Lr,[(0,Co.Wm)(s,{limit:6}),Rr,(0,Co._)("button",{class:"button-unstyled",onClick:t[0]||(t[0]=function(){return e.toggleCollapse&&e.toggleCollapse.apply(e,arguments)})},[(0,Co.Wm)(a,{class:"navigation-chevron","fixed-width":"",icon:e.collapsed?"chevron-down":"chevron-up"},null,8,["icon"])])])),!e.collapsed||e.forceExpand?((0,Co.wg)(),(0,Co.iD)("ul",qr,[e.currentUser||!e.privateMode?((0,Co.wg)(),(0,Co.j4)(u,{key:0,"show-pin":!1,item:{icon:"stream",label:"nav.timelines"},"aria-expanded":e.showTimelines?"true":"false",onClick:e.toggleTimelines},{default:(0,Co.w5)((function(){return[(0,Co.Wm)(a,{class:"timelines-chevron","fixed-width":"",icon:e.showTimelines?"chevron-up":"chevron-down"},null,8,["icon"])]})),_:1},8,["item","aria-expanded","onClick"])):(0,Co.kq)("",!0),(0,Co.wy)((0,Co._)("div",Nr,[(0,Co._)("div",Zr,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.timelinesItems,(function(t){return(0,Co.wg)(),(0,Co.j4)(u,{key:t.name,"show-pin":e.editMode||e.forceEditMode,item:t},null,8,["show-pin","item"])})),128))])],512),[[wo.F8,e.showTimelines]]),e.currentUser?((0,Co.wg)(),(0,Co.j4)(u,{key:1,"show-pin":!1,item:{icon:"list",label:"nav.lists"},"aria-expanded":e.showLists?"true":"false",onClick:e.toggleLists},{default:(0,Co.w5)((function(){return[(0,Co.Wm)(c,{title:e.$t("lists.manage_lists"),class:"extra-button",to:{name:"lists"},onClick:t[1]||(t[1]=(0,wo.iM)((function(){}),["stop"]))},{default:(0,Co.w5)((function(){return[(0,Co.Wm)(a,{class:"extra-button","fixed-width":"",icon:"wrench"})]})),_:1},8,["title"]),(0,Co.Wm)(a,{class:"timelines-chevron","fixed-width":"",icon:e.showLists?"chevron-up":"chevron-down"},null,8,["icon"])]})),_:1},8,["item","aria-expanded","onClick"])):(0,Co.kq)("",!0),(0,Co.wy)((0,Co._)("div",Wr,[(0,Co.Wm)(l,{"show-pin":e.editMode||e.forceEditMode,class:"timelines"},null,8,["show-pin"])],512),[[wo.F8,e.showLists]]),((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.rootItems,(function(t){return(0,Co.wg)(),(0,Co.j4)(u,{key:t.name,"show-pin":e.editMode||e.forceEditMode,item:t},null,8,["show-pin","item"])})),128)),!e.forceEditMode&&e.currentUser?((0,Co.wg)(),(0,Co.j4)(u,{key:2,"show-pin":!1,item:{label:e.editMode?e.$t("nav.edit_finish"):e.$t("nav.edit_pinned"),icon:e.editMode?"check":"wrench"},onClick:e.toggleEditMode},null,8,["item","onClick"])):(0,Co.kq)("",!0)])):(0,Co.kq)("",!0)])])}]]);var ki={class:"instance-specific-panel"},Ci={class:"panel panel-default"},Si={class:"panel-body"},ji=["innerHTML"];const Fi={computed:{instanceSpecificPanelContent:function(){return this.$store.state.instance.instanceSpecificPanelContent}}},Ai=(0,Jo.Z)(Fi,[["render",function(e,t,n,o,r,i){return(0,Co.wg)(),(0,Co.iD)("div",ki,[(0,Co._)("div",Ci,[(0,Co._)("div",Si,[(0,Co._)("div",{innerHTML:e.instanceSpecificPanelContent},null,8,ji)])])])}]]);var Oi={class:"features-panel"},Ei={class:"panel panel-default base01-background"},zi={class:"panel-heading timeline-heading base02-background base04"},Pi={class:"title"},Ii={class:"panel-body features-panel"},xi={key:0},Ti={key:1},$i={key:2},Bi={key:3},Ui={key:4},Mi=n(65079);const Li={computed:{shout:function(){return this.$store.state.instance.shoutAvailable},pleromaChatMessages:function(){return this.$store.state.instance.pleromaChatMessagesAvailable},gopher:function(){return this.$store.state.instance.gopherAvailable},whoToFollow:function(){return this.$store.state.instance.suggestionsEnabled},mediaProxy:function(){return this.$store.state.instance.mediaProxyAvailable},minimalScopesMode:function(){return this.$store.state.instance.minimalScopesMode},textlimit:function(){return this.$store.state.instance.textlimit},uploadlimit:function(){return Mi.Z.fileSizeFormat(this.$store.state.instance.uploadlimit)}}},Ri=(0,Jo.Z)(Li,[["render",function(e,t,n,o,r,i){return(0,Co.wg)(),(0,Co.iD)("div",Oi,[(0,Co._)("div",Ei,[(0,Co._)("div",zi,[(0,Co._)("div",Pi,(0,So.zw)(e.$t("features_panel.title")),1)]),(0,Co._)("div",Ii,[(0,Co._)("ul",null,[e.shout?((0,Co.wg)(),(0,Co.iD)("li",xi,(0,So.zw)(e.$t("features_panel.shout")),1)):(0,Co.kq)("",!0),e.pleromaChatMessages?((0,Co.wg)(),(0,Co.iD)("li",Ti,(0,So.zw)(e.$t("features_panel.pleroma_chat_messages")),1)):(0,Co.kq)("",!0),e.gopher?((0,Co.wg)(),(0,Co.iD)("li",$i,(0,So.zw)(e.$t("features_panel.gopher")),1)):(0,Co.kq)("",!0),e.whoToFollow?((0,Co.wg)(),(0,Co.iD)("li",Bi,(0,So.zw)(e.$t("features_panel.who_to_follow")),1)):(0,Co.kq)("",!0),e.mediaProxy?((0,Co.wg)(),(0,Co.iD)("li",Ui,(0,So.zw)(e.$t("features_panel.media_proxy")),1)):(0,Co.kq)("",!0),(0,Co._)("li",null,(0,So.zw)(e.$t("features_panel.scope_options")),1),(0,Co._)("li",null,(0,So.zw)(e.$t("features_panel.text_limit"))+" = "+(0,So.zw)(e.textlimit),1),(0,Co._)("li",null,(0,So.zw)(e.$t("features_panel.upload_limit"))+" = "+(0,So.zw)(e.uploadlimit.num)+" "+(0,So.zw)(e.$t("upload.file_size_units."+e.uploadlimit.unit)),1)])])])])}]]);var qi={class:"who-to-follow-panel"},Ni={class:"panel panel-default base01-background"},Zi={class:"panel-heading timeline-heading base02-background base04"},Wi={class:"title"},Hi={class:"who-to-follow"},Vi=["src"],Ki=(0,Co._)("br",null,null,-1),Gi={class:"who-to-follow-more"},Yi=n(69983),Ji=n.n(Yi),Qi=n(4493);function Xi(e){var t=e.$store.state.users.currentUser.credentials;t&&(e.usersToFollow.forEach((function(e){e.name="Loading..."})),h.ZP.suggestions({credentials:t}).then((function(t){!function(e,t){var n=this,o=Ji()(t);e.usersToFollow.forEach((function(t,r){var i=o[r],s=i.avatar||n.$store.state.instance.defaultAvatar,a=i.acct;t.img=s,t.name=a,e.$store.state.api.backendInteractor.fetchUser({id:a}).then((function(n){n.error||(e.$store.commit("addNewUsers",[n]),t.id=n.id)}))}))}(e,t)})))}const es={data:function(){return{usersToFollow:[]}},computed:{user:function(){return this.$store.state.users.currentUser.screen_name},suggestionsEnabled:function(){return this.$store.state.instance.suggestionsEnabled}},methods:{userProfileLink:function(e,t){return(0,Qi.Z)(e,t,this.$store.state.instance.restrictedNicknames)}},watch:{user:function(e,t){this.suggestionsEnabled&&Xi(this)}},mounted:function(){var e=this;this.usersToFollow=new Array(3).fill().map((function(t){return{img:e.$store.state.instance.defaultAvatar,name:"",id:0}})),this.suggestionsEnabled&&Xi(this)}},ts=(0,Jo.Z)(es,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("router-link");return(0,Co.wg)(),(0,Co.iD)("div",qi,[(0,Co._)("div",Ni,[(0,Co._)("div",Zi,[(0,Co._)("div",Wi,(0,So.zw)(e.$t("who_to_follow.who_to_follow")),1)]),(0,Co._)("div",Hi,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.usersToFollow,(function(t){return(0,Co.wg)(),(0,Co.iD)("p",{key:t.id,class:"who-to-follow-items"},[(0,Co._)("img",{src:t.img},null,8,Vi),(0,Co.Wm)(s,{to:e.userProfileLink(t.id,t.name)},{default:(0,Co.w5)((function(){return[(0,Co.Uk)((0,So.zw)(t.name),1)]})),_:2},1032,["to"]),Ki])})),128)),(0,Co._)("p",Gi,[(0,Co.Wm)(s,{to:{name:"who-to-follow"}},{default:(0,Co.w5)((function(){return[(0,Co.Uk)((0,So.zw)(e.$t("who_to_follow.more")),1)]})),_:1})])])])])}]]);var ns={key:0,class:"shout-panel"},os={class:"panel panel-default"},rs={class:"title"},is={class:"shout-window"},ss={class:"shout-avatar"},as=["src"],us={class:"shout-content"},cs=(0,Co._)("br",null,null,-1),ls={class:"shout-text"},ds={class:"shout-input"},ps={key:1,class:"shout-panel"},ms={class:"panel panel-default"},hs={class:"title"};Ht.vI.add(Vt.Acd,Vt.NBC);const fs={props:["floating"],data:function(){return{currentMessage:"",channel:null,collapsed:!0}},computed:{messages:function(){return this.$store.state.shout.messages}},methods:{submit:function(e){this.$store.state.shout.channel.push("new_msg",{text:e},1e4),this.currentMessage=""},togglePanel:function(){this.collapsed=!this.collapsed},userProfileLink:function(e){return(0,Qi.Z)(e.id,e.username,this.$store.state.instance.restrictedNicknames)}},watch:{messages:function(e){var t=this.$el.querySelector(".chat-window");t&&t.scrollTop+t.offsetHeight+20>t.scrollHeight&&this.$nextTick((function(){t&&(t.scrollTop=t.scrollHeight-t.offsetHeight)}))}}},gs=(0,Jo.Z)(fs,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("FAIcon"),a=(0,Co.up)("router-link");return e.collapsed&&e.floating?((0,Co.wg)(),(0,Co.iD)("div",ps,[(0,Co._)("div",ms,[(0,Co._)("div",{class:"panel-heading -stub timeline-heading shout-heading",onClick:t[3]||(t[3]=(0,wo.iM)((function(){return e.togglePanel&&e.togglePanel.apply(e,arguments)}),["stop","prevent"]))},[(0,Co._)("div",hs,[(0,Co.Wm)(s,{class:"icon",icon:"bullhorn"}),(0,Co.Uk)(" "+(0,So.zw)(e.$t("shoutbox.title")),1)])])])])):((0,Co.wg)(),(0,Co.iD)("div",ns,[(0,Co._)("div",os,[(0,Co._)("div",{class:(0,So.C_)(["panel-heading timeline-heading",{"shout-heading":e.floating}]),onClick:t[0]||(t[0]=(0,wo.iM)((function(){return e.togglePanel&&e.togglePanel.apply(e,arguments)}),["stop","prevent"]))},[(0,Co._)("div",rs,[(0,Co.Uk)((0,So.zw)(e.$t("shoutbox.title"))+" ",1),e.floating?((0,Co.wg)(),(0,Co.j4)(s,{key:0,icon:"times",class:"close-icon"})):(0,Co.kq)("",!0)])],2),(0,Co._)("div",is,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.messages,(function(t){return(0,Co.wg)(),(0,Co.iD)("div",{key:t.id,class:"shout-message"},[(0,Co._)("span",ss,[(0,Co._)("img",{src:t.author.avatar},null,8,as)]),(0,Co._)("div",us,[(0,Co.Wm)(a,{class:"shout-name",to:e.userProfileLink(t.author)},{default:(0,Co.w5)((function(){return[(0,Co.Uk)((0,So.zw)(t.author.username),1)]})),_:2},1032,["to"]),cs,(0,Co._)("span",ls,(0,So.zw)(t.text),1)])])})),128))]),(0,Co._)("div",ds,[(0,Co.wy)((0,Co._)("textarea",{"onUpdate:modelValue":t[1]||(t[1]=function(t){return e.currentMessage=t}),class:"shout-input-textarea",rows:"1",onKeyup:t[2]||(t[2]=(0,wo.D2)((function(t){return e.submit(e.currentMessage)}),["enter"]))},null,544),[[wo.nr,e.currentMessage]])])])]))}]]);var vs=["src","alt","title"],ws=["src","alt","title"],bs=["title"],ys=["title"],Ds=["title"],_s={key:6,class:"description"},ks={class:"counter"},Cs={key:7,class:"loading-spinner"},Ss=n(32140),js=n(34133),Fs=n(782);const As={methods:{setTransform:function(e){var t=e.scale,n=e.x,o=e.y;this.$el.setTransform({scale:t,x:n,y:o})}},created:function(){Fs.Z}},Os=(0,Jo.Z)(As,[["render",function(e,t,n,o,r,i){return(0,Co.wg)(),(0,Co.iD)("pinch-zoom",(0,Co.dG)({class:"pinch-zoom-parent"},e.$attrs,(0,Co.mx)(e.$listeners,!0)),[(0,Co.WI)(e.$slots,"default")],16)}]]);var Es=n(15671),zs=n(43144),Ps=function(e,t){return[t[0]-e[0],t[1]-e[1]]},Is=function(e){return[(t=e.touches[0]).screenX,t.screenY];var t},xs=function(e){return[e.clientX,e.clientY]},Ts=function(e){return Math.sqrt(e[0]*e[0]+e[1]*e[1])},$s=function(e){return[e[1],-e[0]]},Bs=function(e,t){return e[0]*t[0]+e[1]*t[1]},Us=function(e,t){var n=Bs(e,t)/Bs(t,t);return[n*t[0],n*t[1]]};const Ms={DIRECTION_LEFT:[-1,0],DIRECTION_RIGHT:[1,0],DIRECTION_UP:[0,-1],DIRECTION_DOWN:[0,1],swipeGesture:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:30,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;return{direction:e,onSwipe:t,threshold:n,perpendicularTolerance:o,_startPos:[0,0],_swiping:!1}},beginSwipe:function(e,t){t._startPos=Is(e),t._swiping=!0},updateSwipe:function(e,t){if(t._swiping){var n=Ps(t._startPos,Is(e));if(!(Ts(n)<t.threshold||Bs(n,t.direction)<0)){var o=Us(n,t.direction),r=$s(t.direction),i=Us(n,r);Ts(o)*t.perpendicularTolerance<Ts(i)||(t.onSwipe(),t._swiping=!1)}}},SwipeAndClickGesture:function(){function e(t){var n=t.direction,o=t.swipePreviewCallback,r=t.swipeEndCallback,i=t.swipeCancelCallback,s=t.swipelessClickCallback,a=t.threshold,u=void 0===a?30:a,c=t.perpendicularTolerance,l=void 0===c?1:c,d=t.disableClickThreshold,p=void 0===d?1:d;(0,Es.Z)(this,e);var m=function(){};this.direction=n,this.swipePreviewCallback=o||m,this.swipeEndCallback=r||m,this.swipeCancelCallback=i||m,this.swipelessClickCallback=s||m,this.threshold="function"==typeof u?u:function(){return u},this.disableClickThreshold="function"==typeof p?p:function(){return p},this.perpendicularTolerance=l,this._reset()}return(0,zs.Z)(e,[{key:"_reset",value:function(){this._startPos=[0,0],this._pointerId=-1,this._swiping=!1,this._swiped=!1,this._preventNextClick=!1}},{key:"start",value:function(e){0===e.button&&(this._startPos=xs(e),this._pointerId=e.pointerId,this._swiping=!0,this._swiped=!1)}},{key:"move",value:function(e){if(this._swiping&&this._pointerId===e.pointerId){this._swiped=!0;var t=xs(e),n=Ps(this._startPos,t);this.swipePreviewCallback(n)}}},{key:"cancel",value:function(e){this._swiping&&this._pointerId===e.pointerId&&this.swipeCancelCallback()}},{key:"end",value:function(e){var t=this;if(this._swiping&&this._pointerId===e.pointerId){this._swiping=!1;var n=xs(e),o=Ps(this._startPos,n),r=function(){if(Ts(o)<t.threshold())return 0;var e=Bs(o,t.direction)>0,n=Us(o,t.direction),r=$s(t.direction),i=Us(o,r);return Ts(n)*t.perpendicularTolerance<Ts(i)?0:e?1:-1}();this._swiped&&this.swipeEndCallback(r),this._reset(),Ts(o)>=this.disableClickThreshold()&&"mouse"===e.pointerType&&(this._preventNextClick=!0)}}},{key:"click",value:function(e){this._preventNextClick||this.swipelessClickCallback(),this._reset()}}]),e}()},Ls={props:{direction:{type:Array},threshold:{type:Function,default:function(){return 30}},disableClickThreshold:{type:Function,default:function(){return 1}},perpendicularTolerance:{type:Number,default:1}},methods:{handlePointerDown:function(e){this.$gesture.start(e)},handlePointerMove:function(e){this.$gesture.move(e)},handlePointerUp:function(e){this.$gesture.end(e)},handlePointerCancel:function(e){this.$gesture.cancel(e)},handleNativeClick:function(e){this.$gesture.click(e)},preview:function(e){this.$emit("preview-requested",e)},end:function(e){this.$emit("swipe-finished",e)},click:function(){this.$emit("swipeless-clicked")},cancel:function(){this.$emit("swipe-canceled")}},created:function(){this.$gesture=new Ms.SwipeAndClickGesture({direction:this.direction,threshold:this.threshold,disableClickThreshold:this.disableClickThreshold,perpendicularTolerance:this.perpendicularTolerance,swipePreviewCallback:this.preview,swipeEndCallback:this.end,swipeCancelCallback:this.cancel,swipelessClickCallback:this.click})}},Rs=(0,Jo.Z)(Ls,[["render",function(e,t,n,o,r,i){return(0,Co.wg)(),(0,Co.iD)("div",(0,Co.dG)(e.$attrs,{onPointerdown:t[0]||(t[0]=function(){return e.handlePointerDown&&e.handlePointerDown.apply(e,arguments)}),onPointermove:t[1]||(t[1]=function(){return e.handlePointerMove&&e.handlePointerMove.apply(e,arguments)}),onPointerup:t[2]||(t[2]=function(){return e.handlePointerUp&&e.handlePointerUp.apply(e,arguments)}),onPointercancel:t[3]||(t[3]=function(){return e.handlePointerCancel&&e.handlePointerCancel.apply(e,arguments)}),onClick:t[4]||(t[4]=function(){return e.handleNativeClick&&e.handleNativeClick.apply(e,arguments)})}),[(0,Co.WI)(e.$slots,"default")],16)}]]);var qs=n(72884);Ht.vI.add(Vt.A35,Vt._tD,Vt.IJ7,Vt.NBC);const Ns={components:{StillImage:Ss.Z,VideoAttachment:js.Z,PinchZoom:Os,SwipeClick:Rs,Modal:Wt.Z,Flash:qs.Z},data:function(){return{loading:!1,swipeDirection:Ms.DIRECTION_LEFT,swipeThreshold:function(){return window.innerWidth*(1/4)},pinchZoomMinScale:1,pinchZoomScaleResetLimit:1.2}},computed:{showing:function(){return this.$store.state.mediaViewer.activated},media:function(){return this.$store.state.mediaViewer.media},description:function(){return this.currentMedia.description},currentIndex:function(){return this.$store.state.mediaViewer.currentIndex},currentMedia:function(){return this.media[this.currentIndex]},canNavigate:function(){return this.media.length>1},type:function(){return this.currentMedia?this.getType(this.currentMedia):null},swipeDisableClickThreshold:function(){var e=this;return function(){return e.canNavigate?1:30}}},methods:{getType:function(e){return Fn.ZP.fileType(e.mimetype)},hide:function(){var e=this;setTimeout((function(){e.$store.dispatch("closeMediaViewer")}),100)},hideIfNotSwiped:function(e){var t=this.$refs.swipeClick;t?t.$gesture.click(e):this.hide()},goPrev:function(){if(this.canNavigate){var e=0===this.currentIndex?this.media.length-1:this.currentIndex-1,t=this.media[e];"image"===this.getType(t)&&(this.loading=!0),this.$store.dispatch("setCurrentMedia",t)}},goNext:function(){if(this.canNavigate){var e=this.currentIndex===this.media.length-1?0:this.currentIndex+1,t=this.media[e];"image"===this.getType(t)&&(this.loading=!0),this.$store.dispatch("setCurrentMedia",t)}},onImageLoaded:function(){this.loading=!1},handleSwipePreview:function(e){this.$refs.pinchZoom.setTransform({scale:1,x:e[0],y:0})},handleSwipeEnd:function(e){this.$refs.pinchZoom.setTransform({scale:1,x:0,y:0}),e>0?this.goNext():e<0&&this.goPrev()},handleKeyupEvent:function(e){this.showing&&27===e.keyCode&&this.hide()},handleKeydownEvent:function(e){this.showing&&(39===e.keyCode?this.goNext():37===e.keyCode&&this.goPrev())}},mounted:function(){window.addEventListener("popstate",this.hide),document.addEventListener("keyup",this.handleKeyupEvent),document.addEventListener("keydown",this.handleKeydownEvent)},unmounted:function(){window.removeEventListener("popstate",this.hide),document.removeEventListener("keyup",this.handleKeyupEvent),document.removeEventListener("keydown",this.handleKeydownEvent)}},Zs=(0,Jo.Z)(Ns,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("PinchZoom"),a=(0,Co.up)("SwipeClick"),u=(0,Co.up)("VideoAttachment"),c=(0,Co.up)("Flash"),l=(0,Co.up)("FAIcon"),d=(0,Co.up)("Modal");return e.showing?((0,Co.wg)(),(0,Co.j4)(d,{key:0,class:"media-modal-view",onBackdropClicked:e.hideIfNotSwiped},{default:(0,Co.w5)((function(){return["image"===e.type?((0,Co.wg)(),(0,Co.j4)(a,{key:0,ref:"swipeClick",class:"modal-image-container",direction:e.swipeDirection,threshold:e.swipeThreshold,"disable-click-threshold":e.swipeDisableClickThreshold,onPreviewRequested:e.handleSwipePreview,onSwipeFinished:e.handleSwipeEnd,onSwipelessClicked:e.hide},{default:(0,Co.w5)((function(){return[(0,Co.Wm)(s,{ref:"pinchZoom",class:"modal-image-container-inner",selector:".modal-image","reach-min-scale-strategy":"reset","stop-propagate-handled":"stop-propgate-handled","allow-pan-min-scale":e.pinchZoomMinScale,"min-scale":e.pinchZoomMinScale,"reset-to-min-scale-limit":e.pinchZoomScaleResetLimit},{default:(0,Co.w5)((function(){return[(0,Co._)("img",{class:(0,So.C_)([{loading:e.loading},"modal-image"]),src:e.currentMedia.url,alt:e.currentMedia.description,title:e.currentMedia.description,onLoad:t[0]||(t[0]=function(){return e.onImageLoaded&&e.onImageLoaded.apply(e,arguments)})},null,42,vs)]})),_:1},8,["allow-pan-min-scale","min-scale","reset-to-min-scale-limit"])]})),_:1},8,["direction","threshold","disable-click-threshold","onPreviewRequested","onSwipeFinished","onSwipelessClicked"])):(0,Co.kq)("",!0),"video"===e.type?((0,Co.wg)(),(0,Co.j4)(u,{key:1,class:"modal-image",attachment:e.currentMedia,controls:!0},null,8,["attachment"])):(0,Co.kq)("",!0),"audio"===e.type?((0,Co.wg)(),(0,Co.iD)("audio",{key:2,class:"modal-image",src:e.currentMedia.url,alt:e.currentMedia.description,title:e.currentMedia.description,controls:""},null,8,ws)):(0,Co.kq)("",!0),"flash"===e.type?((0,Co.wg)(),(0,Co.j4)(c,{key:3,class:"modal-image",src:e.currentMedia.url,alt:e.currentMedia.description,title:e.currentMedia.description},null,8,["src","alt","title"])):(0,Co.kq)("",!0),e.canNavigate?((0,Co.wg)(),(0,Co.iD)("button",{key:4,title:e.$t("media_modal.previous"),class:"modal-view-button modal-view-button-arrow modal-view-button-arrow--prev",onClick:t[1]||(t[1]=(0,wo.iM)((function(){return e.goPrev&&e.goPrev.apply(e,arguments)}),["stop","prevent"]))},[(0,Co.Wm)(l,{class:"button-icon arrow-icon",icon:"chevron-left"})],8,bs)):(0,Co.kq)("",!0),e.canNavigate?((0,Co.wg)(),(0,Co.iD)("button",{key:5,title:e.$t("media_modal.next"),class:"modal-view-button modal-view-button-arrow modal-view-button-arrow--next",onClick:t[2]||(t[2]=(0,wo.iM)((function(){return e.goNext&&e.goNext.apply(e,arguments)}),["stop","prevent"]))},[(0,Co.Wm)(l,{class:"button-icon arrow-icon",icon:"chevron-right"})],8,ys)):(0,Co.kq)("",!0),(0,Co._)("button",{class:"modal-view-button modal-view-button-hide",title:e.$t("media_modal.hide"),onClick:t[3]||(t[3]=(0,wo.iM)((function(){return e.hide&&e.hide.apply(e,arguments)}),["stop","prevent"]))},[(0,Co.Wm)(l,{class:"button-icon",icon:"times"})],8,Ds),e.description?((0,Co.wg)(),(0,Co.iD)("span",_s,(0,So.zw)(e.description),1)):(0,Co.kq)("",!0),(0,Co._)("span",ks,(0,So.zw)(e.$tc("media_modal.counter",e.currentIndex+1,{current:e.currentIndex+1,total:e.media.length})),1),e.loading?((0,Co.wg)(),(0,Co.iD)("span",Cs,[(0,Co.Wm)(l,{spin:"",icon:"circle-notch",size:"5x"})])):(0,Co.kq)("",!0)]})),_:1},8,["onBackdropClicked"])):(0,Co.kq)("",!0)}]]);var Ws={key:1,class:"side-drawer-logo-wrapper"},Hs=["src"],Vs={key:0},Ks={key:0,class:"badge badge-notification"},Gs={key:0},Ys={key:0,class:"badge badge-notification"},Js={key:0,class:"badge badge-notification"};function Qs(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Xs(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Qs(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Qs(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Ht.vI.add(Vt.$Wj,Vt.jLD,Vt.J9Y,Vt.lXL,Vt.qmU,Vt.FKd,Vt.Acd,Vt.wn1,Vt.HLz,Vt.b7W,Vt.sqG,Vt.GTN,Vt.Zrf);const ea={props:["logout"],data:function(){return{closed:!0,closeGesture:void 0}},created:function(){this.closeGesture=Ms.swipeGesture(Ms.DIRECTION_LEFT,this.toggleDrawer),this.currentUser&&this.currentUser.locked&&this.$store.dispatch("startFetchingFollowRequests")},components:{UserCard:xr.Z},computed:Xs(Xs({currentUser:function(){return this.$store.state.users.currentUser},shout:function(){return this.$store.state.shout.joined},unseenNotifications:function(){return(0,K.Km)(this.$store)},unseenNotificationsCount:function(){return this.unseenNotifications.length},suggestionsEnabled:function(){return this.$store.state.instance.suggestionsEnabled},logo:function(){return this.$store.state.instance.logo},hideSitename:function(){return this.$store.state.instance.hideSitename},sitename:function(){return this.$store.state.instance.name},followRequestCount:function(){return this.$store.state.api.followRequests.length},privateMode:function(){return this.$store.state.instance.private},federating:function(){return this.$store.state.instance.federating},timelinesRoute:function(){var e;return this.$store.state.interface.lastTimeline&&(e=this.$store.state.interface.lastTimeline),e=this.currentUser?"friends":"public-timeline",Yr.has(e)?{name:e,params:{username:this.currentUser.screen_name}}:{name:e}}},(0,s.rn)({pleromaChatMessagesAvailable:function(e){return e.instance.pleromaChatMessagesAvailable},supportsAnnouncements:function(e){return e.announcements.supportsAnnouncements}})),(0,s.Se)(["unreadChatCount","unreadAnnouncementCount"])),methods:{toggleDrawer:function(){this.closed=!this.closed},doLogout:function(){this.logout(),this.toggleDrawer()},touchStart:function(e){Ms.beginSwipe(e,this.closeGesture)},touchMove:function(e){Ms.updateSwipe(e,this.closeGesture)},openSettingsModal:function(){this.$store.dispatch("openSettingsModal","user")},openAdminModal:function(){this.$store.dispatch("openSettingsModal","admin")}}},ta=(0,Jo.Z)(ea,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("UserCard"),a=(0,Co.up)("FAIcon"),u=(0,Co.up)("router-link");return(0,Co.wg)(),(0,Co.iD)("div",{class:(0,So.C_)(["side-drawer-container",{"side-drawer-container-closed":e.closed,"side-drawer-container-open":!e.closed}])},[(0,Co._)("div",{class:(0,So.C_)(["side-drawer-darken",{"side-drawer-darken-closed":e.closed}])},null,2),(0,Co._)("div",{class:(0,So.C_)(["side-drawer",{"side-drawer-closed":e.closed}]),onTouchstart:t[19]||(t[19]=function(){return e.touchStart&&e.touchStart.apply(e,arguments)}),onTouchmove:t[20]||(t[20]=function(){return e.touchMove&&e.touchMove.apply(e,arguments)})},[(0,Co._)("div",{class:"side-drawer-heading",onClick:t[0]||(t[0]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[e.currentUser?((0,Co.wg)(),(0,Co.j4)(s,{key:0,"user-id":e.currentUser.id,"hide-bio":!0},null,8,["user-id"])):((0,Co.wg)(),(0,Co.iD)("div",Ws,[(0,Co._)("img",{src:e.logo},null,8,Hs),e.hideSitename?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.iD)("span",Vs,(0,So.zw)(e.sitename),1))]))]),(0,Co._)("ul",null,[e.currentUser?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.iD)("li",{key:0,onClick:t[1]||(t[1]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,Co.Wm)(u,{to:{name:"login"}},{default:(0,Co.w5)((function(){return[(0,Co.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"sign-in-alt"}),(0,Co.Uk)(" "+(0,So.zw)(e.$t("login.login")),1)]})),_:1})])),e.currentUser||!e.privateMode?((0,Co.wg)(),(0,Co.iD)("li",{key:1,onClick:t[2]||(t[2]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,Co.Wm)(u,{to:e.timelinesRoute},{default:(0,Co.w5)((function(){return[(0,Co.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"home"}),(0,Co.Uk)(" "+(0,So.zw)(e.$t("nav.timelines")),1)]})),_:1},8,["to"])])):(0,Co.kq)("",!0),e.currentUser?((0,Co.wg)(),(0,Co.iD)("li",{key:2,onClick:t[3]||(t[3]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,Co.Wm)(u,{to:{name:"lists"}},{default:(0,Co.w5)((function(){return[(0,Co.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"list"}),(0,Co.Uk)(" "+(0,So.zw)(e.$t("nav.lists")),1)]})),_:1})])):(0,Co.kq)("",!0),e.currentUser&&e.pleromaChatMessagesAvailable?((0,Co.wg)(),(0,Co.iD)("li",{key:3,onClick:t[4]||(t[4]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,Co.Wm)(u,{to:{name:"chats",params:{username:e.currentUser.screen_name}},style:{position:"relative"}},{default:(0,Co.w5)((function(){return[(0,Co.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"comments"}),(0,Co.Uk)(" "+(0,So.zw)(e.$t("nav.chats"))+" ",1),e.unreadChatCount?((0,Co.wg)(),(0,Co.iD)("span",Ks,(0,So.zw)(e.unreadChatCount),1)):(0,Co.kq)("",!0)]})),_:1},8,["to"])])):(0,Co.kq)("",!0)]),e.currentUser?((0,Co.wg)(),(0,Co.iD)("ul",Gs,[(0,Co._)("li",{onClick:t[5]||(t[5]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,Co.Wm)(u,{to:{name:"interactions",params:{username:e.currentUser.screen_name}}},{default:(0,Co.w5)((function(){return[(0,Co.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"bell"}),(0,Co.Uk)(" "+(0,So.zw)(e.$t("nav.interactions")),1)]})),_:1},8,["to"])]),e.currentUser.locked?((0,Co.wg)(),(0,Co.iD)("li",{key:0,onClick:t[6]||(t[6]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,Co.Wm)(u,{to:"/friend-requests"},{default:(0,Co.w5)((function(){return[(0,Co.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"user-plus"}),(0,Co.Uk)(" "+(0,So.zw)(e.$t("nav.friend_requests"))+" ",1),e.followRequestCount>0?((0,Co.wg)(),(0,Co.iD)("span",Ys,(0,So.zw)(e.followRequestCount),1)):(0,Co.kq)("",!0)]})),_:1})])):(0,Co.kq)("",!0),e.shout?((0,Co.wg)(),(0,Co.iD)("li",{key:1,onClick:t[7]||(t[7]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,Co.Wm)(u,{to:{name:"shout-panel"}},{default:(0,Co.w5)((function(){return[(0,Co.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"bullhorn"}),(0,Co.Uk)(" "+(0,So.zw)(e.$t("shoutbox.title")),1)]})),_:1})])):(0,Co.kq)("",!0)])):(0,Co.kq)("",!0),(0,Co._)("ul",null,[e.currentUser||!e.privateMode?((0,Co.wg)(),(0,Co.iD)("li",{key:0,onClick:t[8]||(t[8]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,Co.Wm)(u,{to:{name:"search"}},{default:(0,Co.w5)((function(){return[(0,Co.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"search"}),(0,Co.Uk)(" "+(0,So.zw)(e.$t("nav.search")),1)]})),_:1})])):(0,Co.kq)("",!0),e.currentUser&&e.suggestionsEnabled?((0,Co.wg)(),(0,Co.iD)("li",{key:1,onClick:t[9]||(t[9]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,Co.Wm)(u,{to:{name:"who-to-follow"}},{default:(0,Co.w5)((function(){return[(0,Co.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"user-plus"}),(0,Co.Uk)(" "+(0,So.zw)(e.$t("nav.who_to_follow")),1)]})),_:1})])):(0,Co.kq)("",!0),(0,Co._)("li",{onClick:t[11]||(t[11]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,Co._)("button",{class:"button-unstyled -link -fullwidth",onClick:t[10]||(t[10]=function(){return e.openSettingsModal&&e.openSettingsModal.apply(e,arguments)})},[(0,Co.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"cog"}),(0,Co.Uk)(" "+(0,So.zw)(e.$t("settings.settings")),1)])]),(0,Co._)("li",{onClick:t[12]||(t[12]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,Co.Wm)(u,{to:{name:"about"}},{default:(0,Co.w5)((function(){return[(0,Co.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"info-circle"}),(0,Co.Uk)(" "+(0,So.zw)(e.$t("nav.about")),1)]})),_:1})]),e.currentUser&&"admin"===e.currentUser.role?((0,Co.wg)(),(0,Co.iD)("li",{key:2,onClick:t[14]||(t[14]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,Co._)("button",{class:"button-unstyled -link -fullwidth",onClick:t[13]||(t[13]=(0,wo.iM)((function(){return e.openAdminModal&&e.openAdminModal.apply(e,arguments)}),["stop"]))},[(0,Co.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"tachometer-alt"}),(0,Co.Uk)(" "+(0,So.zw)(e.$t("nav.administration")),1)])])):(0,Co.kq)("",!0),e.currentUser&&e.supportsAnnouncements?((0,Co.wg)(),(0,Co.iD)("li",{key:3,onClick:t[15]||(t[15]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,Co.Wm)(u,{to:{name:"announcements"}},{default:(0,Co.w5)((function(){return[(0,Co.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"bullhorn"}),(0,Co.Uk)(" "+(0,So.zw)(e.$t("nav.announcements"))+" ",1),e.unreadAnnouncementCount?((0,Co.wg)(),(0,Co.iD)("span",Js,(0,So.zw)(e.unreadAnnouncementCount),1)):(0,Co.kq)("",!0)]})),_:1})])):(0,Co.kq)("",!0),e.currentUser?((0,Co.wg)(),(0,Co.iD)("li",{key:4,onClick:t[16]||(t[16]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,Co.Wm)(u,{to:{name:"edit-navigation"}},{default:(0,Co.w5)((function(){return[(0,Co.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"compass"}),(0,Co.Uk)(" "+(0,So.zw)(e.$t("nav.edit_nav_mobile")),1)]})),_:1})])):(0,Co.kq)("",!0),e.currentUser?((0,Co.wg)(),(0,Co.iD)("li",{key:5,onClick:t[18]||(t[18]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,Co._)("button",{class:"button-unstyled -link -fullwidth",onClick:t[17]||(t[17]=function(){return e.doLogout&&e.doLogout.apply(e,arguments)})},[(0,Co.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"sign-out-alt"}),(0,Co.Uk)(" "+(0,So.zw)(e.$t("login.logout")),1)])])):(0,Co.kq)("",!0)])],34),(0,Co._)("div",{class:(0,So.C_)(["side-drawer-click-outside",{"side-drawer-click-outside-closed":e.closed}]),onClick:t[21]||(t[21]=(0,wo.iM)((function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)}),["stop","prevent"]))},null,2)],2)}]]);var na=["title"],oa=n(23279),ra=n.n(oa);Ht.vI.add(Vt.IwR);var ia=new Set(["chats","chat","lists-edit"]);const sa={data:function(){return{hidden:!1,scrollingDown:!1,inputActive:!1,oldScrollPos:0,amountScrolled:0}},created:function(){this.autohideFloatingPostButton&&this.activateFloatingPostButtonAutohide(),window.addEventListener("resize",this.handleOSK)},unmounted:function(){this.autohideFloatingPostButton&&this.deactivateFloatingPostButtonAutohide(),window.removeEventListener("resize",this.handleOSK)},computed:{isLoggedIn:function(){return!!this.$store.state.users.currentUser},isHidden:function(){return!!ia.has(this.$route.name)||this.autohideFloatingPostButton&&(this.hidden||this.inputActive)},isPersistent:function(){return!!this.$store.getters.mergedConfig.alwaysShowNewPostButton},autohideFloatingPostButton:function(){return!!this.$store.getters.mergedConfig.autohideFloatingPostButton}},watch:{autohideFloatingPostButton:function(e){e?this.activateFloatingPostButtonAutohide():this.deactivateFloatingPostButtonAutohide()}},methods:{activateFloatingPostButtonAutohide:function(){window.addEventListener("scroll",this.handleScrollStart),window.addEventListener("scroll",this.handleScrollEnd)},deactivateFloatingPostButtonAutohide:function(){window.removeEventListener("scroll",this.handleScrollStart),window.removeEventListener("scroll",this.handleScrollEnd)},openPostForm:function(){this.$store.dispatch("openPostStatusModal")},handleOSK:function(){var e=window.innerWidth<350,t=e&&window.innerHeight<345,n=!e&&window.innerWidth<450&&window.innerHeight<560;this.inputActive=!(!t&&!n)},handleScrollStart:ra()((function(){window.scrollY>this.oldScrollPos?this.hidden=!0:this.hidden=!1,this.oldScrollPos=window.scrollY}),100,{leading:!0,trailing:!1}),handleScrollEnd:ra()((function(){this.hidden=!1,this.oldScrollPos=window.scrollY}),100,{leading:!1,trailing:!0})}},aa=(0,Jo.Z)(sa,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("FAIcon");return e.isLoggedIn?((0,Co.wg)(),(0,Co.iD)("button",{key:0,class:(0,So.C_)(["MobilePostButton button-default new-status-button",{hidden:e.isHidden,"always-show":e.isPersistent}]),title:e.$t("post_status.new_status"),onClick:t[0]||(t[0]=function(){return e.openPostForm&&e.openPostForm.apply(e,arguments)})},[(0,Co.Wm)(s,{icon:"pen"})],10,na)):(0,Co.kq)("",!0)}]]);var ua={class:"MobileNav"},ca={class:"item"},la=["title","aria-expanaded"],da={key:0,class:"alert-dot"},pa={class:"item right"},ma=["title"],ha={key:0,class:"alert-dot"},fa={class:"mobile-notifications-header"},ga={class:"title"},va=(0,Co._)("span",{class:"spacer"},null,-1),wa=["title"],ba=["title"],ya=n(93737),Da=n(1447);function _a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function ka(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?_a(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):_a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Ht.vI.add(Vt.NBC,Vt.qmU,Vt.xiG,Vt.FPD,Vt.Kl4);const Ca={components:{SideDrawer:ta,Notifications:ya.default,NavigationPins:vi,ConfirmModal:Da.Z},data:function(){return{notificationsCloseGesture:void 0,notificationsOpen:!1,notificationsAtTop:!0,showingConfirmLogout:!1}},created:function(){var e=this;this.notificationsCloseGesture=Ms.swipeGesture(Ms.DIRECTION_RIGHT,(function(){return e.closeMobileNotifications(!0)}),50)},computed:ka(ka({currentUser:function(){return this.$store.state.users.currentUser},unseenNotifications:function(){return(0,K.Km)(this.$store)},unseenNotificationsCount:function(){return this.unseenNotifications.length},hideSitename:function(){return this.$store.state.instance.hideSitename},sitename:function(){return this.$store.state.instance.name},isChat:function(){return"chat"===this.$route.name}},(0,s.Se)(["unreadChatCount","unreadAnnouncementCount"])),{},{chatsPinned:function(){return new Set(this.$store.state.serverSideStorage.prefsStorage.collections.pinnedNavItems).has("chats")},shouldConfirmLogout:function(){return this.$store.getters.mergedConfig.modalOnLogout}},(0,s.Se)(["unreadChatCount"])),methods:{toggleMobileSidebar:function(){this.$refs.sideDrawer.toggleDrawer()},openMobileNotifications:function(){this.notificationsOpen=!0},closeMobileNotifications:function(e){this.notificationsOpen&&(this.notificationsOpen=!1,e&&this.markNotificationsAsSeen())},notificationsTouchStart:function(e){Ms.beginSwipe(e,this.notificationsCloseGesture)},notificationsTouchMove:function(e){Ms.updateSwipe(e,this.notificationsCloseGesture)},scrollToTop:function(){window.scrollTo(0,0)},scrollMobileNotificationsToTop:function(){this.$refs.mobileNotifications.scrollTo(0,0)},showConfirmLogout:function(){this.showingConfirmLogout=!0},hideConfirmLogout:function(){this.showingConfirmLogout=!1},logout:function(){this.shouldConfirmLogout?this.showConfirmLogout():this.doLogout()},doLogout:function(){this.$router.replace("/main/public"),this.$store.dispatch("logout"),this.hideConfirmLogout()},markNotificationsAsSeen:function(){this.$store.dispatch("markNotificationsAsSeen")},onScroll:function(e){var t=e.target,n=t.scrollTop,o=t.clientHeight,r=t.scrollHeight;this.notificationsAtTop=n>0,n+o>=r&&this.$refs.notifications.fetchOlderNotifications()}},watch:{$route:function(){this.closeMobileNotifications()}}},Sa=(0,Jo.Z)(Ca,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("FAIcon"),a=(0,Co.up)("NavigationPins"),u=(0,Co.up)("FALayers"),c=(0,Co.up)("SideDrawer"),l=(0,Co.up)("confirm-modal");return(0,Co.wg)(),(0,Co.iD)("div",ua,[(0,Co._)("nav",{id:"nav",class:"mobile-nav",onClick:t[2]||(t[2]=function(t){return e.scrollToTop()})},[(0,Co._)("div",ca,[(0,Co._)("button",{class:"button-unstyled mobile-nav-button",title:e.$t("nav.mobile_sidebar"),"aria-expanaded":e.$refs.sideDrawer&&!e.$refs.sideDrawer.closed,onClick:t[0]||(t[0]=(0,wo.iM)((function(t){return e.toggleMobileSidebar()}),["stop","prevent"]))},[(0,Co.Wm)(s,{class:"fa-scale-110 fa-old-padding",icon:"bars"}),e.unreadChatCount&&!e.chatsPinned||e.unreadAnnouncementCount?((0,Co.wg)(),(0,Co.iD)("div",da)):(0,Co.kq)("",!0)],8,la),(0,Co.Wm)(a,{class:"pins"})]),(0,Co.Uk)(),(0,Co._)("div",pa,[e.currentUser?((0,Co.wg)(),(0,Co.iD)("button",{key:0,class:"button-unstyled mobile-nav-button",title:e.unseenNotificationsCount?e.$t("nav.mobile_notifications_unread_active"):e.$t("nav.mobile_notifications"),onClick:t[1]||(t[1]=(0,wo.iM)((function(t){return e.openMobileNotifications()}),["stop","prevent"]))},[(0,Co.Wm)(s,{class:"fa-scale-110 fa-old-padding",icon:"bell"}),e.unseenNotificationsCount?((0,Co.wg)(),(0,Co.iD)("div",ha)):(0,Co.kq)("",!0)],8,ma)):(0,Co.kq)("",!0)])]),e.currentUser?((0,Co.wg)(),(0,Co.iD)("aside",{key:0,class:(0,So.C_)(["mobile-notifications-drawer",{"-closed":!e.notificationsOpen}]),onTouchstart:t[6]||(t[6]=(0,wo.iM)((function(){return e.notificationsTouchStart&&e.notificationsTouchStart.apply(e,arguments)}),["stop"])),onTouchmove:t[7]||(t[7]=(0,wo.iM)((function(){return e.notificationsTouchMove&&e.notificationsTouchMove.apply(e,arguments)}),["stop"]))},[(0,Co._)("div",fa,[(0,Co._)("span",ga,(0,So.zw)(e.$t("notifications.notifications")),1),va,e.notificationsAtTop?((0,Co.wg)(),(0,Co.iD)("button",{key:0,class:"button-unstyled mobile-nav-button",title:e.$t("general.scroll_to_top"),onClick:t[3]||(t[3]=(0,wo.iM)((function(){return e.scrollMobileNotificationsToTop&&e.scrollMobileNotificationsToTop.apply(e,arguments)}),["stop","prevent"]))},[(0,Co.Wm)(u,{class:"fa-scale-110 fa-old-padding-layer"},{default:(0,Co.w5)((function(){return[(0,Co.Wm)(s,{icon:"arrow-up"}),(0,Co.Wm)(s,{icon:"minus",transform:"up-7"})]})),_:1})],8,wa)):(0,Co.kq)("",!0),(0,Co._)("button",{class:"button-unstyled mobile-nav-button",title:e.$t("nav.mobile_notifications_close"),onClick:t[4]||(t[4]=(0,wo.iM)((function(t){return e.closeMobileNotifications(!0)}),["stop","prevent"]))},[(0,Co.Wm)(s,{class:"fa-scale-110 fa-old-padding",icon:"times"})],8,ba)]),(0,Co._)("div",{id:"mobile-notifications",ref:"mobileNotifications",class:"mobile-notifications",onScroll:t[5]||(t[5]=function(){return e.onScroll&&e.onScroll.apply(e,arguments)})},null,544)],34)):(0,Co.kq)("",!0),(0,Co.Wm)(c,{ref:"sideDrawer",logout:e.logout},null,8,["logout"]),((0,Co.wg)(),(0,Co.j4)(Co.lR,{to:"#modal"},[e.showingConfirmLogout?((0,Co.wg)(),(0,Co.j4)(l,{key:0,title:e.$t("login.logout_confirm_title"),"confirm-text":e.$t("login.logout_confirm_accept_button"),"cancel-text":e.$t("login.logout_confirm_cancel_button"),onAccepted:e.doLogout,onCancelled:e.hideConfirmLogout},{default:(0,Co.w5)((function(){return[(0,Co.Uk)((0,So.zw)(e.$t("login.logout_confirm")),1)]})),_:1},8,["title","confirm-text","cancel-text","onAccepted","onCancelled"])):(0,Co.kq)("",!0)]))])}]]);var ja={class:"inner-nav"},Fa={class:"item sitename"},Aa=["src"],Oa={class:"item right actions"},Ea=["title"],za=["title"],Pa=(0,Co._)("span",{class:"spacer"},null,-1),Ia=["title"],xa=["title","aria-expanded"],Ta=["placeholder"],$a=["title"],Ba=["title","aria-expanded"],Ua=(0,Co._)("span",{class:"spacer"},null,-1),Ma=(0,Co._)("span",{class:"spacer"},null,-1);Ht.vI.add(Vt.NBC,Vt.wn1);const La={data:function(){return{searchTerm:void 0,hidden:!0,error:!1}},watch:{$route:function(e){"search"===e.name&&(this.searchTerm=e.query.query)}},methods:{find:function(e){this.$router.push({name:"search",query:{query:e}}),this.$refs.searchInput.focus()},toggleHidden:function(){var e=this;this.hidden=!this.hidden,this.$emit("toggled",this.hidden),this.$nextTick((function(){e.hidden||e.$refs.searchInput.focus()}))}}},Ra=(0,Jo.Z)(La,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("FAIcon");return(0,Co.wg)(),(0,Co.iD)("div",{class:(0,So.C_)(["SearchBar",{"-expanded":!e.hidden}])},[e.hidden?((0,Co.wg)(),(0,Co.iD)("button",{key:0,class:"button-unstyled nav-icon",title:e.$t("nav.search"),type:"button","aria-expanded":!e.hidden,onClick:t[0]||(t[0]=(0,wo.iM)((function(){return e.toggleHidden&&e.toggleHidden.apply(e,arguments)}),["prevent","stop"]))},[(0,Co.Wm)(s,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"search"})],8,xa)):((0,Co.wg)(),(0,Co.iD)(Co.HY,{key:1},[(0,Co.wy)((0,Co._)("input",{id:"search-bar-input",ref:"searchInput","onUpdate:modelValue":t[1]||(t[1]=function(t){return e.searchTerm=t}),class:"search-bar-input",placeholder:e.$t("nav.search"),type:"text",onKeyup:t[2]||(t[2]=(0,wo.D2)((function(t){return e.find(e.searchTerm)}),["enter"]))},null,40,Ta),[[wo.nr,e.searchTerm]]),(0,Co._)("button",{class:"button-default search-button",type:"submit",title:e.$t("nav.search"),onClick:t[3]||(t[3]=function(t){return e.find(e.searchTerm)})},[(0,Co.Wm)(s,{"fixed-width":"",icon:"search"})],8,$a),(0,Co._)("button",{class:"button-unstyled cancel-search",type:"button",title:e.$t("nav.search_close"),"aria-expanded":!e.hidden,onClick:t[4]||(t[4]=(0,wo.iM)((function(){return e.toggleHidden&&e.toggleHidden.apply(e,arguments)}),["prevent","stop"]))},[(0,Co.Wm)(s,{"fixed-width":"",icon:"times",class:"cancel-icon fa-scale-110 fa-old-padding"})],8,Ba),Ua,Ma],64))],2)}]]);Ht.vI.add(Vt.$Wj,Vt.jLD,Vt.J9Y,Vt.lXL,Vt.qmU,Vt.FKd,Vt.Acd,Vt.wn1,Vt.HLz,Vt.b7W,Vt.sqG);const qa={components:{SearchBar:Ra,ConfirmModal:Da.Z},data:function(){return{searchBarHidden:!0,supportsMask:window.CSS&&window.CSS.supports&&(window.CSS.supports("mask-size","contain")||window.CSS.supports("-webkit-mask-size","contain")||window.CSS.supports("-moz-mask-size","contain")||window.CSS.supports("-ms-mask-size","contain")||window.CSS.supports("-o-mask-size","contain")),showingConfirmLogout:!1}},computed:{enableMask:function(){return this.supportsMask&&this.$store.state.instance.logoMask},logoStyle:function(){return{visibility:this.enableMask?"hidden":"visible"}},logoMaskStyle:function(){return this.enableMask?{"mask-image":"url(".concat(this.$store.state.instance.logo,")")}:{"background-color":this.enableMask?"":"transparent"}},logoBgStyle:function(){return Object.assign({margin:"".concat(this.$store.state.instance.logoMargin," 0"),opacity:this.searchBarHidden?1:0},this.enableMask?{}:{"background-color":this.enableMask?"":"transparent"})},logo:function(){return this.$store.state.instance.logo},sitename:function(){return this.$store.state.instance.name},hideSitename:function(){return this.$store.state.instance.hideSitename},logoLeft:function(){return this.$store.state.instance.logoLeft},currentUser:function(){return this.$store.state.users.currentUser},privateMode:function(){return this.$store.state.instance.private},shouldConfirmLogout:function(){return this.$store.getters.mergedConfig.modalOnLogout}},methods:{scrollToTop:function(){window.scrollTo(0,0)},showConfirmLogout:function(){this.showingConfirmLogout=!0},hideConfirmLogout:function(){this.showingConfirmLogout=!1},logout:function(){this.shouldConfirmLogout?this.showConfirmLogout():this.doLogout()},doLogout:function(){this.$router.replace("/main/public"),this.$store.dispatch("logout"),this.hideConfirmLogout()},onSearchBarToggled:function(e){this.searchBarHidden=e},openSettingsModal:function(){this.$store.dispatch("openSettingsModal","user")},openAdminModal:function(){this.$store.dispatch("openSettingsModal","admin")}}},Na=(0,Jo.Z)(qa,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("router-link"),a=(0,Co.up)("search-bar"),u=(0,Co.up)("FAIcon"),c=(0,Co.up)("confirm-modal");return(0,Co.wg)(),(0,Co.iD)("nav",{id:"nav",class:(0,So.C_)(["DesktopNav",{"-logoLeft":e.logoLeft}]),onClick:t[4]||(t[4]=function(t){return e.scrollToTop()})},[(0,Co._)("div",ja,[(0,Co._)("div",Fa,[e.hideSitename?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.j4)(s,{key:0,class:"site-name",to:{name:"root"},"active-class":"home"},{default:(0,Co.w5)((function(){return[(0,Co.Uk)((0,So.zw)(e.sitename),1)]})),_:1}))]),(0,Co.Wm)(s,{class:"logo",to:{name:"root"},style:(0,So.j5)(e.logoBgStyle),title:e.sitename},{default:(0,Co.w5)((function(){return[(0,Co._)("div",{class:"mask",style:(0,So.j5)(e.logoMaskStyle)},null,4),(0,Co._)("img",{src:e.logo,style:(0,So.j5)(e.logoStyle)},null,12,Aa)]})),_:1},8,["style","title"]),(0,Co._)("div",Oa,[e.currentUser||!e.privateMode?((0,Co.wg)(),(0,Co.j4)(a,{key:0,onToggled:e.onSearchBarToggled,onClick:t[0]||(t[0]=(0,wo.iM)((function(){}),["stop"]))},null,8,["onToggled"])):(0,Co.kq)("",!0),(0,Co._)("button",{class:"button-unstyled nav-icon",title:e.$t("nav.preferences"),onClick:t[1]||(t[1]=(0,wo.iM)((function(){return e.openSettingsModal&&e.openSettingsModal.apply(e,arguments)}),["stop"]))},[(0,Co.Wm)(u,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"cog"})],8,Ea),e.currentUser&&"admin"===e.currentUser.role?((0,Co.wg)(),(0,Co.iD)("button",{key:1,class:"button-unstyled nav-icon",target:"_blank",title:e.$t("nav.administration"),onClick:t[2]||(t[2]=(0,wo.iM)((function(){return e.openAdminModal&&e.openAdminModal.apply(e,arguments)}),["stop"]))},[(0,Co.Wm)(u,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"tachometer-alt"})],8,za)):(0,Co.kq)("",!0),Pa,e.currentUser?((0,Co.wg)(),(0,Co.iD)("button",{key:2,class:"button-unstyled nav-icon",title:e.$t("login.logout"),onClick:t[3]||(t[3]=(0,wo.iM)((function(){return e.logout&&e.logout.apply(e,arguments)}),["stop","prevent"]))},[(0,Co.Wm)(u,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"sign-out-alt"})],8,Ia)):(0,Co.kq)("",!0)])]),((0,Co.wg)(),(0,Co.j4)(Co.lR,{to:"#modal"},[e.showingConfirmLogout?((0,Co.wg)(),(0,Co.j4)(c,{key:0,title:e.$t("login.logout_confirm_title"),"confirm-text":e.$t("login.logout_confirm_accept_button"),"cancel-text":e.$t("login.logout_confirm_cancel_button"),onAccepted:e.doLogout,onCancelled:e.hideConfirmLogout},{default:(0,Co.w5)((function(){return[(0,Co.Uk)((0,So.zw)(e.$t("login.logout_confirm")),1)]})),_:1},8,["title","confirm-text","cancel-text","onAccepted","onCancelled"])):(0,Co.kq)("",!0)]))],2)}]]);var Za={class:"user-reporting-panel panel"},Wa={class:"panel-heading"},Ha={class:"panel-body"},Va={class:"user-reporting-panel-left"},Ka=["placeholder"],Ga={key:0},Ya=["disabled"],Ja={key:0,class:"alert error"},Qa={class:"user-reporting-panel-right"},Xa={class:"status-fadein user-reporting-panel-sitem"},eu=n(96686),tu=n(88369),nu=n(12061);function ou(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}const ru={components:{Status:eu.default,List:tu.Z,Checkbox:wi.Z,Modal:Wt.Z,UserLink:nu.Z},data:function(){return{comment:"",forward:!1,statusIdsToReport:[],processing:!1,error:!1}},computed:{reportModal:function(){return this.$store.state.reports.reportModal},isLoggedIn:function(){return!!this.$store.state.users.currentUser},isOpen:function(){return this.isLoggedIn&&this.reportModal.activated},userId:function(){return this.reportModal.userId},user:function(){return this.$store.getters.findUser(this.userId)},remoteInstance:function(){return!this.user.is_local&&this.user.screen_name.substr(this.user.screen_name.indexOf("@")+1)},statuses:function(){return this.reportModal.statuses},preTickedIds:function(){return this.reportModal.preTickedIds}},watch:{userId:"resetState",preTickedIds:function(e){this.statusIdsToReport=e}},methods:{resetState:function(){this.comment="",this.forward=!1,this.statusIdsToReport=this.preTickedIds,this.processing=!1,this.error=!1},closeModal:function(){this.$store.dispatch("closeUserReportingModal")},reportUser:function(){var e=this;this.processing=!0,this.error=!1;var t={userId:this.userId,comment:this.comment,forward:this.forward,statusIds:this.statusIdsToReport};this.$store.state.api.backendInteractor.reportUser(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ou(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ou(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},t)).then((function(){e.processing=!1,e.resetState(),e.closeModal()})).catch((function(){e.processing=!1,e.error=!0}))},clearError:function(){this.error=!1},isChecked:function(e){return-1!==this.statusIdsToReport.indexOf(e)},toggleStatus:function(e,t){e!==this.isChecked(t)&&(e?this.statusIdsToReport.push(t):this.statusIdsToReport.splice(this.statusIdsToReport.indexOf(t),1))},resize:function(e){var t=e.target||e;t instanceof window.Element&&(t.style.height="auto",t.style.height="".concat(t.scrollHeight,"px"),""===t.value&&(t.style.height=null))}}},iu=(0,Jo.Z)(ru,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("UserLink"),a=(0,Co.up)("i18n-t"),u=(0,Co.up)("Checkbox"),c=(0,Co.up)("Status"),l=(0,Co.up)("List"),d=(0,Co.up)("Modal");return e.isOpen?((0,Co.wg)(),(0,Co.j4)(d,{key:0,onBackdropClicked:e.closeModal},{default:(0,Co.w5)((function(){return[(0,Co._)("div",Za,[(0,Co._)("div",Wa,[(0,Co.Wm)(a,{tag:"div",keypath:"user_reporting.title",class:"title"},{default:(0,Co.w5)((function(){return[(0,Co.Wm)(s,{user:e.user},null,8,["user"])]})),_:1})]),(0,Co._)("div",Ha,[(0,Co._)("div",Va,[(0,Co._)("div",null,[(0,Co._)("p",null,(0,So.zw)(e.$t("user_reporting.add_comment_description")),1),(0,Co.wy)((0,Co._)("textarea",{"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.comment=t}),class:"form-control",placeholder:e.$t("user_reporting.additional_comments"),rows:"1",onInput:t[1]||(t[1]=function(){return e.resize&&e.resize.apply(e,arguments)})},null,40,Ka),[[wo.nr,e.comment]])]),e.user.is_local?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.iD)("div",Ga,[(0,Co._)("p",null,(0,So.zw)(e.$t("user_reporting.forward_description")),1),(0,Co.Wm)(u,{modelValue:e.forward,"onUpdate:modelValue":t[2]||(t[2]=function(t){return e.forward=t})},{default:(0,Co.w5)((function(){return[(0,Co.Uk)((0,So.zw)(e.$t("user_reporting.forward_to",[e.remoteInstance])),1)]})),_:1},8,["modelValue"])])),(0,Co._)("div",null,[(0,Co._)("button",{class:"btn button-default",disabled:e.processing,onClick:t[3]||(t[3]=function(){return e.reportUser&&e.reportUser.apply(e,arguments)})},(0,So.zw)(e.$t("user_reporting.submit")),9,Ya),e.error?((0,Co.wg)(),(0,Co.iD)("div",Ja,(0,So.zw)(e.$t("user_reporting.generic_error")),1)):(0,Co.kq)("",!0)])]),(0,Co._)("div",Qa,[(0,Co.Wm)(l,{items:e.statuses},{item:(0,Co.w5)((function(t){var n=t.item;return[(0,Co._)("div",Xa,[(0,Co.Wm)(c,{"in-conversation":!1,focused:!1,statusoid:n},null,8,["statusoid"]),(0,Co.Wm)(u,{"model-value":e.isChecked(n.id),"onUpdate:modelValue":function(t){return e.toggleStatus(t,n.id)}},null,8,["model-value","onUpdate:modelValue"])])]})),_:1},8,["items"])])])])]})),_:1},8,["onBackdropClicked"])):(0,Co.kq)("",!0)}]]);var su={class:"edit-form-modal-panel panel"},au={class:"panel-heading"},uu=n(7257);const cu={components:{PostStatusForm:Ir.Z,Modal:Wt.Z},data:function(){return{resettingForm:!1}},computed:{isLoggedIn:function(){return!!this.$store.state.users.currentUser},modalActivated:function(){return this.$store.state.editStatus.modalActivated},isFormVisible:function(){return this.isLoggedIn&&!this.resettingForm&&this.modalActivated},params:function(){return this.$store.state.editStatus.params||{}}},watch:{params:function(e,t){var n=this;Dt()(e,"statusId")!==Dt()(t,"statusId")&&(this.resettingForm=!0,this.$nextTick((function(){n.resettingForm=!1})))},isFormVisible:function(e){var t=this;e&&this.$nextTick((function(){return t.$el&&t.$el.querySelector("textarea").focus()}))}},methods:{doEditStatus:function(e){var t=e.status,n=e.spoilerText,o=e.sensitive,r=e.media,i=e.contentType,s=e.poll,a={store:this.$store,statusId:this.$store.state.editStatus.params.statusId,status:t,spoilerText:n,sensitive:o,poll:s,media:r,contentType:i};return uu.Z.editStatus(a).then((function(e){return e})).catch((function(e){return console.error("Error editing status",e),{error:e.message}}))},closeModal:function(){this.$store.dispatch("closeEditStatusModal")}}},lu=(0,Jo.Z)(cu,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("PostStatusForm"),a=(0,Co.up)("Modal");return e.isFormVisible?((0,Co.wg)(),(0,Co.j4)(a,{key:0,class:"edit-form-modal-view",onBackdropClicked:e.closeModal},{default:(0,Co.w5)((function(){return[(0,Co._)("div",su,[(0,Co._)("div",au,(0,So.zw)(e.$t("post_status.edit_status")),1),(0,Co.Wm)(s,(0,Co.dG)({class:"panel-body"},e.params,{"post-handler":e.doEditStatus,"disable-polls":!0,"disable-visibility-selector":!0,onPosted:e.closeModal}),null,16,["post-handler","onPosted"])])]})),_:1},8,["onBackdropClicked"])):(0,Co.kq)("",!0)}]]);var du={class:"post-form-modal-panel panel"},pu={class:"panel-heading"};const mu={components:{PostStatusForm:Ir.Z,Modal:Wt.Z},data:function(){return{resettingForm:!1}},computed:{isLoggedIn:function(){return!!this.$store.state.users.currentUser},modalActivated:function(){return this.$store.state.postStatus.modalActivated},isFormVisible:function(){return this.isLoggedIn&&!this.resettingForm&&this.modalActivated},params:function(){return this.$store.state.postStatus.params||{}}},watch:{params:function(e,t){var n=this;Dt()(e,"repliedUser.id")!==Dt()(t,"repliedUser.id")&&(this.resettingForm=!0,this.$nextTick((function(){n.resettingForm=!1})))},isFormVisible:function(e){var t=this;e&&this.$nextTick((function(){return t.$el&&t.$el.querySelector("textarea").focus()}))}},methods:{closeModal:function(){this.$store.dispatch("closePostStatusModal")},resetAndClose:function(){this.$store.dispatch("resetPostStatusModal"),this.$store.dispatch("closePostStatusModal")}}},hu=(0,Jo.Z)(mu,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("PostStatusForm"),a=(0,Co.up)("Modal");return e.isLoggedIn&&!e.resettingForm?((0,Co.wg)(),(0,Co.j4)(a,{key:0,"is-open":e.modalActivated,class:"post-form-modal-view",onBackdropClicked:e.closeModal},{default:(0,Co.w5)((function(){return[(0,Co._)("div",du,[(0,Co._)("div",pu,(0,So.zw)(e.$t("post_status.new_status")),1),(0,Co.Wm)(s,(0,Co.dG)({class:"panel-body"},e.params,{onPosted:e.resetAndClose}),null,16,["onPosted"])])]})),_:1},8,["is-open","onBackdropClicked"])):(0,Co.kq)("",!0)}]]);var fu={class:"status-history-modal-panel panel"},gu={class:"panel-heading"},vu={class:"panel-body"},wu={key:0,class:"history-body"};const bu={components:{Modal:Wt.Z,Status:eu.default},data:function(){return{statuses:[]}},computed:{modalActivated:function(){return this.$store.state.statusHistory.modalActivated},params:function(){return this.$store.state.statusHistory.params},statusId:function(){return this.params.id},historyCount:function(){return this.statuses.length},history:function(){return this.statuses}},watch:{params:function(e,t){var n=Dt()(e,"id")!==Dt()(t,"id");n&&this.resetHistory(),(n||Dt()(e,"edited_at")!==Dt()(t,"edited_at"))&&this.fetchStatusHistory()}},methods:{resetHistory:function(){this.statuses=[]},fetchStatusHistory:function(){var e=this;this.$store.dispatch("fetchStatusHistory",this.params).then((function(t){e.statuses=t}))},closeModal:function(){this.$store.dispatch("closeStatusHistoryModal")}}},yu=(0,Jo.Z)(bu,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("status"),a=(0,Co.up)("Modal");return e.modalActivated?((0,Co.wg)(),(0,Co.j4)(a,{key:0,class:"status-history-modal-view",onBackdropClicked:e.closeModal},{default:(0,Co.w5)((function(){return[(0,Co._)("div",fu,[(0,Co._)("div",gu,(0,So.zw)(e.$t("status.status_history"))+" ("+(0,So.zw)(e.historyCount)+") ",1),(0,Co._)("div",vu,[e.historyCount>0?((0,Co.wg)(),(0,Co.iD)("div",wu,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.history,(function(e){return(0,Co.wg)(),(0,Co.j4)(s,{key:e.id,statusoid:e,"is-preview":!0,class:"conversation-status status-fadein panel-body"},null,8,["statusoid"])})),128))])):(0,Co.kq)("",!0)])])]})),_:1},8,["onBackdropClicked"])):(0,Co.kq)("",!0)}]]);var Du={class:"global-notice-list"},_u={class:"notice-message"},ku=["onClick"];Ht.vI.add(Vt.NBC);const Cu={computed:{notices:function(){return this.$store.state.interface.globalNotices}},methods:{closeNotice:function(e){this.$store.dispatch("removeGlobalNotice",e)}}},Su=(0,Jo.Z)(Cu,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("FAIcon");return(0,Co.wg)(),(0,Co.iD)("div",Du,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.notices,(function(t,n){return(0,Co.wg)(),(0,Co.iD)("div",{key:n,class:(0,So.C_)(["alert global-notice",(0,d.Z)({},"global-"+t.level,!0)])},[(0,Co._)("div",_u,(0,So.zw)(e.$t(t.messageKey,t.messageArgs)),1),(0,Co._)("button",{class:"button-unstyled close-notice",onClick:function(n){return e.closeNotice(t)}},[(0,Co.Wm)(s,{class:"fa-scale-110 fa-old-padding",icon:"times"})],8,ku)],2)})),128))])}]]);function ju(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}const Fu={name:"app",components:{UserPanel:Br,NavPanel:_i,Notifications:(0,Co.RC)((function(){return Promise.resolve().then(n.bind(n,93737))})),InstanceSpecificPanel:Ai,FeaturesPanel:Ri,WhoToFollowPanel:ts,ShoutPanel:gs,MediaModal:Zs,SideDrawer:ta,MobilePostStatusButton:aa,MobileNav:Sa,DesktopNav:Na,SettingsModal:(0,Co.RC)((function(){return n.e(7586).then(n.bind(n,27586))})),UpdateNotification:(0,Co.RC)((function(){return n.e(6464).then(n.bind(n,16464))})),UserReportingModal:iu,PostStatusModal:hu,EditStatusModal:lu,StatusHistoryModal:yu,GlobalNoticeList:Su},data:function(){return{mobileActivePanel:"timeline"}},created:function(){var e=this.$store.getters.mergedConfig.interfaceLanguage;this.$store.dispatch("setOption",{name:"interfaceLanguage",value:e}),window.addEventListener("resize",this.updateMobileState)},unmounted:function(){window.removeEventListener("resize",this.updateMobileState)},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ju(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ju(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({classes:function(){return[{"-reverse":this.reverseLayout,"-no-sticky-headers":this.noSticky,"-has-new-post-button":this.newPostButtonShown},"-"+this.layoutType]},navClasses:function(){var e=this.$store.getters.mergedConfig.navbarColumnStretch;return["-"+this.layoutType].concat((0,l.Z)(e?["-column-stretch"]:[]))},currentUser:function(){return this.$store.state.users.currentUser},userBackground:function(){return this.currentUser.background_image},instanceBackground:function(){return this.mergedConfig.hideInstanceWallpaper?null:this.$store.state.instance.background},background:function(){return this.userBackground||this.instanceBackground},bgStyle:function(){if(this.background)return{"--body-background-image":"url(".concat(this.background,")")}},shout:function(){return this.$store.state.shout.joined},suggestionsEnabled:function(){return this.$store.state.instance.suggestionsEnabled},showInstanceSpecificPanel:function(){return this.$store.state.instance.showInstanceSpecificPanel&&!this.$store.getters.mergedConfig.hideISP&&this.$store.state.instance.instanceSpecificPanelContent},isChats:function(){return"chat"===this.$route.name||"chats"===this.$route.name},isListEdit:function(){return"lists-edit"===this.$route.name},newPostButtonShown:function(){return!this.isChats&&!this.isListEdit&&(this.$store.getters.mergedConfig.alwaysShowNewPostButton||"mobile"===this.layoutType)},showFeaturesPanel:function(){return this.$store.state.instance.showFeaturesPanel},editingAvailable:function(){return this.$store.state.instance.editingAvailable},shoutboxPosition:function(){return this.$store.getters.mergedConfig.alwaysShowNewPostButton||!1},hideShoutbox:function(){return this.$store.getters.mergedConfig.hideShoutbox},layoutType:function(){return this.$store.state.interface.layoutType},privateMode:function(){return this.$store.state.instance.private},reverseLayout:function(){var e=this.$store.getters.mergedConfig,t=e.thirdColumnMode,n=e.sidebarRight;return"wide"!==this.layoutType||"notifications"===t?n:!n},noSticky:function(){return this.$store.getters.mergedConfig.disableStickyHeaders},showScrollbars:function(){return this.$store.getters.mergedConfig.showScrollbars}},(0,s.Se)(["mergedConfig"])),methods:{updateMobileState:function(){this.$store.dispatch("setLayoutWidth",Te()),this.$store.dispatch("setLayoutHeight",$e())}}},Au=(0,Jo.Z)(Fu,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("MobileNav"),a=(0,Co.up)("DesktopNav"),u=(0,Co.up)("Notifications"),c=(0,Co.up)("user-panel"),l=(0,Co.up)("nav-panel"),d=(0,Co.up)("instance-specific-panel"),p=(0,Co.up)("features-panel"),m=(0,Co.up)("who-to-follow-panel"),h=(0,Co.up)("router-link"),f=(0,Co.up)("router-view"),g=(0,Co.up)("MediaModal"),v=(0,Co.up)("shout-panel"),w=(0,Co.up)("MobilePostStatusButton"),b=(0,Co.up)("UserReportingModal"),y=(0,Co.up)("PostStatusModal"),D=(0,Co.up)("EditStatusModal"),_=(0,Co.up)("StatusHistoryModal"),k=(0,Co.up)("SettingsModal"),C=(0,Co.up)("UpdateNotification"),S=(0,Co.up)("GlobalNoticeList");return(0,Co.wg)(),(0,Co.iD)("div",{id:"app-loaded",style:(0,So.j5)(e.bgStyle)},[jo,"mobile"===e.layoutType?((0,Co.wg)(),(0,Co.j4)(s,{key:0})):((0,Co.wg)(),(0,Co.j4)(a,{key:1,class:(0,So.C_)(e.navClasses)},null,8,["class"])),e.currentUser?((0,Co.wg)(),(0,Co.j4)(u,{key:2})):(0,Co.kq)("",!0),(0,Co._)("div",{id:"content",class:(0,So.C_)(["app-layout container",e.classes])},[Fo,(0,Co._)("div",{id:"sidebar",class:(0,So.C_)(["column -scrollable",{"-show-scrollbar":e.showScrollbars}])},[(0,Co.Wm)(c),"mobile"!==e.layoutType?((0,Co.wg)(),(0,Co.iD)(Co.HY,{key:0},[(0,Co.Wm)(l),e.showInstanceSpecificPanel?((0,Co.wg)(),(0,Co.j4)(d,{key:0})):(0,Co.kq)("",!0),!e.currentUser&&e.showFeaturesPanel?((0,Co.wg)(),(0,Co.j4)(p,{key:1})):(0,Co.kq)("",!0),e.currentUser&&e.suggestionsEnabled?((0,Co.wg)(),(0,Co.j4)(m,{key:2})):(0,Co.kq)("",!0),Ao],64)):(0,Co.kq)("",!0)],2),(0,Co._)("main",{id:"main-scroller",class:(0,So.C_)(["column main",{"-full-height":e.isChats||e.isListEdit}])},[e.currentUser?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.iD)("div",Oo,[(0,Co.Wm)(h,{to:{name:"login"},class:"panel-body"},{default:(0,Co.w5)((function(){return[(0,Co.Uk)((0,So.zw)(e.$t("login.hint")),1)]})),_:1})])),(0,Co.Wm)(f)],2),(0,Co._)("div",{id:"notifs-column",class:(0,So.C_)(["column -scrollable",{"-show-scrollbar":e.showScrollbars}])},null,2)],2),(0,Co.Wm)(g),e.currentUser&&e.shout&&!e.hideShoutbox?((0,Co.wg)(),(0,Co.j4)(v,{key:3,floating:!0,class:(0,So.C_)(["floating-shout mobile-hidden",{"-left":e.shoutboxPosition}])},null,8,["class"])):(0,Co.kq)("",!0),(0,Co.Wm)(w),(0,Co.Wm)(b),(0,Co.Wm)(y),e.editingAvailable?((0,Co.wg)(),(0,Co.j4)(D,{key:4})):(0,Co.kq)("",!0),e.editingAvailable?((0,Co.wg)(),(0,Co.j4)(_,{key:5})):(0,Co.kq)("",!0),(0,Co.Wm)(k),(0,Co.Wm)(C),(0,Co.Wm)(S)],4)}]]);var Ou={key:1,class:"rightside-button"},Eu=["title"],zu={key:0,class:"rightside-button"},Pu=["title"],Iu={class:"alert-badge"},xu=["title"],Tu={ref:"timeline",class:"timeline",role:"feed"},$u={key:0,class:"new-status-notification text-center faint"},Bu={key:1,class:"new-status-notification text-center faint"},Uu={class:"new-status-notification text-center"},Mu={key:3,class:"new-status-notification text-center"},Lu=n(24350),Ru=n.n(Lu),qu=n(23493),Nu=n.n(qu),Zu={key:0,class:"panel-heading conversation-heading -sticky"},Wu={class:"title"},Hu={class:"conversation-body panel-body"},Vu={key:0,class:"thread-body"},Ku={key:0,class:"conversation-dive-to-top-level-box"},Gu={key:1,class:"thread-ancestors"},Yu={key:0,class:"thread-ancestor-dive-box"},Ju={class:"thread-ancestor-dive-box-inner"},Qu={key:1,class:"thread-body"},Xu=n(66678),ec=n.n(Xu),tc={class:"thread-tree"},nc={key:0,class:"thread-tree-replies"},oc={key:1,class:"thread-tree-replies thread-tree-replies-hidden"};Ht.vI.add(Vt.Sbq,Vt.cLY);const rc={components:{Status:eu.default},name:"ThreadTree",props:{depth:Number,status:Object,inProfile:Boolean,conversation:Array,collapsable:Boolean,isExpanded:Boolean,pinnedStatusIdsObject:Object,profileUserId:String,focused:Function,highlight:String,getReplies:Function,setHighlight:Function,toggleExpanded:Function,simple:Boolean,toggleThreadDisplay:Function,threadDisplayStatus:Object,showThreadRecursively:Function,totalReplyCount:Object,totalReplyDepth:Object,statusContentProperties:Object,setStatusContentProperty:Function,toggleStatusContentProperty:Function,dive:Function},computed:{suspendable:function(){var e=!this.$refs.statusComponent||this.$refs.statusComponent.suspendable;return this.$refs.childComponent?e&&this.$refs.childComponent.every((function(e){return e.suspendable})):e},reverseLookupTable:function(){return this.conversation.reduce((function(e,t,n){return e[t.id]=n,e}),{})},currentReplies:function(){var e=this;return this.getReplies(this.status.id).map((function(t){var n=t.id;return e.statusById(n)}))},threadShowing:function(){return"showing"===this.threadDisplayStatus[this.status.id]},currentProp:function(){return this.statusContentProperties[this.status.id]}},methods:{statusById:function(e){return this.conversation[this.reverseLookupTable[e]]},collapseThread:function(){},showThread:function(){},showAllSubthreads:function(){},toggleCurrentProp:function(e){this.toggleStatusContentProperty(this.status.id,e)},setCurrentProp:function(e,t){this.setStatusContentProperty(this.status.id,e)}}},ic=(0,Jo.Z)(rc,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("status"),a=(0,Co.up)("thread-tree"),u=(0,Co.up)("FAIcon"),c=(0,Co.up)("i18n-t");return(0,Co.wg)(),(0,Co.iD)("article",tc,[((0,Co.wg)(),(0,Co.j4)(s,{key:e.status.id,ref:"statusComponent","inline-expanded":e.collapsable&&e.isExpanded,statusoid:e.status,expandable:!e.isExpanded,"show-pinned":e.pinnedStatusIdsObject&&e.pinnedStatusIdsObject[e.status.id],focused:e.focused(e.status.id),"in-conversation":e.isExpanded,highlight:e.highlight,replies:e.getReplies(e.status.id),"in-profile":e.inProfile,"profile-user-id":e.profileUserId,class:"conversation-status conversation-status-treeview status-fadein panel-body","simple-tree":e.simple,"controlled-thread-display-status":e.threadDisplayStatus[e.status.id],"controlled-toggle-thread-display":function(){return e.toggleThreadDisplay(e.status.id)},"controlled-showing-tall":e.currentProp.showingTall,"controlled-expanding-subject":e.currentProp.expandingSubject,"controlled-showing-long-subject":e.currentProp.showingLongSubject,"controlled-replying":e.currentProp.replying,"controlled-media-playing":e.currentProp.mediaPlaying,"controlled-toggle-showing-tall":function(){return e.toggleCurrentProp("showingTall")},"controlled-toggle-expanding-subject":function(){return e.toggleCurrentProp("expandingSubject")},"controlled-toggle-showing-long-subject":function(){return e.toggleCurrentProp("showingLongSubject")},"controlled-toggle-replying":function(){return e.toggleCurrentProp("replying")},"controlled-set-media-playing":function(t){return e.setCurrentProp("mediaPlaying",t)},dive:e.dive?function(){return e.dive(e.status.id)}:void 0,onGoto:e.setHighlight,onToggleExpanded:e.toggleExpanded},null,8,["inline-expanded","statusoid","expandable","show-pinned","focused","in-conversation","highlight","replies","in-profile","profile-user-id","simple-tree","controlled-thread-display-status","controlled-toggle-thread-display","controlled-showing-tall","controlled-expanding-subject","controlled-showing-long-subject","controlled-replying","controlled-media-playing","controlled-toggle-showing-tall","controlled-toggle-expanding-subject","controlled-toggle-showing-long-subject","controlled-toggle-replying","controlled-set-media-playing","dive","onGoto","onToggleExpanded"])),e.currentReplies.length&&e.threadShowing?((0,Co.wg)(),(0,Co.iD)("div",nc,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.currentReplies,(function(t){return(0,Co.wg)(),(0,Co.j4)(a,{key:t.id,ref_for:!0,ref:"childComponent",depth:e.depth+1,status:t,"in-profile":e.inProfile,conversation:e.conversation,collapsable:e.collapsable,"is-expanded":e.isExpanded,"pinned-status-ids-object":e.pinnedStatusIdsObject,"profile-user-id":e.profileUserId,focused:e.focused,"get-replies":e.getReplies,highlight:e.highlight,"set-highlight":e.setHighlight,"toggle-expanded":e.toggleExpanded,simple:e.simple,"toggle-thread-display":e.toggleThreadDisplay,"thread-display-status":e.threadDisplayStatus,"show-thread-recursively":e.showThreadRecursively,"total-reply-count":e.totalReplyCount,"total-reply-depth":e.totalReplyDepth,"status-content-properties":e.statusContentProperties,"set-status-content-property":e.setStatusContentProperty,"toggle-status-content-property":e.toggleStatusContentProperty,dive:e.dive},null,8,["depth","status","in-profile","conversation","collapsable","is-expanded","pinned-status-ids-object","profile-user-id","focused","get-replies","highlight","set-highlight","toggle-expanded","simple","toggle-thread-display","thread-display-status","show-thread-recursively","total-reply-count","total-reply-depth","status-content-properties","set-status-content-property","toggle-status-content-property","dive"])})),128))])):(0,Co.kq)("",!0),e.currentReplies.length&&!e.threadShowing?((0,Co.wg)(),(0,Co.iD)("div",oc,[e.simple?((0,Co.wg)(),(0,Co.j4)(c,{key:0,scope:"global",tag:"button",keypath:"status.thread_follow_with_icon",class:"button-unstyled -link thread-tree-show-replies-button",onClick:t[0]||(t[0]=(0,wo.iM)((function(t){return e.dive(e.status.id)}),["prevent"]))},{icon:(0,Co.w5)((function(){return[(0,Co.Wm)(u,{icon:"angle-double-right"})]})),text:(0,Co.w5)((function(){return[(0,Co._)("span",null,(0,So.zw)(e.$tc("status.thread_follow",e.totalReplyCount[e.status.id],{numStatus:e.totalReplyCount[e.status.id]})),1)]})),_:1})):((0,Co.wg)(),(0,Co.j4)(c,{key:1,scope:"global",tag:"button",keypath:"status.thread_show_full_with_icon",class:"button-unstyled -link thread-tree-show-replies-button",onClick:t[1]||(t[1]=(0,wo.iM)((function(t){return e.showThreadRecursively(e.status.id)}),["prevent"]))},{icon:(0,Co.w5)((function(){return[(0,Co.Wm)(u,{icon:"angle-double-down"})]})),text:(0,Co.w5)((function(){return[(0,Co._)("span",null,(0,So.zw)(e.$tc("status.thread_show_full",e.totalReplyCount[e.status.id],{numStatus:e.totalReplyCount[e.status.id],depth:e.totalReplyDepth[e.status.id]})),1)]})),_:1}))])):(0,Co.kq)("",!0)])}]]);var sc={class:"dropdown-menu",role:"menu"},ac={key:0,role:"group"},uc=["aria-checked"],cc=["aria-checked"],lc=["aria-checked"],dc={key:3,role:"separator",class:"dropdown-divider"},pc=["aria-checked"],mc=["aria-checked"],hc=["aria-checked"],fc=n(84535);function gc(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function vc(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?gc(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):gc(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Ht.vI.add(Vt.G_j,Vt.yGG,Vt.klh);const wc={props:{conversation:Boolean},components:{Popover:fc.default},methods:{setReplyVisibility:function(e){this.$store.dispatch("setOption",{name:"replyVisibility",value:e}),this.$store.dispatch("queueFlushAll")},openTab:function(e){this.$store.dispatch("openSettingsModalTab",e)}},computed:vc(vc({},(0,s.Se)(["mergedConfig"])),{},{loggedIn:function(){return!!this.$store.state.users.currentUser},replyVisibilitySelf:{get:function(){return"self"===this.mergedConfig.replyVisibility},set:function(){this.setReplyVisibility("self")}},replyVisibilityFollowing:{get:function(){return"following"===this.mergedConfig.replyVisibility},set:function(){this.setReplyVisibility("following")}},replyVisibilityAll:{get:function(){return"all"===this.mergedConfig.replyVisibility},set:function(){this.setReplyVisibility("all")}},hideMedia:{get:function(){return this.mergedConfig.hideAttachments||this.mergedConfig.hideAttachmentsInConv},set:function(){var e=!this.hideMedia;this.$store.dispatch("setOption",{name:"hideAttachments",value:e}),this.$store.dispatch("setOption",{name:"hideAttachmentsInConv",value:e})}},hideMutedPosts:{get:function(){return this.mergedConfig.hideFilteredStatuses},set:function(){var e=!this.hideMutedPosts;this.$store.dispatch("setOption",{name:"hideFilteredStatuses",value:e})}},muteBotStatuses:{get:function(){return this.mergedConfig.muteBotStatuses},set:function(){var e=!this.muteBotStatuses;this.$store.dispatch("setOption",{name:"muteBotStatuses",value:e})}}})},bc=(0,Jo.Z)(wc,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("FAIcon"),a=(0,Co.up)("Popover");return(0,Co.wg)(),(0,Co.j4)(a,{trigger:"click",class:"QuickFilterSettings","bound-to":{x:"container"},"trigger-attrs":{title:e.$t("timeline.quick_filter_settings")}},{content:(0,Co.w5)((function(){return[(0,Co._)("div",sc,[e.loggedIn?((0,Co.wg)(),(0,Co.iD)("div",ac,[e.conversation?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.iD)("button",{key:0,class:"button-default dropdown-item","aria-checked":e.replyVisibilityAll,role:"menuitemradio",onClick:t[0]||(t[0]=function(t){return e.replyVisibilityAll=!0})},[(0,Co._)("span",{class:(0,So.C_)(["menu-checkbox -radio",{"menu-checkbox-checked":e.replyVisibilityAll}]),"aria-hidden":!0},null,2),(0,Co.Uk)((0,So.zw)(e.$t("settings.reply_visibility_all")),1)],8,uc)),e.conversation?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.iD)("button",{key:1,class:"button-default dropdown-item","aria-checked":e.replyVisibilityFollowing,role:"menuitemradio",onClick:t[1]||(t[1]=function(t){return e.replyVisibilityFollowing=!0})},[(0,Co._)("span",{class:(0,So.C_)(["menu-checkbox -radio",{"menu-checkbox-checked":e.replyVisibilityFollowing}]),"aria-hidden":!0},null,2),(0,Co.Uk)((0,So.zw)(e.$t("settings.reply_visibility_following_short")),1)],8,cc)),e.conversation?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.iD)("button",{key:2,class:"button-default dropdown-item","aria-checked":e.replyVisibilitySelf,role:"menuitemradio",onClick:t[2]||(t[2]=function(t){return e.replyVisibilitySelf=!0})},[(0,Co._)("span",{class:(0,So.C_)(["menu-checkbox -radio",{"menu-checkbox-checked":e.replyVisibilitySelf}]),"aria-hidden":!0},null,2),(0,Co.Uk)((0,So.zw)(e.$t("settings.reply_visibility_self_short")),1)],8,lc)),e.conversation?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.iD)("div",dc))])):(0,Co.kq)("",!0),(0,Co._)("button",{class:"button-default dropdown-item",role:"menuitemcheckbox","aria-checked":e.muteBotStatuses,onClick:t[3]||(t[3]=function(t){return e.muteBotStatuses=!e.muteBotStatuses})},[(0,Co._)("span",{class:(0,So.C_)(["menu-checkbox",{"menu-checkbox-checked":e.muteBotStatuses}]),"aria-hidden":!0},null,2),(0,Co.Uk)((0,So.zw)(e.$t("settings.mute_bot_posts")),1)],8,pc),(0,Co._)("button",{class:"button-default dropdown-item",role:"menuitemcheckbox","aria-checked":e.hideMedia,onClick:t[4]||(t[4]=function(t){return e.hideMedia=!e.hideMedia})},[(0,Co._)("span",{class:(0,So.C_)(["menu-checkbox",{"menu-checkbox-checked":e.hideMedia}]),"aria-hidden":!0},null,2),(0,Co.Uk)((0,So.zw)(e.$t("settings.hide_media_previews")),1)],8,mc),(0,Co._)("button",{class:"button-default dropdown-item",role:"menuitemcheckbox","aria-checked":e.hideMutedPosts,onClick:t[5]||(t[5]=function(t){return e.hideMutedPosts=!e.hideMutedPosts})},[(0,Co._)("span",{class:(0,So.C_)(["menu-checkbox",{"menu-checkbox-checked":e.hideMutedPosts}]),"aria-hidden":!0},null,2),(0,Co.Uk)((0,So.zw)(e.$t("settings.hide_all_muted_posts")),1)],8,hc),(0,Co._)("button",{class:"button-default dropdown-item dropdown-item-icon",role:"menuitem",onClick:t[6]||(t[6]=function(t){return e.openTab("filtering")})},[(0,Co.Wm)(s,{icon:"font"}),(0,Co.Uk)((0,So.zw)(e.$t("settings.word_filter_and_more")),1)])])]})),trigger:(0,Co.w5)((function(){return[(0,Co.Wm)(s,{icon:"filter"})]})),_:1},8,["trigger-attrs"])}]]);var yc={class:"dropdown-menu",role:"menu"},Dc={role:"group"},_c=["aria-checked"],kc=["aria-checked"],Cc=(0,Co._)("div",{role:"separator",class:"dropdown-divider"},null,-1),Sc=["aria-checked"],jc=["aria-checked"],Fc=["aria-checked"];function Ac(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Oc(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ac(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ac(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Ht.vI.add(Vt.Zrf,Vt.lCn,Vt.xiG,Vt.klh);const Ec={props:{conversation:Boolean},components:{Popover:fc.default},methods:{setConversationDisplay:function(e){this.$store.dispatch("setOption",{name:"conversationDisplay",value:e})},openTab:function(e){this.$store.dispatch("openSettingsModalTab",e)}},computed:Oc(Oc({},(0,s.Se)(["mergedConfig"])),{},{loggedIn:function(){return!!this.$store.state.users.currentUser},conversationDisplay:{get:function(){return this.mergedConfig.conversationDisplay},set:function(e){this.setConversationDisplay(e)}},autoUpdate:{get:function(){return this.mergedConfig.streaming},set:function(){var e=!this.autoUpdate;this.$store.dispatch("setOption",{name:"streaming",value:e})}},collapseWithSubjects:{get:function(){return this.mergedConfig.collapseMessageWithSubject},set:function(){var e=!this.collapseWithSubjects;this.$store.dispatch("setOption",{name:"collapseMessageWithSubject",value:e})}},showUserAvatars:{get:function(){return this.mergedConfig.mentionLinkShowAvatar},set:function(){var e=!this.showUserAvatars;console.log(e),this.$store.dispatch("setOption",{name:"mentionLinkShowAvatar",value:e})}},muteBotStatuses:{get:function(){return this.mergedConfig.muteBotStatuses},set:function(){var e=!this.muteBotStatuses;this.$store.dispatch("setOption",{name:"muteBotStatuses",value:e})}}})},zc=(0,Jo.Z)(Ec,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("FAIcon"),a=(0,Co.up)("Popover");return(0,Co.wg)(),(0,Co.j4)(a,{trigger:"click",class:"QuickViewSettings","bound-to":{x:"container"},"trigger-attrs":{title:e.$t("timeline.quick_view_settings")}},{content:(0,Co.w5)((function(){return[(0,Co._)("div",yc,[(0,Co._)("div",Dc,[(0,Co._)("button",{class:"button-default dropdown-item","aria-checked":"tree"===e.conversationDisplay,role:"menuitemradio",onClick:t[0]||(t[0]=function(t){return e.conversationDisplay="tree"})},[(0,Co._)("span",{class:(0,So.C_)(["menu-checkbox -radio",{"menu-checkbox-checked":"tree"===e.conversationDisplay}]),"aria-hidden":!0},null,2),(0,Co.Wm)(s,{icon:"folder-tree","aria-hidden":!0}),(0,Co.Uk)(" "+(0,So.zw)(e.$t("settings.conversation_display_tree_quick")),1)],8,_c),(0,Co._)("button",{class:"button-default dropdown-item","aria-checked":"linear"===e.conversationDisplay,role:"menuitemradio",onClick:t[1]||(t[1]=function(t){return e.conversationDisplay="linear"})},[(0,Co._)("span",{class:(0,So.C_)(["menu-checkbox -radio",{"menu-checkbox-checked":"linear"===e.conversationDisplay}]),"aria-hidden":!0},null,2),(0,Co.Wm)(s,{icon:"list","aria-hidden":!0}),(0,Co.Uk)(" "+(0,So.zw)(e.$t("settings.conversation_display_linear_quick")),1)],8,kc)]),Cc,(0,Co._)("button",{class:"button-default dropdown-item",role:"menuitemcheckbox","aria-checked":e.showUserAvatars,onClick:t[2]||(t[2]=function(t){return e.showUserAvatars=!e.showUserAvatars})},[(0,Co._)("span",{class:(0,So.C_)(["menu-checkbox",{"menu-checkbox-checked":e.showUserAvatars}]),"aria-hidden":!0},null,2),(0,Co.Uk)((0,So.zw)(e.$t("settings.mention_link_show_avatar_quick")),1)],8,Sc),e.conversation?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.iD)("button",{key:0,class:"button-default dropdown-item",role:"menuitemcheckbox","aria-checked":e.autoUpdate,onClick:t[3]||(t[3]=function(t){return e.autoUpdate=!e.autoUpdate})},[(0,Co._)("span",{class:(0,So.C_)(["menu-checkbox",{"menu-checkbox-checked":e.autoUpdate}]),"aria-hidden":!0},null,2),(0,Co.Uk)((0,So.zw)(e.$t("settings.auto_update")),1)],8,jc)),e.conversation?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.iD)("button",{key:1,class:"button-default dropdown-item",role:"menuitemcheckbox","aria-checked":e.collapseWithSubjects,onClick:t[4]||(t[4]=function(t){return e.collapseWithSubjects=!e.collapseWithSubjects})},[(0,Co._)("span",{class:(0,So.C_)(["menu-checkbox",{"menu-checkbox-checked":e.collapseWithSubjects}]),"aria-hidden":!0},null,2),(0,Co.Uk)((0,So.zw)(e.$t("settings.collapse_subject")),1)],8,Fc)),(0,Co._)("button",{class:"button-default dropdown-item dropdown-item-icon",role:"menuitem",onClick:t[5]||(t[5]=function(t){return e.openTab("general")})},[(0,Co.Wm)(s,{icon:"wrench"}),(0,Co.Uk)((0,So.zw)(e.$t("settings.more_settings")),1)])])]})),trigger:(0,Co.w5)((function(){return[(0,Co.Wm)(s,{icon:"bars"})]})),_:1},8,["trigger-attrs"])}]]);function Pc(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Ic(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Pc(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Pc(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Ht.vI.add(Vt.Sbq,Vt.UXu,Vt.A35);var xc=function(e,t){var n="retweet"===e.type?e.retweeted_status.id:e.id,o="retweet"===t.type?t.retweeted_status.id:t.id,r=Number(n),i=Number(o),s=!Number.isNaN(r),a=!Number.isNaN(i);return s&&a?r<i?-1:1:s&&!a?-1:!s&&a?1:n<o?-1:1};const Tc={data:function(){return{highlight:null,expanded:!1,threadDisplayStatusObject:{},statusContentPropertiesObject:{},inlineDivePosition:null}},props:["statusId","collapsable","isPage","pinnedStatusIdsObject","inProfile","profileUserId","virtualHidden"],created:function(){this.isPage&&this.fetchConversation()},computed:Ic(Ic({maxDepthToShowByDefault:function(){var e=this.$store.getters.mergedConfig.maxDepthInThread-2;return e>=1?e:1},streamingEnabled:function(){return this.mergedConfig.useStreamingApi&&this.mastoUserSocketStatus===h._z.JOINED},displayStyle:function(){return this.$store.getters.mergedConfig.conversationDisplay},isTreeView:function(){return!this.isLinearView},treeViewIsSimple:function(){return!this.$store.getters.mergedConfig.conversationTreeAdvanced},isLinearView:function(){return"linear"===this.displayStyle},shouldFadeAncestors:function(){return this.$store.getters.mergedConfig.conversationTreeFadeAncestors},otherRepliesButtonPosition:function(){return this.$store.getters.mergedConfig.conversationOtherRepliesButton},showOtherRepliesButtonBelowStatus:function(){return"below"===this.otherRepliesButtonPosition},showOtherRepliesButtonInsideStatus:function(){return"inside"===this.otherRepliesButtonPosition},suspendable:function(){return this.isTreeView?Object.entries(this.statusContentProperties).every((function(e){var t=(0,c.Z)(e,2),n=(t[0],t[1]);return!n.replying&&0===n.mediaPlaying.length})):!this.$refs.statusComponent||!this.$refs.statusComponent[0]||this.$refs.statusComponent.every((function(e){return e.suspendable}))},hideStatus:function(){return this.virtualHidden&&this.suspendable},status:function(){return this.$store.state.statuses.allStatusesObject[this.statusId]},originalStatusId:function(){return this.status.retweeted_status?this.status.retweeted_status.id:this.statusId},conversationId:function(){return this.getConversationId(this.statusId)},conversation:function(){if(!this.status)return[];if(!this.isExpanded)return[this.status];var e=ec()(this.$store.state.statuses.conversationsObject[this.conversationId]),t=R()(e,{id:this.originalStatusId});return-1!==t&&(e[t]=this.status),function(e,t){return(e="retweet"===t.type?In()(e,(function(e){return"retweet"===e.type||e.id!==t.retweeted_status.id})):In()(e,(function(e){return"retweet"!==e.type}))).filter((function(e){return e})).sort(xc)}(e,this.status)},statusMap:function(){return this.conversation.reduce((function(e,t){return e[t.id]=t,e}),{})},threadTree:function(){var e=this,t=this.conversation.reduce((function(e,t,n){return e[t.id]=n,e}),{}),n=function n(o,r){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return r.map((function(r){return s[r]?[]:(s[r]=!0,[{status:e.conversation[t[r]],id:r,depth:i},n(o,o[r],i+1,s)].reduce((function(e,t){return e.concat(t)}),[]))})).reduce((function(e,t){return e.concat(t)}),[])}(this.conversation.reduce((function(t,n){var o=n.id;return t.forest[o]=e.getReplies(o).map((function(e){return e.id})),t}),{forest:{}}).forest,this.topLevel.map((function(e){return e.id})));return n},replyIds:function(){var e=this;return this.conversation.map((function(e){return e.id})).reduce((function(t,n){return t[n]=(e.replies[n]||[]).map((function(e){return e.id})),t}),{})},totalReplyCount:function(){var e=this,t={};return this.conversation.map((function(e){return e.id})).map((function n(o){return t[o]||(t[o]=1+e.replyIds[o].map((function(e){return n(e)})).reduce((function(e,t){return e+t}),0)),t[o]})),Object.keys(t).reduce((function(e,n){return e[n]=t[n]-1,e}),{})},totalReplyDepth:function(){var e=this,t={};return this.conversation.map((function(e){return e.id})).map((function n(o){return t[o]||(t[o]=1+e.replyIds[o].map((function(e){return n(e)})).reduce((function(e,t){return e>t?e:t}),0)),t[o]})),Object.keys(t).reduce((function(e,n){return e[n]=t[n]-1,e}),{})},depths:function(){return this.threadTree.reduce((function(e,t){return e[t.id]=t.depth,e}),{})},topLevel:function(){var e=this;return this.conversation.reduce((function(t,n){return t.filter((function(t){return-1===e.getReplies(n.id).map((function(e){return e.id})).indexOf(t.id)}))}),this.conversation)},otherTopLevelCount:function(){return this.topLevel.length-1},showingTopLevel:function(){return this.canDive&&this.diveRoot?[this.statusMap[this.diveRoot]]:this.topLevel},diveRoot:function(){var e=this.inlineDivePosition||this.statusId;return this.parentOf(e)?e:null},diveDepth:function(){return this.canDive&&this.diveRoot?this.depths[this.diveRoot]:0},diveMode:function(){return this.canDive&&!!this.diveRoot},shouldShowAllConversationButton:function(){return this.isTreeView&&this.isExpanded&&this.diveMode&&this.topLevel.length>1},shouldShowAncestors:function(){return this.isTreeView&&this.isExpanded&&this.ancestorsOf(this.diveRoot).length},replies:function(){var e=1;return Ue()(this.conversation,(function(t,n){var o=n.id,r=n.in_reply_to_status_id;return r&&(t[r]=t[r]||[],t[r].push({name:"#".concat(e),id:o})),e++,t}),{})},isExpanded:function(){return!(!this.expanded&&!this.isPage)},hiddenStyle:function(){var e=this.status&&this.status.virtualHeight||"120px";return this.virtualHidden?{height:e}:{}},threadDisplayStatus:function(){var e=this;return this.conversation.reduce((function(t,n){var o=n.id,r=e.depths[o],i=e.threadDisplayStatusObject[o]?e.threadDisplayStatusObject[o]:r-e.diveDepth<=e.maxDepthToShowByDefault?"showing":"hidden";return t[o]=i,t}),{})},statusContentProperties:function(){var e=this;return this.conversation.reduce((function(t,n){var o,r=n.id,i=(o={showingTall:!1,expandingSubject:!1,showingLongSubject:!1,isReplying:!1,mediaPlaying:[]},e.statusContentPropertiesObject[r]?Ic(Ic({},o),e.statusContentPropertiesObject[r]):o);return t[r]=i,t}),{})},canDive:function(){return this.isTreeView&&this.isExpanded},focused:function(){var e=this;return function(t){return e.isExpanded&&t===e.highlight}},maybeHighlight:function(){return this.isExpanded?this.highlight:null}},(0,s.Se)(["mergedConfig"])),(0,s.rn)({mastoUserSocketStatus:function(e){return e.api.mastoUserSocketStatus}})),components:{Status:eu.default,ThreadTree:ic,QuickFilterSettings:bc,QuickViewSettings:zc},watch:{statusId:function(e,t){var n=this.getConversationId(e),o=this.getConversationId(t);n&&o&&n===o?this.setHighlight(this.originalStatusId):this.fetchConversation()},expanded:function(e){e?this.fetchConversation():this.resetDisplayState()},virtualHidden:function(e){this.$store.dispatch("setVirtualHeight",{statusId:this.statusId,height:"".concat(this.$el.clientHeight,"px")})}},methods:{fetchConversation:function(){var e=this;this.status?this.$store.state.api.backendInteractor.fetchConversation({id:this.statusId}).then((function(t){var n=t.ancestors,o=t.descendants;e.$store.dispatch("addNewStatuses",{statuses:n}),e.$store.dispatch("addNewStatuses",{statuses:o}),e.setHighlight(e.originalStatusId)})):this.$store.state.api.backendInteractor.fetchStatus({id:this.statusId}).then((function(t){e.$store.dispatch("addNewStatuses",{statuses:[t]}),e.fetchConversation()}))},getReplies:function(e){return this.replies[e]||[]},getHighlight:function(){return this.isExpanded?this.highlight:null},setHighlight:function(e){e&&(this.highlight=e,this.streamingEnabled||this.$store.dispatch("fetchStatus",e),this.$store.dispatch("fetchFavsAndRepeats",e),this.$store.dispatch("fetchEmojiReactionsBy",e))},toggleExpanded:function(){this.expanded=!this.expanded},getConversationId:function(e){var t=this.$store.state.statuses.allStatusesObject[e];return Dt()(t,"retweeted_status.statusnet_conversation_id",Dt()(t,"statusnet_conversation_id"))},setThreadDisplay:function(e,t){this.threadDisplayStatusObject=Ic(Ic({},this.threadDisplayStatusObject),{},(0,d.Z)({},e,t))},toggleThreadDisplay:function(e){var t="showing"===this.threadDisplayStatus[e]?"hidden":"showing";this.setThreadDisplay(e,t)},setThreadDisplayRecursively:function(e,t){var n=this;this.setThreadDisplay(e,t),this.getReplies(e).map((function(e){return e.id})).map((function(e){return n.setThreadDisplayRecursively(e,t)}))},showThreadRecursively:function(e){this.setThreadDisplayRecursively(e,"showing")},setStatusContentProperty:function(e,t,n){this.statusContentPropertiesObject=Ic(Ic({},this.statusContentPropertiesObject),{},(0,d.Z)({},e,Ic(Ic({},this.statusContentPropertiesObject[e]),{},(0,d.Z)({},t,n))))},toggleStatusContentProperty:function(e,t){this.setStatusContentProperty(e,t,!this.statusContentProperties[e][t])},leastVisibleAncestor:function(e){for(var t=e,n=this.parentOf(t);t;){if("showing"===this.threadDisplayStatus[n])return t;n=this.parentOf(n),t=this.parentOf(t)}return this.topLevel[0]?this.topLevel[0].id:void 0},diveIntoStatus:function(e,t){this.tryScrollTo(e)},diveToTopLevel:function(){this.tryScrollTo(this.topLevelAncestorOrSelfId(this.diveRoot)||this.topLevel[0].id)},undive:function(){this.inlineDivePosition=null,this.setHighlight(this.statusId)},tryScrollTo:function(e){var t=this;e&&(this.isPage?this.$router.push({name:"conversation",params:{id:e}}):this.inlineDivePosition=e,this.$nextTick((function(){t.setHighlight(e)})))},goToCurrent:function(){this.tryScrollTo(this.diveRoot||this.topLevel[0].id)},statusById:function(e){return this.statusMap[e]},parentOf:function(e){var t=this.statusById(e);if(t){var n=t.in_reply_to_status_id;if(this.statusMap[n])return n}},parentOrSelf:function(e){return this.parentOf(e)||e},ancestorsOf:function(e){for(var t=[],n=this.parentOf(e);n;)t.unshift(this.statusMap[n]),n=this.parentOf(n);return t},topLevelAncestorOrSelfId:function(e){for(var t=e,n=this.parentOf(e);n;)t=this.parentOf(t),n=this.parentOf(n);return t},resetDisplayState:function(){this.undive(),this.threadDisplayStatusObject={}}}},$c=(0,Jo.Z)(Tc,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("QuickFilterSettings"),a=(0,Co.up)("QuickViewSettings"),u=(0,Co.up)("FAIcon"),c=(0,Co.up)("i18n-t"),l=(0,Co.up)("status"),d=(0,Co.up)("thread-tree");return e.hideStatus?((0,Co.wg)(),(0,Co.iD)("div",{key:1,style:(0,So.j5)(e.hiddenStyle)},null,4)):((0,Co.wg)(),(0,Co.iD)("div",{key:0,style:(0,So.j5)(e.hiddenStyle),class:(0,So.C_)(["Conversation",{"-expanded":e.isExpanded,panel:e.isExpanded}])},[e.isExpanded?((0,Co.wg)(),(0,Co.iD)("div",Zu,[(0,Co._)("span",Wu,(0,So.zw)(e.$t("timeline.conversation")),1),e.collapsable?((0,Co.wg)(),(0,Co.iD)("button",{key:0,class:"button-unstyled -link",onClick:t[0]||(t[0]=(0,wo.iM)((function(){return e.toggleExpanded&&e.toggleExpanded.apply(e,arguments)}),["prevent"]))},(0,So.zw)(e.$t("timeline.collapse")),1)):(0,Co.kq)("",!0),e.collapsable?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.j4)(s,{key:1,conversation:!0,class:"rightside-button"})),e.collapsable?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.j4)(a,{key:2,conversation:!0,class:"rightside-button"}))])):(0,Co.kq)("",!0),(0,Co._)("div",Hu,[e.isTreeView?((0,Co.wg)(),(0,Co.iD)("div",Vu,[e.shouldShowAllConversationButton?((0,Co.wg)(),(0,Co.iD)("div",Ku,[(0,Co.Wm)(c,{keypath:"status.show_all_conversation_with_icon",tag:"button",class:"button-unstyled -link",scope:"global",onClick:(0,wo.iM)(e.diveToTopLevel,["prevent"])},{icon:(0,Co.w5)((function(){return[(0,Co.Wm)(u,{icon:"angle-double-left"})]})),text:(0,Co.w5)((function(){return[(0,Co._)("span",null,(0,So.zw)(e.$tc("status.show_all_conversation",e.otherTopLevelCount,{numStatus:e.otherTopLevelCount})),1)]})),_:1},8,["onClick"])])):(0,Co.kq)("",!0),e.shouldShowAncestors?((0,Co.wg)(),(0,Co.iD)("div",Gu,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.ancestorsOf(e.diveRoot),(function(t){return(0,Co.wg)(),(0,Co.iD)("article",{key:t.id,class:(0,So.C_)(["thread-ancestor",{"thread-ancestor-has-other-replies":e.getReplies(t.id).length>1,"-faded":e.shouldFadeAncestors}])},[(0,Co.Wm)(l,{ref_for:!0,ref:"statusComponent","inline-expanded":e.collapsable&&e.isExpanded,statusoid:t,expandable:!e.isExpanded,"show-pinned":e.pinnedStatusIdsObject&&e.pinnedStatusIdsObject[t.id],focused:e.focused(t.id),"in-conversation":e.isExpanded,highlight:e.getHighlight(),replies:e.getReplies(t.id),"in-profile":e.inProfile,"profile-user-id":e.profileUserId,class:"conversation-status status-fadein panel-body","simple-tree":e.treeViewIsSimple,"toggle-thread-display":e.toggleThreadDisplay,"thread-display-status":e.threadDisplayStatus,"show-thread-recursively":e.showThreadRecursively,"total-reply-count":e.totalReplyCount,"total-reply-depth":e.totalReplyDepth,"show-other-replies-as-button":e.showOtherRepliesButtonInsideStatus,dive:function(){return e.diveIntoStatus(t.id)},"controlled-showing-tall":e.statusContentProperties[t.id].showingTall,"controlled-expanding-subject":e.statusContentProperties[t.id].expandingSubject,"controlled-showing-long-subject":e.statusContentProperties[t.id].showingLongSubject,"controlled-replying":e.statusContentProperties[t.id].replying,"controlled-media-playing":e.statusContentProperties[t.id].mediaPlaying,"controlled-toggle-showing-tall":function(){return e.toggleStatusContentProperty(t.id,"showingTall")},"controlled-toggle-expanding-subject":function(){return e.toggleStatusContentProperty(t.id,"expandingSubject")},"controlled-toggle-showing-long-subject":function(){return e.toggleStatusContentProperty(t.id,"showingLongSubject")},"controlled-toggle-replying":function(){return e.toggleStatusContentProperty(t.id,"replying")},"controlled-set-media-playing":function(n){return e.toggleStatusContentProperty(t.id,"mediaPlaying",n)},onGoto:e.setHighlight,onToggleExpanded:e.toggleExpanded},null,8,["inline-expanded","statusoid","expandable","show-pinned","focused","in-conversation","highlight","replies","in-profile","profile-user-id","simple-tree","toggle-thread-display","thread-display-status","show-thread-recursively","total-reply-count","total-reply-depth","show-other-replies-as-button","dive","controlled-showing-tall","controlled-expanding-subject","controlled-showing-long-subject","controlled-replying","controlled-media-playing","controlled-toggle-showing-tall","controlled-toggle-expanding-subject","controlled-toggle-showing-long-subject","controlled-toggle-replying","controlled-set-media-playing","onGoto","onToggleExpanded"]),e.showOtherRepliesButtonBelowStatus&&e.getReplies(t.id).length>1?((0,Co.wg)(),(0,Co.iD)("div",Yu,[(0,Co._)("div",Ju,[(0,Co.Wm)(c,{tag:"button",scope:"global",keypath:"status.ancestor_follow_with_icon",class:"button-unstyled -link thread-tree-show-replies-button",onClick:(0,wo.iM)((function(n){return e.diveIntoStatus(t.id)}),["prevent"])},{icon:(0,Co.w5)((function(){return[(0,Co.Wm)(u,{icon:"angle-double-right"})]})),text:(0,Co.w5)((function(){return[(0,Co._)("span",null,(0,So.zw)(e.$tc("status.ancestor_follow",e.getReplies(t.id).length-1,{numReplies:e.getReplies(t.id).length-1})),1)]})),_:2},1032,["onClick"])])])):(0,Co.kq)("",!0)],2)})),128))])):(0,Co.kq)("",!0),((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.showingTopLevel,(function(t){return(0,Co.wg)(),(0,Co.j4)(d,{key:t.id,ref_for:!0,ref:"statusComponent",depth:0,status:t,"in-profile":e.inProfile,conversation:e.conversation,collapsable:e.collapsable,"is-expanded":e.isExpanded,"pinned-status-ids-object":e.pinnedStatusIdsObject,"profile-user-id":e.profileUserId,focused:e.focused,"get-replies":e.getReplies,highlight:e.maybeHighlight,"set-highlight":e.setHighlight,"toggle-expanded":e.toggleExpanded,simple:e.treeViewIsSimple,"toggle-thread-display":e.toggleThreadDisplay,"thread-display-status":e.threadDisplayStatus,"show-thread-recursively":e.showThreadRecursively,"total-reply-count":e.totalReplyCount,"total-reply-depth":e.totalReplyDepth,"status-content-properties":e.statusContentProperties,"set-status-content-property":e.setStatusContentProperty,"toggle-status-content-property":e.toggleStatusContentProperty,dive:e.canDive?e.diveIntoStatus:void 0},null,8,["status","in-profile","conversation","collapsable","is-expanded","pinned-status-ids-object","profile-user-id","focused","get-replies","highlight","set-highlight","toggle-expanded","simple","toggle-thread-display","thread-display-status","show-thread-recursively","total-reply-count","total-reply-depth","status-content-properties","set-status-content-property","toggle-status-content-property","dive"])})),128))])):(0,Co.kq)("",!0),e.isLinearView?((0,Co.wg)(),(0,Co.iD)("div",Qu,[(0,Co._)("article",null,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.conversation,(function(t){return(0,Co.wg)(),(0,Co.j4)(l,{key:t.id,ref_for:!0,ref:"statusComponent","inline-expanded":e.collapsable&&e.isExpanded,statusoid:t,expandable:!e.isExpanded,"show-pinned":e.pinnedStatusIdsObject&&e.pinnedStatusIdsObject[t.id],focused:e.focused(t.id),"in-conversation":e.isExpanded,highlight:e.getHighlight(),replies:e.getReplies(t.id),"in-profile":e.inProfile,"profile-user-id":e.profileUserId,class:"conversation-status status-fadein panel-body","toggle-thread-display":e.toggleThreadDisplay,"thread-display-status":e.threadDisplayStatus,"show-thread-recursively":e.showThreadRecursively,"total-reply-count":e.totalReplyCount,"total-reply-depth":e.totalReplyDepth,"status-content-properties":e.statusContentProperties,"set-status-content-property":e.setStatusContentProperty,"toggle-status-content-property":e.toggleStatusContentProperty,onGoto:e.setHighlight,onToggleExpanded:e.toggleExpanded},null,8,["inline-expanded","statusoid","expandable","show-pinned","focused","in-conversation","highlight","replies","in-profile","profile-user-id","toggle-thread-display","thread-display-status","show-thread-recursively","total-reply-count","total-reply-depth","status-content-properties","set-status-content-property","toggle-status-content-property","onGoto","onToggleExpanded"])})),128))])])):(0,Co.kq)("",!0)])],6))}]]);var Bc={key:1},Uc={class:"button-unstyled title timeline-menu-title"},Mc={class:"timeline-title"};function Lc(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Rc(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Lc(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Lc(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Ht.vI.add(Vt.ptq);const qc={components:{Popover:fc.default,NavigationEntry:ri,ListsMenuContent:ui},data:function(){return{isOpen:!1}},created:function(){({friends:"nav.home_timeline",bookmarks:"nav.bookmarks",dms:"nav.dms","public-timeline":"nav.public_tl","public-external-timeline":"nav.twkn"})[this.$route.name]&&this.$store.dispatch("setLastTimeline",this.$route.name)},computed:Rc(Rc({useListsMenu:function(){return"lists-timeline"===this.$route.name}},(0,s.rn)({currentUser:function(e){return e.users.currentUser},privateMode:function(e){return e.instance.private},federating:function(e){return e.instance.federating}})),{},{timelinesList:function(){return ii(Object.entries(Jr).map((function(e){var t=(0,c.Z)(e,2),n=t[0];return Rc(Rc({},t[1]),{},{name:n})})),{hasChats:this.pleromaChatMessagesAvailable,isFederating:this.federating,isPrivate:this.privateMode,currentUser:this.currentUser})}}),methods:{openMenu:function(){var e=this;setTimeout((function(){e.isOpen=!0}),25)},blockOpen:function(e){this.isOpen||e.stopPropagation()},timelineName:function(){var e=this.$route.name;if("tag-timeline"===e)return"#"+this.$route.params.tag;if("lists-timeline"===e)return this.$store.getters.findListTitle(this.$route.params.id);var t={friends:"nav.home_timeline",bookmarks:"nav.bookmarks",dms:"nav.dms","public-timeline":"nav.public_tl","public-external-timeline":"nav.twkn"}[this.$route.name];return t?this.$t(t):e}}},Nc=(0,Jo.Z)(qc,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("ListsMenuContent"),a=(0,Co.up)("NavigationEntry"),u=(0,Co.up)("FAIcon"),c=(0,Co.up)("Popover");return(0,Co.wg)(),(0,Co.j4)(c,{trigger:"click",class:(0,So.C_)(["TimelineMenu",{open:e.isOpen}]),"bound-to":{x:"container"},"bound-to-selector":".Timeline","popover-class":"timeline-menu-popover popover-default",onShow:e.openMenu,onClose:t[1]||(t[1]=function(){return e.isOpen=!1})},{content:(0,Co.w5)((function(){return[e.useListsMenu?((0,Co.wg)(),(0,Co.j4)(s,{key:0,"show-pin":!1,class:"timelines"})):((0,Co.wg)(),(0,Co.iD)("ul",Bc,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.timelinesList,(function(e){return(0,Co.wg)(),(0,Co.j4)(a,{key:e.name,"show-pin":!1,item:e},null,8,["item"])})),128))]))]})),trigger:(0,Co.w5)((function(){return[(0,Co._)("span",Uc,[(0,Co._)("span",Mc,(0,So.zw)(e.timelineName()),1),(0,Co._)("span",null,[(0,Co.Wm)(u,{size:"sm",icon:"chevron-down"})]),(0,Co._)("span",{class:"click-blocker",onClick:t[0]||(t[0]=function(){return e.blockOpen&&e.blockOpen.apply(e,arguments)})})])]})),_:1},8,["class","onShow"])}]]);function Zc(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}Ht.vI.add(Vt.IJ7,Vt.b7W,Vt.Kl4,Vt.FPD,Vt.EQ8,Vt.LEp);var Wc={props:["timeline","timelineName","title","userId","listId","tag","embedded","count","pinnedStatusIds","inProfile","footerSlipgate"],data:function(){return{showScrollTop:!1,paused:!1,unfocused:!1,bottomedOut:!1,virtualScrollIndex:0,blockingClicks:!1}},components:{Status:eu.default,Conversation:$c,TimelineMenu:Nc,QuickFilterSettings:bc,QuickViewSettings:zc},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Zc(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Zc(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({filteredVisibleStatuses:function(){var e=this;return this.timeline.visibleStatuses.filter((function(t){return"user"!==e.timelineName||t.id>=e.timeline.minId&&t.id<=e.timeline.maxId}))},filteredPinnedStatusIds:function(){var e=this;return(this.pinnedStatusIds||[]).filter((function(t){return e.timeline.statusesObject[t]}))},newStatusCount:function(){return this.timeline.newStatusCount},showLoadButton:function(){return this.timeline.newStatusCount>0||0!==this.timeline.flushMarker},loadButtonString:function(){return 0!==this.timeline.flushMarker?this.$t("timeline.reload"):"".concat(this.$t("timeline.show_new")," (").concat(this.newStatusCount,")")},mobileLoadButtonString:function(){return 0!==this.timeline.flushMarker?"+":this.newStatusCount>99?"∞":this.newStatusCount},classes:function(){var e=this.embedded?["-nonpanel"]:["panel","panel-default"];return this.blockingClicks&&(e=e.concat(["-blocked","_misclick-prevention"])),{root:e,header:["timeline-heading"].concat(this.embedded?[]:["panel-heading","-sticky"]),body:["timeline-body"].concat(this.embedded?[]:["panel-body"]),footer:["timeline-footer"].concat(this.embedded?[]:["panel-footer"])}},pinnedStatusIdsObject:function(){return Ru()(this.pinnedStatusIds)},statusesToDisplay:function(){var e=this.timeline.visibleStatuses.length,t=Math.ceil(Math.max(3,window.innerHeight/80)),n=this.virtualScrollIndex-this.filteredPinnedStatusIds.length,o=Math.max(0,n-t),r=Math.min(e,n+t);return this.timeline.visibleStatuses.slice(o,r).map((function(e){return e.id}))},virtualScrollingEnabled:function(){return this.$store.getters.mergedConfig.virtualScrolling}},(0,s.rn)({mobileLayout:function(e){return"mobile"===e.interface.layoutType}})),created:function(){var e=this.$store,t=e.state.users.currentUser.credentials,n=0===this.timeline.visibleStatuses.length;if(window.addEventListener("scroll",this.handleScroll),e.state.api.fetchers[this.timelineName])return!1;Fe.fetchAndUpdate({store:e,credentials:t,timeline:this.timelineName,showImmediately:n,userId:this.userId,listId:this.listId,tag:this.tag})},mounted:function(){void 0!==document.hidden&&(document.addEventListener("visibilitychange",this.handleVisibilityChange,!1),this.unfocused=document.hidden),window.addEventListener("keydown",this.handleShortKey),setTimeout(this.determineVisibleStatuses,250)},unmounted:function(){window.removeEventListener("scroll",this.handleScroll),window.removeEventListener("keydown",this.handleShortKey),void 0!==document.hidden&&document.removeEventListener("visibilitychange",this.handleVisibilityChange,!1),this.$store.commit("setLoading",{timeline:this.timelineName,value:!1})},methods:{scrollToTop:function(){window.scrollTo({top:this.$el.offsetTop})},stopBlockingClicks:ra()((function(){this.blockingClicks=!1}),1e3),blockClicksTemporarily:function(){this.blockingClicks||(this.blockingClicks=!0),this.stopBlockingClicks()},handleShortKey:function(e){["textarea","input"].includes(e.target.tagName.toLowerCase())||"."===e.key&&this.showNewStatuses()},showNewStatuses:function(){0!==this.timeline.flushMarker?(this.$store.commit("clearTimeline",{timeline:this.timelineName,excludeUserId:!0}),this.$store.commit("queueFlush",{timeline:this.timelineName,id:0}),"user"===this.timelineName&&this.$store.dispatch("fetchPinnedStatuses",this.userId),this.fetchOlderStatuses()):(this.blockClicksTemporarily(),this.$store.commit("showNewStatuses",{timeline:this.timelineName}),this.paused=!1),window.scrollTo({top:0})},fetchOlderStatuses:Nu()((function(){var e=this,t=this.$store,n=t.state.users.currentUser.credentials;t.commit("setLoading",{timeline:this.timelineName,value:!0}),Fe.fetchAndUpdate({store:t,credentials:n,timeline:this.timelineName,older:!0,showImmediately:!0,userId:this.userId,listId:this.listId,tag:this.tag}).then((function(t){var n=t.statuses;n&&0===n.length&&(e.bottomedOut=!0)})).finally((function(){return t.commit("setLoading",{timeline:e.timelineName,value:!1})}))}),1e3,void 0),determineVisibleStatuses:function(){if(this.$refs.timeline&&this.virtualScrollingEnabled){var e=this.$refs.timeline.children,t=Math.max(0,Math.min(this.virtualScrollIndex,e.length-1));if(0!==e.length){var n=Math.max(document.body.offsetHeight,window.pageYOffset),o=window.pageYOffset+.5*window.innerHeight,r=Math.floor(e.length*(o/n)),i=e[r].getBoundingClientRect().y,s=e[t].getBoundingClientRect().y;for(Math.abs(i)>s&&(r=t,i=s);i<-20&&r<e.length-1;)i+=e[r].offsetHeight,r++;for(;i>window.innerHeight+100&&r>0;)i-=e[--r].offsetHeight;this.virtualScrollIndex=r}}},scrollLoad:function(e){var t=document.body.getBoundingClientRect(),n=Math.max(t.height,-t.y);!1===this.timeline.loading&&this.$el.offsetHeight>0&&window.innerHeight+window.pageYOffset>=n-750&&this.fetchOlderStatuses()},handleScroll:Nu()((function(e){this.showScrollTop=this.$el.offsetTop<window.scrollY,this.determineVisibleStatuses(),this.scrollLoad(e)}),200),handleVisibilityChange:function(){this.unfocused=document.hidden}},watch:{newStatusCount:function(e){if(this.$store.getters.mergedConfig.streaming&&e>0){var t=document.documentElement;!((window.pageYOffset||t.scrollTop)-(t.clientTop||0)<15)||this.paused||this.unfocused&&this.$store.getters.mergedConfig.pauseOnUnfocused?this.paused=!0:this.showNewStatuses()}}}};const Hc=Wc,Vc=(0,Jo.Z)(Hc,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("TimelineMenu"),a=(0,Co.up)("FAIcon"),u=(0,Co.up)("FALayers"),c=(0,Co.up)("QuickFilterSettings"),l=(0,Co.up)("QuickViewSettings"),d=(0,Co.up)("conversation");return(0,Co.wg)(),(0,Co.iD)("div",{class:(0,So.C_)(["Timeline",e.classes.root])},[(0,Co._)("div",{class:(0,So.C_)(e.classes.header)},[e.embedded?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.j4)(s,{key:0,"timeline-name":e.timelineName},null,8,["timeline-name"])),e.showScrollTop&&!e.embedded?((0,Co.wg)(),(0,Co.iD)("div",Ou,[(0,Co._)("button",{class:"button-unstyled scroll-to-top-button",type:"button",title:e.$t("general.scroll_to_top"),onClick:t[0]||(t[0]=function(){return e.scrollToTop&&e.scrollToTop.apply(e,arguments)})},[(0,Co.Wm)(u,{class:"fa-scale-110 fa-old-padding-layer"},{default:(0,Co.w5)((function(){return[(0,Co.Wm)(a,{icon:"arrow-up"}),(0,Co.Wm)(a,{icon:"minus",transform:"up-7"})]})),_:1})],8,Eu)])):(0,Co.kq)("",!0),e.mobileLayout&&!e.embedded?((0,Co.wg)(),(0,Co.iD)(Co.HY,{key:2},[e.showLoadButton?((0,Co.wg)(),(0,Co.iD)("div",zu,[(0,Co._)("button",{class:"button-unstyled loadmore-button",title:e.loadButtonString,onClick:t[1]||(t[1]=(0,wo.iM)((function(){return e.showNewStatuses&&e.showNewStatuses.apply(e,arguments)}),["prevent"]))},[(0,Co.Wm)(a,{"fixed-width":"",icon:"circle-plus"}),(0,Co._)("div",Iu,(0,So.zw)(e.mobileLoadButtonString),1)],8,Pu)])):e.embedded?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.iD)("div",{key:1,class:"loadmore-text faint veryfaint rightside-icon",title:e.$t("timeline.up_to_date"),"aria-disabled":!0,onClick:t[2]||(t[2]=(0,wo.iM)((function(){}),["prevent"]))},[(0,Co.Wm)(a,{"fixed-width":"",icon:"check"})],8,xu))],64)):((0,Co.wg)(),(0,Co.iD)(Co.HY,{key:3},[e.showLoadButton?((0,Co.wg)(),(0,Co.iD)("button",{key:0,class:"button-default loadmore-button",onClick:t[3]||(t[3]=(0,wo.iM)((function(){return e.showNewStatuses&&e.showNewStatuses.apply(e,arguments)}),["prevent"]))},(0,So.zw)(e.loadButtonString),1)):e.embedded?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.iD)("div",{key:1,class:"loadmore-text faint",onClick:t[4]||(t[4]=(0,wo.iM)((function(){}),["prevent"]))},(0,So.zw)(e.$t("timeline.up_to_date")),1))],64)),e.embedded?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.j4)(c,{key:4,class:"rightside-button"})),e.embedded?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.j4)(l,{key:5,class:"rightside-button"}))],2),(0,Co._)("div",{class:(0,So.C_)(e.classes.body)},[(0,Co._)("div",Tu,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.filteredPinnedStatusIds,(function(t){return(0,Co.wg)(),(0,Co.j4)(d,{key:t+"-pinned",role:"listitem",class:"status-fadein","status-id":t,collapsable:!0,"pinned-status-ids-object":e.pinnedStatusIdsObject,"in-profile":e.inProfile,"profile-user-id":e.userId},null,8,["status-id","pinned-status-ids-object","in-profile","profile-user-id"])})),128)),((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.filteredVisibleStatuses,(function(t){return(0,Co.wg)(),(0,Co.j4)(d,{key:t.id,role:"listitem",class:"status-fadein","status-id":t.id,collapsable:!0,"in-profile":e.inProfile,"profile-user-id":e.userId,"virtual-hidden":e.virtualScrollingEnabled&&!e.statusesToDisplay.includes(t.id)},null,8,["status-id","in-profile","profile-user-id","virtual-hidden"])})),128))],512)],2),(0,Co._)("div",{class:(0,So.C_)(e.classes.footer)},[((0,Co.wg)(),(0,Co.j4)(Co.lR,{to:e.footerSlipgate,disabled:!e.embedded||!e.footerSlipgate},[0===e.count?((0,Co.wg)(),(0,Co.iD)("div",$u,(0,So.zw)(e.$t("timeline.no_statuses")),1)):e.bottomedOut?((0,Co.wg)(),(0,Co.iD)("div",Bu,(0,So.zw)(e.$t("timeline.no_more_statuses")),1)):e.timeline.loading?((0,Co.wg)(),(0,Co.iD)("div",Mu,[(0,Co.Wm)(a,{icon:"circle-notch",spin:"",size:"lg"})])):((0,Co.wg)(),(0,Co.iD)("button",{key:2,class:"button-unstyled -link",onClick:t[5]||(t[5]=(0,wo.iM)((function(t){return e.fetchOlderStatuses()}),["prevent"]))},[(0,Co._)("div",Uu,(0,So.zw)(e.$t("timeline.load_older")),1)]))],8,["to","disabled"]))],2)],2)}]]),Kc={components:{Timeline:Vc},computed:{timeline:function(){return this.$store.state.statuses.timelines.public}},created:function(){this.$store.dispatch("startFetchingTimeline",{timeline:"public"})},unmounted:function(){this.$store.dispatch("stopFetchingTimeline","public")}},Gc=(0,Jo.Z)(Kc,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("Timeline");return(0,Co.wg)(),(0,Co.j4)(s,{title:e.$t("nav.public_tl"),timeline:e.timeline,"timeline-name":"public"},null,8,["title","timeline"])}]]),Yc={components:{Timeline:Vc},computed:{timeline:function(){return this.$store.state.statuses.timelines.publicAndExternal}},created:function(){this.$store.dispatch("startFetchingTimeline",{timeline:"publicAndExternal"})},unmounted:function(){this.$store.dispatch("stopFetchingTimeline","publicAndExternal")}},Jc=(0,Jo.Z)(Yc,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("Timeline");return(0,Co.wg)(),(0,Co.j4)(s,{title:e.$t("nav.twkn"),timeline:e.timeline,"timeline-name":"publicAndExternal"},null,8,["title","timeline"])}]]),Qc={components:{Timeline:Vc},computed:{timeline:function(){return this.$store.state.statuses.timelines.friends}}},Xc=(0,Jo.Z)(Qc,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("Timeline");return(0,Co.wg)(),(0,Co.j4)(s,{title:e.$t("nav.timeline"),timeline:e.timeline,"timeline-name":"friends"},null,8,["title","timeline"])}]]),el={created:function(){this.$store.commit("clearTimeline",{timeline:"tag"}),this.$store.dispatch("startFetchingTimeline",{timeline:"tag",tag:this.tag})},components:{Timeline:Vc},computed:{tag:function(){return this.$route.params.tag},timeline:function(){return this.$store.state.statuses.timelines.tag}},watch:{tag:function(){this.$store.commit("clearTimeline",{timeline:"tag"}),this.$store.dispatch("startFetchingTimeline",{timeline:"tag",tag:this.tag})}},unmounted:function(){this.$store.dispatch("stopFetchingTimeline","tag")}},tl=(0,Jo.Z)(el,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("Timeline");return(0,Co.wg)(),(0,Co.j4)(s,{title:e.tag,timeline:e.timeline,"timeline-name":"tag",tag:e.tag},null,8,["title","timeline","tag"])}]]),nl={computed:{timeline:function(){return this.$store.state.statuses.timelines.bookmarks}},components:{Timeline:Vc},unmounted:function(){this.$store.commit("clearTimeline",{timeline:"bookmarks"})}},ol=(0,Jo.Z)(nl,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("Timeline");return(0,Co.wg)(),(0,Co.j4)(s,{title:e.$t("nav.bookmarks"),timeline:e.timeline,"timeline-name":"bookmarks"},null,8,["title","timeline"])}]]),rl={components:{Conversation:$c},computed:{statusId:function(){return this.$route.params.id}}},il=(0,Jo.Z)(rl,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("conversation");return(0,Co.wg)(),(0,Co.j4)(s,{collapsable:!1,"is-page":"true","status-id":e.statusId},null,8,["status-id"])}]]);var sl={class:"panel panel-default"},al={class:"panel-heading"},ul={class:"title"},cl=["label"],ll=["label"],dl=["label"],pl=["label"],ml=["label"],hl=["label"],fl=n(79354),gl={mentions:["mention"],"likes+repeats":["repeat","like"],follows:["follow"],reactions:["pleroma:emoji_reaction"],reports:["pleroma:report"],moves:["move"]};const vl={data:function(){return{allowFollowingMove:this.$store.state.users.currentUser.allow_following_move,filterMode:gl.mentions,canSeeReports:this.$store.state.users.currentUser.privileges.includes("reports_manage_reports")}},methods:{onModeSwitch:function(e){this.filterMode=gl[e]}},components:{Notifications:ya.default,TabSwitcher:fl.Z}},wl=(0,Jo.Z)(vl,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("tab-switcher"),a=(0,Co.up)("Notifications");return(0,Co.wg)(),(0,Co.iD)("div",sl,[(0,Co._)("div",al,[(0,Co._)("div",ul,(0,So.zw)(e.$t("nav.interactions")),1)]),(0,Co.Wm)(s,{ref:"tabSwitcher","on-switch":e.onModeSwitch},{default:(0,Co.w5)((function(){return[(0,Co._)("span",{key:"mentions",label:e.$t("nav.mentions")},null,8,cl),(0,Co._)("span",{key:"likes+repeats",label:e.$t("interactions.favs_repeats")},null,8,ll),(0,Co._)("span",{key:"follows",label:e.$t("interactions.follows")},null,8,dl),(0,Co._)("span",{key:"reactions",label:e.$t("interactions.emoji_reactions")},null,8,pl),e.canSeeReports?((0,Co.wg)(),(0,Co.iD)("span",{key:"reports",label:e.$t("interactions.reports")},null,8,ml)):(0,Co.kq)("",!0),e.allowFollowingMove?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.iD)("span",{key:"moves",label:e.$t("interactions.moves")},null,8,hl))]})),_:1},8,["on-switch"]),(0,Co.Wm)(a,{ref:"notifications","no-heading":!0,"minimal-mode":!0,"filter-mode":e.filterMode},null,8,["filter-mode"])])}]]),bl={computed:{timeline:function(){return this.$store.state.statuses.timelines.dms}},components:{Timeline:Vc}},yl=(0,Jo.Z)(bl,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("Timeline");return(0,Co.wg)(),(0,Co.j4)(s,{title:e.$t("nav.dms"),timeline:e.timeline,"timeline-name":"dms"},null,8,["title","timeline"])}]]);var Dl={key:0},_l={key:1,class:"chat-list panel panel-default"},kl={class:"panel-heading -sticky"},Cl={class:"title"},Sl={class:"panel-body"},jl={key:0,class:"timeline"},Fl={key:1,class:"emtpy-chat-list-alert"},Al={class:"chat-list-item-left"},Ol={class:"chat-list-item-center"},El={class:"heading"},zl={key:0,class:"name-and-account-name"},Pl=(0,Co._)("span",{class:"heading-right"},null,-1),Il={class:"time-wrapper"},xl={class:"chat-preview"},Tl={key:0,class:"badge badge-notification unread-chat-count"},$l=n(10252),Bl=n(48173),Ul=n(19066),Ml=n(1840),Ll=["title"],Rl=n(92820);const ql={name:"ChatTitle",components:{UserAvatar:Bl.default,RichContent:Rl.Z,UserPopover:(0,Co.RC)((function(){return Promise.resolve().then(n.bind(n,22588))}))},props:["user","withAvatar"],computed:{title:function(){return this.user?this.user.screen_name_ui:""},htmlTitle:function(){return this.user?this.user.name_html:""}}},Nl=(0,Jo.Z)(ql,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("UserAvatar"),a=(0,Co.up)("UserPopover"),u=(0,Co.up)("RichContent");return(0,Co.wg)(),(0,Co.iD)("div",{class:"chat-title",title:e.title},[e.withAvatar&&e.user?((0,Co.wg)(),(0,Co.j4)(a,{key:0,class:"avatar-container","user-id":e.user.id},{default:(0,Co.w5)((function(){return[(0,Co.Wm)(s,{class:"titlebar-avatar",user:e.user},null,8,["user"])]})),_:1},8,["user-id"])):(0,Co.kq)("",!0),e.user?((0,Co.wg)(),(0,Co.j4)(u,{key:1,class:"username",title:"@"+(e.user&&e.user.screen_name_ui),html:e.htmlTitle,emoji:e.user.emoji||[]},null,8,["title","html","emoji"])):(0,Co.kq)("",!0)],8,Ll)}]]);function Zl(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Wl(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Zl(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Zl(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}const Hl={name:"ChatListItem",props:["chat"],components:{UserAvatar:Bl.default,AvatarList:Ul.Z,Timeago:Ml.Z,ChatTitle:Nl,StatusBody:$l.Z},computed:Wl(Wl({},(0,s.rn)({currentUser:function(e){return e.users.currentUser}})),{},{attachmentInfo:function(){if(0!==this.chat.lastMessage.attachments.length){var e=this.chat.lastMessage.attachments.map((function(e){return Fn.ZP.fileType(e.mimetype)}));return e.includes("video")?this.$t("file_type.video"):e.includes("audio")?this.$t("file_type.audio"):e.includes("image")?this.$t("file_type.image"):this.$t("file_type.file")}},messageForStatusContent:function(){var e=this.chat.lastMessage,t=e?e.emojis:[],n=e&&e.account_id===this.currentUser.id,o=e?this.attachmentInfo||e.content:"",r=n?"<i>".concat(this.$t("chats.you"),"</i> ").concat(o):o;return{summary:"",emojis:t,raw_html:r,text:r,attachments:[]}}}),methods:{openChat:function(e){this.chat.id&&this.$router.push({name:"chat",params:{username:this.currentUser.screen_name,recipient_id:this.chat.account.id}})}}},Vl=(0,Jo.Z)(Hl,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("UserAvatar"),a=(0,Co.up)("ChatTitle"),u=(0,Co.up)("Timeago"),c=(0,Co.up)("StatusBody");return(0,Co.wg)(),(0,Co.iD)("div",{class:"chat-list-item",onClickCapture:t[0]||(t[0]=(0,wo.iM)((function(){return e.openChat&&e.openChat.apply(e,arguments)}),["prevent"]))},[(0,Co._)("div",Al,[(0,Co.Wm)(s,{user:e.chat.account,height:"48px",width:"48px"},null,8,["user"])]),(0,Co._)("div",Ol,[(0,Co._)("div",El,[e.chat.account?((0,Co.wg)(),(0,Co.iD)("span",zl,[(0,Co.Wm)(a,{user:e.chat.account},null,8,["user"])])):(0,Co.kq)("",!0),Pl,(0,Co._)("div",Il,[(0,Co.Wm)(u,{time:e.chat.updated_at,"auto-update":60},null,8,["time"])])]),(0,Co._)("div",xl,[(0,Co.Wm)(c,{class:"chat-preview-body",status:e.messageForStatusContent,"single-line":!0},null,8,["status"]),e.chat.unread>0?((0,Co.wg)(),(0,Co.iD)("div",Tl,(0,So.zw)(e.chat.unread),1)):(0,Co.kq)("",!0)])])],32)}]]);var Kl={class:"panel-default panel chat-new"},Gl={ref:"header",class:"panel-heading"},Yl={class:"input-wrap"},Jl={class:"input-search"},Ql={class:"member-list"},Xl=["onClickCapture"],ed=n(29076);function td(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function nd(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?td(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):td(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Ht.vI.add(Vt.wn1,Vt.A35);var od={components:{BasicUserCard:ed.Z,UserAvatar:Bl.default},data:function(){return{suggestions:[],userIds:[],loading:!1,query:""}},created:function(){var e=this;return(0,o.Z)(i().mark((function t(){return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.backendInteractor.chats();case 2:t.sent.chats.forEach((function(t){return e.suggestions.push(t.account)}));case 5:case"end":return t.stop()}}),t)})))()},computed:nd(nd({users:function(){var e=this;return this.userIds.map((function(t){return e.findUser(t)}))},availableUsers:function(){return 0!==this.query.length?this.users:this.suggestions}},(0,s.rn)({currentUser:function(e){return e.users.currentUser},backendInteractor:function(e){return e.api.backendInteractor}})),(0,s.Se)(["findUser"])),methods:{goBack:function(){this.$emit("cancel")},goToChat:function(e){this.$router.push({name:"chat",params:{recipient_id:e.id}})},onInput:function(){this.search(this.query)},addUser:function(e){this.selectedUserIds.push(e.id),this.query=""},removeUser:function(e){this.selectedUserIds=this.selectedUserIds.filter((function(t){return t!==e}))},search:function(e){var t=this;e?(this.loading=!0,this.userIds=[],this.$store.dispatch("search",{q:e,resolve:!0,type:"accounts"}).then((function(e){t.loading=!1,t.userIds=e.accounts.map((function(e){return e.id}))}))):this.loading=!1}}};const rd=od,id=(0,Jo.Z)(rd,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("FAIcon"),a=(0,Co.up)("BasicUserCard");return(0,Co.wg)(),(0,Co.iD)("div",Kl,[(0,Co._)("div",Gl,[(0,Co._)("button",{class:"button-unstyled go-back-button",onClick:t[0]||(t[0]=function(){return e.goBack&&e.goBack.apply(e,arguments)})},[(0,Co.Wm)(s,{size:"lg",icon:"chevron-left"})])],512),(0,Co._)("div",Yl,[(0,Co._)("div",Jl,[(0,Co.Wm)(s,{class:"search-icon fa-scale-110 fa-old-padding",icon:"search"})]),(0,Co.wy)((0,Co._)("input",{ref:"search","onUpdate:modelValue":t[1]||(t[1]=function(t){return e.query=t}),placeholder:"Search people",onInput:t[2]||(t[2]=function(){return e.onInput&&e.onInput.apply(e,arguments)})},null,544),[[wo.nr,e.query]])]),(0,Co._)("div",Ql,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.availableUsers,(function(t){return(0,Co.wg)(),(0,Co.iD)("div",{key:t.id,class:"member"},[(0,Co._)("div",{onClickCapture:(0,wo.iM)((function(n){return e.goToChat(t)}),["prevent"])},[(0,Co.Wm)(a,{user:t},null,8,["user"])],40,Xl)])})),128))])])}]]);function sd(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function ad(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?sd(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):sd(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}const ud={components:{ChatListItem:Vl,List:tu.Z,ChatNew:id},computed:ad(ad({},(0,s.rn)({currentUser:function(e){return e.users.currentUser}})),(0,s.Se)(["sortedChatList"])),data:function(){return{isNew:!1}},created:function(){this.$store.dispatch("fetchChats",{latest:!0})},methods:{cancelNewChat:function(){this.isNew=!1,this.$store.dispatch("fetchChats",{latest:!0})},newChat:function(){this.isNew=!0}}},cd=(0,Jo.Z)(ud,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("ChatNew"),a=(0,Co.up)("ChatListItem"),u=(0,Co.up)("List");return e.isNew?((0,Co.wg)(),(0,Co.iD)("div",Dl,[(0,Co.Wm)(s,{onCancel:e.cancelNewChat},null,8,["onCancel"])])):((0,Co.wg)(),(0,Co.iD)("div",_l,[(0,Co._)("div",kl,[(0,Co._)("span",Cl,(0,So.zw)(e.$t("chats.chats")),1),(0,Co._)("button",{class:"button-default",onClick:t[0]||(t[0]=function(){return e.newChat&&e.newChat.apply(e,arguments)})},(0,So.zw)(e.$t("chats.new")),1)]),(0,Co._)("div",Sl,[e.sortedChatList.length>0?((0,Co.wg)(),(0,Co.iD)("div",jl,[(0,Co.Wm)(u,{items:e.sortedChatList},{item:(0,Co.w5)((function(e){var t=e.item;return[((0,Co.wg)(),(0,Co.j4)(a,{key:t.id,compact:!1,chat:t},null,8,["chat"]))]})),_:1},8,["items"])])):((0,Co.wg)(),(0,Co.iD)("div",Fl,[(0,Co._)("span",null,(0,So.zw)(e.$t("chats.empty_chat_list_placeholder")),1)]))])]))}]]);var ld={class:"chat-view"},dd={class:"chat-view-inner"},pd={ref:"inner",class:"panel-default panel chat-view-body"},md={ref:"header",class:"panel-heading -sticky chat-view-heading"},hd={class:"title text-center"},fd={key:1,class:"chat-loading-error"},gd={class:"alert error"},vd={ref:"footer",class:"panel-body footer"},wd={key:0,class:"badge badge-notification unread-chat-count unread-message-count"},bd={key:0,class:"avatar-wrapper"},yd={class:"chat-message-inner"},Dd={class:"dropdown-menu"},_d=["title"],kd={class:"created-at"},Cd={key:1,class:"chat-message-date-separator"},Sd=n(66596),jd=n(67671),Fd=n(92798),Ad=n(39776);const Od={name:"Timeago",props:["date"],computed:{displayDate:function(){var e=new Date;return e.setHours(0,0,0,0),this.date.getTime()===e.getTime()?this.$t("display_date.today"):this.date.toLocaleDateString(Ad.Z.internalToBrowserLocale(this.$i18n.locale),{day:"numeric",month:"long"})}}},Ed=(0,Jo.Z)(Od,[["render",function(e,t,n,o,r,i){return(0,Co.wg)(),(0,Co.iD)("time",null,(0,So.zw)(i.displayDate),1)}]]);function zd(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Pd(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?zd(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):zd(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Ht.vI.add(Vt.NBC,Vt.cNd);const Id={name:"ChatMessage",props:["author","edited","noHeading","chatViewItem","hoveredMessageChain"],emits:["hover"],components:{Popover:fc.default,Attachment:Sd.Z,StatusContent:$l.Z,UserAvatar:Bl.default,Gallery:jd.Z,LinkPreview:Fd.Z,ChatMessageDate:Ed,UserPopover:(0,Co.RC)((function(){return Promise.resolve().then(n.bind(n,22588))}))},computed:Pd(Pd({createdAt:function(){return this.chatViewItem.data.created_at.toLocaleTimeString("en",{hour:"2-digit",minute:"2-digit",hour12:!1})},isCurrentUser:function(){return this.message.account_id===this.currentUser.id},message:function(){return this.chatViewItem.data},isMessage:function(){return"message"===this.chatViewItem.type},messageForStatusContent:function(){return{summary:"",emojis:this.message.emojis,raw_html:this.message.content||"",text:this.message.content||"",attachments:this.message.attachments}},hasAttachment:function(){return this.message.attachments.length>0}},(0,s.rn)({betterShadow:function(e){return e.interface.browserSupport.cssFilter},currentUser:function(e){return e.users.currentUser},restrictedNicknames:function(e){return e.instance.restrictedNicknames}})),{},{popoverMarginStyle:function(){return this.isCurrentUser?{}:{left:50}}},(0,s.Se)(["mergedConfig","findUser"])),data:function(){return{hovered:!1,menuOpened:!1}},methods:{onHover:function(e){this.$emit("hover",{isHovered:e,messageChainId:this.chatViewItem.messageChainId})},deleteMessage:function(){var e=this;return(0,o.Z)(i().mark((function t(){return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!window.confirm(e.$t("chats.delete_confirm"))){t.next=4;break}return t.next=4,e.$store.dispatch("deleteChatMessage",{messageId:e.chatViewItem.data.id,chatId:e.chatViewItem.data.chat_id});case 4:e.hovered=!1,e.menuOpened=!1;case 6:case"end":return t.stop()}}),t)})))()}}},xd=(0,Jo.Z)(Id,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("UserAvatar"),a=(0,Co.up)("UserPopover"),u=(0,Co.up)("FAIcon"),c=(0,Co.up)("Popover"),l=(0,Co.up)("StatusContent"),d=(0,Co.up)("ChatMessageDate");return e.isMessage?((0,Co.wg)(),(0,Co.iD)("div",{key:0,class:(0,So.C_)(["chat-message-wrapper",{"hovered-message-chain":e.hoveredMessageChain}]),onMouseover:t[5]||(t[5]=function(t){return e.onHover(!0)}),onMouseleave:t[6]||(t[6]=function(t){return e.onHover(!1)})},[(0,Co._)("div",{class:(0,So.C_)(["chat-message",[{outgoing:e.isCurrentUser,incoming:!e.isCurrentUser}]])},[e.isCurrentUser?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.iD)("div",bd,[e.chatViewItem.isHead?((0,Co.wg)(),(0,Co.j4)(a,{key:0,"user-id":e.author.id},{default:(0,Co.w5)((function(){return[(0,Co.Wm)(s,{compact:!0,"better-shadow":e.betterShadow,user:e.author},null,8,["better-shadow","user"])]})),_:1},8,["user-id"])):(0,Co.kq)("",!0)])),(0,Co._)("div",yd,[(0,Co._)("div",{class:"status-body",style:(0,So.j5)({"min-width":e.message.attachment?"80%":""})},[(0,Co._)("div",{class:(0,So.C_)(["media status",{"without-attachment":!e.hasAttachment,pending:e.chatViewItem.data.pending,error:e.chatViewItem.data.error}]),style:{position:"relative"},onMouseenter:t[3]||(t[3]=function(t){return e.hovered=!0}),onMouseleave:t[4]||(t[4]=function(t){return e.hovered=!1})},[(0,Co._)("div",{class:(0,So.C_)(["chat-message-menu",{visible:e.hovered||e.menuOpened}])},[(0,Co.Wm)(c,{trigger:"click",placement:"top","bound-to-selector":".chat-view-inner","bound-to":{x:"container"},margin:e.popoverMarginStyle,onShow:t[1]||(t[1]=function(t){return e.menuOpened=!0}),onClose:t[2]||(t[2]=function(t){return e.menuOpened=!1})},{content:(0,Co.w5)((function(){return[(0,Co._)("div",Dd,[(0,Co._)("button",{class:"button-default dropdown-item dropdown-item-icon",onClick:t[0]||(t[0]=function(){return e.deleteMessage&&e.deleteMessage.apply(e,arguments)})},[(0,Co.Wm)(u,{icon:"times"}),(0,Co.Uk)(" "+(0,So.zw)(e.$t("chats.delete")),1)])])]})),trigger:(0,Co.w5)((function(){return[(0,Co._)("button",{class:"button-default menu-icon",title:e.$t("chats.more")},[(0,Co.Wm)(u,{icon:"ellipsis-h"})],8,_d)]})),_:1},8,["margin"])],2),(0,Co.Wm)(l,{class:"message-content",status:e.messageForStatusContent,"full-content":!0},{footer:(0,Co.w5)((function(){return[(0,Co._)("span",kd,(0,So.zw)(e.createdAt),1)]})),_:1},8,["status"])],34)],4)])],2)],34)):((0,Co.wg)(),(0,Co.iD)("div",Cd,[(0,Co.Wm)(d,{date:e.chatViewItem.date},null,8,["date"])]))}]]);var Td=function(){return{scrollTop:window.scrollY,scrollHeight:document.documentElement.scrollHeight,offsetHeight:window.innerHeight}};function $d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Bd(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?$d(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):$d(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Ht.vI.add(Vt.ptq,Vt.A35);var Ud={components:{ChatMessage:xd,ChatTitle:Nl,PostStatusForm:Ir.Z},data:function(){return{jumpToBottomButtonVisible:!1,hoveredMessageChainId:void 0,lastScrollPosition:{},scrollableContainerHeight:"100%",errorLoadingChat:!1,messageRetriers:{}}},created:function(){this.startFetching(),window.addEventListener("resize",this.handleResize)},mounted:function(){var e=this;window.addEventListener("scroll",this.handleScroll),void 0!==document.hidden&&document.addEventListener("visibilitychange",this.handleVisibilityChange,!1),this.$nextTick((function(){e.handleResize()}))},unmounted:function(){window.removeEventListener("scroll",this.handleScroll),window.removeEventListener("resize",this.handleResize),void 0!==document.hidden&&document.removeEventListener("visibilitychange",this.handleVisibilityChange,!1),this.$store.dispatch("clearCurrentChat")},computed:Bd(Bd({recipient:function(){return this.currentChat&&this.currentChat.account},recipientId:function(){return this.$route.params.recipient_id},formPlaceholder:function(){return this.recipient?this.$t("chats.message_user",{nickname:this.recipient.screen_name_ui}):""},chatViewItems:function(){return Jn.getView(this.currentChatMessageService)},newMessageCount:function(){return this.currentChatMessageService&&this.currentChatMessageService.newMessageCount},streamingEnabled:function(){return this.mergedConfig.useStreamingApi&&this.mastoUserSocketStatus===h._z.JOINED}},(0,s.Se)(["currentChat","currentChatMessageService","findOpenedChatByRecipientId","mergedConfig"])),(0,s.rn)({backendInteractor:function(e){return e.api.backendInteractor},mastoUserSocketStatus:function(e){return e.api.mastoUserSocketStatus},mobileLayout:function(e){return"mobile"===e.interface.layoutType},currentUser:function(e){return e.users.currentUser}})),watch:{chatViewItems:function(){var e=this,t=this.bottomedOut(10);this.$nextTick((function(){t&&e.scrollDown()}))},$route:function(){this.startFetching()},mastoUserSocketStatus:function(e){e===h._z.JOINED&&this.fetchChat({isFirstFetch:!0})}},methods:{onMessageHover:function(e){var t=e.isHovered,n=e.messageChainId;this.hoveredMessageChainId=t?n:void 0},onFilesDropped:function(){var e=this;this.$nextTick((function(){e.handleResize()}))},handleVisibilityChange:function(){var e=this;this.$nextTick((function(){!document.hidden&&e.bottomedOut(10)&&e.scrollDown({forceRead:!0})}))},handleResize:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.delayed,o=void 0!==n&&n;o?setTimeout((function(){e.handleResize(Bd(Bd({},t),{},{delayed:!1}))}),100):this.$nextTick((function(){var t=Td().offsetHeight,n=(void 0===t?void 0:t)-e.lastScrollPosition.offsetHeight;0===n||e.bottomedOut()||e.$nextTick((function(){window.scrollBy({top:-Math.trunc(n)})})),e.lastScrollPosition=Td()}))},scrollDown:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.behavior,n=void 0===t?"auto":t,o=e.forceRead,r=void 0!==o&&o;this.$nextTick((function(){window.scrollTo({top:document.documentElement.scrollHeight,behavior:n})})),r&&this.readChat()},readChat:function(){if(this.currentChatMessageService&&this.currentChatMessageService.maxId&&!document.hidden){var e=this.currentChatMessageService.maxId;this.$store.dispatch("readChat",{id:this.currentChat.id,lastReadId:e})}},bottomedOut:function(e){return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=window.scrollY+e;return document.documentElement.scrollHeight-window.innerHeight<=t}(e)},reachedTop:function(){return window.scrollY<=0},cullOlderCheck:function(){var e=this;window.setTimeout((function(){e.bottomedOut(10)&&e.$store.dispatch("cullOlderMessages",e.currentChatMessageService.chatId)}),5e3)},handleScroll:Nu()((function(){var e=this;this.lastScrollPosition=Td(),this.currentChat&&(this.reachedTop()?this.fetchChat({maxId:this.currentChatMessageService.minId}):this.bottomedOut(10)?(this.jumpToBottomButtonVisible=!1,this.cullOlderCheck(),this.newMessageCount>0&&window.setTimeout((function(){e.$el&&e.readChat()}),1500)):this.jumpToBottomButtonVisible=!0)}),200),handleScrollUp:function(e){var t,n,o=Td();window.scrollTo({top:(t=e,n=o,t.scrollTop+(n.scrollHeight-t.scrollHeight))})},fetchChat:function(e){var t=this,n=e.isFirstFetch,o=void 0!==n&&n,r=e.fetchLatest,i=void 0!==r&&r,s=e.maxId,a=this.currentChatMessageService;if(a&&(!i||!this.streamingEnabled)){var u=a.chatId,c=!!s,l=i&&a.maxId;return this.backendInteractor.chatMessages({id:u,maxId:s,sinceId:l}).then((function(e){o&&Jn.clear(a);var n=Td();t.$store.dispatch("addChatMessages",{chatId:u,messages:e}).then((function(){t.$nextTick((function(){c&&t.handleScrollUp(n),!(document.documentElement.scrollHeight>window.innerHeight)&&e.length>0&&t.fetchChat({maxId:t.currentChatMessageService.minId})}))}))}))}},startFetching:function(){var e=this;return(0,o.Z)(i().mark((function t(){var n;return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=e.findOpenedChatByRecipientId(e.recipientId)){t.next=12;break}return t.prev=2,t.next=5,e.backendInteractor.getOrCreateChat({accountId:e.recipientId});case 5:n=t.sent,t.next=12;break;case 8:t.prev=8,t.t0=t.catch(2),console.error("Error creating or getting a chat",t.t0),e.errorLoadingChat=!0;case 12:n&&(e.$nextTick((function(){e.scrollDown({forceRead:!0})})),e.$store.dispatch("addOpenedChat",{chat:n}),e.doStartFetching());case 13:case"end":return t.stop()}}),t,null,[[2,8]])})))()},doStartFetching:function(){var e=this;this.$store.dispatch("startFetchingCurrentChat",{fetcher:function(){return(0,Ce.F)((function(){return e.fetchChat({fetchLatest:!0})}),5e3)}}),this.fetchChat({isFirstFetch:!0})},handleAttachmentPosting:function(){var e=this;this.$nextTick((function(){e.handleResize(),e.scrollDown({forceRead:!0})}))},sendMessage:function(e){var t=this,n=e.status,o=e.media,r=e.idempotencyKey,i={id:this.currentChat.id,content:n,idempotencyKey:r};o[0]&&(i.mediaId=o[0].id);var s=function(e){var t=e.attachments,n=e.userId,o=e.idempotencyKey,r={content:e.content,chat_id:e.chatId,created_at:new Date,id:"".concat((new Date).getTime()),attachments:t,account_id:n,idempotency_key:o,emojis:[],pending:!0,isNormalized:!0};return t[0]&&(r.attachment=t[0]),r}({attachments:o,chatId:this.currentChat.id,content:n,userId:this.currentUser.id,idempotencyKey:r});return this.$store.dispatch("addChatMessages",{chatId:this.currentChat.id,messages:[s]}).then((function(){t.handleAttachmentPosting()})),this.doSendMessage({params:i,fakeMessage:s,retriesLeft:10})},doSendMessage:function(e){var t=this,n=e.params,o=e.fakeMessage,r=e.retriesLeft,i=void 0===r?10:r;if(!(i<=0))return this.backendInteractor.sendChatMessage(n).then((function(e){return t.$store.dispatch("addChatMessages",{chatId:t.currentChat.id,updateMaxId:!1,messages:[Bd(Bd({},e),{},{fakeId:o.id})]}),e})).catch((function(e){return console.error("Error sending message",e),t.$store.dispatch("handleMessageError",{chatId:t.currentChat.id,fakeId:o.id,isRetry:10!==i}),(e.statusCode>=500&&e.statusCode<600||"Failed to fetch"===e.message)&&(t.messageRetriers[o.id]=setTimeout((function(){t.doSendMessage({params:n,fakeMessage:o,retriesLeft:i-1})}),1e3*Math.pow(2,10-i))),{}})),Promise.resolve(o)},goBack:function(){this.$router.push({name:"chats",params:{username:this.currentUser.screen_name}})}}};const Md=Ud,Ld=(0,Jo.Z)(Md,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("FAIcon"),a=(0,Co.up)("ChatTitle"),u=(0,Co.up)("ChatMessage"),c=(0,Co.up)("PostStatusForm");return(0,Co.wg)(),(0,Co.iD)("div",ld,[(0,Co._)("div",dd,[(0,Co._)("div",pd,[(0,Co._)("div",md,[(0,Co._)("button",{class:"button-unstyled go-back-button",onClick:t[0]||(t[0]=function(){return e.goBack&&e.goBack.apply(e,arguments)})},[(0,Co.Wm)(s,{size:"lg",icon:"chevron-left"})]),(0,Co._)("div",hd,[(0,Co.Wm)(a,{user:e.recipient,"with-avatar":!0},null,8,["user"])])],512),(0,Co._)("div",{class:"message-list",style:(0,So.j5)({height:e.scrollableContainerHeight})},[e.errorLoadingChat?((0,Co.wg)(),(0,Co.iD)("div",fd,[(0,Co._)("div",gd,(0,So.zw)(e.$t("chats.error_loading_chat")),1)])):((0,Co.wg)(!0),(0,Co.iD)(Co.HY,{key:0},(0,Co.Ko)(e.chatViewItems,(function(t){return(0,Co.wg)(),(0,Co.j4)(u,{key:t.id,author:e.recipient,"chat-view-item":t,"hovered-message-chain":t.messageChainId===e.hoveredMessageChainId,onHover:e.onMessageHover},null,8,["author","chat-view-item","hovered-message-chain","onHover"])})),128))],4),(0,Co._)("div",vd,[(0,Co._)("div",{class:(0,So.C_)(["jump-to-bottom-button",{visible:e.jumpToBottomButtonVisible}]),onClick:t[1]||(t[1]=function(t){return e.scrollDown({behavior:"smooth"})})},[(0,Co._)("span",null,[(0,Co.Wm)(s,{icon:"chevron-down"}),e.newMessageCount?((0,Co.wg)(),(0,Co.iD)("div",wd,(0,So.zw)(e.newMessageCount),1)):(0,Co.kq)("",!0)])],2),(0,Co.Wm)(c,{"disable-subject":!0,"disable-scope-selector":!0,"disable-notice":!0,"disable-lock-warning":!0,"disable-polls":!0,"disable-sensitivity-checkbox":!0,"disable-submit":e.errorLoadingChat||!e.currentChat,"disable-preview":!0,"optimistic-posting":!0,"post-handler":e.sendMessage,"submit-on-enter":!e.mobileLayout,"preserve-focus":!e.mobileLayout,"auto-focus":!e.mobileLayout,placeholder:e.formPlaceholder,"file-limit":1,"max-height":"160","emoji-picker-placement":"top",onResize:e.handleResize},null,8,["disable-submit","post-handler","submit-on-enter","preserve-focus","auto-focus","placeholder","onResize"])],512)],512)])])}]]);var Rd={key:0,class:"user-profile panel panel-default"},qd={key:0,class:"user-birthday"},Nd={key:1,class:"user-profile-fields"},Zd=["title"],Wd=["title"],Hd=["label","disabled"],Vd=["label","disabled"],Kd={key:1,class:"panel user-profile-placeholder"},Gd={class:"panel-heading"},Yd={class:"title"},Jd={class:"panel-body"},Qd={key:0},Xd={class:"follow-card-content-container"},ep={key:0,class:"faint"},tp={key:0,class:"follow-card-follow-button"},np=n(72895),op=n(34837),rp=["disabled","title"],ip=["textContent"];const sp={props:["user","relationship"],data:function(){return{inProgress:!1,showingConfirmRemoveFollower:!1}},components:{ConfirmModal:Da.Z},computed:{label:function(){return this.inProgress?this.$t("user_card.follow_progress"):this.$t("user_card.remove_follower")},shouldConfirmRemoveUserFromFollowers:function(){return this.$store.getters.mergedConfig.modalOnRemoveUserFromFollowers}},methods:{showConfirmRemoveUserFromFollowers:function(){this.showingConfirmRemoveFollower=!0},hideConfirmRemoveUserFromFollowers:function(){this.showingConfirmRemoveFollower=!1},onClick:function(){this.shouldConfirmRemoveUserFromFollowers?this.showConfirmRemoveUserFromFollowers():this.doRemoveUserFromFollowers()},doRemoveUserFromFollowers:function(){var e=this;this.inProgress=!0,this.$store.dispatch("removeUserFromFollowers",this.relationship.id).then((function(){e.inProgress=!1})),this.hideConfirmRemoveUserFromFollowers()}}},ap=(0,Jo.Z)(sp,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("i18n-t"),a=(0,Co.up)("confirm-modal");return(0,Co.wg)(),(0,Co.iD)("button",{class:(0,So.C_)(["btn button-default follow-button",{toggled:e.inProgress}]),disabled:e.inProgress,title:e.$t("user_card.remove_follower"),onClick:t[0]||(t[0]=function(){return e.onClick&&e.onClick.apply(e,arguments)})},[(0,Co.Uk)((0,So.zw)(e.label)+" ",1),((0,Co.wg)(),(0,Co.j4)(Co.lR,{to:"#modal"},[e.showingConfirmRemoveFollower?((0,Co.wg)(),(0,Co.j4)(a,{key:0,title:e.$t("user_card.remove_follower_confirm_title"),"confirm-text":e.$t("user_card.remove_follower_confirm_accept_button"),"cancel-text":e.$t("user_card.remove_follower_confirm_cancel_button"),onAccepted:e.doRemoveUserFromFollowers,onCancelled:e.hideConfirmRemoveUserFromFollowers},{default:(0,Co.w5)((function(){return[(0,Co.Wm)(s,{keypath:"user_card.remove_follower_confirm",tag:"span"},{user:(0,Co.w5)((function(){return[(0,Co._)("span",{textContent:(0,So.zw)(e.user.screen_name_ui)},null,8,ip)]})),_:1})]})),_:1},8,["title","confirm-text","cancel-text","onAccepted","onCancelled"])):(0,Co.kq)("",!0)]))],10,rp)}]]),up={props:["user","noFollowsYou"],components:{BasicUserCard:ed.Z,RemoteFollow:np.Z,FollowButton:op.Z,RemoveFollowerButton:ap},computed:{isMe:function(){return this.$store.state.users.currentUser.id===this.user.id},loggedIn:function(){return this.$store.state.users.currentUser},relationship:function(){return this.$store.getters.relationship(this.user.id)}}},cp=(0,Jo.Z)(up,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("RemoteFollow"),a=(0,Co.up)("FollowButton"),u=(0,Co.up)("RemoveFollowerButton"),c=(0,Co.up)("basic-user-card");return(0,Co.wg)(),(0,Co.j4)(c,{user:e.user},{default:(0,Co.w5)((function(){return[(0,Co._)("div",Xd,[e.isMe||!e.noFollowsYou&&e.relationship.followed_by?((0,Co.wg)(),(0,Co.iD)("span",ep,(0,So.zw)(e.isMe?e.$t("user_card.its_you"):e.$t("user_card.follows_you")),1)):(0,Co.kq)("",!0),e.loggedIn?e.isMe?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.iD)(Co.HY,{key:2},[(0,Co.Wm)(a,{relationship:e.relationship,"label-following":e.$t("user_card.follow_unfollow"),class:"follow-card-follow-button",user:e.user},null,8,["relationship","label-following","user"]),e.noFollowsYou&&e.relationship.followed_by?((0,Co.wg)(),(0,Co.j4)(u,{key:0,user:e.user,relationship:e.relationship,class:"follow-card-button"},null,8,["user","relationship"])):(0,Co.kq)("",!0)],64)):((0,Co.wg)(),(0,Co.iD)(Co.HY,{key:1},[e.relationship.following?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.iD)("div",tp,[(0,Co.Wm)(s,{user:e.user},null,8,["user"])]))],64))])]})),_:1},8,["user"])}]]);var lp=n(98027);Ht.vI.add(Vt.IJ7,Vt.xiy);var dp=(0,lp.Z)({fetch:function(e,t){return t.dispatch("fetchFollowers",e.userId)},select:function(e,t){return Dt()(t.getters.findUser(e.userId),"followerIds",[]).map((function(e){return t.getters.findUser(e)}))},destroy:function(e,t){return t.dispatch("clearFollowers",e.userId)},childPropName:"items",additionalPropNames:["userId"]})(tu.Z),pp=(0,lp.Z)({fetch:function(e,t){return t.dispatch("fetchFriends",e.userId)},select:function(e,t){return Dt()(t.getters.findUser(e.userId),"friendIds",[]).map((function(e){return t.getters.findUser(e)}))},destroy:function(e,t){return t.dispatch("clearFriends",e.userId)},childPropName:"items",additionalPropNames:["userId"]})(tu.Z),mp="statuses";const hp={data:function(){return{error:!1,userId:null,tab:mp,footerRef:null}},created:function(){var e=this.$route.params;this.load({name:e.name,id:e.id}),this.tab=Dt()(this.$route,"query.tab",mp)},unmounted:function(){this.stopFetching()},computed:{timeline:function(){return this.$store.state.statuses.timelines.user},favorites:function(){return this.$store.state.statuses.timelines.favorites},media:function(){return this.$store.state.statuses.timelines.media},isUs:function(){return this.userId&&this.$store.state.users.currentUser.id&&this.userId===this.$store.state.users.currentUser.id},user:function(){return this.$store.getters.findUser(this.userId)},isExternal:function(){return"external-user-profile"===this.$route.name},followsTabVisible:function(){return this.isUs||!this.user.hide_follows},followersTabVisible:function(){return this.isUs||!this.user.hide_followers},formattedBirthday:function(){var e=Ad.Z.internalToBrowserLocale(this.$i18n.locale);return this.user.birthday&&new Date(Date.parse(this.user.birthday)).toLocaleDateString(e,{timeZone:"UTC",day:"numeric",month:"long",year:"numeric"})}},methods:{setFooterRef:function(e){this.footerRef=e},load:function(e){var t=this,n=function(e,n){n!==t.$store.state.statuses.timelines[e].userId&&t.$store.commit("clearTimeline",{timeline:e}),t.$store.dispatch("startFetchingTimeline",{timeline:e,userId:n})},o=function(e){t.userId=e,n("user",e),n("media",e),t.isUs&&n("favorites",e),t.$store.dispatch("fetchPinnedStatuses",e)};this.userId=null,this.error=!1;var r=e.id,i=e.name,s=r?this.$store.getters.findUser(r):this.$store.getters.findUserByName(i);s?o(s.id):(r?this.$store.dispatch("fetchUser",r):this.$store.dispatch("fetchUserByName",i)).then((function(e){var t=e.id;return o(t)})).catch((function(e){var n=Dt()(e,"error.error");t.error="No user with such user_id"===n?t.$t("user_profile.profile_does_not_exist"):n||t.$t("user_profile.profile_loading_error")}))},stopFetching:function(){this.$store.dispatch("stopFetchingTimeline","user"),this.$store.dispatch("stopFetchingTimeline","favorites"),this.$store.dispatch("stopFetchingTimeline","media")},switchUser:function(e){this.stopFetching(),this.load(e)},onTabSwitch:function(e){this.tab=e,this.$router.replace({query:{tab:e}})},linkClicked:function(e){var t=e.target;"SPAN"===t.tagName&&(t=t.parentNode),"A"===t.tagName&&window.open(t.href,"_blank")}},watch:{"$route.params.id":function(e){e&&this.switchUser({id:e})},"$route.params.name":function(e){e&&this.switchUser({name:e})},"$route.query":function(e){this.tab=e.tab||mp}},components:{UserCard:xr.Z,Timeline:Vc,FollowerList:dp,FriendList:pp,FollowCard:cp,TabSwitcher:fl.Z,Conversation:$c,RichContent:Rl.Z}},fp=(0,Jo.Z)(hp,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("UserCard"),a=(0,Co.up)("FAIcon"),u=(0,Co.up)("RichContent"),c=(0,Co.up)("Timeline"),l=(0,Co.up)("FollowCard"),d=(0,Co.up)("FriendList"),p=(0,Co.up)("FollowerList"),m=(0,Co.up)("tab-switcher");return(0,Co.wg)(),(0,Co.iD)("div",null,[e.user?((0,Co.wg)(),(0,Co.iD)("div",Rd,[(0,Co.Wm)(s,{"user-id":e.userId,switcher:!0,selected:e.timeline.viewing,"avatar-action":"zoom",rounded:"top","has-note-editor":!0},null,8,["user-id","selected"]),e.user.birthday?((0,Co.wg)(),(0,Co.iD)("span",qd,[(0,Co.Wm)(a,{class:"fa-old-padding",icon:"birthday-cake"}),(0,Co.Uk)(" "+(0,So.zw)(e.$t("user_card.birthday",{birthday:e.formattedBirthday})),1)])):(0,Co.kq)("",!0),e.user.fields_html&&e.user.fields_html.length>0?((0,Co.wg)(),(0,Co.iD)("div",Nd,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.user.fields_html,(function(t,n){return(0,Co.wg)(),(0,Co.iD)("dl",{key:n,class:"user-profile-field"},[(0,Co._)("dt",{title:e.user.fields_text[n].name,class:"user-profile-field-name"},[(0,Co.Wm)(u,{html:t.name,emoji:e.user.emoji},null,8,["html","emoji"])],8,Zd),(0,Co._)("dd",{title:e.user.fields_text[n].value,class:"user-profile-field-value"},[(0,Co.Wm)(u,{html:t.value,emoji:e.user.emoji},null,8,["html","emoji"])],8,Wd)])})),128))])):(0,Co.kq)("",!0),(0,Co.Wm)(m,{"active-tab":e.tab,"render-only-focused":!0,"on-switch":e.onTabSwitch},{default:(0,Co.w5)((function(){return[(0,Co.Wm)(c,{key:"statuses",label:e.$t("user_card.statuses"),count:e.user.statuses_count,embedded:!0,title:e.$t("user_profile.timeline_title"),timeline:e.timeline,"timeline-name":"user","user-id":e.userId,"pinned-status-ids":e.user.pinnedStatusIds,"in-profile":!0,"footer-slipgate":e.footerRef},null,8,["label","count","title","timeline","user-id","pinned-status-ids","footer-slipgate"]),e.followsTabVisible?((0,Co.wg)(),(0,Co.iD)("div",{key:"followees",label:e.$t("user_card.followees"),disabled:!e.user.friends_count},[(0,Co.Wm)(d,{"user-id":e.userId},{item:(0,Co.w5)((function(e){var t=e.item;return[(0,Co.Wm)(l,{user:t},null,8,["user"])]})),_:1},8,["user-id"])],8,Hd)):(0,Co.kq)("",!0),e.followersTabVisible?((0,Co.wg)(),(0,Co.iD)("div",{key:"followers",label:e.$t("user_card.followers"),disabled:!e.user.followers_count},[(0,Co.Wm)(p,{"user-id":e.userId},{item:(0,Co.w5)((function(t){var n=t.item;return[(0,Co.Wm)(l,{user:n,"no-follows-you":e.isUs},null,8,["user","no-follows-you"])]})),_:1},8,["user-id"])],8,Vd)):(0,Co.kq)("",!0),(0,Co.Wm)(c,{key:"media",label:e.$t("user_card.media"),disabled:!e.media.visibleStatuses.length,embedded:!0,title:e.$t("user_card.media"),"timeline-name":"media",timeline:e.media,"user-id":e.userId,"in-profile":!0,"footer-slipgate":e.footerRef},null,8,["label","disabled","title","timeline","user-id","footer-slipgate"]),e.isUs?((0,Co.wg)(),(0,Co.j4)(c,{key:"favorites",label:e.$t("user_card.favorites"),disabled:!e.favorites.visibleStatuses.length,embedded:!0,title:e.$t("user_card.favorites"),"timeline-name":"favorites",timeline:e.favorites,"in-profile":!0,"footer-slipgate":e.footerRef},null,8,["label","disabled","title","timeline","footer-slipgate"])):(0,Co.kq)("",!0)]})),_:1},8,["active-tab","on-switch"]),(0,Co._)("div",{ref:e.setFooterRef,class:"panel-footer"},null,512)])):((0,Co.wg)(),(0,Co.iD)("div",Kd,[(0,Co._)("div",Gd,[(0,Co._)("div",Yd,(0,So.zw)(e.$t("settings.profile_tab")),1)]),(0,Co._)("div",Jd,[e.error?((0,Co.wg)(),(0,Co.iD)("span",Qd,(0,So.zw)(e.error),1)):((0,Co.wg)(),(0,Co.j4)(a,{key:1,spin:"",icon:"circle-notch"}))])]))])}]]);var gp={class:"panel panel-default"},vp={class:"panel-heading"},wp={class:"title"},bp={class:"search-input-container"},yp=["placeholder"],Dp={key:0,class:"text-center loading-icon"},_p={key:1},kp={class:"search-nav-heading"},Cp=["label"],Sp=["label"],jp=["label"],Fp={class:"panel-body"},Ap={key:0},Op={class:"new-status-notification text-center"},Ep={key:1,class:"text-center loading-icon"},zp={key:2,class:"search-result-heading"},Pp={key:1},Ip={key:0,class:"search-result-heading"},xp={key:2},Tp={key:0,class:"search-result-heading"},$p={class:"hashtag"},Bp={key:0},Up={key:0},Mp={key:1},Lp={key:0,class:"count"},Rp=(0,Co._)("div",{class:"search-result-footer text-center panel-footer faint"},null,-1),qp=n(45578),Np=n.n(qp);Ht.vI.add(Vt.IJ7,Vt.wn1);const Zp={components:{FollowCard:cp,Conversation:$c,Status:eu.default,TabSwitcher:fl.Z},props:["query"],data:function(){return{loaded:!1,loading:!1,searchTerm:this.query||"",userIds:[],statuses:[],hashtags:[],currenResultTab:"statuses",statusesOffset:0,lastStatusFetchCount:0,lastQuery:""}},computed:{users:function(){var e=this;return this.userIds.map((function(t){return e.$store.getters.findUser(t)}))},visibleStatuses:function(){var e=this.$store.state.statuses.allStatusesObject;return this.statuses.filter((function(t){return e[t.id]&&!e[t.id].deleted}))}},mounted:function(){this.search(this.query)},watch:{query:function(e){this.searchTerm=e,this.search(e)}},methods:{newQuery:function(e){this.$router.push({name:"search",query:{query:e}}),this.$refs.searchInput.focus()},search:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;e?(this.loading=!0,this.$refs.searchInput.blur(),this.lastQuery!==e&&(this.userIds=[],this.hashtags=[],this.statuses=[],this.statusesOffset=0,this.lastStatusFetchCount=0),this.$store.dispatch("search",{q:e,resolve:!0,offset:this.statusesOffset,type:n}).then((function(n){t.loading=!1;var o=t.statuses.length;t.userIds=t.userIds.concat(be()(n.accounts,"id")),t.statuses=Np()(t.statuses.concat(n.statuses),"id"),t.hashtags=t.hashtags.concat(n.hashtags),t.currenResultTab=t.getActiveTab(),t.loaded=!0,t.statusesOffset=t.statuses.length,t.lastStatusFetchCount=t.statuses.length-o,t.lastQuery=e}))):this.loading=!1},resultCount:function(e){var t=this[e].length;return 0===t?"":" (".concat(t,")")},onResultTabSwitch:function(e){this.currenResultTab=e},getActiveTab:function(){return this.visibleStatuses.length>0?"statuses":this.users.length>0?"people":this.hashtags.length>0?"hashtags":"statuses"},lastHistoryRecord:function(e){return e.history&&e.history[0]}}},Wp=(0,Jo.Z)(Zp,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("FAIcon"),a=(0,Co.up)("tab-switcher"),u=(0,Co.up)("Status"),c=(0,Co.up)("FollowCard"),l=(0,Co.up)("router-link");return(0,Co.wg)(),(0,Co.iD)("div",gp,[(0,Co._)("div",vp,[(0,Co._)("div",wp,(0,So.zw)(e.$t("nav.search")),1)]),(0,Co._)("div",bp,[(0,Co.wy)((0,Co._)("input",{ref:"searchInput","onUpdate:modelValue":t[0]||(t[0]=function(t){return e.searchTerm=t}),class:"search-input",placeholder:e.$t("nav.search"),onKeyup:t[1]||(t[1]=(0,wo.D2)((function(t){return e.newQuery(e.searchTerm)}),["enter"]))},null,40,yp),[[wo.nr,e.searchTerm]]),(0,Co._)("button",{class:"btn button-default search-button",type:"submit",onClick:t[2]||(t[2]=function(t){return e.newQuery(e.searchTerm)})},[(0,Co.Wm)(s,{icon:"search"})])]),e.loading&&0==e.statusesOffset?((0,Co.wg)(),(0,Co.iD)("div",Dp,[(0,Co.Wm)(s,{icon:"circle-notch",spin:"",size:"lg"})])):e.loaded?((0,Co.wg)(),(0,Co.iD)("div",_p,[(0,Co._)("div",kp,[(0,Co.Wm)(a,{ref:"tabSwitcher","on-switch":e.onResultTabSwitch,"active-tab":e.currenResultTab},{default:(0,Co.w5)((function(){return[(0,Co._)("span",{key:"statuses",label:e.$t("user_card.statuses")+e.resultCount("visibleStatuses")},null,8,Cp),(0,Co._)("span",{key:"people",label:e.$t("search.people")+e.resultCount("users")},null,8,Sp),(0,Co._)("span",{key:"hashtags",label:e.$t("search.hashtags")+e.resultCount("hashtags")},null,8,jp)]})),_:1},8,["on-switch","active-tab"])])])):(0,Co.kq)("",!0),(0,Co._)("div",Fp,["statuses"===e.currenResultTab?((0,Co.wg)(),(0,Co.iD)("div",Ap,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.visibleStatuses,(function(e){return(0,Co.wg)(),(0,Co.j4)(u,{key:e.id,collapsable:!1,expandable:!1,compact:!1,class:"search-result",statusoid:e,"no-heading":!1},null,8,["statusoid"])})),128)),!e.loading&&e.loaded&&e.lastStatusFetchCount>0?((0,Co.wg)(),(0,Co.iD)("button",{key:0,class:"more-statuses-button button-unstyled -link -fullwidth",onClick:t[3]||(t[3]=(0,wo.iM)((function(t){return e.search(e.searchTerm,"statuses")}),["prevent"]))},[(0,Co._)("div",Op,(0,So.zw)(e.$t("search.load_more")),1)])):e.loading&&e.statusesOffset>0?((0,Co.wg)(),(0,Co.iD)("div",Ep,[(0,Co.Wm)(s,{icon:"circle-notch",spin:"",size:"lg"})])):(0,Co.kq)("",!0),0!==e.visibleStatuses.length&&0!==e.lastStatusFetchCount||e.loading||!e.loaded?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.iD)("div",zp,[(0,Co._)("h4",null,(0,So.zw)(0===e.visibleStatuses.length?e.$t("search.no_results"):e.$t("search.no_more_results")),1)]))])):"people"===e.currenResultTab?((0,Co.wg)(),(0,Co.iD)("div",Pp,[0===e.users.length&&!e.loading&&e.loaded?((0,Co.wg)(),(0,Co.iD)("div",Ip,[(0,Co._)("h4",null,(0,So.zw)(e.$t("search.no_results")),1)])):(0,Co.kq)("",!0),((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.users,(function(e){return(0,Co.wg)(),(0,Co.j4)(c,{key:e.id,user:e,class:"list-item search-result"},null,8,["user"])})),128))])):"hashtags"===e.currenResultTab?((0,Co.wg)(),(0,Co.iD)("div",xp,[0===e.hashtags.length&&!e.loading&&e.loaded?((0,Co.wg)(),(0,Co.iD)("div",Tp,[(0,Co._)("h4",null,(0,So.zw)(e.$t("search.no_results")),1)])):(0,Co.kq)("",!0),((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.hashtags,(function(t){return(0,Co.wg)(),(0,Co.iD)("div",{key:t.url,class:"status trend search-result"},[(0,Co._)("div",$p,[(0,Co.Wm)(l,{to:{name:"tag-timeline",params:{tag:t.name}}},{default:(0,Co.w5)((function(){return[(0,Co.Uk)(" #"+(0,So.zw)(t.name),1)]})),_:2},1032,["to"]),e.lastHistoryRecord(t)?((0,Co.wg)(),(0,Co.iD)("div",Bp,[1==e.lastHistoryRecord(t).accounts?((0,Co.wg)(),(0,Co.iD)("span",Up,(0,So.zw)(e.$t("search.person_talking",{count:e.lastHistoryRecord(t).accounts})),1)):((0,Co.wg)(),(0,Co.iD)("span",Mp,(0,So.zw)(e.$t("search.people_talking",{count:e.lastHistoryRecord(t).accounts})),1))])):(0,Co.kq)("",!0)]),e.lastHistoryRecord(t)?((0,Co.wg)(),(0,Co.iD)("div",Lp,(0,So.zw)(e.lastHistoryRecord(t).uses),1)):(0,Co.kq)("",!0)])})),128))])):(0,Co.kq)("",!0)]),Rp])}]]);var Hp={class:"settings panel panel-default"},Vp={class:"panel-heading"},Kp={class:"panel-body"},Gp={class:"container"},Yp={class:"text-fields"},Jp={class:"form--label",for:"sign-up-username"},Qp=["disabled","placeholder"],Xp={key:0,class:"form-error"},em={key:0},tm={class:"form--label",for:"sign-up-fullname"},nm=["disabled","placeholder"],om={key:1,class:"form-error"},rm={key:0},im={class:"form--label",for:"email"},sm=["disabled","aria-required"],am={key:2,class:"form-error"},um={key:0},cm={class:"form-group"},lm={class:"form--label",for:"bio"},dm=["disabled","placeholder"],pm={class:"form--label",for:"sign-up-password"},mm=["disabled"],hm={key:3,class:"form-error"},fm={key:0},gm={class:"form--label",for:"sign-up-password-confirmation"},vm=["disabled"],wm={key:4,class:"form-error"},bm={key:0},ym={key:1},Dm={class:"form--label",for:"sign-up-birthday"},_m=["disabled","max","aria-required"],km={key:5,class:"form-error"},Cm={key:0},Sm={key:1},jm={key:6,class:"form-group"},Fm={class:"form--label",for:"reason"},Am=["disabled","placeholder"],Om={key:7,id:"captcha-group",class:"form-group"},Em={class:"form--label",for:"captcha-label"},zm=["src"],Pm=["disabled"],Im={key:8,class:"form-group"},xm={for:"token"},Tm={class:"form-group"},$m=["disabled"],Bm=["innerHTML"],Um={key:0,class:"form-group"},Mm={class:"alert error"},Lm=n(21359),Rm=n(35332),qm=n(86269),Nm=n(27483);function Zm(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Wm(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Zm(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Zm(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}const Hm={setup:function(){return{v$:(0,Lm.ZP)()}},data:function(){return{user:{email:"",fullname:"",username:"",password:"",confirm:"",birthday:"",reason:"",language:[""]},captcha:{}}},components:{InterfaceLanguageSwitcher:qm.Z},validations:function(){var e=this;return{user:{email:{required:(0,Rm.CF)((function(){return e.accountActivationRequired}))},username:{required:Rm.C1},fullname:{required:Rm.C1},password:{required:Rm.C1},confirm:{required:Rm.C1,sameAs:(0,Rm.sH)(this.user.password)},birthday:{required:(0,Rm.CF)((function(){return e.birthdayRequired})),maxValue:function(t){return!e.birthdayRequired||new Date(t).getTime()<=e.birthdayMin.getTime()}},reason:{required:(0,Rm.CF)((function(){return e.accountApprovalRequired}))},language:{}}}},created:function(){(!this.registrationOpen&&!this.token||this.signedIn)&&this.$router.push({name:"root"}),this.setCaptcha()},computed:Wm({token:function(){return this.$route.params.token},bioPlaceholder:function(){return this.replaceNewlines(this.$t("registration.bio_placeholder"))},reasonPlaceholder:function(){return this.replaceNewlines(this.$t("registration.reason_placeholder"))},birthdayMin:function(){var e=this.birthdayMinAge,t=new Date;t.setUTCMilliseconds(0),t.setUTCSeconds(0),t.setUTCMinutes(0),t.setUTCHours(0);var n=new Date;return n.setTime(t.getTime()-e*Nm.x4),n},birthdayMinAttr:function(){return this.birthdayMin.toJSON().replace(/T.+$/,"")},birthdayMinFormatted:function(){var e=Ad.Z.internalToBrowserLocale(this.$i18n.locale);return this.user.birthday&&new Date(Date.parse(this.birthdayMin)).toLocaleDateString(e,{timeZone:"UTC",day:"numeric",month:"long",year:"numeric"})}},(0,s.rn)({registrationOpen:function(e){return e.instance.registrationOpen},signedIn:function(e){return!!e.users.currentUser},isPending:function(e){return e.users.signUpPending},serverValidationErrors:function(e){return e.users.signUpErrors},termsOfService:function(e){return e.instance.tos},accountActivationRequired:function(e){return e.instance.accountActivationRequired},accountApprovalRequired:function(e){return e.instance.accountApprovalRequired},birthdayRequired:function(e){return e.instance.birthdayRequired},birthdayMinAge:function(e){return e.instance.birthdayMinAge}})),methods:Wm(Wm({},(0,s.nv)(["signUp","getCaptcha"])),{},{submit:function(){var e=this;return(0,o.Z)(i().mark((function t(){return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(e.user.nickname=e.user.username,e.user.token=e.token,e.user.captcha_solution=e.captcha.solution,e.user.captcha_token=e.captcha.token,e.user.captcha_answer_data=e.captcha.answer_data,e.user.language&&(e.user.language=Ad.Z.internalToBackendLocaleMulti(e.user.language.filter((function(e){return e})))),e.v$.$touch(),e.v$.$invalid){t.next=18;break}return t.prev=8,t.next=11,e.signUp(e.user);case 11:e.$router.push({name:"friends"}),t.next=18;break;case 14:t.prev=14,t.t0=t.catch(8),console.warn("Registration failed: ",t.t0),e.setCaptcha();case 18:case"end":return t.stop()}}),t,null,[[8,14]])})))()},setCaptcha:function(){var e=this;this.getCaptcha().then((function(t){e.captcha=t}))},replaceNewlines:function(e){return e.replace(/\s*\n\s*/g," \n")}})},Vm=(0,Jo.Z)(Hm,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("interface-language-switcher");return(0,Co.wg)(),(0,Co.iD)("div",Hp,[(0,Co._)("div",Vp,(0,So.zw)(e.$t("registration.registration")),1),(0,Co._)("div",Kp,[(0,Co._)("form",{class:"registration-form",onSubmit:t[12]||(t[12]=(0,wo.iM)((function(t){return e.submit(e.user)}),["prevent"]))},[(0,Co._)("div",Gp,[(0,Co._)("div",Yp,[(0,Co._)("div",{class:(0,So.C_)(["form-group",{"form-group--error":e.v$.user.username.$error}])},[(0,Co._)("label",Jp,(0,So.zw)(e.$t("login.username")),1),(0,Co.wy)((0,Co._)("input",{id:"sign-up-username","onUpdate:modelValue":t[0]||(t[0]=function(t){return e.v$.user.username.$model=t}),disabled:e.isPending,class:"form-control","aria-required":!0,placeholder:e.$t("registration.username_placeholder")},null,8,Qp),[[wo.nr,e.v$.user.username.$model,void 0,{trim:!0}]])],2),e.v$.user.username.$dirty?((0,Co.wg)(),(0,Co.iD)("div",Xp,[(0,Co._)("ul",null,[e.v$.user.username.required?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.iD)("li",em,[(0,Co._)("span",null,(0,So.zw)(e.$t("registration.validations.username_required")),1)]))])])):(0,Co.kq)("",!0),(0,Co._)("div",{class:(0,So.C_)(["form-group",{"form-group--error":e.v$.user.fullname.$error}])},[(0,Co._)("label",tm,(0,So.zw)(e.$t("registration.fullname")),1),(0,Co.wy)((0,Co._)("input",{id:"sign-up-fullname","onUpdate:modelValue":t[1]||(t[1]=function(t){return e.v$.user.fullname.$model=t}),disabled:e.isPending,class:"form-control","aria-required":!0,placeholder:e.$t("registration.fullname_placeholder")},null,8,nm),[[wo.nr,e.v$.user.fullname.$model,void 0,{trim:!0}]])],2),e.v$.user.fullname.$dirty?((0,Co.wg)(),(0,Co.iD)("div",om,[(0,Co._)("ul",null,[e.v$.user.fullname.required?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.iD)("li",rm,[(0,Co._)("span",null,(0,So.zw)(e.$t("registration.validations.fullname_required")),1)]))])])):(0,Co.kq)("",!0),(0,Co._)("div",{class:(0,So.C_)(["form-group",{"form-group--error":e.v$.user.email.$error}])},[(0,Co._)("label",im,(0,So.zw)(e.accountActivationRequired?e.$t("registration.email"):e.$t("registration.email_optional")),1),(0,Co.wy)((0,Co._)("input",{id:"email","onUpdate:modelValue":t[2]||(t[2]=function(t){return e.v$.user.email.$model=t}),disabled:e.isPending,class:"form-control",type:"email","aria-required":e.accountActivationRequired},null,8,sm),[[wo.nr,e.v$.user.email.$model]])],2),e.v$.user.email.$dirty?((0,Co.wg)(),(0,Co.iD)("div",am,[(0,Co._)("ul",null,[e.v$.user.email.required?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.iD)("li",um,[(0,Co._)("span",null,(0,So.zw)(e.$t("registration.validations.email_required")),1)]))])])):(0,Co.kq)("",!0),(0,Co._)("div",cm,[(0,Co._)("label",lm,(0,So.zw)(e.$t("registration.bio_optional")),1),(0,Co.wy)((0,Co._)("textarea",{id:"bio","onUpdate:modelValue":t[3]||(t[3]=function(t){return e.user.bio=t}),disabled:e.isPending,class:"form-control",placeholder:e.bioPlaceholder},null,8,dm),[[wo.nr,e.user.bio]])]),(0,Co._)("div",{class:(0,So.C_)(["form-group",{"form-group--error":e.v$.user.password.$error}])},[(0,Co._)("label",pm,(0,So.zw)(e.$t("login.password")),1),(0,Co.wy)((0,Co._)("input",{id:"sign-up-password","onUpdate:modelValue":t[4]||(t[4]=function(t){return e.user.password=t}),disabled:e.isPending,class:"form-control",type:"password","aria-required":!0},null,8,mm),[[wo.nr,e.user.password]])],2),e.v$.user.password.$dirty?((0,Co.wg)(),(0,Co.iD)("div",hm,[(0,Co._)("ul",null,[e.v$.user.password.required?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.iD)("li",fm,[(0,Co._)("span",null,(0,So.zw)(e.$t("registration.validations.password_required")),1)]))])])):(0,Co.kq)("",!0),(0,Co._)("div",{class:(0,So.C_)(["form-group",{"form-group--error":e.v$.user.confirm.$error}])},[(0,Co._)("label",gm,(0,So.zw)(e.$t("registration.password_confirm")),1),(0,Co.wy)((0,Co._)("input",{id:"sign-up-password-confirmation","onUpdate:modelValue":t[5]||(t[5]=function(t){return e.user.confirm=t}),disabled:e.isPending,class:"form-control",type:"password","aria-required":!0},null,8,vm),[[wo.nr,e.user.confirm]])],2),e.v$.user.confirm.$dirty?((0,Co.wg)(),(0,Co.iD)("div",wm,[(0,Co._)("ul",null,[e.v$.user.confirm.required.$invalid?((0,Co.wg)(),(0,Co.iD)("li",bm,[(0,Co._)("span",null,(0,So.zw)(e.$t("registration.validations.password_confirmation_required")),1)])):(0,Co.kq)("",!0),e.v$.user.confirm.sameAs.$invalid?((0,Co.wg)(),(0,Co.iD)("li",ym,[(0,Co._)("span",null,(0,So.zw)(e.$t("registration.validations.password_confirmation_match")),1)])):(0,Co.kq)("",!0)])])):(0,Co.kq)("",!0),(0,Co._)("div",{class:(0,So.C_)(["form-group",{"form-group--error":e.v$.user.birthday.$error}])},[(0,Co._)("label",Dm,(0,So.zw)(e.birthdayRequired?e.$t("registration.birthday"):e.$t("registration.birthday_optional")),1),(0,Co.wy)((0,Co._)("input",{id:"sign-up-birthday","onUpdate:modelValue":t[6]||(t[6]=function(t){return e.user.birthday=t}),disabled:e.isPending,class:"form-control",type:"date",max:e.birthdayRequired?e.birthdayMinAttr:void 0,"aria-required":e.birthdayRequired},null,8,_m),[[wo.nr,e.user.birthday]])],2),e.v$.user.birthday.$dirty?((0,Co.wg)(),(0,Co.iD)("div",km,[(0,Co._)("ul",null,[e.v$.user.birthday.required.$invalid?((0,Co.wg)(),(0,Co.iD)("li",Cm,[(0,Co._)("span",null,(0,So.zw)(e.$t("registration.validations.birthday_required")),1)])):(0,Co.kq)("",!0),e.v$.user.birthday.maxValue.$invalid?((0,Co.wg)(),(0,Co.iD)("li",Sm,[(0,Co._)("span",null,(0,So.zw)(e.$tc("registration.validations.birthday_min_age",{date:e.birthdayMinFormatted})),1)])):(0,Co.kq)("",!0)])])):(0,Co.kq)("",!0),(0,Co._)("div",{class:(0,So.C_)(["form-group",{"form-group--error":e.v$.user.language.$error}])},[(0,Co.Wm)(s,{for:"email-language","prompt-text":e.$t("registration.email_language"),language:e.v$.user.language.$model,"set-language":function(t){return e.v$.user.language.$model=t},onClick:t[7]||(t[7]=(0,wo.iM)((function(){}),["stop","prevent"]))},null,8,["prompt-text","language","set-language"])],2),e.accountApprovalRequired?((0,Co.wg)(),(0,Co.iD)("div",jm,[(0,Co._)("label",Fm,(0,So.zw)(e.$t("registration.reason")),1),(0,Co.wy)((0,Co._)("textarea",{id:"reason","onUpdate:modelValue":t[8]||(t[8]=function(t){return e.user.reason=t}),disabled:e.isPending,class:"form-control",placeholder:e.reasonPlaceholder},null,8,Am),[[wo.nr,e.user.reason]])])):(0,Co.kq)("",!0),"none"!=e.captcha.type?((0,Co.wg)(),(0,Co.iD)("div",Om,[(0,Co._)("label",Em,(0,So.zw)(e.$t("registration.captcha")),1),["kocaptcha","native"].includes(e.captcha.type)?((0,Co.wg)(),(0,Co.iD)(Co.HY,{key:0},[(0,Co._)("img",{src:e.captcha.url,onClick:t[9]||(t[9]=function(){return e.setCaptcha&&e.setCaptcha.apply(e,arguments)})},null,8,zm),(0,Co._)("sub",null,(0,So.zw)(e.$t("registration.new_captcha")),1),(0,Co.wy)((0,Co._)("input",{id:"captcha-answer","onUpdate:modelValue":t[10]||(t[10]=function(t){return e.captcha.solution=t}),disabled:e.isPending,class:"form-control",type:"text",autocomplete:"off",autocorrect:"off",autocapitalize:"off",spellcheck:"false"},null,8,Pm),[[wo.nr,e.captcha.solution]])],64)):(0,Co.kq)("",!0)])):(0,Co.kq)("",!0),e.token?((0,Co.wg)(),(0,Co.iD)("div",Im,[(0,Co._)("label",xm,(0,So.zw)(e.$t("registration.token")),1),(0,Co.wy)((0,Co._)("input",{id:"token","onUpdate:modelValue":t[11]||(t[11]=function(t){return e.token=t}),disabled:"true",class:"form-control",type:"text"},null,512),[[wo.nr,e.token]])])):(0,Co.kq)("",!0),(0,Co._)("div",Tm,[(0,Co._)("button",{disabled:e.isPending,type:"submit",class:"btn button-default"},(0,So.zw)(e.$t("registration.register")),9,$m)])]),(0,Co._)("div",{class:"terms-of-service",innerHTML:e.termsOfService},null,8,Bm)]),e.serverValidationErrors.length?((0,Co.wg)(),(0,Co.iD)("div",Um,[(0,Co._)("div",Mm,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.serverValidationErrors,(function(e){return(0,Co.wg)(),(0,Co.iD)("span",{key:e},(0,So.zw)(e),1)})),128))])])):(0,Co.kq)("",!0)],32)])])}]]);var Km={class:"settings panel panel-default"},Gm={class:"panel-heading"},Ym={class:"panel-body"},Jm={class:"container"},Qm={key:0},Xm={key:0},eh={key:1},th={key:1},nh={key:0},oh={class:"form-group text-center"},rh={key:2},ih={key:0,class:"password-reset-required error"},sh={class:"form-group"},ah=["disabled","placeholder"],uh={class:"form-group"},ch=["disabled"],lh={key:3,class:"alert error notice-dismissible"};function dh(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function ph(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?dh(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):dh(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Ht.vI.add(Vt.NBC);var mh={data:function(){return{user:{email:""},isPending:!1,success:!1,throttled:!1,error:null}},computed:ph(ph({},(0,s.rn)({signedIn:function(e){return!!e.users.currentUser},instance:function(e){return e.instance}})),{},{mailerEnabled:function(){return this.instance.mailerEnabled}}),created:function(){this.signedIn&&this.$router.push({name:"root"})},props:{passwordResetRequested:{default:!1,type:Boolean}},methods:{dismissError:function(){this.error=null},submit:function(){var e=this;this.isPending=!0;var t=this.user.email;(function(e){var t=e.instance,n={email:e.email},o=Ue()(n,(function(e,t,n){var o="".concat(n,"=").concat(encodeURIComponent(t));return"".concat(e,"&").concat(o)}),""),r="".concat(t).concat("/auth/password","?").concat(o);return window.fetch(r,{method:"POST"})})({instance:this.instance.server,email:t}).then((function(t){var n=t.status;e.isPending=!1,e.user.email="",204===n?(e.success=!0,e.error=null):429===n&&(e.throttled=!0,e.error=e.$t("password_reset.too_many_requests"))})).catch((function(){e.isPending=!1,e.user.email="",e.error=e.$t("general.generic_error")}))}}};const hh=mh,fh=(0,Jo.Z)(hh,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("router-link"),a=(0,Co.up)("FAIcon");return(0,Co.wg)(),(0,Co.iD)("div",Km,[(0,Co._)("div",Gm,(0,So.zw)(e.$t("password_reset.password_reset")),1),(0,Co._)("div",Ym,[(0,Co._)("form",{class:"password-reset-form",onSubmit:t[2]||(t[2]=(0,wo.iM)((function(){return e.submit&&e.submit.apply(e,arguments)}),["prevent"]))},[(0,Co._)("div",Jm,[e.mailerEnabled?e.success||e.throttled?((0,Co.wg)(),(0,Co.iD)("div",th,[e.success?((0,Co.wg)(),(0,Co.iD)("p",nh,(0,So.zw)(e.$t("password_reset.check_email")),1)):(0,Co.kq)("",!0),(0,Co._)("div",oh,[(0,Co.Wm)(s,{to:{name:"root"}},{default:(0,Co.w5)((function(){return[(0,Co.Uk)((0,So.zw)(e.$t("password_reset.return_home")),1)]})),_:1})])])):((0,Co.wg)(),(0,Co.iD)("div",rh,[e.passwordResetRequested?((0,Co.wg)(),(0,Co.iD)("p",ih,(0,So.zw)(e.$t("password_reset.password_reset_required")),1)):(0,Co.kq)("",!0),(0,Co._)("p",null,(0,So.zw)(e.$t("password_reset.instruction")),1),(0,Co._)("div",sh,[(0,Co.wy)((0,Co._)("input",{ref:"email","onUpdate:modelValue":t[0]||(t[0]=function(t){return e.user.email=t}),disabled:e.isPending,placeholder:e.$t("password_reset.placeholder"),class:"form-control",type:"input"},null,8,ah),[[wo.nr,e.user.email]])]),(0,Co._)("div",uh,[(0,Co._)("button",{disabled:e.isPending,type:"submit",class:"btn button-default btn-block"},(0,So.zw)(e.$t("settings.save")),9,ch)])])):((0,Co.wg)(),(0,Co.iD)("div",Qm,[e.passwordResetRequested?((0,Co.wg)(),(0,Co.iD)("p",Xm,(0,So.zw)(e.$t("password_reset.password_reset_required_but_mailer_is_disabled")),1)):((0,Co.wg)(),(0,Co.iD)("p",eh,(0,So.zw)(e.$t("password_reset.password_reset_disabled")),1))])),e.error?((0,Co.wg)(),(0,Co.iD)("p",lh,[(0,Co._)("span",null,(0,So.zw)(e.error),1),(0,Co._)("a",{class:"fa-scale-110 fa-old-padding dismiss",onClick:t[1]||(t[1]=(0,wo.iM)((function(t){return e.dismissError()}),["prevent"]))},[(0,Co.Wm)(a,{icon:"times"})])])):(0,Co.kq)("",!0)])],32)])])}]]);var gh={class:"settings panel panel-default"},vh={class:"panel-heading"},wh={class:"title"},bh={class:"panel-body"},yh={class:"follow-request-card-content-container"};const Dh={props:["user"],components:{BasicUserCard:ed.Z,ConfirmModal:Da.Z},data:function(){return{showingApproveConfirmDialog:!1,showingDenyConfirmDialog:!1}},methods:{findFollowRequestNotificationId:function(){var e=this,t=(0,K.Bt)(this.$store).find((function(t){return t.from_profile.id===e.user.id&&"follow_request"===t.type}));return t&&t.id},showApproveConfirmDialog:function(){this.showingApproveConfirmDialog=!0},hideApproveConfirmDialog:function(){this.showingApproveConfirmDialog=!1},showDenyConfirmDialog:function(){this.showingDenyConfirmDialog=!0},hideDenyConfirmDialog:function(){this.showingDenyConfirmDialog=!1},approveUser:function(){this.shouldConfirmApprove?this.showApproveConfirmDialog():this.doApprove()},doApprove:function(){this.$store.state.api.backendInteractor.approveUser({id:this.user.id}),this.$store.dispatch("removeFollowRequest",this.user);var e=this.findFollowRequestNotificationId();this.$store.dispatch("markSingleNotificationAsSeen",{id:e}),this.$store.dispatch("updateNotification",{id:e,updater:function(e){e.type="follow"}}),this.hideApproveConfirmDialog()},denyUser:function(){this.shouldConfirmDeny?this.showDenyConfirmDialog():this.doDeny()},doDeny:function(){var e=this,t=this.findFollowRequestNotificationId();this.$store.state.api.backendInteractor.denyUser({id:this.user.id}).then((function(){e.$store.dispatch("dismissNotificationLocal",{id:t}),e.$store.dispatch("removeFollowRequest",e.user)})),this.hideDenyConfirmDialog()}},computed:{mergedConfig:function(){return this.$store.getters.mergedConfig},shouldConfirmApprove:function(){return this.mergedConfig.modalOnApproveFollow},shouldConfirmDeny:function(){return this.mergedConfig.modalOnDenyFollow}}},_h={components:{FollowRequestCard:(0,Jo.Z)(Dh,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("confirm-modal"),a=(0,Co.up)("basic-user-card");return(0,Co.wg)(),(0,Co.j4)(a,{user:e.user},{default:(0,Co.w5)((function(){return[(0,Co._)("div",yh,[(0,Co._)("button",{class:"btn button-default",onClick:t[0]||(t[0]=function(){return e.approveUser&&e.approveUser.apply(e,arguments)})},(0,So.zw)(e.$t("user_card.approve")),1),(0,Co._)("button",{class:"btn button-default",onClick:t[1]||(t[1]=function(){return e.denyUser&&e.denyUser.apply(e,arguments)})},(0,So.zw)(e.$t("user_card.deny")),1)]),((0,Co.wg)(),(0,Co.j4)(Co.lR,{to:"#modal"},[e.showingApproveConfirmDialog?((0,Co.wg)(),(0,Co.j4)(s,{key:0,title:e.$t("user_card.approve_confirm_title"),"confirm-text":e.$t("user_card.approve_confirm_accept_button"),"cancel-text":e.$t("user_card.approve_confirm_cancel_button"),onAccepted:e.doApprove,onCancelled:e.hideApproveConfirmDialog},{default:(0,Co.w5)((function(){return[(0,Co.Uk)((0,So.zw)(e.$t("user_card.approve_confirm",{user:e.user.screen_name_ui})),1)]})),_:1},8,["title","confirm-text","cancel-text","onAccepted","onCancelled"])):(0,Co.kq)("",!0),e.showingDenyConfirmDialog?((0,Co.wg)(),(0,Co.j4)(s,{key:1,title:e.$t("user_card.deny_confirm_title"),"confirm-text":e.$t("user_card.deny_confirm_accept_button"),"cancel-text":e.$t("user_card.deny_confirm_cancel_button"),onAccepted:e.doDeny,onCancelled:e.hideDenyConfirmDialog},{default:(0,Co.w5)((function(){return[(0,Co.Uk)((0,So.zw)(e.$t("user_card.deny_confirm",{user:e.user.screen_name_ui})),1)]})),_:1},8,["title","confirm-text","cancel-text","onAccepted","onCancelled"])):(0,Co.kq)("",!0)]))]})),_:1},8,["user"])}]])},computed:{requests:function(){return this.$store.state.api.followRequests}}},kh=(0,Jo.Z)(_h,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("FollowRequestCard");return(0,Co.wg)(),(0,Co.iD)("div",gh,[(0,Co._)("div",vh,[(0,Co._)("div",wh,(0,So.zw)(e.$t("nav.friend_requests")),1)]),(0,Co._)("div",bh,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.requests,(function(e){return(0,Co.wg)(),(0,Co.j4)(s,{key:e.id,user:e,class:"list-item"},null,8,["user"])})),128))])])}]]),Ch={props:["code"],mounted:function(){var e=this;if(this.code){var t=this.$store.state.oauth,n=t.clientId,o=t.clientSecret;Ne.getToken({clientId:n,clientSecret:o,instance:this.$store.state.instance.server,code:this.code}).then((function(t){e.$store.commit("setToken",t.access_token),e.$store.dispatch("loginUser",t.access_token),e.$router.push({name:"friends"})}))}}},Sh=(0,Jo.Z)(Ch,[["render",function(e,t,n,o,r,i){return(0,Co.wg)(),(0,Co.iD)("h1",null,"...")}]]);var jh={class:"panel panel-default"},Fh={class:"panel-heading"},Ah={class:"panel-body"};const Oh={components:{FollowCard:cp},data:function(){return{users:[]}},mounted:function(){this.getWhoToFollow()},methods:{showWhoToFollow:function(e){var t=this;e.forEach((function(e,n){t.$store.state.api.backendInteractor.fetchUser({id:e.acct}).then((function(e){e.error||(t.$store.commit("addNewUsers",[e]),t.users.push(e))}))}))},getWhoToFollow:function(){var e=this,t=this.$store.state.users.currentUser.credentials;t&&h.ZP.suggestions({credentials:t}).then((function(t){e.showWhoToFollow(t)}))}}},Eh=(0,Jo.Z)(Oh,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("FollowCard");return(0,Co.wg)(),(0,Co.iD)("div",jh,[(0,Co._)("div",Fh,(0,So.zw)(e.$t("who_to_follow.who_to_follow")),1),(0,Co._)("div",Ah,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.users,(function(e){return(0,Co.wg)(),(0,Co.j4)(s,{key:e.id,user:e,class:"list-item"},null,8,["user"])})),128))])])}]]);var zh={class:"column-inner"},Ph={class:"panel panel-default"},Ih={class:"panel-body"},xh=["innerHTML"];const Th={computed:{content:function(){return this.$store.state.instance.tos}}},$h=(0,Jo.Z)(Th,[["render",function(e,t,n,o,r,i){return(0,Co.wg)(),(0,Co.iD)("div",null,[(0,Co._)("div",Ph,[(0,Co._)("div",Ih,[(0,Co._)("div",{class:"tos-content",innerHTML:e.content},null,8,xh)])])])}]]);var Bh={class:"staff-panel"},Uh={class:"panel panel-default base01-background"},Mh={class:"panel-heading timeline-heading base02-background"},Lh={class:"title"},Rh={class:"panel-body"};function qh(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Nh(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?qh(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):qh(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}const Zh={created:function(){var e=this;this.$store.state.instance.staffAccounts.forEach((function(t){return e.$store.dispatch("fetchUserIfMissing",t)}))},components:{BasicUserCard:ed.Z},computed:Nh(Nh({groupedStaffAccounts:function(){var e=be()(this.staffAccounts,this.findUserByName).filter((function(e){return e})),t=Tt()(e,"role");return[{role:"admin",users:t.admin},{role:"moderator",users:t.moderator}].filter((function(e){return e.users}))}},(0,s.Se)(["findUserByName"])),(0,s.rn)({staffAccounts:function(e){return e.instance.staffAccounts}}))},Wh=(0,Jo.Z)(Zh,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("basic-user-card");return(0,Co.wg)(),(0,Co.iD)("div",Bh,[(0,Co._)("div",Uh,[(0,Co._)("div",Mh,[(0,Co._)("div",Lh,(0,So.zw)(e.$t("about.staff")),1)]),(0,Co._)("div",Rh,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.groupedStaffAccounts,(function(t){return(0,Co.wg)(),(0,Co.iD)("div",{key:t.role,class:"staff-group"},[(0,Co._)("h4",null,(0,So.zw)(e.$t("general.role."+t.role)),1),((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(t.users,(function(e){return(0,Co.wg)(),(0,Co.j4)(s,{key:e.screen_name,user:e},null,8,["user"])})),128))])})),128))])])])}]]);var Hh={key:0,class:"mrf-transparency-panel"},Vh={class:"panel panel-default base01-background"},Kh={class:"panel-heading timeline-heading base02-background"},Gh={class:"title"},Yh={class:"panel-body"},Jh={class:"mrf-section"},Qh=["textContent"],Xh={key:0},ef={key:1},tf={key:0},nf={key:1},of={key:2},rf={key:0},sf={key:1},af={key:3},uf={key:0},cf={key:1},lf={key:4},df={key:0},pf={key:1},mf={key:5},hf={key:0},ff={key:1},gf={key:6},vf={key:0},wf={key:1},bf={key:7},yf={key:8},Df=["textContent"],_f={key:9},kf=["textContent"],Cf={key:10};function Sf(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function jf(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Sf(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Sf(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Ff=function(e,t,n){return e.map((function(e){return t[n]&&t[n][e]&&t[n][e].reason?{instance:e,reason:t[n][e].reason}:{instance:e,reason:""}}))};const Af={computed:jf(jf({},(0,s.rn)({federationPolicy:function(e){return Dt()(e,"instance.federationPolicy")},mrfPolicies:function(e){return Dt()(e,"instance.federationPolicy.mrf_policies",[])},quarantineInstances:function(e){return Ff(Dt()(e,"instance.federationPolicy.quarantined_instances",[]),Dt()(e,"instance.federationPolicy.quarantined_instances_info",[]),"quarantined_instances")},acceptInstances:function(e){return Ff(Dt()(e,"instance.federationPolicy.mrf_simple.accept",[]),Dt()(e,"instance.federationPolicy.mrf_simple_info",[]),"accept")},rejectInstances:function(e){return Ff(Dt()(e,"instance.federationPolicy.mrf_simple.reject",[]),Dt()(e,"instance.federationPolicy.mrf_simple_info",[]),"reject")},ftlRemovalInstances:function(e){return Ff(Dt()(e,"instance.federationPolicy.mrf_simple.federated_timeline_removal",[]),Dt()(e,"instance.federationPolicy.mrf_simple_info",[]),"federated_timeline_removal")},mediaNsfwInstances:function(e){return Ff(Dt()(e,"instance.federationPolicy.mrf_simple.media_nsfw",[]),Dt()(e,"instance.federationPolicy.mrf_simple_info",[]),"media_nsfw")},mediaRemovalInstances:function(e){return Ff(Dt()(e,"instance.federationPolicy.mrf_simple.media_removal",[]),Dt()(e,"instance.federationPolicy.mrf_simple_info",[]),"media_removal")},keywordsFtlRemoval:function(e){return Dt()(e,"instance.federationPolicy.mrf_keyword.federated_timeline_removal",[])},keywordsReject:function(e){return Dt()(e,"instance.federationPolicy.mrf_keyword.reject",[])},keywordsReplace:function(e){return Dt()(e,"instance.federationPolicy.mrf_keyword.replace",[])}})),{},{hasInstanceSpecificPolicies:function(){return this.quarantineInstances.length||this.acceptInstances.length||this.rejectInstances.length||this.ftlRemovalInstances.length||this.mediaNsfwInstances.length||this.mediaRemovalInstances.length},hasKeywordPolicies:function(){return this.keywordsFtlRemoval.length||this.keywordsReject.length||this.keywordsReplace.length}})},Of={components:{InstanceSpecificPanel:Ai,FeaturesPanel:Ri,TermsOfServicePanel:$h,StaffPanel:Wh,MRFTransparencyPanel:(0,Jo.Z)(Af,[["render",function(e,t,n,o,r,i){return e.federationPolicy?((0,Co.wg)(),(0,Co.iD)("div",Hh,[(0,Co._)("div",Vh,[(0,Co._)("div",Kh,[(0,Co._)("div",Gh,(0,So.zw)(e.$t("about.mrf.federation")),1)]),(0,Co._)("div",Yh,[(0,Co._)("div",Jh,[(0,Co._)("h2",null,(0,So.zw)(e.$t("about.mrf.mrf_policies")),1),(0,Co._)("p",null,(0,So.zw)(e.$t("about.mrf.mrf_policies_desc")),1),(0,Co._)("ul",null,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.mrfPolicies,(function(e){return(0,Co.wg)(),(0,Co.iD)("li",{key:e,textContent:(0,So.zw)(e)},null,8,Qh)})),128))]),e.hasInstanceSpecificPolicies?((0,Co.wg)(),(0,Co.iD)("h2",Xh,(0,So.zw)(e.$t("about.mrf.simple.simple_policies")),1)):(0,Co.kq)("",!0),e.acceptInstances.length?((0,Co.wg)(),(0,Co.iD)("div",ef,[(0,Co._)("h4",null,(0,So.zw)(e.$t("about.mrf.simple.accept")),1),(0,Co._)("p",null,(0,So.zw)(e.$t("about.mrf.simple.accept_desc")),1),(0,Co._)("table",null,[(0,Co._)("tr",null,[(0,Co._)("th",null,(0,So.zw)(e.$t("about.mrf.simple.instance")),1),(0,Co._)("th",null,(0,So.zw)(e.$t("about.mrf.simple.reason")),1)]),((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.acceptInstances,(function(t){return(0,Co.wg)(),(0,Co.iD)("tr",{key:t.instance+"_accept"},[(0,Co._)("td",null,(0,So.zw)(t.instance),1),""===t.reason?((0,Co.wg)(),(0,Co.iD)("td",tf,(0,So.zw)(e.$t("about.mrf.simple.not_applicable")),1)):((0,Co.wg)(),(0,Co.iD)("td",nf,(0,So.zw)(t.reason),1))])})),128))])])):(0,Co.kq)("",!0),e.rejectInstances.length?((0,Co.wg)(),(0,Co.iD)("div",of,[(0,Co._)("h4",null,(0,So.zw)(e.$t("about.mrf.simple.reject")),1),(0,Co._)("p",null,(0,So.zw)(e.$t("about.mrf.simple.reject_desc")),1),(0,Co._)("table",null,[(0,Co._)("tr",null,[(0,Co._)("th",null,(0,So.zw)(e.$t("about.mrf.simple.instance")),1),(0,Co._)("th",null,(0,So.zw)(e.$t("about.mrf.simple.reason")),1)]),((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.rejectInstances,(function(t){return(0,Co.wg)(),(0,Co.iD)("tr",{key:t.instance+"_reject"},[(0,Co._)("td",null,(0,So.zw)(t.instance),1),""===t.reason?((0,Co.wg)(),(0,Co.iD)("td",rf,(0,So.zw)(e.$t("about.mrf.simple.not_applicable")),1)):((0,Co.wg)(),(0,Co.iD)("td",sf,(0,So.zw)(t.reason),1))])})),128))])])):(0,Co.kq)("",!0),e.quarantineInstances.length?((0,Co.wg)(),(0,Co.iD)("div",af,[(0,Co._)("h4",null,(0,So.zw)(e.$t("about.mrf.simple.quarantine")),1),(0,Co._)("p",null,(0,So.zw)(e.$t("about.mrf.simple.quarantine_desc")),1),(0,Co._)("table",null,[(0,Co._)("tr",null,[(0,Co._)("th",null,(0,So.zw)(e.$t("about.mrf.simple.instance")),1),(0,Co._)("th",null,(0,So.zw)(e.$t("about.mrf.simple.reason")),1)]),((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.quarantineInstances,(function(t){return(0,Co.wg)(),(0,Co.iD)("tr",{key:t.instance+"_quarantine"},[(0,Co._)("td",null,(0,So.zw)(t.instance),1),""===t.reason?((0,Co.wg)(),(0,Co.iD)("td",uf,(0,So.zw)(e.$t("about.mrf.simple.not_applicable")),1)):((0,Co.wg)(),(0,Co.iD)("td",cf,(0,So.zw)(t.reason),1))])})),128))])])):(0,Co.kq)("",!0),e.ftlRemovalInstances.length?((0,Co.wg)(),(0,Co.iD)("div",lf,[(0,Co._)("h4",null,(0,So.zw)(e.$t("about.mrf.simple.ftl_removal")),1),(0,Co._)("p",null,(0,So.zw)(e.$t("about.mrf.simple.ftl_removal_desc")),1),(0,Co._)("table",null,[(0,Co._)("tr",null,[(0,Co._)("th",null,(0,So.zw)(e.$t("about.mrf.simple.instance")),1),(0,Co._)("th",null,(0,So.zw)(e.$t("about.mrf.simple.reason")),1)]),((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.ftlRemovalInstances,(function(t){return(0,Co.wg)(),(0,Co.iD)("tr",{key:t.instance+"_ftl_removal"},[(0,Co._)("td",null,(0,So.zw)(t.instance),1),""===t.reason?((0,Co.wg)(),(0,Co.iD)("td",df,(0,So.zw)(e.$t("about.mrf.simple.not_applicable")),1)):((0,Co.wg)(),(0,Co.iD)("td",pf,(0,So.zw)(t.reason),1))])})),128))])])):(0,Co.kq)("",!0),e.mediaNsfwInstances.length?((0,Co.wg)(),(0,Co.iD)("div",mf,[(0,Co._)("h4",null,(0,So.zw)(e.$t("about.mrf.simple.media_nsfw")),1),(0,Co._)("p",null,(0,So.zw)(e.$t("about.mrf.simple.media_nsfw_desc")),1),(0,Co._)("table",null,[(0,Co._)("tr",null,[(0,Co._)("th",null,(0,So.zw)(e.$t("about.mrf.simple.instance")),1),(0,Co._)("th",null,(0,So.zw)(e.$t("about.mrf.simple.reason")),1)]),((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.mediaNsfwInstances,(function(t){return(0,Co.wg)(),(0,Co.iD)("tr",{key:t.instance+"_media_nsfw"},[(0,Co._)("td",null,(0,So.zw)(t.instance),1),""===t.reason?((0,Co.wg)(),(0,Co.iD)("td",hf,(0,So.zw)(e.$t("about.mrf.simple.not_applicable")),1)):((0,Co.wg)(),(0,Co.iD)("td",ff,(0,So.zw)(t.reason),1))])})),128))])])):(0,Co.kq)("",!0),e.mediaRemovalInstances.length?((0,Co.wg)(),(0,Co.iD)("div",gf,[(0,Co._)("h4",null,(0,So.zw)(e.$t("about.mrf.simple.media_removal")),1),(0,Co._)("p",null,(0,So.zw)(e.$t("about.mrf.simple.media_removal_desc")),1),(0,Co._)("table",null,[(0,Co._)("tr",null,[(0,Co._)("th",null,(0,So.zw)(e.$t("about.mrf.simple.instance")),1),(0,Co._)("th",null,(0,So.zw)(e.$t("about.mrf.simple.reason")),1)]),((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.mediaRemovalInstances,(function(t){return(0,Co.wg)(),(0,Co.iD)("tr",{key:t.instance+"_media_removal"},[(0,Co._)("td",null,(0,So.zw)(t.instance),1),""===t.reason?((0,Co.wg)(),(0,Co.iD)("td",vf,(0,So.zw)(e.$t("about.mrf.simple.not_applicable")),1)):((0,Co.wg)(),(0,Co.iD)("td",wf,(0,So.zw)(t.reason),1))])})),128))])])):(0,Co.kq)("",!0),e.hasKeywordPolicies?((0,Co.wg)(),(0,Co.iD)("h2",bf,(0,So.zw)(e.$t("about.mrf.keyword.keyword_policies")),1)):(0,Co.kq)("",!0),e.keywordsFtlRemoval.length?((0,Co.wg)(),(0,Co.iD)("div",yf,[(0,Co._)("h4",null,(0,So.zw)(e.$t("about.mrf.keyword.ftl_removal")),1),(0,Co._)("ul",null,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.keywordsFtlRemoval,(function(e){return(0,Co.wg)(),(0,Co.iD)("li",{key:e,textContent:(0,So.zw)(e)},null,8,Df)})),128))])])):(0,Co.kq)("",!0),e.keywordsReject.length?((0,Co.wg)(),(0,Co.iD)("div",_f,[(0,Co._)("h4",null,(0,So.zw)(e.$t("about.mrf.keyword.reject")),1),(0,Co._)("ul",null,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.keywordsReject,(function(e){return(0,Co.wg)(),(0,Co.iD)("li",{key:e,textContent:(0,So.zw)(e)},null,8,kf)})),128))])])):(0,Co.kq)("",!0),e.keywordsReplace.length?((0,Co.wg)(),(0,Co.iD)("div",Cf,[(0,Co._)("h4",null,(0,So.zw)(e.$t("about.mrf.keyword.replace")),1),(0,Co._)("ul",null,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.keywordsReplace,(function(t){return(0,Co.wg)(),(0,Co.iD)("li",{key:t},(0,So.zw)(t.pattern)+" "+(0,So.zw)(e.$t("about.mrf.keyword.is_replaced_by"))+" "+(0,So.zw)(t.replacement),1)})),128))])])):(0,Co.kq)("",!0)])])])])):(0,Co.kq)("",!0)}]])},computed:{showFeaturesPanel:function(){return this.$store.state.instance.showFeaturesPanel},showInstanceSpecificPanel:function(){return this.$store.state.instance.showInstanceSpecificPanel&&!this.$store.getters.mergedConfig.hideISP&&this.$store.state.instance.instanceSpecificPanelContent}}},Ef=(0,Jo.Z)(Of,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("instance-specific-panel"),a=(0,Co.up)("staff-panel"),u=(0,Co.up)("terms-of-service-panel"),c=(0,Co.up)("MRFTransparencyPanel"),l=(0,Co.up)("features-panel");return(0,Co.wg)(),(0,Co.iD)("div",zh,[e.showInstanceSpecificPanel?((0,Co.wg)(),(0,Co.j4)(s,{key:0})):(0,Co.kq)("",!0),(0,Co.Wm)(a),(0,Co.Wm)(u),(0,Co.Wm)(c),e.showFeaturesPanel?((0,Co.wg)(),(0,Co.j4)(l,{key:1})):(0,Co.kq)("",!0)])}]]);var zf={class:"panel panel-default"},Pf={class:"panel-heading"},If={class:"panel-body"},xf={key:0};const Tf={data:function(){return{error:!1}},mounted:function(){this.redirect()},methods:{redirect:function(){var e=this,t=this.$route.params.username+"@"+this.$route.params.hostname;this.$store.state.api.backendInteractor.fetchUser({id:t}).then((function(t){if(t.error)e.error=!0;else{e.$store.commit("addNewUsers",[t]);var n=t.id;e.$router.replace({name:"external-user-profile",params:{id:n}})}})).catch((function(){e.error=!0}))}}},$f=(0,Jo.Z)(Tf,[["render",function(e,t,n,o,r,i){return(0,Co.wg)(),(0,Co.iD)("div",zf,[(0,Co._)("div",Pf,(0,So.zw)(e.$t("remote_user_resolver.remote_user_resolver")),1),(0,Co._)("div",If,[(0,Co._)("p",null,(0,So.zw)(e.$t("remote_user_resolver.searching_for"))+" @"+(0,So.zw)(e.$route.params.username)+"@"+(0,So.zw)(e.$route.params.hostname),1),e.error?((0,Co.wg)(),(0,Co.iD)("p",xf,(0,So.zw)(e.$t("remote_user_resolver.error")),1)):(0,Co.kq)("",!0)])])}]]);var Bf={class:"Lists panel panel-default"},Uf={class:"panel-heading"},Mf={class:"title"},Lf={class:"panel-body"},Rf={class:"list-card"};Ht.vI.add(Vt.cNd);const qf={props:["list"]},Nf={data:function(){return{isNew:!1}},components:{ListsCard:(0,Jo.Z)(qf,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("router-link"),a=(0,Co.up)("FAIcon");return(0,Co.wg)(),(0,Co.iD)("div",Rf,[(0,Co.Wm)(s,{to:{name:"lists-timeline",params:{id:e.list.id}},class:"list-name"},{default:(0,Co.w5)((function(){return[(0,Co.Uk)((0,So.zw)(e.list.title),1)]})),_:1},8,["to"]),(0,Co.Wm)(s,{to:{name:"lists-edit",params:{id:e.list.id}},class:"button-list-edit"},{default:(0,Co.w5)((function(){return[(0,Co.Wm)(a,{class:"fa-scale-110 fa-old-padding",icon:"ellipsis-h"})]})),_:1},8,["to"])])}]])},computed:{lists:function(){return this.$store.state.lists.allLists}},methods:{cancelNewList:function(){this.isNew=!1},newList:function(){this.isNew=!0}}},Zf=(0,Jo.Z)(Nf,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("router-link"),a=(0,Co.up)("ListsCard");return(0,Co.wg)(),(0,Co.iD)("div",Bf,[(0,Co._)("div",Uf,[(0,Co._)("div",Mf,(0,So.zw)(e.$t("lists.lists")),1),(0,Co.Wm)(s,{to:{name:"lists-new"},class:"button-default btn new-list-button"},{default:(0,Co.w5)((function(){return[(0,Co.Uk)((0,So.zw)(e.$t("lists.new")),1)]})),_:1})]),(0,Co._)("div",Lf,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.lists.slice().reverse(),(function(e){return(0,Co.wg)(),(0,Co.j4)(a,{key:e,list:e,class:"list-item"},null,8,["list"])})),128))])])}]]),Wf=Zf,Hf={data:function(){return{listId:null}},components:{Timeline:Vc},computed:{timeline:function(){return this.$store.state.statuses.timelines.list}},watch:{$route:function(e){"lists-timeline"===e.name&&e.params.id!==this.listId&&(this.listId=e.params.id,this.$store.dispatch("stopFetchingTimeline","list"),this.$store.commit("clearTimeline",{timeline:"list"}),this.$store.dispatch("fetchList",{listId:this.listId}),this.$store.dispatch("startFetchingTimeline",{timeline:"list",listId:this.listId}))}},created:function(){this.listId=this.$route.params.id,this.$store.dispatch("fetchList",{listId:this.listId}),this.$store.dispatch("startFetchingTimeline",{timeline:"list",listId:this.listId})},unmounted:function(){this.$store.dispatch("stopFetchingTimeline","list"),this.$store.commit("clearTimeline",{timeline:"list"})}},Vf=(0,Jo.Z)(Hf,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("Timeline");return(0,Co.wg)(),(0,Co.j4)(s,{title:"list.name",timeline:e.timeline,"list-id":e.listId,"timeline-name":"list"},null,8,["timeline","list-id"])}]]);var Kf={class:"panel-default panel ListEdit"},Gf={ref:"header",class:"panel-heading list-edit-heading"},Yf={class:"title"},Jf={class:"panel-body"},Qf={class:"input-wrap"},Xf={for:"list-edit-title"},eg=["label"],tg={class:"users-list"},ng=["onClick"],og=["label"],rg={key:0,class:"loading"},ig={key:1,class:"users-list"},sg={key:0},ag=["onClick"],ug=["onClick"],cg={class:"panel-footer"},lg=(0,Co._)("span",{class:"spacer"},null,-1),dg={class:"ListsUserSearch"},pg={class:"input-wrap"},mg={class:"input-search"},hg=["placeholder"],fg={class:"input-wrap"};Ht.vI.add(Vt.wn1,Vt.A35);const gg={components:{Checkbox:wi.Z},emits:["loading","loadingDone","results"],data:function(){return{loading:!1,query:"",followingOnly:!0}},methods:{onInput:ra()((function(){this.search(this.query)}),2e3),search:function(e){var t=this;e?(this.loading=!0,this.$emit("loading"),this.userIds=[],this.$store.dispatch("search",{q:e,resolve:!0,type:"accounts",following:this.followingOnly}).then((function(e){t.$emit("results",e.accounts.map((function(e){return e.id})))})).finally((function(){t.loading=!1,t.$emit("loadingDone")}))):this.loading=!1}}},vg=(0,Jo.Z)(gg,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("FAIcon"),a=(0,Co.up)("Checkbox");return(0,Co.wg)(),(0,Co.iD)("div",dg,[(0,Co._)("div",pg,[(0,Co._)("div",mg,[(0,Co.Wm)(s,{class:"search-icon fa-scale-110 fa-old-padding",icon:"search"})]),(0,Co.wy)((0,Co._)("input",{ref:"search","onUpdate:modelValue":t[0]||(t[0]=function(t){return e.query=t}),placeholder:e.$t("lists.search"),onInput:t[1]||(t[1]=function(){return e.onInput&&e.onInput.apply(e,arguments)})},null,40,hg),[[wo.nr,e.query]])]),(0,Co._)("div",fg,[(0,Co.Wm)(a,{modelValue:e.followingOnly,"onUpdate:modelValue":t[2]||(t[2]=function(t){return e.followingOnly=t}),onChange:e.onInput},{default:(0,Co.w5)((function(){return[(0,Co.Uk)((0,So.zw)(e.$t("lists.following_only")),1)]})),_:1},8,["modelValue","onChange"])])])}]]);var wg=n(29187);function bg(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function yg(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?bg(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):bg(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Ht.vI.add(Vt.wn1,Vt.A35);var Dg={components:{BasicUserCard:ed.Z,UserAvatar:Bl.default,ListsUserSearch:vg,TabSwitcher:fl.Z,PanelLoading:wg.Z},data:function(){return{title:"",titleDraft:"",membersUserIds:[],removedUserIds:new Set([]),searchUserIds:[],addedUserIds:new Set([]),searchLoading:!1,reallyDelete:!1}},created:function(){var e=this;this.id&&(this.$store.dispatch("fetchList",{listId:this.id}).then((function(){e.title=e.findListTitle(e.id),e.titleDraft=e.title})),this.$store.dispatch("fetchListAccounts",{listId:this.id}).then((function(){e.membersUserIds=e.findListAccounts(e.id),e.membersUserIds.forEach((function(t){e.$store.dispatch("fetchUserIfMissing",t)}))})))},computed:yg(yg({id:function(){return this.$route.params.id},membersUsers:function(){var e=this;return[].concat((0,l.Z)(this.membersUserIds),(0,l.Z)(this.addedUserIds)).map((function(t){return e.findUser(t)})).filter((function(e){return e}))},searchUsers:function(){var e=this;return this.searchUserIds.map((function(t){return e.findUser(t)})).filter((function(e){return e}))}},(0,s.rn)({currentUser:function(e){return e.users.currentUser}})),(0,s.Se)(["findUser","findListTitle","findListAccounts"])),methods:{onInput:function(){this.search(this.query)},toggleRemoveMember:function(e){this.removedUserIds.has(e.id)?(this.id&&this.addUser(e),this.removedUserIds.delete(e.id)):(this.id&&this.removeUser(e.id),this.removedUserIds.add(e.id))},toggleAddFromSearch:function(e){this.addedUserIds.has(e.id)?(this.id&&this.removeUser(e.id),this.addedUserIds.delete(e.id)):(this.id&&this.addUser(e),this.addedUserIds.add(e.id))},isRemoved:function(e){return this.removedUserIds.has(e.id)},isAdded:function(e){return this.addedUserIds.has(e.id)},addUser:function(e){this.$store.dispatch("addListAccount",{accountId:e.id,listId:this.id})},removeUser:function(e){this.$store.dispatch("removeListAccount",{accountId:e,listId:this.id})},onSearchLoading:function(e){this.searchLoading=!0},onSearchLoadingDone:function(e){this.searchLoading=!1},onSearchResults:function(e){this.searchLoading=!1,this.searchUserIds=e},updateListTitle:function(){var e=this;this.$store.dispatch("setList",{listId:this.id,title:this.titleDraft}).then((function(){e.title=e.findListTitle(e.id)}))},createList:function(){var e=this;this.$store.dispatch("createList",{title:this.titleDraft}).then((function(t){return e.$store.dispatch("setListAccounts",{listId:t.id,accountIds:(0,l.Z)(e.addedUserIds)}).then((function(){return t.id}))})).then((function(t){e.$router.push({name:"lists-timeline",params:{id:t}})})).catch((function(t){e.$store.dispatch("pushGlobalNotice",{messageKey:"lists.error",messageArgs:[t.message],level:"error"})}))},deleteList:function(){this.$store.dispatch("deleteList",{listId:this.id}),this.$router.push({name:"lists"})}}};const _g=Dg,kg=(0,Jo.Z)(_g,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("FAIcon"),a=(0,Co.up)("i18n-t"),u=(0,Co.up)("BasicUserCard"),c=(0,Co.up)("ListsUserSearch"),l=(0,Co.up)("PanelLoading"),d=(0,Co.up)("tab-switcher");return(0,Co.wg)(),(0,Co.iD)("div",Kf,[(0,Co._)("div",Gf,[(0,Co._)("button",{class:"button-unstyled go-back-button",onClick:t[0]||(t[0]=function(){var t;return e.$router.back&&(t=e.$router).back.apply(t,arguments)})},[(0,Co.Wm)(s,{size:"lg",icon:"chevron-left"})]),(0,Co._)("div",Yf,[e.id?((0,Co.wg)(),(0,Co.j4)(a,{key:0,keypath:"lists.editing_list"},{listTitle:(0,Co.w5)((function(){return[(0,Co.Uk)((0,So.zw)(e.title),1)]})),_:1})):((0,Co.wg)(),(0,Co.j4)(a,{key:1,keypath:"lists.creating_list"}))])],512),(0,Co._)("div",Jf,[(0,Co._)("div",Qf,[(0,Co._)("label",Xf,(0,So.zw)(e.$t("lists.title")),1),(0,Co.Uk)(" "+(0,So.zw)(" ")+" "),(0,Co.wy)((0,Co._)("input",{id:"list-edit-title",ref:"title","onUpdate:modelValue":t[1]||(t[1]=function(t){return e.titleDraft=t})},null,512),[[wo.nr,e.titleDraft]]),e.id?((0,Co.wg)(),(0,Co.iD)("button",{key:0,class:"btn button-default follow-button",onClick:t[2]||(t[2]=function(){return e.updateListTitle&&e.updateListTitle.apply(e,arguments)})},(0,So.zw)(e.$t("lists.update_title")),1)):(0,Co.kq)("",!0)]),(0,Co.Wm)(d,{class:"list-member-management","scrollable-tabs":!0},{default:(0,Co.w5)((function(){return[e.id||e.addedUserIds.size>0?((0,Co.wg)(),(0,Co.iD)("div",{key:0,label:e.$t("lists.manage_members"),class:"members-list"},[(0,Co._)("div",tg,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.membersUsers,(function(t){return(0,Co.wg)(),(0,Co.iD)("div",{key:t.id,class:"member"},[(0,Co.Wm)(u,{user:t},{default:(0,Co.w5)((function(){return[(0,Co._)("button",{class:"btn button-default follow-button",onClick:function(n){return e.toggleRemoveMember(t)}},(0,So.zw)(e.isRemoved(t)?e.$t("general.undo"):e.$t("lists.remove_from_list")),9,ng)]})),_:2},1032,["user"])])})),128))])],8,eg)):(0,Co.kq)("",!0),(0,Co._)("div",{class:"search-list",label:e.$t("lists.add_members")},[(0,Co.Wm)(c,{onResults:e.onSearchResults,onLoading:e.onSearchLoading,onLoadingDone:e.onSearchLoadingDone},null,8,["onResults","onLoading","onLoadingDone"]),e.searchLoading?((0,Co.wg)(),(0,Co.iD)("div",rg,[(0,Co.Wm)(l)])):((0,Co.wg)(),(0,Co.iD)("div",ig,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.searchUsers,(function(t){return(0,Co.wg)(),(0,Co.iD)("div",{key:t.id,class:"member"},[(0,Co.Wm)(u,{user:t},{default:(0,Co.w5)((function(){return[e.membersUserIds.includes(t.id)?((0,Co.wg)(),(0,Co.iD)("span",sg,(0,So.zw)(e.$t("lists.is_in_list")),1)):(0,Co.kq)("",!0),e.membersUserIds.includes(t.id)?((0,Co.wg)(),(0,Co.iD)("button",{key:2,class:"btn button-default follow-button",onClick:function(n){return e.toggleRemoveMember(t)}},(0,So.zw)(e.isRemoved(t)?e.$t("general.undo"):e.$t("lists.remove_from_list")),9,ug)):((0,Co.wg)(),(0,Co.iD)("button",{key:1,class:"btn button-default follow-button",onClick:function(n){return e.toggleAddFromSearch(t)}},(0,So.zw)(e.isAdded(t)?e.$t("general.undo"):e.$t("lists.add_to_list")),9,ag))]})),_:2},1032,["user"])])})),128))]))],8,og)]})),_:1})]),(0,Co._)("div",cg,[lg,e.id?e.reallyDelete?((0,Co.wg)(),(0,Co.iD)(Co.HY,{key:2},[(0,Co.Uk)((0,So.zw)(e.$t("lists.really_delete"))+" ",1),(0,Co._)("button",{class:"btn button-default footer-button",onClick:t[5]||(t[5]=function(){return e.deleteList&&e.deleteList.apply(e,arguments)})},(0,So.zw)(e.$t("general.yes")),1),(0,Co._)("button",{class:"btn button-default footer-button",onClick:t[6]||(t[6]=function(t){return e.reallyDelete=!1})},(0,So.zw)(e.$t("general.no")),1)],64)):((0,Co.wg)(),(0,Co.iD)("button",{key:1,class:"btn button-default footer-button",onClick:t[4]||(t[4]=function(t){return e.reallyDelete=!0})},(0,So.zw)(e.$t("lists.delete")),1)):((0,Co.wg)(),(0,Co.iD)("button",{key:0,class:"btn button-default footer-button",onClick:t[3]||(t[3]=function(){return e.createList&&e.createList.apply(e,arguments)})},(0,So.zw)(e.$t("lists.create")),1))])])}]]);var Cg={class:"panel panel-default announcements-page"},Sg={class:"panel-heading"},jg={class:"panel-body"},Fg={key:0},Ag={class:"post-form"},Og={class:"heading"},Eg={class:"body"},zg={class:"footer"},Pg=["disabled"],Ig={key:0,class:"alert error"},xg={class:"announcement"},Tg={class:"heading"},$g={class:"body"},Bg={class:"footer"},Ug={key:0,class:"times"},Mg={key:0},Lg={key:1},Rg={key:2},qg={key:1,class:"actions"},Ng=["disabled","title"],Zg={key:2,class:"actions"},Wg={key:0,class:"alert error"},Hg={class:"announcement-editor"},Vg=["placeholder","disabled"],Kg={class:"announcement-metadata"},Gg={for:"announcement-start-time"},Yg=["type","disabled"],Jg={class:"announcement-metadata"},Qg={for:"announcement-end-time"},Xg=["type","disabled"],ev={class:"announcement-metadata"},tv={for:"announcement-all-day"};const nv={components:{Checkbox:wi.Z},props:{announcement:Object,disabled:Boolean}},ov=(0,Jo.Z)(nv,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("Checkbox");return(0,Co.wg)(),(0,Co.iD)("div",Hg,[(0,Co.wy)((0,Co._)("textarea",{ref:"textarea","onUpdate:modelValue":t[0]||(t[0]=function(t){return e.announcement.content=t}),class:"post-textarea",rows:"1",cols:"1",placeholder:e.$t("announcements.post_placeholder"),disabled:e.disabled},null,8,Vg),[[wo.nr,e.announcement.content]]),(0,Co._)("span",Kg,[(0,Co._)("label",Gg,(0,So.zw)(e.$t("announcements.start_time_prompt")),1),(0,Co.wy)((0,Co._)("input",{id:"announcement-start-time","onUpdate:modelValue":t[1]||(t[1]=function(t){return e.announcement.startsAt=t}),type:e.announcement.allDay?"date":"datetime-local",disabled:e.disabled},null,8,Yg),[[wo.YZ,e.announcement.startsAt]])]),(0,Co._)("span",Jg,[(0,Co._)("label",Qg,(0,So.zw)(e.$t("announcements.end_time_prompt")),1),(0,Co.wy)((0,Co._)("input",{id:"announcement-end-time","onUpdate:modelValue":t[2]||(t[2]=function(t){return e.announcement.endsAt=t}),type:e.announcement.allDay?"date":"datetime-local",disabled:e.disabled},null,8,Xg),[[wo.YZ,e.announcement.endsAt]])]),(0,Co._)("span",ev,[(0,Co.Wm)(s,{id:"announcement-all-day",modelValue:e.announcement.allDay,"onUpdate:modelValue":t[3]||(t[3]=function(t){return e.announcement.allDay=t}),disabled:e.disabled},null,8,["modelValue","disabled"]),(0,Co._)("label",tv,(0,So.zw)(e.$t("announcements.all_day_prompt")),1)])])}]]);function rv(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function iv(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?rv(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):rv(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}const sv={components:{AnnouncementEditor:ov,RichContent:Rl.Z},data:function(){return{editing:!1,editedAnnouncement:{content:"",startsAt:void 0,endsAt:void 0,allDay:void 0},editError:""}},props:{announcement:Object},computed:iv(iv({},(0,s.rn)({currentUser:function(e){return e.users.currentUser}})),{},{canEditAnnouncement:function(){return this.currentUser&&this.currentUser.privileges.includes("announcements_manage_announcements")},content:function(){return this.announcement.content},isRead:function(){return this.announcement.read},publishedAt:function(){var e=this.announcement.published_at;if(e)return this.formatTimeOrDate(e,Ad.Z.internalToBrowserLocale(this.$i18n.locale))},startsAt:function(){var e=this.announcement.starts_at;if(e)return this.formatTimeOrDate(e,Ad.Z.internalToBrowserLocale(this.$i18n.locale))},endsAt:function(){var e=this.announcement.ends_at;if(e)return this.formatTimeOrDate(e,Ad.Z.internalToBrowserLocale(this.$i18n.locale))},inactive:function(){return this.announcement.inactive}}),methods:{markAsRead:function(){if(!this.isRead)return this.$store.dispatch("markAnnouncementAsRead",this.announcement.id)},deleteAnnouncement:function(){return this.$store.dispatch("deleteAnnouncement",this.announcement.id)},formatTimeOrDate:function(e,t){var n=new Date(e);return this.announcement.all_day?n.toLocaleDateString(t):n.toLocaleString(t)},enterEditMode:function(){this.editedAnnouncement.content=this.announcement.pleroma.raw_content,this.editedAnnouncement.startsAt=this.announcement.starts_at,this.editedAnnouncement.endsAt=this.announcement.ends_at,this.editedAnnouncement.allDay=this.announcement.all_day,this.editing=!0},submitEdit:function(){var e=this;this.$store.dispatch("editAnnouncement",iv({id:this.announcement.id},this.editedAnnouncement)).then((function(){e.editing=!1})).catch((function(t){e.editError=t.error}))},cancelEdit:function(){this.editing=!1},clearError:function(){this.editError=void 0}}};function av(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function uv(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?av(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):av(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}const cv={components:{Announcement:(0,Jo.Z)(sv,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("rich-content"),a=(0,Co.up)("announcement-editor"),u=(0,Co.up)("FAIcon");return(0,Co.wg)(),(0,Co.iD)("div",xg,[(0,Co._)("div",Tg,[(0,Co._)("h4",null,(0,So.zw)(e.$t("announcements.title")),1)]),(0,Co._)("div",$g,[e.editing?((0,Co.wg)(),(0,Co.j4)(a,{key:1,announcement:e.editedAnnouncement},null,8,["announcement"])):((0,Co.wg)(),(0,Co.j4)(s,{key:0,html:e.content,emoji:e.announcement.emojis,"handle-links":!0},null,8,["html","emoji"]))]),(0,Co._)("div",Bg,[e.editing?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.iD)("div",Ug,[e.publishedAt?((0,Co.wg)(),(0,Co.iD)("span",Mg,(0,So.zw)(e.$t("announcements.published_time_display",{time:e.publishedAt})),1)):(0,Co.kq)("",!0),e.startsAt?((0,Co.wg)(),(0,Co.iD)("span",Lg,(0,So.zw)(e.$t("announcements.start_time_display",{time:e.startsAt})),1)):(0,Co.kq)("",!0),e.endsAt?((0,Co.wg)(),(0,Co.iD)("span",Rg,(0,So.zw)(e.$t("announcements.end_time_display",{time:e.endsAt})),1)):(0,Co.kq)("",!0)])),e.editing?((0,Co.wg)(),(0,Co.iD)("div",Zg,[(0,Co._)("button",{class:"btn button-default",onClick:t[3]||(t[3]=function(){return e.submitEdit&&e.submitEdit.apply(e,arguments)})},(0,So.zw)(e.$t("announcements.submit_edit_action")),1),(0,Co._)("button",{class:"btn button-default",onClick:t[4]||(t[4]=function(){return e.cancelEdit&&e.cancelEdit.apply(e,arguments)})},(0,So.zw)(e.$t("announcements.cancel_edit_action")),1),e.editing&&e.editError?((0,Co.wg)(),(0,Co.iD)("div",Wg,[(0,Co.Uk)((0,So.zw)(e.$t("announcements.edit_error",{error:e.error}))+" ",1),(0,Co._)("button",{class:"button-unstyled",onClick:t[5]||(t[5]=function(){return e.clearError&&e.clearError.apply(e,arguments)})},[(0,Co.Wm)(u,{class:"fa-scale-110 fa-old-padding",icon:"times",title:e.$t("announcements.close_error")},null,8,["title"])])])):(0,Co.kq)("",!0)])):((0,Co.wg)(),(0,Co.iD)("div",qg,[e.currentUser?((0,Co.wg)(),(0,Co.iD)("button",{key:0,class:(0,So.C_)(["btn button-default",{toggled:e.isRead}]),disabled:e.inactive,title:e.inactive?e.$t("announcements.inactive_message"):"",onClick:t[0]||(t[0]=function(){return e.markAsRead&&e.markAsRead.apply(e,arguments)})},(0,So.zw)(e.$t("announcements.mark_as_read_action")),11,Ng)):(0,Co.kq)("",!0),e.canEditAnnouncement?((0,Co.wg)(),(0,Co.iD)("button",{key:1,class:"btn button-default",onClick:t[1]||(t[1]=function(){return e.enterEditMode&&e.enterEditMode.apply(e,arguments)})},(0,So.zw)(e.$t("announcements.edit_action")),1)):(0,Co.kq)("",!0),e.canEditAnnouncement?((0,Co.wg)(),(0,Co.iD)("button",{key:2,class:"btn button-default",onClick:t[2]||(t[2]=function(){return e.deleteAnnouncement&&e.deleteAnnouncement.apply(e,arguments)})},(0,So.zw)(e.$t("announcements.delete_action")),1)):(0,Co.kq)("",!0)]))])])}]]),AnnouncementEditor:ov},data:function(){return{newAnnouncement:{content:"",startsAt:void 0,endsAt:void 0,allDay:!1},posting:!1,error:void 0}},mounted:function(){this.$store.dispatch("fetchAnnouncements")},computed:uv(uv({},(0,s.rn)({currentUser:function(e){return e.users.currentUser}})),{},{announcements:function(){return this.$store.state.announcements.announcements},canPostAnnouncement:function(){return this.currentUser&&this.currentUser.privileges.includes("announcements_manage_announcements")}}),methods:{postAnnouncement:function(){var e=this;this.posting=!0,this.$store.dispatch("postAnnouncement",this.newAnnouncement).then((function(){e.newAnnouncement.content="",e.startsAt=void 0,e.endsAt=void 0})).catch((function(t){e.error=t.error})).finally((function(){e.posting=!1}))},clearError:function(){this.error=void 0}}},lv=(0,Jo.Z)(cv,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("announcement-editor"),a=(0,Co.up)("FAIcon"),u=(0,Co.up)("announcement");return(0,Co.wg)(),(0,Co.iD)("div",Cg,[(0,Co._)("div",Sg,[(0,Co._)("span",null,(0,So.zw)(e.$t("announcements.page_header")),1)]),(0,Co._)("div",jg,[e.canPostAnnouncement?((0,Co.wg)(),(0,Co.iD)("section",Fg,[(0,Co._)("div",Ag,[(0,Co._)("div",Og,[(0,Co._)("h4",null,(0,So.zw)(e.$t("announcements.post_form_header")),1)]),(0,Co._)("div",Eg,[(0,Co.Wm)(s,{announcement:e.newAnnouncement,disabled:e.posting},null,8,["announcement","disabled"])]),(0,Co._)("div",zg,[(0,Co._)("button",{class:"btn button-default post-button",disabled:e.posting,onClick:t[0]||(t[0]=(0,wo.iM)((function(){return e.postAnnouncement&&e.postAnnouncement.apply(e,arguments)}),["prevent"]))},(0,So.zw)(e.$t("announcements.post_action")),9,Pg),e.error?((0,Co.wg)(),(0,Co.iD)("div",Ig,[(0,Co.Uk)((0,So.zw)(e.$t("announcements.post_error",{error:e.error}))+" ",1),(0,Co._)("button",{class:"button-unstyled",onClick:t[1]||(t[1]=function(){return e.clearError&&e.clearError.apply(e,arguments)})},[(0,Co.Wm)(a,{class:"fa-scale-110 fa-old-padding",icon:"times",title:e.$t("announcements.close_error")},null,8,["title"])])])):(0,Co.kq)("",!0)])])])):(0,Co.kq)("",!0),((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.announcements,(function(e){return(0,Co.wg)(),(0,Co.iD)("section",{key:e.id},[(0,Co.Wm)(u,{announcement:e},null,8,["announcement"])])})),128))])])}]]),dv=function(e){var t=function(t,n,o){e.state.users.currentUser?o():o(e.state.instance.redirectRootNoLogin||"/main/all")},n=[{name:"root",path:"/",redirect:function(t){return(e.state.users.currentUser?e.state.instance.redirectRootLogin:e.state.instance.redirectRootNoLogin)||"/main/all"}},{name:"public-external-timeline",path:"/main/all",component:Jc},{name:"public-timeline",path:"/main/public",component:Gc},{name:"friends",path:"/main/friends",component:Xc,beforeEnter:t},{name:"tag-timeline",path:"/tag/:tag",component:tl},{name:"bookmarks",path:"/bookmarks",component:ol},{name:"conversation",path:"/notice/:id",component:il,meta:{dontScroll:!0}},{name:"remote-user-profile-acct",path:"/remote-users/:_(@)?:username([^/@]+)@:hostname([^/@]+)",component:$f,beforeEnter:t},{name:"remote-user-profile",path:"/remote-users/:hostname/:username",component:$f,beforeEnter:t},{name:"external-user-profile",path:"/users/$:id",component:fp},{name:"interactions",path:"/users/:username/interactions",component:wl,beforeEnter:t},{name:"dms",path:"/users/:username/dms",component:yl,beforeEnter:t},{name:"registration",path:"/registration",component:Vm},{name:"password-reset",path:"/password-reset",component:fh,props:!0},{name:"registration-token",path:"/registration/:token",component:Vm},{name:"friend-requests",path:"/friend-requests",component:kh,beforeEnter:t},{name:"notifications",path:"/:username/notifications",component:ya.default,props:function(){return{disableTeleport:!0}},beforeEnter:t},{name:"login",path:"/login",component:Pr},{name:"shout-panel",path:"/shout-panel",component:gs,props:function(){return{floating:!1}}},{name:"oauth-callback",path:"/oauth-callback",component:Sh,props:function(e){return{code:e.query.code}}},{name:"search",path:"/search",component:Wp,props:function(e){return{query:e.query.query}}},{name:"who-to-follow",path:"/who-to-follow",component:Eh,beforeEnter:t},{name:"about",path:"/about",component:Ef},{name:"announcements",path:"/announcements",component:lv},{name:"user-profile",path:"/users/:name",component:fp},{name:"legacy-user-profile",path:"/:name",component:fp},{name:"lists",path:"/lists",component:Wf},{name:"lists-timeline",path:"/lists/:id",component:Vf},{name:"lists-edit",path:"/lists/:id/edit",component:kg},{name:"lists-new",path:"/lists/new",component:kg},{name:"edit-navigation",path:"/nav-edit",component:_i,props:function(){return{forceExpand:!0,forceEditMode:!0}},beforeEnter:t}];return e.state.instance.pleromaChatMessagesAvailable&&(n=n.concat([{name:"chat",path:"/users/:username/chats/:recipient_id",component:Ld,meta:{dontScroll:!1},beforeEnter:t},{name:"chats",path:"/users/:username/chats",component:cd,meta:{dontScroll:!1},beforeEnter:t}])),n};var pv,mv,hv=n(58509),fv=new Set([]),gv=function(e){var t=window.innerWidth-document.documentElement.clientWidth;hv.Qp(e,{reserveScrollBarGap:!0}),fv.add(e),setTimeout((function(){if(fv.size<=1){if(void 0===pv){var e=document.getElementById("nav");pv=window.getComputedStyle(e).getPropertyValue("padding-right"),e.style.paddingRight=pv?"calc(".concat(pv," + ").concat(t,"px)"):"".concat(t,"px")}if(void 0===mv){var n=document.getElementById("app_bg_wrapper");mv=window.getComputedStyle(n).getPropertyValue("right"),n.style.right=mv?"calc(".concat(mv," + ").concat(t,"px)"):"".concat(t,"px")}document.body.classList.add("scroll-locked")}}))},vv=function(e){fv.delete(e),setTimeout((function(){0===fv.size&&(void 0!==pv&&(document.getElementById("nav").style.paddingRight=pv,pv=void 0),void 0!==mv&&(document.getElementById("app_bg_wrapper").style.right=mv,mv=void 0),document.body.classList.remove("scroll-locked"))})),hv.tG(e)},wv={mounted:function(e,t){t.value&&gv(e)},updated:function(e,t){t.oldValue!==t.value&&(t.value?gv(e):vv(e))},unmounted:function(e){vv(e)}};const bv=function(e){e.directive("body-scroll-lock",wv)};var yv=n(49753);function Dv(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function _v(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Dv(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Dv(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var kv=null,Cv=function(e){var t=atob(e),n=Uint8Array.from((0,l.Z)(t).map((function(e){return e.charCodeAt(0)})));return(new TextDecoder).decode(n)},Sv=function(){var e=(0,o.Z)(i().mark((function e(t){var n,o,r;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if((n=document.getElementById("initial-results")?(kv||(kv=JSON.parse(document.getElementById("initial-results").textContent)),kv):null)&&n[t]){e.next=3;break}return e.abrupt("return",window.fetch(t));case 3:return o=Cv(n[t]),r=JSON.parse(o),e.abrupt("return",{ok:!0,json:function(){return r},text:function(){return r}});case 6:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),jv=function(){var e=(0,o.Z)(i().mark((function e(t){var n,o,r,s,a;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.store,e.prev=1,e.next=4,Sv("/api/v1/instance");case 4:if(!(o=e.sent).ok){e.next=18;break}return e.next=8,o.json();case 8:r=e.sent,s=r.max_toot_chars,a=r.pleroma.vapid_public_key,n.dispatch("setInstanceOption",{name:"textlimit",value:s}),n.dispatch("setInstanceOption",{name:"accountApprovalRequired",value:r.approval_required}),n.dispatch("setInstanceOption",{name:"birthdayRequired",value:!!r.pleroma.metadata.birthday_required}),n.dispatch("setInstanceOption",{name:"birthdayMinAge",value:r.pleroma.metadata.birthday_min_age||0}),a&&n.dispatch("setInstanceOption",{name:"vapidPublicKey",value:a}),e.next=19;break;case 18:throw o;case 19:e.next=25;break;case 21:e.prev=21,e.t0=e.catch(1),console.error("Could not load instance config, potentially fatal"),console.error(e.t0);case 25:case"end":return e.stop()}}),e,null,[[1,21]])})));return function(t){return e.apply(this,arguments)}}(),Fv=function(){var e=(0,o.Z)(i().mark((function e(t){var n,o;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t.store,e.prev=1,e.next=4,window.fetch("/api/pleroma/frontend_configurations");case 4:if(!(n=e.sent).ok){e.next=12;break}return e.next=8,n.json();case 8:return o=e.sent,e.abrupt("return",o.pleroma_fe);case 12:throw n;case 13:e.next=19;break;case 15:e.prev=15,e.t0=e.catch(1),console.error("Could not load backend-provided frontend config, potentially fatal"),console.error(e.t0);case 19:case"end":return e.stop()}}),e,null,[[1,15]])})));return function(t){return e.apply(this,arguments)}}(),Av=function(){var e=(0,o.Z)(i().mark((function e(){var t;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,window.fetch("/static/config.json");case 3:if(!(t=e.sent).ok){e.next=8;break}return e.abrupt("return",t.json());case 8:throw t;case 9:e.next=16;break;case 11:return e.prev=11,e.t0=e.catch(0),console.warn("Failed to load static/config.json, continuing without it."),console.warn(e.t0),e.abrupt("return",{});case 16:case"end":return e.stop()}}),e,null,[[0,11]])})));return function(){return e.apply(this,arguments)}}(),Ov=function(){var e=(0,o.Z)(i().mark((function e(t){var n,o,r,s,a,u,c;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.apiConfig,o=t.staticConfig,r=t.store,s=window.___pleromafe_dev_overrides||{},a=window.___pleromafe_mode.NODE_ENV,u={},s.staticConfigPreference&&"development"===a?(console.warn("OVERRIDING API CONFIG WITH STATIC CONFIG"),u=Object.assign({},n,o)):u=Object.assign({},o,n),(c=function(e){r.dispatch("setInstanceOption",{name:e,value:u[e]})})("nsfwCensorImage"),c("background"),c("hidePostStats"),c("hideBotIndication"),c("hideUserStats"),c("hideFilteredStatuses"),c("logo"),r.dispatch("setInstanceOption",{name:"logoMask",value:void 0===u.logoMask||u.logoMask}),r.dispatch("setInstanceOption",{name:"logoMargin",value:void 0===u.logoMargin?0:u.logoMargin}),c("logoLeft"),r.commit("authFlow/setInitialStrategy",u.loginMethod),c("redirectRootNoLogin"),c("redirectRootLogin"),c("showInstanceSpecificPanel"),c("minimalScopesMode"),c("hideMutedPosts"),c("collapseMessageWithSubject"),c("scopeCopy"),c("subjectLineBehavior"),c("postContentType"),c("alwaysShowSubjectInput"),c("showFeaturesPanel"),c("hideSitename"),c("sidebarRight"),e.abrupt("return",r.dispatch("setTheme",u.theme));case 31:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),Ev=function(){var e=(0,o.Z)(i().mark((function e(t){var n,o,r;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.store,e.prev=1,e.next=4,window.fetch("/static/terms-of-service.html");case 4:if(!(o=e.sent).ok){e.next=12;break}return e.next=8,o.text();case 8:r=e.sent,n.dispatch("setInstanceOption",{name:"tos",value:r}),e.next=13;break;case 12:throw o;case 13:e.next=19;break;case 15:e.prev=15,e.t0=e.catch(1),console.warn("Can't load TOS"),console.warn(e.t0);case 19:case"end":return e.stop()}}),e,null,[[1,15]])})));return function(t){return e.apply(this,arguments)}}(),zv=function(){var e=(0,o.Z)(i().mark((function e(t){var n,o,r;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.store,e.prev=1,e.next=4,Sv("/instance/panel.html");case 4:if(!(o=e.sent).ok){e.next=12;break}return e.next=8,o.text();case 8:r=e.sent,n.dispatch("setInstanceOption",{name:"instanceSpecificPanelContent",value:r}),e.next=13;break;case 12:throw o;case 13:e.next=19;break;case 15:e.prev=15,e.t0=e.catch(1),console.warn("Can't load instance panel"),console.warn(e.t0);case 19:case"end":return e.stop()}}),e,null,[[1,15]])})));return function(t){return e.apply(this,arguments)}}(),Pv=function(){var e=(0,o.Z)(i().mark((function e(t){var n,r,s,a;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.store,e.prev=1,e.next=4,window.fetch("/static/stickers.json");case 4:if(!(r=e.sent).ok){e.next=15;break}return e.next=8,r.json();case 8:return s=e.sent,e.next=11,Promise.all(Object.entries(s).map(function(){var e=(0,o.Z)(i().mark((function e(t){var n,o,r,s,a;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=(0,c.Z)(t,2),o=n[0],r=n[1],e.next=3,window.fetch(r+"pack.json");case 3:if(s=e.sent,a={},!s.ok){e.next=9;break}return e.next=8,s.json();case 8:a=e.sent;case 9:return e.abrupt("return",{pack:o,path:r,meta:a});case 10:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()));case 11:a=e.sent.sort((function(e,t){return e.meta.title.localeCompare(t.meta.title)})),n.dispatch("setInstanceOption",{name:"stickers",value:a}),e.next=16;break;case 15:throw r;case 16:e.next=22;break;case 18:e.prev=18,e.t0=e.catch(1),console.warn("Can't load stickers"),console.warn(e.t0);case 22:case"end":return e.stop()}}),e,null,[[1,18]])})));return function(t){return e.apply(this,arguments)}}(),Iv=function(){var e=(0,o.Z)(i().mark((function e(t){var n,o,r,s,a;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.store,o=n.state,r=n.commit,s=o.oauth,a=o.instance,e.abrupt("return",Le(_v(_v({},s),{},{instance:a.server,commit:r})).then((function(e){return Re(_v(_v({},e),{},{instance:a.server}))})).then((function(e){r("setAppToken",e.access_token),r("setBackendInteractor",xe(n.getters.getToken()))})));case 4:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),xv=function(e){var t=e.store,n=e.accounts.map((function(e){return e.split("/").pop()}));t.dispatch("setInstanceOption",{name:"staffAccounts",value:n})},Tv=function(){var e=(0,o.Z)(i().mark((function e(t){var n,o,r,s,a,u,c,l,d,p,m,h,f;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.store,e.prev=1,e.next=4,Sv("/nodeinfo/2.0.json");case 4:if(!(o=e.sent).ok){e.next=52;break}return e.next=8,o.json();case 8:r=e.sent,s=r.metadata,a=s.features,n.dispatch("setInstanceOption",{name:"name",value:s.nodeName}),n.dispatch("setInstanceOption",{name:"registrationOpen",value:r.openRegistrations}),n.dispatch("setInstanceOption",{name:"mediaProxyAvailable",value:a.includes("media_proxy")}),n.dispatch("setInstanceOption",{name:"safeDM",value:a.includes("safe_dm_mentions")}),n.dispatch("setInstanceOption",{name:"shoutAvailable",value:a.includes("chat")}),n.dispatch("setInstanceOption",{name:"pleromaChatMessagesAvailable",value:a.includes("pleroma_chat_messages")}),n.dispatch("setInstanceOption",{name:"pleromaCustomEmojiReactionsAvailable",value:a.includes("pleroma_custom_emoji_reactions")}),n.dispatch("setInstanceOption",{name:"gopherAvailable",value:a.includes("gopher")}),n.dispatch("setInstanceOption",{name:"pollsAvailable",value:a.includes("polls")}),n.dispatch("setInstanceOption",{name:"editingAvailable",value:a.includes("editing")}),n.dispatch("setInstanceOption",{name:"pollLimits",value:s.pollLimits}),n.dispatch("setInstanceOption",{name:"mailerEnabled",value:s.mailerEnabled}),n.dispatch("setInstanceOption",{name:"quotingAvailable",value:a.includes("quote_posting")}),u=s.uploadLimits,n.dispatch("setInstanceOption",{name:"uploadlimit",value:parseInt(u.general)}),n.dispatch("setInstanceOption",{name:"avatarlimit",value:parseInt(u.avatar)}),n.dispatch("setInstanceOption",{name:"backgroundlimit",value:parseInt(u.background)}),n.dispatch("setInstanceOption",{name:"bannerlimit",value:parseInt(u.banner)}),n.dispatch("setInstanceOption",{name:"fieldsLimits",value:s.fieldsLimits}),n.dispatch("setInstanceOption",{name:"restrictedNicknames",value:s.restrictedNicknames}),n.dispatch("setInstanceOption",{name:"postFormats",value:s.postFormats}),c=s.suggestions,n.dispatch("setInstanceOption",{name:"suggestionsEnabled",value:c.enabled}),n.dispatch("setInstanceOption",{name:"suggestionsWeb",value:c.web}),l=r.software,n.dispatch("setInstanceOption",{name:"backendVersion",value:l.version}),n.dispatch("setInstanceOption",{name:"pleromaBackend",value:"pleroma"===l.name}),d=s.private,n.dispatch("setInstanceOption",{name:"private",value:d}),p=window.___pleromafe_commit_hash,n.dispatch("setInstanceOption",{name:"frontendVersion",value:p}),m=s.federation,n.dispatch("setInstanceOption",{name:"tagPolicyAvailable",value:void 0!==m.mrf_policies&&s.federation.mrf_policies.includes("TagPolicy")}),n.dispatch("setInstanceOption",{name:"federationPolicy",value:m}),n.dispatch("setInstanceOption",{name:"federating",value:void 0===m.enabled||m.enabled}),h=s.accountActivationRequired,n.dispatch("setInstanceOption",{name:"accountActivationRequired",value:h}),f=s.staffAccounts,xv({store:n,accounts:f}),e.next=53;break;case 52:throw o;case 53:e.next=59;break;case 55:e.prev=55,e.t0=e.catch(1),console.warn("Could not load nodeinfo"),console.warn(e.t0);case 59:case"end":return e.stop()}}),e,null,[[1,55]])})));return function(t){return e.apply(this,arguments)}}(),$v=function(){var e=(0,o.Z)(i().mark((function e(t){var n,o,r,s;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.store,e.next=3,Promise.all([Fv({store:n}),Av()]);case 3:return o=e.sent,r=o[0],s=o[1],e.next=8,Ov({store:n,apiConfig:r,staticConfig:s}).then(Iv({store:n}));case 8:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),Bv=function(){var e=(0,o.Z)(i().mark((function e(t){var n;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.store,e.abrupt("return",new Promise(function(){var e=(0,o.Z)(i().mark((function e(t,o){return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!n.getters.getUserToken()){e.next=9;break}return e.prev=1,e.next=4,n.dispatch("loginUser",n.getters.getUserToken());case 4:e.next=9;break;case 6:e.prev=6,e.t0=e.catch(1),console.error(e.t0);case 9:t();case 10:case"end":return e.stop()}}),e,null,[[1,6]])})));return function(t,n){return e.apply(this,arguments)}}()));case 2:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}();const Uv=function(){var e=(0,o.Z)(i().mark((function e(t){var n,o,r,s,a,u,c,l,d,h;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.store,o=t.i18n,n.dispatch("setLayoutWidth",Te()),n.dispatch("setLayoutHeight",$e()),yv.Z.initFaviconService(),r=window.___pleromafe_dev_overrides||{},s=void 0!==r.target?r.target:window.location.origin,n.dispatch("setInstanceOption",{name:"server",value:s}),e.next=9,$v({store:n});case 9:return a=n.state.config,u=a.customTheme,c=a.customThemeSource,l=n.state.instance.theme,c||u?c&&c.themeEngineVersion===m.we?(0,p._v)(c):(0,p._v)(u):l||console.error("Failed to load any theme!"),(0,p.mg)(n.state.config),e.next=16,Promise.all([Bv({store:n}),zv({store:n}),Tv({store:n}),jv({store:n})]);case 16:return n.dispatch("fetchMutes"),n.dispatch("startFetchingAnnouncements"),Ev({store:n}),Pv({store:n}),d=(0,bo.p7)({history:(0,bo.PO)(),routes:dv(n),scrollBehavior:function(e,t,n){return!e.matched.some((function(e){return e.meta.dontScroll}))&&(n||{left:0,top:0})}}),(h=(0,wo.ri)(Au)).use(d),h.use(n),h.use(o),h.use(Do()),h.use(bv),h.use(_o.ZP),h.component("FAIcon",ko.GN),h.component("FALayers",ko.NH),h.config.unwrapInjectedRef=!0,h.mount("#app"),e.abrupt("return",h);case 33:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}();var Mv=(window.navigator.language||"en").split("-")[0],Lv=(0,so.o)({locale:"en",fallbackLocale:"en",messages:vo.Z.default});vo.Z.setLanguage(Lv.global,Mv);var Rv={paths:["serverSideStorage.cache","config","users.lastLoginName","oauth"]};(0,o.Z)(i().mark((function e(){var t,n,o,r;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=!1,n=[go],e.prev=2,e.next=5,fo(Rv);case 5:o=e.sent,n.push(o),e.next=13;break;case 9:e.prev=9,e.t0=e.catch(2),console.error(e.t0),t=!0;case 13:r=(0,s.MT)({modules:{i18n:{getters:{i18n:function(){return Lv.global}}},interface:u,instance:k,users:st,statuses:ae,lists:le,api:vt,config:f.ZP,profileConfig:Ft,serverSideStorage:ln,adminSettings:wn,shout:bn,oauth:yn,authFlow:jn,mediaViewer:En,oauthTokens:zn,reports:Tn,polls:$n,postStatus:Bn,editStatus:Un,statusHistory:Mn,chats:ro,announcements:io},plugins:n,strict:!1}),t&&r.dispatch("pushGlobalNotice",{messageKey:"errors.storage_unavailable",level:"error"}),Uv({store:r,i18n:Lv});case 16:case"end":return e.stop()}}),e,null,[[2,9]])})))(),window.___pleromafe_mode={NODE_ENV:"production"},window.___pleromafe_commit_hash="dbf14eee4\n",window.___pleromafe_dev_overrides=void 0},85565:(e,t,n)=>{"use strict";n.d(t,{Oi:()=>f,W2:()=>h,ZP:()=>g});var o=n(4942),r=n(29439),i=n(36968),s=n.n(i),a=n(6258),u=n(77394),c=n(72617),l=n(39776);function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function m(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?p(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):p(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var h={expertLevel:0,colors:{},theme:void 0,customTheme:void 0,customThemeSource:void 0,hideISP:!1,hideInstanceWallpaper:!1,hideShoutbox:!1,hideMutedPosts:void 0,hideMutedThreads:void 0,hideWordFilteredPosts:void 0,muteBotStatuses:void 0,collapseMessageWithSubject:void 0,padEmoji:!0,hideAttachments:!1,hideAttachmentsInConv:!1,maxThumbnails:16,hideNsfw:!0,preloadImage:!0,loopVideo:!0,loopVideoSilentOnly:!0,streaming:!1,emojiReactionsOnTimeline:!0,alwaysShowNewPostButton:!1,autohideFloatingPostButton:!1,pauseOnUnfocused:!0,stopGifs:!0,replyVisibility:"all",thirdColumnMode:"notifications",notificationVisibility:{follows:!0,mentions:!0,likes:!0,repeats:!0,moves:!0,emojiReactions:!0,followRequest:!0,reports:!0,chatMention:!0,polls:!0},webPushNotifications:!1,muteWords:[],highlight:{},interfaceLanguage:(window.navigator.language||"en").split("-")[0],hideScopeNotice:!1,useStreamingApi:!1,sidebarRight:void 0,scopeCopy:void 0,subjectLineBehavior:void 0,alwaysShowSubjectInput:void 0,postContentType:void 0,minimalScopesMode:void 0,hideFilteredStatuses:void 0,modalOnRepeat:void 0,modalOnUnfollow:void 0,modalOnBlock:void 0,modalOnMute:void 0,modalOnDelete:void 0,modalOnLogout:void 0,modalOnApproveFollow:void 0,modalOnDenyFollow:void 0,modalOnRemoveUserFromFollowers:void 0,playVideosInModal:!1,useOneClickNsfw:!1,useContainFit:!0,disableStickyHeaders:!1,showScrollbars:!1,userPopoverAvatarAction:"open",userPopoverOverlay:!1,sidebarColumnWidth:"25rem",contentColumnWidth:"45rem",notifsColumnWidth:"25rem",emojiReactionsScale:1,navbarColumnStretch:!1,greentext:void 0,useAtIcon:void 0,mentionLinkDisplay:void 0,mentionLinkShowTooltip:void 0,mentionLinkShowAvatar:void 0,mentionLinkFadeDomain:void 0,mentionLinkShowYous:void 0,mentionLinkBoldenYou:void 0,hidePostStats:void 0,hideBotIndication:void 0,hideUserStats:void 0,virtualScrolling:void 0,sensitiveByDefault:void 0,conversationDisplay:void 0,conversationTreeAdvanced:void 0,conversationOtherRepliesButton:void 0,conversationTreeFadeAncestors:void 0,maxDepthInThread:void 0,autocompleteSelect:void 0},f=Object.entries(h).filter((function(e){var t=(0,r.Z)(e,2);return t[0],void 0===t[1]})).map((function(e){var t=(0,r.Z)(e,2),n=t[0];return t[1],n}));const g={state:m({},h),getters:{defaultConfig:function(e,t,n,o){var r=n.instance;return m(m({},h),Object.fromEntries(f.map((function(e){return[e,r[e]]}))))},mergedConfig:function(e,t,n,o){return m(m({},o.defaultConfig),Object.fromEntries(Object.entries(e).filter((function(e){var t=(0,r.Z)(e,2);return t[0],void 0!==t[1]}))))}},mutations:{setOption:function(e,t){var n=t.name,o=t.value;s()(e,n,o)},setHighlight:function(e,t){var n=t.user,o=t.color,r=t.type,i=this.state.config.highlight[n];o||r?e.highlight[n]={color:o||i.color,type:r||i.type}:delete e.highlight[n]}},actions:{loadSettings:function(e,t){var n,o=e.dispatch,r=new Set(Object.keys(h)),i=new Set(Object.keys(t)),s=new Set,a=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return d(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?d(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0,r=function(){};return{s:r,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,i=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw i}}}}(i);try{for(a.s();!(n=a.n()).done;){var u=n.value;r.has(u)&&s.add(u)}}catch(e){a.e(e)}finally{a.f()}s.forEach((function(e){return o("setOption",{name:e,value:t[e]})}))},setHighlight:function(e,t){var n=e.commit;e.dispatch,n("setHighlight",{user:t.user,color:t.color,type:t.type})},setOption:function(e,t){var n=e.commit,o=e.dispatch,r=e.state,i=t.name,s=t.value;if(new Set(["useStreamingApi"]).has(i))"useStreamingApi"===i&&o(s?"enableMastoSockets":"disableMastoSockets").then((function(){n("setOption",{name:"useStreamingApi",value:s})})).catch((function(e){console.error("Failed starting MastoAPI Streaming socket",e),o("disableMastoSockets"),o("setOption",{name:"useStreamingApi",value:!1})}));else switch(n("setOption",{name:i,value:s}),i){case"theme":(0,u.bY)(s);break;case"sidebarColumnWidth":case"contentColumnWidth":case"notifsColumnWidth":case"emojiReactionsScale":(0,u.mg)(r);break;case"customTheme":case"customThemeSource":(0,u._v)(s);break;case"interfaceLanguage":c.Z.setLanguage(this.getters.i18n,s),o("loadUnicodeEmojiData",s),a.Z.set("userLanguage",l.Z.internalToBackendLocaleMulti(s));break;case"thirdColumnMode":o("setLayoutWidth",void 0)}}}}},77776:(e,t,n)=>{"use strict";n.d(t,{ro:()=>$e,_z:()=>Ue,ZP:()=>Me,pR:()=>Ie});var o=n(15861),r=n(44925),i=n(29439),s=n(4942),a=n(27361),u=n.n(a),c=n(10928),l=n.n(c),d=n(57043),p=n.n(d),m=n(35161),h=n.n(m),f=n(66073),g=n.n(f),v=n(64687),w=n.n(v),b=n(27742),y=n(71002),D=n(43144),_=n(15671),k=n(97326),C=n(60136),S=n(82963),j=n(61120),F=n(72407),A=n(93433),O=n(48403),E=n.n(O);function z(e,t,n,o){this.name="StatusCodeError",this.statusCode=e,this.message=e+" - "+(JSON&&JSON.stringify?JSON.stringify(t):t),this.error=t,this.options=n,this.response=o,Error.captureStackTrace&&Error.captureStackTrace(this)}z.prototype=Object.create(Error.prototype),z.prototype.constructor=z;var P=function(e){(0,C.Z)(r,e);var t,n,o=(t=r,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,o=(0,j.Z)(t);if(n){var r=(0,j.Z)(this).constructor;e=Reflect.construct(o,arguments,r)}else e=o.apply(this,arguments);return(0,S.Z)(this,e)});function r(e){var t,n;(0,_.Z)(this,r),t=o.call(this),Error.captureStackTrace&&Error.captureStackTrace((0,k.Z)(t));try{if("string"==typeof e&&(e=JSON.parse(e)).hasOwnProperty("error")&&(e=JSON.parse(e.error)),"object"===(0,y.Z)(e)){var s=JSON.parse(e.error);s.ap_id&&(s.username=s.ap_id,delete s.ap_id),t.message=(n=s,Object.entries(n).reduce((function(e,t){var n=(0,i.Z)(t,2),o=n[0],r=n[1].reduce((function(e,t){return e+[E()(o.replace(/_/g," ")),t].join(" ")+". "}),"");return[].concat((0,A.Z)(e),[r])}),[]))}else t.message=e}catch(n){t.message=e}return t}return(0,D.Z)(r)}((0,F.Z)(Error)),I=["nickname"],x=["id","credentials"];function T(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function $(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?T(Object(n),!0).forEach((function(t){(0,s.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):T(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var B="/api/pleroma/aliases",U="/api/pleroma/admin/users/tag",M=function(e,t){return"/api/pleroma/admin/users/".concat(e,"/permission_group/").concat(t)},L=function(e){return"/api/v1/notifications/".concat(e,"/dismiss")},R=function(e){return"/api/v1/statuses/".concat(e,"/favourite")},q=function(e){return"/api/v1/statuses/".concat(e,"/unfavourite")},N=function(e){return"/api/v1/statuses/".concat(e,"/reblog")},Z=function(e){return"/api/v1/statuses/".concat(e,"/unreblog")},W=function(e){return"/api/v1/statuses/".concat(e)},H="/api/v1/timelines/public",V=function(e){return"/api/v1/statuses/".concat(e)},K=function(e){return"/api/v1/accounts/".concat(e,"/statuses")},G=function(e){return"/api/v1/lists/".concat(e)},Y=function(e){return"/api/v1/timelines/list/".concat(e)},J=function(e){return"/api/v1/lists/".concat(e,"/accounts")},Q=function(e){return"/api/v1/timelines/tag/".concat(e)},X=function(e){return"/api/v1/accounts/".concat(e,"/mute")},ee=function(e){return"/api/v1/accounts/".concat(e,"/unmute")},te=function(e){return"/api/v1/pleroma/accounts/".concat(e,"/subscribe")},ne=function(e){return"/api/v1/pleroma/accounts/".concat(e,"/unsubscribe")},oe=function(e){return"/api/v1/accounts/".concat(e,"/note")},re=function(e){return"/api/v1/statuses/".concat(e,"/bookmark")},ie=function(e){return"/api/v1/statuses/".concat(e,"/unbookmark")},se="/api/v1/media",ae=function(e){return"/api/v1/statuses/".concat(e,"/favourited_by")},ue=function(e){return"/api/v1/statuses/".concat(e,"/reblogged_by")},ce="/api/v1/accounts/update_credentials",le=function(e){return"/api/v1/statuses/".concat(e,"/pin")},de=function(e){return"/api/v1/statuses/".concat(e,"/unpin")},pe=function(e){return"/api/v1/statuses/".concat(e,"/mute")},me=function(e){return"/api/v1/statuses/".concat(e,"/unmute")},he="/api/v1/domain_blocks",fe=function(e){return"/api/v1/announcements/".concat(e,"/dismiss")},ge=function(e){return"/api/v1/pleroma/statuses/".concat(e,"/reactions")},ve=function(e,t){return"/api/v1/pleroma/statuses/".concat(e,"/reactions/").concat(t)},we=function(e,t){return"/api/v1/pleroma/statuses/".concat(e,"/reactions/").concat(t)},be=function(e){return"/api/v1/pleroma/chats/".concat(e,"/messages")},ye=function(e){return"/api/v1/pleroma/chats/".concat(e,"/read")},De=function(e,t){return"/api/v1/pleroma/chats/".concat(e,"/messages/").concat(t)},_e="/api/v1/pleroma/backups",ke=function(e){return"/api/v1/pleroma/admin/announcements/".concat(e)},Ce=function(e){return"/api/v1/pleroma/admin/announcements/".concat(e)},Se="/api/pleroma/admin/config",je=window.fetch,Fe=function(e,t){var n=""+e;return(t=t||{}).credentials="same-origin",je(n,t)},Ae=function(e){var t=e.method,n=e.url,o=e.params,r=e.payload,s=e.credentials,a=e.headers,u={method:t,headers:$({Accept:"application/json","Content-Type":"application/json"},void 0===a?{}:a)};return o&&(n+="?"+Object.entries(o).map((function(e){var t=(0,i.Z)(e,2),n=t[0],o=t[1];return encodeURIComponent(n)+"="+encodeURIComponent(o)})).join("&")),r&&(u.body=JSON.stringify(r)),s&&(u.headers=$($({},u.headers),Oe(s))),Fe(n,u).then((function(e){return new Promise((function(t,o){return e.json().then((function(r){return e.ok?t(r):o(new z(e.status,r,{url:n,options:u},e))})).catch((function(t){return o(new z(e.status,t,{url:n,options:u},e))}))}))}))},Oe=function(e){return e?{Authorization:"Bearer ".concat(e)}:{}},Ee=function(e){var t=e.id,n=e.credentials,o="".concat("/api/v1/accounts","/").concat(t);return Ae({url:o,credentials:n}).then((function(e){return(0,b.nL)(e)}))},ze=function(e){var t=e.id,n=e.maxId,o=e.sinceId,r=e.limit,i=void 0===r?20:r,s=e.credentials,a=function(e){return"/api/v1/accounts/".concat(e,"/following")}(t),u=[n&&"max_id=".concat(n),o&&"since_id=".concat(o),i&&"limit=".concat(i),"with_relationships=true"].filter((function(e){return e})).join("&");return Fe(a+=u?"?"+u:"",{headers:Oe(s)}).then((function(e){return e.json()})).then((function(e){return e.map(b.nL)}))},Pe=function(e){var t=e.content,n=e.startsAt,o=e.endsAt,r=e.allDay,i={content:t};return void 0!==n&&(i.starts_at=n?new Date(n).toISOString():null),void 0!==o&&(i.ends_at=o?new Date(o).toISOString():null),void 0!==r&&(i.all_day=r),i},Ie=function(e){var t=e.credentials,n=e.stream,o=e.args,r=void 0===o?{}:o;return Object.entries($($({},t?{access_token:t}:{}),{},{stream:n},r)).reduce((function(e,t){var n=(0,i.Z)(t,2),o=n[0],r=n[1];return e+"".concat(o,"=").concat(r,"&")}),"/api/v1/streaming?")},xe=new Set(["update","notification","delete","filters_changed","status.update"]),Te=new Set(["pleroma:chat_update"]),$e=function(e){var t=e.url,n=e.preprocessor,o=void 0===n?Be:n,r=e.id,i=void 0===r?"Unknown":r,s=new EventTarget,a=new WebSocket(t);if(!a)throw new Error("Failed to create socket ".concat(i));var u=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(e){return e};e.addEventListener(t,(function(e){s.dispatchEvent(new CustomEvent(t,{detail:n(e)}))}))};return a.addEventListener("open",(function(e){console.debug("[WS][".concat(i,"] Socket connected"),e)})),a.addEventListener("error",(function(e){console.debug("[WS][".concat(i,"] Socket errored"),e)})),a.addEventListener("close",(function(e){console.debug("[WS][".concat(i,"] Socket disconnected with code ").concat(e.code),e)})),u(a,"open"),u(a,"close"),u(a,"message",o),u(a,"error"),s.close=function(){a.close(1e3,"Shutting down socket")},s.getState=function(){return a.readyState},s},Be=function(e){var t=e.data;if(t){var n=JSON.parse(t),o=n.event,r=n.payload;if(!xe.has(o)&&!Te.has(o))return console.warn("Unknown event",e),null;if("delete"===o)return{event:o,id:r};var i=r?JSON.parse(r):null;return"update"===o||"status.update"===o?{event:o,status:(0,b.Wn)(i)}:"notification"===o?{event:o,notification:(0,b.eM)(i)}:"pleroma:chat_update"===o?{event:o,chatUpdate:(0,b._J)(i)}:void 0}},Ue=Object.freeze({JOINED:1,CLOSED:2,ERROR:3,DISABLED:4,STARTING:5,STARTING_INITIAL:6});const Me={verifyCredentials:function(e){return Fe("/api/v1/accounts/verify_credentials",{headers:Oe(e)}).then((function(e){return e.ok?e.json():{error:e}})).then((function(e){return e.error?e:(0,b.nL)(e)}))},fetchTimeline:function(e){var t=e.timeline,n=e.credentials,r=e.since,i=void 0!==r&&r,s=e.until,a=void 0!==s&&s,u=e.userId,c=void 0!==u&&u,l=e.listId,d=void 0!==l&&l,p=e.tag,m=void 0!==p&&p,f=e.withMuted,g=void 0!==f&&f,v=e.replyVisibility,y=void 0===v?"all":v,D=e.includeTypes,_=void 0===D?[]:D,k="notifications"===t,C=[],S={public:H,friends:"/api/v1/timelines/home",dms:"/api/v1/timelines/direct",notifications:"/api/v1/notifications",publicAndExternal:H,user:K,media:K,list:Y,favorites:"/api/v1/favourites",tag:Q,bookmarks:"/api/v1/bookmarks"}[t];"user"!==t&&"media"!==t||(S=S(c)),"list"===t&&(S=S(d)),i&&C.push(["since_id",i]),a&&C.push(["max_id",a]),m&&(S=S(m)),"media"===t&&C.push(["only_media",1]),"public"===t&&C.push(["local",!0]),"public"!==t&&"publicAndExternal"!==t||C.push(["only_media",!1]),"favorites"!==t&&"bookmarks"!==t&&C.push(["with_muted",g]),"all"!==y&&C.push(["reply_visibility",y]),_.length>0&&_.forEach((function(e){C.push(["include_types[]",e])})),C.push(["limit",20]);var j=h()(C,(function(e){return"".concat(e[0],"=").concat(e[1])})).join("&");return S+="?".concat(j),Fe(S,{headers:Oe(n)}).then(function(){var e=(0,o.Z)(w().mark((function e(n){var o,r,i;return w().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=n.ok,e.next=3,n.json();case 3:if(r=e.sent,!o||r.errors){e.next=9;break}return i=(0,b.Nw)(n.headers.get("Link"),{flakeId:"bookmarks"!==t&&"notifications"!==t}),e.abrupt("return",{data:r.map(k?b.eM:b.Wn),pagination:i});case 9:return r.errors||(r.errors=[]),r.status=n.status,r.statusText=n.statusText,e.abrupt("return",r);case 13:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}())},fetchPinnedStatuses:function(e){var t=e.id,n=e.credentials,o=K(t)+"?pinned=true";return Ae({url:o,credentials:n}).then((function(e){return e.map(b.Wn)}))},fetchConversation:function(e){var t=e.id,n=e.credentials,o=function(e){return"/api/v1/statuses/".concat(e,"/context")}(t);return Fe(o,{headers:Oe(n)}).then((function(e){if(e.ok)return e;throw new Error("Error fetching timeline",e)})).then((function(e){return e.json()})).then((function(e){var t=e.ancestors,n=e.descendants;return{ancestors:t.map(b.Wn),descendants:n.map(b.Wn)}}))},fetchStatus:function(e){var t=e.id,n=e.credentials,o=V(t);return Fe(o,{headers:Oe(n)}).then((function(e){if(e.ok)return e;throw new Error("Error fetching timeline",e)})).then((function(e){return e.json()})).then((function(e){return(0,b.Wn)(e)}))},fetchStatusSource:function(e){var t=e.id,n=e.credentials,o=function(e){return"/api/v1/statuses/".concat(e,"/source")}(t);return Fe(o,{headers:Oe(n)}).then((function(e){if(e.ok)return e;throw new Error("Error fetching source",e)})).then((function(e){return e.json()})).then((function(e){return(0,b.P7)(e)}))},fetchStatusHistory:function(e){var t,n=e.status,o=e.credentials,r=(t=n.id,"/api/v1/statuses/".concat(t,"/history"));return Ae({url:r,credentials:o}).then((function(e){return e.reverse(),e.map((function(e){return e.originalStatus=n,(0,b.Wn)(e)}))}))},fetchFriends:ze,exportFriends:function(e){var t=e.id,n=e.credentials;return new Promise(function(){var e=(0,o.Z)(w().mark((function e(o,r){var i,s,a,u;return w().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:e.prev=0,i=[],s=!0;case 3:if(!s){e.next=12;break}return a=i.length>0?l()(i).id:void 0,e.next=7,ze({id:t,maxId:a,credentials:n});case 7:u=e.sent,i=p()(i,u),0===u.length&&(s=!1),e.next=3;break;case 12:o(i),e.next=18;break;case 15:e.prev=15,e.t0=e.catch(0),r(e.t0);case 18:case"end":return e.stop()}}),e,null,[[0,15]])})));return function(t,n){return e.apply(this,arguments)}}())},fetchFollowers:function(e){var t=e.id,n=e.maxId,o=e.sinceId,r=e.limit,i=void 0===r?20:r,s=e.credentials,a=function(e){return"/api/v1/accounts/".concat(e,"/followers")}(t),u=[n&&"max_id=".concat(n),o&&"since_id=".concat(o),i&&"limit=".concat(i),"with_relationships=true"].filter((function(e){return e})).join("&");return Fe(a+=u?"?"+u:"",{headers:Oe(s)}).then((function(e){return e.json()})).then((function(e){return e.map(b.nL)}))},followUser:function(e){var t=e.id,n=e.credentials,o=(0,r.Z)(e,x),i=function(e){return"/api/v1/accounts/".concat(e,"/follow")}(t),s={};return void 0!==o.reblogs&&(s.reblogs=o.reblogs),Fe(i,{body:JSON.stringify(s),headers:$($({},Oe(n)),{},{"Content-Type":"application/json"}),method:"POST"}).then((function(e){return e.json()}))},unfollowUser:function(e){var t=e.id,n=e.credentials,o=function(e){return"/api/v1/accounts/".concat(e,"/unfollow")}(t);return Fe(o,{headers:Oe(n),method:"POST"}).then((function(e){return e.json()}))},pinOwnStatus:function(e){var t=e.id,n=e.credentials;return Ae({url:le(t),credentials:n,method:"POST"}).then((function(e){return(0,b.Wn)(e)}))},unpinOwnStatus:function(e){var t=e.id,n=e.credentials;return Ae({url:de(t),credentials:n,method:"POST"}).then((function(e){return(0,b.Wn)(e)}))},muteConversation:function(e){var t=e.id,n=e.credentials;return Ae({url:pe(t),credentials:n,method:"POST"}).then((function(e){return(0,b.Wn)(e)}))},unmuteConversation:function(e){var t=e.id,n=e.credentials;return Ae({url:me(t),credentials:n,method:"POST"}).then((function(e){return(0,b.Wn)(e)}))},blockUser:function(e){var t=e.id,n=e.credentials;return Fe(function(e){return"/api/v1/accounts/".concat(e,"/block")}(t),{headers:Oe(n),method:"POST"}).then((function(e){return e.json()}))},unblockUser:function(e){var t=e.id,n=e.credentials;return Fe(function(e){return"/api/v1/accounts/".concat(e,"/unblock")}(t),{headers:Oe(n),method:"POST"}).then((function(e){return e.json()}))},removeUserFromFollowers:function(e){var t=e.id,n=e.credentials;return Fe(function(e){return"/api/v1/accounts/".concat(e,"/remove_from_followers")}(t),{headers:Oe(n),method:"POST"}).then((function(e){return e.json()}))},editUserNote:function(e){var t=e.id,n=e.credentials,o=e.comment;return Ae({url:oe(t),credentials:n,payload:{comment:o},method:"POST"})},fetchUser:Ee,fetchUserByName:function(e){var t=e.name,n=e.credentials;return Ae({url:"/api/v1/accounts/lookup",credentials:n,params:{acct:t}}).then((function(e){return e.id})).catch((function(e){if(e&&404===e.statusCode)return t;throw e})).then((function(e){return Ee({id:e,credentials:n})}))},fetchUserRelationship:function(e){var t=e.id,n=e.credentials,o="".concat("/api/v1/accounts/relationships","/?id=").concat(t);return Fe(o,{headers:Oe(n)}).then((function(e){return new Promise((function(t,n){return e.json().then((function(r){return e.ok?t(r):n(new z(e.status,r,{url:o},e))}))}))}))},favorite:function(e){var t=e.id,n=e.credentials;return Ae({url:R(t),method:"POST",credentials:n}).then((function(e){return(0,b.Wn)(e)}))},unfavorite:function(e){var t=e.id,n=e.credentials;return Ae({url:q(t),method:"POST",credentials:n}).then((function(e){return(0,b.Wn)(e)}))},retweet:function(e){var t=e.id,n=e.credentials;return Ae({url:N(t),method:"POST",credentials:n}).then((function(e){return(0,b.Wn)(e)}))},unretweet:function(e){var t=e.id,n=e.credentials;return Ae({url:Z(t),method:"POST",credentials:n}).then((function(e){return(0,b.Wn)(e)}))},bookmarkStatus:function(e){var t=e.id,n=e.credentials;return Ae({url:re(t),headers:Oe(n),method:"POST"})},unbookmarkStatus:function(e){var t=e.id,n=e.credentials;return Ae({url:ie(t),headers:Oe(n),method:"POST"})},postStatus:function(e){var t=e.credentials,n=e.status,o=e.spoilerText,r=e.visibility,i=e.sensitive,s=e.poll,a=e.mediaIds,u=void 0===a?[]:a,c=e.inReplyToStatusId,l=e.quoteId,d=e.contentType,p=e.preview,m=e.idempotencyKey,h=new FormData,f=s.options||[];if(h.append("status",n),h.append("source","Pleroma FE"),o&&h.append("spoiler_text",o),r&&h.append("visibility",r),i&&h.append("sensitive",i),d&&h.append("content_type",d),u.forEach((function(e){h.append("media_ids[]",e)})),f.some((function(e){return""!==e}))){var g={expires_in:parseInt(s.expiresIn,10),multiple:s.multiple};Object.keys(g).forEach((function(e){h.append("poll[".concat(e,"]"),g[e])})),f.forEach((function(e){h.append("poll[options][]",e)}))}c&&h.append("in_reply_to_id",c),l&&h.append("quote_id",l),p&&h.append("preview","true");var v=Oe(t);return m&&(v["idempotency-key"]=m),Fe("/api/v1/statuses",{body:h,method:"POST",headers:v}).then((function(e){return e.json()})).then((function(e){return e.error?e:(0,b.Wn)(e)}))},editStatus:function(e){var t=e.id,n=e.credentials,o=e.status,r=e.spoilerText,i=e.sensitive,s=e.poll,a=e.mediaIds,u=void 0===a?[]:a,c=e.contentType,l=new FormData,d=s.options||[];if(l.append("status",o),r&&l.append("spoiler_text",r),i&&l.append("sensitive",i),c&&l.append("content_type",c),u.forEach((function(e){l.append("media_ids[]",e)})),d.some((function(e){return""!==e}))){var p={expires_in:parseInt(s.expiresIn,10),multiple:s.multiple};Object.keys(p).forEach((function(e){l.append("poll[".concat(e,"]"),p[e])})),d.forEach((function(e){l.append("poll[options][]",e)}))}var m=Oe(n);return Fe(V(t),{body:l,method:"PUT",headers:m}).then((function(e){return e.json()})).then((function(e){return e.error?e:(0,b.Wn)(e)}))},deleteStatus:function(e){var t=e.id,n=e.credentials;return Ae({url:W(t),credentials:n,method:"DELETE"})},uploadMedia:function(e){var t=e.formData,n=e.credentials;return Fe(se,{body:t,method:"POST",headers:Oe(n)}).then((function(e){return e.json()})).then((function(e){return(0,b.cO)(e)}))},setMediaDescription:function(e){var t=e.id,n=e.description,o=e.credentials;return Ae({url:"".concat(se,"/").concat(t),method:"PUT",headers:Oe(o),payload:{description:n}}).then((function(e){return(0,b.cO)(e)}))},fetchMutes:function(e){var t=e.maxId,n=e.credentials,o=new URLSearchParams({with_relationships:!0});return t&&o.append("max_id",t),Ae({url:"".concat("/api/v1/mutes/","?").concat(o.toString()),credentials:n}).then((function(e){return e.map(b.nL)}))},muteUser:function(e){var t=e.id,n=e.expiresIn,o=e.credentials,r={};return n&&(r.expires_in=n),Ae({url:X(t),credentials:o,method:"POST",payload:r})},unmuteUser:function(e){var t=e.id,n=e.credentials;return Ae({url:ee(t),credentials:n,method:"POST"})},subscribeUser:function(e){var t=e.id,n=e.credentials;return Ae({url:te(t),credentials:n,method:"POST"})},unsubscribeUser:function(e){var t=e.id,n=e.credentials;return Ae({url:ne(t),credentials:n,method:"POST"})},fetchBlocks:function(e){var t=e.maxId,n=e.credentials,o=new URLSearchParams({with_relationships:!0});return t&&o.append("max_id",t),Ae({url:"".concat("/api/v1/blocks/","?").concat(o.toString()),credentials:n}).then((function(e){return e.map(b.nL)}))},fetchOAuthTokens:function(e){var t=e.credentials;return Fe("/api/oauth_tokens.json",{headers:Oe(t)}).then((function(e){if(e.ok)return e.json();throw new Error("Error fetching auth tokens",e)}))},revokeOAuthToken:function(e){var t=e.id,n=e.credentials,o="/api/oauth_tokens/".concat(t);return Fe(o,{headers:Oe(n),method:"DELETE"})},tagUser:function(e){var t=e.tag,n=e.credentials,o={nicknames:[e.user.screen_name],tags:[t]},r=Oe(n);return r["Content-Type"]="application/json",Fe(U,{method:"PUT",headers:r,body:JSON.stringify(o)})},untagUser:function(e){var t=e.tag,n=e.credentials,o={nicknames:[e.user.screen_name],tags:[t]},r=Oe(n);return r["Content-Type"]="application/json",Fe(U,{method:"DELETE",headers:r,body:JSON.stringify(o)})},deleteUser:function(e){var t=e.credentials,n=e.user.screen_name,o=Oe(t);return Fe("".concat("/api/pleroma/admin/users","?nickname=").concat(n),{method:"DELETE",headers:o})},addRight:function(e){var t=e.right,n=e.credentials,o=e.user.screen_name;return Fe(M(o,t),{method:"POST",headers:Oe(n),body:{}})},deleteRight:function(e){var t=e.right,n=e.credentials,o=e.user.screen_name;return Fe(M(o,t),{method:"DELETE",headers:Oe(n),body:{}})},activateUser:function(e){var t=e.credentials,n=e.user.screen_name;return Ae({url:"/api/pleroma/admin/users/activate",method:"PATCH",credentials:t,payload:{nicknames:[n]}}).then((function(e){return u()(e,"users.0")}))},deactivateUser:function(e){var t=e.credentials,n=e.user.screen_name;return Ae({url:"/api/pleroma/admin/users/deactivate",method:"PATCH",credentials:t,payload:{nicknames:[n]}}).then((function(e){return u()(e,"users.0")}))},register:function(e){var t=e.params,n=e.credentials,o=t.nickname,i=(0,r.Z)(t,I);return Fe("/api/v1/accounts",{method:"POST",headers:$($({},Oe(n)),{},{"Content-Type":"application/json"}),body:JSON.stringify($({nickname:o,locale:"en_US",agreement:!0},i))}).then((function(e){return e.ok?e.json():e.json().then((function(e){throw new P(e)}))}))},getCaptcha:function(){return Fe("/api/pleroma/captcha").then((function(e){return e.json()}))},updateProfileImages:function(e){var t=e.credentials,n=e.avatar,o=void 0===n?null:n,r=e.avatarName,i=void 0===r?null:r,s=e.banner,a=void 0===s?null:s,u=e.background,c=void 0===u?null:u,l=new FormData;return null!==o&&(null!==i?l.append("avatar",o,i):l.append("avatar",o)),null!==a&&l.append("header",a),null!==c&&l.append("pleroma_background_image",c),Fe(ce,{headers:Oe(t),method:"PATCH",body:l}).then((function(e){return e.json()})).then((function(e){if(e.error)throw new Error(e.error);return(0,b.nL)(e)}))},updateProfile:function(e){var t=e.credentials,n=e.params;return Ae({url:ce,method:"PATCH",payload:n,credentials:t}).then((function(e){return(0,b.nL)(e)}))},importMutes:function(e){var t=e.file,n=e.credentials,o=new FormData;return o.append("list",t),Fe("/api/pleroma/mutes_import",{body:o,method:"POST",headers:Oe(n)}).then((function(e){return e.ok}))},importBlocks:function(e){var t=e.file,n=e.credentials,o=new FormData;return o.append("list",t),Fe("/api/pleroma/blocks_import",{body:o,method:"POST",headers:Oe(n)}).then((function(e){return e.ok}))},importFollows:function(e){var t=e.file,n=e.credentials,o=new FormData;return o.append("list",t),Fe("/api/pleroma/follow_import",{body:o,method:"POST",headers:Oe(n)}).then((function(e){return e.ok}))},deleteAccount:function(e){var t=e.credentials,n=e.password,o=new FormData;return o.append("password",n),Fe("/api/pleroma/delete_account",{body:o,method:"POST",headers:Oe(t)}).then((function(e){return e.json()}))},changeEmail:function(e){var t=e.credentials,n=e.email,o=e.password,r=new FormData;return r.append("email",n),r.append("password",o),Fe("/api/pleroma/change_email",{body:r,method:"POST",headers:Oe(t)}).then((function(e){return e.json()}))},moveAccount:function(e){var t=e.credentials,n=e.password,o=e.targetAccount,r=new FormData;return r.append("password",n),r.append("target_account",o),Fe("/api/pleroma/move_account",{body:r,method:"POST",headers:Oe(t)}).then((function(e){return e.json()}))},addAlias:function(e){var t=e.credentials,n=e.alias;return Ae({url:B,method:"PUT",credentials:t,payload:{alias:n}})},deleteAlias:function(e){var t=e.credentials,n=e.alias;return Ae({url:B,method:"DELETE",credentials:t,payload:{alias:n}})},listAliases:function(e){var t=e.credentials;return Ae({url:B,method:"GET",credentials:t,params:{_cacheBooster:(new Date).getTime()}})},changePassword:function(e){var t=e.credentials,n=e.password,o=e.newPassword,r=e.newPasswordConfirmation,i=new FormData;return i.append("password",n),i.append("new_password",o),i.append("new_password_confirmation",r),Fe("/api/pleroma/change_password",{body:i,method:"POST",headers:Oe(t)}).then((function(e){return e.json()}))},settingsMFA:function(e){var t=e.credentials;return Fe("/api/pleroma/accounts/mfa",{headers:Oe(t),method:"GET"}).then((function(e){return e.json()}))},mfaDisableOTP:function(e){var t=e.credentials,n=e.password,o=new FormData;return o.append("password",n),Fe("/api/pleroma/accounts/mfa/totp",{body:o,method:"DELETE",headers:Oe(t)}).then((function(e){return e.json()}))},generateMfaBackupCodes:function(e){var t=e.credentials;return Fe("/api/pleroma/accounts/mfa/backup_codes",{headers:Oe(t),method:"GET"}).then((function(e){return e.json()}))},mfaSetupOTP:function(e){var t=e.credentials;return Fe("/api/pleroma/accounts/mfa/setup/totp",{headers:Oe(t),method:"GET"}).then((function(e){return e.json()}))},mfaConfirmOTP:function(e){var t=e.credentials,n=e.password,o=e.token,r=new FormData;return r.append("password",n),r.append("code",o),Fe("/api/pleroma/accounts/mfa/confirm/totp",{body:r,headers:Oe(t),method:"POST"}).then((function(e){return e.json()}))},addBackup:function(e){var t=e.credentials;return Ae({url:_e,method:"POST",credentials:t})},listBackups:function(e){var t=e.credentials;return Ae({url:_e,method:"GET",credentials:t,params:{_cacheBooster:(new Date).getTime()}})},fetchFollowRequests:function(e){var t=e.credentials;return Fe("/api/v1/follow_requests",{headers:Oe(t)}).then((function(e){return e.json()})).then((function(e){return e.map(b.nL)}))},fetchLists:function(e){var t=e.credentials;return Fe("/api/v1/lists",{headers:Oe(t)}).then((function(e){return e.json()}))},createList:function(e){var t=e.title,n=e.credentials,o=Oe(n);return o["Content-Type"]="application/json",Fe("/api/v1/lists",{headers:o,method:"POST",body:JSON.stringify({title:t})}).then((function(e){return e.json()}))},getList:function(e){var t=e.listId,n=e.credentials,o=G(t);return Fe(o,{headers:Oe(n)}).then((function(e){return e.json()}))},updateList:function(e){var t=e.listId,n=e.title,o=e.credentials,r=G(t),i=Oe(o);return i["Content-Type"]="application/json",Fe(r,{headers:i,method:"PUT",body:JSON.stringify({title:n})})},getListAccounts:function(e){var t=e.listId,n=e.credentials,o=J(t);return Fe(o,{headers:Oe(n)}).then((function(e){return e.json()})).then((function(e){return e.map((function(e){return e.id}))}))},addAccountsToList:function(e){var t=e.listId,n=e.accountIds,o=e.credentials,r=J(t),i=Oe(o);return i["Content-Type"]="application/json",Fe(r,{headers:i,method:"POST",body:JSON.stringify({account_ids:n})})},removeAccountsFromList:function(e){var t=e.listId,n=e.accountIds,o=e.credentials,r=J(t),i=Oe(o);return i["Content-Type"]="application/json",Fe(r,{headers:i,method:"DELETE",body:JSON.stringify({account_ids:n})})},deleteList:function(e){var t=e.listId,n=e.credentials,o=G(t);return Fe(o,{method:"DELETE",headers:Oe(n)})},approveUser:function(e){var t=e.id,n=e.credentials,o=function(e){return"/api/v1/follow_requests/".concat(e,"/authorize")}(t);return Fe(o,{headers:Oe(n),method:"POST"}).then((function(e){return e.json()}))},denyUser:function(e){var t=e.id,n=e.credentials,o=function(e){return"/api/v1/follow_requests/".concat(e,"/reject")}(t);return Fe(o,{headers:Oe(n),method:"POST"}).then((function(e){return e.json()}))},suggestions:function(e){var t=e.credentials;return Fe("/api/v1/suggestions",{headers:Oe(t)}).then((function(e){return e.json()}))},markNotificationsAsSeen:function(e){var t=e.id,n=e.credentials,o=e.single,r=void 0!==o&&o,i=new FormData;return r?i.append("id",t):i.append("max_id",t),Fe("/api/v1/pleroma/notifications/read",{body:i,headers:Oe(n),method:"POST"}).then((function(e){return e.json()}))},dismissNotification:function(e){var t=e.credentials,n=e.id;return Ae({url:L(n),method:"POST",payload:{id:n},credentials:t})},vote:function(e){var t,n=e.pollId,o=e.choices,r=e.credentials;return(new FormData).append("choices",o),Ae({url:(t=encodeURIComponent(n),"/api/v1/polls/".concat(t,"/votes")),method:"POST",credentials:r,payload:{choices:o}})},fetchPoll:function(e){var t,n=e.pollId,o=e.credentials;return Ae({url:(t=encodeURIComponent(n),"/api/v1/polls/".concat(t)),method:"GET",credentials:o})},fetchFavoritedByUsers:function(e){var t=e.id,n=e.credentials;return Ae({url:ae(t),method:"GET",credentials:n}).then((function(e){return e.map(b.nL)}))},fetchRebloggedByUsers:function(e){var t=e.id,n=e.credentials;return Ae({url:ue(t),method:"GET",credentials:n}).then((function(e){return e.map(b.nL)}))},fetchEmojiReactions:function(e){var t=e.id,n=e.credentials;return Ae({url:ge(t),credentials:n}).then((function(e){return e.map((function(e){return e.accounts=e.accounts.map(b.nL),e}))}))},reactWithEmoji:function(e){var t=e.id,n=e.emoji,o=e.credentials;return Ae({url:ve(t,n),method:"PUT",credentials:o}).then(b.Wn)},unreactWithEmoji:function(e){var t=e.id,n=e.emoji,o=e.credentials;return Ae({url:we(t,n),method:"DELETE",credentials:o}).then(b.Wn)},reportUser:function(e){var t=e.credentials,n=e.userId,o=e.statusIds,r=e.comment,i=e.forward;return Ae({url:"/api/v1/reports",method:"POST",payload:{account_id:n,status_ids:o,comment:r,forward:i},credentials:t})},updateNotificationSettings:function(e){var t=e.credentials,n=e.settings,o=new FormData;return g()(n,(function(e,t){o.append(t,e)})),Fe("".concat("/api/pleroma/notification_settings","?").concat(new URLSearchParams(n)),{headers:Oe(t),method:"PUT",body:o}).then((function(e){return e.json()}))},search2:function(e){var t=e.credentials,n=e.q,o=e.resolve,r=e.limit,i=e.offset,s=e.following,a=e.type,u="/api/v2/search",c=[];n&&c.push(["q",encodeURIComponent(n)]),o&&c.push(["resolve",o]),r&&c.push(["limit",r]),i&&c.push(["offset",i]),s&&c.push(["following",!0]),a&&c.push(["following",a]),c.push(["with_relationships",!0]);var l=h()(c,(function(e){return"".concat(e[0],"=").concat(e[1])})).join("&");return u+="?".concat(l),Fe(u,{headers:Oe(t)}).then((function(e){if(e.ok)return e;throw new Error("Error fetching search result",e)})).then((function(e){return e.json()})).then((function(e){return e.accounts=e.accounts.slice(0,r).map((function(e){return(0,b.nL)(e)})),e.statuses=e.statuses.slice(0,r).map((function(e){return(0,b.Wn)(e)})),e}))},searchUsers:function(e){var t=e.credentials,n=e.query;return Ae({url:"/api/v1/accounts/search",params:{q:n,resolve:!0},credentials:t}).then((function(e){return e.map(b.nL)}))},fetchKnownDomains:function(e){var t=e.credentials;return Ae({url:"/api/v1/instance/peers",credentials:t})},fetchDomainMutes:function(e){var t=e.credentials;return Ae({url:he,credentials:t})},muteDomain:function(e){var t=e.domain,n=e.credentials;return Ae({url:he,method:"POST",payload:{domain:t},credentials:n})},unmuteDomain:function(e){var t=e.domain,n=e.credentials;return Ae({url:he,method:"DELETE",payload:{domain:t},credentials:n})},chats:function(e){var t=e.credentials;return Fe("/api/v1/pleroma/chats",{headers:Oe(t)}).then((function(e){return e.json()})).then((function(e){return{chats:e.map(b._J).filter((function(e){return e}))}}))},getOrCreateChat:function(e){var t,n=e.accountId,o=e.credentials;return Ae({url:(t=n,"/api/v1/pleroma/chats/by-account-id/".concat(t)),method:"POST",credentials:o})},chatMessages:function(e){var t=e.id,n=e.credentials,o=e.maxId,r=e.sinceId,i=e.limit,s=void 0===i?20:i,a=be(t),u=[o&&"max_id=".concat(o),r&&"since_id=".concat(r),s&&"limit=".concat(s)].filter((function(e){return e})).join("&");return Ae({url:a+=u?"?"+u:"",method:"GET",credentials:n})},sendChatMessage:function(e){var t=e.id,n=e.content,o=e.mediaId,r=void 0===o?null:o,i=e.idempotencyKey,s=e.credentials,a={content:n};r&&(a.media_id=r);var u={};return i&&(u["idempotency-key"]=i),Ae({url:be(t),method:"POST",payload:a,credentials:s,headers:u})},readChat:function(e){var t=e.id,n=e.lastReadId,o=e.credentials;return Ae({url:ye(t),method:"POST",payload:{last_read_id:n},credentials:o})},deleteChatMessage:function(e){var t=e.chatId,n=e.messageId,o=e.credentials;return Ae({url:De(t,n),method:"DELETE",credentials:o})},setReportState:function(e){var t=e.id,n=e.state,o=e.credentials;return Fe("/api/pleroma/admin/reports",{headers:$($({},Oe(o)),{},{Accept:"application/json","Content-Type":"application/json"}),method:"PATCH",body:JSON.stringify({reports:[{id:t,state:n}]})}).then((function(e){if(e.status>=500)throw Error(e.statusText);return e.status>=400?e.json():e})).then((function(e){if(e.errors)throw Error(e.errors[0].message)}))},fetchUserInLists:function(e){var t=e.id,n=e.credentials,o=function(e){return"/api/v1/accounts/".concat(e,"/lists")}(t);return Fe(o,{headers:Oe(n)}).then((function(e){return e.json()}))},fetchAnnouncements:function(e){var t=e.credentials;return Ae({url:"/api/v1/announcements",credentials:t})},dismissAnnouncement:function(e){var t=e.id,n=e.credentials;return Ae({url:fe(t),credentials:n,method:"POST"})},postAnnouncement:function(e){var t=e.credentials,n=e.content,o=e.startsAt,r=e.endsAt,i=e.allDay;return Ae({url:"/api/v1/pleroma/admin/announcements",credentials:t,method:"POST",payload:Pe({content:n,startsAt:o,endsAt:r,allDay:i})})},editAnnouncement:function(e){var t=e.id,n=e.credentials,o=e.content,r=e.startsAt,i=e.endsAt,s=e.allDay;return Ae({url:ke(t),credentials:n,method:"PATCH",payload:Pe({content:o,startsAt:r,endsAt:i,allDay:s})})},deleteAnnouncement:function(e){var t=e.id,n=e.credentials;return Ae({url:Ce(t),credentials:n,method:"DELETE"})},adminFetchAnnouncements:function(e){var t=e.credentials;return Ae({url:"/api/v1/pleroma/admin/announcements",credentials:t})},fetchInstanceDBConfig:function(e){var t=e.credentials;return Fe(Se,{headers:Oe(t)}).then((function(e){return e.ok?e.json():{error:e}}))},fetchInstanceConfigDescriptions:function(e){var t=e.credentials;return Fe("/api/pleroma/admin/config/descriptions",{headers:Oe(t)}).then((function(e){return e.ok?e.json():{error:e}}))},fetchAvailableFrontends:function(e){var t=e.credentials;return Fe("/api/pleroma/admin/frontends",{headers:Oe(t)}).then((function(e){return e.ok?e.json():{error:e}}))},pushInstanceDBConfig:function(e){var t=e.credentials,n=e.payload;return Fe(Se,{headers:$({Accept:"application/json","Content-Type":"application/json"},Oe(t)),method:"POST",body:JSON.stringify(n)}).then((function(e){return e.ok?e.json():{error:e}}))},installFrontend:function(e){var t=e.credentials,n=e.payload;return Fe("/api/pleroma/admin/frontends/install",{headers:$({Accept:"application/json","Content-Type":"application/json"},Oe(t)),method:"POST",body:JSON.stringify(n)}).then((function(e){return e.ok?e.json():{error:e}}))}}},37230:(e,t,n)=>{"use strict";n.d(t,{X:()=>i});var o=n(21804),r=n.n(o),i=function(e){return Object.keys(e).reduce((function(t,n){return t[r()(n)]=e[n],t}),{})}},21865:(e,t,n)=>{"use strict";n.d(t,{CO:()=>c,Rx:()=>h,Tj:()=>m,_I:()=>v,a4:()=>g,aj:()=>p,ov:()=>l,pP:()=>b,uu:()=>w,wK:()=>f});var o=n(4942),r=n(29439),i=n(71002),s=n(97332);function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function u(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var c=function(e,t,n){if(null!=e){if("#"===e[0]||"transparent"===e)return e;if("object"===(0,i.Z)(e)){var o=e;e=o.r,t=o.g,n=o.b}var s=[e,t,n].map((function(e){return(e=(e=Math.ceil(e))<0?0:e)>255?255:e})),a=(0,r.Z)(s,3);return e=a[0],t=a[1],n=a[2],"#".concat(((1<<24)+(e<<16)+(t<<8)+n).toString(16).slice(1))}},l=function(e){var t=function(e){return"rgb".split("").reduce((function(t,n){return t[n]=function(e){var t=e/255;return t<.03928?t/12.92:Math.pow((t+.055)/1.055,2.4)}(e[n]),t}),{})}(e);return.2126*t.r+.7152*t.g+.0722*t.b},d=function(e,t){var n=l(e),o=l(t),i=n>o?[n,o]:[o,n],s=(0,r.Z)(i,2);return(s[0]+.05)/(s[1]+.05)},p=function(e,t,n){return d(h(n,t),e)},m=function(e,t,n){return 1===t||void 0===t?e:"rgb".split("").reduce((function(o,r){return o[r]=e[r]*t+n[r]*(1-t),o}),{})},h=function(e,t){return t.reduce((function(e,t){var n=(0,r.Z)(t,2),o=n[0],i=n[1];return m(o,i,e)}),e)},f=function(e){var t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return t?{r:parseInt(t[1],16),g:parseInt(t[2],16),b:parseInt(t[3],16)}:null},g=function(e,t){return"rgb".split("").reduce((function(n,o){return n[o]=(e[o]+t[o])/2,n}),{})},v=function(e){return"rgba(".concat(Math.floor(e.r),", ").concat(Math.floor(e.g),", ").concat(Math.floor(e.b),", ").concat(e.a,")")},w=function(e,t,n){if(d(e,t)<4.5){var o=void 0!==t.a?{a:t.a}:{},r=Object.assign(o,(0,s.Xp)(t).rgb);return!n&&d(e,r)<4.5?(0,s.wo)(e,t).rgb:r}return t},b=function(e,t){var n={};if("object"===(0,i.Z)(e))n=e;else if("string"==typeof e){if(!e.startsWith("#"))return e;n=f(e)}return v(u(u({},n),{},{a:t}))}},13562:(e,t,n)=>{"use strict";n.d(t,{g:()=>i});var o=n(23560),r=n.n(o),i=function(e){return function(e){return r()(e)?e.options:e}(e).props}},27483:(e,t,n)=>{"use strict";n.d(t,{GV:()=>l,_F:()=>d,cC:()=>p,dX:()=>m,x4:()=>s});var o=1e3,r=6e4,i=36e5,s=24*i,a=7*s,u=30*s,c=365.25*s,l=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;"string"==typeof e&&(e=Date.parse(e));var n=Date.now()>e?Math.floor:Math.ceil,l=Math.abs(Date.now()-e),d={num:n(l/c),key:"time.unit.years"};return l<t*o?(d.num=0,d.key="time.now"):l<r?(d.num=n(l/o),d.key="time.unit.seconds"):l<i?(d.num=n(l/r),d.key="time.unit.minutes"):l<s?(d.num=n(l/i),d.key="time.unit.hours"):l<a?(d.num=n(l/s),d.key="time.unit.days"):l<u?(d.num=n(l/a),d.key="time.unit.weeks"):l<c&&(d.num=n(l/u),d.key="time.unit.months"),d},d=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=l(e,t);return n.key+="_short",n},p=function(e,t){switch(e){case"minutes":return.001*t*r;case"hours":return.001*t*i;case"days":return.001*t*s}},m=function(e,t){switch(e){case"minutes":return 1e3*t/r;case"hours":return 1e3*t/i;case"days":return 1e3*t/s}}},64689:(e,t,n)=>{"use strict";n.d(t,{w:()=>o});var o=function(e,t){if("Notification"in window&&"granted"===window.Notification.permission&&!e.statuses.notifications.desktopNotificationSilence){var n=new window.Notification(t.title,t);setTimeout(n.close.bind(n),5e3)}}},27742:(e,t,n)=>{"use strict";n.d(t,{Nw:()=>w,P7:()=>h,UB:()=>y,Wn:()=>f,_J:()=>b,cO:()=>m,eM:()=>g,nL:()=>p});var o=n(4942),r=n(95573),i=n.n(r),s=n(28490),a=n.n(s),u=n(52230),c=n(35748);function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var p=function(e){var t={},n=Object.prototype.hasOwnProperty.call(e,"acct"),o=n&&!Object.prototype.hasOwnProperty.call(e,"avatar");if(t.inLists=null,t.id=String(e.id),t._original=e,n){if(t.screen_name=e.acct,t.fqn=e.fqn,t.statusnet_profile_url=e.url,o)return t;if(t.emoji=e.emojis,t.name=i()(e.display_name),t.name_html=t.name,t.name_unescaped=e.display_name,t.description=e.note,t.description_html=e.note,t.fields=e.fields,t.fields_html=e.fields.map((function(e){return{name:i()(e.name),value:e.value}})),t.fields_text=e.fields.map((function(e){return{name:unescape(e.name.replace(/<[^>]*>/g,"")),value:unescape(e.value.replace(/<[^>]*>/g,""))}})),t.profile_image_url=e.avatar,t.profile_image_url_original=e.avatar,t.cover_photo=e.header,t.friends_count=e.following_count,t.bot=e.bot,e.pleroma){e.pleroma.settings_store&&(t.storage=e.pleroma.settings_store["pleroma-fe"]);var r=e.pleroma.relationship;t.background_image=e.pleroma.background_image,t.favicon=e.pleroma.favicon,t.token=e.pleroma.chat_token,r&&(t.relationship=r),t.allow_following_move=e.pleroma.allow_following_move,t.hide_follows=e.pleroma.hide_follows,t.hide_followers=e.pleroma.hide_followers,t.hide_follows_count=e.pleroma.hide_follows_count,t.hide_followers_count=e.pleroma.hide_followers_count,t.rights={moderator:e.pleroma.is_moderator,admin:e.pleroma.is_admin},t.rights.admin?t.role="admin":t.rights.moderator?t.role="moderator":t.role="member",t.birthday=e.pleroma.birthday,e.pleroma.privileges?t.privileges=e.pleroma.privileges:e.pleroma.is_admin?t.privileges=["users_read","users_manage_invites","users_manage_activation_state","users_manage_tags","users_manage_credentials","users_delete","messages_read","messages_delete","instances_delete","reports_manage_reports","moderation_log_read","announcements_manage_announcements","emoji_manage_emoji","statistics_read"]:e.pleroma.is_moderator?t.privileges=["messages_delete","reports_manage_reports"]:t.privileges=[]}e.source&&(t.description=e.source.note,t.default_scope=e.source.privacy,t.fields=e.source.fields,e.source.pleroma&&(t.no_rich_text=e.source.pleroma.no_rich_text,t.show_role=e.source.pleroma.show_role,t.discoverable=e.source.pleroma.discoverable,t.show_birthday=e.pleroma.show_birthday)),t.is_local=!t.screen_name.includes("@")}else t.screen_name=e.screen_name,t.name=e.name,t.name_html=e.name_html,t.description=e.description,t.description_html=e.description_html,t.profile_image_url=e.profile_image_url,t.profile_image_url_original=e.profile_image_url_original,t.cover_photo=e.cover_photo,t.friends_count=e.friends_count,t.statusnet_profile_url=e.statusnet_profile_url,t.is_local=e.is_local,t.role=e.role,t.show_role=e.show_role,e.rights&&(t.rights={moderator:e.rights.delete_others_notice,admin:e.rights.admin}),t.no_rich_text=e.no_rich_text,t.default_scope=e.default_scope,t.hide_follows=e.hide_follows,t.hide_followers=e.hide_followers,t.hide_follows_count=e.hide_follows_count,t.hide_followers_count=e.hide_followers_count,t.background_image=e.background_image,t.token=e.token,t.relationship={muting:e.muted,blocking:e.statusnet_blocking,followed_by:e.follows_you,following:e.following};if(t.created_at=new Date(e.created_at),t.locked=e.locked,t.followers_count=e.followers_count,t.statuses_count=e.statuses_count,e.pleroma&&(t.follow_request_count=e.pleroma.follow_request_count,t.tags=e.pleroma.tags,t.deactivated=void 0!==e.pleroma.is_active?!e.pleroma.is_active:e.pleroma.deactivated,t.notification_settings=e.pleroma.notification_settings,t.unread_chat_count=e.pleroma.unread_chat_count),t.tags=t.tags||[],t.rights=t.rights||{},t.notification_settings=t.notification_settings||{},t.screen_name_ui=t.screen_name,t.screen_name&&t.screen_name.includes("@")){var s=t.screen_name.split("@"),a=c.ZP.toUnicode(s[1]);a!==s[1]?(t.screen_name_ui_contains_non_ascii=!0,t.screen_name_ui=[s[0],a].join("@")):t.screen_name_ui_contains_non_ascii=!1}return t},m=function(e){var t={};return Object.prototype.hasOwnProperty.call(e,"oembed")?t.mimetype=e.mimetype:(t.mimetype=e.pleroma?e.pleroma.mime_type:e.type,t.meta=e.meta,t.id=e.id),t.url=e.url,t.large_thumb_url=e.preview_url,t.description=e.description,t},h=function(e){var t={};return t.text=e.text,t.spoiler_text=e.spoiler_text,t.content_type=e.content_type,t},f=function e(t){var n={},o=Object.prototype.hasOwnProperty.call(t,"account");if(o){if(n.favorited=t.favourited,n.fave_num=t.favourites_count,n.repeated=t.reblogged,n.repeat_num=t.reblogs_count,n.bookmarked=t.bookmarked,n.type=t.reblog?"retweet":"status",n.nsfw=t.sensitive,n.raw_html=t.content,n.emojis=t.emojis,n.tags=t.tags,n.edited_at=t.edited_at,t.pleroma){var r=t.pleroma;n.text=r.content?t.pleroma.content["text/plain"]:t.content,n.summary=r.spoiler_text?t.pleroma.spoiler_text["text/plain"]:t.spoiler_text,n.statusnet_conversation_id=t.pleroma.conversation_id,n.is_local=r.local,n.in_reply_to_screen_name=t.pleroma.in_reply_to_account_acct,n.thread_muted=r.thread_muted,n.emoji_reactions=r.emoji_reactions,n.parent_visible=void 0===r.parent_visible||r.parent_visible,n.quote=r.quote?e(r.quote):void 0,n.quote_id=r.quote_id?r.quote_id:n.quote?n.quote.id:void 0,n.quote_url=r.quote_url,n.quote_visible=r.quote_visible}else n.text=t.content,n.summary=t.spoiler_text;n.in_reply_to_status_id=t.in_reply_to_id,n.in_reply_to_user_id=t.in_reply_to_account_id,n.replies_count=t.replies_count,"retweet"===n.type&&(n.retweeted_status=e(t.reblog)),n.summary_raw_html=i()(t.spoiler_text),n.external_url=t.url,n.poll=t.poll,n.poll&&(n.poll.options=(n.poll.options||[]).map((function(e){return d(d({},e),{},{title_html:i()(e.title)})}))),n.pinned=t.pinned,n.muted=t.muted}else n.favorited=t.favorited,n.fave_num=t.fave_num,n.repeated=t.repeated,n.repeat_num=t.repeat_num,n.type=function(e){return e.is_post_verb?"status":e.retweeted_status?"retweet":"string"==typeof e.uri&&e.uri.match(/(fave|objectType=Favourite)/)||"string"==typeof e.text&&e.text.match(/favorited/)?"favorite":e.text.match(/deleted notice {{tag/)||e.qvitter_delete_notice?"deletion":e.text.match(/started following/)||"follow"===e.activity_type?"follow":"unknown"}(t),void 0===t.nsfw?(n.nsfw=v(t),t.retweeted_status&&(n.nsfw=t.retweeted_status.nsfw)):n.nsfw=t.nsfw,n.raw_html=t.statusnet_html,n.text=t.text,n.in_reply_to_status_id=t.in_reply_to_status_id,n.in_reply_to_user_id=t.in_reply_to_user_id,n.in_reply_to_screen_name=t.in_reply_to_screen_name,n.statusnet_conversation_id=t.statusnet_conversation_id,"retweet"===n.type&&(n.retweeted_status=e(t.retweeted_status)),n.summary=t.summary,n.summary_html=t.summary_html,n.external_url=t.external_url,n.is_local=t.is_local;n.id=String(t.id),n.visibility=t.visibility,n.card=t.card,n.created_at=new Date(t.created_at),n.in_reply_to_status_id=n.in_reply_to_status_id?String(n.in_reply_to_status_id):null,n.in_reply_to_user_id=n.in_reply_to_user_id?String(n.in_reply_to_user_id):null,n.user=p(o?t.account:t.user),n.attentions=((o?t.mentions:t.attentions)||[]).map(p),n.attachments=((o?t.media_attachments:t.attachments)||[]).map(m);var s=o?t.reblog:t.retweeted_status;return s&&(n.retweeted_status=e(s)),n.favoritedBy=[],n.rebloggedBy=[],Object.prototype.hasOwnProperty.call(t,"originalStatus")&&Object.assign(n,t.originalStatus),n},g=function(e){var t={};if(Object.prototype.hasOwnProperty.call(e,"ntype")){var n=f(e.notice);t.type=e.ntype,t.seen=Boolean(e.is_seen),t.status="like"===t.type?f(e.notice.favorited_status):n,t.action=n,t.from_profile="pleroma:chat_mention"===t.type?p(e.account):p(e.from_profile)}else t.type={favourite:"like",reblog:"repeat"}[e.type]||e.type,t.seen=e.pleroma.is_seen,t.status=(0,u.Gr)(t.type)?f(e.status):null,t.action=t.status,t.target="move"!==t.type?null:p(e.target),t.from_profile=p(e.account),t.emoji=e.emoji,t.emoji_url=e.emoji_url,e.report&&(t.report=e.report,t.report.content=e.report.content,t.report.acct=p(e.report.account),t.report.actor=p(e.report.actor),t.report.statuses=e.report.statuses.map(f));return t.created_at=new Date(e.created_at),t.id=parseInt(e.id),t},v=function(e){return(e.tags||[]).includes("nsfw")||!!(e.text||"").match(/#nsfw/i)},w=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.flakeId,o=a()(e);if(o){var r=o.next.max_id,i=o.prev.min_id;return{maxId:n?r:parseInt(r,10),minId:n?i:parseInt(i,10)}}},b=function(e){var t={};return t.id=e.id,t.account=p(e.account),t.unread=e.unread,t.lastMessage=y(e.last_message),t.updated_at=new Date(e.updated_at),t},y=function(e){if(e){if(e.isNormalized)return e;var t=e;return t.id=e.id,t.created_at=new Date(e.created_at),t.chat_id=e.chat_id,t.emojis=e.emojis,t.content=e.content,e.attachment?t.attachments=[m(e.attachment)]:t.attachments=[],t.pending=!!e.pending,t.error=!1,t.idempotency_key=e.idempotency_key,t.isNormalized=!0,t}}},49753:(e,t,n)=>{"use strict";var o,r,i,s,a;n.d(t,{Z:()=>u});const u=(o=[],r=128,i=128,s=function(e){return e.complete&&0!==e.naturalHeight},{initFaviconService:function(){document.querySelectorAll('link[rel="icon"]').forEach((function(e){if(e){var t=document.createElement("canvas");t.width=r,t.height=i;var n=new Image;n.crossOrigin="anonymous",n.src=e.href;var s=t.getContext("2d");o.push({favcanvas:t,favimg:n,favcontext:s,favicon:e})}}))},clearFaviconBadge:a=function(){0!==o.length&&o.forEach((function(e){var t=e.favimg,n=e.favcanvas,o=e.favcontext,a=e.favicon;t&&o&&a&&(o.clearRect(0,0,r,i),s(t)&&o.drawImage(t,0,0,t.width,t.height,0,0,r,i),a.href=n.toDataURL("image/png"))}))},drawFaviconBadge:function(){0!==o.length&&(a(),o.forEach((function(e){var t=e.favimg,n=e.favcanvas,o=e.favcontext,a=e.favicon;if(t&&o&&o){var u=getComputedStyle(document.body),c="".concat(u.getPropertyValue("--badgeNotification")||"rgb(240, 100, 100)");s(t)&&o.drawImage(t,0,0,t.width,t.height,0,0,r,i),o.fillStyle=c,o.beginPath(),o.arc(96,32,32,0,2*Math.PI,!1),o.fill(),a.href=n.toDataURL("image/png")}})))}})},65079:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});const o={fileSizeFormat:function(e){var t=["B","KiB","MiB","GiB","TiB"],n=e;if(n<1)return n+" "+t[0];var o=Math.min(Math.floor(Math.log(n)/Math.log(1024)),t.length-1);return{num:n=1*(n/Math.pow(1024,o)).toFixed(2),unit:t[o]}}}},58394:(e,t,n)=>{"use strict";n.d(t,{ZP:()=>i,iL:()=>r});var o=function(e){return e.match(/flash/)?"flash":e.match(/text\/html/)?"html":e.match(/image/)?"image":e.match(/video/)?"video":e.match(/audio/)?"audio":"unknown"},r=function(e){return e.match(/\.(png|jpe?g|gif|webp|avif)$/)?"image":e.match(/\.(ogv|mp4|webm|mov)$/)?"video":e.match(/\.(it|s3m|mod|umx|mp3|aac|m4a|flac|alac|ogg|oga|opus|wav|ape|midi?)$/)?"audio":"unknown"};const i={fileType:o,fileTypeExt:r,fileMatchesSomeType:function(e,t){return e.some((function(e){return o(t.mimetype)===e}))}}},39776:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var o=n(35161),r=n.n(o),i=n(72617),s=n(2900),a={ja_easy:"ja",zh_Hant:"zh-HANT",zh:"zh-Hans"},u=function(e){return a[e]||e},c=function(e){return u(e).replace("_","-")},l=function(e){var t={ja_easy:"やさしいにほんご","nan-TW":"臺語(閩南語)",zh:"简体中文",zh_Hant:"繁體中文"}[e]||s.Z.getNativeName(e),n=u(e);return t.charAt(0).toLocaleUpperCase(n)+t.slice(1)},d=r()(i.Z.languages,(function(e){return{code:e,name:l(e)}})).sort((function(e,t){return e.name.localeCompare(t.name)}));const p={internalToBrowserLocale:u,internalToBackendLocale:c,internalToBackendLocaleMulti:function(e){return(Array.isArray(e)?e:[e]).map(c).join(",")},languages:d,getLanguageName:l}},52230:(e,t,n)=>{"use strict";n.d(t,{Bt:()=>d,G2:()=>w,Gr:()=>h,Km:()=>b,nJ:()=>v,nU:()=>f});var o=n(64721),r=n.n(o),i=n(89734),s=n.n(i),a=n(63105),u=n.n(a),c=n(67828),l=n(64689),d=function(e){return e.state.statuses.notifications.data},p=function(e){var t=e.rootState||e.state;return[t.config.notificationVisibility.likes&&"like",t.config.notificationVisibility.mentions&&"mention",t.config.notificationVisibility.repeats&&"repeat",t.config.notificationVisibility.follows&&"follow",t.config.notificationVisibility.followRequest&&"follow_request",t.config.notificationVisibility.moves&&"move",t.config.notificationVisibility.emojiReactions&&"pleroma:emoji_reaction",t.config.notificationVisibility.reports&&"pleroma:report",t.config.notificationVisibility.polls&&"poll"].filter((function(e){return e}))},m=["like","mention","repeat","pleroma:emoji_reaction","poll"],h=function(e){return r()(m,e)},f=function(e){return!(h(e.type)&&!e.status)},g=function(e,t){var n=Number(e.id),o=Number(t.id),r=!Number.isNaN(n),i=!Number.isNaN(o);return r&&i?n>o?-1:1:r&&!i?1:!r&&i||e.id>t.id?-1:1},v=function(e,t){var n=e.rootState||e.state;if(!t.seen&&p(e).includes(t.type)&&("mention"!==t.type||!function(e,t){if(t.status)return t.status.muted||(0,c.u)(t.status,e.rootGetters.mergedConfig.muteWords).length>0}(e,t))){var o=y(t,e.rootGetters.i18n);(0,l.w)(n,o)}},w=function(e,t){var n=d(e).map((function(e){return e})).sort(g);return(n=s()(n,"seen")).filter((function(n){return(t||p(e)).includes(n.type)}))},b=function(e){return u()(w(e),(function(e){return!e.seen}))},y=function(e,t){var n,o={tag:e.id},r=e.status,i=e.from_profile.name;switch(o.title=i,o.icon=e.from_profile.profile_image_url,e.type){case"like":n="favorited_you";break;case"repeat":n="repeated_you";break;case"follow":n="followed_you";break;case"move":n="migrated_to";break;case"follow_request":n="follow_request";break;case"pleroma:report":n="submitted_report";break;case"poll":n="poll_ended"}return"pleroma:emoji_reaction"===e.type?o.body=t.t("notifications.reacted_with",[e.emoji]):n?o.body=t.t("notifications."+n):h(e.type)&&(o.body=e.status.text),r&&r.attachments&&r.attachments.length>0&&!r.nsfw&&r.attachments[0].mimetype.startsWith("image/")&&(o.image=r.attachments[0].url),o}},15568:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});var o=n(93433),r=n(77776),i=n(22626),s=["mention","favourite","reblog","follow","move","pleroma:emoji_reaction","pleroma:report"],a=function(e){var t=e.store,n=e.credentials,r=e.older,i=void 0!==r&&r,a=e.since,c={credentials:n},l=t.getters,d=(t.rootState||t.state).statuses.notifications,p=l.mergedConfig.hideMutedPosts;if(c.includeTypes=s,c.withMuted=!p,c.timeline="notifications",i)return d.minId!==Number.POSITIVE_INFINITY&&(c.until=d.minId),u({store:t,args:c,older:i});void 0===a&&d.maxId!==Number.POSITIVE_INFINITY?c.since=d.maxId:null!==a&&(c.since=a);var m=u({store:t,args:c,older:i}),h=d.data,f=h.filter((function(e){return e.seen})).map((function(e){return e.id}));return h.length-f.length>0&&f.length>0&&(c.since=Math.max.apply(Math,(0,o.Z)(f)),u({store:t,args:c,older:i})),m},u=function(e){var t=e.store,n=e.args,o=e.older;return r.ZP.fetchTimeline(n).then((function(e){if(e.errors)throw new Error("".concat(e.status," ").concat(e.statusText));var n=e.data;return function(e){var t=e.notifications,n=e.older;e.store.dispatch("addNewNotifications",{notifications:t,older:n})}({store:t,notifications:n,older:o}),n})).catch((function(e){t.dispatch("pushGlobalNotice",{level:"error",messageKey:"notifications.error",messageArgs:[e.message],timeout:5e3}),console.error(e)}))};const c={fetchAndUpdate:a,startFetching:function(e){var t=e.credentials,n=e.store;setTimeout((function(){return n.dispatch("setNotificationsSilence",!1)}),1e4);var o=function(){return a({credentials:t,store:n})};return o(),(0,i.F)(o,1e4)}}},67952:(e,t,n)=>{"use strict";n.d(t,{y:()=>o});var o=function e(t,n){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=o.top,s=void 0===i?0:i,a=o.left,u=void 0===a?0:a,c=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],l={top:s+t.offsetTop,left:u+t.offsetLeft};if(!c&&t!==window){var d=r(t),p=d.topPadding,m=d.leftPadding;l.top+=c?0:p,l.left+=c?0:m}if(t.offsetParent&&"sticky"!==window.getComputedStyle(t.offsetParent).position&&(n===window||n.contains(t.offsetParent)||n===t.offsetParent))return e(t.offsetParent,n,l,!1);if(n!==window){var h=r(n),f=h.topPadding,g=h.leftPadding;l.top+=f,l.left+=g}return l},r=function(e){var t=window.getComputedStyle(e)["padding-top"],n=Number(t.substring(0,t.length-2)),o=window.getComputedStyle(e)["padding-left"];return{topPadding:n,leftPadding:Number(o.substring(0,o.length-2))}}},22626:(e,t,n)=>{"use strict";n.d(t,{F:()=>o});var o=function(e,t){var n=!1,o=null;return o=window.setTimeout((function r(){var i=e();i&&i.finally?i.finally((function(){n||(o=window.setTimeout(r,t))})):console.warn("promiseInterval: promise call did not return a promise, stopping interval.")}),t),{stop:function(){n=!0,window.clearTimeout(o)}}}},67828:(e,t,n)=>{"use strict";n.d(t,{u:()=>i});var o=n(63105),r=n.n(o),i=function(e,t){var n=e.text.toLowerCase(),o=e.summary.toLowerCase();return r()(t,(function(e){return n.includes(e.toLowerCase())||o.includes(e.toLowerCase())}))}},7257:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var o=n(35161),r=n.n(o),i=n(77776);const s={postStatus:function(e){var t=e.store,n=e.status,o=e.spoilerText,s=e.visibility,a=e.sensitive,u=e.poll,c=e.media,l=void 0===c?[]:c,d=e.inReplyToStatusId,p=void 0===d?void 0:d,m=e.quoteId,h=void 0===m?void 0:m,f=e.contentType,g=void 0===f?"text/plain":f,v=e.preview,w=void 0!==v&&v,b=e.idempotencyKey,y=void 0===b?"":b,D=r()(l,"id");return i.ZP.postStatus({credentials:t.state.users.currentUser.credentials,status:n,spoilerText:o,visibility:s,sensitive:a,mediaIds:D,inReplyToStatusId:p,quoteId:h,contentType:g,poll:u,preview:w,idempotencyKey:y}).then((function(e){return e.error||w||t.dispatch("addNewStatuses",{statuses:[e],timeline:"friends",showImmediately:!0,noIdUpdate:!0}),e})).catch((function(e){return{error:e.message}}))},editStatus:function(e){var t=e.store,n=e.statusId,o=e.status,s=e.spoilerText,a=e.sensitive,u=e.poll,c=e.media,l=void 0===c?[]:c,d=e.contentType,p=void 0===d?"text/plain":d,m=r()(l,"id");return i.ZP.editStatus({id:n,credentials:t.state.users.currentUser.credentials,status:o,spoilerText:s,sensitive:a,poll:u,mediaIds:m,contentType:p}).then((function(e){return e.error||t.dispatch("addNewStatuses",{statuses:[e],timeline:"friends",showImmediately:!0,noIdUpdate:!0}),e})).catch((function(e){return console.error("Error editing status",e),{error:e.message}}))},uploadMedia:function(e){var t=e.store,n=e.formData,o=t.state.users.currentUser.credentials;return i.ZP.uploadMedia({credentials:o,formData:n})},setMediaDescription:function(e){var t=e.store,n=e.id,o=e.description,r=t.state.users.currentUser.credentials;return i.ZP.setMediaDescription({credentials:r,id:n,description:o})}}},77394:(e,t,n)=>{"use strict";n.d(t,{H2:()=>F,I3:()=>I,LP:()=>b,Ot:()=>v,RC:()=>E,_v:()=>m,bY:()=>x,dE:()=>z,gm:()=>A,l9:()=>P,lD:()=>y,m:()=>D,mg:()=>g,vp:()=>j});var o=n(71002),r=n(93433),i=n(4942),s=n(29439),a=n(97332),u=n(21865),c=n(40454),l=n(85565);function d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function p(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?d(Object(n),!0).forEach((function(t){(0,i.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):d(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var m=function(e){var t=O(e).rules,n=document.head,o=document.body;o.classList.add("hidden");var r=document.createElement("style");n.appendChild(r);var i=r.sheet;i.toString(),i.insertRule(":root { ".concat(t.radii," }"),"index-max"),i.insertRule(":root { ".concat(t.colors," }"),"index-max"),i.insertRule(":root { ".concat(t.shadows," }"),"index-max"),i.insertRule(":root { ".concat(t.fonts," }"),"index-max"),o.classList.remove("hidden")},h=function(e){return{sidebarColumnWidth:e.sidebarColumnWidth,contentColumnWidth:e.contentColumnWidth,notifsColumnWidth:e.notifsColumnWidth,emojiReactionsScale:e.emojiReactionsScale}},f=h(l.W2),g=function(e){var t=h(e);if(t!==f){var n=document.head,o=document.body;o.classList.add("hidden");var r=Object.entries(t).filter((function(e){var t=(0,s.Z)(e,2);return t[0],t[1]})).map((function(e){var t=(0,s.Z)(e,2),n=t[0],o=t[1];return"--".concat(n,": ").concat(o)})).join(";"),i=document.createElement("style");n.appendChild(i);var a=i.sheet;a.toString(),a.insertRule(":root { ".concat(r," }"),"index-max"),o.classList.remove("hidden")}},v=function(e,t){return 0===e.length?"none":e.filter((function(e){return t?e.inset:e})).map((function(e){return[e.x,e.y,e.blur,e.spread].map((function(e){return e+"px"})).concat([(0,u.pP)(e.color,e.alpha),e.inset?"inset":""]).join(" ")})).join(", ")},w=function(e){return 0===e.length?"none":e.filter((function(e){return!e.inset&&0===Number(e.spread)})).map((function(e){return[e.x,e.y,e.blur/2].map((function(e){return e+"px"})).concat([(0,u.pP)(e.color,e.alpha)]).join(" ")})).map((function(e){return"drop-shadow(".concat(e,")")})).join(" ")},b=function(e){var t=e.themeEngineVersion?e.colors||e:z(e.colors||e),n=(0,c.EC)(t,e.opacity||{}),o=n.colors,r=n.opacity,i=Object.entries(o).reduce((function(e,t){var n=(0,s.Z)(t,2),o=n[0],r=n[1];return r?(e.solid[o]=(0,u.CO)(r),e.complete[o]=void 0===r.a?(0,u.CO)(r):(0,u._I)(r),e):e}),{complete:{},solid:{}});return{rules:{colors:Object.entries(i.complete).filter((function(e){var t=(0,s.Z)(e,2);return t[0],t[1]})).map((function(e){var t=(0,s.Z)(e,2),n=t[0],o=t[1];return"--".concat(n,": ").concat(o)})).join(";")},theme:{colors:i.solid,opacity:r}}},y=function(e){var t=e.radii||{};void 0!==e.btnRadius&&(t=Object.entries(e).filter((function(e){var t=(0,s.Z)(e,2),n=t[0];return t[1],n.endsWith("Radius")})).reduce((function(e,t){return e[t[0].split("Radius")[0]]=t[1],e}),{}));var n=Object.entries(t).filter((function(e){var t=(0,s.Z)(e,2);return t[0],t[1]})).reduce((function(e,t){var n=(0,s.Z)(t,2),o=n[0],r=n[1];return e[o]=r,e}),{btn:4,input:4,checkbox:2,panel:10,avatar:5,avatarAlt:50,tooltip:2,attachment:5,chatMessage:t.panel});return{rules:{radii:Object.entries(n).filter((function(e){var t=(0,s.Z)(e,2);return t[0],t[1]})).map((function(e){var t=(0,s.Z)(e,2),n=t[0],o=t[1];return"--".concat(n,"Radius: ").concat(o,"px")})).join(";")},theme:{radii:n}}},D=function(e){var t=Object.entries(e.fonts||{}).filter((function(e){var t=(0,s.Z)(e,2);return t[0],t[1]})).reduce((function(e,t){var n=(0,s.Z)(t,2),o=n[0],r=n[1];return e[o]=Object.entries(r).filter((function(e){var t=(0,s.Z)(e,2);return t[0],t[1]})).reduce((function(e,t){var n=(0,s.Z)(t,2),o=n[0],r=n[1];return e[o]=r,e}),e[o]),e}),{interface:{family:"sans-serif"},input:{family:"inherit"},post:{family:"inherit"},postCode:{family:"monospace"}});return{rules:{fonts:Object.entries(t).filter((function(e){var t=(0,s.Z)(e,2);return t[0],t[1]})).map((function(e){var t=(0,s.Z)(e,2),n=t[0],o=t[1];return"--".concat(n,"Font: ").concat(o.family)})).join(";")},theme:{fonts:t}}},_=function(e,t){return{x:0,y:e?1:-1,blur:0,spread:0,color:t?"#000000":"#FFFFFF",alpha:.2,inset:!0}},k=[_(!0,!1),_(!1,!0)],C=[_(!0,!0),_(!1,!1)],S={x:0,y:0,blur:4,spread:0,color:"--faint",alpha:1},j={panel:[{x:1,y:1,blur:4,spread:0,color:"#000000",alpha:.6}],topBar:[{x:0,y:0,blur:4,spread:0,color:"#000000",alpha:.6}],popup:[{x:2,y:2,blur:3,spread:0,color:"#000000",alpha:.5}],avatar:[{x:0,y:1,blur:8,spread:0,color:"#000000",alpha:.7}],avatarStatus:[],panelHeader:[],button:[{x:0,y:0,blur:2,spread:0,color:"#000000",alpha:1}].concat(k),buttonHover:[S].concat(k),buttonPressed:[S].concat(C),input:[].concat(C,[{x:0,y:0,blur:2,inset:!0,spread:0,color:"#000000",alpha:1}])},F=function(e,t){var n={button:"btn",panel:"bg",top:"topBar",popup:"popover",avatar:"bg",panelHeader:"panel",input:"input"},o=Object.fromEntries(Object.entries(e.shadows||{}).map((function(e){var t=(0,s.Z)(e,2);return[t[0],t[1].map((function(e){return p({color:"#000000"},e)}))]}))),l=o&&!e.themeEngineVersion?P(o,e.opacity):o||{},d=Object.entries(p(p({},j),l)).reduce((function(e,o){var l=(0,s.Z)(o,2),d=l[0],m=l[1],h=d.replace(/[A-Z].*$/,""),f=n[h],g=(0,u.ov)((0,a.OQ)(t[f]).rgb)<.5?1:-1,v=m.reduce((function(e,n){return[].concat((0,r.Z)(e),[p(p({},n),{},{color:(0,u.CO)((0,c.NI)(n.color,(function(e){return(0,a.OQ)(t[e]).rgb}),g))})])}),[]);return p(p({},e),{},(0,i.Z)({},d,v))}),{});return{rules:{shadows:Object.entries(d).map((function(e){var t=(0,s.Z)(e,2),n=t[0],o=t[1];return["--".concat(n,"Shadow: ").concat(v(o)),"--".concat(n,"ShadowFilter: ").concat(w(o)),"--".concat(n,"ShadowInset: ").concat(v(o,!0))].join(";")})).join(";")},theme:{shadows:d}}},A=function(e,t,n,o){return{rules:p(p(p(p({},n.rules),e.rules),t.rules),o.rules),theme:p(p(p(p({},n.theme),e.theme),t.theme),o.theme)}},O=function(e){var t=b(e);return A(t,y(e),F(e,t.theme.colors,t.mod),D(e))},E=function(){var e="no-store";return window.fetch("/static/styles.json",{cache:e}).then((function(e){return e.json()})).then((function(t){return Object.entries(t).map((function(t){var n=(0,s.Z)(t,2),r=n[0],i=n[1],a=null;return"object"===(0,o.Z)(i)?a=Promise.resolve(i):"string"==typeof i&&(a=window.fetch(i,{cache:e}).then((function(e){return e.json()})).catch((function(e){return console.error(e),null}))),[r,a]}))})).then((function(e){return e.reduce((function(e,t){var n=(0,s.Z)(t,2),o=n[0],r=n[1];return e[o]=r,e}),{})}))},z=function(e){return Object.entries(e).reduce((function(e,t){var n=(0,s.Z)(t,2),o=n[0],r=n[1];switch(o){case"lightBg":return p(p({},e),{},{highlight:r});case"btnText":return p(p({},e),["","Panel","TopBar"].reduce((function(e,t){return p(p({},e),{},(0,i.Z)({},"btn"+t+"Text",r))}),{}));default:return p(p({},e),{},(0,i.Z)({},o,r))}}),{})},P=function(e,t){return Object.entries(e).reduce((function(e,n){var o=(0,s.Z)(n,2),a=o[0],u=o[1].reduce((function(e,n){return[].concat((0,r.Z)(e),[p(p({},n),{},{alpha:(s=n,a=s.color,(void 0===a?"#000000":a).startsWith("--")?(o=n,i=o.color,t[(0,c.AV)(i.substring(2).split(",")[0])]||1):n.alpha)})]);var o,i,s,a}),[]);return p(p({},e),{},(0,i.Z)({},a,u))}),{})},I=function(e){return E().then((function(t){return t[e]?t[e]:t["pleroma-dark"]})).then((function(e){var t=Array.isArray(e),n=t?{}:e.theme;if(t){var o=(0,u.wK)(e[1]),r=(0,u.wK)(e[2]),i=(0,u.wK)(e[3]),s=(0,u.wK)(e[4]),a=(0,u.wK)(e[5]||"#FF0000"),c=(0,u.wK)(e[6]||"#00FF00"),l=(0,u.wK)(e[7]||"#0000FF"),d=(0,u.wK)(e[8]||"#E3FF00");n.colors={bg:o,fg:r,text:i,link:s,cRed:a,cBlue:l,cGreen:c,cOrange:d}}return{theme:n,source:e.source}}))},x=function(e){return I(e).then((function(e){return m(e.theme)}))}},44551:(e,t,n)=>{"use strict";n.d(t,{em:()=>a,k0:()=>i,wB:()=>s});var o=n(97332),r=n(21865),i={undelay:null,topBar:null,badge:null,profileTint:null,fg:null,bg:"underlay",highlight:"bg",panel:"bg",popover:"bg",selectedMenu:"popover",btn:"bg",btnPanel:"panel",btnTopBar:"topBar",input:"bg",inputPanel:"panel",inputTopBar:"topBar",alert:"bg",alertPanel:"panel",poll:"bg",chatBg:"underlay",chatMessage:"chatBg"},s={profileTint:.5,alert:.5,input:.5,faint:.5,underlay:.15,alertPopup:.95},a={bg:{depends:[],opacity:"bg",priority:1},wallpaper:{depends:["bg"],color:function(e,t){return(0,o.Xu)(-2*e,t).rgb}},fg:{depends:[],priority:1},text:{depends:[],layer:"bg",opacity:null,priority:1},underlay:{default:"#000000",opacity:"underlay"},link:{depends:["accent"],priority:1},accent:{depends:["link"],priority:1},faint:{depends:["text"],opacity:"faint"},faintLink:{depends:["link"],opacity:"faint"},postFaintLink:{depends:["postLink"],opacity:"faint"},cBlue:"#0000ff",cRed:"#FF0000",cGreen:"#00FF00",cOrange:"#E3FF00",profileBg:{depends:["bg"],color:function(e,t){return{r:Math.floor(.53*t.r),g:Math.floor(.56*t.g),b:Math.floor(.59*t.b)}}},profileTint:{depends:["bg"],layer:"profileTint",opacity:"profileTint"},highlight:{depends:["bg"],color:function(e,t){return(0,o.Xu)(5*e,t).rgb}},highlightLightText:{depends:["lightText"],layer:"highlight",textColor:!0},highlightPostLink:{depends:["postLink"],layer:"highlight",textColor:"preserve"},highlightFaintText:{depends:["faint"],layer:"highlight",textColor:!0},highlightFaintLink:{depends:["faintLink"],layer:"highlight",textColor:"preserve"},highlightPostFaintLink:{depends:["postFaintLink"],layer:"highlight",textColor:"preserve"},highlightText:{depends:["text"],layer:"highlight",textColor:!0},highlightLink:{depends:["link"],layer:"highlight",textColor:"preserve"},highlightIcon:{depends:["highlight","highlightText"],color:function(e,t,n){return(0,r.a4)(t,n)}},popover:{depends:["bg"],opacity:"popover"},popoverLightText:{depends:["lightText"],layer:"popover",textColor:!0},popoverPostLink:{depends:["postLink"],layer:"popover",textColor:"preserve"},popoverFaintText:{depends:["faint"],layer:"popover",textColor:!0},popoverFaintLink:{depends:["faintLink"],layer:"popover",textColor:"preserve"},popoverPostFaintLink:{depends:["postFaintLink"],layer:"popover",textColor:"preserve"},popoverText:{depends:["text"],layer:"popover",textColor:!0},popoverLink:{depends:["link"],layer:"popover",textColor:"preserve"},popoverIcon:{depends:["popover","popoverText"],color:function(e,t,n){return(0,r.a4)(t,n)}},selectedPost:"--highlight",selectedPostFaintText:{depends:["highlightFaintText"],layer:"highlight",variant:"selectedPost",textColor:!0},selectedPostLightText:{depends:["highlightLightText"],layer:"highlight",variant:"selectedPost",textColor:!0},selectedPostPostLink:{depends:["highlightPostLink"],layer:"highlight",variant:"selectedPost",textColor:"preserve"},selectedPostFaintLink:{depends:["highlightFaintLink"],layer:"highlight",variant:"selectedPost",textColor:"preserve"},selectedPostText:{depends:["highlightText"],layer:"highlight",variant:"selectedPost",textColor:!0},selectedPostLink:{depends:["highlightLink"],layer:"highlight",variant:"selectedPost",textColor:"preserve"},selectedPostIcon:{depends:["selectedPost","selectedPostText"],color:function(e,t,n){return(0,r.a4)(t,n)}},selectedMenu:{depends:["bg"],color:function(e,t){return(0,o.Xu)(5*e,t).rgb}},selectedMenuLightText:{depends:["highlightLightText"],layer:"selectedMenu",variant:"selectedMenu",textColor:!0},selectedMenuFaintText:{depends:["highlightFaintText"],layer:"selectedMenu",variant:"selectedMenu",textColor:!0},selectedMenuFaintLink:{depends:["highlightFaintLink"],layer:"selectedMenu",variant:"selectedMenu",textColor:"preserve"},selectedMenuText:{depends:["highlightText"],layer:"selectedMenu",variant:"selectedMenu",textColor:!0},selectedMenuLink:{depends:["highlightLink"],layer:"selectedMenu",variant:"selectedMenu",textColor:"preserve"},selectedMenuIcon:{depends:["selectedMenu","selectedMenuText"],color:function(e,t,n){return(0,r.a4)(t,n)}},selectedMenuPopover:{depends:["popover"],color:function(e,t){return(0,o.Xu)(5*e,t).rgb}},selectedMenuPopoverLightText:{depends:["selectedMenuLightText"],layer:"selectedMenuPopover",variant:"selectedMenuPopover",textColor:!0},selectedMenuPopoverFaintText:{depends:["selectedMenuFaintText"],layer:"selectedMenuPopover",variant:"selectedMenuPopover",textColor:!0},selectedMenuPopoverFaintLink:{depends:["selectedMenuFaintLink"],layer:"selectedMenuPopover",variant:"selectedMenuPopover",textColor:"preserve"},selectedMenuPopoverText:{depends:["selectedMenuText"],layer:"selectedMenuPopover",variant:"selectedMenuPopover",textColor:!0},selectedMenuPopoverLink:{depends:["selectedMenuLink"],layer:"selectedMenuPopover",variant:"selectedMenuPopover",textColor:"preserve"},selectedMenuPopoverIcon:{depends:["selectedMenuPopover","selectedMenuText"],color:function(e,t,n){return(0,r.a4)(t,n)}},lightText:{depends:["text"],layer:"bg",textColor:"preserve",color:function(e,t){return(0,o.Xu)(20*e,t).rgb}},postLink:{depends:["link"],layer:"bg",textColor:"preserve"},postGreentext:{depends:["cGreen"],layer:"bg",textColor:"preserve"},postCyantext:{depends:["cBlue"],layer:"bg",textColor:"preserve"},border:{depends:["fg"],opacity:"border",color:function(e,t){return(0,o.Xu)(2*e,t).rgb}},poll:{depends:["accent","bg"],copacity:"poll",color:function(e,t,n){return(0,r.Tj)(t,.4,n)}},pollText:{depends:["text"],layer:"poll",textColor:!0},icon:{depends:["bg","text"],inheritsOpacity:!1,color:function(e,t,n){return(0,r.a4)(t,n)}},fgText:{depends:["text"],layer:"fg",textColor:!0},fgLink:{depends:["link"],layer:"fg",textColor:"preserve"},panel:{depends:["fg"],opacity:"panel"},panelText:{depends:["text"],layer:"panel",textColor:!0},panelFaint:{depends:["fgText"],layer:"panel",opacity:"faint",textColor:!0},panelLink:{depends:["fgLink"],layer:"panel",textColor:"preserve"},topBar:"--fg",topBarText:{depends:["fgText"],layer:"topBar",textColor:!0},topBarLink:{depends:["fgLink"],layer:"topBar",textColor:"preserve"},tab:{depends:["btn"]},tabText:{depends:["btnText"],layer:"btn",textColor:!0},tabActiveText:{depends:["text"],layer:"bg",textColor:!0},btn:{depends:["fg"],variant:"btn",opacity:"btn"},btnText:{depends:["fgText"],layer:"btn",textColor:!0},btnPanelText:{depends:["btnText"],layer:"btnPanel",variant:"btn",textColor:!0},btnTopBarText:{depends:["btnText"],layer:"btnTopBar",variant:"btn",textColor:!0},btnPressed:{depends:["btn"],layer:"btn"},btnPressedText:{depends:["btnText"],layer:"btn",variant:"btnPressed",textColor:!0},btnPressedPanel:{depends:["btnPressed"],layer:"btn"},btnPressedPanelText:{depends:["btnPanelText"],layer:"btnPanel",variant:"btnPressed",textColor:!0},btnPressedTopBar:{depends:["btnPressed"],layer:"btn"},btnPressedTopBarText:{depends:["btnTopBarText"],layer:"btnTopBar",variant:"btnPressed",textColor:!0},btnToggled:{depends:["btn"],layer:"btn",color:function(e,t){return(0,o.Xu)(20*e,t).rgb}},btnToggledText:{depends:["btnText"],layer:"btn",variant:"btnToggled",textColor:!0},btnToggledPanelText:{depends:["btnPanelText"],layer:"btnPanel",variant:"btnToggled",textColor:!0},btnToggledTopBarText:{depends:["btnTopBarText"],layer:"btnTopBar",variant:"btnToggled",textColor:!0},btnDisabled:{depends:["btn","bg"],color:function(e,t,n){return(0,r.Tj)(t,.25,n)}},btnDisabledText:{depends:["btnText","btnDisabled"],layer:"btn",variant:"btnDisabled",color:function(e,t,n){return(0,r.Tj)(t,.25,n)}},btnDisabledPanelText:{depends:["btnPanelText","btnDisabled"],layer:"btnPanel",variant:"btnDisabled",color:function(e,t,n){return(0,r.Tj)(t,.25,n)}},btnDisabledTopBarText:{depends:["btnTopBarText","btnDisabled"],layer:"btnTopBar",variant:"btnDisabled",color:function(e,t,n){return(0,r.Tj)(t,.25,n)}},input:{depends:["fg"],opacity:"input"},inputText:{depends:["text"],layer:"input",textColor:!0},inputPanelText:{depends:["panelText"],layer:"inputPanel",variant:"input",textColor:!0},inputTopbarText:{depends:["topBarText"],layer:"inputTopBar",variant:"input",textColor:!0},alertError:{depends:["cRed"],opacity:"alert"},alertErrorText:{depends:["text"],layer:"alert",variant:"alertError",textColor:!0},alertErrorPanelText:{depends:["panelText"],layer:"alertPanel",variant:"alertError",textColor:!0},alertWarning:{depends:["cOrange"],opacity:"alert"},alertWarningText:{depends:["text"],layer:"alert",variant:"alertWarning",textColor:!0},alertWarningPanelText:{depends:["panelText"],layer:"alertPanel",variant:"alertWarning",textColor:!0},alertSuccess:{depends:["cGreen"],opacity:"alert"},alertSuccessText:{depends:["text"],layer:"alert",variant:"alertSuccess",textColor:!0},alertSuccessPanelText:{depends:["panelText"],layer:"alertPanel",variant:"alertSuccess",textColor:!0},alertNeutral:{depends:["text"],opacity:"alert"},alertNeutralText:{depends:["text"],layer:"alert",variant:"alertNeutral",color:function(e,t){return(0,o.Xp)(t).rgb},textColor:!0},alertNeutralPanelText:{depends:["panelText"],layer:"alertPanel",variant:"alertNeutral",textColor:!0},alertPopupError:{depends:["alertError"],opacity:"alertPopup"},alertPopupErrorText:{depends:["alertErrorText"],layer:"popover",variant:"alertPopupError",textColor:!0},alertPopupWarning:{depends:["alertWarning"],opacity:"alertPopup"},alertPopupWarningText:{depends:["alertWarningText"],layer:"popover",variant:"alertPopupWarning",textColor:!0},alertPopupSuccess:{depends:["alertSuccess"],opacity:"alertPopup"},alertPopupSuccessText:{depends:["alertSuccessText"],layer:"popover",variant:"alertPopupSuccess",textColor:!0},alertPopupNeutral:{depends:["alertNeutral"],opacity:"alertPopup"},alertPopupNeutralText:{depends:["alertNeutralText"],layer:"popover",variant:"alertPopupNeutral",textColor:!0},badgeNotification:"--cRed",badgeNotificationText:{depends:["text","badgeNotification"],layer:"badge",variant:"badgeNotification",textColor:"bw"},badgeNeutral:"--cGreen",badgeNeutralText:{depends:["text","badgeNeutral"],layer:"badge",variant:"badgeNeutral",textColor:"bw"},chatBg:{depends:["bg"]},chatMessageIncomingBg:{depends:["chatBg"]},chatMessageIncomingText:{depends:["text"],layer:"chatMessage",variant:"chatMessageIncomingBg",textColor:!0},chatMessageIncomingLink:{depends:["link"],layer:"chatMessage",variant:"chatMessageIncomingBg",textColor:"preserve"},chatMessageIncomingBorder:{depends:["border"],opacity:"border",color:function(e,t){return(0,o.Xu)(2*e,t).rgb}},chatMessageOutgoingBg:{depends:["chatMessageIncomingBg"],color:function(e,t){return(0,o.Xu)(5*e,t).rgb}},chatMessageOutgoingText:{depends:["text"],layer:"chatMessage",variant:"chatMessageOutgoingBg",textColor:!0},chatMessageOutgoingLink:{depends:["link"],layer:"chatMessage",variant:"chatMessageOutgoingBg",textColor:"preserve"},chatMessageOutgoingBorder:{depends:["chatMessageOutgoingBg"],opacity:"border",color:function(e,t){return(0,o.Xu)(2*e,t).rgb}}}},40454:(e,t,n)=>{"use strict";n.d(t,{AQ:()=>y,AV:()=>v,EC:()=>_,NI:()=>D,we:()=>p,xb:()=>h});var o=n(4942),r=n(29439),i=n(71002),s=n(93433),a=n(97332),u=n(21865),c=n(44551);function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var p=3,m=function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:c.k0,n=[e],o=t[e];o;)n.unshift(o),o=t[o];return n},h=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e,n=arguments.length>2?arguments[2]:void 0,o=arguments.length>3?arguments[3]:void 0,r=arguments.length>4?arguments[4]:void 0;return m(e).map((function(i){return[i===e?o[t]:o[i],i===e?r[n]||1:r[i]]}))},f=function(e,t){var n=t[e];if("string"==typeof n&&n.startsWith("--"))return[n.substring(2)];if(null===n)return[];var o=n.depends,r=n.layer,i=n.variant,a=r?m(r).map((function(e){return e===r?i||r:e})):[];return Array.isArray(o)?[].concat((0,s.Z)(o),(0,s.Z)(a)):(0,s.Z)(a)},g=function(e){return"object"===(0,i.Z)(e)?e:{depends:e.startsWith("--")?[e.substring(2)]:[],default:e.startsWith("#")?e:void 0}},v=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:c.em,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:f,o=g(t[e]);if(null!==o.opacity){if(o.opacity)return o.opacity;var r=function o(r){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[e],a=n(r,t)[0];if(void 0!==a){var u=t[a];if(void 0!==u)return u.opacity||null===u?u.opacity:u.depends&&i.includes(a)?o(a,[].concat((0,s.Z)(i),[a])):null}};return o.depends?r(e):void 0}},w=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:c.em,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:f,o=g(t[e]);if(c.k0[e])return e;if(null!==o.layer){if(o.layer)return o.layer;var r=function o(r){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[e],a=n(r,t)[0];if(void 0!==a){var u=t[a];if(void 0!==u)return u.layer||null===u?u.layer:u.depends?o(u,[].concat((0,s.Z)(i),[a])):null}};return o.depends?r(e):void 0}},b=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:c.em,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:f,n=Object.keys(e),o=new Set(n),r=new Set,i=new Set,s=[].concat(n),a=[],u=function n(s){if(o.has(s))o.delete(s),r.add(s),t(s,e).forEach(n),r.delete(s),i.add(s),a.push(s);else if(r.has(s))console.debug("Cyclic depenency in topoSort, ignoring"),a.push(s);else if(!i.has(s))throw new Error("Unintended condition in topoSort!")};s.length>0;)u(s.pop());return a.map((function(e,t){return{data:e,index:t}})).sort((function(n,o){var r=n.data,i=n.index,s=o.data,a=o.index,u=t(r,e).length,c=t(s,e).length;return u===c||0!==c&&0!==u?i-a:0===u&&0!==c?-1:0===c&&0!==u?1:0})).map((function(e){return e.data}))}(Object.entries(c.em).sort((function(e,t){var n=(0,r.Z)(e,2),o=(n[0],n[1]),i=(0,r.Z)(t,2),s=(i[0],i[1]);return(o&&o.priority||0)-(s&&s.priority||0)})).reduce((function(e,t){var n=(0,r.Z)(t,2),i=n[0],s=n[1];return d(d({},e),{},(0,o.Z)({},i,s))}),{})),y=Object.entries(c.em).reduce((function(e,t){var n=(0,r.Z)(t,2),i=n[0],a=(n[1],v(i,c.em,f));return a?d(d({},e),{},(0,o.Z)({},a,{defaultValue:c.wB[a]||1,affectedSlots:[].concat((0,s.Z)(e[a]&&e[a].affectedSlots||[]),[i])})):e}),{}),D=function(e,t,n){if("string"!=typeof e||!e.startsWith("--"))return e;var o=null,i=e.split(/,/g).map((function(e){return e.trim()})),s=(0,r.Z)(i,2),u=s[0],c=s[1];return o=t(u.substring(2)),c&&(o=(0,a.Xu)(Number.parseFloat(c)*n,o).rgb),o},_=function(e,t){return b.reduce((function(n,r){var i,l=n.colors,p=n.opacity,m=e[r],b=g(c.em[r]),_=f(r,c.em),k=!!b.textColor,C=b.variant||b.layer;i=k?(0,u.Rx)(d({},l[_[0]]||(0,a.OQ)(e[r]||"#FF00FF").rgb),h(w(r)||"bg",C||"bg",v(C),l,p)):C&&C!==r?l[C]||(0,a.OQ)(e[C]).rgb:l.bg||(0,a.OQ)(e.bg);var S=(0,u.ov)(i)<.5?1:-1,j=null;if(m){var F=m;if("transparent"===F){var A=h(w(r),r,v(r)||r,l,p).slice(0,-1);F=d(d({},(0,u.Rx)((0,a.OQ)("#FF00FF").rgb,A)),{},{a:0})}else"string"==typeof m&&m.startsWith("--")?F=D(m,(function(t){return l[t]||e[t]}),S):"string"==typeof m&&m.startsWith("#")&&(F=(0,a.OQ)(F).rgb);j=d({},F)}else if(b.default)j=(0,a.OQ)(b.default).rgb;else{var O=b.color||function(e,t){return d({},t)};if(b.textColor)if("bw"===b.textColor)j=(0,a.wo)(i).rgb;else{var E=d({},l[_[0]]);b.color&&(E=O.apply(void 0,[S].concat((0,s.Z)(_.map((function(e){return d({},l[e])})))))),j=(0,u.uu)(i,d({},E),"preserve"===b.textColor)}else j=O.apply(void 0,[S].concat((0,s.Z)(_.map((function(e){return d({},l[e])})))))}if(!j)throw new Error("Couldn't generate color for "+r);var z=b.opacity||v(r),P=b.opacity;if(null===P)j.a=1;else if("transparent"===m)j.a=0;else{var I=P&&void 0!==t[z],x=_[0],T=x&&l[x];P||!T||b.textColor||null===P?T||z?T&&0===T.a?j.a=0:j.a=Number(I?t[z]:(y[z]||{}).defaultValue):delete j.a:j.a=T.a}return(Number.isNaN(j.a)||void 0===j.a)&&(j.a=1),z?{colors:d(d({},l),{},(0,o.Z)({},r,j)),opacity:d(d({},p),{},(0,o.Z)({},z,j.a))}:{colors:d(d({},l),{},(0,o.Z)({},r,j)),opacity:p}}),{colors:{},opacity:{}})}},95052:(e,t,n)=>{"use strict";n.d(t,{M:()=>u,q:()=>a});var o=n(4942),r=n(21865);function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var a=function(e){if(void 0!==e){var t=e.color,n=e.type;if("string"==typeof t){var o=(0,r.wK)(t);if(null!=o){var i="rgb(".concat(Math.floor(o.r),", ").concat(Math.floor(o.g),", ").concat(Math.floor(o.b),")"),a="rgba(".concat(Math.floor(o.r),", ").concat(Math.floor(o.g),", ").concat(Math.floor(o.b),", .1)"),u="rgba(".concat(Math.floor(o.r),", ").concat(Math.floor(o.g),", ").concat(Math.floor(o.b),", .2)"),c={"--____highlight-solidColor":i,"--____highlight-tintColor":a,"--____highlight-tintColor2":u};return"striped"===n?s({backgroundImage:["repeating-linear-gradient(135deg,","".concat(a," ,"),"".concat(a," 20px,"),"".concat(u," 20px,"),"".concat(u," 40px")].join(" "),backgroundPosition:"0 0"},c):"solid"===n?s({backgroundColor:u},c):"side"===n?s({backgroundImage:["linear-gradient(to right,","".concat(i," ,"),"".concat(i," 2px,"),"transparent 6px"].join(" "),backgroundPosition:"0 0"},c):void 0}}}},u=function(e){return"USER____"+e.screen_name.replace(/\./g,"_").replace(/@/g,"_AT_")}},4493:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var o=n(64721),r=n.n(o);const i=function(e,t,n){var o=!t||function(e){return e&&e.includes("@")}(t)||r()(n,t);return{name:o?"external-user-profile":"user-profile",params:o?{id:e}:{name:t}}}},66596:(e,t,n)=>{"use strict";n.d(t,{Z:()=>W});var o=n(66252),r=n(3577),i=n(49963),s=["href","alt","title"],a={key:1,class:"attachment-buttons"},u=["placeholder"],c={key:1},l={class:"attachment-wrapper"},d=["href","alt","title"],p=["src"],m={key:1,class:"attachment-buttons"},h=["title"],f=["title"],g=["title"],v=["title"],w=["title"],b=["title"],y=["title"],D=["href"],_=["href"],k={key:0},C=["href"],S=["src","alt","title"],j={key:0,class:"image"},F=["src"],A={class:"text"},O=["href"],E=["innerHTML"],z=["href"],P=["placeholder"],I={key:1},x=n(4942),T=n(32140),$=n(72884),B=n(34133);const U=n.p+"static/img/nsfw.2958239.png";var M=n(58394),L=n(989),R=n(9382),q=n(84131);function N(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}R.vI.add(q.gMD,q.Xig,q.VmB,q.IyC,q.aQp,q.NBC,q.Bg$,q.N7g,q.I7k,q.UJf,q.S3c);const Z={props:["attachment","compact","description","hideDescription","nsfw","size","setMedia","remove","shiftUp","shiftDn","edit"],data:function(){return{localDescription:this.description||this.attachment.description,nsfwImage:this.$store.state.instance.nsfwCensorImage||U,hideNsfwLocal:this.$store.getters.mergedConfig.hideNsfw,preloadImage:this.$store.getters.mergedConfig.preloadImage,loading:!1,img:"image"===M.ZP.fileType(this.attachment.mimetype)&&document.createElement("img"),modalOpen:!1,showHidden:!1,flashLoaded:!1,showDescription:!1}},components:{Flash:$.Z,StillImage:T.Z,VideoAttachment:B.Z},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?N(Object(n),!0).forEach((function(t){(0,x.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):N(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({classNames:function(){return[{"-loading":this.loading,"-nsfw-placeholder":this.hidden,"-editable":void 0!==this.edit,"-compact":this.compact},"-type-"+this.type,this.size&&"-size-"+this.size,"-".concat(this.useContainFit?"contain":"cover","-fit")]},usePlaceholder:function(){return"hide"===this.size},useContainFit:function(){return this.$store.getters.mergedConfig.useContainFit},placeholderName:function(){return""!==this.attachment.description&&this.attachment.description?this.attachment.description:this.type.toUpperCase()},placeholderIconClass:function(){return"image"===this.type?"image":"video"===this.type?"video":"audio"===this.type?"music":"file"},referrerpolicy:function(){return this.$store.state.instance.mediaProxyAvailable?"":"no-referrer"},type:function(){return M.ZP.fileType(this.attachment.mimetype)},hidden:function(){return this.nsfw&&this.hideNsfwLocal&&!this.showHidden},isEmpty:function(){return"html"===this.type&&!this.attachment.oembed},useModal:function(){var e=[];switch(this.size){case"hide":case"small":e=["image","video","audio","flash"];break;default:e=this.mergedConfig.playVideosInModal?["image","video","flash"]:["image"]}return e.includes(this.type)},videoTag:function(){return this.useModal?"button":"span"}},(0,L.Se)(["mergedConfig"])),watch:{"attachment.description":function(e){this.localDescription=e},localDescription:function(e){this.onEdit(e)}},methods:{linkClicked:function(e){var t=e.target;"A"===t.tagName&&window.open(t.href,"_blank")},openModal:function(e){this.useModal?(this.$emit("setMedia"),this.$store.dispatch("setCurrentMedia",this.attachment)):"unknown"===this.type&&window.open(this.attachment.url)},openModalForce:function(e){this.$emit("setMedia"),this.$store.dispatch("setCurrentMedia",this.attachment)},onEdit:function(e){this.edit&&this.edit(this.attachment,e)},onRemove:function(){this.remove&&this.remove(this.attachment)},onShiftUp:function(){this.shiftUp&&this.shiftUp(this.attachment)},onShiftDn:function(){this.shiftDn&&this.shiftDn(this.attachment)},stopFlash:function(){this.$refs.flash.closePlayer()},setFlashLoaded:function(e){this.flashLoaded=e},toggleDescription:function(){this.showDescription=!this.showDescription},toggleHidden:function(e){var t=this;!this.mergedConfig.useOneClickNsfw||this.showHidden||"video"===this.type&&!this.mergedConfig.playVideosInModal?this.img&&!this.preloadImage?this.img.onload?this.img.onload():(this.loading=!0,this.img.src=this.attachment.url,this.img.onload=function(){t.loading=!1,t.showHidden=!t.showHidden}):this.showHidden=!this.showHidden:this.openModal(e)},onImageLoad:function(e){var t=e.naturalWidth,n=e.naturalHeight;this.$emit("naturalSizeLoad",{id:this.attachment.id,width:t,height:n})}}},W=(0,n(83744).Z)(Z,[["render",function(e,t,n,x,T,$){var B=(0,o.up)("FAIcon"),U=(0,o.up)("StillImage"),M=(0,o.up)("VideoAttachment"),L=(0,o.up)("Flash");return e.usePlaceholder?((0,o.wg)(),(0,o.iD)("button",{key:0,class:(0,r.C_)(["Attachment -placeholder button-unstyled",e.classNames]),onClick:t[4]||(t[4]=function(){return e.openModal&&e.openModal.apply(e,arguments)})},["html"!==e.type?((0,o.wg)(),(0,o.iD)("a",{key:0,class:"placeholder",target:"_blank",href:e.attachment.url,alt:e.attachment.description,title:e.attachment.description,onClick:t[0]||(t[0]=(0,i.iM)((function(){}),["prevent"]))},[(0,o.Wm)(B,{icon:e.placeholderIconClass},null,8,["icon"]),(0,o._)("b",null,(0,r.zw)(e.nsfw?"NSFW / ":""),1),(0,o.Uk)((0,r.zw)(e.edit?"":e.placeholderName),1)],8,s)):(0,o.kq)("",!0),e.edit||e.remove?((0,o.wg)(),(0,o.iD)("div",a,[e.remove?((0,o.wg)(),(0,o.iD)("button",{key:0,class:"button-unstyled attachment-button",onClick:t[1]||(t[1]=(0,i.iM)((function(){return e.onRemove&&e.onRemove.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(B,{icon:"trash-alt"})])):(0,o.kq)("",!0)])):(0,o.kq)("",!0),"hide"!==e.size&&!e.hideDescription&&(e.edit||e.localDescription||e.showDescription)?((0,o.wg)(),(0,o.iD)("div",{key:2,class:(0,r.C_)(["description-container",{"-static":!e.edit}])},[e.edit?(0,o.wy)(((0,o.wg)(),(0,o.iD)("input",{key:0,"onUpdate:modelValue":t[2]||(t[2]=function(t){return e.localDescription=t}),type:"text",class:"description-field",placeholder:e.$t("post_status.media_description"),onKeydown:t[3]||(t[3]=(0,i.D2)((0,i.iM)((function(){}),["prevent"]),["enter"]))},null,40,u)),[[i.nr,e.localDescription]]):((0,o.wg)(),(0,o.iD)("p",c,(0,r.zw)(e.localDescription),1))],2)):(0,o.kq)("",!0)],2)):((0,o.wg)(),(0,o.iD)("div",{key:1,class:(0,r.C_)(["Attachment",e.classNames])},[(0,o.wy)((0,o._)("div",l,[e.hidden?((0,o.wg)(),(0,o.iD)("a",{key:0,class:"image-container",href:e.attachment.url,alt:e.attachment.description,title:e.attachment.description,onClick:t[5]||(t[5]=(0,i.iM)((function(){return e.toggleHidden&&e.toggleHidden.apply(e,arguments)}),["prevent","stop"]))},[((0,o.wg)(),(0,o.iD)("img",{key:e.nsfwImage,class:"nsfw",src:e.nsfwImage},null,8,p)),"video"===e.type?((0,o.wg)(),(0,o.j4)(B,{key:0,class:"play-icon",icon:"play-circle"})):(0,o.kq)("",!0)],8,d)):(0,o.kq)("",!0),e.hidden?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",m,["flash"===e.type&&e.flashLoaded?((0,o.wg)(),(0,o.iD)("button",{key:0,class:"button-unstyled attachment-button",title:e.$t("status.attachment_stop_flash"),onClick:t[6]||(t[6]=(0,i.iM)((function(){return e.stopFlash&&e.stopFlash.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(B,{icon:"stop"})],8,h)):(0,o.kq)("",!0),e.attachment.description&&"small"!==e.size&&!e.edit&&"unknown"!==e.type?((0,o.wg)(),(0,o.iD)("button",{key:1,class:"button-unstyled attachment-button",title:e.$t("status.show_attachment_description"),onClick:t[7]||(t[7]=(0,i.iM)((function(){return e.toggleDescription&&e.toggleDescription.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(B,{icon:"align-right"})],8,f)):(0,o.kq)("",!0),e.useModal||"unknown"===e.type?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("button",{key:2,class:"button-unstyled attachment-button",title:e.$t("status.show_attachment_in_modal"),onClick:t[8]||(t[8]=(0,i.iM)((function(){return e.openModalForce&&e.openModalForce.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(B,{icon:"search-plus"})],8,g)),e.nsfw&&e.hideNsfwLocal?((0,o.wg)(),(0,o.iD)("button",{key:3,class:"button-unstyled attachment-button",title:e.$t("status.hide_attachment"),onClick:t[9]||(t[9]=(0,i.iM)((function(){return e.toggleHidden&&e.toggleHidden.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(B,{icon:"times"})],8,v)):(0,o.kq)("",!0),e.shiftUp?((0,o.wg)(),(0,o.iD)("button",{key:4,class:"button-unstyled attachment-button",title:e.$t("status.move_up"),onClick:t[10]||(t[10]=(0,i.iM)((function(){return e.onShiftUp&&e.onShiftUp.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(B,{icon:"chevron-left"})],8,w)):(0,o.kq)("",!0),e.shiftDn?((0,o.wg)(),(0,o.iD)("button",{key:5,class:"button-unstyled attachment-button",title:e.$t("status.move_down"),onClick:t[11]||(t[11]=(0,i.iM)((function(){return e.onShiftDn&&e.onShiftDn.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(B,{icon:"chevron-right"})],8,b)):(0,o.kq)("",!0),e.remove?((0,o.wg)(),(0,o.iD)("button",{key:6,class:"button-unstyled attachment-button",title:e.$t("status.remove_attachment"),onClick:t[12]||(t[12]=(0,i.iM)((function(){return e.onRemove&&e.onRemove.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(B,{icon:"trash-alt"})],8,y)):(0,o.kq)("",!0)])),"image"!==e.type||e.hidden&&!e.preloadImage?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("a",{key:2,class:(0,r.C_)(["image-container",{"-hidden":e.hidden&&e.preloadImage}]),href:e.attachment.url,target:"_blank",onClick:t[13]||(t[13]=(0,i.iM)((function(){return e.openModal&&e.openModal.apply(e,arguments)}),["stop","prevent"]))},[(0,o.Wm)(U,{class:"image",referrerpolicy:e.referrerpolicy,mimetype:e.attachment.mimetype,src:e.attachment.large_thumb_url||e.attachment.url,"image-load-handler":e.onImageLoad,alt:e.attachment.description},null,8,["referrerpolicy","mimetype","src","image-load-handler","alt"])],10,D)),"unknown"!==e.type||e.hidden?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("a",{key:3,class:"placeholder-container",href:e.attachment.url,target:"_blank"},[(0,o.Wm)(B,{size:e.compact?"2x":"5x",icon:e.placeholderIconClass,title:e.localDescription},null,8,["size","icon","title"]),e.compact?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("p",k,(0,r.zw)(e.localDescription),1))],8,_)),"video"!==e.type||e.hidden?(0,o.kq)("",!0):((0,o.wg)(),(0,o.j4)((0,o.LL)(e.videoTag),{key:4,class:(0,r.C_)(["video-container",{"button-unstyled":"isModal"}]),href:e.attachment.url,onClick:(0,i.iM)(e.openModal,["stop","prevent"])},{default:(0,o.w5)((function(){return[(0,o.Wm)(M,{class:"video",attachment:e.attachment,controls:!e.useModal,onPlay:t[14]||(t[14]=function(t){return e.$emit("play")}),onPause:t[15]||(t[15]=function(t){return e.$emit("pause")})},null,8,["attachment","controls"]),e.useModal?((0,o.wg)(),(0,o.j4)(B,{key:0,class:"play-icon",icon:"play-circle"})):(0,o.kq)("",!0)]})),_:1},8,["href","onClick"])),"audio"!==e.type||e.hidden?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("span",{key:5,class:"audio-container",href:e.attachment.url,onClick:t[18]||(t[18]=(0,i.iM)((function(){return e.openModal&&e.openModal.apply(e,arguments)}),["stop","prevent"]))},["audio"===e.type?((0,o.wg)(),(0,o.iD)("audio",{key:0,src:e.attachment.url,alt:e.attachment.description,title:e.attachment.description,controls:"",onPlay:t[16]||(t[16]=function(t){return e.$emit("play")}),onPause:t[17]||(t[17]=function(t){return e.$emit("pause")})},null,40,S)):(0,o.kq)("",!0)],8,C)),"html"===e.type&&e.attachment.oembed?((0,o.wg)(),(0,o.iD)("div",{key:6,class:"oembed-container",onClick:t[19]||(t[19]=(0,i.iM)((function(){return e.linkClicked&&e.linkClicked.apply(e,arguments)}),["prevent"]))},[e.attachment.thumb_url?((0,o.wg)(),(0,o.iD)("div",j,[(0,o._)("img",{src:e.attachment.thumb_url},null,8,F)])):(0,o.kq)("",!0),(0,o._)("div",A,[(0,o._)("h1",null,[(0,o._)("a",{href:e.attachment.url},(0,r.zw)(e.attachment.oembed.title),9,O)]),(0,o._)("div",{innerHTML:e.attachment.oembed.oembedHTML},null,8,E)])])):(0,o.kq)("",!0),"flash"!==e.type||e.hidden?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("span",{key:7,class:"flash-container",href:e.attachment.url,onClick:t[22]||(t[22]=(0,i.iM)((function(){return e.openModal&&e.openModal.apply(e,arguments)}),["stop","prevent"]))},[(0,o.Wm)(L,{ref:"flash",class:"flash",src:e.attachment.large_thumb_url||e.attachment.url,onPlayerOpened:t[20]||(t[20]=function(t){return e.setFlashLoaded(!0)}),onPlayerClosed:t[21]||(t[21]=function(t){return e.setFlashLoaded(!1)})},null,8,["src"])],8,z))],512),[[i.F8,!e.isEmpty]]),"hide"!==e.size&&!e.hideDescription&&(e.edit||e.localDescription&&e.showDescription)?((0,o.wg)(),(0,o.iD)("div",{key:0,class:(0,r.C_)(["description-container",{"-static":!e.edit}])},[e.edit?(0,o.wy)(((0,o.wg)(),(0,o.iD)("input",{key:0,"onUpdate:modelValue":t[23]||(t[23]=function(t){return e.localDescription=t}),type:"text",class:"description-field",placeholder:e.$t("post_status.media_description"),onKeydown:t[24]||(t[24]=(0,i.D2)((0,i.iM)((function(){}),["prevent"]),["enter"]))},null,40,P)),[[i.nr,e.localDescription]]):((0,o.wg)(),(0,o.iD)("p",I,(0,r.zw)(e.localDescription),1))],2)):(0,o.kq)("",!0)],2))}]])},19066:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var o=n(66252),r={class:"avatars"},i=n(48173),s=n(4493);const a={props:["users"],computed:{slicedUsers:function(){return this.users?this.users.slice(0,15):[]}},components:{UserAvatar:i.default},methods:{userProfileLink:function(e){return(0,s.Z)(e.id,e.screen_name,this.$store.state.instance.restrictedNicknames)}}},u=(0,n(83744).Z)(a,[["render",function(e,t,n,i,s,a){var u=(0,o.up)("UserAvatar"),c=(0,o.up)("router-link");return(0,o.wg)(),(0,o.iD)("div",r,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.slicedUsers,(function(t){return(0,o.wg)(),(0,o.j4)(c,{key:t.id,to:e.userProfileLink(t),class:"avatars-item"},{default:(0,o.w5)((function(){return[(0,o.Wm)(u,{user:t,class:"avatar-small"},null,8,["user"])]})),_:2},1032,["to"])})),128))])}]])},29076:(e,t,n)=>{"use strict";n.d(t,{Z:()=>h});var o=n(66252),r=n(49963),i={class:"basic-user-card"},s={class:"basic-user-card-collapsed-content"},a=["title"],u=n(22588),c=n(48173),l=n(12061),d=n(92820),p=n(4493);const m={props:["user"],components:{UserPopover:u.default,UserAvatar:c.default,RichContent:d.Z,UserLink:l.Z},methods:{userProfileLink:function(e){return(0,p.Z)(e.id,e.screen_name,this.$store.state.instance.restrictedNicknames)}}},h=(0,n(83744).Z)(m,[["render",function(e,t,n,u,c,l){var d=(0,o.up)("UserAvatar"),p=(0,o.up)("UserPopover"),m=(0,o.up)("router-link"),h=(0,o.up)("RichContent"),f=(0,o.up)("user-link");return(0,o.wg)(),(0,o.iD)("div",i,[(0,o.Wm)(m,{to:e.userProfileLink(e.user),onClick:t[1]||(t[1]=(0,r.iM)((function(){}),["prevent"]))},{default:(0,o.w5)((function(){return[(0,o.Wm)(p,{"user-id":e.user.id,"overlay-centers":!0,"overlay-centers-selector":".avatar"},{default:(0,o.w5)((function(){return[(0,o.Wm)(d,{class:"user-avatar avatar",user:e.user,onClick:t[0]||(t[0]=(0,r.iM)((function(){}),["prevent"]))},null,8,["user"])]})),_:1},8,["user-id"])]})),_:1},8,["to"]),(0,o._)("div",s,[(0,o._)("div",{title:e.user.name,class:"basic-user-card-user-name"},[(0,o.Wm)(h,{class:"basic-user-card-user-name-value",html:e.user.name,emoji:e.user.emoji},null,8,["html","emoji"])],8,a),(0,o._)("div",null,[(0,o.Wm)(f,{class:"basic-user-card-screen-name",user:e.user},null,8,["user"])]),(0,o.WI)(e.$slots,"default")])])}]])},66141:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var o=n(66252),r=n(3577),i=["disabled","checked","indeterminate"],s={key:0,class:"label"};const a={props:["modelValue","indeterminate","disabled"],emits:["update:modelValue"],data:function(e){return{indeterminateTransitionFix:e.indeterminate}},watch:{indeterminate:function(e){e&&(this.indeterminateTransitionFix=!0)}},methods:{onTransitionEnd:function(e){this.indeterminate||(this.indeterminateTransitionFix=!1)}}},u=(0,n(83744).Z)(a,[["render",function(e,t,n,a,u,c){return(0,o.wg)(),(0,o.iD)("label",{class:(0,r.C_)(["checkbox",{disabled:n.disabled,indeterminate:n.indeterminate,"indeterminate-fix":e.indeterminateTransitionFix}])},[(0,o._)("input",{type:"checkbox",class:"visible-for-screenreader-only",disabled:n.disabled,checked:n.modelValue,indeterminate:n.indeterminate,onChange:t[0]||(t[0]=function(t){return e.$emit("update:modelValue",t.target.checked)})},null,40,i),(0,o._)("i",{class:"checkbox-indicator","aria-hidden":!0,onTransitionendCapture:t[1]||(t[1]=function(){return c.onTransitionEnd&&c.onTransitionEnd.apply(c,arguments)})},null,32),e.$slots.default?((0,o.wg)(),(0,o.iD)("span",s,[(0,o.WI)(e.$slots,"default")])):(0,o.kq)("",!0)],2)}]])},1447:(e,t,n)=>{"use strict";n.d(t,{Z:()=>l});var o=n(66252),r=n(3577),i=n(49963),s=["textContent"],a=["textContent"],u=["textContent"];const c={components:{DialogModal:n(71113).Z},props:{title:{type:String},cancelText:{type:String},confirmText:{type:String}},computed:{},methods:{onCancel:function(){this.$emit("cancelled")},onAccept:function(){this.$emit("accepted")}}},l=(0,n(83744).Z)(c,[["render",function(e,t,n,c,l,d){var p=(0,o.up)("dialog-modal"),m=(0,o.Q2)("body-scroll-lock");return(0,o.wy)(((0,o.wg)(),(0,o.j4)(p,{class:"confirm-modal","on-cancel":e.onCancel},{header:(0,o.w5)((function(){return[(0,o._)("span",{textContent:(0,r.zw)(e.title)},null,8,s)]})),footer:(0,o.w5)((function(){return[(0,o._)("button",{class:"btn button-default",onClick:t[0]||(t[0]=(0,i.iM)((function(){return e.onAccept&&e.onAccept.apply(e,arguments)}),["prevent"])),textContent:(0,r.zw)(e.confirmText)},null,8,a),(0,o._)("button",{class:"btn button-default",onClick:t[1]||(t[1]=(0,i.iM)((function(){return e.onCancel&&e.onCancel.apply(e,arguments)}),["prevent"])),textContent:(0,r.zw)(e.cancelText)},null,8,u)]})),default:(0,o.w5)((function(){return[(0,o.WI)(e.$slots,"default")]})),_:3},8,["on-cancel"])),[[m,!0]])}]])},71113:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var o=n(66252),r=n(3577),i=n(49963),s={class:"panel-heading dialog-modal-heading"},a={class:"title"},u={class:"dialog-modal-content"},c={class:"dialog-modal-footer user-interactions panel-footer"};const l={props:{darkOverlay:{default:!0,type:Boolean},onCancel:{default:function(){},type:Function}}},d=(0,n(83744).Z)(l,[["render",function(e,t,n,l,d,p){return(0,o.wg)(),(0,o.iD)("span",{class:(0,r.C_)({"dark-overlay":e.darkOverlay}),onClick:t[1]||(t[1]=(0,i.iM)((function(t){return e.onCancel()}),["self","stop"]))},[(0,o._)("div",{class:"dialog-modal panel panel-default",onClick:t[0]||(t[0]=(0,i.iM)((function(){}),["stop"]))},[(0,o._)("div",s,[(0,o._)("div",a,[(0,o.WI)(e.$slots,"header")])]),(0,o._)("div",u,[(0,o.WI)(e.$slots,"default")]),(0,o._)("div",c,[(0,o.WI)(e.$slots,"footer")])])],2)}]])},88671:(e,t,n)=>{"use strict";n.d(t,{Z:()=>Y});var o=n(66252),r=n(3577),i=n(49963),s={ref:"hiddenOverlayCaret",class:"caret"},a=["title"],u=["id"],c=["id","aria-label","aria-selected","onClick"],l={class:"image"},d=["src"],p={key:1},m={class:"label"},h={key:0,class:"displayText"},f={key:1,class:"displayText"},g={class:"detailText"},v=n(4942),w=n(44925),b=n(15861),y=n(93433),D=n(69572),_=n.n(D),k=n(64687),C=n.n(k),S=n(13311),j=n.n(S),F=n(54061),A=n.n(F),O=function(e){return A()(e,(function(e,t){var n={word:t,start:0,end:t.length};if(e.length>0){var o=e.pop();n.start+=o.end,n.end+=o.end,e.push(o)}return e.push(n),e}),[])},E=function(e){for(var t=[],n="",o=0;o<e.length;o++){var r=e[o];n?!!r.trim()==!!n.trim()?n+=r:(t.push(n),n=r):n=r}return n&&t.push(n),t};const z=function(e,t){var n=E(e),o=O(n);return j()(o,(function(e){var n=e.start,o=e.end;return n<=t&&o>t}))},P=function(e,t,n){return e.slice(0,t.start)+n+e.slice(t.end)};var I=n(98471),x=n(84535),T=["aria-live"];const $={props:{ariaLive:{type:String,defualt:"assertive"}},data:function(){return{currentText:""}},methods:{announce:function(e){var t=this;this.currentText=e,setTimeout((function(){t.currentText=""}),1e3)}}};var B=n(83744);const U=(0,B.Z)($,[["render",function(e,t,n,i,s,a){return(0,o.wg)(),(0,o.iD)("div",{class:"visible-for-screenreader-only","aria-live":e.ariaLive},(0,r.zw)(e.currentText),9,T)}]]);var M,L=n(42262),R=n(67952),q=n(8312),N=n(9382),Z=n(5737),W=["imageUrl"];function H(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function V(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?H(Object(n),!0).forEach((function(t){(0,v.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):H(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function K(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}N.vI.add(Z.RKn);const G={emits:["update:modelValue","shown"],props:{suggest:{required:!0,type:Function},modelValue:{required:!0,type:String},enableEmojiPicker:{required:!1,type:Boolean,default:!1},hideEmojiButton:{required:!1,type:Boolean,default:!1},enableStickerPicker:{required:!1,type:Boolean,default:!1},placement:{required:!1,type:String,default:"auto"},newlineOnCtrlEnter:{required:!1,type:Boolean,default:!1}},data:function(){return{randomSeed:"".concat(Math.random()).replace(".","-"),input:void 0,caretEl:void 0,highlighted:-1,caret:0,focused:!1,blurTimeout:null,temporarilyHideSuggestions:!1,disableClickOutside:!1,suggestions:[],overlayStyle:{},pickerShown:!1}},components:{Popover:x.default,EmojiPicker:I.Z,UnicodeDomainIndicator:L.Z,ScreenReaderNotice:U},computed:{padEmoji:function(){return this.$store.getters.mergedConfig.padEmoji},defaultCandidateIndex:function(){return this.$store.getters.mergedConfig.autocompleteSelect?0:-1},preText:function(){return this.modelValue.slice(0,this.caret)},postText:function(){return this.modelValue.slice(this.caret)},showSuggestions:function(){return this.focused&&this.suggestions&&this.suggestions.length>0&&!this.pickerShown&&!this.temporarilyHideSuggestions},textAtCaret:function(){var e;return null===(e=this.wordAtCaret)||void 0===e?void 0:e.word},wordAtCaret:function(){if(this.modelValue&&this.caret)return z(this.modelValue,this.caret-1)||{}},languages:function(){return(0,q.ensureFinalFallback)(this.$store.getters.mergedConfig.interfaceLanguage)},maybeLocalizedEmojiNamesAndKeywords:function(){var e=this;return function(t){var n=[t.displayText],o=[];return t.displayTextI18n&&n.push(e.$t(t.displayTextI18n.key,t.displayTextI18n.args)),t.annotations&&e.languages.forEach((function(e){var r,i;n.push(null===(r=t.annotations[e])||void 0===r?void 0:r.name),o.push.apply(o,(0,y.Z)((null===(i=t.annotations[e])||void 0===i?void 0:i.keywords)||[]))})),{names:n.filter((function(e){return e})),keywords:o.filter((function(e){return e}))}}},maybeLocalizedEmojiName:function(){var e=this;return function(t){if(!t.annotations)return t.displayText;if(t.displayTextI18n)return e.$t(t.displayTextI18n.key,t.displayTextI18n.args);var n,o=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return K(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?K(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0,r=function(){};return{s:r,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,i=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw i}}}}(e.languages);try{for(o.s();!(n=o.n()).done;){var r,i=n.value;if(null!==(r=t.annotations[i])&&void 0!==r&&r.name)return t.annotations[i].name}}catch(e){o.e(e)}finally{o.f()}return t.displayText}},onInputScroll:function(){this.$refs.hiddenOverlay.scrollTo({top:this.input.scrollTop,left:this.input.scrollLeft})},suggestionListId:function(){return"suggestions-".concat(this.randomSeed)},suggestionItemId:function(){var e=this;return function(t){return"suggestion-item-".concat(t,"-").concat(e.randomSeed)}}},mounted:function(){var e=this.$refs,t=e.root,n=e.hiddenOverlayCaret,o=e.suggestorPopover,r=t.querySelector(".emoji-input > input")||t.querySelector(".emoji-input > textarea");if(r){this.input=r,this.caretEl=n,o.setAnchorEl?(o.setAnchorEl(this.caretEl),this.$refs.picker.setAnchorEl(this.caretEl)):console.warn("setAnchorEl not found, are we in a unit test?");var i=getComputedStyle(this.input);this.overlayStyle.padding=i.padding,this.overlayStyle.border=i.border,this.overlayStyle.margin=i.margin,this.overlayStyle.lineHeight=i.lineHeight,this.overlayStyle.fontFamily=i.fontFamily,this.overlayStyle.fontSize=i.fontSize,this.overlayStyle.wordWrap=i.wordWrap,this.overlayStyle.whiteSpace=i.whiteSpace,this.resize(),r.addEventListener("blur",this.onBlur),r.addEventListener("focus",this.onFocus),r.addEventListener("paste",this.onPaste),r.addEventListener("keyup",this.onKeyUp),r.addEventListener("keydown",this.onKeyDown),r.addEventListener("click",this.onClickInput),r.addEventListener("transitionend",this.onTransition),r.addEventListener("input",this.onInput),r.addEventListener("scroll",this.onInputScroll)}},unmounted:function(){var e=this.input;e&&(e.removeEventListener("blur",this.onBlur),e.removeEventListener("focus",this.onFocus),e.removeEventListener("paste",this.onPaste),e.removeEventListener("keyup",this.onKeyUp),e.removeEventListener("keydown",this.onKeyDown),e.removeEventListener("click",this.onClickInput),e.removeEventListener("transitionend",this.onTransition),e.removeEventListener("input",this.onInput),e.removeEventListener("scroll",this.onInputScroll))},watch:{showSuggestions:function(e,t){this.$emit("shown",e),e?this.$refs.suggestorPopover.showPopover():this.$refs.suggestorPopover.hidePopover()},textAtCaret:(M=(0,b.Z)(C().mark((function e(t){var n,o;return C().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(void 0!==t){e.next=2;break}return e.abrupt("return");case 2:if(n=t.charAt(0),t!==n){e.next=6;break}return this.suggestions=[],e.abrupt("return");case 6:return e.next=8,this.suggest(t,this.maybeLocalizedEmojiNamesAndKeywords);case 8:if(o=e.sent,!(this.textAtCaret!==t||o.length<=0)){e.next=12;break}return this.suggestions=[],e.abrupt("return");case 12:this.suggestions=_()(o,5).map((function(e){var t=e.imageUrl;return V(V({},(0,w.Z)(e,W)),{},{img:t||""})})),this.highlighted=this.defaultCandidateIndex,this.$refs.screenReaderNotice.announce(this.$tc("tool_tip.autocomplete_available",this.suggestions.length,{number:this.suggestions.length}));case 15:case"end":return e.stop()}}),e,this)}))),function(e){return M.apply(this,arguments)})},methods:{triggerShowPicker:function(){var e=this;this.$nextTick((function(){e.$refs.picker.showPicker(),e.scrollIntoView()})),this.disableClickOutside=!0,setTimeout((function(){e.disableClickOutside=!1}),0)},togglePicker:function(){this.input.focus(),this.pickerShown?this.$refs.picker.hidePicker():(this.scrollIntoView(),this.$refs.picker.showPicker(),this.$refs.picker.startEmojiLoad())},replace:function(e){var t=P(this.modelValue,this.wordAtCaret,e);this.$emit("update:modelValue",t),this.caret=0},insert:function(e){var t=e.insertion,n=e.keepOpen,o=e.surroundingSpace,r=void 0===o||o,i=this.modelValue.substring(0,this.caret)||"",s=this.modelValue.substring(this.caret)||"",a=/\s/,u=r&&!a.exec(i.slice(-1))&&i.length&&this.padEmoji>0?" ":"",c=r&&!a.exec(s[0])&&this.padEmoji?" ":"",l=[i,u,t,c,s].join("");this.$emit("update:modelValue",l);var d=this.caret+(t+c+u).length;n||this.input.focus(),this.$nextTick((function(){this.input.setSelectionRange(d,d),this.caret=d}))},replaceText:function(e,t){var n=this.suggestions.length||0;if(1!==this.textAtCaret.length&&(n>0||t)){var o=(t||this.suggestions[this.highlighted]).replacement,r=P(this.modelValue,this.wordAtCaret,o);this.$emit("update:modelValue",r),this.highlighted=0;var i=this.wordAtCaret.start+o.length;this.$nextTick((function(){this.input.focus(),this.input.setSelectionRange(i,i),this.caret=i})),e.preventDefault()}},cycleBackward:function(e){var t=this.suggestions.length||0;this.highlighted-=1,-1===this.highlighted?this.input.focus():this.highlighted<-1&&(this.highlighted=t-1),t>0&&e.preventDefault()},cycleForward:function(e){var t=this.suggestions.length||0;this.highlighted+=1,this.highlighted>=t&&(this.highlighted=-1,this.input.focus()),t>0&&e.preventDefault()},scrollIntoView:function(){var e=this,t=this.$refs.picker.$el,n=this.$el.closest(".sidebar-scroller")||this.$el.closest(".post-form-modal-view")||window,o=n===window?n.scrollY:n.scrollTop,r=o+(n===window?n.innerHeight:n.offsetHeight),i=t.offsetHeight+(0,R.y)(t,n).top,s=o+Math.max(0,i-r);n===window?n.scroll(0,s):n.scrollTop=s,this.$nextTick((function(){var t=e.input.offsetHeight,n=e.$refs.picker;n.$el.getBoundingClientRect().bottom>window.innerHeight&&(n.$el.style.top="auto",n.$el.style.bottom=t+"px")}))},onPickerShown:function(){this.pickerShown=!0},onPickerClosed:function(){this.pickerShown=!1},onBlur:function(e){var t=this;this.blurTimeout=setTimeout((function(){t.focused=!1,t.setCaret(e)}),200)},onClick:function(e,t){this.replaceText(e,t)},onFocus:function(e){this.blurTimeout&&(clearTimeout(this.blurTimeout),this.blurTimeout=null),this.focused=!0,this.setCaret(e),this.temporarilyHideSuggestions=!1},onKeyUp:function(e){var t=e.key;this.setCaret(e),this.temporarilyHideSuggestions="Escape"===t},onPaste:function(e){this.setCaret(e)},onKeyDown:function(e){var t=this,n=e.ctrlKey,o=e.shiftKey,r=e.key;this.newlineOnCtrlEnter&&n&&"Enter"===r&&(this.insert({insertion:"\n",surroundingSpace:!1}),e.stopPropagation(),e.preventDefault(),this.$nextTick((function(){t.input.blur(),t.input.focus()}))),this.temporarilyHideSuggestions||("Tab"===r&&(o?this.cycleBackward(e):this.cycleForward(e)),"ArrowUp"===r?this.cycleBackward(e):"ArrowDown"===r&&this.cycleForward(e),"Enter"===r&&(n||this.replaceText(e))),"Escape"===r&&(this.temporarilyHideSuggestions||this.input.focus())},onInput:function(e){this.setCaret(e),this.$emit("update:modelValue",e.target.value)},onStickerUploaded:function(e){this.$emit("sticker-uploaded",e)},onStickerUploadFailed:function(e){this.$emit("sticker-upload-Failed",e)},setCaret:function(e){var t=this,n=e.target.selectionStart;this.caret=n,this.$nextTick((function(){t.$refs.suggestorPopover.updateStyles()}))},resize:function(){},autoCompleteItemLabel:function(e){return e.user?e.displayText+" "+e.detailText:this.maybeLocalizedEmojiName(e)}}},Y=(0,B.Z)(G,[["render",function(e,t,n,v,w,b){var y=(0,o.up)("screen-reader-notice"),D=(0,o.up)("FAIcon"),_=(0,o.up)("EmojiPicker"),k=(0,o.up)("UnicodeDomainIndicator"),C=(0,o.up)("Popover");return(0,o.wg)(),(0,o.iD)("div",{ref:"root",class:(0,r.C_)(["emoji-input",{"with-picker":!e.hideEmojiButton}])},[(0,o.WI)(e.$slots,"default",{id:"textbox-"+e.randomSeed,ariaOwns:e.suggestionListId,ariaAutocomplete:"both",ariaExpanded:e.showSuggestions,ariaActivedescendant:e.showSuggestions&&-1!==e.highlighted?e.suggestionItemId(e.highlighted):""}),(0,o._)("div",{ref:"hiddenOverlay",class:"hidden-overlay",style:(0,r.j5)(e.overlayStyle),"aria-hidden":!0},[(0,o._)("span",null,(0,r.zw)(e.preText),1),(0,o._)("span",s,"x",512),(0,o._)("span",null,(0,r.zw)(e.postText),1)],4),(0,o.Wm)(y,{ref:"screenReaderNotice","aria-live":"assertive"},null,512),e.enableEmojiPicker?((0,o.wg)(),(0,o.iD)(o.HY,{key:0},[e.hideEmojiButton?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("button",{key:0,class:"button-unstyled emoji-picker-icon",type:"button",title:e.$t("emoji.add_emoji"),onClick:t[0]||(t[0]=(0,i.iM)((function(){return e.togglePicker&&e.togglePicker.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(D,{icon:["far","smile-beam"]})],8,a)),e.enableEmojiPicker?((0,o.wg)(),(0,o.j4)(_,{key:1,ref:"picker","enable-sticker-picker":e.enableStickerPicker,class:"emoji-picker-panel",onEmoji:e.insert,onStickerUploaded:e.onStickerUploaded,onStickerUploadFailed:e.onStickerUploadFailed,onShow:e.onPickerShown,onClose:e.onPickerClosed},null,8,["enable-sticker-picker","onEmoji","onStickerUploaded","onStickerUploadFailed","onShow","onClose"])):(0,o.kq)("",!0)],64)):(0,o.kq)("",!0),(0,o.Wm)(C,{ref:"suggestorPopover",class:"autocomplete-panel",placement:"bottom","trigger-attrs":{"aria-hidden":!0}},{content:(0,o.w5)((function(){return[(0,o._)("div",{id:e.suggestionListId,ref:"panel-body",class:"autocomplete-panel-body",role:"listbox"},[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.suggestions,(function(t,n){return(0,o.wg)(),(0,o.iD)("div",{id:e.suggestionItemId(n),key:n,class:(0,r.C_)(["autocomplete-item",{highlighted:n===e.highlighted}]),role:"option","aria-label":e.autoCompleteItemLabel(t),"aria-selected":n===e.highlighted,onClick:(0,i.iM)((function(n){return e.onClick(n,t)}),["stop","prevent"])},[(0,o._)("span",l,[t.img?((0,o.wg)(),(0,o.iD)("img",{key:0,src:t.img},null,8,d)):((0,o.wg)(),(0,o.iD)("span",p,(0,r.zw)(t.replacement),1))]),(0,o._)("div",m,[t.user?((0,o.wg)(),(0,o.iD)("span",h,[(0,o.Uk)((0,r.zw)(t.displayText),1),(0,o.Wm)(k,{user:t.user,at:!1},null,8,["user"])])):(0,o.kq)("",!0),t.user?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("span",f,(0,r.zw)(e.maybeLocalizedEmojiName(t)),1)),(0,o._)("span",g,(0,r.zw)(t.detailText),1)])],10,c)})),128))],8,u)]})),_:1},512)],2)}]])},98471:(e,t,n)=>{"use strict";n.d(t,{Z:()=>N});var o=n(66252),r=n(3577),i=n(49963),s={class:"heading"},a={ref:"header",class:"emoji-tabs"},u=["title","onClick"],c={key:0,class:"emoji-picker-header-image"},l={key:0,class:"additional-tabs"},d=["title"],p={key:0,class:"content"},m={class:"emoji-search"},h=["placeholder"],f={class:"emoji-group"},g={key:0,class:"emoji-group-title"},v=["title","onClick"],w={key:0,class:"emoji-picker-emoji -unicode"},b={class:"keep-open"},y={key:0,class:"stickers-content"},D=n(29439),_=n(4942),k=n(93433),C=n(8400),S=n.n(C),j=n(92742),F=n.n(j),A=n(23279),O=n.n(A),E=n(66141),z=n(84535),P=n(32140),I=n(8312),x=n(9382),T=n(84131);function $(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function B(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?$(Object(n),!0).forEach((function(t){(0,_.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):$(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function U(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return M(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?M(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0,r=function(){};return{s:r,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,i=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw i}}}}function M(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}x.vI.add(T.IA$,T.L4e,T.RKn,T.ctA,T.ILF,T.kQp,T.E1P,T.k0d,T.Elv,T.X8G,T.dT$,T.RrC);var L={"smileys-and-emotion":"smile","people-and-body":"user","animals-and-nature":"paw","food-and-drink":"ice-cream","travel-and-places":"bus",activities:"basketball-ball",objects:"lightbulb",symbols:"code",flags:"flag"},R=function(e,t,n){var o=[e.displayText,n(e)];return e.annotations&&t.forEach((function(t){var n,r,i=(null===(n=e.annotations[t])||void 0===n?void 0:n.keywords)||[],s=null===(r=e.annotations[t])||void 0===r?void 0:r.name;o.push.apply(o,(0,k.Z)(i.concat([s]).filter((function(e){return e}))))})),o};const q={props:{enableStickerPicker:{required:!1,type:Boolean,default:!1},hideCustomEmoji:{required:!1,type:Boolean,default:!1}},inject:["popoversZLayer"],data:function(){return{keyword:"",activeGroup:"custom",showingStickers:!1,groupsScrolledClass:"scrolled-top",keepOpen:!1,customEmojiTimeout:null,contentLoaded:!1,groupRefs:{},emojiRefs:{},filteredEmojiGroups:[],width:0}},components:{StickerPicker:(0,o.RC)((function(){return n.e(159).then(n.bind(n,30159))})),Checkbox:E.Z,StillImage:P.Z,Popover:z.default},methods:{showPicker:function(){this.$refs.popover.showPopover(),this.onShowing()},hidePicker:function(){this.$refs.popover.hidePopover()},setAnchorEl:function(e){this.$refs.popover.setAnchorEl(e)},setGroupRef:function(e){var t=this;return function(n){t.groupRefs[e]=n}},onPopoverShown:function(){this.$emit("show")},onPopoverClosed:function(){this.$emit("close")},onStickerUploaded:function(e){this.$emit("sticker-uploaded",e)},onStickerUploadFailed:function(e){this.$emit("sticker-upload-failed",e)},onEmoji:function(e){var t=e.imageUrl?":".concat(e.displayText,":"):e.replacement;this.keepOpen||this.$refs.popover.hidePopover(),this.$emit("emoji",{insertion:t,keepOpen:this.keepOpen})},onScroll:function(e,t,n,o){var r=this.$refs["emoji-groups"].$el;this.scrolledGroup(r,n,o)},scrolledGroup:function(e,t,n){var o=this,r=e.scrollTop+5;this.$nextTick((function(){o.emojiItems.slice(t,n+1).forEach((function(e){var t=e.id.replace(/^row-\d+-/,""),n=o.groupRefs["group-"+e.id];if(n){var i=n.$el.parentElement;i&&i&&function(e){var t=e.style.transform,n=/translateY\((\d+)px\)/.exec(t);return n?n[1]:0}(i)<=r&&(o.activeGroup=t)}})),o.scrollHeader()}))},scrollHeader:function(){var e=this.groupRefs["group-header-"+this.activeGroup],t=e.offsetLeft,n=t+e.offsetWidth,o=this.$refs.header,r=o.scrollLeft,i=r+o.clientWidth,s=function(e){o.scrollLeft=e};t-7<r?s(t-7):n+7>i&&s(n+7-o.clientWidth)},highlight:function(e){this.setShowStickers(!1);var t=this.emojiItems.findIndex((function(t){return t.id===e}));this.$refs["emoji-groups"].scrollToItem(t)},updateScrolledClass:function(e){e.scrollTop<=5?this.groupsScrolledClass="scrolled-top":e.scrollTop>=e.scrollTopMax-5?this.groupsScrolledClass="scrolled-bottom":this.groupsScrolledClass="scrolled-middle"},toggleStickers:function(){this.showingStickers=!this.showingStickers},setShowStickers:function(e){this.showingStickers=e},filterByKeyword:function(e,t){return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2?arguments[2]:void 0,o=arguments.length>3?arguments[3]:void 0;if(""===t)return e;var r,i=t.toLowerCase(),s=[],a=U(e);try{for(a.s();!(r=a.n()).done;){var u=r.value,c=R(u,n,o).map((function(e){return e.toLowerCase().indexOf(i)})).filter((function(e){return e>-1})),l=c.length?Math.min.apply(Math,(0,k.Z)(c)):-1;l>-1&&(Array.isArray(s[l])||(s[l]=[]),s[l].push(u))}}catch(e){a.e(e)}finally{a.f()}return s.flat()}(e,t,this.languages,this.maybeLocalizedEmojiName)},onShowing:function(){var e=this,t=this.contentLoaded;this.recalculateItemPerRow(),this.$nextTick((function(){e.$refs.search.focus()})),this.contentLoaded=!0,this.filteredEmojiGroups=this.getFilteredEmojiGroups(),t||this.$nextTick((function(){e.defaultGroup&&e.highlight(e.defaultGroup)}))},getFilteredEmojiGroups:function(){var e=this;return this.allEmojiGroups.map((function(t){return B(B({},t),{},{emojis:e.filterByKeyword(t.emojis,F()(e.keyword))})})).filter((function(e){return e.emojis.length>0}))},recalculateItemPerRow:function(){var e=this;this.$nextTick((function(){e.$refs["emoji-groups"]&&(e.width=e.$refs["emoji-groups"].$el.clientWidth)}))}},watch:{keyword:function(){this.onScroll(),this.debouncedHandleKeywordChange()},allCustomGroups:function(){this.filteredEmojiGroups=this.getFilteredEmojiGroups()}},computed:{minItemSize:function(){return this.emojiHeight},emojiHeight:function(){return 36},emojiWidth:function(){return 36},itemPerRow:function(){return this.width?Math.floor(this.width/this.emojiWidth-1):6},activeGroupView:function(){return this.showingStickers?"":this.activeGroup},stickersAvailable:function(){return this.$store.state.instance.stickers?this.$store.state.instance.stickers.length>0:0},allCustomGroups:function(){if(this.hideCustomEmoji)return{};var e=this.$store.getters.groupedCustomEmojis;return e.unpacked&&(e.unpacked.text=this.$t("emoji.unpacked")),e},defaultGroup:function(){return Object.keys(this.allCustomGroups)[0]},unicodeEmojiGroups:function(){var e=this;return this.$store.getters.standardEmojiGroupList.map((function(t){return{id:"standard-".concat(t.id),text:e.$t("emoji.unicode_groups.".concat(t.id)),icon:L[t.id],emojis:t.emojis}}))},allEmojiGroups:function(){return Object.entries(this.allCustomGroups).map((function(e){var t=(0,D.Z)(e,2);return t[0],t[1]})).concat(this.unicodeEmojiGroups)},stickerPickerEnabled:function(){return 0!==(this.$store.state.instance.stickers||[]).length},debouncedHandleKeywordChange:function(){var e=this;return O()((function(){e.filteredEmojiGroups=e.getFilteredEmojiGroups()}),500)},emojiItems:function(){var e=this;return this.filteredEmojiGroups.map((function(t){return S()(t.emojis,e.itemPerRow).map((function(e,n){return B(B({},t),{},{id:0===n?t.id:"row-".concat(n,"-").concat(t.id),emojis:e,isFirstRow:0===n})}))})).reduce((function(e,t){return e.concat(t)}),[])},languages:function(){return(0,I.ensureFinalFallback)(this.$store.getters.mergedConfig.interfaceLanguage)},maybeLocalizedEmojiName:function(){var e=this;return function(t){if(!t.annotations)return t.displayText;if(t.displayTextI18n)return e.$t(t.displayTextI18n.key,t.displayTextI18n.args);var n,o=U(e.languages);try{for(o.s();!(n=o.n()).done;){var r,i=n.value;if(null!==(r=t.annotations[i])&&void 0!==r&&r.name)return t.annotations[i].name}}catch(e){o.e(e)}finally{o.f()}return t.displayText}},isInModal:function(){return"modals"===this.popoversZLayer}}},N=(0,n(83744).Z)(q,[["render",function(e,t,n,D,_,k){var C=(0,o.up)("still-image"),S=(0,o.up)("FAIcon"),j=(0,o.up)("DynamicScrollerItem"),F=(0,o.up)("DynamicScroller"),A=(0,o.up)("Checkbox"),O=(0,o.up)("sticker-picker"),E=(0,o.up)("Popover"),z=(0,o.Q2)("body-scroll-lock");return(0,o.wg)(),(0,o.j4)(E,{ref:"popover",trigger:"click","popover-class":"emoji-picker popover-default","trigger-attrs":{"aria-hidden":!0},onShow:e.onPopoverShown,onClose:e.onPopoverClosed},{content:(0,o.w5)((function(){return[(0,o._)("div",s,[(0,o.wy)(((0,o.wg)(),(0,o.iD)("span",a,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.filteredEmojiGroups,(function(t){return(0,o.wg)(),(0,o.iD)("span",{ref_for:!0,ref:e.setGroupRef("group-header-"+t.id),key:t.id,class:(0,r.C_)(["emoji-tabs-item",{active:e.activeGroupView===t.id}]),title:t.text,role:"button",onClick:(0,i.iM)((function(n){return e.highlight(t.id)}),["prevent"])},[t.image?((0,o.wg)(),(0,o.iD)("span",c,[(0,o.Wm)(C,{alt:t.text,src:t.image},null,8,["alt","src"])])):((0,o.wg)(),(0,o.j4)(S,{key:1,icon:t.icon,"fixed-width":""},null,8,["icon"]))],10,u)})),128))])),[[z,e.isInModal]]),e.stickerPickerEnabled?((0,o.wg)(),(0,o.iD)("span",l,[(0,o._)("span",{class:(0,r.C_)(["stickers-tab-icon additional-tabs-item",{active:e.showingStickers}]),title:e.$t("emoji.stickers"),onClick:t[0]||(t[0]=(0,i.iM)((function(){return e.toggleStickers&&e.toggleStickers.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(S,{icon:"sticky-note","fixed-width":""})],10,d)])):(0,o.kq)("",!0)]),e.contentLoaded?((0,o.wg)(),(0,o.iD)("div",p,[(0,o._)("div",{class:(0,r.C_)(["emoji-content",{hidden:e.showingStickers}])},[(0,o._)("div",m,[(0,o.wy)((0,o._)("input",{ref:"search","onUpdate:modelValue":t[1]||(t[1]=function(t){return e.keyword=t}),type:"text",class:"form-control",placeholder:e.$t("emoji.search_emoji"),onInput:t[2]||(t[2]=function(e){return e.target.composing=!1})},null,40,h),[[i.nr,e.keyword]])]),(0,o.wy)(((0,o.wg)(),(0,o.j4)(F,{ref:"emoji-groups",class:(0,r.C_)(["emoji-groups",e.groupsScrolledClass]),"min-item-size":e.minItemSize,items:e.emojiItems,"emit-update":!0,onUpdate:e.onScroll,onVisible:e.recalculateItemPerRow,onResize:e.recalculateItemPerRow},{default:(0,o.w5)((function(t){var n=t.item,s=t.index,a=t.active;return[(0,o.Wm)(j,{ref:e.setGroupRef("group-"+n.id),item:n,active:a,"data-index":s,"size-dependencies":[n.emojis.length]},{default:(0,o.w5)((function(){return[(0,o._)("div",f,[n.isFirstRow?((0,o.wg)(),(0,o.iD)("h6",g,(0,r.zw)(n.text),1)):(0,o.kq)("",!0),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(n.emojis,(function(t){return(0,o.wg)(),(0,o.iD)("span",{key:n.id+t.displayText,title:e.maybeLocalizedEmojiName(t),class:"emoji-item",role:"button",onClick:(0,i.iM)((function(n){return e.onEmoji(t)}),["stop","prevent"])},[t.imageUrl?((0,o.wg)(),(0,o.j4)(C,{key:1,class:"emoji-picker-emoji -custom",loading:"lazy",alt:e.maybeLocalizedEmojiName(t),src:t.imageUrl,"data-emoji-name":n.id+t.displayText},null,8,["alt","src","data-emoji-name"])):((0,o.wg)(),(0,o.iD)("span",w,(0,r.zw)(t.replacement),1))],8,v)})),128))])]})),_:2},1032,["item","active","data-index","size-dependencies"])]})),_:1},8,["class","min-item-size","items","onUpdate","onVisible","onResize"])),[[z,e.isInModal]]),(0,o._)("div",b,[(0,o.Wm)(A,{modelValue:e.keepOpen,"onUpdate:modelValue":t[3]||(t[3]=function(t){return e.keepOpen=t})},{default:(0,o.w5)((function(){return[(0,o.Uk)((0,r.zw)(e.$t("emoji.keep_open")),1)]})),_:1},8,["modelValue"])])],2),e.showingStickers?((0,o.wg)(),(0,o.iD)("div",y,[(0,o.Wm)(O,{onUploaded:e.onStickerUploaded,onUploadFailed:e.onStickerUploadFailed},null,8,["onUploaded","onUploadFailed"])])):(0,o.kq)("",!0)])):(0,o.kq)("",!0)]})),_:1},8,["onShow","onClose"])}]])},72884:(e,t,n)=>{"use strict";n.d(t,{Z:()=>h});var o,r=n(66252),i=n(3577),s={class:"Flash"},a={key:0,class:"label"},u={key:1,class:"label"},c={key:2,class:"label"};const l=(o=null,{getRuffle:function(){return new Promise((function(e,t){if(o)e(o);else{window.RufflePlayer={},window.RufflePlayer.config={polyfills:!1,publicPath:"/static/ruffle"};var n=document.createElement("script");n.src="/static/ruffle/ruffle.js",n.type="text/javascript",n.onerror=function(e){t(e)},n.onabort=function(e){t(e)},n.oncancel=function(e){t(e)},n.onload=function(){o=window.RufflePlayer,e(o)},document.body.appendChild(n)}}))}});var d=n(9382),p=n(84131);d.vI.add(p.Bg$,p.eHv);const m={props:["src"],data:function(){return{player:!1,loaded:!1,ruffleInstance:null}},methods:{openPlayer:function(){var e=this;this.player||(this.player="hidden",l.getRuffle().then((function(t){var n=t.newest().createPlayer();n.config={letterbox:"on"},e.$refs.container.appendChild(n),n.style.width="100%",n.style.height="100%",n.load(e.src).then((function(){e.player=!0})).catch((function(t){console.error("Error loading ruffle",t),e.player="error"})),e.ruffleInstance=n,e.$emit("playerOpened")})))},closePlayer:function(){this.ruffleInstance&&this.ruffleInstance.remove(),this.player=!1,this.$emit("playerClosed")}}},h=(0,n(83744).Z)(m,[["render",function(e,t,n,o,l,d){var p=(0,r.up)("FAIcon");return(0,r.wg)(),(0,r.iD)("div",s,[!0===e.player||"hidden"===e.player?((0,r.wg)(),(0,r.iD)("div",{key:0,ref:"container",class:(0,i.C_)(["player",{hidden:"hidden"===e.player}])},null,2)):(0,r.kq)("",!0),!0!==e.player?((0,r.wg)(),(0,r.iD)("button",{key:1,class:"button-unstyled placeholder",onClick:t[0]||(t[0]=function(){return e.openPlayer&&e.openPlayer.apply(e,arguments)})},["hidden"===e.player?((0,r.wg)(),(0,r.iD)("span",a,(0,i.zw)(e.$t("general.loading")),1)):(0,r.kq)("",!0),"error"===e.player?((0,r.wg)(),(0,r.iD)("span",u,(0,i.zw)(e.$t("general.flash_fail")),1)):((0,r.wg)(),(0,r.iD)("span",c,[(0,r._)("p",null,(0,i.zw)(e.$t("general.flash_content")),1),(0,r._)("p",null,[(0,r.Wm)(p,{icon:"exclamation-triangle"}),(0,r.Uk)(" "+(0,i.zw)(e.$t("general.flash_security")),1)])]))])):(0,r.kq)("",!0)])}]])},34837:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var o=n(66252),r=n(3577),i=["disabled","title"],s=["textContent"],a=n(1447),u=n(29439),c=function e(t,n,o){return new Promise((function(e,r){setTimeout((function(){o.state.api.backendInteractor.fetchUserRelationship({id:n}).then((function(e){return o.commit("updateUserRelationship",[e]),e})).then((function(n){return e([n.following,n.requested,n.locked,t])})).catch((function(e){return r(e)}))}),500)})).then((function(t){var r=(0,u.Z)(t,4),i=r[0],s=r[1],a=r[2],c=r[3];i||a&&s||!(c<=3)||e(++c,n,o)}))},l=function(e,t){return new Promise((function(n,o){t.state.api.backendInteractor.followUser({id:e}).then((function(e){if(t.commit("updateUserRelationship",[e]),!(e.following||e.locked&&e.requested))return c(1,e,t).then((function(){n()}));n()}))}))};const d={props:["relationship","user","labelFollowing","buttonClass"],components:{ConfirmModal:a.Z},data:function(){return{inProgress:!1,showingConfirmUnfollow:!1}},computed:{shouldConfirmUnfollow:function(){return this.$store.getters.mergedConfig.modalOnUnfollow},isPressed:function(){return this.inProgress||this.relationship.following},title:function(){return this.inProgress||this.relationship.following?this.$t("user_card.follow_unfollow"):this.relationship.requested?this.$t("user_card.follow_cancel"):this.$t("user_card.follow")},label:function(){return this.inProgress?this.$t("user_card.follow_progress"):this.relationship.following?this.labelFollowing||this.$t("user_card.following"):this.relationship.requested?this.$t("user_card.follow_sent"):this.$t("user_card.follow")},disabled:function(){return this.inProgress||this.user.deactivated}},methods:{showConfirmUnfollow:function(){this.showingConfirmUnfollow=!0},hideConfirmUnfollow:function(){this.showingConfirmUnfollow=!1},onClick:function(){this.relationship.following||this.relationship.requested?this.unfollow():this.follow()},follow:function(){var e=this;this.inProgress=!0,l(this.relationship.id,this.$store).then((function(){e.inProgress=!1}))},unfollow:function(){this.shouldConfirmUnfollow?this.showConfirmUnfollow():this.doUnfollow()},doUnfollow:function(){var e=this,t=this.$store;this.inProgress=!0,function(e,t){return new Promise((function(n,o){t.state.api.backendInteractor.unfollowUser({id:e}).then((function(e){t.commit("updateUserRelationship",[e]),n({updated:e})}))}))}(this.relationship.id,t).then((function(){e.inProgress=!1,t.commit("removeStatus",{timeline:"friends",userId:e.relationship.id})})),this.hideConfirmUnfollow()}}},p=(0,n(83744).Z)(d,[["render",function(e,t,n,a,u,c){var l=(0,o.up)("i18n-t"),d=(0,o.up)("confirm-modal");return(0,o.wg)(),(0,o.iD)("button",{class:(0,r.C_)(["btn button-default follow-button",{toggled:e.isPressed}]),disabled:e.disabled,title:e.title,onClick:t[0]||(t[0]=function(){return e.onClick&&e.onClick.apply(e,arguments)})},[(0,o.Uk)((0,r.zw)(e.label)+" ",1),((0,o.wg)(),(0,o.j4)(o.lR,{to:"#modal"},[e.showingConfirmUnfollow?((0,o.wg)(),(0,o.j4)(d,{key:0,title:e.$t("user_card.unfollow_confirm_title"),"confirm-text":e.$t("user_card.unfollow_confirm_accept_button"),"cancel-text":e.$t("user_card.unfollow_confirm_cancel_button"),onAccepted:e.doUnfollow,onCancelled:e.hideConfirmUnfollow},{default:(0,o.w5)((function(){return[(0,o.Wm)(l,{keypath:"user_card.unfollow_confirm",tag:"span"},{user:(0,o.w5)((function(){return[(0,o._)("span",{textContent:(0,r.zw)(e.user.screen_name_ui)},null,8,s)]})),_:1})]})),_:1},8,["title","confirm-text","cancel-text","onAccepted","onCancelled"])):(0,o.kq)("",!0)]))],10,i)}]])},67671:(e,t,n)=>{"use strict";n.d(t,{Z:()=>w});var o=n(66252),r=n(3577),i={class:"gallery-rows"},s={key:0,class:"many-attachments"},a={class:"many-attachments-text"},u={class:"many-attachments-buttons"},c={key:0,class:"many-attachments-button"},l={key:1,class:"many-attachments-button"},d={key:2,class:"many-attachments-button"},p=n(93433),m=n(36968),h=n.n(m),f=n(73303),g=n.n(f);const v={props:["attachments","compact","limitRows","descriptions","limit","nsfw","setMedia","size","editable","removeAttachment","shiftUpAttachment","shiftDnAttachment","editAttachment","grid"],data:function(){return{sizes:{},hidingLong:!0}},components:{Attachment:n(66596).Z},computed:{rows:function(){var e=this;if(!this.attachments)return[];var t=this.limit>0?this.attachments.slice(0,this.limit):this.attachments;return"hide"===this.size?t.map((function(e){return{minimal:!0,items:[e]}})):this.grid?[{grid:!0,items:t}]:t.reduce((function(t,n,o){if(n.mimetype.includes("audio"))return[].concat((0,p.Z)(t),[{audio:!0,items:[n]},{items:[]}]);if(!(n.mimetype.includes("image")||n.mimetype.includes("video")||n.mimetype.includes("flash")))return[].concat((0,p.Z)(t),[{minimal:!0,items:[n]},{items:[]}]);var r=e.attachments.length-o+1,i=t[t.length-1].items;return i.push(n),i.length>=3&&r>3?[].concat((0,p.Z)(t),[{items:[]}]):t}),[{items:[]}]).filter((function(e){return e.items.length>0}))},attachmentsDimensionalScore:function(){return this.rows.reduce((function(e,t){var n=0;return t.minimal?n+=1/8:t.audio?n+=1/4:n+=1/(t.items.length+.6),e+n}),0)},tooManyAttachments:function(){return!this.editable&&"small"!==this.size&&("hide"===this.size?this.attachments.length>8:this.attachmentsDimensionalScore>1)}},methods:{onNaturalSizeLoad:function(e){var t=e.id,n=e.width,o=e.height;h()(this.sizes,t,{width:n,height:o})},rowStyle:function(e){return e.audio?{"padding-bottom":"25%"}:e.minimal||e.grid?void 0:{"padding-bottom":"".concat(100/(e.items.length+.6),"%")}},itemStyle:function(e,t){var n=this,o=g()(t,(function(e){return n.getAspectRatio(e.id)}));return{flex:"".concat(this.getAspectRatio(e)/o," 1 0%")}},getAspectRatio:function(e){var t=this.sizes[e];return t?t.width/t.height:1},toggleHidingLong:function(e){this.hidingLong=e},openGallery:function(){this.$store.dispatch("setMedia",this.attachments),this.$store.dispatch("setCurrentMedia",this.attachments[0])},onMedia:function(){this.$store.dispatch("setMedia",this.attachments)}}},w=(0,n(83744).Z)(v,[["render",function(e,t,n,p,m,h){var f=(0,o.up)("Attachment");return(0,o.wg)(),(0,o.iD)("div",{ref:"galleryContainer",class:(0,r.C_)(["Gallery",{"-long":e.tooManyAttachments&&e.hidingLong}])},[(0,o._)("div",i,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.rows,(function(t,n){return(0,o.wg)(),(0,o.iD)("div",{key:n,class:(0,r.C_)(["gallery-row",{"-audio":t.audio,"-minimal":t.minimal,"-grid":e.grid}]),style:(0,r.j5)(e.rowStyle(t))},[(0,o._)("div",{class:(0,r.C_)(["gallery-row-inner",{"-grid":e.grid}])},[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(t.items,(function(i,s){return(0,o.wg)(),(0,o.j4)(f,{key:i.id,class:"gallery-item",compact:e.compact,nsfw:e.nsfw,attachment:i,size:e.size,editable:e.editable,remove:e.removeAttachment,"shift-up":!(0===s&&0===n)&&e.shiftUpAttachment,"shift-dn":!(s===t.items.length-1&&n===e.rows.length-1)&&e.shiftDnAttachment,edit:e.editAttachment,description:e.descriptions&&e.descriptions[i.id],"hide-description":"small"===e.size||e.tooManyAttachments&&e.hidingLong,style:(0,r.j5)(e.itemStyle(i.id,t.items)),onSetMedia:e.onMedia,onNaturalSizeLoad:e.onNaturalSizeLoad},null,8,["compact","nsfw","attachment","size","editable","remove","shift-up","shift-dn","edit","description","hide-description","style","onSetMedia","onNaturalSizeLoad"])})),128))],2)],6)})),128))]),e.tooManyAttachments?((0,o.wg)(),(0,o.iD)("div",s,[(0,o._)("div",a,(0,r.zw)(e.$t("status.many_attachments",{number:e.attachments.length})),1),(0,o._)("div",u,[e.hidingLong?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("span",c,[(0,o._)("button",{class:"button-unstyled -link",onClick:t[0]||(t[0]=function(t){return e.toggleHidingLong(!0)})},(0,r.zw)(e.$t("status.collapse_attachments")),1)])),e.hidingLong?((0,o.wg)(),(0,o.iD)("span",l,[(0,o._)("button",{class:"button-unstyled -link",onClick:t[1]||(t[1]=function(t){return e.toggleHidingLong(!1)})},(0,r.zw)(e.$t("status.show_all_attachments")),1)])):(0,o.kq)("",!0),e.hidingLong?((0,o.wg)(),(0,o.iD)("span",d,[(0,o._)("button",{class:"button-unstyled -link",onClick:t[2]||(t[2]=function(){return e.openGallery&&e.openGallery.apply(e,arguments)})},(0,r.zw)(e.$t("status.open_gallery")),1)])):(0,o.kq)("",!0)])])):(0,o.kq)("",!0)],2)}]])},86269:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var o=n(66252),r=n(3577),i={class:"interface-language-switcher"},s={class:"setting-list"},a=["value"],u=["onClick"],c=n(93433),l=n(39776);const d={components:{Select:n(76990).Z},props:{promptText:{type:String,required:!0},language:{type:[Array,String],required:!0},setLanguage:{type:Function,required:!0}},computed:{languages:function(){return l.Z.languages},controlledLanguage:{get:function(){return Array.isArray(this.language)?this.language:[this.language]},set:function(e){this.setLanguage(e)}}},methods:{getLanguageName:function(e){return l.Z.getLanguageName(e)},addLanguage:function(){this.controlledLanguage=[].concat((0,c.Z)(this.controlledLanguage),[""])},setLanguageAt:function(e,t){var n=(0,c.Z)(this.controlledLanguage);n[e]=t,this.controlledLanguage=n},removeLanguageAt:function(e){var t=(0,c.Z)(this.controlledLanguage);t.splice(e,1),this.controlledLanguage=t}}},p=(0,n(83744).Z)(d,[["render",function(e,t,n,c,l,d){var p=(0,o.up)("Select");return(0,o.wg)(),(0,o.iD)("div",i,[(0,o._)("label",null,(0,r.zw)(n.promptText),1),(0,o._)("ul",s,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(d.controlledLanguage.keys(),(function(t){return(0,o.wg)(),(0,o.iD)("li",{key:t},[(0,o._)("label",null,[(0,o.Uk)((0,r.zw)(0===t?e.$t("settings.primary_language"):e.$tc("settings.fallback_language",t,{index:t}))+" ",1),(0,o.Wm)(p,{class:"language-select","model-value":d.controlledLanguage[t],"onUpdate:modelValue":function(e){return d.setLanguageAt(t,e)}},{default:(0,o.w5)((function(){return[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(d.languages,(function(e){return(0,o.wg)(),(0,o.iD)("option",{key:e.code,value:e.code},(0,r.zw)(e.name),9,a)})),128))]})),_:2},1032,["model-value","onUpdate:modelValue"])]),d.controlledLanguage.length>1&&0!==t?((0,o.wg)(),(0,o.iD)("button",{key:0,class:"button-default btn",onClick:function(){return d.removeLanguageAt(t)}},(0,r.zw)(e.$t("settings.remove_language")),9,u)):(0,o.kq)("",!0)])})),128)),(0,o._)("li",null,[(0,o._)("button",{class:"button-default btn",onClick:t[0]||(t[0]=function(){return d.addLanguage&&d.addLanguage.apply(d,arguments)})},(0,r.zw)(e.$t("settings.add_language")),1)])])])}]])},92798:(e,t,n)=>{"use strict";n.d(t,{Z:()=>g});var o=n(66252),r=n(3577),i=["href"],s={key:0,class:"card-image"},a=["src"],u={class:"card-content"},c={class:"card-host faint"},l={key:0,class:"nsfw-alert alert warning"},d={class:"card-title"},p={key:0,class:"card-description"},m=n(4942);function h(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}const f={name:"LinkPreview",props:["card","size","nsfw"],data:function(){return{imageLoaded:!1}},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?h(Object(n),!0).forEach((function(t){(0,m.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):h(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({useImage:function(){return this.card.image&&!this.censored&&"hide"!==this.size},censored:function(){return this.nsfw&&this.hideNsfwConfig},useDescription:function(){return this.card.description&&/\S/.test(this.card.description)},hideNsfwConfig:function(){return this.mergedConfig.hideNsfw}},(0,n(989).Se)(["mergedConfig"])),created:function(){var e=this;if(this.useImage){var t=new Image;t.onload=function(){e.imageLoaded=!0},t.src=this.card.image}}},g=(0,n(83744).Z)(f,[["render",function(e,t,n,m,h,f){return(0,o.wg)(),(0,o.iD)("div",null,[(0,o._)("a",{class:"link-preview-card",href:e.card.url,target:"_blank",rel:"noopener"},[e.useImage&&e.imageLoaded?((0,o.wg)(),(0,o.iD)("div",s,[(0,o._)("img",{src:e.card.image},null,8,a)])):(0,o.kq)("",!0),(0,o._)("div",u,[(0,o._)("span",c,[e.censored?((0,o.wg)(),(0,o.iD)("span",l,(0,r.zw)(e.$t("status.nsfw")),1)):(0,o.kq)("",!0),(0,o.Uk)(" "+(0,r.zw)(e.card.provider_name),1)]),(0,o._)("h4",d,(0,r.zw)(e.card.title),1),e.useDescription?((0,o.wg)(),(0,o.iD)("p",p,(0,r.zw)(e.card.description),1)):(0,o.kq)("",!0)])],8,i)])}]])},88369:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var o=n(66252),r={class:"list",role:"list"},i={key:0,class:"list-empty-content faint"};const s={props:{items:{type:Array,default:function(){return[]}},getKey:{type:Function,default:function(e){return e.id}}}},a=(0,n(83744).Z)(s,[["render",function(e,t,n,s,a,u){return(0,o.wg)(),(0,o.iD)("div",r,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(n.items,(function(t){return(0,o.wg)(),(0,o.iD)("div",{key:n.getKey(t),class:"list-item",role:"listitem"},[(0,o.WI)(e.$slots,"item",{item:t})])})),128)),0===n.items.length&&e.$slots.empty?((0,o.wg)(),(0,o.iD)("div",i,[(0,o.WI)(e.$slots,"empty")])):(0,o.kq)("",!0)])}]])},37804:(e,t,n)=>{"use strict";n.d(t,{Z:()=>m});var o=n(66252),r=n(3577),i=["title"],s=["disabled","accept"],a=n(7257),u=n(65079),c=n(9382),l=n(84131);function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}c.vI.add(l.cf$,l.IJ7);const p={data:function(){return{uploadCount:0,uploadReady:!0}},computed:{uploading:function(){return this.uploadCount>0}},methods:{onClick:function(){this.uploadReady&&this.$refs.input.click()},uploadFile:function(e){var t=this,n=this.$store;if(e.size>n.state.instance.uploadlimit){var o=u.Z.fileSizeFormat(e.size),r=u.Z.fileSizeFormat(n.state.instance.uploadlimit);t.$emit("upload-failed","file_too_big",{filesize:o.num,filesizeunit:o.unit,allowedsize:r.num,allowedsizeunit:r.unit})}else{var i=new FormData;i.append("file",e),t.$emit("uploading"),t.uploadCount++,a.Z.uploadMedia({store:n,formData:i}).then((function(e){t.$emit("uploaded",e),t.decreaseUploadCount()}),(function(e){console.error("Error uploading file",e),t.$emit("upload-failed","default"),t.decreaseUploadCount()}))}},decreaseUploadCount:function(){this.uploadCount--,0===this.uploadCount&&this.$emit("all-uploaded")},clearFile:function(){var e=this;this.uploadReady=!1,this.$nextTick((function(){e.uploadReady=!0}))},multiUpload:function(e){var t,n=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return d(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?d(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0,r=function(){};return{s:r,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,i=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw i}}}}(e);try{for(n.s();!(t=n.n()).done;){var o=t.value;this.uploadFile(o)}}catch(e){n.e(e)}finally{n.f()}},change:function(e){var t=e.target;this.multiUpload(t.files)}},props:{dropFiles:Object,disabled:Boolean,normalButton:Boolean,acceptTypes:{type:String,default:"*/*"}},watch:{dropFiles:function(e){this.uploading||this.multiUpload(e)}}},m=(0,n(83744).Z)(p,[["render",function(e,t,n,a,u,c){var l=(0,o.up)("FAIcon");return(0,o.wg)(),(0,o.iD)("button",{class:(0,r.C_)(["media-upload",[e.normalButton?"button-default btn":"button-unstyled",{disabled:e.disabled}]]),title:e.$t("tool_tip.media_upload"),onClick:t[1]||(t[1]=function(){return e.onClick&&e.onClick.apply(e,arguments)})},[e.uploading?((0,o.wg)(),(0,o.j4)(l,{key:0,class:"progress-icon",icon:"circle-notch",spin:""})):(0,o.kq)("",!0),e.uploading?(0,o.kq)("",!0):((0,o.wg)(),(0,o.j4)(l,{key:1,class:"new-icon",icon:"upload"})),e.normalButton?((0,o.wg)(),(0,o.iD)(o.HY,{key:2},[(0,o.Uk)((0,r.zw)(" ")+" "+(0,r.zw)(e.uploading?e.$t("general.loading"):e.$t("tool_tip.media_upload")),1)],64)):(0,o.kq)("",!0),e.uploadReady?((0,o.wg)(),(0,o.iD)("input",{key:3,ref:"input",class:"hidden-input-file",disabled:e.disabled,type:"file",multiple:"true",accept:e.acceptTypes,onChange:t[0]||(t[0]=function(){return e.change&&e.change.apply(e,arguments)})},null,40,s)):(0,o.kq)("",!0)],10,i)}]])},20460:(e,t,n)=>{"use strict";n.d(t,{Z:()=>A});var o=n(66252),r=n(3577),i=n(49963),s={class:"MentionLink"},a=["href","innerHTML"],u=["href"],c={class:"shortName"},l=["innerHTML"],d=["innerHTML"],p={ref:"full",class:"full"},m=["innerHTML"],h=["innerHTML"],f=n(44925),g=n(4942),v=n(4493),w=n(989),b=n(95052),y=n(48173),D=n(42262),_=n(9382),k=n(84131),C=["backgroundColor","backgroundPosition","backgroundImage"];function S(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function j(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?S(Object(n),!0).forEach((function(t){(0,g.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):S(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}_.vI.add(k.IBq);const F={name:"MentionLink",components:{UserAvatar:y.default,UnicodeDomainIndicator:D.Z,UserPopover:(0,o.RC)((function(){return Promise.resolve().then(n.bind(n,22588))}))},props:{url:{required:!0,type:String},content:{required:!0,type:String},userId:{required:!1,type:String},userScreenName:{required:!1,type:String}},data:function(){return{hasSelection:!1}},methods:{onClick:function(){if(!this.shouldShowTooltip){var e=(0,v.Z)(this.userId||this.user.id,this.userScreenName||this.user.screen_name);this.$router.push(e)}},handleSelection:function(){this.hasSelection=document.getSelection().containsNode(this.$refs.full,!0)}},mounted:function(){document.addEventListener("selectionchange",this.handleSelection)},unmounted:function(){document.removeEventListener("selectionchange",this.handleSelection)},computed:j(j({user:function(){return this.url&&this.$store&&this.$store.getters.findUserByUrl(this.url)},isYou:function(){return this.user&&this.user.id===this.currentUser.id},userName:function(){return this.user&&this.userNameFullUi.split("@")[0]},serverName:function(){return this.user&&(this.userNameFullUi.split("@")[1]||this.$store.getters.instanceDomain)},userNameFull:function(){return this.user&&this.user.screen_name},userNameFullUi:function(){return this.user&&this.user.screen_name_ui},highlight:function(){return this.user&&this.mergedConfig.highlight[this.user.screen_name]},highlightType:function(){return this.highlight&&"-"+this.highlight.type},highlightClass:function(){if(this.highlight)return(0,b.M)(this.user)},style:function(){if(this.highlight){var e=(0,b.q)(this.highlight);return e.backgroundColor,e.backgroundPosition,e.backgroundImage,(0,f.Z)(e,C)}},classnames:function(){return[{"-you":this.isYou&&this.shouldBoldenYou,"-highlighted":this.highlight,"-has-selection":this.hasSelection},this.highlightType]},useAtIcon:function(){return this.mergedConfig.useAtIcon},isRemote:function(){return this.userName!==this.userNameFull},shouldShowFullUserName:function(){var e=this.mergedConfig.mentionLinkDisplay;return"short"!==e&&("full"===e||this.isRemote)},shouldShowTooltip:function(){return this.mergedConfig.mentionLinkShowTooltip},shouldShowAvatar:function(){return this.mergedConfig.mentionLinkShowAvatar},shouldShowYous:function(){return this.mergedConfig.mentionLinkShowYous},shouldBoldenYou:function(){return this.mergedConfig.mentionLinkBoldenYou},shouldFadeDomain:function(){return this.mergedConfig.mentionLinkFadeDomain}},(0,w.Se)(["mergedConfig"])),(0,w.rn)({currentUser:function(e){return e.users.currentUser}}))},A=(0,n(83744).Z)(F,[["render",function(e,t,n,f,g,v){var w=(0,o.up)("UserAvatar"),b=(0,o.up)("FAIcon"),y=(0,o.up)("UnicodeDomainIndicator"),D=(0,o.up)("UserPopover");return(0,o.wg)(),(0,o.iD)("span",s,[e.user?((0,o.wg)(),(0,o.j4)(D,{key:1,"user-id":e.user.id,disabled:!e.shouldShowTooltip},{default:(0,o.w5)((function(){return[e.user?((0,o.wg)(),(0,o.iD)("span",{key:0,class:(0,r.C_)(["new",e.classnames]),style:(0,r.j5)(e.style)},[(0,o._)("a",{class:(0,r.C_)(["short button-unstyled",{"-with-tooltip":e.shouldShowTooltip}]),href:e.url,onClick:t[0]||(t[0]=(0,i.iM)((function(){return e.onClick&&e.onClick.apply(e,arguments)}),["prevent"]))},[e.shouldShowAvatar?((0,o.wg)(),(0,o.j4)(w,{key:0,class:"mention-avatar",user:e.user},null,8,["user"])):(0,o.kq)("",!0),(0,o._)("span",c,[e.useAtIcon?((0,o.wg)(),(0,o.j4)(b,{key:0,size:"sm",icon:"at",class:"at"})):(0,o.kq)("",!0),(0,o.Uk)((0,r.zw)(e.useAtIcon?"":"@"),1),(0,o._)("span",{class:"userName",innerHTML:e.userName},null,8,l),e.shouldShowFullUserName?((0,o.wg)(),(0,o.iD)("span",{key:1,class:(0,r.C_)(["serverName",{"-faded":e.shouldFadeDomain}]),innerHTML:"@"+e.serverName},null,10,d)):(0,o.kq)("",!0),e.shouldShowFullUserName?((0,o.wg)(),(0,o.j4)(y,{key:2,user:e.user},null,8,["user"])):(0,o.kq)("",!0)]),e.isYou&&e.shouldShowYous?((0,o.wg)(),(0,o.iD)("span",{key:1,class:(0,r.C_)({"-you":e.shouldBoldenYou})},(0,r.zw)(" "+e.$t("status.you")),3)):(0,o.kq)("",!0)],10,u),(0,o._)("span",p,[(0,o.Uk)(" @"),(0,o._)("span",{innerHTML:e.userName},null,8,m),(0,o._)("span",{innerHTML:"@"+e.serverName},null,8,h)],512)],6)):(0,o.kq)("",!0)]})),_:1},8,["user-id","disabled"])):((0,o.wg)(),(0,o.iD)("a",{key:0,href:e.url,class:"original",target:"_blank",innerHTML:e.content},null,8,a))])}]])},21268:(e,t,n)=>{"use strict";n.d(t,{d:()=>p,Z:()=>h});var o=n(66252),r=n(3577),i={class:"MentionsLine"},s={key:0,class:"extraMentions"},a={key:0,class:"fullExtraMentions"},u=n(4942),c=n(20460),l=n(989);function d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}var p=5;const m={name:"MentionsLine",props:{mentions:{required:!0,type:Array}},data:function(){return{expanded:!1}},components:{MentionLink:c.Z},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?d(Object(n),!0).forEach((function(t){(0,u.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):d(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({mentionsComputed:function(){return this.mentions.slice(0,p)},extraMentions:function(){return this.mentions.slice(p)},manyMentions:function(){return this.extraMentions.length>0}},(0,l.Se)(["mergedConfig"])),methods:{toggleShowMore:function(){this.expanded=!this.expanded}}},h=(0,n(83744).Z)(m,[["render",function(e,t,n,u,c,l){var d=(0,o.up)("MentionLink");return(0,o.wg)(),(0,o.iD)("span",i,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.mentionsComputed,(function(e){return(0,o.wg)(),(0,o.j4)(d,{key:e.index,class:"mention-link",content:e.content,url:e.url},null,8,["content","url"])})),128)),e.manyMentions?((0,o.wg)(),(0,o.iD)("span",s,[e.expanded?((0,o.wg)(),(0,o.iD)("span",a,[(0,o.Uk)((0,r.zw)(" ")),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.extraMentions,(function(e){return(0,o.wg)(),(0,o.j4)(d,{key:e.index,class:"mention-link",content:e.content,url:e.url},null,8,["content","url"])})),128))])):(0,o.kq)("",!0),e.expanded?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("button",{key:1,class:"button-unstyled showMoreLess",onClick:t[0]||(t[0]=function(){return e.toggleShowMore&&e.toggleShowMore.apply(e,arguments)})},(0,r.zw)(e.$t("status.plus_more",{number:e.extraMentions.length})),1)),e.expanded?((0,o.wg)(),(0,o.iD)("button",{key:2,class:"button-unstyled showMoreLess",onClick:t[1]||(t[1]=function(){return e.toggleShowMore&&e.toggleShowMore.apply(e,arguments)})},(0,r.zw)(e.$t("general.show_less")),1)):(0,o.kq)("",!0)])):(0,o.kq)("",!0)])}]])},48328:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var o=n(66252),r=n(3577),i=n(49963);const s={provide:{popoversZLayer:"modals"},props:{isOpen:{type:Boolean,default:!0},noBackground:{type:Boolean,default:!1}},computed:{classes:function(){return{"modal-background":!this.noBackground,open:this.isOpen}}}},a=(0,n(83744).Z)(s,[["render",function(e,t,n,s,a,u){var c=(0,o.Q2)("body-scroll-lock");return(0,o.wy)(((0,o.wg)(),(0,o.iD)("div",{class:(0,r.C_)(["modal-view",u.classes]),onClick:t[0]||(t[0]=(0,i.iM)((function(t){return e.$emit("backdropClicked")}),["self"]))},[(0,o.WI)(e.$slots,"default")],2)),[[i.F8,n.isOpen],[c,n.isOpen&&!n.noBackground]])}]])},93737:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>Be});var o=n(66252),r=n(3577),i=n(49963),s={key:0,class:"notifications-heading panel-heading -sticky"},a={class:"title"},u={key:0,class:"badge badge-notification unseen-count"},c={key:0,class:"rightside-button"},l=["title"],d={class:"panel-body",role:"feed"},p=(0,o._)("div",{class:"notification-overlay"},null,-1),m={class:"panel-footer"},h={key:0,class:"new-status-notification text-center faint"},f={class:"new-status-notification text-center"},g={key:2,class:"new-status-notification text-center"},v=n(4942),w=n(989),b={key:0},y={key:1},D={key:0,class:"Notification container -muted"},_=["href"],k={class:"notification-right"},C={class:"notification-details"},S={class:"name-and-action"},j={key:0},F=["title"],A={key:2},O={key:3},E={key:4},z={key:5},P={key:6},I={key:7},x=["src","alt","title"],T={key:1,class:"emoji-reaction-emoji"},$={key:8},B={key:9},U={key:0,class:"timeago"},M=["title","aria-expanded"],L={key:1,class:"timeago"},R={class:"faint"},q=["title","aria-expanded"],N={key:0,class:"follow-text"},Z={key:0,style:{"white-space":"nowrap"}},W=["title"],H=["title"],V={key:1,class:"move-text"},K=n(10252),G=n(96686),Y=n(48173),J=n(20392),Q=n(1840),X={class:"Report"},ee={class:"reported-user"},te={class:"reporter"},ne={class:"report-state"},oe=["value"],re={key:0},ie={class:"reported-status-heading"},se={class:"reported-status-name"},ae={key:1},ue=n(76990),ce=n(92820),le=n(4493);const de={props:["reportId"],components:{Select:ue.Z,StatusContent:K.Z,Timeago:Q.Z,RichContent:ce.Z},computed:{report:function(){return console.log(this.$store.state.reports.reports[this.reportId]||{}),this.$store.state.reports.reports[this.reportId]||{}},state:{get:function(){return this.report.state},set:function(e){this.setReportState(e)}}},methods:{generateUserProfileLink:function(e){return(0,le.Z)(e.id,e.screen_name,this.$store.state.instance.restrictedNicknames)},setReportState:function(e){return this.$store.dispatch("setReportState",{id:this.report.id,state:e})}}};var pe=n(83744);const me=(0,pe.Z)(de,[["render",function(e,t,n,i,s,a){var u=(0,o.up)("router-link"),c=(0,o.up)("Select"),l=(0,o.up)("RichContent"),d=(0,o.up)("Timeago"),p=(0,o.up)("status-content");return(0,o.wg)(),(0,o.iD)("div",X,[(0,o._)("div",ee,[(0,o._)("span",null,(0,r.zw)(e.$t("report.reported_user")),1),(0,o.Wm)(u,{to:e.generateUserProfileLink(e.report.acct)},{default:(0,o.w5)((function(){return[(0,o.Uk)(" @"+(0,r.zw)(e.report.acct.screen_name),1)]})),_:1},8,["to"])]),(0,o._)("div",te,[(0,o._)("span",null,(0,r.zw)(e.$t("report.reporter")),1),(0,o.Wm)(u,{to:e.generateUserProfileLink(e.report.actor)},{default:(0,o.w5)((function(){return[(0,o.Uk)(" @"+(0,r.zw)(e.report.actor.screen_name),1)]})),_:1},8,["to"])]),(0,o._)("div",ne,[(0,o._)("span",null,(0,r.zw)(e.$t("report.state")),1),(0,o.Wm)(c,{id:e.report-e.state,modelValue:e.state,"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.state=t}),class:"form-control"},{default:(0,o.w5)((function(){return[((0,o.wg)(),(0,o.iD)(o.HY,null,(0,o.Ko)(["open","closed","resolved"],(function(t){return(0,o._)("option",{key:t,value:t},(0,r.zw)(e.$t("report.state_"+t)),9,oe)})),64))]})),_:1},8,["id","modelValue"])]),(0,o.Wm)(l,{class:"report-content",html:e.report.content,emoji:[]},null,8,["html"]),e.report.statuses.length?((0,o.wg)(),(0,o.iD)("div",re,[(0,o._)("small",null,(0,r.zw)(e.$t("report.reported_statuses")),1),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.report.statuses,(function(e){return(0,o.wg)(),(0,o.j4)(u,{key:e.id,to:{name:"conversation",params:{id:e.id}},class:"reported-status"},{default:(0,o.w5)((function(){return[(0,o._)("div",ie,[(0,o._)("span",se,(0,r.zw)(e.user.name),1),(0,o.Wm)(d,{time:e.created_at,"auto-update":240,class:"faint"},null,8,["time"])]),(0,o.Wm)(p,{status:e},null,8,["status"])]})),_:2},1032,["to"])})),128))])):(0,o.kq)("",!0),e.report.notes.length?((0,o.wg)(),(0,o.iD)("div",ae,[(0,o._)("small",null,(0,r.zw)(e.$t("report.notes")),1),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.report.notes,(function(e){return(0,o.wg)(),(0,o.iD)("div",{key:e.id,class:"note"},[(0,o._)("span",null,(0,r.zw)(e.content),1),(0,o.Wm)(d,{time:e.created_at,"auto-update":240,class:"faint"},null,8,["time"])])})),128))])):(0,o.kq)("",!0)])}]]);var he=n(12061),fe=n(22588),ge=n(1447),ve=n(52230),we=n(95052),be=n(9382),ye=n(84131);function De(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}be.vI.add(ye.LEp,ye.NBC,ye.Tab,ye.x5v,ye.FKd,ye.ILF,ye.Aq,ye.gmr,ye.TTL,ye.V9$);var _e={data:function(){return{statusExpanded:!1,betterShadow:this.$store.state.interface.browserSupport.cssFilter,unmuted:!1,showingApproveConfirmDialog:!1,showingDenyConfirmDialog:!1}},props:["notification"],components:{StatusContent:K.Z,UserAvatar:Y.default,UserCard:J.Z,Timeago:Q.Z,Status:G.default,Report:me,RichContent:ce.Z,UserPopover:fe.default,UserLink:he.Z,ConfirmModal:ge.Z},methods:{toggleStatusExpanded:function(){this.statusExpanded=!this.statusExpanded},generateUserProfileLink:function(e){return(0,le.Z)(e.id,e.screen_name,this.$store.state.instance.restrictedNicknames)},getUser:function(e){return this.$store.state.users.usersObject[e.from_profile.id]},toggleMute:function(){this.unmuted=!this.unmuted},showApproveConfirmDialog:function(){this.showingApproveConfirmDialog=!0},hideApproveConfirmDialog:function(){this.showingApproveConfirmDialog=!1},showDenyConfirmDialog:function(){this.showingDenyConfirmDialog=!0},hideDenyConfirmDialog:function(){this.showingDenyConfirmDialog=!1},approveUser:function(){this.shouldConfirmApprove?this.showApproveConfirmDialog():this.doApprove()},doApprove:function(){this.$store.state.api.backendInteractor.approveUser({id:this.user.id}),this.$store.dispatch("removeFollowRequest",this.user),this.$store.dispatch("markSingleNotificationAsSeen",{id:this.notification.id}),this.$store.dispatch("updateNotification",{id:this.notification.id,updater:function(e){e.type="follow"}}),this.hideApproveConfirmDialog()},denyUser:function(){this.shouldConfirmDeny?this.showDenyConfirmDialog():this.doDeny()},doDeny:function(){var e=this;this.$store.state.api.backendInteractor.denyUser({id:this.user.id}).then((function(){e.$store.dispatch("dismissNotificationLocal",{id:e.notification.id}),e.$store.dispatch("removeFollowRequest",e.user)})),this.hideDenyConfirmDialog()}},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?De(Object(n),!0).forEach((function(t){(0,v.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):De(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({userClass:function(){return(0,we.M)(this.notification.from_profile)},userStyle:function(){var e=this.$store.getters.mergedConfig.highlight,t=this.notification.from_profile;return(0,we.q)(e[t.screen_name])},user:function(){return this.$store.getters.findUser(this.notification.from_profile.id)},userProfileLink:function(){return this.generateUserProfileLink(this.user)},targetUser:function(){return this.$store.getters.findUser(this.notification.target.id)},targetUserProfileLink:function(){return this.generateUserProfileLink(this.targetUser)},needMute:function(){return this.$store.getters.relationship(this.user.id).muting},isStatusNotification:function(){return(0,ve.Gr)(this.notification.type)},mergedConfig:function(){return this.$store.getters.mergedConfig},shouldConfirmApprove:function(){return this.mergedConfig.modalOnApproveFollow},shouldConfirmDeny:function(){return this.mergedConfig.modalOnDenyFollow}},(0,w.rn)({currentUser:function(e){return e.users.currentUser}}))};const ke=_e,Ce=(0,pe.Z)(ke,[["render",function(e,t,n,s,a,u){var c=(0,o.up)("Status"),l=(0,o.up)("user-link"),d=(0,o.up)("FAIcon"),p=(0,o.up)("UserAvatar"),m=(0,o.up)("UserPopover"),h=(0,o.up)("RichContent"),f=(0,o.up)("i18n-t"),g=(0,o.up)("Timeago"),v=(0,o.up)("router-link"),w=(0,o.up)("Report"),K=(0,o.up)("StatusContent"),G=(0,o.up)("confirm-modal");return"mention"===e.notification.type?((0,o.wg)(),(0,o.iD)("article",b,[(0,o.Wm)(c,{class:"Notification",compact:!0,statusoid:e.notification.status},null,8,["statusoid"])])):((0,o.wg)(),(0,o.iD)("article",y,[e.needMute&&!e.unmuted?((0,o.wg)(),(0,o.iD)("div",D,[(0,o._)("small",null,[(0,o.Wm)(l,{user:e.notification.from_profile,at:!1},null,8,["user"])]),(0,o._)("button",{class:"button-unstyled unmute",onClick:t[0]||(t[0]=(0,i.iM)((function(){return e.toggleMute&&e.toggleMute.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(d,{class:"fa-scale-110 fa-old-padding",icon:"eye-slash"})])])):((0,o.wg)(),(0,o.iD)("div",{key:1,class:(0,r.C_)(["Notification non-mention",[e.userClass,{highlighted:e.userStyle},"-type--"+e.notification.type]]),style:(0,r.j5)([e.userStyle])},[(0,o._)("a",{class:"avatar-container",href:e.$router.resolve(e.userProfileLink).href,onClick:t[1]||(t[1]=(0,i.iM)((function(){}),["prevent"]))},[(0,o.Wm)(m,{"user-id":e.notification.from_profile.id,"overlay-centers":!0},{default:(0,o.w5)((function(){return[(0,o.Wm)(p,{class:"post-avatar",bot:e.botIndicator,compact:!0,"better-shadow":e.betterShadow,user:e.notification.from_profile},null,8,["bot","better-shadow","user"])]})),_:1},8,["user-id"])],8,_),(0,o._)("div",k,[(0,o._)("span",C,[(0,o._)("div",S,[e.notification.from_profile.name_html?((0,o.wg)(),(0,o.iD)("bdi",j,[(0,o.Wm)(h,{class:"username",title:"@"+e.notification.from_profile.screen_name_ui,html:e.notification.from_profile.name_html,emoji:e.notification.from_profile.emoji},null,8,["title","html","emoji"])])):((0,o.wg)(),(0,o.iD)("span",{key:1,class:"username",title:"@"+e.notification.from_profile.screen_name_ui},(0,r.zw)(e.notification.from_profile.name),9,F)),(0,o.Uk)(" "+(0,r.zw)(" ")+" "),"like"===e.notification.type?((0,o.wg)(),(0,o.iD)("span",A,[(0,o.Wm)(d,{class:"type-icon",icon:"star"}),(0,o.Uk)(" "+(0,r.zw)(" ")+" "),(0,o._)("small",null,(0,r.zw)(e.$t("notifications.favorited_you")),1)])):(0,o.kq)("",!0),"repeat"===e.notification.type?((0,o.wg)(),(0,o.iD)("span",O,[(0,o.Wm)(d,{class:"type-icon",icon:"retweet",title:e.$t("tool_tip.repeat")},null,8,["title"]),(0,o.Uk)(" "+(0,r.zw)(" ")+" "),(0,o._)("small",null,(0,r.zw)(e.$t("notifications.repeated_you")),1)])):(0,o.kq)("",!0),"follow"===e.notification.type?((0,o.wg)(),(0,o.iD)("span",E,[(0,o.Wm)(d,{class:"type-icon",icon:"user-plus"}),(0,o.Uk)(" "+(0,r.zw)(" ")+" "),(0,o._)("small",null,(0,r.zw)(e.$t("notifications.followed_you")),1)])):(0,o.kq)("",!0),"follow_request"===e.notification.type?((0,o.wg)(),(0,o.iD)("span",z,[(0,o.Wm)(d,{class:"type-icon",icon:"user"}),(0,o.Uk)(" "+(0,r.zw)(" ")+" "),(0,o._)("small",null,(0,r.zw)(e.$t("notifications.follow_request")),1)])):(0,o.kq)("",!0),"move"===e.notification.type?((0,o.wg)(),(0,o.iD)("span",P,[(0,o.Wm)(d,{class:"type-icon",icon:"suitcase-rolling"}),(0,o.Uk)(" "+(0,r.zw)(" ")+" "),(0,o._)("small",null,(0,r.zw)(e.$t("notifications.migrated_to")),1)])):(0,o.kq)("",!0),"pleroma:emoji_reaction"===e.notification.type?((0,o.wg)(),(0,o.iD)("span",I,[(0,o._)("small",null,[(0,o.Wm)(f,{scope:"global",keypath:"notifications.reacted_with"},{default:(0,o.w5)((function(){return[e.notification.emoji_url?((0,o.wg)(),(0,o.iD)("img",{key:0,class:"emoji-reaction-emoji emoji-reaction-emoji-image",src:e.notification.emoji_url,alt:e.notification.emoji,title:e.notification.emoji},null,8,x)):((0,o.wg)(),(0,o.iD)("span",T,(0,r.zw)(e.notification.emoji),1))]})),_:1})])])):(0,o.kq)("",!0),"pleroma:report"===e.notification.type?((0,o.wg)(),(0,o.iD)("span",$,[(0,o._)("small",null,(0,r.zw)(e.$t("notifications.submitted_report")),1)])):(0,o.kq)("",!0),"poll"===e.notification.type?((0,o.wg)(),(0,o.iD)("span",B,[(0,o.Wm)(d,{class:"type-icon",icon:"poll-h"}),(0,o.Uk)(" "+(0,r.zw)(" ")+" "),(0,o._)("small",null,(0,r.zw)(e.$t("notifications.poll_ended")),1)])):(0,o.kq)("",!0)]),e.isStatusNotification?((0,o.wg)(),(0,o.iD)("div",U,[e.notification.status?((0,o.wg)(),(0,o.j4)(v,{key:0,to:{name:"conversation",params:{id:e.notification.status.id}},class:"timeago-link faint-link"},{default:(0,o.w5)((function(){return[(0,o.Wm)(g,{time:e.notification.created_at,"auto-update":240},null,8,["time"])]})),_:1},8,["to"])):(0,o.kq)("",!0),(0,o._)("button",{class:"button-unstyled expand-icon",title:e.$t("tool_tip.toggle_expand"),"aria-expanded":e.statusExpanded,onClick:t[2]||(t[2]=(0,i.iM)((function(){return e.toggleStatusExpanded&&e.toggleStatusExpanded.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(d,{class:"fa-scale-110","fixed-width":"",icon:e.statusExpanded?"compress-alt":"expand-alt"},null,8,["icon"])],8,M)])):((0,o.wg)(),(0,o.iD)("div",L,[(0,o._)("span",R,[(0,o.Wm)(g,{time:e.notification.created_at,"auto-update":240},null,8,["time"])])])),e.needMute?((0,o.wg)(),(0,o.iD)("button",{key:2,class:"button-unstyled",title:e.$t("tool_tip.toggle_mute"),"aria-expanded":!e.unmuted,onClick:t[3]||(t[3]=(0,i.iM)((function(){return e.toggleMute&&e.toggleMute.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(d,{class:"fa-scale-110 fa-old-padding",icon:"eye-slash"})],8,q)):(0,o.kq)("",!0)]),"follow"===e.notification.type||"follow_request"===e.notification.type?((0,o.wg)(),(0,o.iD)("div",N,[(0,o.Wm)(l,{class:"follow-name",user:e.notification.from_profile},null,8,["user"]),"follow_request"===e.notification.type?((0,o.wg)(),(0,o.iD)("div",Z,[(0,o._)("button",{class:"button-unstyled",title:e.$t("tool_tip.accept_follow_request"),onClick:t[4]||(t[4]=function(t){return e.approveUser()})},[(0,o.Wm)(d,{icon:"check",class:"fa-scale-110 fa-old-padding follow-request-accept"})],8,W),(0,o._)("button",{class:"button-unstyled",title:e.$t("tool_tip.reject_follow_request"),onClick:t[5]||(t[5]=function(t){return e.denyUser()})},[(0,o.Wm)(d,{icon:"times",class:"fa-scale-110 fa-old-padding follow-request-reject"})],8,H)])):(0,o.kq)("",!0)])):"move"===e.notification.type?((0,o.wg)(),(0,o.iD)("div",V,[(0,o.Wm)(l,{user:e.notification.target},null,8,["user"])])):"pleroma:report"===e.notification.type?((0,o.wg)(),(0,o.j4)(w,{key:2,"report-id":e.notification.report.id},null,8,["report-id"])):((0,o.wg)(),(0,o.j4)(K,{key:3,class:(0,r.C_)({faint:!e.statusExpanded}),compact:!e.statusExpanded,status:e.notification.action},null,8,["class","compact","status"]))])],6)),((0,o.wg)(),(0,o.j4)(o.lR,{to:"#modal"},[e.showingApproveConfirmDialog?((0,o.wg)(),(0,o.j4)(G,{key:0,title:e.$t("user_card.approve_confirm_title"),"confirm-text":e.$t("user_card.approve_confirm_accept_button"),"cancel-text":e.$t("user_card.approve_confirm_cancel_button"),onAccepted:e.doApprove,onCancelled:e.hideApproveConfirmDialog},{default:(0,o.w5)((function(){return[(0,o.Uk)((0,r.zw)(e.$t("user_card.approve_confirm",{user:e.user.screen_name_ui})),1)]})),_:1},8,["title","confirm-text","cancel-text","onAccepted","onCancelled"])):(0,o.kq)("",!0),e.showingDenyConfirmDialog?((0,o.wg)(),(0,o.j4)(G,{key:1,title:e.$t("user_card.deny_confirm_title"),"confirm-text":e.$t("user_card.deny_confirm_accept_button"),"cancel-text":e.$t("user_card.deny_confirm_cancel_button"),onAccepted:e.doDeny,onCancelled:e.hideDenyConfirmDialog},{default:(0,o.w5)((function(){return[(0,o.Uk)((0,r.zw)(e.$t("user_card.deny_confirm",{user:e.user.screen_name_ui})),1)]})),_:1},8,["title","confirm-text","cancel-text","onAccepted","onCancelled"])):(0,o.kq)("",!0)]))]))}]]);var Se={class:"dropdown-menu"},je={class:"filter-trigger-button button-unstyled"},Fe=n(84535);function Ae(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Oe(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ae(Object(n),!0).forEach((function(t){(0,v.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ae(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}be.vI.add(ye.G_j);const Ee={components:{Popover:Fe.default},computed:{filters:function(){return this.$store.getters.mergedConfig.notificationVisibility}},methods:{toggleNotificationFilter:function(e){this.$store.dispatch("setOption",{name:"notificationVisibility",value:Oe(Oe({},this.filters),{},(0,v.Z)({},e,!this.filters[e]))})}}},ze=(0,pe.Z)(Ee,[["render",function(e,t,n,i,s,a){var u=(0,o.up)("FAIcon"),c=(0,o.up)("Popover");return(0,o.wg)(),(0,o.j4)(c,{trigger:"click",class:"NotificationFilters",placement:"bottom","bound-to":{x:"container"}},{content:(0,o.w5)((function(){return[(0,o._)("div",Se,[(0,o._)("button",{class:"button-default dropdown-item",onClick:t[0]||(t[0]=function(e){return a.toggleNotificationFilter("likes")})},[(0,o._)("span",{class:(0,r.C_)(["menu-checkbox",{"menu-checkbox-checked":a.filters.likes}])},null,2),(0,o.Uk)((0,r.zw)(e.$t("settings.notification_visibility_likes")),1)]),(0,o._)("button",{class:"button-default dropdown-item",onClick:t[1]||(t[1]=function(e){return a.toggleNotificationFilter("repeats")})},[(0,o._)("span",{class:(0,r.C_)(["menu-checkbox",{"menu-checkbox-checked":a.filters.repeats}])},null,2),(0,o.Uk)((0,r.zw)(e.$t("settings.notification_visibility_repeats")),1)]),(0,o._)("button",{class:"button-default dropdown-item",onClick:t[2]||(t[2]=function(e){return a.toggleNotificationFilter("follows")})},[(0,o._)("span",{class:(0,r.C_)(["menu-checkbox",{"menu-checkbox-checked":a.filters.follows}])},null,2),(0,o.Uk)((0,r.zw)(e.$t("settings.notification_visibility_follows")),1)]),(0,o._)("button",{class:"button-default dropdown-item",onClick:t[3]||(t[3]=function(e){return a.toggleNotificationFilter("mentions")})},[(0,o._)("span",{class:(0,r.C_)(["menu-checkbox",{"menu-checkbox-checked":a.filters.mentions}])},null,2),(0,o.Uk)((0,r.zw)(e.$t("settings.notification_visibility_mentions")),1)]),(0,o._)("button",{class:"button-default dropdown-item",onClick:t[4]||(t[4]=function(e){return a.toggleNotificationFilter("emojiReactions")})},[(0,o._)("span",{class:(0,r.C_)(["menu-checkbox",{"menu-checkbox-checked":a.filters.emojiReactions}])},null,2),(0,o.Uk)((0,r.zw)(e.$t("settings.notification_visibility_emoji_reactions")),1)]),(0,o._)("button",{class:"button-default dropdown-item",onClick:t[5]||(t[5]=function(e){return a.toggleNotificationFilter("moves")})},[(0,o._)("span",{class:(0,r.C_)(["menu-checkbox",{"menu-checkbox-checked":a.filters.moves}])},null,2),(0,o.Uk)((0,r.zw)(e.$t("settings.notification_visibility_moves")),1)]),(0,o._)("button",{class:"button-default dropdown-item",onClick:t[6]||(t[6]=function(e){return a.toggleNotificationFilter("polls")})},[(0,o._)("span",{class:(0,r.C_)(["menu-checkbox",{"menu-checkbox-checked":a.filters.polls}])},null,2),(0,o.Uk)((0,r.zw)(e.$t("settings.notification_visibility_polls")),1)])])]})),trigger:(0,o.w5)((function(){return[(0,o._)("button",je,[(0,o.Wm)(u,{icon:"filter"})])]})),_:1})}]]);var Pe=n(15568),Ie=n(49753);function xe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}be.vI.add(ye.IJ7,ye.FPD,ye.Kl4);const Te={components:{Notification:Ce,NotificationFilters:ze},props:{minimalMode:Boolean,filterMode:Array,disableTeleport:Boolean},data:function(){return{showScrollTop:!1,bottomedOut:!1,seenToDisplayCount:30}},provide:function(){var e=this;return{popoversZLayer:(0,o.Fl)((function(){return e.popoversZLayer}))}},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?xe(Object(n),!0).forEach((function(t){(0,v.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):xe(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({mainClass:function(){return this.minimalMode?"":"panel panel-default"},notifications:function(){return(0,ve.Bt)(this.$store)},error:function(){return this.$store.state.statuses.notifications.error},unseenNotifications:function(){return(0,ve.Km)(this.$store)},filteredNotifications:function(){return(0,ve.G2)(this.$store,this.filterMode)},unseenCount:function(){return this.unseenNotifications.length},unseenCountTitle:function(){return this.unseenCount+this.unreadChatCount+this.unreadAnnouncementCount},loading:function(){return this.$store.state.statuses.notifications.loading},noHeading:function(){var e=this.$store.state.interface.layoutType;return this.minimalMode||"mobile"===e},teleportTarget:function(){return{wide:"#notifs-column",mobile:"#mobile-notifications"}[this.$store.state.interface.layoutType]||"#notifs-sidebar"},popoversZLayer:function(){return"mobile"===this.$store.state.interface.layoutType?"navbar":null},notificationsToDisplay:function(){return this.filteredNotifications.slice(0,this.unseenCount+this.seenToDisplayCount)},noSticky:function(){return this.$store.getters.mergedConfig.disableStickyHeaders}},(0,w.Se)(["unreadChatCount","unreadAnnouncementCount"])),mounted:function(){this.scrollerRef=this.$refs.root.closest(".column.-scrollable"),this.scrollerRef||(this.scrollerRef=this.$refs.root.closest(".mobile-notifications")),this.scrollerRef||(this.scrollerRef=this.$refs.root.closest(".column.main")),this.scrollerRef.addEventListener("scroll",this.updateScrollPosition)},unmounted:function(){this.scrollerRef&&this.scrollerRef.removeEventListener("scroll",this.updateScrollPosition)},watch:{unseenCountTitle:function(e){e>0?(Ie.Z.drawFaviconBadge(),this.$store.dispatch("setPageTitle","(".concat(e,")"))):(Ie.Z.clearFaviconBadge(),this.$store.dispatch("setPageTitle",""))},teleportTarget:function(){var e=this;this.$nextTick((function(){e.scrollerRef.removeEventListener("scroll",e.updateScrollPosition),e.scrollerRef=e.$refs.root.closest(".column.-scrollable"),e.scrollerRef||(e.scrollerRef=e.$refs.root.closest(".mobile-notifications")),e.scrollerRef.addEventListener("scroll",e.updateScrollPosition),e.updateScrollPosition()}))}},methods:{scrollToTop:function(){this.scrollerRef.scrollTo({top:this.$refs.root.offsetTop})},updateScrollPosition:function(){this.showScrollTop=this.$refs.root.offsetTop<this.scrollerRef.scrollTop},markAsSeen:function(){this.$store.dispatch("markNotificationsAsSeen"),this.seenToDisplayCount=30},fetchOlderNotifications:function(){var e=this;if(!this.loading){var t=this.filteredNotifications.length-this.unseenCount;if(this.seenToDisplayCount<t)this.seenToDisplayCount=Math.min(this.seenToDisplayCount+20,t);else{this.seenToDisplayCount>t&&(this.seenToDisplayCount=t);var n=this.$store,o=n.state.users.currentUser.credentials;n.commit("setNotificationsLoading",{value:!0}),Pe.Z.fetchAndUpdate({store:n,credentials:o,older:!0}).then((function(t){n.commit("setNotificationsLoading",{value:!1}),0===t.length&&(e.bottomedOut=!0),e.seenToDisplayCount+=t.length}))}}}}},$e=(0,pe.Z)(Te,[["render",function(e,t,n,v,w,b){var y=(0,o.up)("FAIcon"),D=(0,o.up)("FALayers"),_=(0,o.up)("NotificationFilters"),k=(0,o.up)("notification");return(0,o.wg)(),(0,o.j4)(o.lR,{disabled:e.minimalMode||e.disableTeleport,to:e.teleportTarget},[((0,o.wg)(),(0,o.j4)((0,o.LL)(e.noHeading?"div":"aside"),{ref:"root",class:(0,r.C_)([{minimal:e.minimalMode},"Notifications"])},{default:(0,o.w5)((function(){return[(0,o._)("div",{class:(0,r.C_)(e.mainClass)},[e.noHeading?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",s,[(0,o._)("div",a,[(0,o.Uk)((0,r.zw)(e.$t("notifications.notifications"))+" ",1),e.unseenCount?((0,o.wg)(),(0,o.iD)("span",u,(0,r.zw)(e.unseenCount),1)):(0,o.kq)("",!0)]),e.showScrollTop?((0,o.wg)(),(0,o.iD)("div",c,[(0,o._)("button",{class:"button-unstyled scroll-to-top-button",type:"button",title:e.$t("general.scroll_to_top"),onClick:t[0]||(t[0]=function(){return e.scrollToTop&&e.scrollToTop.apply(e,arguments)})},[(0,o.Wm)(D,{class:"fa-scale-110 fa-old-padding-layer"},{default:(0,o.w5)((function(){return[(0,o.Wm)(y,{icon:"arrow-up"}),(0,o.Wm)(y,{icon:"minus",transform:"up-7"})]})),_:1})],8,l)])):(0,o.kq)("",!0),e.unseenCount?((0,o.wg)(),(0,o.iD)("button",{key:1,class:"button-default read-button",type:"button",onClick:t[1]||(t[1]=(0,i.iM)((function(){return e.markAsSeen&&e.markAsSeen.apply(e,arguments)}),["prevent"]))},(0,r.zw)(e.$t("notifications.read")),1)):(0,o.kq)("",!0),(0,o.Wm)(_,{class:"rightside-button"})])),(0,o._)("div",d,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.notificationsToDisplay,(function(t){return(0,o.wg)(),(0,o.iD)("div",{key:t.id,role:"listitem",class:(0,r.C_)(["notification",{unseen:!e.minimalMode&&!t.seen}])},[p,(0,o.Wm)(k,{notification:t},null,8,["notification"])],2)})),128))]),(0,o._)("div",m,[e.bottomedOut?((0,o.wg)(),(0,o.iD)("div",h,(0,r.zw)(e.$t("notifications.no_more_notifications")),1)):e.loading?((0,o.wg)(),(0,o.iD)("div",g,[(0,o.Wm)(y,{icon:"circle-notch",spin:"",size:"lg"})])):((0,o.wg)(),(0,o.iD)("button",{key:1,class:"button-unstyled -link -fullwidth",onClick:t[2]||(t[2]=(0,i.iM)((function(t){return e.fetchOlderNotifications()}),["prevent"]))},[(0,o._)("div",f,(0,r.zw)(e.minimalMode?e.$t("interactions.load_older"):e.$t("notifications.load_older")),1)]))])],2)]})),_:1},8,["class"]))],8,["disabled","to"])}]]),Be=$e},29187:(e,t,n)=>{"use strict";n.d(t,{Z:()=>l});var o=n(66252),r=n(3577),i={class:"panel-loading"},s={class:"loading-text"},a=n(9382),u=n(84131);a.vI.add(u.IJ7);const c={},l=(0,n(83744).Z)(c,[["render",function(e,t,n,a,u,c){var l=(0,o.up)("FAIcon");return(0,o.wg)(),(0,o.iD)("div",i,[(0,o._)("span",s,[(0,o.Wm)(l,{icon:"circle-notch",spin:"",size:"3x"}),(0,o.Uk)(" "+(0,r.zw)(e.$t("general.loading")),1)])])}]])},84535:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var o=n(66252),r=n(49963),i=n(3577);const s={name:"Popover",props:{trigger:String,placement:String,boundTo:Object,boundToSelector:String,margin:Object,offset:Object,popoverClass:String,removePadding:Boolean,disabled:Boolean,overlayCenters:Boolean,overlayCentersSelector:String,stayOnClick:Boolean,normalButton:Boolean,triggerAttrs:{type:Object,default:{}}},inject:["popoversZLayer"],data:function(){return{anchorEl:null,teleport:!1,lockReEntry:!1,hidden:!0,styles:{},oldSize:{width:0,height:0},scrollable:null,graceTimeout:null,parentPopover:null,disableClickOutside:!1,childrenShown:new Set}},methods:{setAnchorEl:function(e){this.anchorEl=e,this.updateStyles()},containerBoundingClientRect:function(){return(this.boundToSelector?this.$el.closest(this.boundToSelector):this.$el.offsetParent).getBoundingClientRect()},updateStyles:function(){if(this.hidden)this.styles={};else{var e=this.anchorEl||this.$refs.trigger&&this.$refs.trigger.children[0]||this.$el,t=e.offsetHeight||e.clientHeight,n=e.offsetWidth||e.clientWidth,o=e.getBoundingClientRect(),r=getComputedStyle(e),i=parseFloat(r.paddingTop),s=parseFloat(r.paddingBottom),a=parseFloat(r.paddingRight),u=parseFloat(r.paddingLeft),c=o.left+.5*n,l=o.top+.5*t,d=this.$refs.content,p=this.overlayCenters?this.$refs.content.querySelector(this.overlayCentersSelector):null,m=this.boundTo&&("container"===this.boundTo.x||"container"===this.boundTo.y)&&this.containerBoundingClientRect(),h=this.margin||{},f=this.boundTo&&"container"===this.boundTo.x?{min:m.left+(h.left||0),max:m.right-(h.right||0)}:{min:0+(h.left||10),max:window.innerWidth-(h.right||10)},g=this.boundTo&&"container"===this.boundTo.y?{min:m.top+(h.top||0),max:m.bottom-(h.bottom||0)}:{min:0+(h.top||50),max:window.innerHeight-(h.bottom||5)},v=0,w=0;if(p){var b=d.getBoundingClientRect(),y=p.getBoundingClientRect(),D=y.left-b.left,_=y.top-b.top;v=-D-.5*p.offsetWidth,w=-_-.5*p.offsetHeight}else v=-.5*d.offsetWidth,w=-.5*d.offsetHeight;var k=c+v,C=k+d.offsetWidth,S=l+w,j=S+d.offsetHeight;k<f.min&&(v+=f.min-k),C>f.max&&(v-=C-f.max),S<g.min&&(w+=g.min-S),j>g.max&&(w-=j-g.max);var F=0,A=0;if(p)F=c+v,A=l+w;else if("right"!==this.placement&&"left"!==this.placement){var O="bottom"!==this.placement,E=l-.5*t+(this.removePadding?i:0),z=l+.5*t-(this.removePadding?s:0);z+d.offsetHeight>g.max&&(O=!0),E-d.offsetHeight<g.min&&(O=!1);var P=this.offset&&this.offset.y||0;A=O?E-P-d.offsetHeight:z+P,F=c+v+(this.offset&&this.offset.x||0)}else{var I="left"!==this.placement,x=c-.5*n+(this.removePadding?a:0),T=c+.5*n-(this.removePadding?u:0);T+d.offsetWidth>f.max&&(I=!0),x-d.offsetWidth<f.min&&(I=!1);var $=this.offset&&this.offset.x||0;F=I?x-$-d.offsetWidth:T+$,A=l+w+(this.offset&&this.offset.y||0)}this.styles={left:"".concat(Math.round(F),"px"),top:"".concat(Math.round(A),"px")},this.popoversZLayer&&(this.styles["--ZI_popover_override"]="var(--ZI_".concat(this.popoversZLayer,"_popovers)")),m&&(this.styles.maxWidth="".concat(Math.round(m.width),"px"))}},showPopover:function(){var e=this;if(!this.disabled){this.disableClickOutside=!0,setTimeout((function(){e.disableClickOutside=!1}),0);var t=this.hidden;this.hidden=!1,this.parentPopover&&this.parentPopover.onChildPopoverState(this,!0),("click"===this.trigger||this.stayOnClick)&&document.addEventListener("click",this.onClickOutside),this.scrollable.addEventListener("scroll",this.onScroll),this.scrollable.addEventListener("resize",this.onResize),this.$nextTick((function(){t&&e.$emit("show"),e.updateStyles()}))}},hidePopover:function(){this.disabled||(this.hidden||this.$emit("close"),this.hidden=!0,this.parentPopover&&this.parentPopover.onChildPopoverState(this,!1),"click"===this.trigger&&document.removeEventListener("click",this.onClickOutside),this.scrollable.removeEventListener("scroll",this.onScroll),this.scrollable.removeEventListener("resize",this.onResize))},onMouseenter:function(e){"hover"===this.trigger&&(this.lockReEntry=!1,clearTimeout(this.graceTimeout),this.graceTimeout=null,this.showPopover())},onMouseleave:function(e){var t=this;"hover"===this.trigger&&0===this.childrenShown.size&&(this.graceTimeout=setTimeout((function(){return t.hidePopover()}),1))},onMouseenterContent:function(e){"hover"!==this.trigger||this.lockReEntry||(this.lockReEntry=!0,clearTimeout(this.graceTimeout),this.graceTimeout=null,this.showPopover())},onMouseleaveContent:function(e){var t=this;"hover"===this.trigger&&0===this.childrenShown.size&&(this.graceTimeout=setTimeout((function(){return t.hidePopover()}),1))},onClick:function(e){"click"===this.trigger&&(this.hidden?this.showPopover():this.hidePopover())},onClickOutside:function(e){this.disableClickOutside||this.hidden||this.$refs.content&&this.$refs.content.contains(e.target)||this.$el.contains(e.target)||this.childrenShown.size>0||(this.hidePopover(),this.parentPopover&&this.parentPopover.onClickOutside(e))},onScroll:function(e){this.updateStyles()},onResize:function(e){this.updateStyles()},onChildPopoverState:function(e,t){t?this.childrenShown.add(e):this.childrenShown.delete(e)}},updated:function(){var e=this.$refs.content;e&&(this.oldSize.width===e.offsetWidth&&this.oldSize.height===e.offsetHeight||(this.updateStyles(),this.oldSize={width:e.offsetWidth,height:e.offsetHeight}))},mounted:function(){this.teleport=!0;var e=this.$refs.trigger.closest(".column.-scrollable")||this.$refs.trigger.closest(".mobile-notifications");e||(e=window),this.scrollable=e;for(var t=this.$parent;t&&"Popover"!==t.$.type.name;)t=t.$parent;this.parentPopover=t},beforeUnmount:function(){this.hidePopover()}},a=(0,n(83744).Z)(s,[["render",function(e,t,n,s,a,u){return(0,o.wg)(),(0,o.iD)("span",{onMouseenter:t[4]||(t[4]=function(){return e.onMouseenter&&e.onMouseenter.apply(e,arguments)}),onMouseleave:t[5]||(t[5]=function(){return e.onMouseleave&&e.onMouseleave.apply(e,arguments)})},[(0,o._)("button",(0,o.dG)({ref:"trigger",class:["popover-trigger-button",e.normalButton?"button-default btn":"button-unstyled"],type:"button"},e.triggerAttrs,{onClick:t[0]||(t[0]=function(){return e.onClick&&e.onClick.apply(e,arguments)})}),[(0,o.WI)(e.$slots,"trigger")],16),((0,o.wg)(),(0,o.j4)(o.lR,{disabled:!e.teleport,to:"#popovers"},[(0,o.Wm)(r.uT,{name:"fade"},{default:(0,o.w5)((function(){return[e.hidden?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",{key:0,ref:"content",style:(0,i.j5)(e.styles),class:(0,i.C_)(["popover",e.popoverClass||"popover-default"]),onMouseenter:t[1]||(t[1]=function(){return e.onMouseenterContent&&e.onMouseenterContent.apply(e,arguments)}),onMouseleave:t[2]||(t[2]=function(){return e.onMouseleaveContent&&e.onMouseleaveContent.apply(e,arguments)}),onClick:t[3]||(t[3]=function(){return e.onClickContent&&e.onClickContent.apply(e,arguments)})},[(0,o.WI)(e.$slots,"content",{class:"popover-inner",close:e.hidePopover})],38))]})),_:3})],8,["disabled"]))],32)}]])},45333:(e,t,n)=>{"use strict";n.d(t,{Z:()=>Ue});var o=n(66252),r=n(49963),i=n(3577),s={ref:"form",class:"post-status-form"},a={class:"form-group"},u={key:1,class:"visibility-notice notice-dismissible"},c=["title"],l={key:2,class:"visibility-notice notice-dismissible"},d=["title"],p={key:3,class:"visibility-notice notice-dismissible"},m=["title"],h={key:4,class:"visibility-notice"},f={key:0},g={key:1},v={key:5,class:"visibility-notice edit-warning"},w={key:6,class:"preview-heading faint"},b={class:"preview-spinner"},y={key:7,class:"preview-container"},D={key:0,class:"preview-status"},_={key:1,class:"preview-status preview-error"},k={key:8,role:"radiogroup",class:"btn-group reply-or-quote-selector"},C=["id","aria-labelledby","aria-checked"],S=["id","aria-labelledby","aria-checked"],j=["placeholder","disabled"],F=["placeholder","disabled"],A={key:10,class:"visibility-tray"},O={key:1,class:"text-format"},E=["value"],z={key:2,class:"text-format"},P={class:"only-format"},I={ref:"bottom",class:"form-bottom"},x={class:"form-bottom-left"},T=["title"],$=["title"],B={key:0,disabled:"",class:"btn button-default"},U={key:1,disabled:"",class:"btn button-default"},M=["disabled"],L={key:1,class:"alert error"},R={key:3,class:"upload_settings"},q=n(15861),N=n(4942),Z=n(93433),W=n(23279),H=n.n(W),V=n(45578),K=n.n(V),G=n(35161),Y=n.n(G),J=n(43063),Q=n.n(J),X=n(64687),ee=n.n(X),te=n(7257),ne=n(37804),oe=n(54110),re=n(88671),ie={key:0,class:"poll-form"},se={class:"input-container"},ae=["id","onUpdate:modelValue","placeholder","maxlength","onKeydown"],ue=["onClick"],ce={class:"poll-type-expiry"},le=["title"],de={value:"single"},pe={value:"multiple"},me=["title"],he=["min","max"],fe=["value"],ge=n(44908),ve=n.n(ge),we=n(27483),be=n(9382),ye=n(76990),De=n(84131);be.vI.add(De.NBC,De.r8p);const _e={components:{Select:ye.Z},name:"PollForm",props:["visible"],data:function(){return{pollType:"single",options:["",""],expiryAmount:10,expiryUnit:"minutes"}},computed:{pollLimits:function(){return this.$store.state.instance.pollLimits},maxOptions:function(){return this.pollLimits.max_options},maxLength:function(){return this.pollLimits.max_option_chars},expiryUnits:function(){var e=this,t=this.convertExpiryFromUnit;return["minutes","hours","days"].filter((function(n){return e.pollLimits.max_expiration>=t(n,1)}))},minExpirationInCurrentUnit:function(){return Math.ceil(this.convertExpiryToUnit(this.expiryUnit,this.pollLimits.min_expiration))},maxExpirationInCurrentUnit:function(){return Math.floor(this.convertExpiryToUnit(this.expiryUnit,this.pollLimits.max_expiration))}},methods:{clear:function(){this.pollType="single",this.options=["",""],this.expiryAmount=10,this.expiryUnit="minutes"},nextOption:function(e){var t=this.$el.querySelector("#poll-".concat(e+1));t?t.focus():this.addOption()&&this.$nextTick((function(){this.nextOption(e)}))},addOption:function(){return this.options.length<this.maxOptions&&(this.options.push(""),!0)},deleteOption:function(e,t){this.options.length>2&&(this.options.splice(e,1),this.updatePollToParent())},convertExpiryToUnit:function(e,t){return we.dX(e,t)},convertExpiryFromUnit:function(e,t){return we.cC(e,t)},expiryAmountChange:function(){this.expiryAmount=Math.max(this.minExpirationInCurrentUnit,this.expiryAmount),this.expiryAmount=Math.min(this.maxExpirationInCurrentUnit,this.expiryAmount),this.updatePollToParent()},updatePollToParent:function(){var e=this.convertExpiryFromUnit(this.expiryUnit,this.expiryAmount),t=ve()(this.options.filter((function(e){return""!==e})));t.length<2?this.$emit("update-poll",{error:this.$t("polls.not_enough_options")}):this.$emit("update-poll",{options:t,multiple:"multiple"===this.pollType,expiresIn:e})}}};var ke=n(83744);const Ce=(0,ke.Z)(_e,[["render",function(e,t,n,s,a,u){var c=(0,o.up)("FAIcon"),l=(0,o.up)("Select");return e.visible?((0,o.wg)(),(0,o.iD)("div",ie,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.options,(function(n,i){return(0,o.wg)(),(0,o.iD)("div",{key:i,class:"poll-option"},[(0,o._)("div",se,[(0,o.wy)((0,o._)("input",{id:"poll-".concat(i),"onUpdate:modelValue":function(t){return e.options[i]=t},size:"1",class:"poll-option-input",type:"text",placeholder:e.$t("polls.option"),maxlength:e.maxLength,onChange:t[0]||(t[0]=function(){return e.updatePollToParent&&e.updatePollToParent.apply(e,arguments)}),onKeydown:(0,r.D2)((0,r.iM)((function(t){return e.nextOption(i)}),["stop","prevent"]),["enter"])},null,40,ae),[[r.nr,e.options[i]]])]),e.options.length>2?((0,o.wg)(),(0,o.iD)("button",{key:0,class:"delete-option button-unstyled -hover-highlight",onClick:function(t){return e.deleteOption(i)}},[(0,o.Wm)(c,{icon:"times"})],8,ue)):(0,o.kq)("",!0)])})),128)),e.options.length<e.maxOptions?((0,o.wg)(),(0,o.iD)("button",{key:0,class:"add-option faint button-unstyled -hover-highlight",onClick:t[1]||(t[1]=function(){return e.addOption&&e.addOption.apply(e,arguments)})},[(0,o.Wm)(c,{icon:"plus",size:"sm"}),(0,o.Uk)(" "+(0,i.zw)(e.$t("polls.add_option")),1)])):(0,o.kq)("",!0),(0,o._)("div",ce,[(0,o._)("div",{class:"poll-type",title:e.$t("polls.type")},[(0,o.Wm)(l,{modelValue:e.pollType,"onUpdate:modelValue":t[2]||(t[2]=function(t){return e.pollType=t}),class:"poll-type-select",unstyled:"true",onChange:e.updatePollToParent},{default:(0,o.w5)((function(){return[(0,o._)("option",de,(0,i.zw)(e.$t("polls.single_choice")),1),(0,o._)("option",pe,(0,i.zw)(e.$t("polls.multiple_choices")),1)]})),_:1},8,["modelValue","onChange"])],8,le),(0,o._)("div",{class:"poll-expiry",title:e.$t("polls.expiry")},[(0,o.wy)((0,o._)("input",{"onUpdate:modelValue":t[3]||(t[3]=function(t){return e.expiryAmount=t}),type:"number",class:"expiry-amount hide-number-spinner",min:e.minExpirationInCurrentUnit,max:e.maxExpirationInCurrentUnit,onChange:t[4]||(t[4]=function(){return e.expiryAmountChange&&e.expiryAmountChange.apply(e,arguments)})},null,40,he),[[r.nr,e.expiryAmount]]),(0,o.Uk)(" "+(0,i.zw)(" ")+" "),(0,o.Wm)(l,{modelValue:e.expiryUnit,"onUpdate:modelValue":t[5]||(t[5]=function(t){return e.expiryUnit=t}),unstyled:"true",class:"expiry-unit",onChange:e.expiryAmountChange},{default:(0,o.w5)((function(){return[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.expiryUnits,(function(t){return(0,o.wg)(),(0,o.iD)("option",{key:t,value:t},(0,i.zw)(e.$tc("time.unit.".concat(t,"_short"),e.expiryAmount,[""])),9,fe)})),128))]})),_:1},8,["modelValue","onChange"])],8,me)])])):(0,o.kq)("",!0)}]]);var Se=n(66596),je=n(67671),Fe=n(10252),Ae=n(58394),Oe=n(67952),Ee=n(37230),ze=n(19003),Pe=n(989),Ie=n(66141);function xe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Te(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?xe(Object(n),!0).forEach((function(t){(0,N.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):xe(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}be.vI.add(De.RKn,De.Mm7,De.cf$,De.gPx,De.NBC,De.IJ7);var $e=function(e){return Number(e.substring(0,e.length-2))};const Be={props:["statusId","statusText","statusIsSensitive","statusPoll","statusFiles","statusMediaDescriptions","statusScope","statusContentType","replyTo","repliedUser","attentions","copyMessageScope","subject","disableSubject","disableScopeSelector","disableVisibilitySelector","disableNotice","disableLockWarning","disablePolls","disableSensitivityCheckbox","disableSubmit","disablePreview","placeholder","maxHeight","postHandler","preserveFocus","autoFocus","fileLimit","submitOnEnter","emojiPickerPlacement","optimisticPosting"],emits:["posted","resize","mediaplay","mediapause"],components:{MediaUpload:ne.Z,EmojiInput:re.Z,PollForm:Ce,ScopeSelector:oe.Z,Checkbox:Ie.Z,Select:ye.Z,Attachment:Se.Z,StatusContent:Fe.Z,Gallery:je.Z},mounted:function(){if(this.updateIdempotencyKey(),this.resize(this.$refs.textarea),this.replyTo){var e=this.$refs.textarea.value.length;this.$refs.textarea.setSelectionRange(e,e)}(this.replyTo||this.autoFocus)&&this.$refs.textarea.focus()},data:function(){var e=this.$route.query.message||"",t=this.$store.getters.mergedConfig.scopeCopy;if(this.replyTo){var n=this.$store.state.users.currentUser;e=function(e,t){var n=e.user,o=e.attentions,r=void 0===o?[]:o,i=(0,Z.Z)(r);i.unshift(n),i=K()(i,"id"),i=Q()(i,{id:t.id});var s=Y()(i,(function(e){return"@".concat(e.screen_name)}));return s.length>0?s.join(" ")+" ":""}({user:this.repliedUser,attentions:this.attentions},n)}var o=this.copyMessageScope&&t||"direct"===this.copyMessageScope?this.copyMessageScope:this.$store.state.users.currentUser.default_scope,r=this.$store.getters.mergedConfig,i=r.postContentType,s=r.sensitiveByDefault,a={spoilerText:this.subject||"",status:e,nsfw:!!s,files:[],poll:{},mediaDescriptions:{},visibility:o,contentType:i};if(this.statusId){var u=this.statusContentType||i;a={spoilerText:this.subject||"",status:this.statusText||"",nsfw:this.statusIsSensitive||!!s,files:this.statusFiles||[],poll:this.statusPoll||{},mediaDescriptions:this.statusMediaDescriptions||{},visibility:this.statusScope||o,contentType:u,quoting:!1}}return{randomSeed:"".concat(Math.random()).replace(".","-"),dropFiles:[],uploadingFiles:!1,error:null,posting:!1,highlighted:0,newStatus:a,caret:0,pollFormVisible:!1,showDropIcon:"hide",dropStopTimeout:null,preview:null,previewLoading:!1,emojiInputShown:!1,idempotencyKey:""}},computed:Te(Te({users:function(){return this.$store.state.users.users},userDefaultScope:function(){return this.$store.state.users.currentUser.default_scope},showAllScopes:function(){return!this.mergedConfig.minimalScopesMode},emojiUserSuggestor:function(){return(0,ze.ZP)({emoji:[].concat((0,Z.Z)(this.$store.getters.standardEmojiList),(0,Z.Z)(this.$store.state.instance.customEmoji)),store:this.$store})},emojiSuggestor:function(){return(0,ze.ZP)({emoji:[].concat((0,Z.Z)(this.$store.getters.standardEmojiList),(0,Z.Z)(this.$store.state.instance.customEmoji))})},emoji:function(){return this.$store.getters.standardEmojiList||[]},customEmoji:function(){return this.$store.state.instance.customEmoji||[]},statusLength:function(){return this.newStatus.status.length},spoilerTextLength:function(){return this.newStatus.spoilerText.length},statusLengthLimit:function(){return this.$store.state.instance.textlimit},hasStatusLengthLimit:function(){return this.statusLengthLimit>0},charactersLeft:function(){return this.statusLengthLimit-(this.statusLength+this.spoilerTextLength)},isOverLengthLimit:function(){return this.hasStatusLengthLimit&&this.charactersLeft<0},minimalScopesMode:function(){return this.$store.state.instance.minimalScopesMode},alwaysShowSubject:function(){return this.mergedConfig.alwaysShowSubjectInput},postFormats:function(){return this.$store.state.instance.postFormats||[]},safeDMEnabled:function(){return this.$store.state.instance.safeDM},pollsAvailable:function(){return this.$store.state.instance.pollsAvailable&&this.$store.state.instance.pollLimits.max_options>=2&&!0!==this.disablePolls},hideScopeNotice:function(){return this.disableNotice||this.$store.getters.mergedConfig.hideScopeNotice},pollContentError:function(){return this.pollFormVisible&&this.newStatus.poll&&this.newStatus.poll.error},showPreview:function(){return!this.disablePreview&&(!!this.preview||this.previewLoading)},emptyStatus:function(){return""===this.newStatus.status.trim()&&0===this.newStatus.files.length},uploadFileLimitReached:function(){return this.newStatus.files.length>=this.fileLimit},isEdit:function(){return void 0!==this.statusId&&""!==this.statusId.trim()},quotable:function(){if(!this.$store.state.instance.quotingAvailable)return!1;if(!this.replyTo)return!1;var e=this.$store.state.statuses.allStatusesObject[this.replyTo];return!!e&&("public"===e.visibility||"unlisted"===e.visibility||"local"===e.visibility||"private"===e.visibility&&e.user.id===this.$store.state.users.currentUser.id)}},(0,Pe.Se)(["mergedConfig"])),(0,Pe.rn)({mobileLayout:function(e){return e.interface.mobileLayout}})),watch:{newStatus:{deep:!0,handler:function(){this.statusChanged()}}},methods:{statusChanged:function(){this.autoPreview(),this.updateIdempotencyKey()},clearStatus:function(){var e=this,t=this.newStatus;this.newStatus={status:"",spoilerText:"",files:[],visibility:t.visibility,contentType:t.contentType,poll:{},mediaDescriptions:{},quoting:!1},this.pollFormVisible=!1,this.$refs.mediaUpload&&this.$refs.mediaUpload.clearFile(),this.clearPollForm(),this.preserveFocus&&this.$nextTick((function(){e.$refs.textarea.focus()}));var n=this.$el.querySelector("textarea");n.style.height="auto",n.style.height=void 0,this.error=null,this.preview&&this.previewStatus()},postStatus:function(e,t){var n=arguments,o=this;return(0,q.Z)(ee().mark((function r(){var i,s,a,u;return ee().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(n.length>2&&void 0!==n[2]&&n[2],!o.posting||o.optimisticPosting){r.next=3;break}return r.abrupt("return");case 3:if(!o.disableSubmit){r.next=5;break}return r.abrupt("return");case 5:if(!o.emojiInputShown){r.next=7;break}return r.abrupt("return");case 7:if(o.submitOnEnter&&(e.stopPropagation(),e.preventDefault()),!o.optimisticPosting||!o.emptyStatus&&!o.isOverLengthLimit){r.next=10;break}return r.abrupt("return");case 10:if(!o.emptyStatus){r.next=13;break}return o.error=o.$t("post_status.empty_status_error"),r.abrupt("return");case 13:if(s=o.pollFormVisible?o.newStatus.poll:{},!o.pollContentError){r.next=17;break}return o.error=o.pollContentError,r.abrupt("return");case 17:return o.posting=!0,r.prev=18,r.next=21,o.setAllMediaDescriptions();case 21:r.next=28;break;case 23:return r.prev=23,r.t0=r.catch(18),o.error=o.$t("post_status.media_description_error"),o.posting=!1,r.abrupt("return");case 28:a=t.quoting?"quoteId":"inReplyToStatusId",i={status:t.status,spoilerText:t.spoilerText||null,visibility:t.visibility,sensitive:t.nsfw,media:t.files,store:o.$store},(0,N.Z)(i,a,o.replyTo),(0,N.Z)(i,"contentType",t.contentType),(0,N.Z)(i,"poll",s),(0,N.Z)(i,"idempotencyKey",o.idempotencyKey),u=i,(o.postHandler?o.postHandler:te.Z.postStatus)(u).then((function(e){e.error?o.error=e.error:(o.clearStatus(),o.$emit("posted",e)),o.posting=!1}));case 32:case"end":return r.stop()}}),r,null,[[18,23]])})))()},previewStatus:function(){var e,t=this;if(this.emptyStatus&&""===this.newStatus.spoilerText.trim())return this.preview={error:this.$t("post_status.preview_empty")},void(this.previewLoading=!1);var n=this.newStatus;this.previewLoading=!0;var o=n.quoting?"quoteId":"inReplyToStatusId";te.Z.postStatus((e={status:n.status,spoilerText:n.spoilerText||null,visibility:n.visibility,sensitive:n.nsfw,media:[],store:this.$store},(0,N.Z)(e,o,this.replyTo),(0,N.Z)(e,"contentType",n.contentType),(0,N.Z)(e,"poll",{}),(0,N.Z)(e,"preview",!0),e)).then((function(e){t.previewLoading&&(e.error?t.preview={error:e.error}:t.preview=e)})).catch((function(e){t.preview={error:e}})).finally((function(){t.previewLoading=!1}))},debouncePreviewStatus:H()((function(){this.previewStatus()}),500),autoPreview:function(){this.preview&&(this.previewLoading=!0,this.debouncePreviewStatus())},closePreview:function(){this.preview=null,this.previewLoading=!1},togglePreview:function(){this.showPreview?this.closePreview():this.previewStatus()},addMediaFile:function(e){this.newStatus.files.push(e),this.$emit("resize",{delayed:!0})},removeMediaFile:function(e){var t=this.newStatus.files.indexOf(e);this.newStatus.files.splice(t,1),this.$emit("resize")},editAttachment:function(e,t){this.newStatus.mediaDescriptions[e.id]=t},shiftUpMediaFile:function(e){var t=this.newStatus.files,n=this.newStatus.files.indexOf(e);t.splice(n,1),t.splice(n-1,0,e)},shiftDnMediaFile:function(e){var t=this.newStatus.files,n=this.newStatus.files.indexOf(e);t.splice(n,1),t.splice(n+1,0,e)},uploadFailed:function(e,t){t=t||{},this.error=this.$t("upload.error.base")+" "+this.$t("upload.error."+e,t)},startedUploadingFiles:function(){this.uploadingFiles=!0},finishedUploadingFiles:function(){this.$emit("resize"),this.uploadingFiles=!1},type:function(e){return Ae.ZP.fileType(e.mimetype)},paste:function(e){this.autoPreview(),this.resize(e),e.clipboardData.files.length>0&&(e.preventDefault(),this.dropFiles=[e.clipboardData.files[0]])},fileDrop:function(e){e.dataTransfer&&e.dataTransfer.types.includes("Files")&&(e.preventDefault(),this.dropFiles=e.dataTransfer.files,clearTimeout(this.dropStopTimeout),this.showDropIcon="hide")},fileDragStop:function(e){var t=this;clearTimeout(this.dropStopTimeout),this.showDropIcon="fade",this.dropStopTimeout=setTimeout((function(){return t.showDropIcon="hide"}),500)},fileDrag:function(e){e.dataTransfer.dropEffect=this.uploadFileLimitReached?"none":"copy",e.dataTransfer&&e.dataTransfer.types.includes("Files")&&(clearTimeout(this.dropStopTimeout),this.showDropIcon="show")},onEmojiInputInput:function(e){var t=this;this.$nextTick((function(){t.resize(t.$refs.textarea)}))},resize:function(e){var t=e.target||e;if(t instanceof window.Element){if(""===t.value)return t.style.height=null,void this.$emit("resize");var n=this.$refs.form,o=this.$refs.bottom,r=window.getComputedStyle(o)["padding-bottom"],i=$e(r),s=this.$el.closest(".column.-scrollable")||this.$el.closest(".post-form-modal-view")||window,a=window.getComputedStyle(t)["padding-top"],u=window.getComputedStyle(t)["padding-bottom"],c=$e(a)+$e(u),l=$e(t.style.height),d=s===window?s.scrollY:s.scrollTop,p=s===window?s.innerHeight:s.offsetHeight,m=d+p;t.style.height="auto";var h=Math.floor(t.scrollHeight-c),f=this.maxHeight?Math.min(h,this.maxHeight):h;Math.abs(f-l)<=1&&(f=l),t.style.height="".concat(f,"px"),this.$emit("resize",f);var g=o.offsetHeight+(0,Oe.y)(o,s).top+i,v=m<g,w=p<n.offsetHeight,b=g-m,y=!v||w&&this.$refs.textarea.selectionStart!==this.$refs.textarea.value.length?0:b,D=Math.round(d+y);s===window?s.scroll(0,D):s.scrollTop=D}},showEmojiPicker:function(){this.$refs.textarea.focus(),this.$refs["emoji-input"].triggerShowPicker()},clearError:function(){this.error=null},changeVis:function(e){this.newStatus.visibility=e},togglePollForm:function(){this.pollFormVisible=!this.pollFormVisible},setPoll:function(e){this.newStatus.poll=e},clearPollForm:function(){this.$refs.pollForm&&this.$refs.pollForm.clear()},dismissScopeNotice:function(){this.$store.dispatch("setOption",{name:"hideScopeNotice",value:!0})},setMediaDescription:function(e){var t=this.newStatus.mediaDescriptions[e];if(t&&""!==t.trim())return te.Z.setMediaDescription({store:this.$store,id:e,description:t})},setAllMediaDescriptions:function(){var e=this,t=this.newStatus.files.map((function(e){return e.id}));return Promise.all(t.map((function(t){return e.setMediaDescription(t)})))},handleEmojiInputShow:function(e){this.emojiInputShown=e},updateIdempotencyKey:function(){this.idempotencyKey=Date.now().toString()},openProfileTab:function(){this.$store.dispatch("openSettingsModalTab","profile")},propsToNative:function(e){return(0,Ee.X)(e)}}},Ue=(0,ke.Z)(Be,[["render",function(e,t,n,q,N,Z){var W=(0,o.up)("i18n-t"),H=(0,o.up)("FAIcon"),V=(0,o.up)("StatusContent"),K=(0,o.up)("EmojiInput"),G=(0,o.up)("scope-selector"),Y=(0,o.up)("Select"),J=(0,o.up)("poll-form"),Q=(0,o.up)("media-upload"),X=(0,o.up)("gallery"),ee=(0,o.up)("Checkbox");return(0,o.wg)(),(0,o.iD)("div",s,[(0,o._)("form",{autocomplete:"off",onSubmit:t[27]||(t[27]=(0,r.iM)((function(){}),["prevent"])),onDragover:t[28]||(t[28]=(0,r.iM)((function(){return e.fileDrag&&e.fileDrag.apply(e,arguments)}),["prevent"]))},[(0,o._)("div",a,[e.$store.state.users.currentUser.locked||"private"!=e.newStatus.visibility||e.disableLockWarning?(0,o.kq)("",!0):((0,o.wg)(),(0,o.j4)(W,{key:0,keypath:"post_status.account_not_locked_warning",tag:"p",class:"visibility-notice",scope:"global"},{default:(0,o.w5)((function(){return[(0,o._)("button",{class:"button-unstyled -link",onClick:t[0]||(t[0]=function(){return e.openProfileTab&&e.openProfileTab.apply(e,arguments)})},(0,i.zw)(e.$t("post_status.account_not_locked_warning_link")),1)]})),_:1})),e.hideScopeNotice||"public"!==e.newStatus.visibility?e.hideScopeNotice||"unlisted"!==e.newStatus.visibility?!e.hideScopeNotice&&"private"===e.newStatus.visibility&&e.$store.state.users.currentUser.locked?((0,o.wg)(),(0,o.iD)("p",p,[(0,o._)("span",null,(0,i.zw)(e.$t("post_status.scope_notice.private")),1),(0,o._)("a",{class:"fa-scale-110 fa-old-padding dismiss",title:e.$t("post_status.scope_notice_dismiss"),role:"button",tabindex:"0",onClick:t[3]||(t[3]=(0,r.iM)((function(t){return e.dismissScopeNotice()}),["prevent"]))},[(0,o.Wm)(H,{icon:"times"})],8,m)])):"direct"===e.newStatus.visibility?((0,o.wg)(),(0,o.iD)("p",h,[e.safeDMEnabled?((0,o.wg)(),(0,o.iD)("span",f,(0,i.zw)(e.$t("post_status.direct_warning_to_first_only")),1)):((0,o.wg)(),(0,o.iD)("span",g,(0,i.zw)(e.$t("post_status.direct_warning_to_all")),1))])):(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("p",l,[(0,o._)("span",null,(0,i.zw)(e.$t("post_status.scope_notice.unlisted")),1),(0,o._)("a",{class:"fa-scale-110 fa-old-padding dismiss",title:e.$t("post_status.scope_notice_dismiss"),role:"button",tabindex:"0",onClick:t[2]||(t[2]=(0,r.iM)((function(t){return e.dismissScopeNotice()}),["prevent"]))},[(0,o.Wm)(H,{icon:"times"})],8,d)])):((0,o.wg)(),(0,o.iD)("p",u,[(0,o._)("span",null,(0,i.zw)(e.$t("post_status.scope_notice.public")),1),(0,o._)("a",{class:"fa-scale-110 fa-old-padding dismiss",title:e.$t("post_status.scope_notice_dismiss"),role:"button",tabindex:"0",onClick:t[1]||(t[1]=(0,r.iM)((function(t){return e.dismissScopeNotice()}),["prevent"]))},[(0,o.Wm)(H,{icon:"times"})],8,c)])),e.isEdit?((0,o.wg)(),(0,o.iD)("div",v,[(0,o._)("p",null,(0,i.zw)(e.$t("post_status.edit_remote_warning")),1),(0,o._)("p",null,(0,i.zw)(e.$t("post_status.edit_unsupported_warning")),1)])):(0,o.kq)("",!0),e.disablePreview?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",w,[(0,o._)("a",{class:"preview-toggle faint",onClick:t[4]||(t[4]=(0,r.iM)((function(){return e.togglePreview&&e.togglePreview.apply(e,arguments)}),["stop","prevent"]))},[(0,o.Uk)((0,i.zw)(e.$t("post_status.preview"))+" ",1),(0,o.Wm)(H,{icon:e.showPreview?"chevron-left":"chevron-right"},null,8,["icon"])]),(0,o.wy)((0,o._)("div",b,[(0,o.Wm)(H,{class:"fa-old-padding",spin:"",icon:"circle-notch"})],512),[[r.F8,e.previewLoading]])])),e.showPreview?((0,o.wg)(),(0,o.iD)("div",y,[e.preview?e.preview.error?((0,o.wg)(),(0,o.iD)("div",_,(0,i.zw)(e.preview.error),1)):((0,o.wg)(),(0,o.j4)(V,{key:2,status:e.preview,class:"preview-status"},null,8,["status"])):((0,o.wg)(),(0,o.iD)("div",D,(0,i.zw)(e.$t("general.loading")),1))])):(0,o.kq)("",!0),e.quotable?((0,o.wg)(),(0,o.iD)("div",k,[(0,o._)("button",{id:"reply-or-quote-option-".concat(e.randomSeed,"-reply"),class:(0,i.C_)(["btn button-default reply-or-quote-option",{toggled:!e.newStatus.quoting}]),tabindex:"0",role:"radio","aria-labelledby":"reply-or-quote-option-".concat(e.randomSeed,"-reply"),"aria-checked":!e.newStatus.quoting,onClick:t[5]||(t[5]=function(t){return e.newStatus.quoting=!1})},(0,i.zw)(e.$t("post_status.reply_option")),11,C),(0,o._)("button",{id:"reply-or-quote-option-".concat(e.randomSeed,"-quote"),class:(0,i.C_)(["btn button-default reply-or-quote-option",{toggled:e.newStatus.quoting}]),tabindex:"0",role:"radio","aria-labelledby":"reply-or-quote-option-".concat(e.randomSeed,"-quote"),"aria-checked":e.newStatus.quoting,onClick:t[6]||(t[6]=function(t){return e.newStatus.quoting=!0})},(0,i.zw)(e.$t("post_status.quote_option")),11,S)])):(0,o.kq)("",!0),e.disableSubject||!e.newStatus.spoilerText&&!e.alwaysShowSubject?(0,o.kq)("",!0):((0,o.wg)(),(0,o.j4)(K,{key:9,modelValue:e.newStatus.spoilerText,"onUpdate:modelValue":t[8]||(t[8]=function(t){return e.newStatus.spoilerText=t}),"enable-emoji-picker":"",suggest:e.emojiSuggestor,class:"form-control"},{default:(0,o.w5)((function(n){return[(0,o.wy)((0,o._)("input",(0,o.dG)({"onUpdate:modelValue":t[7]||(t[7]=function(t){return e.newStatus.spoilerText=t}),type:"text",placeholder:e.$t("post_status.content_warning"),disabled:e.posting&&!e.optimisticPosting},e.propsToNative(n),{size:"1",class:"form-post-subject"}),null,16,j),[[r.nr,e.newStatus.spoilerText]])]})),_:1},8,["modelValue","suggest"])),(0,o.Wm)(K,{ref:"emoji-input",modelValue:e.newStatus.status,"onUpdate:modelValue":t[16]||(t[16]=function(t){return e.newStatus.status=t}),suggest:e.emojiUserSuggestor,placement:e.emojiPickerPlacement,class:"form-control main-input","enable-emoji-picker":"","hide-emoji-button":"","newline-on-ctrl-enter":e.submitOnEnter,"enable-sticker-picker":"",onInput:e.onEmojiInputInput,onStickerUploaded:e.addMediaFile,onStickerUploadFailed:e.uploadFailed,onShown:e.handleEmojiInputShow},{default:(0,o.w5)((function(n){return[(0,o.wy)((0,o._)("textarea",(0,o.dG)({ref:"textarea","onUpdate:modelValue":t[9]||(t[9]=function(t){return e.newStatus.status=t}),placeholder:e.placeholder||e.$t("post_status.default"),rows:"1",cols:"1",disabled:e.posting&&!e.optimisticPosting,class:["form-post-body",{"scrollable-form":!!e.maxHeight}]},e.propsToNative(n),{onKeydown:[t[10]||(t[10]=(0,r.D2)((0,r.iM)((function(t){return e.submitOnEnter&&e.postStatus(t,e.newStatus)}),["exact"]),["enter"])),t[11]||(t[11]=(0,r.D2)((0,r.iM)((function(t){return e.postStatus(t,e.newStatus)}),["meta"]),["enter"])),t[12]||(t[12]=(0,r.D2)((0,r.iM)((function(t){return!e.submitOnEnter&&e.postStatus(t,e.newStatus)}),["ctrl"]),["enter"]))],onInput:t[13]||(t[13]=function(){return e.resize&&e.resize.apply(e,arguments)}),onCompositionupdate:t[14]||(t[14]=function(){return e.resize&&e.resize.apply(e,arguments)}),onPaste:t[15]||(t[15]=function(){return e.paste&&e.paste.apply(e,arguments)})}),null,16,F),[[r.nr,e.newStatus.status]]),e.hasStatusLengthLimit?((0,o.wg)(),(0,o.iD)("p",{key:0,class:(0,i.C_)(["character-counter faint",{error:e.isOverLengthLimit}])},(0,i.zw)(e.charactersLeft),3)):(0,o.kq)("",!0)]})),_:1},8,["modelValue","suggest","placement","newline-on-ctrl-enter","onInput","onStickerUploaded","onStickerUploadFailed","onShown"]),e.disableScopeSelector?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",A,[e.disableVisibilitySelector?(0,o.kq)("",!0):((0,o.wg)(),(0,o.j4)(G,{key:0,"show-all":e.showAllScopes,"user-default":e.userDefaultScope,"original-scope":e.copyMessageScope,"initial-scope":e.newStatus.visibility,"on-scope-change":e.changeVis},null,8,["show-all","user-default","original-scope","initial-scope","on-scope-change"])),e.postFormats.length>1?((0,o.wg)(),(0,o.iD)("div",O,[(0,o.Wm)(Y,{id:"post-content-type",modelValue:e.newStatus.contentType,"onUpdate:modelValue":t[17]||(t[17]=function(t){return e.newStatus.contentType=t}),class:"form-control",attrs:{"aria-label":e.$t("post_status.content_type_selection")}},{default:(0,o.w5)((function(){return[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.postFormats,(function(t){return(0,o.wg)(),(0,o.iD)("option",{key:t,value:t},(0,i.zw)(e.$t('post_status.content_type["'.concat(t,'"]'))),9,E)})),128))]})),_:1},8,["modelValue","attrs"])])):(0,o.kq)("",!0),1===e.postFormats.length&&"text/plain"!==e.postFormats[0]?((0,o.wg)(),(0,o.iD)("div",z,[(0,o._)("span",P,(0,i.zw)(e.$t('post_status.content_type["'.concat(e.postFormats[0],'"]'))),1)])):(0,o.kq)("",!0)]))]),e.pollsAvailable?((0,o.wg)(),(0,o.j4)(J,{key:0,ref:"pollForm",visible:e.pollFormVisible,onUpdatePoll:e.setPoll},null,8,["visible","onUpdatePoll"])):(0,o.kq)("",!0),(0,o._)("div",I,[(0,o._)("div",x,[(0,o.Wm)(Q,{ref:"mediaUpload",class:"media-upload-icon","drop-files":e.dropFiles,disabled:e.uploadFileLimitReached,onUploading:e.startedUploadingFiles,onUploaded:e.addMediaFile,onUploadFailed:e.uploadFailed,onAllUploaded:e.finishedUploadingFiles},null,8,["drop-files","disabled","onUploading","onUploaded","onUploadFailed","onAllUploaded"]),(0,o._)("button",{class:"emoji-icon button-unstyled",title:e.$t("emoji.add_emoji"),onClick:t[18]||(t[18]=function(){return e.showEmojiPicker&&e.showEmojiPicker.apply(e,arguments)})},[(0,o.Wm)(H,{icon:"smile-beam"})],8,T),e.pollsAvailable?((0,o.wg)(),(0,o.iD)("button",{key:0,class:(0,i.C_)(["poll-icon button-unstyled",{selected:e.pollFormVisible}]),title:e.$t("polls.add_poll"),onClick:t[19]||(t[19]=function(){return e.togglePollForm&&e.togglePollForm.apply(e,arguments)})},[(0,o.Wm)(H,{icon:"poll-h"})],10,$)):(0,o.kq)("",!0)]),e.posting?((0,o.wg)(),(0,o.iD)("button",B,(0,i.zw)(e.$t("post_status.posting")),1)):e.isOverLengthLimit?((0,o.wg)(),(0,o.iD)("button",U,(0,i.zw)(e.$t("post_status.post")),1)):((0,o.wg)(),(0,o.iD)("button",{key:2,disabled:e.uploadingFiles||e.disableSubmit,class:"btn button-default",onClick:t[20]||(t[20]=(0,r.iM)((function(t){return e.postStatus(t,e.newStatus)}),["stop","prevent"]))},(0,i.zw)(e.$t("post_status.post")),9,M))],512),(0,o.wy)((0,o._)("div",{style:(0,i.j5)({animation:"show"===e.showDropIcon?"fade-in 0.25s":"fade-out 0.5s"}),class:"drop-indicator",onDragleave:t[21]||(t[21]=function(){return e.fileDragStop&&e.fileDragStop.apply(e,arguments)}),onDrop:t[22]||(t[22]=(0,r.iM)((function(){return e.fileDrop&&e.fileDrop.apply(e,arguments)}),["stop"]))},[(0,o.Wm)(H,{icon:e.uploadFileLimitReached?"ban":"upload"},null,8,["icon"])],36),[[r.F8,"hide"!==e.showDropIcon]]),e.error?((0,o.wg)(),(0,o.iD)("div",L,[(0,o.Uk)(" Error: "+(0,i.zw)(e.error)+" ",1),(0,o._)("button",{class:"button-unstyled",onClick:t[23]||(t[23]=function(){return e.clearError&&e.clearError.apply(e,arguments)})},[(0,o.Wm)(H,{class:"fa-scale-110 fa-old-padding",icon:"times"})])])):(0,o.kq)("",!0),e.newStatus.files&&e.newStatus.files.length>0?((0,o.wg)(),(0,o.j4)(X,{key:2,class:"attachments",grid:!0,nsfw:!1,attachments:e.newStatus.files,descriptions:e.newStatus.mediaDescriptions,"set-media":function(){return e.$store.dispatch("setMedia",e.newStatus.files)},editable:!0,"edit-attachment":e.editAttachment,"remove-attachment":e.removeMediaFile,"shift-up-attachment":e.newStatus.files.length>1&&e.shiftUpMediaFile,"shift-dn-attachment":e.newStatus.files.length>1&&e.shiftDnMediaFile,onPlay:t[24]||(t[24]=function(t){return e.$emit("mediaplay",e.attachment.id)}),onPause:t[25]||(t[25]=function(t){return e.$emit("mediapause",e.attachment.id)})},null,8,["attachments","descriptions","set-media","edit-attachment","remove-attachment","shift-up-attachment","shift-dn-attachment"])):(0,o.kq)("",!0),e.newStatus.files.length>0&&!e.disableSensitivityCheckbox?((0,o.wg)(),(0,o.iD)("div",R,[(0,o.Wm)(ee,{modelValue:e.newStatus.nsfw,"onUpdate:modelValue":t[26]||(t[26]=function(t){return e.newStatus.nsfw=t})},{default:(0,o.w5)((function(){return[(0,o.Uk)((0,i.zw)(e.$t("post_status.attachments_sensitive")),1)]})),_:1},8,["modelValue"])])):(0,o.kq)("",!0)],32)],512)}]])},99507:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var o=n(66252),r=["disabled"];const i={props:{disabled:{type:Boolean},click:{type:Function,default:function(){return Promise.resolve()}}},data:function(){return{progress:!1}},methods:{onClick:function(){var e=this;this.progress=!0,this.click().then((function(){e.progress=!1}))}}},s=(0,n(83744).Z)(i,[["render",function(e,t,n,i,s,a){return(0,o.wg)(),(0,o.iD)("button",{disabled:s.progress||n.disabled,onClick:t[0]||(t[0]=function(){return a.onClick&&a.onClick.apply(a,arguments)})},[s.progress&&e.$slots.progress?(0,o.WI)(e.$slots,"progress",{key:0}):(0,o.WI)(e.$slots,"default",{key:1})],8,r)}]])},72895:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var o=n(66252),r=n(3577),i={class:"remote-follow"},s=["action"],a=["value"],u=(0,o._)("input",{type:"hidden",name:"profile",value:""},null,-1),c={click:"submit",class:"button-default remote-button"};const l={props:["user"],computed:{subscribeUrl:function(){var e=new URL(this.user.statusnet_profile_url);return"".concat(e.protocol,"//").concat(e.host,"/main/ostatus")}}},d=(0,n(83744).Z)(l,[["render",function(e,t,n,l,d,p){return(0,o.wg)(),(0,o.iD)("div",i,[(0,o._)("form",{method:"POST",action:e.subscribeUrl},[(0,o._)("input",{type:"hidden",name:"nickname",value:e.user.screen_name},null,8,a),u,(0,o._)("button",c,(0,r.zw)(e.$t("user_card.remote_follow")),1)],8,s)])}]])},54110:(e,t,n)=>{"use strict";n.d(t,{Z:()=>m});var o=n(66252),r=n(3577),i={key:0,class:"ScopeSelector"},s=["title"],a=["title"],u=["title"],c=["title"],l=n(9382),d=n(84131);l.vI.add(d.FU$,d.g4A,d.byT,d._1N);const p={props:["showAll","userDefault","originalScope","initialScope","onScopeChange"],data:function(){return{currentScope:this.initialScope}},computed:{showNothing:function(){return!(this.showPublic||this.showUnlisted||this.showPrivate||this.showDirect)},showPublic:function(){return"direct"!==this.originalScope&&this.shouldShow("public")},showUnlisted:function(){return"direct"!==this.originalScope&&this.shouldShow("unlisted")},showPrivate:function(){return"direct"!==this.originalScope&&this.shouldShow("private")},showDirect:function(){return this.shouldShow("direct")},css:function(){return{public:{selected:"public"===this.currentScope},unlisted:{selected:"unlisted"===this.currentScope},private:{selected:"private"===this.currentScope},direct:{selected:"direct"===this.currentScope}}}},methods:{shouldShow:function(e){return this.showAll||this.currentScope===e||this.originalScope===e||this.userDefault===e||"direct"===e},changeVis:function(e){this.currentScope=e,this.onScopeChange&&this.onScopeChange(e)}}},m=(0,n(83744).Z)(p,[["render",function(e,t,n,l,d,p){var m=(0,o.up)("FAIcon");return e.showNothing?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",i,[e.showDirect?((0,o.wg)(),(0,o.iD)("button",{key:0,class:(0,r.C_)(["button-unstyled scope",e.css.direct]),title:e.$t("post_status.scope.direct"),type:"button",onClick:t[0]||(t[0]=function(t){return e.changeVis("direct")})},[(0,o.Wm)(m,{icon:"envelope",class:"fa-scale-110 fa-old-padding"})],10,s)):(0,o.kq)("",!0),(0,o.Uk)(" "+(0,r.zw)(" ")+" "),e.showPrivate?((0,o.wg)(),(0,o.iD)("button",{key:1,class:(0,r.C_)(["button-unstyled scope",e.css.private]),title:e.$t("post_status.scope.private"),type:"button",onClick:t[1]||(t[1]=function(t){return e.changeVis("private")})},[(0,o.Wm)(m,{icon:"lock",class:"fa-scale-110 fa-old-padding"})],10,a)):(0,o.kq)("",!0),(0,o.Uk)(" "+(0,r.zw)(" ")+" "),e.showUnlisted?((0,o.wg)(),(0,o.iD)("button",{key:2,class:(0,r.C_)(["button-unstyled scope",e.css.unlisted]),title:e.$t("post_status.scope.unlisted"),type:"button",onClick:t[2]||(t[2]=function(t){return e.changeVis("unlisted")})},[(0,o.Wm)(m,{icon:"lock-open",class:"fa-scale-110 fa-old-padding"})],10,u)):(0,o.kq)("",!0),(0,o.Uk)(" "+(0,r.zw)(" ")+" "),e.showPublic?((0,o.wg)(),(0,o.iD)("button",{key:3,class:(0,r.C_)(["button-unstyled scope",e.css.public]),title:e.$t("post_status.scope.public"),type:"button",onClick:t[3]||(t[3]=function(t){return e.changeVis("public")})},[(0,o.Wm)(m,{icon:"globe",class:"fa-scale-110 fa-old-padding"})],10,c)):(0,o.kq)("",!0)]))}]])},76990:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});var o=n(66252),r=n(3577),i=["disabled","value"],s=n(9382),a=n(84131);s.vI.add(a.ptq);const u={emits:["update:modelValue"],props:["modelValue","disabled","unstyled","kind","attrs"]},c=(0,n(83744).Z)(u,[["render",function(e,t,n,s,a,u){var c=(0,o.up)("FAIcon");return(0,o.wg)(),(0,o.iD)("label",{class:(0,r.C_)(["Select input",{disabled:e.disabled,unstyled:e.unstyled}])},[(0,o._)("select",(0,o.dG)({disabled:e.disabled,value:e.modelValue},e.attrs,{onChange:t[0]||(t[0]=function(t){return e.$emit("update:modelValue",t.target.value)})}),[(0,o.WI)(e.$slots,"default")],16,i),(0,o.Uk)(" "+(0,r.zw)(" ")+" "),(0,o.Wm)(c,{class:"select-down-icon",icon:"chevron-down"})],2)}]])},96686:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>Jt});var o=n(66252),r=n(3577),i=n(49963),s={key:0,class:"alert error"},a={key:1,class:"status-container muted"},u={class:"status-username"},c={key:0,class:"mute-thread"},l={key:1,class:"mute-thread"},d=["title"],p={key:0,class:"pin"},m={class:"faint"},h={class:"right-side faint"},f=["title"],g=["data-tags"],v={key:0,class:"left-side"},w=["href"],b={class:"right-side"},y={key:0,class:"status-heading"},D={class:"heading-name-row"},_={class:"heading-left"},k=["title"],C=["title"],S=["src"],j={class:"heading-right"},F=["title"],A=["title"],O=["title","aria-expanded"],E=["title"],z={key:0,class:"heading-reply-row"},P={key:0,class:"glued-label reply-glued-label"},I=["aria-label"],x={class:"reply-to-text"},T={key:1,class:"reply-to-no-popover"},$={class:"reply-to-text"},B={key:1,class:"glued-label"},U=["aria-label"],M={class:"mentions-text"},L={key:1,class:"heading-edited-row"},R={key:1,class:"quoted-status"},q=["aria-expanded"],N={key:2,class:"quoted-status -unavailable-prompt"},Z=["href"],W={key:3,class:"replies"},H=["title"],V={key:1,class:"faint"},K=["onClick"],G={key:0,class:"favs-repeated-users"},Y={class:"stats"},J={class:"stat-count"},Q={class:"stat-title"},X={class:"stat-number"},ee={class:"stat-count"},te={class:"stat-title"},ne={class:"stat-number"},oe={class:"avatar-row"},re={key:5,class:"status-actions"},ie={key:3,class:"gravestone"},se={class:"left-side"},ae={class:"right-side"},ue={class:"deleted-text"},ce={key:4,class:"status-container reply-form"},le=n(4942),de=n(45578),pe=n.n(de),me=n(27955),he=n.n(me),fe={class:"ReplyButton"},ge=["title"],ve=["href","title"],we={key:2,class:"action-counter"},be=n(9382),ye=n(84131);be.vI.add(ye.Lh7,ye.r8p,ye.NBC);const De={name:"ReplyButton",props:["status","replying"],computed:{loggedIn:function(){return!!this.$store.state.users.currentUser},remoteInteractionLink:function(){return this.$store.getters.remoteInteractionLink({statusId:this.status.id})}}};var _e=n(83744);const ke=(0,_e.Z)(De,[["render",function(e,t,n,s,a,u){var c=(0,o.up)("FAIcon"),l=(0,o.up)("FALayers");return(0,o.wg)(),(0,o.iD)("div",fe,[e.loggedIn?((0,o.wg)(),(0,o.iD)("button",{key:0,class:(0,r.C_)(["button-unstyled interactive",{"-active":e.replying}]),title:e.$t("tool_tip.reply"),onClick:t[0]||(t[0]=(0,i.iM)((function(t){return e.$emit("toggle")}),["prevent"]))},[(0,o.Wm)(l,{class:"fa-old-padding-layer"},{default:(0,o.w5)((function(){return[(0,o.Wm)(c,{class:"fa-scale-110",icon:"reply"}),e.replying?((0,o.wg)(),(0,o.j4)(c,{key:1,class:"focus-marker",transform:"shrink-6 up-8 right-11",icon:"times"})):((0,o.wg)(),(0,o.j4)(c,{key:0,class:"focus-marker",transform:"shrink-6 up-8 right-11",icon:"plus"}))]})),_:1})],10,ge)):((0,o.wg)(),(0,o.iD)("a",{key:1,class:"button-unstyled interactive",target:"_blank",role:"button",href:e.remoteInteractionLink,title:e.$t("tool_tip.reply")},[(0,o.Wm)(l,{class:"fa-old-padding-layer"},{default:(0,o.w5)((function(){return[(0,o.Wm)(c,{class:"fa-scale-110",icon:"reply"}),e.replying?(0,o.kq)("",!0):((0,o.wg)(),(0,o.j4)(c,{key:0,class:"focus-marker",transform:"shrink-6 up-8 right-16",icon:"plus"}))]})),_:1})],8,ve)),e.status.replies_count>0?((0,o.wg)(),(0,o.iD)("span",we,(0,r.zw)(e.status.replies_count),1)):(0,o.kq)("",!0)])}]]);var Ce={class:"FavoriteButton"},Se=["title"],je=["title","href"],Fe={key:2,class:"action-counter"},Ae=n(989),Oe=n(5737);function Ee(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function ze(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ee(Object(n),!0).forEach((function(t){(0,le.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ee(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}be.vI.add(ye.Tab,Oe.Tab,ye.r8p,ye.Kl4,ye.LEp);const Pe={props:["status","loggedIn"],data:function(){return{animated:!1}},methods:{favorite:function(){var e=this;this.status.favorited?this.$store.dispatch("unfavorite",{id:this.status.id}):this.$store.dispatch("favorite",{id:this.status.id}),this.animated=!0,setTimeout((function(){e.animated=!1}),500)}},computed:ze(ze({},(0,Ae.Se)(["mergedConfig"])),{},{remoteInteractionLink:function(){return this.$store.getters.remoteInteractionLink({statusId:this.status.id})}})},Ie=(0,_e.Z)(Pe,[["render",function(e,t,n,s,a,u){var c=(0,o.up)("FAIcon"),l=(0,o.up)("FALayers");return(0,o.wg)(),(0,o.iD)("div",Ce,[e.loggedIn?((0,o.wg)(),(0,o.iD)("button",{key:0,class:(0,r.C_)(["button-unstyled interactive",e.status.favorited&&"-favorited"]),title:e.$t("tool_tip.favorite"),onClick:t[0]||(t[0]=(0,i.iM)((function(t){return e.favorite()}),["prevent"]))},[(0,o.Wm)(l,{class:"fa-scale-110 fa-old-padding-layer"},{default:(0,o.w5)((function(){return[(0,o.Wm)(c,{class:"fa-scale-110",icon:[e.status.favorited?"fas":"far","star"],spin:e.animated},null,8,["icon","spin"]),e.status.favorited?((0,o.wg)(),(0,o.j4)(c,{key:0,class:"active-marker",transform:"shrink-6 up-9 right-12",icon:"check"})):(0,o.kq)("",!0),e.status.favorited?((0,o.wg)(),(0,o.j4)(c,{key:2,class:"focus-marker",transform:"shrink-6 up-9 right-12",icon:"minus"})):((0,o.wg)(),(0,o.j4)(c,{key:1,class:"focus-marker",transform:"shrink-6 up-9 right-12",icon:"plus"}))]})),_:1})],10,Se)):((0,o.wg)(),(0,o.iD)("a",{key:1,class:"button-unstyled interactive",target:"_blank",role:"button",title:e.$t("tool_tip.favorite"),href:e.remoteInteractionLink},[(0,o.Wm)(l,{class:"fa-scale-110 fa-old-padding-layer"},{default:(0,o.w5)((function(){return[(0,o.Wm)(c,{class:"fa-scale-110",icon:["far","star"]}),(0,o.Wm)(c,{class:"focus-marker",transform:"shrink-6 up-9 right-12",icon:"plus"})]})),_:1})],8,je)),!e.mergedConfig.hidePostStats&&e.status.fave_num>0?((0,o.wg)(),(0,o.iD)("span",Fe,(0,r.zw)(e.status.fave_num),1)):(0,o.kq)("",!0)])}]]);var xe={class:"ReactButton"},Te=["title"],$e=n(84535),Be=n(98471);be.vI.add(ye.r8p,ye.NBC,Oe.RKn);const Ue={props:["status"],data:function(){return{filterWord:"",expanded:!1}},components:{Popover:$e.default,EmojiPicker:Be.Z},methods:{addReaction:function(e){var t=e.insertion,n=this.status.emoji_reactions.find((function(e){return e.name===t}));n&&n.me?this.$store.dispatch("unreactWithEmoji",{id:this.status.id,emoji:t}):this.$store.dispatch("reactWithEmoji",{id:this.status.id,emoji:t})},show:function(){this.expanded||this.$refs.picker.showPicker()},onShow:function(){this.expanded=!0},onClose:function(){this.expanded=!1}},computed:{hideCustomEmoji:function(){return!this.$store.state.instance.pleromaCustomEmojiReactionsAvailable}}},Me=(0,_e.Z)(Ue,[["render",function(e,t,n,r,s,a){var u=(0,o.up)("EmojiPicker"),c=(0,o.up)("FAIcon"),l=(0,o.up)("FALayers");return(0,o.wg)(),(0,o.iD)("span",xe,[(0,o.Wm)(u,{ref:"picker","enable-sticker-picker":e.enableStickerPicker,"hide-custom-emoji":e.hideCustomEmoji,class:"emoji-picker-panel",onEmoji:e.addReaction,onShow:e.onShow,onClose:e.onClose},null,8,["enable-sticker-picker","hide-custom-emoji","onEmoji","onShow","onClose"]),(0,o._)("span",{class:"button-unstyled popover-trigger",title:e.$t("tool_tip.add_reaction"),onClick:t[0]||(t[0]=(0,i.iM)((function(){return e.show&&e.show.apply(e,arguments)}),["stop","prevent"]))},[(0,o.Wm)(l,null,{default:(0,o.w5)((function(){return[(0,o.Wm)(c,{class:"fa-scale-110 fa-old-padding",icon:["far","smile-beam"]}),(0,o.wy)((0,o.Wm)(c,{class:"focus-marker",transform:"shrink-6 up-9 right-17",icon:"plus"},null,512),[[i.F8,!e.expanded]]),(0,o.wy)((0,o.Wm)(c,{class:"focus-marker",transform:"shrink-6 up-9 right-17",icon:"times"},null,512),[[i.F8,e.expanded]])]})),_:1})],8,Te)])}]]);var Le={class:"RetweetButton"},Re=["title"],qe={key:1},Ne=["title","href"],Ze={key:3,class:"no-event"},We=n(1447);be.vI.add(ye.x5v,ye.r8p,ye.Kl4,ye.LEp);const He={props:["status","loggedIn","visibility"],components:{ConfirmModal:We.Z},data:function(){return{animated:!1,showingConfirmDialog:!1}},methods:{retweet:function(){!this.status.repeated&&this.shouldConfirmRepeat?this.showConfirmDialog():this.doRetweet()},doRetweet:function(){var e=this;this.status.repeated?this.$store.dispatch("unretweet",{id:this.status.id}):this.$store.dispatch("retweet",{id:this.status.id}),this.animated=!0,setTimeout((function(){e.animated=!1}),500),this.hideConfirmDialog()},showConfirmDialog:function(){this.showingConfirmDialog=!0},hideConfirmDialog:function(){this.showingConfirmDialog=!1}},computed:{mergedConfig:function(){return this.$store.getters.mergedConfig},remoteInteractionLink:function(){return this.$store.getters.remoteInteractionLink({statusId:this.status.id})},shouldConfirmRepeat:function(){return this.mergedConfig.modalOnRepeat}}},Ve=(0,_e.Z)(He,[["render",function(e,t,n,s,a,u){var c=(0,o.up)("FAIcon"),l=(0,o.up)("FALayers"),d=(0,o.up)("confirm-modal");return(0,o.wg)(),(0,o.iD)("div",Le,["private"!==e.visibility&&"direct"!==e.visibility&&e.loggedIn?((0,o.wg)(),(0,o.iD)("button",{key:0,class:(0,r.C_)(["button-unstyled interactive",e.status.repeated&&"-repeated"]),title:e.$t("tool_tip.repeat"),onClick:t[0]||(t[0]=(0,i.iM)((function(t){return e.retweet()}),["prevent"]))},[(0,o.Wm)(l,{class:"fa-old-padding-layer"},{default:(0,o.w5)((function(){return[(0,o.Wm)(c,{class:"fa-scale-110",icon:"retweet",spin:e.animated},null,8,["spin"]),e.status.repeated?((0,o.wg)(),(0,o.j4)(c,{key:0,class:"active-marker",transform:"shrink-6 up-9 right-12",icon:"check"})):(0,o.kq)("",!0),e.status.repeated?((0,o.wg)(),(0,o.j4)(c,{key:2,class:"focus-marker",transform:"shrink-6 up-9 right-12",icon:"minus"})):((0,o.wg)(),(0,o.j4)(c,{key:1,class:"focus-marker",transform:"shrink-6 up-9 right-12",icon:"plus"}))]})),_:1})],10,Re)):e.loggedIn?((0,o.wg)(),(0,o.iD)("span",qe,[(0,o.Wm)(c,{class:"fa-scale-110 fa-old-padding",icon:"lock",title:e.$t("timeline.no_retweet_hint")},null,8,["title"])])):((0,o.wg)(),(0,o.iD)("a",{key:2,class:"button-unstyled interactive",target:"_blank",role:"button",title:e.$t("tool_tip.repeat"),href:e.remoteInteractionLink},[(0,o.Wm)(l,{class:"fa-old-padding-layer"},{default:(0,o.w5)((function(){return[(0,o.Wm)(c,{class:"fa-scale-110",icon:"retweet"}),(0,o.Wm)(c,{class:"focus-marker",transform:"shrink-6 up-9 right-12",icon:"plus"})]})),_:1})],8,Ne)),!e.mergedConfig.hidePostStats&&e.status.repeat_num>0?((0,o.wg)(),(0,o.iD)("span",Ze,(0,r.zw)(e.status.repeat_num),1)):(0,o.kq)("",!0),((0,o.wg)(),(0,o.j4)(o.lR,{to:"#modal"},[e.showingConfirmDialog?((0,o.wg)(),(0,o.j4)(d,{key:0,title:e.$t("status.repeat_confirm_title"),"confirm-text":e.$t("status.repeat_confirm_accept_button"),"cancel-text":e.$t("status.repeat_confirm_cancel_button"),onAccepted:e.doRetweet,onCancelled:e.hideConfirmDialog},{default:(0,o.w5)((function(){return[(0,o.Uk)((0,r.zw)(e.$t("status.repeat_confirm")),1)]})),_:1},8,["title","confirm-text","cancel-text","onAccepted","onCancelled"])):(0,o.kq)("",!0)]))])}]]);var Ke={class:"dropdown-menu"},Ge=["onClick"],Ye=["onClick"],Je=["onClick"],Qe=["onClick"],Xe=["onClick"],et=["onClick"],tt=["onClick"],nt=["onClick"],ot=["href"],rt=["onClick"],it={class:"button-unstyled popover-trigger"},st=n(93433);function at(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}be.vI.add(ye.cNd,ye.xVw,Oe.xVw,ye.Aq,ye.RP7,ye.EfQ,ye.Xjp,Oe.RrC,ye.qO$,ye.r8p,ye.NBC);const ut={props:["status"],components:{Popover:$e.default,ConfirmModal:We.Z},data:function(){return{expanded:!1,showingDeleteDialog:!1}},methods:{onShow:function(){this.expanded=!0},onClose:function(){this.expanded=!1},deleteStatus:function(){this.shouldConfirmDelete?this.showDeleteStatusConfirmDialog():this.doDeleteStatus()},doDeleteStatus:function(){this.$store.dispatch("deleteStatus",{id:this.status.id}),this.hideDeleteStatusConfirmDialog()},showDeleteStatusConfirmDialog:function(){this.showingDeleteDialog=!0},hideDeleteStatusConfirmDialog:function(){this.showingDeleteDialog=!1},pinStatus:function(){var e=this;this.$store.dispatch("pinStatus",this.status.id).then((function(){return e.$emit("onSuccess")})).catch((function(t){return e.$emit("onError",t.error.error)}))},unpinStatus:function(){var e=this;this.$store.dispatch("unpinStatus",this.status.id).then((function(){return e.$emit("onSuccess")})).catch((function(t){return e.$emit("onError",t.error.error)}))},muteConversation:function(){var e=this;this.$store.dispatch("muteConversation",this.status.id).then((function(){return e.$emit("onSuccess")})).catch((function(t){return e.$emit("onError",t.error.error)}))},unmuteConversation:function(){var e=this;this.$store.dispatch("unmuteConversation",this.status.id).then((function(){return e.$emit("onSuccess")})).catch((function(t){return e.$emit("onError",t.error.error)}))},copyLink:function(){var e=this;navigator.clipboard.writeText(this.statusLink).then((function(){return e.$emit("onSuccess")})).catch((function(t){return e.$emit("onError",t.error.error)}))},bookmarkStatus:function(){var e=this;this.$store.dispatch("bookmark",{id:this.status.id}).then((function(){return e.$emit("onSuccess")})).catch((function(t){return e.$emit("onError",t.error.error)}))},unbookmarkStatus:function(){var e=this;this.$store.dispatch("unbookmark",{id:this.status.id}).then((function(){return e.$emit("onSuccess")})).catch((function(t){return e.$emit("onError",t.error.error)}))},reportStatus:function(){this.$store.dispatch("openUserReportingModal",{userId:this.status.user.id,statusIds:[this.status.id]})},editStatus:function(){var e=this;this.$store.dispatch("fetchStatusSource",{id:this.status.id}).then((function(t){return e.$store.dispatch("openEditStatusModal",{statusId:e.status.id,subject:t.spoiler_text,statusText:t.text,statusIsSensitive:e.status.nsfw,statusPoll:e.status.poll,statusFiles:(0,st.Z)(e.status.attachments),visibility:e.status.visibility,statusContentType:t.content_type})}))},showStatusHistory:function(){var e=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?at(Object(n),!0).forEach((function(t){(0,le.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):at(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},this.status);["attachments","created_at","emojis","text","raw_html","nsfw","poll","summary","summary_raw_html"].forEach((function(t){return delete e[t]})),this.$store.dispatch("openStatusHistoryModal",e)}},computed:{currentUser:function(){return this.$store.state.users.currentUser},canDelete:function(){if(this.currentUser)return this.currentUser.privileges.includes("messages_delete")||this.status.user.id===this.currentUser.id},ownStatus:function(){return this.status.user.id===this.currentUser.id},canPin:function(){return this.ownStatus&&("public"===this.status.visibility||"unlisted"===this.status.visibility)},canMute:function(){return!!this.currentUser},canBookmark:function(){return!!this.currentUser},statusLink:function(){return"".concat(this.$store.state.instance.server).concat(this.$router.resolve({name:"conversation",params:{id:this.status.id}}).href)},isEdited:function(){return null!==this.status.edited_at},editingAvailable:function(){return this.$store.state.instance.editingAvailable},shouldConfirmDelete:function(){return this.$store.getters.mergedConfig.modalOnDelete}}},ct=(0,_e.Z)(ut,[["render",function(e,t,n,s,a,u){var c=(0,o.up)("FAIcon"),l=(0,o.up)("FALayers"),d=(0,o.up)("ConfirmModal"),p=(0,o.up)("Popover");return(0,o.wg)(),(0,o.j4)(p,{class:"ExtraButtons",trigger:"click",placement:"top",offset:{y:5},"bound-to":{x:"container"},"remove-padding":"",onShow:e.onShow,onClose:e.onClose},{content:(0,o.w5)((function(n){var s=n.close;return[(0,o._)("div",Ke,[e.canMute&&!e.status.thread_muted?((0,o.wg)(),(0,o.iD)("button",{key:0,class:"button-default dropdown-item dropdown-item-icon",onClick:t[0]||(t[0]=(0,i.iM)((function(){return e.muteConversation&&e.muteConversation.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(c,{"fixed-width":"",icon:"eye-slash"}),(0,o._)("span",null,(0,r.zw)(e.$t("status.mute_conversation")),1)])):(0,o.kq)("",!0),e.canMute&&e.status.thread_muted?((0,o.wg)(),(0,o.iD)("button",{key:1,class:"button-default dropdown-item dropdown-item-icon",onClick:t[1]||(t[1]=(0,i.iM)((function(){return e.unmuteConversation&&e.unmuteConversation.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(c,{"fixed-width":"",icon:"eye-slash"}),(0,o._)("span",null,(0,r.zw)(e.$t("status.unmute_conversation")),1)])):(0,o.kq)("",!0),!e.status.pinned&&e.canPin?((0,o.wg)(),(0,o.iD)("button",{key:2,class:"button-default dropdown-item dropdown-item-icon",onClick:[t[2]||(t[2]=(0,i.iM)((function(){return e.pinStatus&&e.pinStatus.apply(e,arguments)}),["prevent"])),s]},[(0,o.Wm)(c,{"fixed-width":"",icon:"thumbtack"}),(0,o._)("span",null,(0,r.zw)(e.$t("status.pin")),1)],8,Ge)):(0,o.kq)("",!0),e.status.pinned&&e.canPin?((0,o.wg)(),(0,o.iD)("button",{key:3,class:"button-default dropdown-item dropdown-item-icon",onClick:[t[3]||(t[3]=(0,i.iM)((function(){return e.unpinStatus&&e.unpinStatus.apply(e,arguments)}),["prevent"])),s]},[(0,o.Wm)(c,{"fixed-width":"",icon:"thumbtack"}),(0,o._)("span",null,(0,r.zw)(e.$t("status.unpin")),1)],8,Ye)):(0,o.kq)("",!0),e.canBookmark?((0,o.wg)(),(0,o.iD)(o.HY,{key:4},[e.status.bookmarked?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("button",{key:0,class:"button-default dropdown-item dropdown-item-icon",onClick:[t[4]||(t[4]=(0,i.iM)((function(){return e.bookmarkStatus&&e.bookmarkStatus.apply(e,arguments)}),["prevent"])),s]},[(0,o.Wm)(c,{"fixed-width":"",icon:["far","bookmark"]}),(0,o._)("span",null,(0,r.zw)(e.$t("status.bookmark")),1)],8,Je)),e.status.bookmarked?((0,o.wg)(),(0,o.iD)("button",{key:1,class:"button-default dropdown-item dropdown-item-icon",onClick:[t[5]||(t[5]=(0,i.iM)((function(){return e.unbookmarkStatus&&e.unbookmarkStatus.apply(e,arguments)}),["prevent"])),s]},[(0,o.Wm)(c,{"fixed-width":"",icon:"bookmark"}),(0,o._)("span",null,(0,r.zw)(e.$t("status.unbookmark")),1)],8,Qe)):(0,o.kq)("",!0)],64)):(0,o.kq)("",!0),e.ownStatus&&e.editingAvailable?((0,o.wg)(),(0,o.iD)("button",{key:5,class:"button-default dropdown-item dropdown-item-icon",onClick:[t[6]||(t[6]=(0,i.iM)((function(){return e.editStatus&&e.editStatus.apply(e,arguments)}),["prevent"])),s]},[(0,o.Wm)(c,{"fixed-width":"",icon:"pen"}),(0,o._)("span",null,(0,r.zw)(e.$t("status.edit")),1)],8,Xe)):(0,o.kq)("",!0),e.isEdited&&e.editingAvailable?((0,o.wg)(),(0,o.iD)("button",{key:6,class:"button-default dropdown-item dropdown-item-icon",onClick:[t[7]||(t[7]=(0,i.iM)((function(){return e.showStatusHistory&&e.showStatusHistory.apply(e,arguments)}),["prevent"])),s]},[(0,o.Wm)(c,{"fixed-width":"",icon:"history"}),(0,o._)("span",null,(0,r.zw)(e.$t("status.status_history")),1)],8,et)):(0,o.kq)("",!0),e.canDelete?((0,o.wg)(),(0,o.iD)("button",{key:7,class:"button-default dropdown-item dropdown-item-icon",onClick:[t[8]||(t[8]=(0,i.iM)((function(){return e.deleteStatus&&e.deleteStatus.apply(e,arguments)}),["prevent"])),s]},[(0,o.Wm)(c,{"fixed-width":"",icon:"times"}),(0,o._)("span",null,(0,r.zw)(e.$t("status.delete")),1)],8,tt)):(0,o.kq)("",!0),(0,o._)("button",{class:"button-default dropdown-item dropdown-item-icon",onClick:[t[9]||(t[9]=(0,i.iM)((function(){return e.copyLink&&e.copyLink.apply(e,arguments)}),["prevent"])),s]},[(0,o.Wm)(c,{"fixed-width":"",icon:"share-alt"}),(0,o._)("span",null,(0,r.zw)(e.$t("status.copy_link")),1)],8,nt),e.status.is_local?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("a",{key:8,class:"button-default dropdown-item dropdown-item-icon",title:"Source",href:e.status.external_url,target:"_blank"},[(0,o.Wm)(c,{"fixed-width":"",icon:"external-link-alt"}),(0,o._)("span",null,(0,r.zw)(e.$t("status.external_source")),1)],8,ot)),(0,o._)("button",{class:"button-default dropdown-item dropdown-item-icon",onClick:[t[10]||(t[10]=(0,i.iM)((function(){return e.reportStatus&&e.reportStatus.apply(e,arguments)}),["prevent"])),s]},[(0,o.Wm)(c,{"fixed-width":"",icon:["far","flag"]}),(0,o._)("span",null,(0,r.zw)(e.$t("user_card.report")),1)],8,rt)])]})),trigger:(0,o.w5)((function(){return[(0,o._)("span",it,[(0,o.Wm)(l,{class:"fa-old-padding-layer"},{default:(0,o.w5)((function(){return[(0,o.Wm)(c,{class:"fa-scale-110",icon:"ellipsis-h"}),(0,o.wy)((0,o.Wm)(c,{class:"focus-marker",transform:"shrink-6 up-8 right-16",icon:"plus"},null,512),[[i.F8,!e.expanded]]),(0,o.wy)((0,o.Wm)(c,{class:"focus-marker",transform:"shrink-6 up-8 right-16",icon:"times"},null,512),[[i.F8,e.expanded]])]})),_:1})]),((0,o.wg)(),(0,o.j4)(o.lR,{to:"#modal"},[e.showingDeleteDialog?((0,o.wg)(),(0,o.j4)(d,{key:0,title:e.$t("status.delete_confirm_title"),"cancel-text":e.$t("status.delete_confirm_cancel_button"),"confirm-text":e.$t("status.delete_confirm_accept_button"),onCancelled:e.hideDeleteStatusConfirmDialog,onAccepted:e.doDeleteStatus},{default:(0,o.w5)((function(){return[(0,o.Uk)((0,r.zw)(e.$t("status.delete_confirm")),1)]})),_:1},8,["title","cancel-text","confirm-text","onCancelled","onAccepted"])):(0,o.kq)("",!0)]))]})),_:1},8,["onShow","onClose"])}]]);var lt=n(45333),dt=n(48173),pt=n(19066),mt=n(1840),ht=n(10252),ft=n(92820),gt={key:1,class:"status-preview-no-content faint"},vt={key:2,class:"status-preview-no-content"},wt=n(13311),bt=n.n(wt);be.vI.add(ye.IJ7);const yt={name:"StatusPopover",props:["statusId"],data:function(){return{error:!1}},computed:{status:function(){return bt()(this.$store.state.statuses.allStatuses,{id:this.statusId})}},components:{Status:(0,o.RC)((function(){return Promise.resolve().then(n.bind(n,96686))})),Popover:(0,o.RC)((function(){return Promise.resolve().then(n.bind(n,84535))}))},methods:{enter:function(){var e=this;if(!this.status){if(!this.statusId)return void(this.error=!0);this.$store.dispatch("fetchStatus",this.statusId).then((function(t){return e.error=!1})).catch((function(t){return e.error=!0}))}}},watch:{status:function(e,t){var n=this;e!==t&&this.$nextTick((function(){return n.$refs.popover.updateStyles()}))}}},Dt=(0,_e.Z)(yt,[["render",function(e,t,n,i,s,a){var u=(0,o.up)("Status"),c=(0,o.up)("FAIcon"),l=(0,o.up)("Popover");return(0,o.wg)(),(0,o.j4)(l,{ref:"popover",trigger:"hover","stay-on-click":!0,"popover-class":"popover-default status-popover","bound-to":{x:"container"},onShow:e.enter},{trigger:(0,o.w5)((function(){return[(0,o.WI)(e.$slots,"default")]})),content:(0,o.w5)((function(){return[e.status?((0,o.wg)(),(0,o.j4)(u,{key:0,"is-preview":!0,statusoid:e.status,compact:!0},null,8,["statusoid"])):e.error?((0,o.wg)(),(0,o.iD)("div",gt,(0,r.zw)(e.$t("status.status_unavailable")),1)):((0,o.wg)(),(0,o.iD)("div",vt,[(0,o.Wm)(c,{icon:"circle-notch",spin:"",size:"2x"})]))]})),_:3},8,["onShow"])}]]);var _t=n(22588),kt={class:"user-list-popover"},Ct={class:"user-list-names"},St={class:"user-list-screen-name"},jt=n(42262);be.vI.add(ye.IJ7);const Ft={name:"UserListPopover",props:["users"],components:{RichContent:ft.Z,UnicodeDomainIndicator:jt.Z,Popover:(0,o.RC)((function(){return Promise.resolve().then(n.bind(n,84535))})),UserAvatar:(0,o.RC)((function(){return Promise.resolve().then(n.bind(n,48173))}))},computed:{usersCapped:function(){return this.users.slice(0,16)}}},At=(0,_e.Z)(Ft,[["render",function(e,t,n,i,s,a){var u=(0,o.up)("UserAvatar"),c=(0,o.up)("RichContent"),l=(0,o.up)("UnicodeDomainIndicator"),d=(0,o.up)("FAIcon"),p=(0,o.up)("Popover");return(0,o.wg)(),(0,o.j4)(p,{trigger:"hover",placement:"top",offset:{y:5}},{trigger:(0,o.w5)((function(){return[(0,o.WI)(e.$slots,"default")]})),content:(0,o.w5)((function(){return[(0,o._)("div",kt,[e.users.length?((0,o.wg)(!0),(0,o.iD)(o.HY,{key:0},(0,o.Ko)(e.usersCapped,(function(e){return(0,o.wg)(),(0,o.iD)("div",{key:e.id,class:"user-list-row"},[(0,o.Wm)(u,{user:e,class:"avatar-small",compact:!0},null,8,["user"]),(0,o._)("div",Ct,[(0,o.Wm)(c,{class:"username",title:"@"+e.screen_name_ui,html:e.name_html,emoji:e.emoji},null,8,["title","html","emoji"]),(0,o._)("span",St,(0,r.zw)(e.screen_name_ui),1),(0,o.Wm)(l,{user:e},null,8,["user"])])])})),128)):((0,o.wg)(),(0,o.j4)(d,{key:1,icon:"circle-notch",spin:"",size:"3x"}))])]})),_:3})}]]);var Ot={class:"EmojiReactions"},Et={class:"reaction-emoji"},zt=["src"],Pt={key:1,class:"reaction-emoji reaction-emoji-content"},It={class:"emoji-reaction-counts"},xt=n(15861),Tt=n(64687),$t=n.n(Tt);be.vI.add(ye.r8p,ye.Kl4,ye.LEp);const Bt={name:"EmojiReactions",components:{UserAvatar:dt.default,UserListPopover:At},props:["status"],data:function(){return{showAll:!1}},computed:{tooManyReactions:function(){return this.status.emoji_reactions.length>12},emojiReactions:function(){return this.showAll?this.status.emoji_reactions:this.status.emoji_reactions.slice(0,12)},showMoreString:function(){return"+".concat(this.status.emoji_reactions.length-12)},accountsForEmoji:function(){return this.status.emoji_reactions.reduce((function(e,t){return e[t.name]=t.accounts||[],e}),{})},loggedIn:function(){return!!this.$store.state.users.currentUser},remoteInteractionLink:function(){return this.$store.getters.remoteInteractionLink({statusId:this.status.id})}},methods:{toggleShowAll:function(){this.showAll=!this.showAll},reactedWith:function(e){return this.status.emoji_reactions.find((function(t){return t.name===e})).me},fetchEmojiReactionsByIfMissing:function(){var e=this;return(0,xt.Z)($t().mark((function t(){return $t().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!e.status.emoji_reactions.find((function(e){return!e.accounts}))){t.next=5;break}return t.next=4,e.$store.dispatch("fetchEmojiReactionsBy",e.status.id);case 4:return t.abrupt("return",t.sent);case 5:case"end":return t.stop()}}),t)})))()},reactWith:function(e){this.$store.dispatch("reactWithEmoji",{id:this.status.id,emoji:e})},unreact:function(e){this.$store.dispatch("unreactWithEmoji",{id:this.status.id,emoji:e})},emojiOnClick:function(e,t){var n=this;return(0,xt.Z)($t().mark((function t(){return $t().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n.loggedIn){t.next=2;break}return t.abrupt("return");case 2:return t.next=4,n.fetchEmojiReactionsByIfMissing();case 4:n.reactedWith(e)?n.unreact(e):n.reactWith(e);case 5:case"end":return t.stop()}}),t)})))()},counterTriggerAttrs:function(e){return{class:["btn","button-default","emoji-reaction-count-button",{"-picked-reaction":this.reactedWith(e.name)}],"aria-label":this.$tc("status.reaction_count_label",e.count,{num:e.count})}}}},Ut=(0,_e.Z)(Bt,[["render",function(e,t,n,i,s,a){var u=(0,o.up)("FAIcon"),c=(0,o.up)("FALayers"),l=(0,o.up)("UserListPopover");return(0,o.wg)(),(0,o.iD)("div",Ot,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.emojiReactions,(function(n){return(0,o.wg)(),(0,o.iD)("span",{key:n.url||n.name,class:"emoji-reaction-container btn-group"},[((0,o.wg)(),(0,o.j4)((0,o.LL)(e.loggedIn?"button":"a"),(0,o.dG)(e.loggedIn?{}:{href:e.remoteInteractionLink},{role:"button",class:["emoji-reaction btn button-default",{"-picked-reaction":e.reactedWith(n.name)}],title:n.url?n.name:void 0,"aria-pressed":e.reactedWith(n.name),onClick:function(t){return e.emojiOnClick(n.name,t)}}),{default:(0,o.w5)((function(){return[(0,o._)("span",Et,[n.url?((0,o.wg)(),(0,o.iD)("img",{key:0,src:n.url,class:"reaction-emoji-content",width:"1em"},null,8,zt)):((0,o.wg)(),(0,o.iD)("span",Pt,(0,r.zw)(n.name),1))]),(0,o.Wm)(c,null,{default:(0,o.w5)((function(){return[e.reactedWith(n.name)?((0,o.wg)(),(0,o.j4)(u,{key:0,class:"active-marker",transform:"shrink-6 up-9",icon:"check"})):(0,o.kq)("",!0),e.reactedWith(n.name)?((0,o.wg)(),(0,o.j4)(u,{key:2,class:"focus-marker",transform:"shrink-6 up-9",icon:"minus"})):((0,o.wg)(),(0,o.j4)(u,{key:1,class:"focus-marker",transform:"shrink-6 up-9",icon:"plus"}))]})),_:2},1024)]})),_:2},1040,["class","title","aria-pressed","onClick"])),(0,o.Wm)(l,{users:e.accountsForEmoji[n.name],class:"emoji-reaction-popover","trigger-attrs":e.counterTriggerAttrs(n),onShow:t[0]||(t[0]=function(t){return e.fetchEmojiReactionsByIfMissing()})},{default:(0,o.w5)((function(){return[(0,o._)("span",It,(0,r.zw)(n.count),1)]})),_:2},1032,["users","trigger-attrs"])])})),128)),e.tooManyReactions?((0,o.wg)(),(0,o.iD)("a",{key:0,class:"emoji-reaction-expand faint",href:"javascript:void(0)",onClick:t[1]||(t[1]=function(){return e.toggleShowAll&&e.toggleShowAll.apply(e,arguments)})},(0,r.zw)(e.showAll?e.$t("general.show_less"):e.showMoreString),1)):(0,o.kq)("",!0)])}]]);var Mt=n(12061),Lt=n(21268),Rt=n(20460),qt=n(4493),Nt=n(95052),Zt=n(67828);function Wt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Ht(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Wt(Object(n),!0).forEach((function(t){(0,le.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Wt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}be.vI.add(ye.FU$,ye.g4A,ye.byT,ye._1N,ye.NBC,ye.x5v,ye.Lh7,ye.CPW,ye.Tab,ye.RKn,ye.cNd,ye.Aq,ye.Mdf,ye.RP7,ye.mTx,ye.ptq,ye.cLY);var Vt,Kt=function(e){return e.charAt(0).toUpperCase()+e.slice(1)},Gt=function(e,t,n){var o=Kt(t),r="controlledSet".concat(o),i="uncontrolled".concat(o);e[r]?e[r](n):e[i]=n};const Yt={name:"Status",components:{ReplyButton:ke,FavoriteButton:Ie,ReactButton:Me,RetweetButton:Ve,ExtraButtons:ct,PostStatusForm:lt.Z,UserAvatar:dt.default,AvatarList:pt.Z,Timeago:mt.Z,StatusPopover:Dt,UserListPopover:At,EmojiReactions:Ut,StatusContent:ht.Z,RichContent:ft.Z,MentionLink:Rt.Z,MentionsLine:Lt.Z,UserPopover:_t.default,UserLink:Mt.Z},props:["statusoid","expandable","inConversation","focused","highlight","compact","replies","isPreview","noHeading","inlineExpanded","showPinned","inProfile","profileUserId","inQuote","simpleTree","controlledThreadDisplayStatus","controlledToggleThreadDisplay","showOtherRepliesAsButton","controlledShowingTall","controlledToggleShowingTall","controlledExpandingSubject","controlledToggleExpandingSubject","controlledShowingLongSubject","controlledToggleShowingLongSubject","controlledReplying","controlledToggleReplying","controlledMediaPlaying","controlledSetMediaPlaying","dive"],data:function(){return{uncontrolledReplying:!1,unmuted:!1,userExpanded:!1,uncontrolledMediaPlaying:[],suspendable:!0,error:null,headTailLinks:null,displayQuote:!this.inQuote}},computed:Ht(Ht({},(Vt=["replying","mediaPlaying"],Vt.reduce((function(e,t){var n=Kt(t),o="controlledToggle".concat(n),r="controlled".concat(n),i="uncontrolled".concat(n);return e[t]=function(){return void 0===this.$data[o]&&void 0===this.$props[o]||!this[o]?this[i]:this[r]},e}),{}))),{},{muteWords:function(){return this.mergedConfig.muteWords},showReasonMutedThread:function(){return(this.status.thread_muted||this.status.reblog&&this.status.reblog.thread_muted)&&!this.inConversation},repeaterClass:function(){var e=this.statusoid.user;return(0,Nt.M)(e)},userClass:function(){var e=this.retweet?this.statusoid.retweeted_status.user:this.statusoid.user;return(0,Nt.M)(e)},deleted:function(){return this.statusoid.deleted},repeaterStyle:function(){var e=this.statusoid.user,t=this.mergedConfig.highlight;return(0,Nt.q)(t[e.screen_name])},userStyle:function(){if(!this.noHeading){var e=this.retweet?this.statusoid.retweeted_status.user:this.statusoid.user,t=this.mergedConfig.highlight;return(0,Nt.q)(t[e.screen_name])}},userProfileLink:function(){return this.generateUserProfileLink(this.status.user.id,this.status.user.screen_name)},replyProfileLink:function(){if(this.isReply){var e=this.$store.getters.findUser(this.status.in_reply_to_user_id);return e?e.statusnet_profile_url:"NOT_FOUND"}},retweet:function(){return!!this.statusoid.retweeted_status},retweeterUser:function(){return this.statusoid.user},retweeter:function(){return this.statusoid.user.name||this.statusoid.user.screen_name_ui},retweeterHtml:function(){return this.statusoid.user.name},retweeterProfileLink:function(){return this.generateUserProfileLink(this.statusoid.user.id,this.statusoid.user.screen_name)},status:function(){return this.retweet?this.statusoid.retweeted_status:this.statusoid},statusFromGlobalRepository:function(){return this.$store.state.statuses.allStatusesObject[this.status.id]},loggedIn:function(){return!!this.currentUser},muteWordHits:function(){return(0,Zt.u)(this.status,this.muteWords)},rtBotStatus:function(){return this.statusoid.user.bot},botStatus:function(){return this.status.user.bot},botIndicator:function(){return this.botStatus&&!this.hideBotIndication},rtBotIndicator:function(){return this.rtBotStatus&&!this.hideBotIndication},mentionsLine:function(){var e=this;if(!this.headTailLinks)return[];var t=new Set(this.headTailLinks.writtenMentions.map((function(e){return e.url})));return this.status.attentions.filter((function(n){return n.id!==e.status.in_reply_to_user_id&&n.statusnet_profile_url!==e.status.user.statusnet_profile_url&&!t.has(n.statusnet_profile_url)})).map((function(e){return{url:e.statusnet_profile_url,content:e.screen_name,userId:e.id}}))},hasMentionsLine:function(){return this.mentionsLine.length>0},muted:function(){if(this.statusoid.user.id===this.currentUser.id)return!1;var e=this.userIsMuted||status.thread_muted||this.muteWordHits.length>0||this.muteBotStatuses&&this.botStatus&&!this.compact;return!this.unmuted&&!this.shouldNotMute&&e},userIsMuted:function(){if(this.statusoid.user.id===this.currentUser.id)return!1;var e=this.status,t=e.reblog,n=this.$store.getters.relationship(e.user.id),o=t&&this.$store.getters.relationship(t.user.id);return e.muted||t&&t.muted||n.muting||o&&o.muting},shouldNotMute:function(){var e=this.status,t=e.reblog;return(this.inProfile&&(!t&&e.user.id===this.profileUserId||t&&t.user.id===this.profileUserId)||this.inConversation&&e.thread_muted)&&!this.muteWordHits.length>0},hideMutedUsers:function(){return this.mergedConfig.hideMutedPosts},hideMutedThreads:function(){return this.mergedConfig.hideMutedThreads},hideFilteredStatuses:function(){return this.mergedConfig.hideFilteredStatuses},hideWordFilteredPosts:function(){return this.mergedConfig.hideWordFilteredPosts},hideStatus:function(){return!this.shouldNotMute&&(this.muted&&this.hideFilteredStatuses||this.userIsMuted&&this.hideMutedUsers||this.status.thread_muted&&this.hideMutedThreads||this.muteWordHits.length>0&&this.hideWordFilteredPosts)},isFocused:function(){return!!this.focused||!!this.inConversation&&this.status.id===this.highlight},isReply:function(){return!(!this.status.in_reply_to_status_id||!this.status.in_reply_to_user_id)},replyToName:function(){if(this.status.in_reply_to_screen_name)return this.status.in_reply_to_screen_name;var e=this.$store.getters.findUser(this.status.in_reply_to_user_id);return e&&e.screen_name_ui},replySubject:function(){if(!this.status.summary)return"";var e=he()(this.status.summary),t=this.mergedConfig.subjectLineBehavior,n=e.match(/^re[: ]/i);return"noop"!==t&&n||"masto"===t?e:"email"===t?"re: ".concat(e):"noop"===t?"":void 0},combinedFavsAndRepeatsUsers:function(){var e=[].concat(this.statusFromGlobalRepository.favoritedBy,this.statusFromGlobalRepository.rebloggedBy);return pe()(e,"id")},tags:function(){return this.status.tags.filter((function(e){return e.hasOwnProperty("name")})).map((function(e){return e.name})).join(" ")},hidePostStats:function(){return this.mergedConfig.hidePostStats},muteBotStatuses:function(){return this.mergedConfig.muteBotStatuses},hideBotIndication:function(){return this.mergedConfig.hideBotIndication},currentUser:function(){return this.$store.state.users.currentUser},betterShadow:function(){return this.$store.state.interface.browserSupport.cssFilter},mergedConfig:function(){return this.$store.getters.mergedConfig},isSuspendable:function(){return!this.replying&&0===this.mediaPlaying.length},inThreadForest:function(){return!!this.controlledThreadDisplayStatus},threadShowing:function(){return"showing"===this.controlledThreadDisplayStatus},visibilityLocalized:function(){return this.$i18n.t("general.scope_in_timeline."+this.status.visibility)},isEdited:function(){return null!==this.status.edited_at},editingAvailable:function(){return this.$store.state.instance.editingAvailable},hasVisibleQuote:function(){return this.status.quote_url&&this.status.quote_visible},hasInvisibleQuote:function(){return this.status.quote_url&&!this.status.quote_visible},quotedStatus:function(){return this.status.quote_id?this.$store.state.statuses.allStatusesObject[this.status.quote_id]:void 0},shouldDisplayQuote:function(){return this.quotedStatus&&this.displayQuote}}),methods:{visibilityIcon:function(e){switch(e){case"private":return"lock";case"unlisted":return"lock-open";case"direct":return"envelope";default:return"globe"}},showError:function(e){this.error=e},clearError:function(){this.error=void 0},toggleReplying:function(){var e,t,n,o;e=this,t=Kt("replying"),n="controlledToggle".concat(t),o="uncontrolled".concat(t),e[n]?e[n]():e[o]=!e[o]},gotoOriginal:function(e){this.inConversation&&this.$emit("goto",e)},toggleExpanded:function(){this.$emit("toggleExpanded")},toggleMute:function(){this.unmuted=!this.unmuted},toggleUserExpanded:function(){this.userExpanded=!this.userExpanded},generateUserProfileLink:function(e,t){return(0,qt.Z)(e,t,this.$store.state.instance.restrictedNicknames)},addMediaPlaying:function(e){Gt(this,"mediaPlaying",this.mediaPlaying.concat(e))},removeMediaPlaying:function(e){Gt(this,"mediaPlaying",this.mediaPlaying.filter((function(t){return t!==e})))},setHeadTailLinks:function(e){this.headTailLinks=e},toggleThreadDisplay:function(){this.controlledToggleThreadDisplay()},scrollIfHighlighted:function(e){var t=e;if(this.status.id===t){var n=this.$el.getBoundingClientRect();n.top<100||n.height>=window.innerHeight-50?window.scrollBy(0,n.top-100):n.bottom>window.innerHeight-50&&window.scrollBy(0,n.bottom-window.innerHeight+50)}},toggleDisplayQuote:function(){var e=this;this.shouldDisplayQuote?this.displayQuote=!1:this.quotedStatus?this.displayQuote=!0:this.$store.dispatch("fetchStatus",this.status.quote_id).then((function(){e.displayQuote=!0}))}},watch:{highlight:function(e){this.scrollIfHighlighted(e)},"status.repeat_num":function(e){this.isFocused&&this.statusFromGlobalRepository.rebloggedBy&&this.statusFromGlobalRepository.rebloggedBy.length!==e&&this.$store.dispatch("fetchRepeats",this.status.id)},"status.fave_num":function(e){this.isFocused&&this.statusFromGlobalRepository.favoritedBy&&this.statusFromGlobalRepository.favoritedBy.length!==e&&this.$store.dispatch("fetchFavs",this.status.id)},isSuspendable:function(e){this.suspendable=e}}},Jt=(0,_e.Z)(Yt,[["render",function(e,t,n,le,de,pe){var me=(0,o.up)("FAIcon"),he=(0,o.up)("user-link"),fe=(0,o.up)("UserAvatar"),ge=(0,o.up)("RichContent"),ve=(0,o.up)("router-link"),we=(0,o.up)("UserPopover"),be=(0,o.up)("Timeago"),ye=(0,o.up)("StatusPopover"),De=(0,o.up)("MentionLink"),_e=(0,o.up)("MentionsLine"),ke=(0,o.up)("i18n-t"),Ce=(0,o.up)("StatusContent"),Se=(0,o.up)("Status",!0),je=(0,o.up)("UserListPopover"),Fe=(0,o.up)("AvatarList"),Ae=(0,o.up)("EmojiReactions"),Oe=(0,o.up)("reply-button"),Ee=(0,o.up)("retweet-button"),ze=(0,o.up)("favorite-button"),Pe=(0,o.up)("ReactButton"),Ie=(0,o.up)("extra-buttons"),xe=(0,o.up)("PostStatusForm");return e.hideStatus?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",{key:0,ref:"root",class:(0,r.C_)(["Status",[{"-focused":e.isFocused},{"-conversation":e.inlineExpanded}]])},[e.error?((0,o.wg)(),(0,o.iD)("div",s,[(0,o.Uk)((0,r.zw)(e.error)+" ",1),(0,o._)("span",{class:"fa-scale-110 fa-old-padding",onClick:t[0]||(t[0]=function(){return e.clearError&&e.clearError.apply(e,arguments)})},[(0,o.Wm)(me,{icon:"times"})])])):(0,o.kq)("",!0),e.muted&&!e.isPreview?((0,o.wg)(),(0,o.iD)("div",a,[(0,o._)("small",u,[e.muted&&e.retweet?((0,o.wg)(),(0,o.j4)(me,{key:0,class:"fa-scale-110 fa-old-padding repeat-icon",icon:"retweet"})):(0,o.kq)("",!0),(0,o.Wm)(he,{user:e.status.user,at:!1},null,8,["user"])]),e.showReasonMutedThread?((0,o.wg)(),(0,o.iD)("small",c,(0,r.zw)(e.$t("status.thread_muted")),1)):(0,o.kq)("",!0),e.showReasonMutedThread&&e.muteWordHits.length>0?((0,o.wg)(),(0,o.iD)("small",l,(0,r.zw)(e.$t("status.thread_muted_and_words")),1)):(0,o.kq)("",!0),(0,o._)("small",{class:"mute-words",title:e.muteWordHits.join(", ")},(0,r.zw)(e.muteWordHits.join(", ")),9,d),(0,o._)("button",{class:"unmute button-unstyled",onClick:t[1]||(t[1]=(0,i.iM)((function(){return e.toggleMute&&e.toggleMute.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(me,{icon:"eye-slash",class:"fa-scale-110 fa-old-padding"})])])):((0,o.wg)(),(0,o.iD)(o.HY,{key:2},[e.showPinned?((0,o.wg)(),(0,o.iD)("div",p,[(0,o.Wm)(me,{icon:"thumbtack",class:"faint"}),(0,o._)("span",m,(0,r.zw)(e.$t("status.pinned")),1)])):(0,o.kq)("",!0),!e.retweet||e.noHeading||e.inConversation?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",{key:1,class:(0,r.C_)([[e.repeaterClass,{highlighted:e.repeaterStyle}],"status-container repeat-info"]),style:(0,r.j5)([e.repeaterStyle])},[e.retweet?((0,o.wg)(),(0,o.j4)(fe,{key:0,class:"left-side repeater-avatar",bot:e.rtBotIndicator,"better-shadow":e.betterShadow,user:e.statusoid.user},null,8,["bot","better-shadow","user"])):(0,o.kq)("",!0),(0,o._)("div",h,[(0,o._)("bdi",{class:"status-username repeater-name",title:e.retweeter},[e.retweeterHtml?((0,o.wg)(),(0,o.j4)(ve,{key:0,to:e.retweeterProfileLink},{default:(0,o.w5)((function(){return[(0,o.Wm)(ge,{html:e.retweeterHtml,emoji:e.retweeterUser.emoji},null,8,["html","emoji"])]})),_:1},8,["to"])):((0,o.wg)(),(0,o.j4)(ve,{key:1,to:e.retweeterProfileLink},{default:(0,o.w5)((function(){return[(0,o.Uk)((0,r.zw)(e.retweeter),1)]})),_:1},8,["to"]))],8,f),(0,o.Uk)(" "+(0,r.zw)(" ")+" "),(0,o.Wm)(me,{icon:"retweet",class:"repeat-icon",title:e.$t("tool_tip.repeat")},null,8,["title"]),(0,o.Uk)(" "+(0,r.zw)(e.$t("timeline.repeated")),1)])],6)),e.deleted?((0,o.wg)(),(0,o.iD)("div",ie,[(0,o._)("div",se,[(0,o.Wm)(fe,{class:"post-avatar",compact:e.compact,bot:e.botIndicator},null,8,["compact","bot"])]),(0,o._)("div",ae,[(0,o._)("div",ue,(0,r.zw)(e.$t("status.status_deleted")),1),e.replying?((0,o.wg)(),(0,o.j4)(Oe,{key:0,replying:e.replying,status:e.status,onToggle:e.toggleReplying},null,8,["replying","status","onToggle"])):(0,o.kq)("",!0)])])):((0,o.wg)(),(0,o.iD)("div",{key:2,class:(0,r.C_)([[e.userClass,{highlighted:e.userStyle,"-repeat":e.retweet&&!e.inConversation}],"status-container"]),style:(0,r.j5)([e.userStyle]),"data-tags":e.tags},[e.noHeading?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",v,[(0,o._)("a",{href:e.$router.resolve(e.userProfileLink).href,onClick:t[2]||(t[2]=(0,i.iM)((function(){}),["prevent"]))},[(0,o.Wm)(we,{"user-id":e.status.user.id,"overlay-centers":!0},{default:(0,o.w5)((function(){return[(0,o.Wm)(fe,{class:"post-avatar",bot:e.botIndicator,compact:e.compact,"better-shadow":e.betterShadow,user:e.status.user},null,8,["bot","compact","better-shadow","user"])]})),_:1},8,["user-id"])],8,w)])),(0,o._)("div",b,[e.noHeading?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",y,[(0,o._)("div",D,[(0,o._)("div",_,[e.status.user.name_html?((0,o.wg)(),(0,o.iD)("h4",{key:0,class:"status-username",title:e.status.user.name},[(0,o.Wm)(ge,{html:e.status.user.name,emoji:e.status.user.emoji},null,8,["html","emoji"])],8,k)):((0,o.wg)(),(0,o.iD)("h4",{key:1,class:"status-username",title:e.status.user.name},(0,r.zw)(e.status.user.name),9,C)),(0,o.Wm)(he,{class:"account-name",title:e.status.user.screen_name_ui,user:e.status.user,at:!1},null,8,["title","user"]),e.status.user&&e.status.user.favicon?((0,o.wg)(),(0,o.iD)("img",{key:2,class:"status-favicon",src:e.status.user.favicon},null,8,S)):(0,o.kq)("",!0)]),(0,o._)("span",j,[(0,o.Wm)(ve,{class:"timeago faint-link",to:{name:"conversation",params:{id:e.status.id}}},{default:(0,o.w5)((function(){return[(0,o.Wm)(be,{time:e.status.created_at,"auto-update":60},null,8,["time"])]})),_:1},8,["to"]),e.status.visibility?((0,o.wg)(),(0,o.iD)("span",{key:0,class:"visibility-icon",title:e.visibilityLocalized},[(0,o.Wm)(me,{"fixed-width":"",class:"fa-scale-110",icon:e.visibilityIcon(e.status.visibility)},null,8,["icon"])],8,F)):(0,o.kq)("",!0),e.expandable&&!e.isPreview?((0,o.wg)(),(0,o.iD)("button",{key:1,class:"button-unstyled",title:e.$t("status.expand"),onClick:t[3]||(t[3]=(0,i.iM)((function(){return e.toggleExpanded&&e.toggleExpanded.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(me,{"fixed-width":"",class:"fa-scale-110",icon:"plus-square"})],8,A)):(0,o.kq)("",!0),e.unmuted?((0,o.wg)(),(0,o.iD)("button",{key:2,class:"button-unstyled",onClick:t[4]||(t[4]=(0,i.iM)((function(){return e.toggleMute&&e.toggleMute.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(me,{"fixed-width":"",icon:"eye-slash",class:"fa-scale-110"})])):(0,o.kq)("",!0),e.inThreadForest&&e.replies&&e.replies.length&&!e.simpleTree?((0,o.wg)(),(0,o.iD)("button",{key:3,class:"button-unstyled",title:e.threadShowing?e.$t("status.thread_hide"):e.$t("status.thread_show"),"aria-expanded":e.threadShowing?"true":"false",onClick:t[5]||(t[5]=(0,i.iM)((function(){return e.toggleThreadDisplay&&e.toggleThreadDisplay.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(me,{"fixed-width":"",class:"fa-scale-110",icon:e.threadShowing?"chevron-up":"chevron-down"},null,8,["icon"])],8,O)):(0,o.kq)("",!0),e.dive&&!e.simpleTree?((0,o.wg)(),(0,o.iD)("button",{key:4,class:"button-unstyled",title:e.$t("status.show_only_conversation_under_this"),onClick:t[6]||(t[6]=(0,i.iM)((function(){return e.dive&&e.dive.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(me,{"fixed-width":"",class:"fa-scale-110",icon:"angle-double-right"})],8,E)):(0,o.kq)("",!0)])]),e.isReply||e.hasMentionsLine?((0,o.wg)(),(0,o.iD)("div",z,[e.isReply?((0,o.wg)(),(0,o.iD)("span",P,[e.isPreview?((0,o.wg)(),(0,o.iD)("span",T,[(0,o._)("span",$,(0,r.zw)(e.$t("status.reply_to")),1)])):((0,o.wg)(),(0,o.j4)(ye,{key:0,"status-id":e.status.parent_visible&&e.status.in_reply_to_status_id,class:(0,r.C_)(["reply-to-popover",{"-strikethrough":!e.status.parent_visible}]),style:{"min-width":"0"}},{default:(0,o.w5)((function(){return[(0,o._)("button",{class:"button-unstyled reply-to","aria-label":e.$t("tool_tip.reply"),onClick:t[7]||(t[7]=(0,i.iM)((function(t){return e.gotoOriginal(e.status.in_reply_to_status_id)}),["prevent"]))},[(0,o.Wm)(me,{class:"fa-scale-110 fa-old-padding",icon:"reply",flip:"horizontal"}),(0,o.Uk)(" "+(0,r.zw)(" ")+" "),(0,o._)("span",x,(0,r.zw)(e.$t("status.reply_to")),1)],8,I)]})),_:1},8,["status-id","class"])),(0,o.Wm)(De,{content:e.replyToName,url:e.replyProfileLink,"user-id":e.status.in_reply_to_user_id,"user-screen-name":e.status.in_reply_to_screen_name},null,8,["content","url","user-id","user-screen-name"])])):(0,o.kq)("",!0),e.hasMentionsLine?((0,o.wg)(),(0,o.iD)("span",B,[(0,o._)("span",{class:"mentions","aria-label":e.$t("tool_tip.mentions"),onClick:t[8]||(t[8]=(0,i.iM)((function(t){return e.gotoOriginal(e.status.in_reply_to_status_id)}),["prevent"]))},[(0,o._)("span",M,(0,r.zw)(e.$t("status.mentions")),1)],8,U),e.hasMentionsLine?((0,o.wg)(),(0,o.j4)(_e,{key:0,mentions:e.mentionsLine.slice(0,1),class:"mentions-line-first"},null,8,["mentions"])):(0,o.kq)("",!0)])):(0,o.kq)("",!0),(0,o.Uk)(" "+(0,r.zw)(" ")+" "),e.hasMentionsLine?((0,o.wg)(),(0,o.j4)(_e,{key:2,mentions:e.mentionsLine.slice(1),class:"mentions-line"},null,8,["mentions"])):(0,o.kq)("",!0)])):(0,o.kq)("",!0),e.isEdited&&e.editingAvailable&&!e.isPreview?((0,o.wg)(),(0,o.iD)("div",L,[(0,o.Wm)(ke,{keypath:"status.edited_at",tag:"span"},{time:(0,o.w5)((function(){return[(0,o.Wm)(be,{"template-key":"time.in_past",time:e.status.edited_at,"auto-update":60,"long-format":!0},null,8,["time"])]})),_:1})])):(0,o.kq)("",!0)])),(0,o.Wm)(Ce,{ref:"content",status:e.status,"no-heading":e.noHeading,highlight:e.highlight,focused:e.isFocused,"controlled-showing-tall":e.controlledShowingTall,"controlled-expanding-subject":e.controlledExpandingSubject,"controlled-showing-long-subject":e.controlledShowingLongSubject,"controlled-toggle-showing-tall":e.controlledToggleShowingTall,"controlled-toggle-expanding-subject":e.controlledToggleExpandingSubject,"controlled-toggle-showing-long-subject":e.controlledToggleShowingLongSubject,onMediaplay:t[9]||(t[9]=function(t){return e.addMediaPlaying(t)}),onMediapause:t[10]||(t[10]=function(t){return e.removeMediaPlaying(t)}),onParseReady:e.setHeadTailLinks},null,8,["status","no-heading","highlight","focused","controlled-showing-tall","controlled-expanding-subject","controlled-showing-long-subject","controlled-toggle-showing-tall","controlled-toggle-expanding-subject","controlled-toggle-showing-long-subject","onParseReady"]),e.hasVisibleQuote?((0,o.wg)(),(0,o.iD)("article",R,[(0,o._)("button",{class:"button-unstyled -link display-quoted-status-button","aria-expanded":e.shouldDisplayQuote,onClick:t[11]||(t[11]=function(){return e.toggleDisplayQuote&&e.toggleDisplayQuote.apply(e,arguments)})},[(0,o.Uk)((0,r.zw)(e.shouldDisplayQuote?e.$t("status.hide_quote"):e.$t("status.display_quote"))+" ",1),(0,o.Wm)(me,{class:"display-quoted-status-button-icon",icon:e.shouldDisplayQuote?"chevron-up":"chevron-down"},null,8,["icon"])],8,q),e.shouldDisplayQuote?((0,o.wg)(),(0,o.j4)(Se,{key:0,statusoid:e.quotedStatus,"in-quote":!0},null,8,["statusoid"])):(0,o.kq)("",!0)])):e.hasInvisibleQuote?((0,o.wg)(),(0,o.iD)("p",N,[(0,o.Wm)(ke,{keypath:"status.invisible_quote"},{link:(0,o.w5)((function(){return[(0,o._)("bdi",null,[(0,o._)("a",{href:e.status.quote_url,target:"_blank"},(0,r.zw)(e.status.quote_url),9,Z)])]})),_:1})])):(0,o.kq)("",!0),e.inConversation&&!e.isPreview&&e.replies&&e.replies.length?((0,o.wg)(),(0,o.iD)("div",W,[e.showOtherRepliesAsButton&&e.replies.length>1?((0,o.wg)(),(0,o.iD)("button",{key:0,class:"button-unstyled -link faint",title:e.$tc("status.ancestor_follow",e.replies.length-1,{numReplies:e.replies.length-1}),onClick:t[12]||(t[12]=(0,i.iM)((function(){return e.dive&&e.dive.apply(e,arguments)}),["prevent"]))},(0,r.zw)(e.$tc("status.replies_list_with_others",e.replies.length-1,{numReplies:e.replies.length-1})),9,H)):((0,o.wg)(),(0,o.iD)("span",V,(0,r.zw)(e.$t("status.replies_list")),1)),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.replies,(function(t){return(0,o.wg)(),(0,o.j4)(ye,{key:t.id,"status-id":t.id},{default:(0,o.w5)((function(){return[(0,o._)("button",{class:"button-unstyled -link reply-link",onClick:(0,i.iM)((function(n){return e.gotoOriginal(t.id)}),["prevent"])},(0,r.zw)(t.name),9,K)]})),_:2},1032,["status-id"])})),128))])):(0,o.kq)("",!0),(0,o.Wm)(i.uT,{name:"fade"},{default:(0,o.w5)((function(){return[!e.hidePostStats&&e.isFocused&&e.combinedFavsAndRepeatsUsers.length>0?((0,o.wg)(),(0,o.iD)("div",G,[(0,o._)("div",Y,[e.statusFromGlobalRepository.rebloggedBy&&e.statusFromGlobalRepository.rebloggedBy.length>0?((0,o.wg)(),(0,o.j4)(je,{key:0,users:e.statusFromGlobalRepository.rebloggedBy},{default:(0,o.w5)((function(){return[(0,o._)("div",J,[(0,o._)("a",Q,(0,r.zw)(e.$t("status.repeats")),1),(0,o._)("div",X,(0,r.zw)(e.statusFromGlobalRepository.rebloggedBy.length),1)])]})),_:1},8,["users"])):(0,o.kq)("",!0),e.statusFromGlobalRepository.favoritedBy&&e.statusFromGlobalRepository.favoritedBy.length>0?((0,o.wg)(),(0,o.j4)(je,{key:1,users:e.statusFromGlobalRepository.favoritedBy},{default:(0,o.w5)((function(){return[(0,o._)("div",ee,[(0,o._)("a",te,(0,r.zw)(e.$t("status.favorites")),1),(0,o._)("div",ne,(0,r.zw)(e.statusFromGlobalRepository.favoritedBy.length),1)])]})),_:1},8,["users"])):(0,o.kq)("",!0),(0,o._)("div",oe,[(0,o.Wm)(Fe,{users:e.combinedFavsAndRepeatsUsers},null,8,["users"])])])])):(0,o.kq)("",!0)]})),_:1}),!e.mergedConfig.emojiReactionsOnTimeline&&!e.isFocused||e.noHeading||e.isPreview?(0,o.kq)("",!0):((0,o.wg)(),(0,o.j4)(Ae,{key:4,status:e.status},null,8,["status"])),e.noHeading||e.isPreview?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",re,[(0,o.Wm)(Oe,{replying:e.replying,status:e.status,onToggle:e.toggleReplying},null,8,["replying","status","onToggle"]),(0,o.Wm)(Ee,{visibility:e.status.visibility,"logged-in":e.loggedIn,status:e.status},null,8,["visibility","logged-in","status"]),(0,o.Wm)(ze,{"logged-in":e.loggedIn,status:e.status},null,8,["logged-in","status"]),e.loggedIn?((0,o.wg)(),(0,o.j4)(Pe,{key:0,status:e.status},null,8,["status"])):(0,o.kq)("",!0),(0,o.Wm)(Ie,{status:e.status,onOnError:e.showError,onOnSuccess:e.clearError},null,8,["status","onOnError","onOnSuccess"])]))])],14,g)),e.replying?((0,o.wg)(),(0,o.iD)("div",ce,[(0,o.Wm)(xe,{class:"reply-body","reply-to":e.status.id,attentions:e.status.attentions,"replied-user":e.status.user,"copy-message-scope":e.status.visibility,subject:e.replySubject,onPosted:e.toggleReplying},null,8,["reply-to","attentions","replied-user","copy-message-scope","subject","onPosted"])])):(0,o.kq)("",!0)],64))],2))}]])},10252:(e,t,n)=>{"use strict";n.d(t,{Z:()=>V});var o=n(66252),r=n(3577),i={key:0},s={key:1},a={key:3,class:"link-preview media-body"},u=n(4942),c=n(66596),l=["role"],d=["title"],p={class:"option-result-label"},m={class:"result-percentage"},h=["role","aria-labelledby","aria-checked","onClick"],f=["disabled","value"],g=["disabled","value"],v={class:"option-vote"},w={class:"footer faint"},b=["disabled"],y={class:"total"},D=n(35161),_=n.n(D),k=n(84486),C=n.n(k),S=n(1840),j=n(92820);const F={name:"Poll",props:["basePoll","emoji"],components:{Timeago:S.Z,RichContent:j.Z},data:function(){return{loading:!1,choices:[],randomSeed:"".concat(Math.random()).replace(".","-")}},created:function(){this.$store.state.polls.pollsObject[this.pollId]||this.$store.dispatch("mergeOrAddPoll",this.basePoll),this.$store.dispatch("trackPoll",this.pollId)},unmounted:function(){this.$store.dispatch("untrackPoll",this.pollId)},computed:{pollId:function(){return this.basePoll.id},poll:function(){return this.$store.state.polls.pollsObject[this.pollId]||{}},options:function(){return this.poll&&this.poll.options||[]},expiresAt:function(){return this.poll&&this.poll.expires_at||0},expired:function(){return this.poll&&this.poll.expired||!1},loggedIn:function(){return this.$store.state.users.currentUser},showResults:function(){return this.poll.voted||this.expired||!this.loggedIn},totalVotesCount:function(){return this.poll.votes_count},containerClass:function(){return{loading:this.loading}},choiceIndices:function(){return this.choices.map((function(e,t){return e&&t})).filter((function(e){return"number"==typeof e}))},isDisabled:function(){var e=0===this.choiceIndices.length;return this.loading||e}},methods:{percentageForOption:function(e){return 0===this.totalVotesCount?0:Math.round(e/this.totalVotesCount*100)},resultTitle:function(e){return"".concat(e.votes_count,"/").concat(this.totalVotesCount," ").concat(this.$t("polls.votes"))},fetchPoll:function(){this.$store.dispatch("refreshPoll",{id:this.statusId,pollId:this.poll.id})},activateOption:function(e){var t=this.$el.querySelectorAll("input"),n=this.$el.querySelector('input[value="'.concat(e,'"]'));this.poll.multiple?n.checked=!n.checked:(C()(t,(function(e){e.checked=!1})),n.checked=!0),this.choices=_()(t,(function(e){return e.checked}))},optionId:function(e){return"poll".concat(this.poll.id,"-").concat(e)},vote:function(){var e=this;0!==this.choiceIndices.length&&(this.loading=!0,this.$store.dispatch("votePoll",{id:this.statusId,pollId:this.poll.id,choices:this.choiceIndices}).then((function(t){e.loading=!1})))}}};var A=n(83744);const O=(0,A.Z)(F,[["render",function(e,t,n,i,s,a){var u=(0,o.up)("RichContent"),c=(0,o.up)("Timeago"),D=(0,o.up)("i18n-t");return(0,o.wg)(),(0,o.iD)("div",{class:(0,r.C_)(["poll",e.containerClass])},[(0,o._)("div",{role:e.showResults?"section":e.poll.multiple?"group":"radiogroup"},[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.options,(function(t,n){return(0,o.wg)(),(0,o.iD)("div",{key:n,class:"poll-option"},[e.showResults?((0,o.wg)(),(0,o.iD)("div",{key:0,title:e.resultTitle(t),class:"option-result"},[(0,o._)("div",p,[(0,o._)("span",m,(0,r.zw)(e.percentageForOption(t.votes_count))+"% ",1),(0,o.Wm)(u,{html:t.title_html,"handle-links":!1,emoji:e.emoji},null,8,["html","emoji"])]),(0,o._)("div",{class:"result-fill",style:(0,r.j5)({width:"".concat(e.percentageForOption(t.votes_count),"%")})},null,4)],8,d)):((0,o.wg)(),(0,o.iD)("div",{key:1,tabindex:"0",role:e.poll.multiple?"checkbox":"radio","aria-labelledby":"option-vote-".concat(e.randomSeed,"-").concat(n),"aria-checked":e.choices[n],onClick:function(t){return e.activateOption(n)}},[e.poll.multiple?((0,o.wg)(),(0,o.iD)("input",{key:0,type:"checkbox",class:"poll-checkbox",disabled:e.loading,value:n},null,8,f)):((0,o.wg)(),(0,o.iD)("input",{key:1,type:"radio",disabled:e.loading,value:n},null,8,g)),(0,o._)("label",v,[(0,o.Wm)(u,{id:"option-vote-".concat(e.randomSeed,"-").concat(n),html:t.title_html,"handle-links":!1,emoji:e.emoji},null,8,["id","html","emoji"])])],8,h))])})),128))],8,l),(0,o._)("div",w,[e.showResults?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("button",{key:0,class:"btn button-default poll-vote-button",type:"button",disabled:e.isDisabled,onClick:t[0]||(t[0]=function(){return e.vote&&e.vote.apply(e,arguments)})},(0,r.zw)(e.$t("polls.vote")),9,b)),(0,o._)("div",y,["number"==typeof e.poll.voters_count?((0,o.wg)(),(0,o.iD)(o.HY,{key:0},[(0,o.Uk)((0,r.zw)(e.$tc("polls.people_voted_count",e.poll.voters_count,{count:e.poll.voters_count}))+" ·  ",1)],64)):((0,o.wg)(),(0,o.iD)(o.HY,{key:1},[(0,o.Uk)((0,r.zw)(e.$tc("polls.votes_count",e.poll.votes_count,{count:e.poll.votes_count}))+" ·  ",1)],64))]),(0,o._)("span",null,[(0,o.Wm)(D,{scope:"global",keypath:e.expired?"polls.expired":"polls.expires_in"},{default:(0,o.w5)((function(){return[(0,o.Wm)(c,{time:e.expiresAt,"auto-update":60,"now-threshold":0},null,8,["time"])]})),_:1},8,["keypath"])])])],2)}]]);var E=n(67671),z=n(49963),P={class:"body"},I=n(58394),x=n(989),T=n(9382),$=n(84131);function B(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}T.vI.add($.gMD,$.Xig,$.VmB,$.nNP,$.Mm7);const U={name:"StatusContent",props:["compact","status","focused","noHeading","fullContent","singleLine","showingTall","expandingSubject","showingLongSubject","toggleShowingTall","toggleExpandingSubject","toggleShowingLongSubject"],data:function(){return{postLength:this.status.text.length,parseReadyDone:!1}},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?B(Object(n),!0).forEach((function(t){(0,u.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):B(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({localCollapseSubjectDefault:function(){return this.mergedConfig.collapseMessageWithSubject},tallStatus:function(){return!this.singleLine&&!this.compact&&this.status.raw_html.split(/<p|<br/).length+this.postLength/80>20},longSubject:function(){return this.status.summary.length>240},mightHideBecauseSubject:function(){return!!this.status.summary&&this.localCollapseSubjectDefault},mightHideBecauseTall:function(){return this.tallStatus&&!(this.status.summary&&this.localCollapseSubjectDefault)},hideSubjectStatus:function(){return this.mightHideBecauseSubject&&!this.expandingSubject},hideTallStatus:function(){return this.mightHideBecauseTall&&!this.showingTall},showingMore:function(){return this.mightHideBecauseTall&&this.showingTall||this.mightHideBecauseSubject&&this.expandingSubject},attachmentTypes:function(){return this.status.attachments.map((function(e){return I.ZP.fileType(e.mimetype)}))}},(0,x.Se)(["mergedConfig"])),components:{RichContent:j.Z},mounted:function(){var e=this;this.status.attentions&&this.status.attentions.forEach((function(t){var n=t.id;e.$store.dispatch("fetchUserIfMissing",n)}))},methods:{onParseReady:function(e){var t=this;if(!this.parseReadyDone){this.parseReadyDone=!0,this.$emit("parseReady",e);var n=e.writtenMentions,o=e.invisibleMentions;n.filter((function(e){return!e.notifying})).forEach((function(e){var n=e.content,o=e.url,r=n.replace(/<[^>]+?>/gi,"");if(r.startsWith("@")){var i=r.slice(1),s=o.replace(/^https?:\/\//,"").replace(/\/.+?$/,"");t.$store.dispatch("fetchUserIfMissing","".concat(i,"@").concat(s))}})),this.postLength=o.reduce((function(e,t){return e-t.textContent.length-1}),this.postLength)}},toggleShowMore:function(){this.mightHideBecauseTall?this.toggleShowingTall():this.mightHideBecauseSubject&&this.toggleExpandingSubject()},generateTagLink:function(e){return"/tag/".concat(e)}}},M=(0,A.Z)(U,[["render",function(e,t,n,i,s,a){var u=(0,o.up)("RichContent"),c=(0,o.up)("FAIcon");return(0,o.wg)(),(0,o.iD)("div",{class:(0,r.C_)(["StatusBody",{"-compact":e.compact}])},[(0,o._)("div",P,[e.status.summary_raw_html?((0,o.wg)(),(0,o.iD)("div",{key:0,class:(0,r.C_)(["summary-wrapper",{"-tall":e.longSubject&&!e.showingLongSubject}])},[(0,o.Wm)(u,{class:"media-body summary",html:e.status.summary_raw_html,emoji:e.status.emojis},null,8,["html","emoji"]),(0,o.wy)((0,o._)("button",{class:"button-unstyled -link tall-subject-hider",onClick:t[0]||(t[0]=(0,z.iM)((function(){return e.toggleShowingLongSubject&&e.toggleShowingLongSubject.apply(e,arguments)}),["prevent"]))},(0,r.zw)(e.$t("status.hide_full_subject")),513),[[z.F8,e.longSubject&&e.showingLongSubject]]),(0,o.wy)((0,o._)("button",{class:"button-unstyled -link tall-subject-hider",onClick:t[1]||(t[1]=(0,z.iM)((function(){return e.toggleShowingLongSubject&&e.toggleShowingLongSubject.apply(e,arguments)}),["prevent"]))},(0,r.zw)(e.$t("status.show_full_subject")),513),[[z.F8,e.longSubject&&!e.showingLongSubject]])],2)):(0,o.kq)("",!0),(0,o._)("div",{class:(0,r.C_)([{"-tall-status":e.hideTallStatus},"text-wrapper"])},[(0,o.wy)((0,o._)("button",{class:(0,r.C_)(["button-unstyled -link tall-status-hider",{"-focused":e.focused}]),onClick:t[2]||(t[2]=(0,z.iM)((function(){return e.toggleShowMore&&e.toggleShowMore.apply(e,arguments)}),["prevent"]))},(0,r.zw)(e.$t("general.show_more")),3),[[z.F8,e.hideTallStatus]]),e.hideSubjectStatus||e.singleLine&&e.status.summary_raw_html?(0,o.kq)("",!0):((0,o.wg)(),(0,o.j4)(u,{key:0,class:(0,r.C_)([{"-single-line":e.singleLine},"text media-body"]),html:e.status.raw_html,emoji:e.status.emojis,"handle-links":!0,greentext:e.mergedConfig.greentext,attentions:e.status.attentions,onParseReady:e.onParseReady},null,8,["class","html","emoji","greentext","attentions","onParseReady"])),(0,o.wy)((0,o._)("button",{class:"button-unstyled -link cw-status-hider",onClick:t[3]||(t[3]=(0,z.iM)((function(){return e.toggleShowMore&&e.toggleShowMore.apply(e,arguments)}),["prevent"]))},[(0,o.Uk)((0,r.zw)(e.$t("status.show_content"))+" ",1),e.attachmentTypes.includes("image")?((0,o.wg)(),(0,o.j4)(c,{key:0,icon:"image"})):(0,o.kq)("",!0),e.attachmentTypes.includes("video")?((0,o.wg)(),(0,o.j4)(c,{key:1,icon:"video"})):(0,o.kq)("",!0),e.attachmentTypes.includes("audio")?((0,o.wg)(),(0,o.j4)(c,{key:2,icon:"music"})):(0,o.kq)("",!0),e.attachmentTypes.includes("unknown")?((0,o.wg)(),(0,o.j4)(c,{key:3,icon:"file"})):(0,o.kq)("",!0),e.status.poll&&e.status.poll.options?((0,o.wg)(),(0,o.j4)(c,{key:4,icon:"poll-h"})):(0,o.kq)("",!0),e.status.card?((0,o.wg)(),(0,o.j4)(c,{key:5,icon:"link"})):(0,o.kq)("",!0)],512),[[z.F8,e.hideSubjectStatus]]),(0,o.wy)((0,o._)("button",{class:"button-unstyled -link status-unhider",onClick:t[4]||(t[4]=(0,z.iM)((function(){return e.toggleShowMore&&e.toggleShowMore.apply(e,arguments)}),["prevent"]))},(0,r.zw)(e.tallStatus?e.$t("general.show_less"):e.$t("status.hide_content")),513),[[z.F8,e.showingMore&&!e.fullContent]])],2)]),e.hideSubjectStatus?(0,o.kq)("",!0):(0,o.WI)(e.$slots,"default",{key:0})],2)}]]);var L=n(92798);function R(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function q(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?R(Object(n),!0).forEach((function(t){(0,u.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):R(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}T.vI.add($.IJ7,$.gMD,$.Xig,$.VmB,$.nNP,$.Mm7);var N,Z=function(e){return e.charAt(0).toUpperCase()+e.slice(1)},W=function(e,t){var n=Z(t),o="controlledToggle".concat(n),r="uncontrolled".concat(n);e[o]?e[o]():e[r]=!e[r]};const H={name:"StatusContent",props:["status","compact","focused","noHeading","fullContent","singleLine","controlledShowingTall","controlledExpandingSubject","controlledToggleShowingTall","controlledToggleExpandingSubject","controlledShowingLongSubject","controlledToggleShowingLongSubject"],data:function(){return{uncontrolledShowingTall:this.fullContent||this.inConversation&&this.focused,uncontrolledShowingLongSubject:!1,uncontrolledExpandingSubject:!this.$store.getters.mergedConfig.collapseMessageWithSubject}},computed:q(q(q({},(N=["showingTall","expandingSubject","showingLongSubject"],N.reduce((function(e,t){var n=Z(t),o="controlledToggle".concat(n),r="controlled".concat(n),i="uncontrolled".concat(n);return e[t]=function(){return void 0===this.$data[o]&&void 0===this.$props[o]||!this[o]?this[i]:this[r]},e}),{}))),{},{statusCard:function(){return this.status.card?this.status.card.url===this.status.quote_url?null:this.status.card:null},hideAttachments:function(){return this.mergedConfig.hideAttachments&&!this.inConversation||this.mergedConfig.hideAttachmentsInConv&&this.inConversation},nsfwClickthrough:function(){return!(!this.status.nsfw||this.status.summary&&this.localCollapseSubjectDefault)},attachmentSize:function(){return this.compact?"small":this.mergedConfig.hideAttachments&&!this.inConversation||this.mergedConfig.hideAttachmentsInConv&&this.inConversation||this.status.attachments.length>this.maxThumbnails?"hide":"normal"},maxThumbnails:function(){return this.mergedConfig.maxThumbnails}},(0,x.Se)(["mergedConfig"])),(0,x.rn)({currentUser:function(e){return e.users.currentUser}})),components:{Attachment:c.Z,Poll:O,Gallery:E.Z,LinkPreview:L.Z,StatusBody:M},methods:{toggleShowingTall:function(){W(this,"showingTall")},toggleExpandingSubject:function(){W(this,"expandingSubject")},toggleShowingLongSubject:function(){W(this,"showingLongSubject")},setMedia:function(){var e=this,t="hide"===this.attachmentSize?this.status.attachments:this.galleryAttachments;return function(){return e.$store.dispatch("setMedia",t)}}}},V=(0,A.Z)(H,[["render",function(e,t,n,u,c,l){var d=(0,o.up)("Poll"),p=(0,o.up)("FAIcon"),m=(0,o.up)("gallery"),h=(0,o.up)("link-preview"),f=(0,o.up)("StatusBody");return(0,o.wg)(),(0,o.iD)("div",{class:(0,r.C_)(["StatusContent",{"-compact":e.compact}])},[(0,o.WI)(e.$slots,"header"),(0,o.Wm)(f,{status:e.status,compact:e.compact,"single-line":e.singleLine,"showing-tall":e.showingTall,"expanding-subject":e.expandingSubject,"showing-long-subject":e.showingLongSubject,"toggle-showing-tall":e.toggleShowingTall,"toggle-expanding-subject":e.toggleExpandingSubject,"toggle-showing-long-subject":e.toggleShowingLongSubject,onParseReady:t[2]||(t[2]=function(t){return e.$emit("parseReady",t)})},{default:(0,o.w5)((function(){return[e.status.poll&&e.status.poll.options&&!e.compact?((0,o.wg)(),(0,o.iD)("div",i,[(0,o.Wm)(d,{"base-poll":e.status.poll,emoji:e.status.emojis},null,8,["base-poll","emoji"])])):e.status.poll&&e.status.poll.options&&e.compact?((0,o.wg)(),(0,o.iD)("div",s,[(0,o.Wm)(p,{icon:"poll-h",size:"2x"})])):(0,o.kq)("",!0),0!==e.status.attachments.length?((0,o.wg)(),(0,o.j4)(m,{key:2,class:"attachments media-body",compact:e.compact,nsfw:e.nsfwClickthrough,attachments:e.status.attachments,limit:e.compact?1:0,size:e.attachmentSize,onPlay:t[0]||(t[0]=function(t){return e.$emit("mediaplay",e.attachment.id)}),onPause:t[1]||(t[1]=function(t){return e.$emit("mediapause",e.attachment.id)})},null,8,["compact","nsfw","attachments","limit","size"])):(0,o.kq)("",!0),!e.statusCard||e.noHeading||e.compact?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",a,[(0,o.Wm)(h,{card:e.status.card,size:e.attachmentSize,nsfw:e.nsfwClickthrough},null,8,["card","size","nsfw"])]))]})),_:1},8,["status","compact","single-line","showing-tall","expanding-subject","showing-long-subject","toggle-showing-tall","toggle-expanding-subject","toggle-showing-long-subject"]),(0,o.WI)(e.$slots,"footer")],2)}]])},32140:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var o=n(66252),r=n(3577),i={key:0,ref:"canvas"},s=["alt","title","data-src","src","referrerpolicy","loading"];const a={props:["src","referrerpolicy","mimetype","imageLoadError","imageLoadHandler","alt","height","width","dataSrc","loading"],data:function(){return{realSrc:this.src,stopGifs:this.$store.getters.mergedConfig.stopGifs}},computed:{animated:function(){return!!this.realSrc&&this.stopGifs&&("image/gif"===this.mimetype||this.realSrc.endsWith(".gif"))},style:function(){var e=function(e){return/\d$/.test(e)?e+"px":e};return{height:this.height?e(this.height):null,width:this.width?e(this.width):null}}},methods:{loadLazy:function(){this.dataSrc&&(this.realSrc=this.dataSrc)},onLoad:function(){if(this.realSrc){var e=this.$refs.src;if(e){this.imageLoadHandler&&this.imageLoadHandler(e);var t=this.$refs.canvas;if(t){var n=e.naturalWidth,o=e.naturalHeight;t.width=n,t.height=o,t.getContext("2d").drawImage(e,0,0,n,o)}}}},onError:function(){this.imageLoadError&&this.imageLoadError()}},watch:{src:function(){this.realSrc=this.src},dataSrc:function(){this.$el.removeAttribute("data-loaded")}}},u=(0,n(83744).Z)(a,[["render",function(e,t,n,a,u,c){return(0,o.wg)(),(0,o.iD)("div",{class:(0,r.C_)(["still-image",{animated:e.animated}]),style:(0,r.j5)(e.style)},[e.animated?((0,o.wg)(),(0,o.iD)("canvas",i,null,512)):(0,o.kq)("",!0),((0,o.wg)(),(0,o.iD)("img",{ref:"src",key:e.realSrc,alt:e.alt,title:e.alt,"data-src":e.dataSrc,src:e.realSrc,referrerpolicy:e.referrerpolicy,loading:e.loading,onLoad:t[0]||(t[0]=function(){return e.onLoad&&e.onLoad.apply(e,arguments)}),onError:t[1]||(t[1]=function(){return e.onError&&e.onError.apply(e,arguments)})},null,40,s)),(0,o.WI)(e.$slots,"default")],6)}]])},1840:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});var o=n(66252),r=n(3577),i=["datetime","title"],s=n(27483),a=n(39776);const u={name:"Timeago",props:["time","autoUpdate","longFormat","nowThreshold","templateKey"],data:function(){return{relativeTime:{key:"time.now",num:0},interval:null}},computed:{localeDateString:function(){var e=a.Z.internalToBrowserLocale(this.$i18n.locale);return"string"==typeof this.time?new Date(Date.parse(this.time)).toLocaleString(e):this.time.toLocaleString(e)},relativeTimeString:function(){var e=this.$i18n.tc(this.relativeTime.key,this.relativeTime.num,[this.relativeTime.num]);return"string"==typeof this.templateKey&&"time.now"!==this.relativeTime.key?this.$i18n.t(this.templateKey,[e]):e}},watch:{time:function(e,t){t!==e&&(clearTimeout(this.interval),this.refreshRelativeTimeObject())}},created:function(){this.refreshRelativeTimeObject()},unmounted:function(){clearTimeout(this.interval)},methods:{refreshRelativeTimeObject:function(){var e="number"==typeof this.nowThreshold?this.nowThreshold:1;this.relativeTime=this.longFormat?s.GV(this.time,e):s._F(this.time,e),this.autoUpdate&&(this.interval=setTimeout(this.refreshRelativeTimeObject,1e3*this.autoUpdate))}}},c=(0,n(83744).Z)(u,[["render",function(e,t,n,s,a,u){return(0,o.wg)(),(0,o.iD)("time",{datetime:n.time,title:u.localeDateString},(0,r.zw)(u.relativeTimeString),9,i)}]])},42262:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var o=n(66252),r=n(9382),i=n(84131);r.vI.add(i.dT$);const s={props:{user:Object}},a=(0,n(83744).Z)(s,[["render",function(e,t,n,r,i,s){var a=(0,o.up)("FAIcon");return e.user&&e.user.screen_name_ui_contains_non_ascii?((0,o.wg)(),(0,o.j4)(a,{key:0,icon:"code",title:e.$t("unicode_domain_indicator.tooltip")},null,8,["title"])):(0,o.kq)("",!0)}]])},48173:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>c});var o=n(66252),r=n(3577),i=n(32140),s=n(9382),a=n(84131);s.vI.add(a.VE0);const u={props:["user","betterShadow","compact","bot"],data:function(){return{showPlaceholder:!1,defaultAvatar:"".concat(this.$store.state.instance.server+this.$store.state.instance.defaultAvatar)}},components:{StillImage:i.Z},methods:{imgSrc:function(e){return!e||this.showPlaceholder?this.defaultAvatar:e},imageLoadError:function(){this.showPlaceholder=!0}}},c=(0,n(83744).Z)(u,[["render",function(e,t,n,i,s,a){var u=(0,o.up)("StillImage"),c=(0,o.up)("FAIcon");return(0,o.wg)(),(0,o.iD)("span",{class:(0,r.C_)(["Avatar",{"-compact":e.compact}])},[e.user?((0,o.wg)(),(0,o.j4)(u,{key:0,class:(0,r.C_)(["avatar",{"-compact":e.compact,"-better-shadow":e.betterShadow}]),alt:e.user.screen_name_ui,title:e.user.screen_name_ui,src:e.imgSrc(e.user.profile_image_url_original),"image-load-error":e.imageLoadError},null,8,["alt","title","src","image-load-error","class"])):((0,o.wg)(),(0,o.iD)("div",{key:1,class:(0,r.C_)(["avatar -placeholder",{"-compact":e.compact}])},null,2)),e.bot?((0,o.wg)(),(0,o.j4)(c,{key:2,icon:"robot",class:"bot-indicator"})):(0,o.kq)("",!0)],2)}]])},20392:(e,t,n)=>{"use strict";n.d(t,{Z:()=>$e});var o=n(66252),r=n(3577),i=n(49963),s={class:"user-info"},a={class:"container"},u={class:"user-info-avatar -link -overlay"},c={class:"user-summary"},l={class:"top-line"},d=["href"],p={class:"bottom-line"},m={key:0,class:"alert user-role"},h={key:1,class:"alert user-role"},f={key:2,class:"alert user-role"},g={key:1},v={key:2,class:"dailyAvg"},w={class:"user-meta"},b={key:0,class:"following"},y={key:1,class:"highlighter"},D=["id"],_=["id"],k={value:"disabled"},C={value:"solid"},S={value:"striped"},j={value:"side"},F={key:0,class:"user-interactions"},A={class:"btn-group"},O=["disabled"],E=["disabled"],z=["disabled"],P={key:1,class:"user-interactions"},I={key:0,class:"panel-body"},x={key:0,class:"user-counts"},T=(0,o._)("br",null,null,-1),$=["textContent"],B={class:"mute-expiry"},U=["value"],M=n(4942),L=n(27483),R=n(48173),q=n(72895),N=n(99507),Z=n(34837),W={class:"dropdown-menu"},H={key:0},V={key:0,role:"separator",class:"dropdown-divider"},K={key:3,role:"separator",class:"dropdown-divider"},G={key:4},Y=n(9382),J=n(84131),Q=n(71113),X=n(84535);Y.vI.add(J.ptq);const ee={props:["user"],data:function(){return{tags:{FORCE_NSFW:"mrf_tag:media-force-nsfw",STRIP_MEDIA:"mrf_tag:media-strip",FORCE_UNLISTED:"mrf_tag:force-unlisted",DISABLE_REMOTE_SUBSCRIPTION:"mrf_tag:disable-remote-subscription",DISABLE_ANY_SUBSCRIPTION:"mrf_tag:disable-any-subscription",SANDBOX:"mrf_tag:sandbox",QUARANTINE:"mrf_tag:quarantine"},showDeleteUserDialog:!1,toggled:!1}},components:{DialogModal:Q.Z,Popover:X.default},computed:{tagsSet:function(){return new Set(this.user.tags)},canGrantRole:function(){return this.user.is_local&&!this.user.deactivated&&"admin"===this.$store.state.users.currentUser.role},canChangeActivationState:function(){return this.privileged("users_manage_activation_state")},canDeleteAccount:function(){return this.privileged("users_delete")},canUseTagPolicy:function(){return this.$store.state.instance.tagPolicyAvailable&&this.privileged("users_manage_tags")}},methods:{hasTag:function(e){return this.tagsSet.has(e)},privileged:function(e){return this.$store.state.users.currentUser.privileges.includes(e)},toggleTag:function(e){var t=this,n=this.$store;this.tagsSet.has(e)?n.state.api.backendInteractor.untagUser({user:this.user,tag:e}).then((function(o){o.ok&&n.commit("untagUser",{user:t.user,tag:e})})):n.state.api.backendInteractor.tagUser({user:this.user,tag:e}).then((function(o){o.ok&&n.commit("tagUser",{user:t.user,tag:e})}))},toggleRight:function(e){var t=this,n=this.$store;this.user.rights[e]?n.state.api.backendInteractor.deleteRight({user:this.user,right:e}).then((function(o){o.ok&&n.commit("updateRight",{user:t.user,right:e,value:!1})})):n.state.api.backendInteractor.addRight({user:this.user,right:e}).then((function(o){o.ok&&n.commit("updateRight",{user:t.user,right:e,value:!0})}))},toggleActivationStatus:function(){this.$store.dispatch("toggleActivationStatus",{user:this.user})},deleteUserDialog:function(e){this.showDeleteUserDialog=e},deleteUser:function(){var e=this,t=this.$store,n=this.user,o=n.id,r=n.name;t.state.api.backendInteractor.deleteUser({user:n}).then((function(t){e.$store.dispatch("markStatusesAsDeleted",(function(e){return n.id===e.user.id}));var i="external-user-profile"===e.$route.name||"user-profile"===e.$route.name,s=e.$route.params.name===r||e.$route.params.id===o;i&&s&&window.history.back()}))},setToggled:function(e){this.toggled=e}}};var te=n(83744);const ne=(0,te.Z)(ee,[["render",function(e,t,n,i,s,a){var u=(0,o.up)("FAIcon"),c=(0,o.up)("Popover"),l=(0,o.up)("DialogModal");return(0,o.wg)(),(0,o.iD)("div",null,[(0,o.Wm)(c,{trigger:"click",class:"moderation-tools-popover",placement:"bottom",offset:{y:5},onShow:t[11]||(t[11]=function(t){return e.setToggled(!0)}),onClose:t[12]||(t[12]=function(t){return e.setToggled(!1)})},{content:(0,o.w5)((function(){return[(0,o._)("div",W,[e.canGrantRole?((0,o.wg)(),(0,o.iD)("span",H,[(0,o._)("button",{class:"button-default dropdown-item",onClick:t[0]||(t[0]=function(t){return e.toggleRight("admin")})},(0,r.zw)(e.$t(e.user.rights.admin?"user_card.admin_menu.revoke_admin":"user_card.admin_menu.grant_admin")),1),(0,o._)("button",{class:"button-default dropdown-item",onClick:t[1]||(t[1]=function(t){return e.toggleRight("moderator")})},(0,r.zw)(e.$t(e.user.rights.moderator?"user_card.admin_menu.revoke_moderator":"user_card.admin_menu.grant_moderator")),1),e.canChangeActivationState||e.canDeleteAccount?((0,o.wg)(),(0,o.iD)("div",V)):(0,o.kq)("",!0)])):(0,o.kq)("",!0),e.canChangeActivationState?((0,o.wg)(),(0,o.iD)("button",{key:1,class:"button-default dropdown-item",onClick:t[2]||(t[2]=function(t){return e.toggleActivationStatus()})},(0,r.zw)(e.$t(e.user.deactivated?"user_card.admin_menu.activate_account":"user_card.admin_menu.deactivate_account")),1)):(0,o.kq)("",!0),e.canDeleteAccount?((0,o.wg)(),(0,o.iD)("button",{key:2,class:"button-default dropdown-item",onClick:t[3]||(t[3]=function(t){return e.deleteUserDialog(!0)})},(0,r.zw)(e.$t("user_card.admin_menu.delete_account")),1)):(0,o.kq)("",!0),e.canUseTagPolicy?((0,o.wg)(),(0,o.iD)("div",K)):(0,o.kq)("",!0),e.canUseTagPolicy?((0,o.wg)(),(0,o.iD)("span",G,[(0,o._)("button",{class:"button-default dropdown-item",onClick:t[4]||(t[4]=function(t){return e.toggleTag(e.tags.FORCE_NSFW)})},[(0,o._)("span",{class:(0,r.C_)(["menu-checkbox",{"menu-checkbox-checked":e.hasTag(e.tags.FORCE_NSFW)}])},null,2),(0,o.Uk)(" "+(0,r.zw)(e.$t("user_card.admin_menu.force_nsfw")),1)]),(0,o._)("button",{class:"button-default dropdown-item",onClick:t[5]||(t[5]=function(t){return e.toggleTag(e.tags.STRIP_MEDIA)})},[(0,o._)("span",{class:(0,r.C_)(["menu-checkbox",{"menu-checkbox-checked":e.hasTag(e.tags.STRIP_MEDIA)}])},null,2),(0,o.Uk)(" "+(0,r.zw)(e.$t("user_card.admin_menu.strip_media")),1)]),(0,o._)("button",{class:"button-default dropdown-item",onClick:t[6]||(t[6]=function(t){return e.toggleTag(e.tags.FORCE_UNLISTED)})},[(0,o._)("span",{class:(0,r.C_)(["menu-checkbox",{"menu-checkbox-checked":e.hasTag(e.tags.FORCE_UNLISTED)}])},null,2),(0,o.Uk)(" "+(0,r.zw)(e.$t("user_card.admin_menu.force_unlisted")),1)]),(0,o._)("button",{class:"button-default dropdown-item",onClick:t[7]||(t[7]=function(t){return e.toggleTag(e.tags.SANDBOX)})},[(0,o._)("span",{class:(0,r.C_)(["menu-checkbox",{"menu-checkbox-checked":e.hasTag(e.tags.SANDBOX)}])},null,2),(0,o.Uk)(" "+(0,r.zw)(e.$t("user_card.admin_menu.sandbox")),1)]),e.user.is_local?((0,o.wg)(),(0,o.iD)("button",{key:0,class:"button-default dropdown-item",onClick:t[8]||(t[8]=function(t){return e.toggleTag(e.tags.DISABLE_REMOTE_SUBSCRIPTION)})},[(0,o._)("span",{class:(0,r.C_)(["menu-checkbox",{"menu-checkbox-checked":e.hasTag(e.tags.DISABLE_REMOTE_SUBSCRIPTION)}])},null,2),(0,o.Uk)(" "+(0,r.zw)(e.$t("user_card.admin_menu.disable_remote_subscription")),1)])):(0,o.kq)("",!0),e.user.is_local?((0,o.wg)(),(0,o.iD)("button",{key:1,class:"button-default dropdown-item",onClick:t[9]||(t[9]=function(t){return e.toggleTag(e.tags.DISABLE_ANY_SUBSCRIPTION)})},[(0,o._)("span",{class:(0,r.C_)(["menu-checkbox",{"menu-checkbox-checked":e.hasTag(e.tags.DISABLE_ANY_SUBSCRIPTION)}])},null,2),(0,o.Uk)(" "+(0,r.zw)(e.$t("user_card.admin_menu.disable_any_subscription")),1)])):(0,o.kq)("",!0),e.user.is_local?((0,o.wg)(),(0,o.iD)("button",{key:2,class:"button-default dropdown-item",onClick:t[10]||(t[10]=function(t){return e.toggleTag(e.tags.QUARANTINE)})},[(0,o._)("span",{class:(0,r.C_)(["menu-checkbox",{"menu-checkbox-checked":e.hasTag(e.tags.QUARANTINE)}])},null,2),(0,o.Uk)(" "+(0,r.zw)(e.$t("user_card.admin_menu.quarantine")),1)])):(0,o.kq)("",!0)])):(0,o.kq)("",!0)])]})),trigger:(0,o.w5)((function(){return[(0,o._)("button",{class:(0,r.C_)(["btn button-default btn-block moderation-tools-button",{toggled:e.toggled}])},[(0,o.Uk)((0,r.zw)(e.$t("user_card.admin_menu.moderation"))+" ",1),(0,o.Wm)(u,{icon:"chevron-down"})],2)]})),_:1}),((0,o.wg)(),(0,o.j4)(o.lR,{to:"#modal"},[e.showDeleteUserDialog?((0,o.wg)(),(0,o.j4)(l,{key:0,"on-cancel":e.deleteUserDialog.bind(this,!1)},{header:(0,o.w5)((function(){return[(0,o.Uk)((0,r.zw)(e.$t("user_card.admin_menu.delete_user")),1)]})),footer:(0,o.w5)((function(){return[(0,o._)("button",{class:"btn button-default",onClick:t[13]||(t[13]=function(t){return e.deleteUserDialog(!1)})},(0,r.zw)(e.$t("general.cancel")),1),(0,o._)("button",{class:"btn button-default danger",onClick:t[14]||(t[14]=function(t){return e.deleteUser()})},(0,r.zw)(e.$t("user_card.admin_menu.delete_user")),1)]})),default:(0,o.w5)((function(){return[(0,o._)("p",null,(0,r.zw)(e.$t("user_card.admin_menu.delete_user_confirmation")),1)]})),_:1},8,["on-cancel"])):(0,o.kq)("",!0)]))])}]]);var oe={class:"AccountActions"},re={class:"dropdown-menu"},ie=(0,o._)("div",{role:"separator",class:"dropdown-divider"},null,-1),se={class:"button-unstyled ellipsis-button"},ae=["textContent"],ue=["textContent"],ce=n(989),le={class:"UserListMenu"},de={class:"dropdown-menu"},pe=["onClick"],me={class:"btn button-default dropdown-item -has-submenu"};function he(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function fe(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?he(Object(n),!0).forEach((function(t){(0,M.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):he(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Y.vI.add(J._tD);const ge={props:["user"],data:function(){return{}},components:{DialogModal:Q.Z,Popover:X.default},created:function(){this.$store.dispatch("fetchUserInLists",this.user.id)},computed:fe(fe({},(0,ce.rn)({allLists:function(e){return e.lists.allLists}})),{},{inListsSet:function(){return new Set(this.user.inLists.map((function(e){return e.id})))},lists:function(){var e=this;return this.user.inLists?this.allLists.map((function(t){return fe(fe({},t),{},{inList:e.inListsSet.has(t.id)})})):[]}}),methods:{toggleList:function(e){var t=this;this.inListsSet.has(e)?this.$store.dispatch("removeListAccount",{accountId:this.user.id,listId:e}).then((function(e){e.ok&&t.$store.dispatch("fetchUserInLists",t.user.id)})):this.$store.dispatch("addListAccount",{accountId:this.user.id,listId:e}).then((function(e){e.ok&&t.$store.dispatch("fetchUserInLists",t.user.id)}))},toggleRight:function(e){var t=this,n=this.$store;this.user.rights[e]?n.state.api.backendInteractor.deleteRight({user:this.user,right:e}).then((function(o){o.ok&&n.commit("updateRight",{user:t.user,right:e,value:!1})})):n.state.api.backendInteractor.addRight({user:this.user,right:e}).then((function(o){o.ok&&n.commit("updateRight",{user:t.user,right:e,value:!0})}))},toggleActivationStatus:function(){this.$store.dispatch("toggleActivationStatus",{user:this.user})},deleteUserDialog:function(e){this.showDeleteUserDialog=e},deleteUser:function(){var e=this,t=this.$store,n=this.user,o=n.id,r=n.name;t.state.api.backendInteractor.deleteUser({user:n}).then((function(t){e.$store.dispatch("markStatusesAsDeleted",(function(e){return n.id===e.user.id}));var i="external-user-profile"===e.$route.name||"user-profile"===e.$route.name,s=e.$route.params.name===r||e.$route.params.id===o;i&&s&&window.history.back()}))},setToggled:function(e){this.toggled=e}}},ve=(0,te.Z)(ge,[["render",function(e,t,n,i,s,a){var u=(0,o.up)("FAIcon"),c=(0,o.up)("Popover");return(0,o.wg)(),(0,o.iD)("div",le,[(0,o.Wm)(c,{trigger:"hover",placement:"left","remove-padding":""},{content:(0,o.w5)((function(){return[(0,o._)("div",de,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.lists,(function(t){return(0,o.wg)(),(0,o.iD)("button",{key:t.id,class:"button-default dropdown-item",onClick:function(n){return e.toggleList(t.id)}},[(0,o._)("span",{class:(0,r.C_)(["menu-checkbox",{"menu-checkbox-checked":t.inList}])},null,2),(0,o.Uk)(" "+(0,r.zw)(t.title),1)],8,pe)})),128))])]})),trigger:(0,o.w5)((function(){return[(0,o._)("button",me,[(0,o.Uk)((0,r.zw)(e.$t("lists.manage_lists"))+" ",1),(0,o.Wm)(u,{class:"chevron-icon",size:"lg",icon:"chevron-right"})])]})),_:1})])}]]);var we=n(1447);function be(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}Y.vI.add(J.iV1);const ye={props:["user","relationship"],data:function(){return{showingConfirmBlock:!1,showingConfirmRemoveFollower:!1}},components:{ProgressButton:N.Z,Popover:X.default,UserListMenu:ve,ConfirmModal:we.Z},methods:{showConfirmBlock:function(){this.showingConfirmBlock=!0},hideConfirmBlock:function(){this.showingConfirmBlock=!1},showConfirmRemoveUserFromFollowers:function(){this.showingConfirmRemoveFollower=!0},hideConfirmRemoveUserFromFollowers:function(){this.showingConfirmRemoveFollower=!1},showRepeats:function(){this.$store.dispatch("showReblogs",this.user.id)},hideRepeats:function(){this.$store.dispatch("hideReblogs",this.user.id)},blockUser:function(){this.shouldConfirmBlock?this.showConfirmBlock():this.doBlockUser()},doBlockUser:function(){this.$store.dispatch("blockUser",this.user.id),this.hideConfirmBlock()},unblockUser:function(){this.$store.dispatch("unblockUser",this.user.id)},removeUserFromFollowers:function(){this.shouldConfirmRemoveUserFromFollowers?this.showConfirmRemoveUserFromFollowers():this.doRemoveUserFromFollowers()},doRemoveUserFromFollowers:function(){this.$store.dispatch("removeUserFromFollowers",this.user.id),this.hideConfirmRemoveUserFromFollowers()},reportUser:function(){this.$store.dispatch("openUserReportingModal",{userId:this.user.id})},openChat:function(){this.$router.push({name:"chat",params:{username:this.$store.state.users.currentUser.screen_name,recipient_id:this.user.id}})}},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?be(Object(n),!0).forEach((function(t){(0,M.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):be(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({shouldConfirmBlock:function(){return this.$store.getters.mergedConfig.modalOnBlock},shouldConfirmRemoveUserFromFollowers:function(){return this.$store.getters.mergedConfig.modalOnRemoveUserFromFollowers}},(0,ce.rn)({pleromaChatMessagesAvailable:function(e){return e.instance.pleromaChatMessagesAvailable}}))},De=(0,te.Z)(ye,[["render",function(e,t,n,i,s,a){var u=(0,o.up)("UserListMenu"),c=(0,o.up)("FAIcon"),l=(0,o.up)("Popover"),d=(0,o.up)("i18n-t"),p=(0,o.up)("confirm-modal");return(0,o.wg)(),(0,o.iD)("div",oe,[(0,o.Wm)(l,{trigger:"click",placement:"bottom","bound-to":{x:"container"},"remove-padding":""},{content:(0,o.w5)((function(){return[(0,o._)("div",re,[e.relationship.following?((0,o.wg)(),(0,o.iD)(o.HY,{key:0},[e.relationship.showing_reblogs?((0,o.wg)(),(0,o.iD)("button",{key:0,class:"btn button-default dropdown-item",onClick:t[0]||(t[0]=function(){return e.hideRepeats&&e.hideRepeats.apply(e,arguments)})},(0,r.zw)(e.$t("user_card.hide_repeats")),1)):(0,o.kq)("",!0),e.relationship.showing_reblogs?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("button",{key:1,class:"btn button-default dropdown-item",onClick:t[1]||(t[1]=function(){return e.showRepeats&&e.showRepeats.apply(e,arguments)})},(0,r.zw)(e.$t("user_card.show_repeats")),1)),ie],64)):(0,o.kq)("",!0),(0,o.Wm)(u,{user:e.user},null,8,["user"]),e.relationship.followed_by?((0,o.wg)(),(0,o.iD)("button",{key:1,class:"btn button-default btn-block dropdown-item",onClick:t[2]||(t[2]=function(){return e.removeUserFromFollowers&&e.removeUserFromFollowers.apply(e,arguments)})},(0,r.zw)(e.$t("user_card.remove_follower")),1)):(0,o.kq)("",!0),e.relationship.blocking?((0,o.wg)(),(0,o.iD)("button",{key:2,class:"btn button-default btn-block dropdown-item",onClick:t[3]||(t[3]=function(){return e.unblockUser&&e.unblockUser.apply(e,arguments)})},(0,r.zw)(e.$t("user_card.unblock")),1)):((0,o.wg)(),(0,o.iD)("button",{key:3,class:"btn button-default btn-block dropdown-item",onClick:t[4]||(t[4]=function(){return e.blockUser&&e.blockUser.apply(e,arguments)})},(0,r.zw)(e.$t("user_card.block")),1)),(0,o._)("button",{class:"btn button-default btn-block dropdown-item",onClick:t[5]||(t[5]=function(){return e.reportUser&&e.reportUser.apply(e,arguments)})},(0,r.zw)(e.$t("user_card.report")),1),e.pleromaChatMessagesAvailable?((0,o.wg)(),(0,o.iD)("button",{key:4,class:"btn button-default btn-block dropdown-item",onClick:t[6]||(t[6]=function(){return e.openChat&&e.openChat.apply(e,arguments)})},(0,r.zw)(e.$t("user_card.message")),1)):(0,o.kq)("",!0)])]})),trigger:(0,o.w5)((function(){return[(0,o._)("button",se,[(0,o.Wm)(c,{class:"icon",icon:"ellipsis-v"})])]})),_:1}),((0,o.wg)(),(0,o.j4)(o.lR,{to:"#modal"},[e.showingConfirmBlock?((0,o.wg)(),(0,o.j4)(p,{key:0,title:e.$t("user_card.block_confirm_title"),"confirm-text":e.$t("user_card.block_confirm_accept_button"),"cancel-text":e.$t("user_card.block_confirm_cancel_button"),onAccepted:e.doBlockUser,onCancelled:e.hideConfirmBlock},{default:(0,o.w5)((function(){return[(0,o.Wm)(d,{keypath:"user_card.block_confirm",tag:"span"},{user:(0,o.w5)((function(){return[(0,o._)("span",{textContent:(0,r.zw)(e.user.screen_name_ui)},null,8,ae)]})),_:1})]})),_:1},8,["title","confirm-text","cancel-text","onAccepted","onCancelled"])):(0,o.kq)("",!0)])),((0,o.wg)(),(0,o.j4)(o.lR,{to:"#modal"},[e.showingConfirmRemoveFollower?((0,o.wg)(),(0,o.j4)(p,{key:0,title:e.$t("user_card.remove_follower_confirm_title"),"confirm-text":e.$t("user_card.remove_follower_confirm_accept_button"),"cancel-text":e.$t("user_card.remove_follower_confirm_cancel_button"),onAccepted:e.doRemoveUserFromFollowers,onCancelled:e.hideConfirmRemoveUserFromFollowers},{default:(0,o.w5)((function(){return[(0,o.Wm)(d,{keypath:"user_card.remove_follower_confirm",tag:"span"},{user:(0,o.w5)((function(){return[(0,o._)("span",{textContent:(0,r.zw)(e.user.screen_name_ui)},null,8,ue)]})),_:1})]})),_:1},8,["title","confirm-text","cancel-text","onAccepted","onCancelled"])):(0,o.kq)("",!0)]))])}]]);var _e={class:"user-note"},ke={class:"heading"},Ce={class:"buttons"},Se=["disabled"],je=["disabled"];const Fe={props:{user:Object,relationship:Object,editable:Boolean},data:function(){return{localNote:"",editing:!1,frozen:!1}},computed:{shouldShow:function(){return this.relationship.note||this.editing}},methods:{startEditing:function(){this.localNote=this.relationship.note,this.editing=!0},cancelEditing:function(){this.editing=!1},finalizeEditing:function(){var e=this;this.frozen=!0,this.$store.dispatch("editUserNote",{id:this.user.id,comment:this.localNote}).then((function(){e.frozen=!1,e.editing=!1})).catch((function(){e.frozen=!1}))}}},Ae=(0,te.Z)(Fe,[["render",function(e,t,n,s,a,u){return(0,o.wg)(),(0,o.iD)("div",_e,[(0,o._)("div",ke,[(0,o._)("span",null,(0,r.zw)(e.$t("user_card.note")),1),(0,o._)("div",Ce,[(0,o.wy)((0,o._)("button",{class:"button-default btn",onClick:t[0]||(t[0]=function(){return e.startEditing&&e.startEditing.apply(e,arguments)})},(0,r.zw)(e.$t("user_card.edit_note")),513),[[i.F8,!e.editing&&e.editable]]),(0,o.wy)((0,o._)("button",{class:"button-default btn",disabled:e.frozen,onClick:t[1]||(t[1]=function(){return e.finalizeEditing&&e.finalizeEditing.apply(e,arguments)})},(0,r.zw)(e.$t("user_card.edit_note_apply")),9,Se),[[i.F8,e.editing]]),(0,o.wy)((0,o._)("button",{class:"button-default btn",disabled:e.frozen,onClick:t[2]||(t[2]=function(){return e.cancelEditing&&e.cancelEditing.apply(e,arguments)})},(0,r.zw)(e.$t("user_card.edit_note_cancel")),9,je),[[i.F8,e.editing]])])]),(0,o.wy)((0,o._)("textarea",{"onUpdate:modelValue":t[3]||(t[3]=function(t){return e.localNote=t}),class:"note-text"},null,512),[[i.F8,e.editing],[i.nr,e.localNote]]),(0,o.wy)((0,o._)("span",{class:(0,r.C_)(["note-text",{"-blank":!e.relationship.note}])},(0,r.zw)(e.relationship.note||e.$t("user_card.note_blank")),3),[[i.F8,!e.editing]])])}]]);var Oe=n(76990),Ee=n(12061),ze=n(92820),Pe=n(4493);function Ie(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function xe(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ie(Object(n),!0).forEach((function(t){(0,M.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ie(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Y.vI.add(J.Fwd,J.qmU,J.N7g,J.Xjp,J.Xcf,J.NBC,J.TTL);const Te={props:["userId","switcher","selected","hideBio","rounded","bordered","avatarAction","onClose","hasNoteEditor"],data:function(){return{followRequestInProgress:!1,betterShadow:this.$store.state.interface.browserSupport.cssFilter,showingConfirmMute:!1,muteExpiryAmount:0,muteExpiryUnit:"minutes"}},created:function(){this.$store.dispatch("fetchUserRelationship",this.user.id)},computed:xe({user:function(){return this.$store.getters.findUser(this.userId)},relationship:function(){return this.$store.getters.relationship(this.userId)},classes:function(){return[{"-rounded-t":"top"===this.rounded,"-rounded":!0===this.rounded,"-bordered":!0===this.bordered,"-popover":!!this.onClose}]},style:function(){return{backgroundImage:["linear-gradient(to bottom, var(--profileTint), var(--profileTint))","url(".concat(this.user.cover_photo,")")].join(", ")}},isOtherUser:function(){return this.user.id!==this.$store.state.users.currentUser.id},subscribeUrl:function(){var e=new URL(this.user.statusnet_profile_url);return"".concat(e.protocol,"//").concat(e.host,"/main/ostatus")},loggedIn:function(){return this.$store.state.users.currentUser},dailyAvg:function(){var e=Math.ceil((new Date-new Date(this.user.created_at))/864e5);return Math.round(this.user.statuses_count/e)},userHighlightType:xe({get:function(){var e=this.$store.getters.mergedConfig.highlight[this.user.screen_name];return e&&e.type||"disabled"},set:function(e){var t=this.$store.getters.mergedConfig.highlight[this.user.screen_name];"disabled"!==e?this.$store.dispatch("setHighlight",{user:this.user.screen_name,color:t&&t.color||"#FFFFFF",type:e}):this.$store.dispatch("setHighlight",{user:this.user.screen_name,color:void 0})}},(0,ce.Se)(["mergedConfig"])),userHighlightColor:{get:function(){var e=this.$store.getters.mergedConfig.highlight[this.user.screen_name];return e&&e.color},set:function(e){this.$store.dispatch("setHighlight",{user:this.user.screen_name,color:e})}},visibleRole:function(){var e=this.user.rights;if(e){var t=e.admin||e.moderator,n=e.admin?"admin":"moderator";return t&&n}},hideFollowsCount:function(){return this.isOtherUser&&this.user.hide_follows_count},hideFollowersCount:function(){return this.isOtherUser&&this.user.hide_followers_count},showModerationMenu:function(){var e=this.loggedIn.privileges;return"admin"===this.loggedIn.role||e.includes("users_manage_activation_state")||e.includes("users_delete")||e.includes("users_manage_tags")},hasNote:function(){return this.relationship.note},supportsNote:function(){return"note"in this.relationship},shouldConfirmMute:function(){return this.mergedConfig.modalOnMute},muteExpiryUnits:function(){return["minutes","hours","days"]}},(0,ce.Se)(["mergedConfig"])),components:{UserAvatar:R.default,RemoteFollow:q.Z,ModerationTools:ne,AccountActions:De,ProgressButton:N.Z,FollowButton:Z.Z,Select:Oe.Z,RichContent:ze.Z,UserLink:Ee.Z,UserNote:Ae,ConfirmModal:we.Z},methods:{showConfirmMute:function(){this.showingConfirmMute=!0},hideConfirmMute:function(){this.showingConfirmMute=!1},muteUser:function(){this.shouldConfirmMute?this.showConfirmMute():this.doMuteUser()},doMuteUser:function(){this.$store.dispatch("muteUser",{id:this.user.id,expiresIn:this.shouldConfirmMute?(0,L.cC)(this.muteExpiryUnit,this.muteExpiryAmount):0}),this.hideConfirmMute()},unmuteUser:function(){this.$store.dispatch("unmuteUser",this.user.id)},subscribeUser:function(){return this.$store.dispatch("subscribeUser",this.user.id)},unsubscribeUser:function(){return this.$store.dispatch("unsubscribeUser",this.user.id)},setProfileView:function(e){this.switcher&&this.$store.commit("setProfileView",{v:e})},linkClicked:function(e){var t=e.target;"SPAN"===t.tagName&&(t=t.parentNode),"A"===t.tagName&&window.open(t.href,"_blank")},userProfileLink:function(e){return(0,Pe.Z)(e.id,e.screen_name,this.$store.state.instance.restrictedNicknames)},openProfileTab:function(){this.$store.dispatch("openSettingsModalTab","profile")},zoomAvatar:function(){var e={url:this.user.profile_image_url_original,mimetype:"image"};this.$store.dispatch("setMedia",[e]),this.$store.dispatch("setCurrentMedia",e)},mentionUser:function(){this.$store.dispatch("openPostStatusModal",{replyTo:!0,repliedUser:this.user})},onAvatarClickHandler:function(e){this.onAvatarClick&&(e.preventDefault(),this.onAvatarClick())}}},$e=(0,te.Z)(Te,[["render",function(e,t,n,M,L,R){var q=(0,o.up)("UserAvatar"),N=(0,o.up)("FAIcon"),Z=(0,o.up)("router-link"),W=(0,o.up)("RichContent"),H=(0,o.up)("AccountActions"),V=(0,o.up)("user-link"),K=(0,o.up)("Select"),G=(0,o.up)("FollowButton"),Y=(0,o.up)("ProgressButton"),J=(0,o.up)("FALayers"),Q=(0,o.up)("ModerationTools"),X=(0,o.up)("RemoteFollow"),ee=(0,o.up)("UserNote"),te=(0,o.up)("i18n-t"),ne=(0,o.up)("confirm-modal");return(0,o.wg)(),(0,o.iD)("div",{class:(0,r.C_)(["user-card",e.classes])},[(0,o._)("div",{class:(0,r.C_)([{"hide-bio":e.hideBio},"background-image"]),style:(0,r.j5)(e.style)},null,6),(0,o._)("div",{class:(0,r.C_)(e.onClose?"":e.panel-e.heading-e.flexible-e.height)},[(0,o._)("div",s,[(0,o._)("div",a,["zoom"===e.avatarAction?((0,o.wg)(),(0,o.iD)("a",{key:0,class:"user-info-avatar -link",onClick:t[0]||(t[0]=function(){return e.zoomAvatar&&e.zoomAvatar.apply(e,arguments)})},[(0,o.Wm)(q,{"better-shadow":e.betterShadow,user:e.user},null,8,["better-shadow","user"]),(0,o._)("div",u,[(0,o.Wm)(N,{class:"fa-scale-110 fa-old-padding",icon:"search-plus"})])])):"function"==typeof e.avatarAction?((0,o.wg)(),(0,o.j4)(q,{key:1,class:"user-info-avatar","better-shadow":e.betterShadow,user:e.user,onClick:e.avatarAction},null,8,["better-shadow","user","onClick"])):((0,o.wg)(),(0,o.j4)(Z,{key:2,to:e.userProfileLink(e.user)},{default:(0,o.w5)((function(){return[(0,o.Wm)(q,{"better-shadow":e.betterShadow,user:e.user},null,8,["better-shadow","user"])]})),_:1},8,["to"])),(0,o._)("div",c,[(0,o._)("div",l,[(0,o.Wm)(Z,{to:e.userProfileLink(e.user),class:"user-name"},{default:(0,o.w5)((function(){return[(0,o.Wm)(W,{title:e.user.name,html:e.user.name,emoji:e.user.emoji},null,8,["title","html","emoji"])]})),_:1},8,["to"]),!e.isOtherUser&&e.user.is_local?((0,o.wg)(),(0,o.iD)("button",{key:0,class:"button-unstyled edit-profile-button",onClick:t[1]||(t[1]=(0,i.iM)((function(){return e.openProfileTab&&e.openProfileTab.apply(e,arguments)}),["stop"]))},[(0,o.Wm)(N,{"fixed-width":"",class:"icon",icon:"edit",title:e.$t("user_card.edit_profile")},null,8,["title"])])):(0,o.kq)("",!0),e.isOtherUser&&!e.user.is_local?((0,o.wg)(),(0,o.iD)("a",{key:1,href:e.user.statusnet_profile_url,target:"_blank",class:"button-unstyled external-link-button"},[(0,o.Wm)(N,{class:"icon",icon:"external-link-alt"})],8,d)):(0,o.kq)("",!0),e.isOtherUser&&e.loggedIn?((0,o.wg)(),(0,o.j4)(H,{key:2,user:e.user,relationship:e.relationship},null,8,["user","relationship"])):(0,o.kq)("",!0),e.onClose?((0,o.wg)(),(0,o.j4)(Z,{key:3,to:e.userProfileLink(e.user),class:"button-unstyled external-link-button",onClick:e.onClose},{default:(0,o.w5)((function(){return[(0,o.Wm)(N,{class:"icon",icon:"expand-alt"})]})),_:1},8,["to","onClick"])):(0,o.kq)("",!0),e.onClose?((0,o.wg)(),(0,o.iD)("button",{key:4,class:"button-unstyled external-link-button",onClick:t[2]||(t[2]=function(){return e.onClose&&e.onClose.apply(e,arguments)})},[(0,o.Wm)(N,{class:"icon",icon:"times"})])):(0,o.kq)("",!0)]),(0,o._)("div",p,[(0,o.Wm)(V,{class:"user-screen-name",user:e.user},null,8,["user"]),e.hideBio?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)(o.HY,{key:0},[e.user.deactivated?((0,o.wg)(),(0,o.iD)("span",m,(0,r.zw)(e.$t("user_card.deactivated")),1)):(0,o.kq)("",!0),e.visibleRole?((0,o.wg)(),(0,o.iD)("span",h,(0,r.zw)(e.$t("general.role.".concat(e.visibleRole))),1)):(0,o.kq)("",!0),e.user.bot?((0,o.wg)(),(0,o.iD)("span",f,(0,r.zw)(e.$t("user_card.bot")),1)):(0,o.kq)("",!0)],64)),e.user.locked?((0,o.wg)(),(0,o.iD)("span",g,[(0,o.Wm)(N,{class:"lock-icon",icon:"lock",size:"sm"})])):(0,o.kq)("",!0),e.mergedConfig.hideUserStats||e.hideBio?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("span",v,(0,r.zw)(e.dailyAvg)+" "+(0,r.zw)(e.$t("user_card.per_day")),1))])])]),(0,o._)("div",w,[e.relationship.followed_by&&e.loggedIn&&e.isOtherUser?((0,o.wg)(),(0,o.iD)("div",b,(0,r.zw)(e.$t("user_card.follows_you")),1)):(0,o.kq)("",!0),!e.isOtherUser||!e.loggedIn&&e.switcher?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",y,["disabled"!==e.userHighlightType?(0,o.wy)(((0,o.wg)(),(0,o.iD)("input",{key:0,id:"userHighlightColorTx"+e.user.id,"onUpdate:modelValue":t[3]||(t[3]=function(t){return e.userHighlightColor=t}),class:"userHighlightText",type:"text"},null,8,D)),[[i.nr,e.userHighlightColor]]):(0,o.kq)("",!0),"disabled"!==e.userHighlightType?(0,o.wy)(((0,o.wg)(),(0,o.iD)("input",{key:1,id:"userHighlightColor"+e.user.id,"onUpdate:modelValue":t[4]||(t[4]=function(t){return e.userHighlightColor=t}),class:"userHighlightCl",type:"color"},null,8,_)),[[i.nr,e.userHighlightColor]]):(0,o.kq)("",!0),(0,o.Uk)(" "+(0,r.zw)(" ")+" "),(0,o.Wm)(K,{id:"userHighlightSel"+e.user.id,modelValue:e.userHighlightType,"onUpdate:modelValue":t[5]||(t[5]=function(t){return e.userHighlightType=t}),class:"userHighlightSel"},{default:(0,o.w5)((function(){return[(0,o._)("option",k,(0,r.zw)(e.$t("user_card.highlight.disabled")),1),(0,o._)("option",C,(0,r.zw)(e.$t("user_card.highlight.solid")),1),(0,o._)("option",S,(0,r.zw)(e.$t("user_card.highlight.striped")),1),(0,o._)("option",j,(0,r.zw)(e.$t("user_card.highlight.side")),1)]})),_:1},8,["id","modelValue"])]))]),e.loggedIn&&e.isOtherUser?((0,o.wg)(),(0,o.iD)("div",F,[(0,o._)("div",A,[(0,o.Wm)(G,{relationship:e.relationship,user:e.user},null,8,["relationship","user"]),e.relationship.following?((0,o.wg)(),(0,o.iD)(o.HY,{key:0},[e.relationship.subscribing?((0,o.wg)(),(0,o.j4)(Y,{key:1,class:"btn button-default toggled",click:e.unsubscribeUser,title:e.$t("user_card.unsubscribe")},{default:(0,o.w5)((function(){return[(0,o.Wm)(J,null,{default:(0,o.w5)((function(){return[(0,o.Wm)(N,{icon:"rss",transform:"left-5 shrink-6 up-3 rotate-20",flip:"horizontal"}),(0,o.Wm)(N,{icon:"rss",transform:"right-5 shrink-6 up-3 rotate-20"}),(0,o.Wm)(N,{icon:"bell"})]})),_:1})]})),_:1},8,["click","title"])):((0,o.wg)(),(0,o.j4)(Y,{key:0,class:"btn button-default",click:e.subscribeUser,title:e.$t("user_card.subscribe")},{default:(0,o.w5)((function(){return[(0,o.Wm)(N,{icon:"bell"})]})),_:1},8,["click","title"]))],64)):(0,o.kq)("",!0)]),(0,o._)("div",null,[e.relationship.muting?((0,o.wg)(),(0,o.iD)("button",{key:0,class:"btn button-default btn-block toggled",disabled:e.user.deactivated,onClick:t[6]||(t[6]=function(){return e.unmuteUser&&e.unmuteUser.apply(e,arguments)})},(0,r.zw)(e.$t("user_card.muted")),9,O)):((0,o.wg)(),(0,o.iD)("button",{key:1,class:"btn button-default btn-block",disabled:e.user.deactivated,onClick:t[7]||(t[7]=function(){return e.muteUser&&e.muteUser.apply(e,arguments)})},(0,r.zw)(e.$t("user_card.mute")),9,E))]),(0,o._)("div",null,[(0,o._)("button",{class:"btn button-default btn-block",disabled:e.user.deactivated,onClick:t[8]||(t[8]=function(){return e.mentionUser&&e.mentionUser.apply(e,arguments)})},(0,r.zw)(e.$t("user_card.mention")),9,z)]),e.showModerationMenu?((0,o.wg)(),(0,o.j4)(Q,{key:0,user:e.user},null,8,["user"])):(0,o.kq)("",!0)])):(0,o.kq)("",!0),!e.loggedIn&&e.user.is_local?((0,o.wg)(),(0,o.iD)("div",P,[(0,o.Wm)(X,{user:e.user},null,8,["user"])])):(0,o.kq)("",!0),e.loggedIn&&e.isOtherUser&&(e.hasNote||e.hasNoteEditor&&e.supportsNote)?((0,o.wg)(),(0,o.j4)(ee,{key:2,user:e.user,relationship:e.relationship,editable:e.hasNoteEditor},null,8,["user","relationship","editable"])):(0,o.kq)("",!0)])],2),e.hideBio?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",I,[!e.mergedConfig.hideUserStats&&e.switcher?((0,o.wg)(),(0,o.iD)("div",x,[(0,o._)("div",{class:"user-count",onClick:t[9]||(t[9]=(0,i.iM)((function(t){return e.setProfileView("statuses")}),["prevent"]))},[(0,o._)("h5",null,(0,r.zw)(e.$t("user_card.statuses")),1),(0,o._)("span",null,[(0,o.Uk)((0,r.zw)(e.user.statuses_count)+" ",1),T])]),(0,o._)("div",{class:"user-count",onClick:t[10]||(t[10]=(0,i.iM)((function(t){return e.setProfileView("friends")}),["prevent"]))},[(0,o._)("h5",null,(0,r.zw)(e.$t("user_card.followees")),1),(0,o._)("span",null,(0,r.zw)(e.hideFollowsCount?e.$t("user_card.hidden"):e.user.friends_count),1)]),(0,o._)("div",{class:"user-count",onClick:t[11]||(t[11]=(0,i.iM)((function(t){return e.setProfileView("followers")}),["prevent"]))},[(0,o._)("h5",null,(0,r.zw)(e.$t("user_card.followers")),1),(0,o._)("span",null,(0,r.zw)(e.hideFollowersCount?e.$t("user_card.hidden"):e.user.followers_count),1)])])):(0,o.kq)("",!0),e.hideBio?(0,o.kq)("",!0):((0,o.wg)(),(0,o.j4)(W,{key:1,class:"user-card-bio",html:e.user.description_html,emoji:e.user.emoji,"handle-links":!0},null,8,["html","emoji"]))])),((0,o.wg)(),(0,o.j4)(o.lR,{to:"#modal"},[e.showingConfirmMute?((0,o.wg)(),(0,o.j4)(ne,{key:0,title:e.$t("user_card.mute_confirm_title"),"confirm-text":e.$t("user_card.mute_confirm_accept_button"),"cancel-text":e.$t("user_card.mute_confirm_cancel_button"),onAccepted:e.doMuteUser,onCancelled:e.hideConfirmMute},{default:(0,o.w5)((function(){return[(0,o.Wm)(te,{keypath:"user_card.mute_confirm",tag:"div"},{user:(0,o.w5)((function(){return[(0,o._)("span",{textContent:(0,r.zw)(e.user.screen_name_ui)},null,8,$)]})),_:1}),(0,o._)("div",B,[(0,o._)("label",null,(0,r.zw)(e.$t("user_card.mute_duration_prompt")),1),(0,o.wy)((0,o._)("input",{"onUpdate:modelValue":t[12]||(t[12]=function(t){return e.muteExpiryAmount=t}),type:"number",class:"expiry-amount hide-number-spinner",min:0},null,512),[[i.nr,e.muteExpiryAmount]]),(0,o.Wm)(K,{modelValue:e.muteExpiryUnit,"onUpdate:modelValue":t[13]||(t[13]=function(t){return e.muteExpiryUnit=t}),unstyled:"true",class:"expiry-unit"},{default:(0,o.w5)((function(){return[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.muteExpiryUnits,(function(t){return(0,o.wg)(),(0,o.iD)("option",{key:t,value:t},(0,r.zw)(e.$t("time.".concat(t,"_short"),[""])),9,U)})),128))]})),_:1},8,["modelValue"])])]})),_:1},8,["title","confirm-text","cancel-text","onAccepted","onCancelled"])):(0,o.kq)("",!0)]))],2)}]])},12061:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var o=n(66252),r=n(3577),i=n(42262),s=n(4493);const a={props:{user:Object,at:{type:Boolean,default:!0}},components:{UnicodeDomainIndicator:i.Z},methods:{userProfileLink:function(e){return(0,s.Z)(e.id,e.screen_name,this.$store.state.instance.restrictedNicknames)}}},u=(0,n(83744).Z)(a,[["render",function(e,t,n,i,s,a){var u=(0,o.up)("UnicodeDomainIndicator"),c=(0,o.up)("router-link");return(0,o.wg)(),(0,o.j4)(c,{title:e.user.screen_name_ui,to:e.userProfileLink(e.user)},{default:(0,o.w5)((function(){return[(0,o.Uk)((0,r.zw)(e.at?"@":"")+(0,r.zw)(e.user.screen_name_ui),1),(0,o.Wm)(u,{user:e.user},null,8,["user"])]})),_:1},8,["title","to"])}]])},22588:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var o=n(66252);const r={name:"UserPopover",props:["userId","overlayCenters","disabled","overlayCentersSelector"],components:{UserCard:n(20392).Z,Popover:(0,o.RC)((function(){return Promise.resolve().then(n.bind(n,84535))}))},computed:{userPopoverAvatarAction:function(){return this.$store.getters.mergedConfig.userPopoverAvatarAction},userPopoverOverlay:function(){return this.$store.getters.mergedConfig.userPopoverOverlay}}},i=(0,n(83744).Z)(r,[["render",function(e,t,n,r,i,s){var a=(0,o.up)("UserCard"),u=(0,o.up)("Popover");return(0,o.wg)(),(0,o.j4)(u,{trigger:"click","popover-class":"popover-default user-popover","overlay-centers-selector":e.overlayCentersSelector||".user-info .Avatar","overlay-centers":e.overlayCenters&&e.userPopoverOverlay,disabled:e.disabled},{trigger:(0,o.w5)((function(){return[(0,o.WI)(e.$slots,"default")]})),content:(0,o.w5)((function(t){var n=t.close;return[(0,o.Wm)(a,{class:"user-popover","user-id":e.userId,"hide-bio":!0,"avatar-action":"close"==e.userPopoverAvatarAction?n:e.userPopoverAvatarAction,"on-close":n},null,8,["user-id","avatar-action","on-close"])]})),_:3},8,["overlay-centers-selector","overlay-centers","disabled"])}]])},34133:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var o=n(66252),r=["src","loop","controls","alt","title"];const i={props:["attachment","controls"],data:function(){return{blocksSuspend:!1,hasAudio:!0}},computed:{loopVideo:function(){return this.$store.getters.mergedConfig.loopVideoSilentOnly?!this.hasAudio:this.$store.getters.mergedConfig.loopVideo}},methods:{onPlaying:function(e){this.setHasAudio(e),this.loopVideo?this.$emit("play",{looping:!0}):this.$emit("play")},onPaused:function(e){this.$emit("pause")},setHasAudio:function(e){var t=e.srcElement||e.target;this.hasAudio&&(void 0!==t.webkitAudioDecodedByteCount&&t.webkitAudioDecodedByteCount>0||void 0!==t.mozHasAudio&&t.mozHasAudio||void 0!==t.audioTracks&&t.audioTracks.length>0||(this.hasAudio=!1))}}},s=(0,n(83744).Z)(i,[["render",function(e,t,n,i,s,a){return(0,o.wg)(),(0,o.iD)("video",{class:"video",preload:"metadata",src:e.attachment.url,loop:e.loopVideo,controls:e.controls,alt:e.attachment.description,title:e.attachment.description,playsinline:"",onPlaying:t[0]||(t[0]=function(){return e.onPlaying&&e.onPlaying.apply(e,arguments)}),onPause:t[1]||(t[1]=function(){return e.onPaused&&e.onPaused.apply(e,arguments)})},null,40,r)}]])},27650:(e,t,n)=>{var o={"./ar.json":[36224,7808],"./ca.json":[49394,6234],"./cs.json":[87436,7433],"./de.json":[25195,9459],"./en.json":[88797],"./eo.json":[97898,4646],"./es.json":[98559,3968],"./et.json":[13230,4451],"./eu.json":[84826,4542],"./fa.json":[52006,2953],"./fi.json":[70823,9738],"./fr.json":[61341,3746],"./ga.json":[41647,830],"./he.json":[92215,379],"./hu.json":[95028,5494],"./id.json":[62263,2513],"./it.json":[2533,1159],"./ja_easy.json":[8439,8714],"./ja_pedantic.json":[22838,325],"./ko.json":[10707,9670],"./nan-TW.json":[42101,9862],"./nb.json":[72358,7845],"./nl.json":[49922,6256],"./oc.json":[47297,617],"./pl.json":[82098,5571],"./pt.json":[94465,4047],"./ro.json":[64367,6342],"./ru.json":[73289,5964],"./sk.json":[31478,1547],"./te.json":[32781,2044],"./uk.json":[8411,5253],"./vi.json":[6294,4975],"./zh.json":[4425,5929],"./zh_Hant.json":[37644,6544]};function r(e){if(!n.o(o,e))return Promise.resolve().then((()=>{var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=o[e],r=t[0];return Promise.all(t.slice(1).map(n.e)).then((()=>n(r)))}r.keys=()=>Object.keys(o),r.id=27650,e.exports=r},31934:(e,t,n)=>{"use strict";e.exports=n.p+"static/img/pleromatan_apology.f9d5180.png"},95326:(e,t,n)=>{"use strict";e.exports=n.p+"static/img/pleromatan_apology_fox.038b0bb.png"},68789:e=>{"use strict";e.exports="data:image/png;base64,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"},43011:e=>{"use strict";e.exports="data:image/png;base64,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"}},s={};function a(e){var t=s[e];if(void 0!==t)return t.exports;var n=s[e]={id:e,loaded:!1,exports:{}};return i[e].call(n.exports,n,n.exports,a),n.loaded=!0,n.exports}a.m=i,e=[],a.O=(t,n,o,r)=>{if(!n){var i=1/0;for(l=0;l<e.length;l++){for(var[n,o,r]=e[l],s=!0,u=0;u<n.length;u++)(!1&r||i>=r)&&Object.keys(a.O).every((e=>a.O[e](n[u])))?n.splice(u--,1):(s=!1,r<i&&(i=r));if(s){e.splice(l--,1);var c=o();void 0!==c&&(t=c)}}return t}r=r||0;for(var l=e.length;l>0&&e[l-1][2]>r;l--)e[l]=e[l-1];e[l]=[n,o,r]},a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},n=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,a.t=function(e,o){if(1&o&&(e=this(e)),8&o)return e;if("object"==typeof e&&e){if(4&o&&e.__esModule)return e;if(16&o&&"function"==typeof e.then)return e}var r=Object.create(null);a.r(r);var i={};t=t||[null,n({}),n([]),n(n)];for(var s=2&o&&e;"object"==typeof s&&!~t.indexOf(s);s=n(s))Object.getOwnPropertyNames(s).forEach((t=>i[t]=()=>e[t]));return i.default=()=>e,a.d(r,i),r},a.d=(e,t)=>{for(var n in t)a.o(t,n)&&!a.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},a.f={},a.e=e=>Promise.all(Object.keys(a.f).reduce(((t,n)=>(a.f[n](e,t),t)),[])),a.u=e=>"static/js/"+({50:"emoji-annotations/en_GB-json",227:"emoji-annotations/ha-json",278:"emoji-annotations/kn-json",313:"emoji-annotations/tg-json",325:"i18n/ja_pedantic-json",346:"emoji-annotations/rw-json",379:"i18n/he-json",420:"emoji-annotations/fi-json",457:"emoji-annotations/zh-json",577:"emoji-annotations/en_001-json",617:"i18n/oc-json",625:"emoji-annotations/so-json",678:"emoji-annotations/ps-json",786:"emoji-annotations/xh-json",830:"i18n/ga-json",1012:"emoji-annotations/or-json",1044:"emoji-annotations/zh_Hant_HK-json",1056:"emoji-annotations/uz-json",1095:"emoji-annotations/pl-json",1159:"i18n/it-json",1162:"emoji-annotations/ccp-json",1236:"emoji-annotations/fil-json",1290:"emoji-annotations/ja-json",1404:"emoji-annotations/km-json",1452:"emoji-annotations/yue-json",1546:"emoji-annotations/pt_PT-json",1547:"i18n/sk-json",1553:"emoji-annotations/sl-json",1584:"emoji-annotations/to-json",1596:"emoji-annotations/da-json",1613:"emoji-annotations/mai-json",1780:"emoji-annotations/tk-json",1790:"emoji-annotations/dsb-json",1821:"emoji-annotations/fr_CA-json",1911:"emoji-annotations/mr-json",1959:"emoji-annotations/su-json",2044:"i18n/te-json",2223:"emoji-annotations/fr-json",2243:"emoji-annotations/sa-json",2342:"emoji-annotations/az-json",2350:"emoji-annotations/sk-json",2397:"emoji-annotations/kl-json",2479:"emoji-annotations/jv-json",2513:"i18n/id-json",2569:"emoji-annotations/tt-json",2599:"emoji-annotations/kok-json",2656:"emoji-annotations/ckb-json",2685:"emoji-annotations/ml-json",2699:"emoji-annotations/es_MX-json",2767:"emoji-annotations/zh_Hant-json",2861:"emoji-annotations/hr-json",2873:"emoji-annotations/kk-json",2874:"emoji-annotations/sc-json",2883:"emoji-annotations/ku-json",2953:"i18n/fa-json",2966:"emoji-annotations/ko-json",2992:"emoji-annotations/eu-json",3056:"emoji-annotations/hi_Latn-json",3241:"emoji-annotations/sv-json",3276:"emoji-annotations/et-json",3313:"emoji-annotations/es_US-json",3377:"emoji-annotations/as-json",3568:"emoji-annotations/ti-json",3687:"emoji",3746:"i18n/fr-json",3887:"emoji-annotations/sr-json",3951:"emoji-annotations/th-json",3968:"i18n/es-json",3974:"emoji-annotations/bg-json",3994:"emoji-annotations/sw_KE-json",4047:"i18n/pt-json",4209:"emoji-annotations/doi-json",4354:"emoji-annotations/si-json",4368:"emoji-annotations/sq-json",4424:"emoji-annotations/yue_Hans-json",4451:"i18n/et-json",4542:"i18n/eu-json",4571:"emoji-annotations/ga-json",4646:"i18n/eo-json",4691:"emoji-annotations/ca-json",4710:"emoji-annotations/cs-json",4718:"emoji-annotations/mn-json",4770:"emoji-annotations/lb-json",4785:"emoji-annotations/ky-json",4786:"emoji-annotations/te-json",4879:"emoji-annotations/en_CA-json",4902:"emoji-annotations/hu-json",4975:"i18n/vi-json",5041:"emoji-annotations/pt-json",5104:"emoji-annotations/pcm-json",5115:"emoji-annotations/sr_Latn_BA-json",5119:"emoji-annotations/am-json",5224:"emoji-annotations/vi-json",5253:"i18n/uk-json",5304:"emoji-annotations/ha_NE-json",5401:"emoji-annotations/mni-json",5494:"i18n/hu-json",5521:"emoji-annotations/fa-json",5548:"emoji-annotations/he-json",5571:"i18n/pl-json",5728:"emoji-annotations/en-json",5887:"emoji-annotations/rm-json",5929:"i18n/zh-json",5964:"i18n/ru-json",5968:"emoji-annotations/hi-json",6060:"emoji-annotations/sr_Cyrl_BA-json",6068:"emoji-annotations/ka-json",6116:"emoji-annotations/gd-json",6126:"emoji-annotations/gl-json",6148:"emoji-annotations/br-json",6226:"emoji-annotations/de-json",6234:"i18n/ca-json",6256:"i18n/nl-json",6272:"emoji-annotations/cy-json",6342:"i18n/ro-json",6344:"emoji-annotations/hy-json",6355:"emoji-annotations/af-json",6544:"i18n/zh_Hant-json",6701:"emoji-annotations/mi-json",6773:"emoji-annotations/nl-json",6790:"emoji-annotations/my-json",6797:"emoji-annotations/ur-json",6826:"emoji-annotations/sd-json",6831:"emoji-annotations/es-json",6869:"emoji-annotations/chr-json",6936:"emoji-annotations/ia-json",6946:"emoji-annotations/pa-json",7164:"emoji-annotations/de_CH-json",7169:"emoji-annotations/lt-json",7261:"emoji-annotations/gu-json",7300:"emoji-annotations/is-json",7303:"emoji-annotations/wo-json",7304:"emoji-annotations/be-json",7360:"emoji-annotations/ar_SA-json",7433:"i18n/cs-json",7464:"emoji-annotations/lo-json",7569:"emoji-annotations/ast-json",7585:"emoji-annotations/sw-json",7808:"i18n/ar-json",7845:"i18n/nb-json",7855:"emoji-annotations/sat-json",7879:"emoji-annotations/el-json",7897:"emoji-annotations/ta-json",8015:"emoji-annotations/hsb-json",8031:"emoji-annotations/qu-json",8134:"emoji-annotations/bs-json",8395:"emoji-annotations/ru-json",8681:"emoji-annotations/sr_Latn-json",8714:"i18n/ja_easy-json",8732:"emoji-annotations/yo-json",8873:"emoji-annotations/es_419-json",8898:"emoji-annotations/lv-json",8970:"emoji-annotations/it-json",8988:"emoji-annotations/en_IN-json",8995:"emoji-annotations/fo-json",9064:"emoji-annotations/bn-json",9319:"emoji-annotations/zu-json",9360:"emoji-annotations/en_AU-json",9377:"emoji-annotations/ne-json",9399:"emoji-annotations/mt-json",9414:"emoji-annotations/nn-json",9459:"i18n/de-json",9465:"emoji-annotations/id-json",9670:"i18n/ko-json",9738:"i18n/fi-json",9757:"emoji-annotations/ug-json",9780:"emoji-annotations/kab-json",9790:"emoji-annotations/ceb-json",9862:"i18n/nan-TW-json",9864:"emoji-annotations/ro-json",9871:"emoji-annotations/uk-json",9873:"emoji-annotations/ar-json",9895:"emoji-annotations/ig-json",9921:"emoji-annotations/mk-json",9924:"emoji-annotations/ms-json",9926:"emoji-annotations/yo_BJ-json",9978:"emoji-annotations/tr-json",9979:"emoji-annotations/no-json",9994:"emoji-annotations/pa_Arab-json"}[e]||e)+"."+{48:"b5ecdbc517423af07ca4",50:"bd687f904492facc81d1",159:"903e90c9de8ef6c67077",227:"2a08912b38925c10f970",278:"efdac8ac0cb00991ba1e",313:"9647f559a4477d7d8e96",325:"b52fa70f0bf89ae01cfb",346:"031838c5374676191131",379:"03c5d271a4034de06e6f",420:"0f254bb4b0faaba4abcc",457:"e42a28127d5c1aff6c85",577:"72d8c47269350f59aa9f",617:"4f52bf1b6e3213acc33c",625:"f75abd16637c8924c075",678:"a0d9eea5b81bcad11e64",786:"21e88c05ad3113dfc7f2",830:"3f1981817977a16f1d7e",1012:"b007c2f6f92dcc95efac",1044:"7eee03c705347a21c612",1056:"ac43f4c54d4587324a20",1095:"e9e8f1ed84dc6c169516",1159:"99a21d5c98376af17141",1162:"02836537ffe2b02291cb",1236:"4fca833f178d1b889b69",1290:"0bd51f8c40c106355b0e",1404:"9bc922b2e0faa64b4c53",1452:"15102c0ddfdf19bdfb4c",1546:"c381b13e323f91b0e6b3",1547:"d8d0eba80f94e6f55145",1553:"a40c5548da34fce6f1d0",1584:"50ac37d101caaf592c94",1596:"8d074e27df71edafc543",1613:"302386b3358f4d34f9c8",1780:"23a9a6229829921704ad",1790:"7635686ffd8d62264466",1821:"59ed6b59e2ca68707292",1911:"cb0a87d9aabf8a52161d",1959:"daff15251020cbecea7d",2044:"ce6db28261b2f824064f",2223:"da49ed0d1a6622fe1c67",2243:"21b06234a08c7469ccb4",2342:"9a32f2941d9c4d1f834c",2350:"5d96bdb4da82655d0314",2397:"87ab8661b4bdecd09faf",2479:"1c8d5ffcff22b46b6214",2513:"e5c9ee768155f88128b9",2569:"4c089389ba9983ec8ef7",2599:"116e4f72db3bfb846233",2656:"13dc83db1e15aa76051a",2685:"3f2902a84240faff1b48",2699:"ee359d4b611fdb1aeb33",2767:"9cbb765c181d443828a9",2861:"fe847ade1f18a60e513c",2873:"a20b59d47bdfe99786ad",2874:"c84c9c47d2e104c43e4c",2883:"2173ed87f8d7372ee209",2953:"a19100f6a5a9431e2adb",2966:"d175900fe48f48ce87c8",2992:"931b429f5fcc141549a5",3056:"3cb73c456f31261f1908",3241:"8b0374cbca3a77519876",3276:"c42e3f186a55ecb061cd",3313:"280bdb036dfd651d079a",3377:"34cf67edc1cecd195738",3568:"5b173bd33bb960be805b",3687:"33eab91b64f59431137d",3746:"36ef21ccb1203d3e65ae",3887:"e29a20e59a708df0c6a8",3951:"34709bae223bb9d2587c",3968:"4a302899a65e1f67d8a2",3974:"7c69c52572a7bf87e1db",3994:"f3563cbeac1c158563d5",4047:"3fc5593e030268bcd291",4209:"7841c3f3ceb4e3da0bd1",4354:"841b356da03623c10dbf",4368:"bcf154ed8a6138aa089c",4424:"cc60bb10d32fab3d8207",4451:"580b101d6bb83a8aee75",4542:"d2eab39b0427995fc314",4571:"cb3f9e613a8c445aea23",4646:"6c62eef99e850912498b",4691:"ce029e860b10b242c6a5",4710:"48d8bba230dc9fe6b3dc",4718:"764169f1168d0432640f",4770:"499c526f3a653618ea9b",4785:"310bda579c819eda9472",4786:"8a69a10f62cdf626244e",4879:"5de965778a6b8a5a4bb4",4902:"1faf52040deda872b416",4975:"703c1e731be6e857bbf3",5041:"2b2512ee44291bdb2ae7",5104:"eac3a5ad0b4b5b33289d",5115:"72933405032b81344754",5119:"94388548f7c18233fec3",5224:"f6a364b2add7f8c8bc67",5253:"003908af9b15becdd382",5304:"e4855d92aaccfdd6ba57",5401:"7db7f76ab1ce34e3683d",5494:"0487899ca7a7a8505ed8",5521:"819c7f263c8594ccf4fa",5548:"a3d7631f32182b0955a2",5571:"c963247822381b05579b",5728:"6c3947f7c49c3952084d",5887:"985d4934f386fd05a75c",5929:"5831b903c3e6d281f122",5964:"b913eb7f7e9f0c642438",5968:"04bc5f73dc2169def97e",6060:"83c7c64b9696ae2339f2",6068:"567e7b051d90a37003f3",6116:"e3d0aea3725be774ad81",6126:"ce89036f0ae72224c994",6148:"c7175423d8965ed10bae",6226:"e1443c01a191af1665e1",6234:"1eb24bc001efa3c0627f",6256:"3fb9758b10c29434b613",6272:"e09dd13da5ad56530ead",6342:"3fd9977ed1c1413059ae",6344:"2d819f7faabfeba8457f",6355:"96c988285a6a2cce6246",6464:"eb9c90a1c948cde554e9",6544:"f7e1d0f4b873c60d6396",6701:"9efe6f146ecd8987f80a",6773:"52f4b93b8fa5e22cb585",6790:"8e7dd1485813d15bba7e",6797:"983c02109444c883a18f",6826:"8f2a6a06dc3cf185f79d",6831:"f593b0dc2367a9d7fb30",6869:"e7e542ab5a74167dec10",6936:"8e8365e2bf41779e2beb",6946:"7d60d69762a108270669",7164:"b4a5891ea2f38d616ec0",7169:"ced4d5e70edc60127df6",7261:"8a899f364cf260376905",7300:"62e220c65215b034533d",7303:"e0d689e22cda0dd77e9a",7304:"f92f80669873a4100c69",7360:"4a6f4402931a867070f0",7433:"5eedbe9f7084c349fbe8",7464:"ecb06d61465a355b8157",7569:"7e4da8cb7e539c19a9b9",7585:"d5f350641b9cbcc0e126",7586:"981b2305a0019f6042a5",7808:"4916f840147303aa65fe",7845:"a54af3b1f47d576ad4aa",7855:"71e92700b2aaca8e021c",7879:"b36610f2ea16d56c2314",7897:"675cc6c7607449d4a91b",7962:"e25d40b042f8ee7389c3",8015:"438721731b4171bc6fc3",8031:"55f4df57e71076dbad9f",8134:"48ef42da1c7976cf083c",8395:"a81d0df34460837ccacc",8681:"ff27d1f455bf2afb8d70",8714:"1d5ea7e755b066ac2cdd",8732:"ea1150d6bc360dd86f2e",8873:"d81991295392b6ed83bb",8898:"5600c2eb6d59fa0aa2e2",8970:"9c1758f4fd3391f7f61a",8988:"002faa48c09121928fca",8995:"9b060e8009b3a8be4597",9060:"24271e167e0471a1a732",9064:"657aac057f36ad06c58d",9319:"e0cb7cd3890583fd0f6d",9360:"33aac9bbd887273a34b1",9377:"a0118dca2096a101b8e8",9399:"3ddf7dbc114adf90c500",9414:"7293cd5d7205681cf48c",9459:"bfa48615ac92f87ff37a",9465:"55f83c46d753b0b69330",9670:"9029d09084bb22d8b705",9738:"d1934c18f12d80493ab1",9757:"bf768bd32e9ff02b0a8a",9780:"1a2de4774f4ddc2b51dd",9790:"9db0336f168aa77ee395",9801:"99ace6b5dc657bf1a65b",9862:"7f2789d8a461e86d1734",9864:"cb62f86ce78c94d1e813",9871:"af110c8eef232638fc4d",9873:"5527466d349f2954d49b",9895:"f19fa5fe3582463ba73c",9921:"a254cabb8570419cc426",9924:"272ee4735aabc37015dd",9926:"650318c25fe4da92bad8",9978:"6462e8cfd5006cf5b6cf",9979:"22bdbbc77cc3c14ada58",9994:"5ae021308b1c5f6dd8a7"}[e]+".js",a.miniCssF=e=>"static/css/"+e+"."+{159:"1d523a00378ebd68c5b3",6464:"169260b661120cc50815",7586:"0d43f70bc6240422f179",7962:"76663e78ad5ea0bb0b90",9801:"cfe503d4c949ae0c3813"}[e]+".css",a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o={},r="pleroma_fe:",a.l=(e,t,n,i)=>{if(o[e])o[e].push(t);else{var s,u;if(void 0!==n)for(var c=document.getElementsByTagName("script"),l=0;l<c.length;l++){var d=c[l];if(d.getAttribute("src")==e||d.getAttribute("data-webpack")==r+n){s=d;break}}s||(u=!0,(s=document.createElement("script")).charset="utf-8",s.timeout=120,a.nc&&s.setAttribute("nonce",a.nc),s.setAttribute("data-webpack",r+n),s.src=e),o[e]=[t];var p=(t,n)=>{s.onerror=s.onload=null,clearTimeout(m);var r=o[e];if(delete o[e],s.parentNode&&s.parentNode.removeChild(s),r&&r.forEach((e=>e(n))),t)return t(n)},m=setTimeout(p.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=p.bind(null,s.onerror),s.onload=p.bind(null,s.onload),u&&document.head.appendChild(s)}},a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),a.p="/",(()=>{if("undefined"!=typeof document){var e={2143:0};a.f.miniCss=(t,n)=>{e[t]?n.push(e[t]):0!==e[t]&&{159:1,6464:1,7586:1,7962:1,9801:1}[t]&&n.push(e[t]=(e=>new Promise(((t,n)=>{var o=a.miniCssF(e),r=a.p+o;if(((e,t)=>{for(var n=document.getElementsByTagName("link"),o=0;o<n.length;o++){var r=(s=n[o]).getAttribute("data-href")||s.getAttribute("href");if("stylesheet"===s.rel&&(r===e||r===t))return s}var i=document.getElementsByTagName("style");for(o=0;o<i.length;o++){var s;if((r=(s=i[o]).getAttribute("data-href"))===e||r===t)return s}})(o,r))return t();((e,t,n,o,r)=>{var i=document.createElement("link");i.rel="stylesheet",i.type="text/css",i.onerror=i.onload=n=>{if(i.onerror=i.onload=null,"load"===n.type)o();else{var s=n&&("load"===n.type?"missing":n.type),a=n&&n.target&&n.target.href||t,u=new Error("Loading CSS chunk "+e+" failed.\n("+a+")");u.code="CSS_CHUNK_LOAD_FAILED",u.type=s,u.request=a,i.parentNode&&i.parentNode.removeChild(i),r(u)}},i.href=t,document.head.appendChild(i)})(e,r,0,t,n)})))(t).then((()=>{e[t]=0}),(n=>{throw delete e[t],n})))}}})(),(()=>{var e={2143:0};a.f.j=(t,n)=>{var o=a.o(e,t)?e[t]:void 0;if(0!==o)if(o)n.push(o[2]);else{var r=new Promise(((n,r)=>o=e[t]=[n,r]));n.push(o[2]=r);var i=a.p+a.u(t),s=new Error;a.l(i,(n=>{if(a.o(e,t)&&(0!==(o=e[t])&&(e[t]=void 0),o)){var r=n&&("load"===n.type?"missing":n.type),i=n&&n.target&&n.target.src;s.message="Loading chunk "+t+" failed.\n("+r+": "+i+")",s.name="ChunkLoadError",s.type=r,s.request=i,o[1](s)}}),"chunk-"+t,t)}},a.O.j=t=>0===e[t];var t=(t,n)=>{var o,r,[i,s,u]=n,c=0;if(i.some((t=>0!==e[t]))){for(o in s)a.o(s,o)&&(a.m[o]=s[o]);if(u)var l=u(a)}for(t&&t(n);c<i.length;c++)r=i[c],a.o(e,r)&&e[r]&&e[r][0](),e[r]=0;return a.O(l)},n=self.webpackChunkpleroma_fe=self.webpackChunkpleroma_fe||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})();var u=a.O(void 0,[3733],(()=>a(2514)));u=a.O(u)})();
-//# sourceMappingURL=app.7c4b412b26221a7c8572.js.map \ No newline at end of file
diff --git a/priv/static/static/js/app.7c4b412b26221a7c8572.js.map b/priv/static/static/js/app.7c4b412b26221a7c8572.js.map
deleted file mode 100644
index a21005e3c..000000000
--- a/priv/static/static/js/app.7c4b412b26221a7c8572.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/js/app.7c4b412b26221a7c8572.js","mappings":"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CA,MAED,YAAa,CACZ,MACA,KAED,aAAc,CACb,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,eAAgB,CACf,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,KAED,eAAgB,CACf,KACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,YAAa,CACZ,MACA,MAED,aAAc,CACb,MACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,aAAc,CACb,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,KAED,YAAa,CACZ,MACA,MAED,aAAc,CACb,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,aAAc,CACb,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,aAAc,CACb,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,aAAc,CACb,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,KAED,YAAa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AuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,IAAM,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBA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","sources":["webpack://pleroma_fe/webpack/runtime/chunk loaded","webpack://pleroma_fe/webpack/runtime/create fake namespace object","webpack://pleroma_fe/webpack/runtime/load script","webpack://pleroma_fe/./src/i18n/en.json","webpack://pleroma_fe/./node_modules/@kazvmoe-infra/unicode-emoji-json/annotations/ lazy ^\\.\\/.*\\.json$ chunkName: emoji-annotations/[request] namespace object","webpack://pleroma_fe/./src/components/emoji_input/suggestor.js","webpack://pleroma_fe/./src/services/html_converter/utility.service.js","webpack://pleroma_fe/./src/services/html_converter/html_line_converter.service.js","webpack://pleroma_fe/./src/components/hashtag_link/hashtag_link.vue","webpack://pleroma_fe/./src/components/hashtag_link/hashtag_link.js","webpack://pleroma_fe/./src/services/matcher/matcher.service.js","webpack://pleroma_fe/./src/components/hashtag_link/hashtag_link.vue?7c0f","webpack://pleroma_fe/./src/components/rich_content/rich_content.jsx","webpack://pleroma_fe/./src/services/html_converter/html_tree_converter.service.js","webpack://pleroma_fe/./src/components/tab_switcher/tab_switcher.jsx","webpack://pleroma_fe/./src/hocs/with_load_more/with_load_more.jsx","webpack://pleroma_fe/./src/i18n/languages.js","webpack://pleroma_fe/./src/i18n/messages.js","webpack://pleroma_fe/./src/lib/event_target_polyfill.js","webpack://pleroma_fe/./src/modules/interface.js","webpack://pleroma_fe/./src/modules/instance.js","webpack://pleroma_fe/./src/modules/statuses.js","webpack://pleroma_fe/./src/modules/lists.js","webpack://pleroma_fe/./src/services/timeline_fetcher/timeline_fetcher.service.js","webpack://pleroma_fe/./src/services/follow_request_fetcher/follow_request_fetcher.service.js","webpack://pleroma_fe/./src/services/lists_fetcher/lists_fetcher.service.js","webpack://pleroma_fe/./src/services/backend_interactor_service/backend_interactor_service.js","webpack://pleroma_fe/./src/services/window_utils/window_utils.js","webpack://pleroma_fe/./src/services/new_api/oauth.js","webpack://pleroma_fe/./src/services/push/push.js","webpack://pleroma_fe/./src/modules/users.js","webpack://pleroma_fe/./src/services/chat_utils/chat_utils.js","webpack://pleroma_fe/./src/modules/api.js","webpack://pleroma_fe/./src/modules/profileConfig.js","webpack://pleroma_fe/./src/components/update_notification/update_notification.js","webpack://pleroma_fe/./src/modules/serverSideStorage.js","webpack://pleroma_fe/./src/modules/adminSettings.js","webpack://pleroma_fe/./src/modules/shout.js","webpack://pleroma_fe/./src/modules/oauth.js","webpack://pleroma_fe/./src/modules/auth_flow.js","webpack://pleroma_fe/./src/modules/media_viewer.js","webpack://pleroma_fe/./src/modules/oauth_tokens.js","webpack://pleroma_fe/./src/modules/reports.js","webpack://pleroma_fe/./src/modules/polls.js","webpack://pleroma_fe/./src/modules/postStatus.js","webpack://pleroma_fe/./src/modules/editStatus.js","webpack://pleroma_fe/./src/modules/statusHistory.js","webpack://pleroma_fe/./src/services/chat_service/chat_service.js","webpack://pleroma_fe/./src/modules/chats.js","webpack://pleroma_fe/./src/modules/announcements.js","webpack://pleroma_fe/./src/lib/persisted_state.js","webpack://pleroma_fe/./src/lib/push_notifications_plugin.js","webpack://pleroma_fe/./src/App.vue","webpack://pleroma_fe/./src/components/user_panel/user_panel.vue","webpack://pleroma_fe/./src/components/login_form/login_form.vue","webpack://pleroma_fe/./src/components/login_form/login_form.js","webpack://pleroma_fe/./src/components/login_form/login_form.vue?7e2c","webpack://pleroma_fe/./src/components/mfa_form/recovery_form.vue","webpack://pleroma_fe/./src/services/new_api/mfa.js","webpack://pleroma_fe/./src/components/mfa_form/recovery_form.js","webpack://pleroma_fe/./src/components/mfa_form/recovery_form.vue?75db","webpack://pleroma_fe/./src/components/mfa_form/totp_form.vue","webpack://pleroma_fe/./src/components/mfa_form/totp_form.js","webpack://pleroma_fe/./src/components/mfa_form/totp_form.vue?e31f","webpack://pleroma_fe/./src/components/auth_form/auth_form.js","webpack://pleroma_fe/./src/components/user_panel/user_panel.js","webpack://pleroma_fe/./src/components/user_panel/user_panel.vue?62d1","webpack://pleroma_fe/./src/components/nav_panel/nav_panel.vue","webpack://pleroma_fe/./src/components/navigation/navigation_entry.vue","webpack://pleroma_fe/./src/components/navigation/navigation.js","webpack://pleroma_fe/./src/components/optional_router_link/optional_router_link.vue","webpack://pleroma_fe/./src/components/optional_router_link/optional_router_link.vue?aa8e","webpack://pleroma_fe/./src/components/navigation/navigation_entry.js","webpack://pleroma_fe/./src/components/navigation/navigation_entry.vue?57fe","webpack://pleroma_fe/./src/components/navigation/filter.js","webpack://pleroma_fe/./src/components/lists_menu/lists_menu_content.js","webpack://pleroma_fe/./src/components/lists_menu/lists_menu_content.vue?5439","webpack://pleroma_fe/./src/components/lists_menu/lists_menu_content.vue","webpack://pleroma_fe/./src/components/navigation/navigation_pins.vue","webpack://pleroma_fe/./src/components/navigation/navigation_pins.js","webpack://pleroma_fe/./src/components/navigation/navigation_pins.vue?9359","webpack://pleroma_fe/./src/components/nav_panel/nav_panel.js","webpack://pleroma_fe/./src/components/nav_panel/nav_panel.vue?ec9c","webpack://pleroma_fe/./src/components/instance_specific_panel/instance_specific_panel.vue","webpack://pleroma_fe/./src/components/instance_specific_panel/instance_specific_panel.js","webpack://pleroma_fe/./src/components/instance_specific_panel/instance_specific_panel.vue?b4d3","webpack://pleroma_fe/./src/components/features_panel/features_panel.vue","webpack://pleroma_fe/./src/components/features_panel/features_panel.js","webpack://pleroma_fe/./src/components/features_panel/features_panel.vue?e52c","webpack://pleroma_fe/./src/components/who_to_follow_panel/who_to_follow_panel.vue","webpack://pleroma_fe/./src/components/who_to_follow_panel/who_to_follow_panel.js","webpack://pleroma_fe/./src/components/who_to_follow_panel/who_to_follow_panel.vue?c79e","webpack://pleroma_fe/./src/components/shout_panel/shout_panel.vue","webpack://pleroma_fe/./src/components/shout_panel/shout_panel.js","webpack://pleroma_fe/./src/components/shout_panel/shout_panel.vue?452f","webpack://pleroma_fe/./src/components/media_modal/media_modal.vue","webpack://pleroma_fe/./src/components/pinch_zoom/pinch_zoom.js","webpack://pleroma_fe/./src/components/pinch_zoom/pinch_zoom.vue?6a4b","webpack://pleroma_fe/./src/components/pinch_zoom/pinch_zoom.vue","webpack://pleroma_fe/./src/services/gesture_service/gesture_service.js","webpack://pleroma_fe/./src/components/swipe_click/swipe_click.js","webpack://pleroma_fe/./src/components/swipe_click/swipe_click.vue?cb15","webpack://pleroma_fe/./src/components/swipe_click/swipe_click.vue","webpack://pleroma_fe/./src/components/media_modal/media_modal.js","webpack://pleroma_fe/./src/components/media_modal/media_modal.vue?9f8e","webpack://pleroma_fe/./src/components/side_drawer/side_drawer.vue","webpack://pleroma_fe/./src/components/side_drawer/side_drawer.js","webpack://pleroma_fe/./src/components/side_drawer/side_drawer.vue?c115","webpack://pleroma_fe/./src/components/mobile_post_status_button/mobile_post_status_button.js","webpack://pleroma_fe/./src/components/mobile_post_status_button/mobile_post_status_button.vue?cc2d","webpack://pleroma_fe/./src/components/mobile_post_status_button/mobile_post_status_button.vue","webpack://pleroma_fe/./src/components/mobile_nav/mobile_nav.vue","webpack://pleroma_fe/./src/components/mobile_nav/mobile_nav.js","webpack://pleroma_fe/./src/components/mobile_nav/mobile_nav.vue?67f1","webpack://pleroma_fe/./src/components/desktop_nav/desktop_nav.vue","webpack://pleroma_fe/./src/components/search_bar/search_bar.vue","webpack://pleroma_fe/./src/components/search_bar/search_bar.js","webpack://pleroma_fe/./src/components/search_bar/search_bar.vue?d1ca","webpack://pleroma_fe/./src/components/desktop_nav/desktop_nav.js","webpack://pleroma_fe/./src/components/desktop_nav/desktop_nav.vue?6641","webpack://pleroma_fe/./src/components/user_reporting_modal/user_reporting_modal.vue","webpack://pleroma_fe/./src/components/user_reporting_modal/user_reporting_modal.js","webpack://pleroma_fe/./src/components/user_reporting_modal/user_reporting_modal.vue?df82","webpack://pleroma_fe/./src/components/edit_status_modal/edit_status_modal.vue","webpack://pleroma_fe/./src/components/edit_status_modal/edit_status_modal.js","webpack://pleroma_fe/./src/components/edit_status_modal/edit_status_modal.vue?03f9","webpack://pleroma_fe/./src/components/post_status_modal/post_status_modal.vue","webpack://pleroma_fe/./src/components/post_status_modal/post_status_modal.js","webpack://pleroma_fe/./src/components/post_status_modal/post_status_modal.vue?9c44","webpack://pleroma_fe/./src/components/status_history_modal/status_history_modal.vue","webpack://pleroma_fe/./src/components/status_history_modal/status_history_modal.js","webpack://pleroma_fe/./src/components/status_history_modal/status_history_modal.vue?4ee0","webpack://pleroma_fe/./src/components/global_notice_list/global_notice_list.vue","webpack://pleroma_fe/./src/components/global_notice_list/global_notice_list.js","webpack://pleroma_fe/./src/components/global_notice_list/global_notice_list.vue?1667","webpack://pleroma_fe/./src/App.js","webpack://pleroma_fe/./src/App.vue?3b2b","webpack://pleroma_fe/./src/components/timeline/timeline.vue","webpack://pleroma_fe/./src/components/conversation/conversation.vue","webpack://pleroma_fe/./src/components/thread_tree/thread_tree.vue","webpack://pleroma_fe/./src/components/thread_tree/thread_tree.js","webpack://pleroma_fe/./src/components/thread_tree/thread_tree.vue?7311","webpack://pleroma_fe/./src/components/quick_filter_settings/quick_filter_settings.vue","webpack://pleroma_fe/./src/components/quick_filter_settings/quick_filter_settings.js","webpack://pleroma_fe/./src/components/quick_filter_settings/quick_filter_settings.vue?f71f","webpack://pleroma_fe/./src/components/quick_view_settings/quick_view_settings.vue","webpack://pleroma_fe/./src/components/quick_view_settings/quick_view_settings.js","webpack://pleroma_fe/./src/components/quick_view_settings/quick_view_settings.vue?4eaf","webpack://pleroma_fe/./src/components/conversation/conversation.js","webpack://pleroma_fe/./src/components/conversation/conversation.vue?6723","webpack://pleroma_fe/./src/components/timeline_menu/timeline_menu.vue","webpack://pleroma_fe/./src/components/timeline_menu/timeline_menu.js","webpack://pleroma_fe/./src/components/timeline_menu/timeline_menu.vue?96c1","webpack://pleroma_fe/./src/components/timeline/timeline.js","webpack://pleroma_fe/./src/components/timeline/timeline.vue?7060","webpack://pleroma_fe/./src/components/public_timeline/public_timeline.js","webpack://pleroma_fe/./src/components/public_timeline/public_timeline.vue?daf2","webpack://pleroma_fe/./src/components/public_timeline/public_timeline.vue","webpack://pleroma_fe/./src/components/public_and_external_timeline/public_and_external_timeline.js","webpack://pleroma_fe/./src/components/public_and_external_timeline/public_and_external_timeline.vue?9b62","webpack://pleroma_fe/./src/components/public_and_external_timeline/public_and_external_timeline.vue","webpack://pleroma_fe/./src/components/friends_timeline/friends_timeline.js","webpack://pleroma_fe/./src/components/friends_timeline/friends_timeline.vue?a3f1","webpack://pleroma_fe/./src/components/friends_timeline/friends_timeline.vue","webpack://pleroma_fe/./src/components/tag_timeline/tag_timeline.js","webpack://pleroma_fe/./src/components/tag_timeline/tag_timeline.vue?be7b","webpack://pleroma_fe/./src/components/tag_timeline/tag_timeline.vue","webpack://pleroma_fe/./src/components/bookmark_timeline/bookmark_timeline.js","webpack://pleroma_fe/./src/components/bookmark_timeline/bookmark_timeline.vue?863c","webpack://pleroma_fe/./src/components/bookmark_timeline/bookmark_timeline.vue","webpack://pleroma_fe/./src/components/conversation-page/conversation-page.js","webpack://pleroma_fe/./src/components/conversation-page/conversation-page.vue?2386","webpack://pleroma_fe/./src/components/conversation-page/conversation-page.vue","webpack://pleroma_fe/./src/components/interactions/interactions.vue","webpack://pleroma_fe/./src/components/interactions/interactions.js","webpack://pleroma_fe/./src/components/interactions/interactions.vue?3dc7","webpack://pleroma_fe/./src/components/dm_timeline/dm_timeline.js","webpack://pleroma_fe/./src/components/dm_timeline/dm_timeline.vue?fced","webpack://pleroma_fe/./src/components/dm_timeline/dm_timeline.vue","webpack://pleroma_fe/./src/components/chat_list/chat_list.vue","webpack://pleroma_fe/./src/components/chat_list_item/chat_list_item.vue","webpack://pleroma_fe/./src/components/chat_title/chat_title.js","webpack://pleroma_fe/./src/components/chat_title/chat_title.vue?723f","webpack://pleroma_fe/./src/components/chat_title/chat_title.vue","webpack://pleroma_fe/./src/components/chat_list_item/chat_list_item.js","webpack://pleroma_fe/./src/components/chat_list_item/chat_list_item.vue?9103","webpack://pleroma_fe/./src/components/chat_new/chat_new.vue","webpack://pleroma_fe/./src/components/chat_new/chat_new.js","webpack://pleroma_fe/./src/components/chat_new/chat_new.vue?e65f","webpack://pleroma_fe/./src/components/chat_list/chat_list.js","webpack://pleroma_fe/./src/components/chat_list/chat_list.vue?39cf","webpack://pleroma_fe/./src/components/chat/chat.vue","webpack://pleroma_fe/./src/components/chat_message/chat_message.vue","webpack://pleroma_fe/./src/components/chat_message_date/chat_message_date.vue","webpack://pleroma_fe/./src/components/chat_message_date/chat_message_date.vue?a1e2","webpack://pleroma_fe/./src/components/chat_message/chat_message.js","webpack://pleroma_fe/./src/components/chat_message/chat_message.vue?38f9","webpack://pleroma_fe/./src/components/chat/chat_layout_utils.js","webpack://pleroma_fe/./src/components/chat/chat.js","webpack://pleroma_fe/./src/components/chat/chat.vue?0265","webpack://pleroma_fe/./src/components/user_profile/user_profile.vue","webpack://pleroma_fe/./src/components/follow_card/follow_card.vue","webpack://pleroma_fe/./src/components/remove_follower_button/remove_follower_button.js","webpack://pleroma_fe/./src/components/remove_follower_button/remove_follower_button.vue?a06d","webpack://pleroma_fe/./src/components/remove_follower_button/remove_follower_button.vue","webpack://pleroma_fe/./src/components/follow_card/follow_card.js","webpack://pleroma_fe/./src/components/follow_card/follow_card.vue?a7d5","webpack://pleroma_fe/./src/components/user_profile/user_profile.js","webpack://pleroma_fe/./src/components/user_profile/user_profile.vue?c6a1","webpack://pleroma_fe/./src/components/search/search.vue","webpack://pleroma_fe/./src/components/search/search.js","webpack://pleroma_fe/./src/components/search/search.vue?853e","webpack://pleroma_fe/./src/components/registration/registration.vue","webpack://pleroma_fe/./src/components/registration/registration.js","webpack://pleroma_fe/./src/components/registration/registration.vue?5788","webpack://pleroma_fe/./src/components/password_reset/password_reset.vue","webpack://pleroma_fe/./src/components/password_reset/password_reset.js","webpack://pleroma_fe/./src/services/new_api/password_reset.js","webpack://pleroma_fe/./src/components/password_reset/password_reset.vue?e9fd","webpack://pleroma_fe/./src/components/follow_requests/follow_requests.vue","webpack://pleroma_fe/./src/components/follow_request_card/follow_request_card.vue","webpack://pleroma_fe/./src/components/follow_request_card/follow_request_card.js","webpack://pleroma_fe/./src/components/follow_requests/follow_requests.js","webpack://pleroma_fe/./src/components/follow_request_card/follow_request_card.vue?64bb","webpack://pleroma_fe/./src/components/follow_requests/follow_requests.vue?427b","webpack://pleroma_fe/./src/components/oauth_callback/oauth_callback.js","webpack://pleroma_fe/./src/components/oauth_callback/oauth_callback.vue?a7e1","webpack://pleroma_fe/./src/components/oauth_callback/oauth_callback.vue","webpack://pleroma_fe/./src/components/who_to_follow/who_to_follow.vue","webpack://pleroma_fe/./src/components/who_to_follow/who_to_follow.js","webpack://pleroma_fe/./src/components/who_to_follow/who_to_follow.vue?d712","webpack://pleroma_fe/./src/components/about/about.vue","webpack://pleroma_fe/./src/components/terms_of_service_panel/terms_of_service_panel.vue","webpack://pleroma_fe/./src/components/terms_of_service_panel/terms_of_service_panel.js","webpack://pleroma_fe/./src/components/terms_of_service_panel/terms_of_service_panel.vue?39d2","webpack://pleroma_fe/./src/components/staff_panel/staff_panel.vue","webpack://pleroma_fe/./src/components/staff_panel/staff_panel.js","webpack://pleroma_fe/./src/components/staff_panel/staff_panel.vue?16a1","webpack://pleroma_fe/./src/components/mrf_transparency_panel/mrf_transparency_panel.vue","webpack://pleroma_fe/./src/components/mrf_transparency_panel/mrf_transparency_panel.js","webpack://pleroma_fe/./src/components/about/about.js","webpack://pleroma_fe/./src/components/mrf_transparency_panel/mrf_transparency_panel.vue?cbb1","webpack://pleroma_fe/./src/components/about/about.vue?07c3","webpack://pleroma_fe/./src/components/remote_user_resolver/remote_user_resolver.vue","webpack://pleroma_fe/./src/components/remote_user_resolver/remote_user_resolver.js","webpack://pleroma_fe/./src/components/remote_user_resolver/remote_user_resolver.vue?ac33","webpack://pleroma_fe/./src/components/lists/lists.vue","webpack://pleroma_fe/./src/components/lists_card/lists_card.vue","webpack://pleroma_fe/./src/components/lists_card/lists_card.js","webpack://pleroma_fe/./src/components/lists/lists.js","webpack://pleroma_fe/./src/components/lists_card/lists_card.vue?16e6","webpack://pleroma_fe/./src/components/lists/lists.vue?7e21","webpack://pleroma_fe/./src/components/lists_timeline/lists_timeline.js","webpack://pleroma_fe/./src/components/lists_timeline/lists_timeline.vue?804f","webpack://pleroma_fe/./src/components/lists_timeline/lists_timeline.vue","webpack://pleroma_fe/./src/components/lists_edit/lists_edit.vue","webpack://pleroma_fe/./src/components/lists_user_search/lists_user_search.vue","webpack://pleroma_fe/./src/components/lists_user_search/lists_user_search.js","webpack://pleroma_fe/./src/components/lists_user_search/lists_user_search.vue?4447","webpack://pleroma_fe/./src/components/lists_edit/lists_edit.js","webpack://pleroma_fe/./src/components/lists_edit/lists_edit.vue?056b","webpack://pleroma_fe/./src/components/announcements_page/announcements_page.vue","webpack://pleroma_fe/./src/components/announcement/announcement.vue","webpack://pleroma_fe/./src/components/announcement_editor/announcement_editor.vue","webpack://pleroma_fe/./src/components/announcement_editor/announcement_editor.js","webpack://pleroma_fe/./src/components/announcement_editor/announcement_editor.vue?cdb9","webpack://pleroma_fe/./src/components/announcement/announcement.js","webpack://pleroma_fe/./src/components/announcements_page/announcements_page.js","webpack://pleroma_fe/./src/components/announcement/announcement.vue?a400","webpack://pleroma_fe/./src/components/announcements_page/announcements_page.vue?89ce","webpack://pleroma_fe/./src/boot/routes.js","webpack://pleroma_fe/./src/directives/body_scroll_lock.js","webpack://pleroma_fe/./src/boot/after_store.js","webpack://pleroma_fe/./src/main.js","webpack://pleroma_fe/./src/modules/config.js","webpack://pleroma_fe/./src/services/errors/errors.js","webpack://pleroma_fe/./src/modules/errors.js","webpack://pleroma_fe/./src/services/api/api.service.js","webpack://pleroma_fe/./src/services/attributes_helper/attributes_helper.service.js","webpack://pleroma_fe/./src/services/color_convert/color_convert.js","webpack://pleroma_fe/./src/services/component_utils/component_utils.js","webpack://pleroma_fe/./src/services/date_utils/date_utils.js","webpack://pleroma_fe/./src/services/desktop_notification_utils/desktop_notification_utils.js","webpack://pleroma_fe/./src/services/entity_normalizer/entity_normalizer.service.js","webpack://pleroma_fe/./src/services/favicon_service/favicon_service.js","webpack://pleroma_fe/./src/services/file_size_format/file_size_format.js","webpack://pleroma_fe/./src/services/file_type/file_type.service.js","webpack://pleroma_fe/./src/services/locale/locale.service.js","webpack://pleroma_fe/./src/services/notification_utils/notification_utils.js","webpack://pleroma_fe/./src/services/notifications_fetcher/notifications_fetcher.service.js","webpack://pleroma_fe/./src/services/offset_finder/offset_finder.service.js","webpack://pleroma_fe/./src/services/promise_interval/promise_interval.js","webpack://pleroma_fe/./src/services/status_parser/status_parser.js","webpack://pleroma_fe/./src/services/status_poster/status_poster.service.js","webpack://pleroma_fe/./src/services/style_setter/style_setter.js","webpack://pleroma_fe/./src/services/theme_data/pleromafe.js","webpack://pleroma_fe/./src/services/theme_data/theme_data.service.js","webpack://pleroma_fe/./src/services/user_highlighter/user_highlighter.js","webpack://pleroma_fe/./src/services/user_profile_link_generator/user_profile_link_generator.js","webpack://pleroma_fe/./src/components/attachment/attachment.vue","webpack://pleroma_fe/./src/components/attachment/attachment.js","webpack://pleroma_fe/./src/components/attachment/attachment.vue?6808","webpack://pleroma_fe/./src/components/avatar_list/avatar_list.vue","webpack://pleroma_fe/./src/components/avatar_list/avatar_list.js","webpack://pleroma_fe/./src/components/avatar_list/avatar_list.vue?171c","webpack://pleroma_fe/./src/components/basic_user_card/basic_user_card.vue","webpack://pleroma_fe/./src/components/basic_user_card/basic_user_card.js","webpack://pleroma_fe/./src/components/basic_user_card/basic_user_card.vue?95ff","webpack://pleroma_fe/./src/components/checkbox/checkbox.vue","webpack://pleroma_fe/./src/components/checkbox/checkbox.vue?4d95","webpack://pleroma_fe/./src/components/confirm_modal/confirm_modal.js","webpack://pleroma_fe/./src/components/confirm_modal/confirm_modal.vue?dff7","webpack://pleroma_fe/./src/components/confirm_modal/confirm_modal.vue","webpack://pleroma_fe/./src/components/dialog_modal/dialog_modal.vue","webpack://pleroma_fe/./src/components/dialog_modal/dialog_modal.js","webpack://pleroma_fe/./src/components/dialog_modal/dialog_modal.vue?60df","webpack://pleroma_fe/./src/components/emoji_input/emoji_input.vue","webpack://pleroma_fe/./src/services/completion/completion.js","webpack://pleroma_fe/./src/components/screen_reader_notice/screen_reader_notice.js","webpack://pleroma_fe/./src/components/screen_reader_notice/screen_reader_notice.vue?a18c","webpack://pleroma_fe/./src/components/screen_reader_notice/screen_reader_notice.vue","webpack://pleroma_fe/./src/components/emoji_input/emoji_input.js","webpack://pleroma_fe/./src/components/emoji_input/emoji_input.vue?cc95","webpack://pleroma_fe/./src/components/emoji_picker/emoji_picker.vue","webpack://pleroma_fe/./src/components/emoji_picker/emoji_picker.js","webpack://pleroma_fe/./src/components/emoji_picker/emoji_picker.vue?6411","webpack://pleroma_fe/./src/services/ruffle_service/ruffle_service.js","webpack://pleroma_fe/./src/components/flash/flash.vue","webpack://pleroma_fe/./src/components/flash/flash.js","webpack://pleroma_fe/./src/components/flash/flash.vue?8f01","webpack://pleroma_fe/./src/services/follow_manipulate/follow_manipulate.js","webpack://pleroma_fe/./src/components/follow_button/follow_button.js","webpack://pleroma_fe/./src/components/follow_button/follow_button.vue?fbc0","webpack://pleroma_fe/./src/components/follow_button/follow_button.vue","webpack://pleroma_fe/./src/components/gallery/gallery.vue","webpack://pleroma_fe/./src/components/gallery/gallery.js","webpack://pleroma_fe/./src/components/gallery/gallery.vue?c41d","webpack://pleroma_fe/./src/components/interface_language_switcher/interface_language_switcher.vue","webpack://pleroma_fe/./src/components/interface_language_switcher/interface_language_switcher.vue?f2c7","webpack://pleroma_fe/./src/components/link-preview/link-preview.vue","webpack://pleroma_fe/./src/components/link-preview/link-preview.js","webpack://pleroma_fe/./src/components/link-preview/link-preview.vue?5c9b","webpack://pleroma_fe/./src/components/list/list.vue","webpack://pleroma_fe/./src/components/list/list.vue?b52f","webpack://pleroma_fe/./src/components/media_upload/media_upload.js","webpack://pleroma_fe/./src/components/media_upload/media_upload.vue?73d1","webpack://pleroma_fe/./src/components/media_upload/media_upload.vue","webpack://pleroma_fe/./src/components/mention_link/mention_link.vue","webpack://pleroma_fe/./src/components/mention_link/mention_link.js","webpack://pleroma_fe/./src/components/mention_link/mention_link.vue?f0cb","webpack://pleroma_fe/./src/components/mentions_line/mentions_line.vue","webpack://pleroma_fe/./src/components/mentions_line/mentions_line.js","webpack://pleroma_fe/./src/components/mentions_line/mentions_line.vue?e8e7","webpack://pleroma_fe/./src/components/modal/modal.vue","webpack://pleroma_fe/./src/components/modal/modal.vue?8c58","webpack://pleroma_fe/./src/components/notifications/notifications.vue","webpack://pleroma_fe/./src/components/notification/notification.vue","webpack://pleroma_fe/./src/components/report/report.vue","webpack://pleroma_fe/./src/components/report/report.js","webpack://pleroma_fe/./src/components/report/report.vue?5c84","webpack://pleroma_fe/./src/components/notification/notification.js","webpack://pleroma_fe/./src/components/notification/notification.vue?17c8","webpack://pleroma_fe/./src/components/notifications/notification_filters.vue","webpack://pleroma_fe/./src/components/notifications/notification_filters.vue?4a98","webpack://pleroma_fe/./src/components/notifications/notifications.js","webpack://pleroma_fe/./src/components/notifications/notifications.vue?770b","webpack://pleroma_fe/./src/components/panel_loading/panel_loading.vue","webpack://pleroma_fe/./src/components/panel_loading/panel_loading.vue?50c2","webpack://pleroma_fe/./src/components/popover/popover.js","webpack://pleroma_fe/./src/components/popover/popover.vue?237b","webpack://pleroma_fe/./src/components/popover/popover.vue","webpack://pleroma_fe/./src/components/post_status_form/post_status_form.vue","webpack://pleroma_fe/./src/components/poll/poll_form.vue","webpack://pleroma_fe/./src/components/poll/poll_form.js","webpack://pleroma_fe/./src/components/poll/poll_form.vue?5434","webpack://pleroma_fe/./src/components/post_status_form/post_status_form.js","webpack://pleroma_fe/./src/components/post_status_form/post_status_form.vue?b98e","webpack://pleroma_fe/./src/components/progress_button/progress_button.vue","webpack://pleroma_fe/./src/components/progress_button/progress_button.vue?2d10","webpack://pleroma_fe/./src/components/remote_follow/remote_follow.vue","webpack://pleroma_fe/./src/components/remote_follow/remote_follow.js","webpack://pleroma_fe/./src/components/remote_follow/remote_follow.vue?188a","webpack://pleroma_fe/./src/components/scope_selector/scope_selector.vue","webpack://pleroma_fe/./src/components/scope_selector/scope_selector.js","webpack://pleroma_fe/./src/components/scope_selector/scope_selector.vue?cbff","webpack://pleroma_fe/./src/components/select/select.js","webpack://pleroma_fe/./src/components/select/select.vue?fa00","webpack://pleroma_fe/./src/components/select/select.vue","webpack://pleroma_fe/./src/components/status/status.vue","webpack://pleroma_fe/./src/components/reply_button/reply_button.vue","webpack://pleroma_fe/./src/components/reply_button/reply_button.js","webpack://pleroma_fe/./src/components/reply_button/reply_button.vue?f8cc","webpack://pleroma_fe/./src/components/favorite_button/favorite_button.vue","webpack://pleroma_fe/./src/components/favorite_button/favorite_button.js","webpack://pleroma_fe/./src/components/favorite_button/favorite_button.vue?4c13","webpack://pleroma_fe/./src/components/react_button/react_button.vue","webpack://pleroma_fe/./src/components/react_button/react_button.js","webpack://pleroma_fe/./src/components/react_button/react_button.vue?64d4","webpack://pleroma_fe/./src/components/retweet_button/retweet_button.vue","webpack://pleroma_fe/./src/components/retweet_button/retweet_button.js","webpack://pleroma_fe/./src/components/retweet_button/retweet_button.vue?774a","webpack://pleroma_fe/./src/components/extra_buttons/extra_buttons.vue","webpack://pleroma_fe/./src/components/extra_buttons/extra_buttons.js","webpack://pleroma_fe/./src/components/extra_buttons/extra_buttons.vue?2a14","webpack://pleroma_fe/./src/components/status_popover/status_popover.vue","webpack://pleroma_fe/./src/components/status_popover/status_popover.js","webpack://pleroma_fe/./src/components/status_popover/status_popover.vue?2f31","webpack://pleroma_fe/./src/components/user_list_popover/user_list_popover.vue","webpack://pleroma_fe/./src/components/user_list_popover/user_list_popover.js","webpack://pleroma_fe/./src/components/user_list_popover/user_list_popover.vue?32eb","webpack://pleroma_fe/./src/components/emoji_reactions/emoji_reactions.vue","webpack://pleroma_fe/./src/components/emoji_reactions/emoji_reactions.js","webpack://pleroma_fe/./src/components/emoji_reactions/emoji_reactions.vue?be26","webpack://pleroma_fe/./src/components/status/status.js","webpack://pleroma_fe/./src/components/status/status.vue?f274","webpack://pleroma_fe/./src/components/status_content/status_content.vue","webpack://pleroma_fe/./src/components/poll/poll.vue","webpack://pleroma_fe/./src/components/poll/poll.js","webpack://pleroma_fe/./src/components/poll/poll.vue?09ad","webpack://pleroma_fe/./src/components/status_body/status_body.vue","webpack://pleroma_fe/./src/components/status_body/status_body.js","webpack://pleroma_fe/./src/components/status_body/status_body.vue?a029","webpack://pleroma_fe/./src/components/status_content/status_content.js","webpack://pleroma_fe/./src/components/status_content/status_content.vue?5b7b","webpack://pleroma_fe/./src/components/still-image/still-image.vue","webpack://pleroma_fe/./src/components/still-image/still-image.js","webpack://pleroma_fe/./src/components/still-image/still-image.vue?7a8d","webpack://pleroma_fe/./src/components/timeago/timeago.vue","webpack://pleroma_fe/./src/components/timeago/timeago.vue?3167","webpack://pleroma_fe/./src/components/unicode_domain_indicator/unicode_domain_indicator.vue","webpack://pleroma_fe/./src/components/unicode_domain_indicator/unicode_domain_indicator.vue?760a","webpack://pleroma_fe/./src/components/user_avatar/user_avatar.js","webpack://pleroma_fe/./src/components/user_avatar/user_avatar.vue?84fc","webpack://pleroma_fe/./src/components/user_avatar/user_avatar.vue","webpack://pleroma_fe/./src/components/user_card/user_card.vue","webpack://pleroma_fe/./src/components/moderation_tools/moderation_tools.vue","webpack://pleroma_fe/./src/components/moderation_tools/moderation_tools.js","webpack://pleroma_fe/./src/components/moderation_tools/moderation_tools.vue?98d7","webpack://pleroma_fe/./src/components/account_actions/account_actions.vue","webpack://pleroma_fe/./src/components/user_list_menu/user_list_menu.vue","webpack://pleroma_fe/./src/components/user_list_menu/user_list_menu.js","webpack://pleroma_fe/./src/components/user_list_menu/user_list_menu.vue?e3cb","webpack://pleroma_fe/./src/components/account_actions/account_actions.js","webpack://pleroma_fe/./src/components/account_actions/account_actions.vue?26a0","webpack://pleroma_fe/./src/components/user_note/user_note.vue","webpack://pleroma_fe/./src/components/user_note/user_note.js","webpack://pleroma_fe/./src/components/user_note/user_note.vue?302a","webpack://pleroma_fe/./src/components/user_card/user_card.js","webpack://pleroma_fe/./src/components/user_card/user_card.vue?bb36","webpack://pleroma_fe/./src/components/user_link/user_link.vue","webpack://pleroma_fe/./src/components/user_link/user_link.vue?e5f2","webpack://pleroma_fe/./src/components/user_popover/user_popover.js","webpack://pleroma_fe/./src/components/user_popover/user_popover.vue?dfdb","webpack://pleroma_fe/./src/components/user_popover/user_popover.vue","webpack://pleroma_fe/./src/components/video_attachment/video_attachment.js","webpack://pleroma_fe/./src/components/video_attachment/video_attachment.vue?da03","webpack://pleroma_fe/./src/components/video_attachment/video_attachment.vue","webpack://pleroma_fe/./src/i18n/ lazy ^\\.\\/.*\\.json$ include: \\.json$ chunkName: i18n/[request] namespace object","webpack://pleroma_fe/webpack/bootstrap","webpack://pleroma_fe/webpack/runtime/compat get default export","webpack://pleroma_fe/webpack/runtime/define property getters","webpack://pleroma_fe/webpack/runtime/ensure chunk","webpack://pleroma_fe/webpack/runtime/get javascript chunk filename","webpack://pleroma_fe/webpack/runtime/get mini-css chunk filename","webpack://pleroma_fe/webpack/runtime/global","webpack://pleroma_fe/webpack/runtime/hasOwnProperty shorthand","webpack://pleroma_fe/webpack/runtime/make namespace object","webpack://pleroma_fe/webpack/runtime/node module decorator","webpack://pleroma_fe/webpack/runtime/publicPath","webpack://pleroma_fe/webpack/runtime/css loading","webpack://pleroma_fe/webpack/runtime/jsonp chunk loading","webpack://pleroma_fe/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"pleroma_fe:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t};\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","export default {\n \"about\": {\n \"mrf\": {\n \"federation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Federation\"])},\n \"keyword\": {\n \"keyword_policies\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keyword policies\"])},\n \"ftl_removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Removal from \\\"The Whole Known Network\\\" Timeline\"])},\n \"reject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reject\"])},\n \"replace\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Replace\"])},\n \"is_replaced_by\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"→\"])}\n },\n \"mrf_policies\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enabled MRF policies\"])},\n \"mrf_policies_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"MRF policies manipulate the federation behaviour of the instance. The following policies are enabled:\"])},\n \"simple\": {\n \"simple_policies\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Instance-specific policies\"])},\n \"instance\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Instance\"])},\n \"reason\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reason\"])},\n \"not_applicable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"N/A\"])},\n \"accept\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Accept\"])},\n \"accept_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This instance only accepts messages from the following instances:\"])},\n \"reject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reject\"])},\n \"reject_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This instance will not accept messages from the following instances:\"])},\n \"quarantine\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Quarantine\"])},\n \"quarantine_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This instance will send only public posts to the following instances:\"])},\n \"ftl_removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Removal from \\\"Known Network\\\" Timeline\"])},\n \"ftl_removal_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This instance removes these instances from \\\"Known Network\\\" timeline:\"])},\n \"media_removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Media Removal\"])},\n \"media_removal_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This instance removes media from posts on the following instances:\"])},\n \"media_nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Media force-set as sensitive\"])},\n \"media_nsfw_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This instance forces media to be set sensitive in posts on the following instances:\"])}\n }\n },\n \"staff\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Staff\"])}\n },\n \"announcements\": {\n \"page_header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Announcements\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Announcement\"])},\n \"mark_as_read_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mark as read\"])},\n \"post_form_header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Post announcement\"])},\n \"post_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Type your announcement content here...\"])},\n \"post_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Post\"])},\n \"post_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Error: \", _interpolate(_named(\"error\"))])},\n \"close_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Close\"])},\n \"delete_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete\"])},\n \"start_time_prompt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Start time: \"])},\n \"end_time_prompt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"End time: \"])},\n \"all_day_prompt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This is an all-day event\"])},\n \"published_time_display\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Published at \", _interpolate(_named(\"time\"))])},\n \"start_time_display\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Starts at \", _interpolate(_named(\"time\"))])},\n \"end_time_display\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Ends at \", _interpolate(_named(\"time\"))])},\n \"edit_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit\"])},\n \"submit_edit_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Submit\"])},\n \"cancel_edit_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cancel\"])},\n \"inactive_message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This announcement is inactive\"])}\n },\n \"shoutbox\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Shoutbox\"])}\n },\n \"domain_mute_card\": {\n \"mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mute\"])},\n \"mute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Muting…\"])},\n \"unmute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unmute\"])},\n \"unmute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unmuting…\"])}\n },\n \"exporter\": {\n \"export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Export\"])},\n \"processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Processing, you'll soon be asked to download your file\"])}\n },\n \"features_panel\": {\n \"shout\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Shoutbox\"])},\n \"pleroma_chat_messages\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pleroma Chat\"])},\n \"gopher\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gopher\"])},\n \"media_proxy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Media proxy\"])},\n \"scope_options\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Scope options\"])},\n \"text_limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Text limit\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Features\"])},\n \"who_to_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Who to follow\"])},\n \"upload_limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Upload limit\"])}\n },\n \"finder\": {\n \"error_fetching_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error fetching user\"])},\n \"find_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Find user\"])}\n },\n \"general\": {\n \"apply\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Apply\"])},\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Submit\"])},\n \"more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"More\"])},\n \"loading\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Loading…\"])},\n \"generic_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"An error occured\"])},\n \"generic_error_message\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"An error occured: \", _interpolate(_list(0))])},\n \"error_retry\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Please try again\"])},\n \"retry\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Try again\"])},\n \"optional\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"optional\"])},\n \"show_more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show more\"])},\n \"show_less\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show less\"])},\n \"never_show_again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Never show again\"])},\n \"dismiss\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dismiss\"])},\n \"cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cancel\"])},\n \"disable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Disable\"])},\n \"enable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enable\"])},\n \"confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirm\"])},\n \"verify\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verify\"])},\n \"close\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Close\"])},\n \"undo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Undo\"])},\n \"yes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Yes\"])},\n \"no\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No\"])},\n \"peek\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Peek\"])},\n \"scroll_to_top\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Scroll to top\"])},\n \"role\": {\n \"admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Moderator\"])}\n },\n \"unpin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unpin item\"])},\n \"pin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pin item\"])},\n \"flash_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Click to show Flash content using Ruffle (Experimental, may not work).\"])},\n \"flash_security\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Note that this can be potentially dangerous since Flash content is still arbitrary code.\"])},\n \"flash_fail\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Failed to load flash content, see console for details.\"])},\n \"scope_in_timeline\": {\n \"direct\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Direct\"])},\n \"private\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Followers-only\"])},\n \"public\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Public\"])},\n \"unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unlisted\"])}\n }\n },\n \"image_cropper\": {\n \"crop_picture\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Crop picture\"])},\n \"save\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Save\"])},\n \"save_without_cropping\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Save without cropping\"])},\n \"cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cancel\"])}\n },\n \"importer\": {\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Submit\"])},\n \"success\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Imported successfully.\"])},\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"An error occured while importing this file.\"])}\n },\n \"login\": {\n \"login\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Log in\"])},\n \"description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Log in with OAuth\"])},\n \"logout\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Log out\"])},\n \"logout_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Logout confirmation\"])},\n \"logout_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do you really want to logout?\"])},\n \"logout_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Logout\"])},\n \"logout_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do not logout\"])},\n \"password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password\"])},\n \"placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"e.g. lain\"])},\n \"register\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Register\"])},\n \"username\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Username\"])},\n \"hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Log in to join the discussion\"])},\n \"authentication_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Authentication code\"])},\n \"enter_recovery_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enter a recovery code\"])},\n \"enter_two_factor_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enter a two-factor code\"])},\n \"recovery_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Recovery code\"])},\n \"heading\": {\n \"totp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Two-factor authentication\"])},\n \"recovery\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Two-factor recovery\"])}\n }\n },\n \"media_modal\": {\n \"previous\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Previous\"])},\n \"next\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Next\"])},\n \"counter\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"current\")), \" / \", _interpolate(_named(\"total\"))])},\n \"hide\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Close media viewer\"])}\n },\n \"nav\": {\n \"about\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"About\"])},\n \"administration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration\"])},\n \"back\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Back\"])},\n \"friend_requests\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Follow requests\"])},\n \"mentions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mentions\"])},\n \"interactions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Interactions\"])},\n \"dms\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Direct messages\"])},\n \"public_tl\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Public timeline\"])},\n \"timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Timeline\"])},\n \"home_timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Home timeline\"])},\n \"twkn\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Known Network\"])},\n \"bookmarks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bookmarks\"])},\n \"user_search\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User Search\"])},\n \"search\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Search\"])},\n \"search_close\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Close search bar\"])},\n \"who_to_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Who to follow\"])},\n \"preferences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Preferences\"])},\n \"timelines\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Timelines\"])},\n \"chats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Chats\"])},\n \"lists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lists\"])},\n \"edit_nav_mobile\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Customize navigation bar\"])},\n \"edit_pinned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit pinned items\"])},\n \"edit_finish\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Done editing\"])},\n \"mobile_sidebar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Toggle mobile sidebar\"])},\n \"mobile_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Open notifications\"])},\n \"mobile_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Open notifications (there are unread ones)\"])},\n \"mobile_notifications_close\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Close notifications\"])},\n \"announcements\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Announcements\"])}\n },\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unknown status, searching for it…\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Error fetching notifications: \", _interpolate(_list(0))])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"favorited your status\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"followed you\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wants to follow you\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Load older notifications\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notifications\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Read!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"repeated your status\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No more notifications\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"migrated to\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"reacted with \", _interpolate(_list(0))])},\n \"submitted_report\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"submitted a report\"])},\n \"poll_ended\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"poll has ended\"])}\n },\n \"polls\": {\n \"add_poll\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add poll\"])},\n \"add_option\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add option\"])},\n \"option\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Option\"])},\n \"votes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"votes\"])},\n \"people_voted_count\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"count\")), \" person voted\"]), _normalize([_interpolate(_named(\"count\")), \" people voted\"])])},\n \"votes_count\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"count\")), \" vote\"]), _normalize([_interpolate(_named(\"count\")), \" votes\"])])},\n \"vote\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vote\"])},\n \"type\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Poll type\"])},\n \"single_choice\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Single choice\"])},\n \"multiple_choices\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Multiple choices\"])},\n \"expiry\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Poll age\"])},\n \"expires_in\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Poll ends in \", _interpolate(_list(0))])},\n \"expired\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Poll ended \", _interpolate(_list(0)), \" ago\"])},\n \"not_enough_options\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Too few unique options in poll\"])}\n },\n \"emoji\": {\n \"stickers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Stickers\"])},\n \"emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Emoji\"])},\n \"keep_open\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keep picker open\"])},\n \"search_emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Search for an emoji\"])},\n \"add_emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Insert emoji\"])},\n \"custom\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Custom emoji\"])},\n \"unpacked\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unpacked emoji\"])},\n \"unicode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unicode emoji\"])},\n \"unicode_groups\": {\n \"activities\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activities\"])},\n \"animals-and-nature\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Animals & Nature\"])},\n \"flags\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Flags\"])},\n \"food-and-drink\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Food & Drink\"])},\n \"objects\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Objects\"])},\n \"people-and-body\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"People & Body\"])},\n \"smileys-and-emotion\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Smileys & Emotion\"])},\n \"symbols\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Symbols\"])},\n \"travel-and-places\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Travel & Places\"])}\n },\n \"load_all_hint\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Loaded first \", _interpolate(_named(\"saneAmount\")), \" emoji, loading all emoji may cause performance issues.\"])},\n \"load_all\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Loading all \", _interpolate(_named(\"emojiAmount\")), \" emoji\"])},\n \"regional_indicator\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Regional indicator \", _interpolate(_named(\"letter\"))])}\n },\n \"errors\": {\n \"storage_unavailable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pleroma could not access browser storage. Your login or your local settings won't be saved and you might encounter unexpected issues. Try enabling cookies.\"])}\n },\n \"interactions\": {\n \"favs_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Repeats and favorites\"])},\n \"follows\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"New follows\"])},\n \"emoji_reactions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Emoji Reactions\"])},\n \"reports\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reports\"])},\n \"moves\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User migrates\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Load older interactions\"])}\n },\n \"post_status\": {\n \"edit_status\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit status\"])},\n \"new_status\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Post new status\"])},\n \"reply_option\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reply to this status\"])},\n \"quote_option\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Quote this status\"])},\n \"account_not_locked_warning\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Your account is not \", _interpolate(_list(0)), \". Anyone can follow you to view your follower-only posts.\"])},\n \"account_not_locked_warning_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"locked\"])},\n \"attachments_sensitive\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mark attachments as sensitive\"])},\n \"media_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Media description\"])},\n \"content_type\": {\n \"text/plain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Plain text\"])},\n \"text/html\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"HTML\"])},\n \"text/markdown\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Markdown\"])},\n \"text/bbcode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"BBCode\"])}\n },\n \"content_type_selection\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Post format\"])},\n \"content_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Subject (optional)\"])},\n \"default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Just landed in L.A.\"])},\n \"direct_warning_to_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This post will be visible to all the mentioned users.\"])},\n \"direct_warning_to_first_only\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This post will only be visible to the mentioned users at the beginning of the message.\"])},\n \"edit_remote_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Other remote instances may not support editing and unable to receive the latest version of your post.\"])},\n \"edit_unsupported_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pleroma does not support editing mentions or polls.\"])},\n \"posting\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Posting\"])},\n \"post\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Post\"])},\n \"preview\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Preview\"])},\n \"preview_empty\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Empty\"])},\n \"empty_status_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Can't post an empty status with no files\"])},\n \"media_description_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Failed to update media, try again\"])},\n \"scope_notice\": {\n \"public\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This post will be visible to everyone\"])},\n \"private\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This post will be visible to your followers only\"])},\n \"unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This post will not be visible in Public Timeline and The Whole Known Network\"])}\n },\n \"scope_notice_dismiss\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Close this notice\"])},\n \"scope\": {\n \"direct\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Direct - post to mentioned users only\"])},\n \"private\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Followers-only - post to followers only\"])},\n \"public\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Public - post to public timelines\"])},\n \"unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unlisted - do not post to public timelines\"])}\n }\n },\n \"registration\": {\n \"bio_optional\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bio (optional)\"])},\n \"email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email\"])},\n \"email_optional\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email (optional)\"])},\n \"fullname\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Display name\"])},\n \"password_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password confirmation\"])},\n \"registration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registration\"])},\n \"token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invite token\"])},\n \"captcha\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"CAPTCHA\"])},\n \"new_captcha\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Click the image to get a new captcha\"])},\n \"username_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"e.g. lain\"])},\n \"fullname_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"e.g. Lain Iwakura\"])},\n \"bio_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"e.g.\\nHi, I'm Lain.\\nI’m an anime girl living in suburban Japan. You may know me from the Wired.\"])},\n \"reason\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reason to register\"])},\n \"reason_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This instance approves registrations manually.\\nLet the administration know why you want to register.\"])},\n \"register\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Register\"])},\n \"validations\": {\n \"username_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"cannot be left blank\"])},\n \"fullname_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"cannot be left blank\"])},\n \"email_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"cannot be left blank\"])},\n \"password_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"cannot be left blank\"])},\n \"password_confirmation_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"cannot be left blank\"])},\n \"password_confirmation_match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"should be the same as password\"])},\n \"birthday_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"cannot be left blank\"])},\n \"birthday_min_age\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"must be on or before \", _interpolate(_named(\"date\"))])}\n },\n \"email_language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"In which language do you want to receive emails from the server?\"])},\n \"birthday\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Birthday:\"])},\n \"birthday_optional\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Birthday (optional):\"])}\n },\n \"remote_user_resolver\": {\n \"remote_user_resolver\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remote user resolver\"])},\n \"searching_for\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Searching for\"])},\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Not found.\"])}\n },\n \"report\": {\n \"reporter\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reporter:\"])},\n \"reported_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reported user:\"])},\n \"reported_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reported statuses:\"])},\n \"notes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notes:\"])},\n \"state\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"State:\"])},\n \"state_open\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Open\"])},\n \"state_closed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Closed\"])},\n \"state_resolved\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Resolved\"])}\n },\n \"selectable_list\": {\n \"select_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Select all\"])}\n },\n \"settings\": {\n \"add_language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add fallback language\"])},\n \"remove_language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove\"])},\n \"primary_language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Primary language:\"])},\n \"fallback_language\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Fallback language \", _interpolate(_named(\"index\")), \":\"])},\n \"app_name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"App name\"])},\n \"expert_mode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show advanced\"])},\n \"save\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Save changes\"])},\n \"security\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Security\"])},\n \"setting_changed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Setting is different from default\"])},\n \"setting_server_side\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This setting is tied to your profile and affects all sessions and clients\"])},\n \"enter_current_password_to_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enter your current password to confirm your identity\"])},\n \"post_look_feel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Posts Look & Feel\"])},\n \"mention_links\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mention links\"])},\n \"mfa\": {\n \"otp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OTP\"])},\n \"setup_otp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Setup OTP\"])},\n \"wait_pre_setup_otp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"presetting OTP\"])},\n \"confirm_and_enable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirm & enable OTP\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Two-factor Authentication\"])},\n \"generate_new_recovery_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Generate new recovery codes\"])},\n \"warning_of_generate_new_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"When you generate new recovery codes, your old codes won’t work anymore.\"])},\n \"recovery_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Recovery codes.\"])},\n \"waiting_a_recovery_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Receiving backup codes…\"])},\n \"recovery_codes_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Write the codes down or save them somewhere secure - otherwise you won't see them again. If you lose access to your 2FA app and recovery codes you'll be locked out of your account.\"])},\n \"authentication_methods\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Authentication methods\"])},\n \"scan\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Scan\"])},\n \"desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Using your two-factor app, scan this QR code or enter text key:\"])},\n \"secret_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Key\"])}\n },\n \"verify\": {\n \"desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"To enable two-factor authentication, enter the code from your two-factor app:\"])}\n }\n },\n \"lists_navigation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show lists in navigation\"])},\n \"allow_following_move\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Allow auto-follow when following account moves\"])},\n \"attachmentRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Attachments\"])},\n \"attachments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Attachments\"])},\n \"avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avatar\"])},\n \"avatarAltRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avatars (notifications)\"])},\n \"avatarRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avatars\"])},\n \"background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Background\"])},\n \"bio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bio\"])},\n \"email_language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Language for receiving emails from the server\"])},\n \"block_export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Block export\"])},\n \"block_export_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Export your blocks to a csv file\"])},\n \"block_import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Block import\"])},\n \"block_import_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error importing blocks\"])},\n \"blocks_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Blocks imported! Processing them will take a while.\"])},\n \"mute_export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mute export\"])},\n \"mute_export_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Export your mutes to a csv file\"])},\n \"mute_import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mute import\"])},\n \"mute_import_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error importing mutes\"])},\n \"mutes_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mutes imported! Processing them will take a while.\"])},\n \"import_mutes_from_a_csv_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Import mutes from a csv file\"])},\n \"account_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Account backup\"])},\n \"account_backup_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This allows you to download an archive of your account information and your posts, but they cannot yet be imported into a Pleroma account.\"])},\n \"account_backup_table_head\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Backup\"])},\n \"download_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Download\"])},\n \"backup_not_ready\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This backup is not ready yet.\"])},\n \"backup_running\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([\"This backup is in progress, processed \", _interpolate(_named(\"number\")), \" record.\"]), _normalize([\"This backup is in progress, processed \", _interpolate(_named(\"number\")), \" records.\"])])},\n \"backup_failed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This backup has failed.\"])},\n \"remove_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove\"])},\n \"list_backups_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Error fetching backup list: \", _interpolate(_named(\"error\"))])},\n \"add_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Create a new backup\"])},\n \"added_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Added a new backup.\"])},\n \"add_backup_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Error adding a new backup: \", _interpolate(_named(\"error\"))])},\n \"blocks_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Blocks\"])},\n \"bot\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This is a bot account\"])},\n \"btnRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Buttons\"])},\n \"cBlue\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Blue (Reply, follow)\"])},\n \"cGreen\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Green (Retweet)\"])},\n \"cOrange\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Orange (Favorite)\"])},\n \"cRed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Red (Cancel)\"])},\n \"change_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Change email\"])},\n \"change_email_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"There was an issue changing your email.\"])},\n \"changed_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email changed successfully!\"])},\n \"change_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Change password\"])},\n \"change_password_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"There was an issue changing your password.\"])},\n \"changed_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password changed successfully!\"])},\n \"chatMessageRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Chat message\"])},\n \"collapse_subject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Collapse posts with subjects\"])},\n \"composing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Composing\"])},\n \"confirm_new_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirm new password\"])},\n \"current_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Current password\"])},\n \"confirm_dialogs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ask for confirmation when\"])},\n \"confirm_dialogs_repeat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"repeating a status\"])},\n \"confirm_dialogs_unfollow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"unfollowing a user\"])},\n \"confirm_dialogs_block\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"blocking a user\"])},\n \"confirm_dialogs_mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"muting a user\"])},\n \"confirm_dialogs_delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"deleting a status\"])},\n \"confirm_dialogs_logout\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"logging out\"])},\n \"confirm_dialogs_approve_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"approving a follower\"])},\n \"confirm_dialogs_deny_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"denying a follower\"])},\n \"confirm_dialogs_remove_follower\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"removing a follower\"])},\n \"mutes_and_blocks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mutes and Blocks\"])},\n \"data_import_export_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Data import / export\"])},\n \"default_vis\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Default visibility scope\"])},\n \"delete_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete account\"])},\n \"delete_account_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Permanently delete your data and deactivate your account.\"])},\n \"delete_account_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"There was an issue deleting your account. If this persists please contact your instance administrator.\"])},\n \"delete_account_instructions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Type your password in the input below to confirm account deletion.\"])},\n \"account_alias\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Account aliases\"])},\n \"account_alias_table_head\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Alias\"])},\n \"list_aliases_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Error fetching aliases: \", _interpolate(_named(\"error\"))])},\n \"hide_list_aliases_error_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Close\"])},\n \"remove_alias\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove this alias\"])},\n \"new_alias_target\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Add a new alias (e.g. \", _interpolate(_named(\"example\")), \")\"])},\n \"added_alias\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Alias is added.\"])},\n \"add_alias_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Error adding alias: \", _interpolate(_named(\"error\"))])},\n \"move_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Move account\"])},\n \"move_account_notes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"If you want to move the account somewhere else, you must go to your target account and add an alias pointing here.\"])},\n \"move_account_target\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Target account (e.g. \", _interpolate(_named(\"example\")), \")\"])},\n \"moved_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Account is moved.\"])},\n \"move_account_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Error moving account: \", _interpolate(_named(\"error\"))])},\n \"discoverable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Allow discovery of this account in search results and other services\"])},\n \"domain_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Domains\"])},\n \"avatar_size_instruction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The recommended minimum size for avatar images is 150x150 pixels.\"])},\n \"pad_emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pad emoji with spaces when adding from picker\"])},\n \"autocomplete_select_first\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Automatically select the first candidate when autocomplete results are available\"])},\n \"emoji_reactions_on_timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show emoji reactions on timeline\"])},\n \"emoji_reactions_scale\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reactions scale factor\"])},\n \"export_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Save preset\"])},\n \"filtering\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtering\"])},\n \"wordfilter\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wordfilter\"])},\n \"filtering_explanation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"All statuses containing these words will be muted, one per line\"])},\n \"word_filter_and_more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Word filter and more...\"])},\n \"follow_export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Follow export\"])},\n \"follow_export_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Export your follows to a csv file\"])},\n \"follow_import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Follow import\"])},\n \"follow_import_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error importing followers\"])},\n \"follows_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Follows imported! Processing them will take a while.\"])},\n \"accent\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Accent\"])},\n \"foreground\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Foreground\"])},\n \"general\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"General\"])},\n \"hide_attachments_in_convo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide attachments in conversations\"])},\n \"hide_attachments_in_tl\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide attachments in timeline\"])},\n \"hide_media_previews\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide media previews\"])},\n \"hide_muted_posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide posts of muted users\"])},\n \"mute_bot_posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mute bot posts\"])},\n \"hide_bot_indication\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide bot indication in posts\"])},\n \"hide_all_muted_posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide muted posts\"])},\n \"max_thumbnails\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Maximum amount of thumbnails per post (empty = no limit)\"])},\n \"hide_isp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide instance-specific panel\"])},\n \"hide_shoutbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide instance shoutbox\"])},\n \"right_sidebar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reverse order of columns\"])},\n \"navbar_column_stretch\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Stretch navbar to columns width\"])},\n \"always_show_post_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Always show floating New Post button\"])},\n \"hide_wallpaper\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide instance wallpaper\"])},\n \"preload_images\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Preload images\"])},\n \"use_one_click_nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Open NSFW attachments with just one click\"])},\n \"hide_post_stats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide post statistics (e.g. the number of favorites)\"])},\n \"hide_user_stats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide user statistics (e.g. the number of followers)\"])},\n \"hide_filtered_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide all filtered posts\"])},\n \"hide_wordfiltered_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide word-filtered statuses\"])},\n \"hide_muted_threads\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide muted threads\"])},\n \"import_blocks_from_a_csv_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Import blocks from a csv file\"])},\n \"import_followers_from_a_csv_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Import follows from a csv file\"])},\n \"import_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Load preset\"])},\n \"inputRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Input fields\"])},\n \"checkboxRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Checkboxes\"])},\n \"instance_default\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"(default: \", _interpolate(_named(\"value\")), \")\"])},\n \"instance_default_simple\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(default)\"])},\n \"interface\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Interface\"])},\n \"interfaceLanguage\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Interface language\"])},\n \"invalid_theme_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The selected file is not a supported Pleroma theme. No changes to your theme were made.\"])},\n \"limited_availability\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unavailable in your browser\"])},\n \"links\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Links\"])},\n \"lock_account_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Restrict your account to approved followers only\"])},\n \"loop_video\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Loop videos\"])},\n \"loop_video_silent_only\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Loop only videos without sound (i.e. Mastodon's \\\"gifs\\\")\"])},\n \"mutes_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mutes\"])},\n \"play_videos_in_modal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Play videos in a popup frame\"])},\n \"url\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"URL\"])},\n \"preview\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Preview\"])},\n \"file_export_import\": {\n \"backup_restore\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Settings backup\"])},\n \"backup_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Backup settings to file\"])},\n \"backup_settings_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Backup settings and theme to file\"])},\n \"restore_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Restore settings from file\"])},\n \"errors\": {\n \"invalid_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The selected file is not a supported Pleroma settings backup. No changes were made.\"])},\n \"file_too_new\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Incompatile major version: \", _interpolate(_named(\"fileMajor\")), \", this PleromaFE (settings ver \", _interpolate(_named(\"feMajor\")), \") is too old to handle it\"])},\n \"file_too_old\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Incompatile major version: \", _interpolate(_named(\"fileMajor\")), \", file version is too old and not supported (min. set. ver. \", _interpolate(_named(\"feMajor\")), \")\"])},\n \"file_slightly_new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File minor version is different, some settings might not load\"])}\n }\n },\n \"profile_fields\": {\n \"label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profile metadata\"])},\n \"add_field\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add field\"])},\n \"name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Label\"])},\n \"value\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Content\"])}\n },\n \"birthday\": {\n \"label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Birthday\"])},\n \"show_birthday\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show my birthday\"])}\n },\n \"account_privacy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Privacy\"])},\n \"use_contain_fit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Don't crop the attachment in thumbnails\"])},\n \"name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Name\"])},\n \"name_bio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Name & bio\"])},\n \"new_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"New email\"])},\n \"new_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"New password\"])},\n \"posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Posts\"])},\n \"user_profiles\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User Profiles\"])},\n \"notification_visibility\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Types of notifications to show\"])},\n \"notification_visibility_follows\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Follows\"])},\n \"notification_visibility_likes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Favorites\"])},\n \"notification_visibility_mentions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mentions\"])},\n \"notification_visibility_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Repeats\"])},\n \"notification_visibility_moves\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User Migrates\"])},\n \"notification_visibility_emoji_reactions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reactions\"])},\n \"notification_visibility_polls\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ends of polls you voted in\"])},\n \"no_rich_text_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Strip rich text formatting from all posts\"])},\n \"no_blocks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No blocks\"])},\n \"no_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No mutes\"])},\n \"hide_favorites_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Don't show list of my favorites (people still get notified)\"])},\n \"hide_follows_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Don't show who I'm following\"])},\n \"hide_followers_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Don't show who's following me\"])},\n \"hide_follows_count_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Don't show follow count\"])},\n \"hide_followers_count_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Don't show follower count\"])},\n \"show_admin_badge\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show \\\"Admin\\\" badge in my profile\"])},\n \"show_moderator_badge\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show \\\"Moderator\\\" badge in my profile\"])},\n \"nsfw_clickthrough\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide sensitive/NSFW media\"])},\n \"oauth_tokens\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OAuth tokens\"])},\n \"token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Token\"])},\n \"refresh_token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Refresh token\"])},\n \"valid_until\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Valid until\"])},\n \"revoke_token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revoke\"])},\n \"panelRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Panels\"])},\n \"pause_on_unfocused\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pause when tab is not focused\"])},\n \"presets\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Presets\"])},\n \"profile_background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profile background\"])},\n \"profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profile banner\"])},\n \"profile_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profile\"])},\n \"radii_help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Set up interface edge rounding (in pixels)\"])},\n \"replies_in_timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Replies in timeline\"])},\n \"reply_visibility_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show all replies\"])},\n \"reply_visibility_following\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Only show replies directed at me or users I'm following\"])},\n \"reply_visibility_self\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Only show replies directed at me\"])},\n \"reply_visibility_following_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show replies to my follows\"])},\n \"reply_visibility_self_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show replies to self only\"])},\n \"autohide_floating_post_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Automatically hide New Post button (mobile)\"])},\n \"saving_err\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error saving settings\"])},\n \"saving_ok\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Settings saved\"])},\n \"search_user_to_block\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Search whom you want to block\"])},\n \"search_user_to_mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Search whom you want to mute\"])},\n \"security_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Security\"])},\n \"scope_copy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Copy scope when replying (DMs are always copied)\"])},\n \"minimal_scopes_mode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Minimize post scope selection options\"])},\n \"set_new_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Set new avatar\"])},\n \"set_new_profile_background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Set new profile background\"])},\n \"set_new_profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Set new profile banner\"])},\n \"reset_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset avatar\"])},\n \"reset_profile_background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset profile background\"])},\n \"reset_profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset profile banner\"])},\n \"reset_avatar_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do you really want to reset the avatar?\"])},\n \"reset_banner_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do you really want to reset the banner?\"])},\n \"reset_background_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do you really want to reset the background?\"])},\n \"settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Settings\"])},\n \"subject_input_always_show\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Always show subject field\"])},\n \"subject_line_behavior\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Copy subject when replying\"])},\n \"subject_line_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Like email: \\\"re: subject\\\"\"])},\n \"subject_line_mastodon\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Like mastodon: copy as is\"])},\n \"subject_line_noop\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do not copy\"])},\n \"conversation_display\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Conversation display style\"])},\n \"conversation_display_tree\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tree-style\"])},\n \"conversation_display_tree_quick\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tree view\"])},\n \"disable_sticky_headers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Don't stick column headers to top of the screen\"])},\n \"show_scrollbars\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show side column's scrollbars\"])},\n \"third_column_mode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"When there's enough space, show third column containing\"])},\n \"third_column_mode_none\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Don't show third column at all\"])},\n \"third_column_mode_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notifications column\"])},\n \"third_column_mode_postform\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Main post form and navigation\"])},\n \"columns\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Columns\"])},\n \"column_sizes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Column sizes\"])},\n \"column_sizes_sidebar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sidebar\"])},\n \"column_sizes_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Content\"])},\n \"column_sizes_notifs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notifications\"])},\n \"tree_advanced\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Allow more flexible navigation in tree view\"])},\n \"tree_fade_ancestors\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Display ancestors of the current status in faint text\"])},\n \"conversation_display_linear\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Linear-style\"])},\n \"conversation_display_linear_quick\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Linear view\"])},\n \"conversation_other_replies_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show the \\\"other replies\\\" button\"])},\n \"conversation_other_replies_button_below\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Below statuses\"])},\n \"conversation_other_replies_button_inside\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inside statuses\"])},\n \"max_depth_in_thread\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Maximum number of levels in thread to display by default\"])},\n \"post_status_content_type\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Post status content type\"])},\n \"sensitive_by_default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mark posts as sensitive by default\"])},\n \"stop_gifs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pause animated images until you hover on them\"])},\n \"streaming\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Automatically show new posts when scrolled to the top\"])},\n \"auto_update\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show new posts automatically\"])},\n \"user_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Users\"])},\n \"useStreamingApi\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Receive posts and notifications real-time\"])},\n \"use_websockets\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Use websockets (Realtime updates)\"])},\n \"text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Text\"])},\n \"theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Theme\"])},\n \"theme_help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Use hex color codes (#rrggbb) to customize your color theme.\"])},\n \"theme_help_v2_1\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You can also override certain component's colors and opacity by toggling the checkbox, use \\\"Clear all\\\" button to clear all overrides.\"])},\n \"theme_help_v2_2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Icons underneath some entries are background/text contrast indicators, hover over for detailed info. Please keep in mind that when using transparency contrast indicators show the worst possible case.\"])},\n \"tooltipRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tooltips/alerts\"])},\n \"type_domains_to_mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Search domains to mute\"])},\n \"upload_a_photo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Upload a photo\"])},\n \"user_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User Settings\"])},\n \"values\": {\n \"false\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"no\"])},\n \"true\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"yes\"])}\n },\n \"virtual_scrolling\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Optimize timeline rendering\"])},\n \"use_at_icon\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Display \", \"@\", \" symbol as an icon instead of text\"])},\n \"mention_link_display\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Display mention links\"])},\n \"mention_link_display_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"always as short names (e.g. \", \"@\", \"foo)\"])},\n \"mention_link_display_full_for_remote\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"as full names only for remote users (e.g. \", \"@\", \"foo\", \"@\", \"example.org)\"])},\n \"mention_link_display_full\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"always as full names (e.g. \", \"@\", \"foo\", \"@\", \"example.org)\"])},\n \"mention_link_use_tooltip\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show user card when clicking mention links\"])},\n \"mention_link_show_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show user avatar beside the link\"])},\n \"mention_link_show_avatar_quick\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show user avatar next to mentions\"])},\n \"mention_link_fade_domain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fade domains (e.g. \", \"@\", \"example.org in \", \"@\", \"foo\", \"@\", \"example.org)\"])},\n \"mention_link_bolden_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Highlight mention of you when you are mentioned\"])},\n \"user_popover_avatar_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Popover avatar click action\"])},\n \"user_popover_avatar_action_zoom\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zoom the avatar\"])},\n \"user_popover_avatar_action_close\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Close the popover\"])},\n \"user_popover_avatar_action_open\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Open profile\"])},\n \"user_popover_avatar_overlay\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show user popover over user avatar\"])},\n \"fun\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fun\"])},\n \"greentext\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Meme arrows\"])},\n \"show_yous\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show (You)s\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notifications\"])},\n \"notification_setting_filters\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filters\"])},\n \"notification_setting_block_from_strangers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Block notifications from users who you do not follow\"])},\n \"notification_setting_privacy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Privacy\"])},\n \"notification_setting_hide_notification_contents\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide the sender and contents of push notifications\"])},\n \"notification_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"To stop receiving notifications from a specific user, use a mute.\"])},\n \"notification_blocks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Blocking a user stops all notifications as well as unsubscribes them.\"])},\n \"enable_web_push_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enable web push notifications\"])},\n \"more_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"More settings\"])},\n \"style\": {\n \"switcher\": {\n \"keep_color\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keep colors\"])},\n \"keep_shadows\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keep shadows\"])},\n \"keep_opacity\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keep opacity\"])},\n \"keep_roundness\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keep roundness\"])},\n \"keep_fonts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keep fonts\"])},\n \"save_load_hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"\\\"Keep\\\" options preserve currently set options when selecting or loading themes, it also stores said options when exporting a theme. When all checkboxes unset, exporting theme will save everything.\"])},\n \"reset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset\"])},\n \"clear_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Clear all\"])},\n \"clear_opacity\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Clear opacity\"])},\n \"load_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Load theme\"])},\n \"keep_as_is\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keep as is\"])},\n \"use_snapshot\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Old version\"])},\n \"use_source\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"New version\"])},\n \"help\": {\n \"upgraded_from_v2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"PleromaFE has been upgraded, theme could look a little bit different than you remember.\"])},\n \"v2_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File you imported was made for older FE. We try to maximize compatibility but there still could be inconsistencies.\"])},\n \"future_version_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File you imported was made in newer version of FE.\"])},\n \"older_version_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File you imported was made in older version of FE.\"])},\n \"snapshot_present\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Theme snapshot is loaded, so all values are overriden. You can load theme's actual data instead.\"])},\n \"snapshot_missing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No theme snapshot was in the file so it could look different than originally envisioned.\"])},\n \"fe_upgraded\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"PleromaFE's theme engine upgraded after version update.\"])},\n \"fe_downgraded\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"PleromaFE's version rolled back.\"])},\n \"migration_snapshot_ok\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Just to be safe, theme snapshot loaded. You can try loading theme data.\"])},\n \"migration_napshot_gone\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"For whatever reason snapshot was missing, some stuff could look different than you remember.\"])},\n \"snapshot_source_mismatch\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Versions conflict: most likely FE was rolled back and updated again, if you changed theme using older version of FE you most likely want to use old version, otherwise use new version.\"])}\n }\n },\n \"common\": {\n \"color\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Color\"])},\n \"opacity\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Opacity\"])},\n \"contrast\": {\n \"hint\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Contrast ratio is \", _interpolate(_named(\"ratio\")), \", it \", _interpolate(_named(\"level\")), \" \", _interpolate(_named(\"context\"))])},\n \"level\": {\n \"aa\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"meets Level AA guideline (minimal)\"])},\n \"aaa\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"meets Level AAA guideline (recommended)\"])},\n \"bad\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"doesn't meet any accessibility guidelines\"])}\n },\n \"context\": {\n \"18pt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"for large (18pt+) text\"])},\n \"text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"for text\"])}\n }\n }\n },\n \"common_colors\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Common\"])},\n \"main\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Common colors\"])},\n \"foreground_hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"See \\\"Advanced\\\" tab for more detailed control\"])},\n \"rgbo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Icons, accents, badges\"])}\n },\n \"advanced_colors\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Advanced\"])},\n \"alert\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Alert background\"])},\n \"alert_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error\"])},\n \"alert_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Warning\"])},\n \"alert_neutral\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Neutral\"])},\n \"post\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Posts/User bios\"])},\n \"badge\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Badge background\"])},\n \"popover\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tooltips, menus, popovers\"])},\n \"badge_notification\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notification\"])},\n \"panel_header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Panel header\"])},\n \"top_bar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Top bar\"])},\n \"borders\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Borders\"])},\n \"buttons\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Buttons\"])},\n \"inputs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Input fields\"])},\n \"faint_text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Faded text\"])},\n \"underlay\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Underlay\"])},\n \"wallpaper\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wallpaper\"])},\n \"poll\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Poll graph\"])},\n \"icons\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Icons\"])},\n \"highlight\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Highlighted elements\"])},\n \"pressed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pressed\"])},\n \"selectedPost\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Selected post\"])},\n \"selectedMenu\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Selected menu item\"])},\n \"disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Disabled\"])},\n \"toggled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Toggled\"])},\n \"tabs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tabs\"])},\n \"chat\": {\n \"incoming\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Incoming\"])},\n \"outgoing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Outgoing\"])},\n \"border\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Border\"])}\n }\n },\n \"radii\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Roundness\"])}\n },\n \"shadows\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Shadow and lighting\"])},\n \"component\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Component\"])},\n \"override\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Override\"])},\n \"shadow_id\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Shadow #\", _interpolate(_named(\"value\"))])},\n \"blur\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Blur\"])},\n \"spread\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Spread\"])},\n \"inset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inset\"])},\n \"hintV3\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"For shadows you can also use the \", _interpolate(_list(0)), \" notation to use other color slot.\"])},\n \"filter_hint\": {\n \"always_drop_shadow\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Warning, this shadow always uses \", _interpolate(_list(0)), \" when browser supports it.\"])},\n \"drop_shadow_syntax\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" does not support \", _interpolate(_list(1)), \" parameter and \", _interpolate(_list(2)), \" keyword.\"])},\n \"avatar_inset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Please note that combining both inset and non-inset shadows on avatars might give unexpected results with transparent avatars.\"])},\n \"spread_zero\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Shadows with spread > 0 will appear as if it was set to zero\"])},\n \"inset_classic\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Inset shadows will be using \", _interpolate(_list(0))])}\n },\n \"components\": {\n \"panel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Panel\"])},\n \"panelHeader\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Panel header\"])},\n \"topBar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Top bar\"])},\n \"avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User avatar (in profile view)\"])},\n \"avatarStatus\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User avatar (in post display)\"])},\n \"popup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Popups and tooltips\"])},\n \"button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Button\"])},\n \"buttonHover\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Button (hover)\"])},\n \"buttonPressed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Button (pressed)\"])},\n \"buttonPressedHover\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Button (pressed+hover)\"])},\n \"input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Input field\"])}\n }\n },\n \"fonts\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fonts\"])},\n \"help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Select font to use for elements of UI. For \\\"custom\\\" you have to enter exact font name as it appears in system.\"])},\n \"components\": {\n \"interface\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Interface\"])},\n \"input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Input fields\"])},\n \"post\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Post text\"])},\n \"postCode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Monospaced text in a post (rich text)\"])}\n },\n \"family\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Font name\"])},\n \"size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Size (in px)\"])},\n \"weight\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weight (boldness)\"])},\n \"custom\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Custom\"])}\n },\n \"preview\": {\n \"header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Preview\"])},\n \"content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Content\"])},\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Example error\"])},\n \"button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Button\"])},\n \"text\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"A bunch of more \", _interpolate(_list(0)), \" and \", _interpolate(_list(1))])},\n \"mono\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"content\"])},\n \"input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Just landed in L.A.\"])},\n \"faint_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"helpful manual\"])},\n \"fine_print\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Read our \", _interpolate(_list(0)), \" to learn nothing useful!\"])},\n \"header_faint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This is fine\"])},\n \"checkbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"I have skimmed over terms and conditions\"])},\n \"link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"a nice lil' link\"])}\n }\n },\n \"version\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Version\"])},\n \"backend_version\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Backend version\"])},\n \"frontend_version\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Frontend version\"])}\n },\n \"commit_value\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Save\"])},\n \"commit_value_tooltip\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Value is not saved, press this button to commit your changes\"])},\n \"reset_value\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset\"])},\n \"reset_value_tooltip\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset draft\"])},\n \"hard_reset_value\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hard reset\"])},\n \"hard_reset_value_tooltip\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove setting from storage, forcing use of default value\"])}\n },\n \"admin_dash\": {\n \"window_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration\"])},\n \"wip_notice\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"This admin dashboard is experimental and WIP, \", _interpolate(_named(\"adminFeLink\")), \".\"])},\n \"old_ui_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"old admin UI available here\"])},\n \"reset_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset all\"])},\n \"commit_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Save all\"])},\n \"tabs\": {\n \"nodb\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No DB Config\"])},\n \"instance\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Instance\"])},\n \"limits\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Limits\"])},\n \"frontends\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Front-ends\"])}\n },\n \"nodb\": {\n \"heading\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Database config is disabled\"])},\n \"text\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"You need to change backend config files so that \", _interpolate(_named(\"property\")), \" is set to \", _interpolate(_named(\"value\")), \", see more in \", _interpolate(_named(\"documentation\")), \".\"])},\n \"documentation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"documentation\"])},\n \"text2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Most configuration options will be unavailable.\"])}\n },\n \"captcha\": {\n \"native\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Native\"])},\n \"kocaptcha\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"KoCaptcha\"])}\n },\n \"instance\": {\n \"instance\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Instance information\"])},\n \"registrations\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User sign-ups\"])},\n \"captcha_header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"CAPTCHA\"])},\n \"kocaptcha\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"KoCaptcha settings\"])},\n \"access\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Instance access\"])},\n \"restrict\": {\n \"header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Restrict access for anonymous visitors\"])},\n \"description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Detailed setting for allowing/disallowing access to certain aspects of API. By default (indeterminate state) it will disallow if instance is not public, ticked checkbox means disallow access even if instance is public, unticked means allow access even if instance is private. Please note that unexpected behavior might happen if some settings are set, i.e. if profile access is disabled posts will show without profile information.\"])},\n \"timelines\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Timelines access\"])},\n \"profiles\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User profiles access\"])},\n \"activities\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statues/activities access\"])}\n }\n },\n \"limits\": {\n \"arbitrary_limits\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Arbitrary limits\"])},\n \"posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Post limits\"])},\n \"uploads\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Attachments limits\"])},\n \"users\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User profile limits\"])},\n \"profile_fields\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profile fields limits\"])},\n \"user_uploads\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profile media limits\"])}\n },\n \"frontend\": {\n \"repository\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Repository link\"])},\n \"versions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Available versions\"])},\n \"build_url\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Build URL\"])},\n \"reinstall\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reinstall\"])},\n \"is_default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(Default)\"])},\n \"is_default_custom\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"(Default, version: \", _interpolate(_named(\"version\")), \")\"])},\n \"install\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Install\"])},\n \"install_version\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Install version \", _interpolate(_named(\"version\"))])},\n \"more_install_options\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"More install options\"])},\n \"more_default_options\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"More default setting options\"])},\n \"set_default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Set default\"])},\n \"set_default_version\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Set version \", _interpolate(_named(\"version\")), \" as default\"])},\n \"wip_notice\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Please note that this section is a WIP and lacks certain features as backend implementation of front-end management is incomplete.\"])},\n \"default_frontend\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Default front-end\"])},\n \"default_frontend_tip\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Default front-end will be shown to all users. Currently there's no way to for a user to select personal front-end. If you switch away from PleromaFE you'll most likely have to use old and buggy AdminFE to do instance configuration until we replace it.\"])},\n \"default_frontend_tip2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WIP: Since Pleroma backend doesn't properly list all installed frontends you'll have to enter name and reference manually. List below provides shortcuts to fill the values.\"])},\n \"available_frontends\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Available for install\"])}\n },\n \"temp_overrides\": {\n \":pleroma\": {\n \":instance\": {\n \":public\": {\n \"label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Instance is public\"])},\n \"description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Disabling this will make all API accessible only for logged-in users, this will make Public and Federated timelines inaccessible to anonymous visitors.\"])}\n },\n \":limit_to_local_content\": {\n \"label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Limit search to local content\"])},\n \"description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Disables global network search for unauthenticated (default), all users or none\"])}\n },\n \":description_limit\": {\n \"label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Limit\"])},\n \"description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Character limit for attachment descriptions\"])}\n },\n \":background_image\": {\n \"label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Background image\"])},\n \"description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Background image (primarily used by PleromaFE)\"])}\n }\n }\n }\n }\n },\n \"time\": {\n \"unit\": {\n \"days\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" day\"]), _normalize([_interpolate(_list(0)), \" days\"])])},\n \"days_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"d\"])},\n \"hours\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" hour\"]), _normalize([_interpolate(_list(0)), \" hours\"])])},\n \"hours_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"h\"])},\n \"minutes\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" minute\"]), _normalize([_interpolate(_list(0)), \" minutes\"])])},\n \"minutes_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"min\"])},\n \"months\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" month\"]), _normalize([_interpolate(_list(0)), \" months\"])])},\n \"months_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"mo\"])},\n \"seconds\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" second\"]), _normalize([_interpolate(_list(0)), \" seconds\"])])},\n \"seconds_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"s\"])},\n \"weeks\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" week\"]), _normalize([_interpolate(_list(0)), \" weeks\"])])},\n \"weeks_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"w\"])},\n \"years\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" year\"]), _normalize([_interpolate(_list(0)), \" years\"])])},\n \"years_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"y\"])}\n },\n \"in_future\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"in \", _interpolate(_list(0))])},\n \"in_past\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" ago\"])},\n \"now\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"just now\"])},\n \"now_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"now\"])}\n },\n \"timeline\": {\n \"collapse\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Collapse\"])},\n \"conversation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Conversation\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Error fetching timeline: \", _interpolate(_list(0))])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Load older statuses\"])},\n \"no_retweet_hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Post is marked as followers-only or direct and cannot be repeated\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"repeated\"])},\n \"show_new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show new\"])},\n \"reload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reload\"])},\n \"up_to_date\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Up-to-date\"])},\n \"no_more_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No more statuses\"])},\n \"no_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No statuses\"])},\n \"socket_reconnected\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Realtime connection established\"])},\n \"socket_broke\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Realtime connection lost: CloseEvent code \", _interpolate(_list(0))])},\n \"quick_view_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Quick view settings\"])},\n \"quick_filter_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Quick filter settings\"])}\n },\n \"status\": {\n \"favorites\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Favorites\"])},\n \"repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Repeats\"])},\n \"repeat_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do you really want to repeat this status?\"])},\n \"repeat_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Repeat confirmation\"])},\n \"repeat_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Repeat\"])},\n \"repeat_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do not repeat\"])},\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete status\"])},\n \"delete_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Error deleting status: \", _interpolate(_list(0))])},\n \"edit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit status\"])},\n \"edited_at\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"(last edited \", _interpolate(_named(\"time\")), \")\"])},\n \"pin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pin on profile\"])},\n \"unpin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unpin from profile\"])},\n \"pinned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pinned\"])},\n \"bookmark\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bookmark\"])},\n \"unbookmark\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unbookmark\"])},\n \"delete_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do you really want to delete this status?\"])},\n \"delete_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete confirmation\"])},\n \"delete_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete\"])},\n \"delete_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keep\"])},\n \"reply_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reply to\"])},\n \"mentions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mentions\"])},\n \"replies_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Replies:\"])},\n \"replies_list_with_others\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([\"Replies (+\", _interpolate(_named(\"numReplies\")), \" other):\"]), _normalize([\"Replies (+\", _interpolate(_named(\"numReplies\")), \" others):\"])])},\n \"mute_conversation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mute conversation\"])},\n \"unmute_conversation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unmute conversation\"])},\n \"status_unavailable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Status unavailable\"])},\n \"copy_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Copy link to status\"])},\n \"external_source\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"External source\"])},\n \"thread_muted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Thread muted\"])},\n \"thread_muted_and_words\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\", has words:\"])},\n \"show_full_subject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show full subject\"])},\n \"hide_full_subject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide full subject\"])},\n \"show_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show content\"])},\n \"hide_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide content\"])},\n \"status_deleted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This post was deleted\"])},\n \"nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NSFW\"])},\n \"expand\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Expand\"])},\n \"you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(You)\"])},\n \"plus_more\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"+\", _interpolate(_named(\"number\")), \" more\"])},\n \"many_attachments\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Post has \", _interpolate(_named(\"number\")), \" attachment(s)\"])},\n \"collapse_attachments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Collapse attachments\"])},\n \"show_all_attachments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show all attachments\"])},\n \"show_attachment_in_modal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show in media modal\"])},\n \"show_attachment_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Preview description (open attachment for full description)\"])},\n \"hide_attachment\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide attachment\"])},\n \"remove_attachment\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove attachment\"])},\n \"attachment_stop_flash\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Stop Flash player\"])},\n \"move_up\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Shift attachment left\"])},\n \"move_down\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Shift attachment right\"])},\n \"open_gallery\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Open gallery\"])},\n \"thread_hide\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide this thread\"])},\n \"thread_show\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show this thread\"])},\n \"thread_show_full\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([\"Show everything under this thread (\", _interpolate(_named(\"numStatus\")), \" status in total, max depth \", _interpolate(_named(\"depth\")), \")\"]), _normalize([\"Show everything under this thread (\", _interpolate(_named(\"numStatus\")), \" statuses in total, max depth \", _interpolate(_named(\"depth\")), \")\"])])},\n \"thread_show_full_with_icon\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"icon\")), \" \", _interpolate(_named(\"text\"))])},\n \"thread_follow\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([\"See the remaining part of this thread (\", _interpolate(_named(\"numStatus\")), \" status in total)\"]), _normalize([\"See the remaining part of this thread (\", _interpolate(_named(\"numStatus\")), \" statuses in total)\"])])},\n \"thread_follow_with_icon\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"icon\")), \" \", _interpolate(_named(\"text\"))])},\n \"ancestor_follow\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([\"See \", _interpolate(_named(\"numReplies\")), \" other reply under this status\"]), _normalize([\"See \", _interpolate(_named(\"numReplies\")), \" other replies under this status\"])])},\n \"ancestor_follow_with_icon\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"icon\")), \" \", _interpolate(_named(\"text\"))])},\n \"show_all_conversation_with_icon\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"icon\")), \" \", _interpolate(_named(\"text\"))])},\n \"show_all_conversation\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([\"Show full conversation (\", _interpolate(_named(\"numStatus\")), \" other status)\"]), _normalize([\"Show full conversation (\", _interpolate(_named(\"numStatus\")), \" other statuses)\"])])},\n \"show_only_conversation_under_this\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Only show replies to this status\"])},\n \"status_history\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Status history\"])},\n \"reaction_count_label\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"num\")), \" person reacted\"]), _normalize([_interpolate(_named(\"num\")), \" people reacted\"])])},\n \"hide_quote\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide the quoted status\"])},\n \"display_quote\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Display the quoted status\"])},\n \"invisible_quote\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Quoted status unavailable: \", _interpolate(_named(\"link\"))])}\n },\n \"user_card\": {\n \"approve\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Approve\"])},\n \"approve_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Approve confirmation\"])},\n \"approve_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Approve\"])},\n \"approve_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do not approve\"])},\n \"approve_confirm\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Do you want to approve \", _interpolate(_named(\"user\")), \"'s follow request?\"])},\n \"block\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Block\"])},\n \"blocked\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Blocked!\"])},\n \"block_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Block confirmation\"])},\n \"block_confirm\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Do you really want to block \", _interpolate(_named(\"user\")), \"?\"])},\n \"block_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Block\"])},\n \"block_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do not block\"])},\n \"deactivated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deactivated\"])},\n \"deny\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deny\"])},\n \"deny_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deny confirmation\"])},\n \"deny_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deny\"])},\n \"deny_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do not deny\"])},\n \"deny_confirm\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Do you want to deny \", _interpolate(_named(\"user\")), \"'s follow request?\"])},\n \"edit_profile\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit profile\"])},\n \"favorites\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Favorites\"])},\n \"follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Follow\"])},\n \"follow_cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cancel request\"])},\n \"follow_sent\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Request sent!\"])},\n \"follow_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Requesting…\"])},\n \"follow_unfollow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unfollow\"])},\n \"unfollow_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unfollow confirmation\"])},\n \"unfollow_confirm\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Do you really want to unfollow \", _interpolate(_named(\"user\")), \"?\"])},\n \"unfollow_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unfollow\"])},\n \"unfollow_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do not unfollow\"])},\n \"followees\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Following\"])},\n \"followers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Followers\"])},\n \"following\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Following!\"])},\n \"follows_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Follows you!\"])},\n \"hidden\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hidden\"])},\n \"its_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"It's you!\"])},\n \"media\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Media\"])},\n \"mention\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mention\"])},\n \"message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Message\"])},\n \"mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mute\"])},\n \"muted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Muted\"])},\n \"mute_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mute confirmation\"])},\n \"mute_confirm\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Do you really want to mute \", _interpolate(_named(\"user\")), \"?\"])},\n \"mute_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mute\"])},\n \"mute_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do not mute\"])},\n \"mute_duration_prompt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mute this user for (0 for indefinite time):\"])},\n \"per_day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"per day\"])},\n \"remote_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remote follow\"])},\n \"remove_follower\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove follower\"])},\n \"remove_follower_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove follower confirmation\"])},\n \"remove_follower_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove\"])},\n \"remove_follower_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keep\"])},\n \"remove_follower_confirm\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Do you really want to remove \", _interpolate(_named(\"user\")), \" from your followers?\"])},\n \"report\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Report\"])},\n \"statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statuses\"])},\n \"subscribe\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Subscribe\"])},\n \"unsubscribe\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unsubscribe\"])},\n \"unblock\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unblock\"])},\n \"unblock_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unblocking…\"])},\n \"block_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Blocking…\"])},\n \"unmute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unmute\"])},\n \"unmute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unmuting…\"])},\n \"mute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Muting…\"])},\n \"hide_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide repeats\"])},\n \"show_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show repeats\"])},\n \"bot\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bot\"])},\n \"birthday\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Born \", _interpolate(_named(\"birthday\"))])},\n \"admin_menu\": {\n \"moderation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Moderation\"])},\n \"grant_admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Grant Admin\"])},\n \"revoke_admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revoke Admin\"])},\n \"grant_moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Grant Moderator\"])},\n \"revoke_moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revoke Moderator\"])},\n \"activate_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activate account\"])},\n \"deactivate_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deactivate account\"])},\n \"delete_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete account\"])},\n \"force_nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mark all posts as NSFW\"])},\n \"strip_media\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove media from posts\"])},\n \"force_unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Force posts to be unlisted\"])},\n \"sandbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Force posts to be followers-only\"])},\n \"disable_remote_subscription\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Disallow following user from remote instances\"])},\n \"disable_any_subscription\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Disallow following user at all\"])},\n \"quarantine\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Disallow user posts from federating\"])},\n \"delete_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete user\"])},\n \"delete_user_data_and_deactivate_confirmation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This will permanently delete the data from this account and deactivate it. Are you absolutely sure?\"])}\n },\n \"highlight\": {\n \"disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No highlight\"])},\n \"solid\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Solid bg\"])},\n \"striped\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Striped bg\"])},\n \"side\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Side stripe\"])}\n },\n \"note\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Note\"])},\n \"note_blank\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(None)\"])},\n \"edit_note\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit note\"])},\n \"edit_note_apply\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Apply\"])},\n \"edit_note_cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cancel\"])}\n },\n \"user_profile\": {\n \"timeline_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User timeline\"])},\n \"profile_does_not_exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sorry, this profile does not exist.\"])},\n \"profile_loading_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sorry, there was an error loading this profile.\"])}\n },\n \"user_reporting\": {\n \"title\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Reporting \", _interpolate(_list(0))])},\n \"add_comment_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The report will be sent to your instance moderators. You can provide an explanation of why you are reporting this account below:\"])},\n \"additional_comments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Additional comments\"])},\n \"forward_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The account is from another server. Send a copy of the report there as well?\"])},\n \"forward_to\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Forward to \", _interpolate(_list(0))])},\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Submit\"])},\n \"generic_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"An error occurred while processing your request.\"])}\n },\n \"who_to_follow\": {\n \"more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"More\"])},\n \"who_to_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Who to follow\"])}\n },\n \"tool_tip\": {\n \"media_upload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Upload media\"])},\n \"repeat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Repeat\"])},\n \"reply\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reply\"])},\n \"favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Favorite\"])},\n \"add_reaction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add Reaction\"])},\n \"user_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User Settings\"])},\n \"accept_follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Accept follow request\"])},\n \"reject_follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reject follow request\"])},\n \"bookmark\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bookmark\"])},\n \"toggle_expand\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Expand or collapse notification to show post in full\"])},\n \"toggle_mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Expand or collapse notification to reveal muted content\"])},\n \"autocomplete_available\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"number\")), \" result is available. Use up and down keys to navigate through them.\"]), _normalize([_interpolate(_named(\"number\")), \" results are available. Use up and down keys to navigate through them.\"])])}\n },\n \"upload\": {\n \"error\": {\n \"base\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Upload failed.\"])},\n \"message\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Upload failed: \", _interpolate(_list(0))])},\n \"file_too_big\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"File too big [\", _interpolate(_named(\"filesize\")), _interpolate(_named(\"filesizeunit\")), \" / \", _interpolate(_named(\"allowedsize\")), _interpolate(_named(\"allowedsizeunit\")), \"]\"])},\n \"default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Try again later\"])}\n },\n \"file_size_units\": {\n \"B\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"B\"])},\n \"KiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"KiB\"])},\n \"MiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"MiB\"])},\n \"GiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"GiB\"])},\n \"TiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"TiB\"])}\n }\n },\n \"search\": {\n \"people\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"People\"])},\n \"hashtags\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hashtags\"])},\n \"person_talking\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"count\")), \" person talking\"])},\n \"people_talking\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"count\")), \" people talking\"])},\n \"no_results\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No results\"])},\n \"no_more_results\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No more results\"])},\n \"load_more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Load more results\"])}\n },\n \"password_reset\": {\n \"forgot_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forgot password?\"])},\n \"password_reset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password reset\"])},\n \"instruction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enter your email address or username. We will send you a link to reset your password.\"])},\n \"placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Your email or username\"])},\n \"check_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Check your email for a link to reset your password.\"])},\n \"return_home\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Return to the home page\"])},\n \"too_many_requests\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You have reached the limit of attempts, try again later.\"])},\n \"password_reset_disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password reset is disabled. Please contact your instance administrator.\"])},\n \"password_reset_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You must reset your password to log in.\"])},\n \"password_reset_required_but_mailer_is_disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You must reset your password, but password reset is disabled. Please contact your instance administrator.\"])}\n },\n \"chats\": {\n \"you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You:\"])},\n \"message_user\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Message \", _interpolate(_named(\"nickname\"))])},\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete\"])},\n \"chats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Chats\"])},\n \"new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"New Chat\"])},\n \"empty_message_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cannot post empty message\"])},\n \"more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"More\"])},\n \"delete_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do you really want to delete this message?\"])},\n \"error_loading_chat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Something went wrong when loading the chat.\"])},\n \"error_sending_message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Something went wrong when sending the message.\"])},\n \"empty_chat_list_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You don't have any chats yet. Start a new chat!\"])}\n },\n \"lists\": {\n \"lists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lists\"])},\n \"new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"New List\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"List title\"])},\n \"search\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Search users\"])},\n \"create\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Create\"])},\n \"save\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Save changes\"])},\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete list\"])},\n \"following_only\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Limit to Following\"])},\n \"manage_lists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Manage lists\"])},\n \"manage_members\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Manage list members\"])},\n \"add_members\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Search for more users\"])},\n \"remove_from_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove from list\"])},\n \"add_to_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add to list\"])},\n \"is_in_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Already in list\"])},\n \"editing_list\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Editing list \", _interpolate(_named(\"listTitle\"))])},\n \"creating_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Creating new list\"])},\n \"update_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Save Title\"])},\n \"really_delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Really delete list?\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Error manipulating lists: \", _interpolate(_list(0))])}\n },\n \"file_type\": {\n \"audio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Audio\"])},\n \"video\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Video\"])},\n \"image\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Image\"])},\n \"file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File\"])}\n },\n \"display_date\": {\n \"today\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Today\"])}\n },\n \"update\": {\n \"big_update_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Please bear with us\"])},\n \"big_update_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"We haven't had a release in a while, so things might look and feel different than what you're used to.\"])},\n \"update_bugs\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Please report any issues and bugs on \", _interpolate(_named(\"pleromaGitlab\")), \", as we have changed a lot, and although we test thoroughly and use development versions ourselves, we may have missed some things. We welcome your feedback and suggestions on issues you might encounter, or how to improve Pleroma and Pleroma-FE.\"])},\n \"update_bugs_gitlab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pleroma GitLab\"])},\n \"update_changelog\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"For more details on what's changed, see \", _interpolate(_named(\"theFullChangelog\")), \".\"])},\n \"update_changelog_here\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"the full changelog\"])},\n \"art_by\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Art by \", _interpolate(_named(\"linkToArtist\"))])}\n },\n \"unicode_domain_indicator\": {\n \"tooltip\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This domain contains non-ascii characters.\"])}\n }\n}","var map = {\n\t\"./af.json\": [\n\t\t44919,\n\t\t6355\n\t],\n\t\"./am.json\": [\n\t\t53139,\n\t\t5119\n\t],\n\t\"./ar.json\": [\n\t\t44557,\n\t\t9873\n\t],\n\t\"./ar_SA.json\": [\n\t\t23450,\n\t\t7360\n\t],\n\t\"./as.json\": [\n\t\t44359,\n\t\t3377\n\t],\n\t\"./ast.json\": [\n\t\t13764,\n\t\t7569\n\t],\n\t\"./az.json\": [\n\t\t86459,\n\t\t2342\n\t],\n\t\"./be.json\": [\n\t\t50866,\n\t\t7304\n\t],\n\t\"./bg.json\": [\n\t\t26219,\n\t\t3974\n\t],\n\t\"./bn.json\": [\n\t\t69178,\n\t\t9064\n\t],\n\t\"./br.json\": [\n\t\t67871,\n\t\t6148\n\t],\n\t\"./bs.json\": [\n\t\t75340,\n\t\t8134\n\t],\n\t\"./ca.json\": [\n\t\t86914,\n\t\t4691\n\t],\n\t\"./ccp.json\": [\n\t\t73872,\n\t\t1162\n\t],\n\t\"./ceb.json\": [\n\t\t64478,\n\t\t9790\n\t],\n\t\"./chr.json\": [\n\t\t61017,\n\t\t6869\n\t],\n\t\"./ckb.json\": [\n\t\t56412,\n\t\t2656\n\t],\n\t\"./cs.json\": [\n\t\t8888,\n\t\t4710\n\t],\n\t\"./cy.json\": [\n\t\t25392,\n\t\t6272\n\t],\n\t\"./da.json\": [\n\t\t35042,\n\t\t1596\n\t],\n\t\"./de.json\": [\n\t\t35169,\n\t\t6226\n\t],\n\t\"./de_CH.json\": [\n\t\t28246,\n\t\t7164\n\t],\n\t\"./doi.json\": [\n\t\t59784,\n\t\t4209\n\t],\n\t\"./dsb.json\": [\n\t\t60634,\n\t\t1790\n\t],\n\t\"./el.json\": [\n\t\t98338,\n\t\t7879\n\t],\n\t\"./en.json\": [\n\t\t74990,\n\t\t5728\n\t],\n\t\"./en_001.json\": [\n\t\t62736,\n\t\t577\n\t],\n\t\"./en_AU.json\": [\n\t\t2597,\n\t\t9360\n\t],\n\t\"./en_CA.json\": [\n\t\t1516,\n\t\t4879\n\t],\n\t\"./en_GB.json\": [\n\t\t84830,\n\t\t50\n\t],\n\t\"./en_IN.json\": [\n\t\t71809,\n\t\t8988\n\t],\n\t\"./es.json\": [\n\t\t61148,\n\t\t6831\n\t],\n\t\"./es_419.json\": [\n\t\t25696,\n\t\t8873\n\t],\n\t\"./es_MX.json\": [\n\t\t11915,\n\t\t2699\n\t],\n\t\"./es_US.json\": [\n\t\t87826,\n\t\t3313\n\t],\n\t\"./et.json\": [\n\t\t66641,\n\t\t3276\n\t],\n\t\"./eu.json\": [\n\t\t6541,\n\t\t2992\n\t],\n\t\"./fa.json\": [\n\t\t43305,\n\t\t5521\n\t],\n\t\"./fi.json\": [\n\t\t40752,\n\t\t420\n\t],\n\t\"./fil.json\": [\n\t\t26843,\n\t\t1236\n\t],\n\t\"./fo.json\": [\n\t\t43032,\n\t\t8995\n\t],\n\t\"./fr.json\": [\n\t\t80898,\n\t\t2223\n\t],\n\t\"./fr_CA.json\": [\n\t\t54515,\n\t\t1821\n\t],\n\t\"./ga.json\": [\n\t\t66572,\n\t\t4571\n\t],\n\t\"./gd.json\": [\n\t\t9185,\n\t\t6116\n\t],\n\t\"./gl.json\": [\n\t\t23840,\n\t\t6126\n\t],\n\t\"./gu.json\": [\n\t\t85811,\n\t\t7261\n\t],\n\t\"./ha.json\": [\n\t\t91566,\n\t\t227\n\t],\n\t\"./ha_NE.json\": [\n\t\t3400,\n\t\t5304\n\t],\n\t\"./he.json\": [\n\t\t26260,\n\t\t5548\n\t],\n\t\"./hi.json\": [\n\t\t18136,\n\t\t5968\n\t],\n\t\"./hi_Latn.json\": [\n\t\t95638,\n\t\t3056\n\t],\n\t\"./hr.json\": [\n\t\t77435,\n\t\t2861\n\t],\n\t\"./hsb.json\": [\n\t\t15758,\n\t\t8015\n\t],\n\t\"./hu.json\": [\n\t\t2727,\n\t\t4902\n\t],\n\t\"./hy.json\": [\n\t\t8397,\n\t\t6344\n\t],\n\t\"./ia.json\": [\n\t\t49796,\n\t\t6936\n\t],\n\t\"./id.json\": [\n\t\t56635,\n\t\t9465\n\t],\n\t\"./ig.json\": [\n\t\t26406,\n\t\t9895\n\t],\n\t\"./is.json\": [\n\t\t51391,\n\t\t7300\n\t],\n\t\"./it.json\": [\n\t\t54879,\n\t\t8970\n\t],\n\t\"./ja.json\": [\n\t\t2971,\n\t\t1290\n\t],\n\t\"./jv.json\": [\n\t\t18644,\n\t\t2479\n\t],\n\t\"./ka.json\": [\n\t\t71255,\n\t\t6068\n\t],\n\t\"./kab.json\": [\n\t\t92892,\n\t\t9780\n\t],\n\t\"./kk.json\": [\n\t\t46419,\n\t\t2873\n\t],\n\t\"./kl.json\": [\n\t\t2227,\n\t\t2397\n\t],\n\t\"./km.json\": [\n\t\t65729,\n\t\t1404\n\t],\n\t\"./kn.json\": [\n\t\t65611,\n\t\t278\n\t],\n\t\"./ko.json\": [\n\t\t67080,\n\t\t2966\n\t],\n\t\"./kok.json\": [\n\t\t47209,\n\t\t2599\n\t],\n\t\"./ku.json\": [\n\t\t18738,\n\t\t2883\n\t],\n\t\"./ky.json\": [\n\t\t89690,\n\t\t4785\n\t],\n\t\"./lb.json\": [\n\t\t3929,\n\t\t4770\n\t],\n\t\"./lo.json\": [\n\t\t19778,\n\t\t7464\n\t],\n\t\"./lt.json\": [\n\t\t41683,\n\t\t7169\n\t],\n\t\"./lv.json\": [\n\t\t54873,\n\t\t8898\n\t],\n\t\"./mai.json\": [\n\t\t11781,\n\t\t1613\n\t],\n\t\"./mi.json\": [\n\t\t11569,\n\t\t6701\n\t],\n\t\"./mk.json\": [\n\t\t67589,\n\t\t9921\n\t],\n\t\"./ml.json\": [\n\t\t24415,\n\t\t2685\n\t],\n\t\"./mn.json\": [\n\t\t50512,\n\t\t4718\n\t],\n\t\"./mni.json\": [\n\t\t81597,\n\t\t5401\n\t],\n\t\"./mr.json\": [\n\t\t97747,\n\t\t1911\n\t],\n\t\"./ms.json\": [\n\t\t81588,\n\t\t9924\n\t],\n\t\"./mt.json\": [\n\t\t25081,\n\t\t9399\n\t],\n\t\"./my.json\": [\n\t\t8608,\n\t\t6790\n\t],\n\t\"./ne.json\": [\n\t\t8572,\n\t\t9377\n\t],\n\t\"./nl.json\": [\n\t\t52355,\n\t\t6773\n\t],\n\t\"./nn.json\": [\n\t\t52874,\n\t\t9414\n\t],\n\t\"./no.json\": [\n\t\t48005,\n\t\t9979\n\t],\n\t\"./or.json\": [\n\t\t26728,\n\t\t1012\n\t],\n\t\"./pa.json\": [\n\t\t15042,\n\t\t6946\n\t],\n\t\"./pa_Arab.json\": [\n\t\t43578,\n\t\t9994\n\t],\n\t\"./pcm.json\": [\n\t\t91163,\n\t\t5104\n\t],\n\t\"./pl.json\": [\n\t\t61335,\n\t\t1095\n\t],\n\t\"./ps.json\": [\n\t\t51828,\n\t\t678\n\t],\n\t\"./pt.json\": [\n\t\t38543,\n\t\t5041\n\t],\n\t\"./pt_PT.json\": [\n\t\t8063,\n\t\t1546\n\t],\n\t\"./qu.json\": [\n\t\t15821,\n\t\t8031\n\t],\n\t\"./rm.json\": [\n\t\t5014,\n\t\t5887\n\t],\n\t\"./ro.json\": [\n\t\t34064,\n\t\t9864\n\t],\n\t\"./ru.json\": [\n\t\t95222,\n\t\t8395\n\t],\n\t\"./rw.json\": [\n\t\t12710,\n\t\t346\n\t],\n\t\"./sa.json\": [\n\t\t69343,\n\t\t2243\n\t],\n\t\"./sat.json\": [\n\t\t51243,\n\t\t7855\n\t],\n\t\"./sc.json\": [\n\t\t1319,\n\t\t2874\n\t],\n\t\"./sd.json\": [\n\t\t67728,\n\t\t6826\n\t],\n\t\"./si.json\": [\n\t\t5044,\n\t\t4354\n\t],\n\t\"./sk.json\": [\n\t\t45626,\n\t\t2350\n\t],\n\t\"./sl.json\": [\n\t\t76091,\n\t\t1553\n\t],\n\t\"./so.json\": [\n\t\t93761,\n\t\t625\n\t],\n\t\"./sq.json\": [\n\t\t1230,\n\t\t4368\n\t],\n\t\"./sr.json\": [\n\t\t60445,\n\t\t3887\n\t],\n\t\"./sr_Cyrl_BA.json\": [\n\t\t38940,\n\t\t6060\n\t],\n\t\"./sr_Latn.json\": [\n\t\t21650,\n\t\t8681\n\t],\n\t\"./sr_Latn_BA.json\": [\n\t\t78328,\n\t\t5115\n\t],\n\t\"./su.json\": [\n\t\t54395,\n\t\t1959\n\t],\n\t\"./sv.json\": [\n\t\t3418,\n\t\t3241\n\t],\n\t\"./sw.json\": [\n\t\t11958,\n\t\t7585\n\t],\n\t\"./sw_KE.json\": [\n\t\t35001,\n\t\t3994\n\t],\n\t\"./ta.json\": [\n\t\t92930,\n\t\t7897\n\t],\n\t\"./te.json\": [\n\t\t8748,\n\t\t4786\n\t],\n\t\"./tg.json\": [\n\t\t20999,\n\t\t313\n\t],\n\t\"./th.json\": [\n\t\t23900,\n\t\t3951\n\t],\n\t\"./ti.json\": [\n\t\t368,\n\t\t3568\n\t],\n\t\"./tk.json\": [\n\t\t88770,\n\t\t1780\n\t],\n\t\"./to.json\": [\n\t\t95781,\n\t\t1584\n\t],\n\t\"./tr.json\": [\n\t\t92619,\n\t\t9978\n\t],\n\t\"./tt.json\": [\n\t\t87782,\n\t\t2569\n\t],\n\t\"./ug.json\": [\n\t\t19005,\n\t\t9757\n\t],\n\t\"./uk.json\": [\n\t\t82057,\n\t\t9871\n\t],\n\t\"./ur.json\": [\n\t\t13889,\n\t\t6797\n\t],\n\t\"./uz.json\": [\n\t\t45108,\n\t\t1056\n\t],\n\t\"./vi.json\": [\n\t\t97099,\n\t\t5224\n\t],\n\t\"./wo.json\": [\n\t\t9923,\n\t\t7303\n\t],\n\t\"./xh.json\": [\n\t\t29064,\n\t\t786\n\t],\n\t\"./yo.json\": [\n\t\t11971,\n\t\t8732\n\t],\n\t\"./yo_BJ.json\": [\n\t\t64533,\n\t\t9926\n\t],\n\t\"./yue.json\": [\n\t\t40648,\n\t\t1452\n\t],\n\t\"./yue_Hans.json\": [\n\t\t24800,\n\t\t4424\n\t],\n\t\"./zh.json\": [\n\t\t34626,\n\t\t457\n\t],\n\t\"./zh_Hant.json\": [\n\t\t82560,\n\t\t2767\n\t],\n\t\"./zh_Hant_HK.json\": [\n\t\t47677,\n\t\t1044\n\t],\n\t\"./zu.json\": [\n\t\t73784,\n\t\t9319\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(() => {\n\t\treturn __webpack_require__.t(id, 3 | 16);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 1395;\nmodule.exports = webpackAsyncContext;","/**\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 * (getters.standardEmojiList + state.instance.customEmoji)\n * data.users - optional, an array of all known users\n * updateUsersList - optional, a function to search and append to users\n *\n * Depending on data present one or both (or none) can be present, so if field\n * doesn't support user linking you can just provide only emoji.\n */\n\nexport default data => {\n const emojiCurry = suggestEmoji(data.emoji)\n const usersCurry = data.store && suggestUsers(data.store)\n return (input, nameKeywordLocalizer) => {\n const firstChar = input[0]\n if (firstChar === ':' && data.emoji) {\n return emojiCurry(input, nameKeywordLocalizer)\n }\n if (firstChar === '@' && usersCurry) {\n return usersCurry(input)\n }\n return []\n }\n}\n\nexport const suggestEmoji = emojis => (input, nameKeywordLocalizer) => {\n const noPrefix = input.toLowerCase().substr(1)\n return emojis\n .map(emoji => ({ ...emoji, ...nameKeywordLocalizer(emoji) }))\n .filter((emoji) => (emoji.names.concat(emoji.keywords)).filter(kw => kw.toLowerCase().match(noPrefix)).length)\n .map(k => {\n let score = 0\n\n // An exact match always wins\n score += Math.max(...k.names.map(name => name.toLowerCase() === noPrefix ? 200 : 0), 0)\n\n // Prioritize custom emoji a lot\n score += k.imageUrl ? 100 : 0\n\n // Prioritize prefix matches somewhat\n score += Math.max(...k.names.map(kw => kw.toLowerCase().startsWith(noPrefix) ? 10 : 0), 0)\n\n // Sort by length\n score -= k.displayText.length\n\n k.score = score\n return k\n })\n .sort((a, b) => {\n // Break ties alphabetically\n const alphabetically = a.displayText > b.displayText ? 0.5 : -0.5\n\n return b.score - a.score + alphabetically\n })\n}\n\nexport const suggestUsers = ({ dispatch, state }) => {\n // Keep some persistent values in closure, most importantly for the\n // custom debounce to work. Lodash debounce does not return a promise.\n let suggestions = []\n let previousQuery = ''\n let timeout = null\n let cancelUserSearch = null\n\n const userSearch = (query) => dispatch('searchUsers', { query })\n const debounceUserSearch = (query) => {\n cancelUserSearch && cancelUserSearch()\n return new Promise((resolve, reject) => {\n timeout = setTimeout(() => {\n userSearch(query).then(resolve).catch(reject)\n }, 300)\n cancelUserSearch = () => {\n clearTimeout(timeout)\n resolve([])\n }\n })\n }\n\n return async input => {\n const noPrefix = input.toLowerCase().substr(1)\n if (previousQuery === noPrefix) return suggestions\n\n suggestions = []\n previousQuery = noPrefix\n // Fetch more and wait, don't fetch if there's the 2nd @ because\n // the backend user search can't deal with it.\n // Reference semantics make it so that we get the updated data after\n // the await.\n if (!noPrefix.includes('@')) {\n await debounceUserSearch(noPrefix)\n }\n\n const newSuggestions = state.users.users.filter(\n user =>\n user.screen_name && user.name && (\n user.screen_name.toLowerCase().startsWith(noPrefix) ||\n user.name.toLowerCase().startsWith(noPrefix))\n ).slice(0, 20).sort((a, b) => {\n let aScore = 0\n let bScore = 0\n\n // Matches on screen name (i.e. user@instance) makes a priority\n aScore += a.screen_name.toLowerCase().startsWith(noPrefix) ? 2 : 0\n bScore += b.screen_name.toLowerCase().startsWith(noPrefix) ? 2 : 0\n\n // Matches on name takes second priority\n aScore += a.name.toLowerCase().startsWith(noPrefix) ? 1 : 0\n bScore += b.name.toLowerCase().startsWith(noPrefix) ? 1 : 0\n\n const diff = (bScore - aScore) * 10\n\n // Then sort alphabetically\n const nameAlphabetically = a.name > b.name ? 1 : -1\n const screenNameAlphabetically = a.screen_name > b.screen_name ? 1 : -1\n\n return diff + nameAlphabetically + screenNameAlphabetically\n /* eslint-disable camelcase */\n }).map((user) => ({\n user,\n displayText: user.screen_name_ui,\n detailText: user.name,\n imageUrl: user.profile_image_url_original,\n replacement: '@' + user.screen_name + ' '\n }))\n /* eslint-enable camelcase */\n\n suggestions = newSuggestions || []\n return suggestions\n }\n}\n","/**\n * Extract tag name from tag opener/closer.\n *\n * @param {String} tag - tag string, i.e. '<a href=\"...\">'\n * @return {String} - tagname, i.e. \"div\"\n */\nexport const getTagName = (tag) => {\n const result = /(?:<\\/(\\w+)>|<(\\w+)\\s?.*?\\/?>)/gis.exec(tag)\n return result && (result[1] || result[2])\n}\n\n/**\n * Extract attributes from tag opener.\n *\n * @param {String} tag - tag string, i.e. '<a href=\"...\">'\n * @return {Object} - map of attributes key = attribute name, value = attribute value\n * attributes without values represented as boolean true\n */\nexport const getAttrs = (tag, filter) => {\n const innertag = tag\n .substring(1, tag.length - 1)\n .replace(new RegExp('^' + getTagName(tag)), '')\n .replace(/\\/?$/, '')\n .trim()\n const attrs = Array.from(innertag.matchAll(/([a-z]+[a-z0-9-]*)(?:=(\"[^\"]+?\"|'[^']+?'))?/gi))\n .map(([trash, key, value]) => [key, value])\n .map(([k, v]) => {\n if (!v) return [k, true]\n return [k, v.substring(1, v.length - 1)]\n })\n const defaultFilter = ([k, v]) => {\n const attrKey = k.toLowerCase()\n if (attrKey === 'style') return false\n if (attrKey === 'class') {\n return v === 'greentext' || v === 'cyantext'\n }\n return true\n }\n return Object.fromEntries(attrs.filter(filter || defaultFilter))\n}\n\n/**\n * Finds shortcodes in text\n *\n * @param {String} text - original text to find emojis in\n * @param {{ url: String, shortcode: Sring }[]} emoji - list of shortcodes to find\n * @param {Function} processor - function to call on each encountered emoji,\n * function is passed single object containing matching emoji ({ url, shortcode })\n * return value will be inserted into resulting array instead of :shortcode:\n * @return {Array} resulting array with non-emoji parts of text and whatever {processor}\n * returned for emoji\n */\nexport const processTextForEmoji = (text, emojis, processor) => {\n const buffer = []\n let textBuffer = ''\n for (let i = 0; i < text.length; i++) {\n const char = text[i]\n if (char === ':') {\n const next = text.slice(i + 1)\n let found = false\n for (const emoji of emojis) {\n if (next.slice(0, emoji.shortcode.length + 1) === (emoji.shortcode + ':')) {\n found = emoji\n break\n }\n }\n if (found) {\n buffer.push(textBuffer)\n textBuffer = ''\n buffer.push(processor(found))\n i += found.shortcode.length + 1\n } else {\n textBuffer += char\n }\n } else {\n textBuffer += char\n }\n }\n if (textBuffer) buffer.push(textBuffer)\n return buffer\n}\n","import { getTagName } from './utility.service.js'\n\n/**\n * This is a tiny purpose-built HTML parser/processor. This basically detects\n * any type of visual newline and converts entire HTML into a array structure.\n *\n * Text nodes are represented as object with single property - text - containing\n * the visual line. Intended usage is to process the array with .map() in which\n * map function returns a string and resulting array can be converted back to html\n * with a .join('').\n *\n * Generally this isn't very useful except for when you really need to either\n * modify visual lines (greentext i.e. simple quoting) or do something with\n * first/last line.\n *\n * known issue: doesn't handle CDATA so nested CDATA might not work well\n *\n * @param {Object} input - input data\n * @return {(string|{ text: string })[]} processed html in form of a list.\n */\nexport const convertHtmlToLines = (html = '') => {\n // Elements that are implicitly self-closing\n // https://developer.mozilla.org/en-US/docs/Glossary/empty_element\n const emptyElements = new Set([\n 'area', 'base', 'br', 'col', 'embed', 'hr', 'img', 'input',\n 'keygen', 'link', 'meta', 'param', 'source', 'track', 'wbr'\n ])\n // Block-level element (they make a visual line)\n // https://developer.mozilla.org/en-US/docs/Web/HTML/Block-level_elements\n const blockElements = new Set([\n 'address', 'article', 'aside', 'blockquote', 'details', 'dialog', 'dd',\n 'div', 'dl', 'dt', 'fieldset', 'figcaption', 'figure', 'footer', 'form',\n 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'hgroup', 'hr', 'li', 'main',\n 'nav', 'ol', 'p', 'pre', 'section', 'table', 'ul'\n ])\n // br is very weird in a way that it's technically not block-level, it's\n // essentially converted to a \\n (or \\r\\n). There's also wbr but it doesn't\n // guarantee linebreak, only suggest it.\n const linebreakElements = new Set(['br'])\n\n const visualLineElements = new Set([\n ...blockElements.values(),\n ...linebreakElements.values()\n ])\n\n // All block-level elements that aren't empty elements, i.e. not <hr>\n const nonEmptyElements = new Set(visualLineElements)\n // Difference\n for (const elem of emptyElements) {\n nonEmptyElements.delete(elem)\n }\n\n // All elements that we are recognizing\n const allElements = new Set([\n ...nonEmptyElements.values(),\n ...emptyElements.values()\n ])\n\n const 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 const flush = () => { // Processes current line buffer, adds it to output buffer and clears line buffer\n if (textBuffer.trim().length > 0) {\n buffer.push({ level: [...level], text: textBuffer })\n } else {\n buffer.push(textBuffer)\n }\n textBuffer = ''\n }\n\n const handleBr = (tag) => { // handles single newlines/linebreaks/selfclosing\n flush()\n buffer.push(tag)\n }\n\n const handleOpen = (tag) => { // handles opening tags\n flush()\n buffer.push(tag)\n level.unshift(getTagName(tag))\n }\n\n const handleClose = (tag) => { // handles closing tags\n if (level[0] === getTagName(tag)) {\n flush()\n buffer.push(tag)\n level.shift()\n } else { // Broken case\n textBuffer += tag\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 (allElements.has(tagName)) {\n if (linebreakElements.has(tagName)) {\n handleBr(tagFull)\n } else if (nonEmptyElements.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 } else {\n textBuffer += tagFull\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","<template>\n <span\n class=\"HashtagLink\"\n >\n <!-- eslint-disable vue/no-v-html -->\n <a\n :href=\"url\"\n class=\"original\"\n target=\"_blank\"\n @click.prevent=\"onClick\"\n v-html=\"content\"\n />\n <!-- eslint-enable vue/no-v-html -->\n </span>\n</template>\n\n<script src=\"./hashtag_link.js\" />\n\n<style lang=\"scss\" src=\"./hashtag_link.scss\" />\n","import { extractTagFromUrl } from 'src/services/matcher/matcher.service.js'\n\nconst HashtagLink = {\n name: 'HashtagLink',\n props: {\n url: {\n required: true,\n type: String\n },\n content: {\n required: true,\n type: String\n },\n tag: {\n required: false,\n type: String,\n default: ''\n }\n },\n methods: {\n onClick () {\n const tag = this.tag || extractTagFromUrl(this.url)\n if (tag) {\n const link = this.generateTagLink(tag)\n this.$router.push(link)\n } else {\n window.open(this.url, '_blank')\n }\n },\n generateTagLink (tag) {\n return `/tag/${tag}`\n }\n }\n}\n\nexport default HashtagLink\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 decoded = decodeURI(url)\n // https://git.pleroma.social/pleroma/elixir-libraries/linkify/-/blob/master/lib/linkify/parser.ex\n // https://www.pcre.org/original/doc/html/pcrepattern.html\n const regex = /tag[s]*\\/([\\p{L}\\p{N}_]*[\\p{Alphabetic}_·\\u{200c}][\\p{L}\\p{N}_·\\p{M}\\u{200c}]*)$/ug\n const result = regex.exec(decoded)\n if (!result) {\n return false\n }\n return result[1]\n}\n","import { render } from \"./hashtag_link.vue?vue&type=template&id=76a14451\"\nimport script from \"./hashtag_link.js?vue&type=script&lang=js\"\nexport * from \"./hashtag_link.js?vue&type=script&lang=js\"\n\nimport \"./hashtag_link.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { unescape, flattenDeep } from 'lodash'\nimport { getTagName, processTextForEmoji, getAttrs } from 'src/services/html_converter/utility.service.js'\nimport { convertHtmlToTree } from 'src/services/html_converter/html_tree_converter.service.js'\nimport { convertHtmlToLines } from 'src/services/html_converter/html_line_converter.service.js'\nimport StillImage from 'src/components/still-image/still-image.vue'\nimport MentionsLine, { MENTIONS_LIMIT } from 'src/components/mentions_line/mentions_line.vue'\nimport HashtagLink from 'src/components/hashtag_link/hashtag_link.vue'\n\nimport './rich_content.scss'\n\nconst MAYBE_LINE_BREAKING_ELEMENTS = [\n 'blockquote',\n 'br',\n 'hr',\n 'ul',\n 'ol',\n 'li',\n 'p',\n 'table',\n 'tbody',\n 'td',\n 'th',\n 'thead',\n 'tr',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5'\n]\n\n/**\n * RichContent, The Über-powered component for rendering Post HTML.\n *\n * This takes post HTML and does multiple things to it:\n * - Groups all mentions into <MentionsLine>, this affects all mentions regardles\n * of where they are (beginning/middle/end), even single mentions are converted\n * to a <MentionsLine> containing single <MentionLink>.\n * - Replaces emoji shortcodes with <StillImage>'d images.\n *\n * There are two problems with this component's architecture:\n * 1. Parsing HTML and rendering are inseparable. Attempts to separate the two\n * proven to be a massive overcomplication due to amount of things done here.\n * 2. We need to output both render and some extra data, which seems to be imp-\n * possible in vue. Current solution is to emit 'parseReady' event when parsing\n * is done within render() function.\n *\n * Apart from that one small hiccup with emit in render this _should_ be vue3-ready\n */\nexport default {\n name: 'RichContent',\n components: {\n MentionsLine,\n HashtagLink\n },\n props: {\n // Original html content\n html: {\n required: true,\n type: String\n },\n attentions: {\n required: false,\n default: () => []\n },\n // Emoji object, as in status.emojis, note the \"s\" at the end...\n emoji: {\n required: true,\n type: Array\n },\n // Whether to handle links or not (posts: yes, everything else: no)\n handleLinks: {\n required: false,\n type: Boolean,\n default: false\n },\n // Meme arrows\n greentext: {\n required: false,\n type: Boolean,\n default: false\n }\n },\n // NEVER EVER TOUCH DATA INSIDE RENDER\n render () {\n // Pre-process HTML\n const { newHtml: html } = preProcessPerLine(this.html, this.greentext)\n let currentMentions = null // Current chain of mentions, we group all mentions together\n // This is used to recover spacing removed when parsing mentions\n let lastSpacing = ''\n\n const lastTags = [] // Tags that appear at the end of post body\n const writtenMentions = [] // All mentions that appear in post body\n const invisibleMentions = [] // All mentions that go beyond the limiter (see MentionsLine)\n // to collapse too many mentions in a row\n const writtenTags = [] // All tags that appear in post body\n // unique index for vue \"tag\" property\n let mentionIndex = 0\n let tagsIndex = 0\n\n const renderImage = (tag) => {\n return <StillImage\n {...getAttrs(tag)}\n class=\"img\"\n />\n }\n\n const renderHashtag = (attrs, children, encounteredTextReverse) => {\n const { index, ...linkData } = getLinkData(attrs, children, tagsIndex++)\n writtenTags.push(linkData)\n if (!encounteredTextReverse) {\n lastTags.push(linkData)\n }\n const { url, tag, content } = linkData\n return <HashtagLink url={url} tag={tag} content={content}/>\n }\n\n const renderMention = (attrs, children) => {\n const linkData = getLinkData(attrs, children, mentionIndex++)\n linkData.notifying = this.attentions.some(a => a.statusnet_profile_url === linkData.url)\n writtenMentions.push(linkData)\n if (currentMentions === null) {\n currentMentions = []\n }\n currentMentions.push(linkData)\n if (currentMentions.length > MENTIONS_LIMIT) {\n invisibleMentions.push(linkData)\n }\n if (currentMentions.length === 1) {\n return <MentionsLine mentions={ currentMentions } />\n } else {\n return ''\n }\n }\n\n // Processor to use with html_tree_converter\n const processItem = (item, index, array, what) => {\n // Handle text nodes - just add emoji\n if (typeof item === 'string') {\n const emptyText = item.trim() === ''\n if (item.includes('\\n')) {\n currentMentions = null\n }\n if (emptyText) {\n // don't include spaces when processing mentions - we'll include them\n // in MentionsLine\n lastSpacing = item\n // Don't remove last space in a container (fixes poast mentions)\n return (index !== array.length - 1) && (currentMentions !== null) ? item.trim() : item\n }\n\n currentMentions = null\n if (item.includes(':')) {\n item = ['', processTextForEmoji(\n item,\n this.emoji,\n ({ shortcode, url }) => {\n return <StillImage\n class=\"emoji img\"\n src={url}\n title={`:${shortcode}:`}\n alt={`:${shortcode}:`}\n />\n }\n )]\n }\n return item\n }\n\n // Handle tag nodes\n if (Array.isArray(item)) {\n const [opener, children, closer] = item\n let Tag = getTagName(opener)\n if (Tag.toLowerCase() === 'script') Tag = 'js-exploit'\n if (Tag.toLowerCase() === 'style') Tag = 'css-exploit'\n const fullAttrs = getAttrs(opener, () => true)\n const attrs = getAttrs(opener)\n const previouslyMentions = currentMentions !== null\n /* During grouping of mentions we trim all the empty text elements\n * This padding is added to recover last space removed in case\n * we have a tag right next to mentions\n */\n const mentionsLinePadding =\n // Padding is only needed if we just finished parsing mentions\n previouslyMentions &&\n // Don't add padding if content is string and has padding already\n !(children && typeof children[0] === 'string' && children[0].match(/^\\s/))\n ? lastSpacing\n : ''\n if (MAYBE_LINE_BREAKING_ELEMENTS.includes(Tag)) {\n // all the elements that can cause a line change\n currentMentions = null\n } else if (Tag === 'img') { // replace images with StillImage\n return ['', [mentionsLinePadding, renderImage(opener)], '']\n } else if (Tag === 'a' && this.handleLinks) { // replace mentions with MentionLink\n if (fullAttrs.class && fullAttrs.class.includes('mention')) {\n // Handling mentions here\n return renderMention(attrs, children)\n } else {\n currentMentions = null\n }\n } else if (Tag === 'span') {\n if (this.handleLinks && fullAttrs.class && fullAttrs.class.includes('h-card')) {\n return ['', children.map(processItem), '']\n }\n }\n\n if (children !== undefined) {\n return [\n '',\n [\n mentionsLinePadding,\n [opener, children.map(processItem), closer]\n ],\n ''\n ]\n } else {\n return ['', [mentionsLinePadding, item], '']\n }\n }\n }\n\n // Processor for back direction (for finding \"last\" stuff, just easier this way)\n let encounteredTextReverse = false\n const processItemReverse = (item, index, array, what) => {\n // Handle text nodes - just add emoji\n if (typeof item === 'string') {\n const emptyText = item.trim() === ''\n if (emptyText) return item\n if (!encounteredTextReverse) encounteredTextReverse = true\n return unescape(item)\n } else if (Array.isArray(item)) {\n // Handle tag nodes\n const [opener, children] = item\n const Tag = opener === '' ? '' : getTagName(opener)\n switch (Tag) {\n case 'a': { // replace mentions with MentionLink\n if (!this.handleLinks) break\n const fullAttrs = getAttrs(opener, () => true)\n const attrs = getAttrs(opener, () => true)\n // should only be this\n if (\n (fullAttrs.class && fullAttrs.class.includes('hashtag')) || // Pleroma style\n (fullAttrs.rel === 'tag') // Mastodon style\n ) {\n return renderHashtag(attrs, children, encounteredTextReverse)\n } else {\n attrs.target = '_blank'\n const newChildren = [...children].reverse().map(processItemReverse).reverse()\n\n return <a {...attrs}>\n { newChildren }\n </a>\n }\n }\n case '':\n return [...children].reverse().map(processItemReverse).reverse()\n }\n\n // Render tag as is\n if (children !== undefined) {\n const newChildren = Array.isArray(children)\n ? [...children].reverse().map(processItemReverse).reverse()\n : children\n return <Tag {...getAttrs(opener)}>\n { newChildren }\n </Tag>\n } else {\n return <Tag/>\n }\n }\n return item\n }\n\n const pass1 = convertHtmlToTree(html).map(processItem)\n const pass2 = [...pass1].reverse().map(processItemReverse).reverse()\n // DO NOT USE SLOTS they cause a re-render feedback loop here.\n // slots updated -> rerender -> emit -> update up the tree -> rerender -> ...\n // at least until vue3?\n const result = <span class=\"RichContent\">\n { pass2 }\n </span>\n\n const event = {\n lastTags,\n writtenMentions,\n writtenTags,\n invisibleMentions\n }\n\n // DO NOT MOVE TO UPDATE. BAD IDEA.\n this.$emit('parseReady', event)\n\n return result\n }\n}\n\nconst getLinkData = (attrs, children, index) => {\n const stripTags = (item) => {\n if (typeof item === 'string') {\n return item\n } else {\n return item[1].map(stripTags).join('')\n }\n }\n const textContent = children.map(stripTags).join('')\n return {\n index,\n url: attrs.href,\n tag: attrs['data-tag'],\n content: flattenDeep(children).join(''),\n textContent\n }\n}\n\n/** Pre-processing HTML\n *\n * Currently this does one thing:\n * - add green/cyantexting\n *\n * @param {String} html - raw HTML to process\n * @param {Boolean} greentext - whether to enable greentexting or not\n */\nexport const preProcessPerLine = (html, greentext) => {\n const greentextHandle = new Set(['p', 'div'])\n\n const lines = convertHtmlToLines(html)\n const newHtml = lines.reverse().map((item, index, array) => {\n if (!item.text) return item\n const string = item.text\n\n // Greentext stuff\n if (\n // Only if greentext is engaged\n greentext &&\n // Only handle p's and divs. Don't want to affect blockquotes, code etc\n item.level.every(l => greentextHandle.has(l)) &&\n // Only if line begins with '>' or '<'\n (string.includes('&gt;') || string.includes('&lt;'))\n ) {\n const cleanedString = string.replace(/<[^>]+?>/gi, '') // remove all tags\n .replace(/@\\w+/gi, '') // remove mentions (even failed ones)\n .trim()\n if (cleanedString.startsWith('&gt;')) {\n return `<span class='greentext'>${string}</span>`\n } else if (cleanedString.startsWith('&lt;')) {\n return `<span class='cyantext'>${string}</span>`\n }\n }\n\n return string\n }).reverse().join('')\n\n return { newHtml }\n}\n","import { getTagName } from './utility.service.js'\nimport { unescape } from 'lodash'\n\n/**\n * This is a not-so-tiny purpose-built HTML parser/processor. This parses html\n * and converts it into a tree structure representing tag openers/closers and\n * children.\n *\n * Structure follows this pattern: [opener, [...children], closer] except root\n * node which is just [...children]. Text nodes can only be within children and\n * are represented as strings.\n *\n * Intended use is to convert HTML structure and then recursively iterate over it\n * most likely using a map. Very useful for dynamically rendering html replacing\n * tags with JSX elements in a render function.\n *\n * known issue: doesn't handle CDATA so CDATA might not work well\n * known issue: doesn't handle HTML comments\n *\n * @param {Object} input - input data\n * @return {string} processed html\n */\nexport const convertHtmlToTree = (html = '') => {\n // Elements that are implicitly self-closing\n // https://developer.mozilla.org/en-US/docs/Glossary/empty_element\n const emptyElements = new Set([\n 'area', 'base', 'br', 'col', 'embed', 'hr', 'img', 'input',\n 'keygen', 'link', 'meta', 'param', 'source', 'track', 'wbr'\n ])\n // TODO For future - also parse HTML5 multi-source components?\n\n const buffer = [] // Current output buffer\n const levels = [['', buffer]] // 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 const getCurrentBuffer = () => {\n return levels[levels.length - 1][1]\n }\n\n const flushText = () => { // Processes current line buffer, adds it to output buffer and clears line buffer\n if (textBuffer === '') return\n getCurrentBuffer().push(textBuffer)\n textBuffer = ''\n }\n\n const handleSelfClosing = (tag) => {\n getCurrentBuffer().push([tag])\n }\n\n const handleOpen = (tag) => {\n const curBuf = getCurrentBuffer()\n const newLevel = [unescape(tag), []]\n levels.push(newLevel)\n curBuf.push(newLevel)\n }\n\n const handleClose = (tag) => {\n const currentTag = levels[levels.length - 1]\n if (getTagName(levels[levels.length - 1][0]) === getTagName(tag)) {\n currentTag.push(tag)\n levels.pop()\n } else {\n getCurrentBuffer().push(tag)\n }\n }\n\n for (let i = 0; i < html.length; i++) {\n const char = html[i]\n if (char === '<' && tagBuffer === null) {\n flushText()\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 (tagFull[1] === '/') {\n handleClose(tagFull)\n } else if (emptyElements.has(tagName) || tagFull[tagFull.length - 2] === '/') {\n // self-closing\n handleSelfClosing(tagFull)\n } else {\n handleOpen(tagFull)\n }\n } else {\n textBuffer += char\n }\n }\n if (tagBuffer) {\n textBuffer += tagBuffer\n }\n\n flushText()\n return buffer\n}\n","// eslint-disable-next-line no-unused\nimport { h, Fragment } from 'vue'\nimport { mapState } from 'vuex'\nimport { FontAwesomeIcon as FAIcon } from '@fortawesome/vue-fontawesome'\n\nimport './tab_switcher.scss'\n\nconst findFirstUsable = (slots) => slots.findIndex(_ => _.props)\n\nexport default {\n name: 'TabSwitcher',\n props: {\n renderOnlyFocused: {\n required: false,\n type: Boolean,\n default: false\n },\n onSwitch: {\n required: false,\n type: Function,\n default: undefined\n },\n activeTab: {\n required: false,\n type: String,\n default: undefined\n },\n scrollableTabs: {\n required: false,\n type: Boolean,\n default: false\n },\n sideTabBar: {\n required: false,\n type: Boolean,\n default: false\n },\n bodyScrollLock: {\n required: false,\n type: Boolean,\n default: false\n }\n },\n data () {\n return {\n active: findFirstUsable(this.slots())\n }\n },\n computed: {\n activeIndex () {\n // In case of controlled component\n if (this.activeTab) {\n return this.slots().findIndex(slot => slot && slot.props && this.activeTab === slot.props.key)\n } else {\n return this.active\n }\n },\n isActive () {\n return tabName => {\n const isWanted = slot => slot.props && slot.props['data-tab-name'] === tabName\n return this.$slots.default().findIndex(isWanted) === this.activeIndex\n }\n }\n },\n beforeUpdate () {\n const currentSlot = this.slots()[this.active]\n if (!currentSlot.props) {\n this.active = findFirstUsable(this.slots())\n }\n },\n methods: {\n clickTab (index) {\n return (e) => {\n e.preventDefault()\n this.setTab(index)\n }\n },\n // DO NOT put it to computed, it doesn't work (caching?)\n slots () {\n if (this.$slots.default()[0].type === Fragment) {\n return this.$slots.default()[0].children\n }\n return this.$slots.default()\n },\n setTab (index) {\n if (typeof this.onSwitch === 'function') {\n this.onSwitch.call(null, this.slots()[index].key)\n }\n this.active = index\n if (this.scrollableTabs) {\n this.$refs.contents.scrollTop = 0\n }\n }\n },\n render () {\n const tabs = this.slots()\n .map((slot, index) => {\n const props = slot.props\n if (!props) return\n const classesTab = ['tab', 'button-default']\n const classesWrapper = ['tab-wrapper']\n if (this.activeIndex === index) {\n classesTab.push('active')\n classesWrapper.push('active')\n }\n if (props.image) {\n return (\n <div class={classesWrapper.join(' ')}>\n <button\n disabled={props.disabled}\n onClick={this.clickTab(index)}\n class={classesTab.join(' ')}\n type=\"button\"\n role=\"tab\"\n >\n <img src={props.image} title={props['image-tooltip']}/>\n {props.label ? '' : props.label}\n </button>\n </div>\n )\n }\n return (\n <div class={classesWrapper.join(' ')}>\n <button\n disabled={props.disabled}\n onClick={this.clickTab(index)}\n class={classesTab.join(' ')}\n type=\"button\"\n role=\"tab\"\n >\n {!props.icon ? '' : (<FAIcon class=\"tab-icon\" size=\"2x\" fixed-width icon={props.icon}/>)}\n <span class=\"text\">\n {props.label}\n </span>\n </button>\n </div>\n )\n })\n\n const contents = this.slots().map((slot, index) => {\n const props = slot.props\n if (!props) return\n const active = this.activeIndex === index\n const classes = [ active ? 'active' : 'hidden' ]\n if (props.fullHeight) {\n classes.push('full-height')\n }\n const renderSlot = (!this.renderOnlyFocused || active)\n ? slot\n : ''\n\n return (\n <div class={classes}>\n {\n this.sideTabBar\n ? <h1 class=\"mobile-label\">{props.label}</h1>\n : ''\n }\n {renderSlot}\n </div>\n )\n })\n\n return (\n <div class={'tab-switcher ' + (this.sideTabBar ? 'side-tabs' : 'top-tabs')}>\n <div\n class=\"tabs\"\n role=\"tablist\"\n >\n {tabs}\n </div>\n <div\n ref=\"contents\"\n role=\"tabpanel\"\n class={'contents' + (this.scrollableTabs ? ' scrollable-tabs' : '')}\n v-body-scroll-lock={this.bodyScrollLock}\n >\n {contents}\n </div>\n </div>\n )\n }\n}\n","// eslint-disable-next-line no-unused\nimport { h } from 'vue'\nimport isEmpty from 'lodash/isEmpty'\nimport { getComponentProps } from '../../services/component_utils/component_utils'\nimport './with_load_more.scss'\n\nimport { FontAwesomeIcon as FAIcon } from '@fortawesome/vue-fontawesome'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faCircleNotch\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCircleNotch\n)\n\nconst withLoadMore = ({\n fetch, // function to fetch entries and return a promise\n select, // function to select data from store\n unmounted, // 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 {\n props,\n data () {\n return {\n loading: false,\n bottomedOut: false,\n error: false,\n entries: []\n }\n },\n created () {\n window.addEventListener('scroll', this.scrollLoad)\n if (this.entries.length === 0) {\n this.fetchEntries()\n }\n },\n unmounted () {\n window.removeEventListener('scroll', this.scrollLoad)\n unmounted && unmounted(this.$props, this.$store)\n },\n methods: {\n // Entries is not a computed because computed can't track the dynamic\n // selector for changes and won't trigger after fetch.\n updateEntries () {\n this.entries = select(this.$props, this.$store) || []\n },\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 .finally(() => {\n this.updateEntries()\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 () {\n const props = {\n ...this.$props,\n [childPropName]: this.entries\n }\n const children = this.$slots\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 &&\n <button onClick={this.fetchEntries} class=\"button-unstyled -link -fullwidth alert error\">\n {this.$t('general.generic_error')}\n </button>\n }\n {!this.error && this.loading && <FAIcon spin icon=\"circle-notch\"/>}\n {!this.error && !this.loading && !this.bottomedOut && <a onClick={this.fetchEntries} role=\"button\" tabindex=\"0\">{this.$t('general.more')}</a>}\n </div>\n </div>\n )\n }\n }\n}\n\nexport default withLoadMore\n","const languages = [\n 'ar',\n 'ca',\n 'cs',\n 'de',\n 'eo',\n 'en',\n 'es',\n 'et',\n 'eu',\n 'fi',\n 'fr',\n 'ga',\n 'he',\n 'hu',\n 'it',\n 'ja',\n 'ja_easy',\n 'ko',\n 'nan-TW',\n 'nb',\n 'nl',\n 'oc',\n 'pl',\n 'pt',\n 'ro',\n 'ru',\n 'sk',\n 'te',\n 'uk',\n 'zh',\n 'zh_Hant'\n]\n\nconst specialJsonName = {\n ja: 'ja_pedantic'\n}\n\nconst langCodeToJsonName = (code) => specialJsonName[code] || code\n\nconst langCodeToCldrName = (code) => code\n\nconst ensureFinalFallback = codes => {\n const codeList = Array.isArray(codes) ? codes : [codes]\n return codeList.includes('en') ? codeList : codeList.concat(['en'])\n}\n\nmodule.exports = {\n languages,\n langCodeToJsonName,\n langCodeToCldrName,\n ensureFinalFallback\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\nimport { isEqual } from 'lodash'\nimport { languages, langCodeToJsonName } from './languages.js'\n\nconst ULTIMATE_FALLBACK_LOCALE = 'en'\n\nconst hasLanguageFile = (code) => languages.includes(code)\n\nconst loadLanguageFile = (code) => {\n return import(\n /* webpackInclude: /\\.json$/ */\n /* webpackChunkName: \"i18n/[request]\" */\n `./${langCodeToJsonName(code)}.json`\n )\n}\n\nconst messages = {\n languages,\n default: {\n en: require('./en.json').default\n },\n setLanguage: async (i18n, language) => {\n const languages = (Array.isArray(language) ? language : [language]).filter(k => k)\n\n if (!languages.includes(ULTIMATE_FALLBACK_LOCALE)) {\n languages.push(ULTIMATE_FALLBACK_LOCALE)\n }\n const [first, ...rest] = languages\n\n if (first === i18n.locale && isEqual(rest, i18n.fallbackLocale)) {\n return\n }\n\n for (const lang of languages) {\n if (hasLanguageFile(lang)) {\n const messages = await loadLanguageFile(lang)\n i18n.setLocaleMessage(lang, messages.default)\n }\n }\n\n i18n.fallbackLocale = rest\n i18n.locale = first\n }\n}\n\nexport default messages\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","const defaultState = {\n settingsModalState: 'hidden',\n settingsModalLoadedUser: false,\n settingsModalLoadedAdmin: false,\n settingsModalTargetTab: null,\n settingsModalMode: 'user',\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 layoutType: 'normal',\n globalNotices: [],\n layoutHeight: 0,\n lastTimeline: null\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 state.settings.currentSaveStateNotice = { error: false, data: success }\n state.settings.noticeClearTimeout = setTimeout(() => delete state.settings.currentSaveStateNotice, 2000)\n } else {\n state.settings.currentSaveStateNotice = { error: true, errorData: error }\n }\n },\n setNotificationPermission (state, permission) {\n state.notificationPermission = permission\n },\n setLayoutType (state, value) {\n state.layoutType = value\n },\n closeSettingsModal (state) {\n state.settingsModalState = 'hidden'\n },\n togglePeekSettingsModal (state) {\n switch (state.settingsModalState) {\n case 'minimized':\n state.settingsModalState = 'visible'\n return\n case 'visible':\n state.settingsModalState = 'minimized'\n return\n default:\n throw new Error('Illegal minimization state of settings modal')\n }\n },\n openSettingsModal (state, value) {\n state.settingsModalMode = value\n state.settingsModalState = 'visible'\n if (value === 'user') {\n if (!state.settingsModalLoadedUser) {\n state.settingsModalLoadedUser = true\n }\n } else if (value === 'admin') {\n if (!state.settingsModalLoadedAdmin) {\n state.settingsModalLoadedAdmin = true\n }\n }\n },\n setSettingsModalTargetTab (state, value) {\n state.settingsModalTargetTab = value\n },\n pushGlobalNotice (state, notice) {\n state.globalNotices.push(notice)\n },\n removeGlobalNotice (state, notice) {\n state.globalNotices = state.globalNotices.filter(n => n !== notice)\n },\n setLayoutHeight (state, value) {\n state.layoutHeight = value\n },\n setLayoutWidth (state, value) {\n state.layoutWidth = value\n },\n setLastTimeline (state, value) {\n state.lastTimeline = 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 closeSettingsModal ({ commit }) {\n commit('closeSettingsModal')\n },\n openSettingsModal ({ commit }, value = 'user') {\n commit('openSettingsModal', value)\n },\n togglePeekSettingsModal ({ commit }) {\n commit('togglePeekSettingsModal')\n },\n clearSettingsModalTargetTab ({ commit }) {\n commit('setSettingsModalTargetTab', null)\n },\n openSettingsModalTab ({ commit }, value) {\n commit('setSettingsModalTargetTab', value)\n commit('openSettingsModal', 'user')\n },\n pushGlobalNotice (\n { commit, dispatch, state },\n {\n messageKey,\n messageArgs = {},\n level = 'error',\n timeout = 0\n }) {\n const notice = {\n messageKey,\n messageArgs,\n level\n }\n commit('pushGlobalNotice', notice)\n // Adding a new element to array wraps it in a Proxy, which breaks the comparison\n // TODO: Generate UUID or something instead or relying on !== operator?\n const newNotice = state.globalNotices[state.globalNotices.length - 1]\n if (timeout) {\n setTimeout(() => dispatch('removeGlobalNotice', newNotice), timeout)\n }\n return newNotice\n },\n removeGlobalNotice ({ commit }, notice) {\n commit('removeGlobalNotice', notice)\n },\n setLayoutHeight ({ commit }, value) {\n commit('setLayoutHeight', value)\n },\n // value is optional, assuming it was cached prior\n setLayoutWidth ({ commit, state, rootGetters, rootState }, value) {\n let width = value\n if (value !== undefined) {\n commit('setLayoutWidth', value)\n } else {\n width = state.layoutWidth\n }\n const mobileLayout = width <= 800\n const normalOrMobile = mobileLayout ? 'mobile' : 'normal'\n const { thirdColumnMode } = rootGetters.mergedConfig\n if (thirdColumnMode === 'none' || !rootState.users.currentUser) {\n commit('setLayoutType', normalOrMobile)\n } else {\n const wideLayout = width >= 1300\n commit('setLayoutType', wideLayout ? 'wide' : normalOrMobile)\n }\n },\n setLastTimeline ({ commit }, value) {\n commit('setLastTimeline', value)\n }\n }\n}\n\nexport default interfaceMod\n","import { getPreset, applyTheme } from '../services/style_setter/style_setter.js'\nimport { CURRENT_VERSION } from '../services/theme_data/theme_data.service.js'\nimport apiService from '../services/api/api.service.js'\nimport { instanceDefaultProperties } from './config.js'\nimport { langCodeToCldrName, ensureFinalFallback } from '../i18n/languages.js'\n\nconst SORTED_EMOJI_GROUP_IDS = [\n 'smileys-and-emotion',\n 'people-and-body',\n 'animals-and-nature',\n 'food-and-drink',\n 'travel-and-places',\n 'activities',\n 'objects',\n 'symbols',\n 'flags'\n]\n\nconst REGIONAL_INDICATORS = (() => {\n const start = 0x1F1E6\n const end = 0x1F1FF\n const A = 'A'.codePointAt(0)\n const res = new Array(end - start + 1)\n for (let i = start; i <= end; ++i) {\n const letter = String.fromCodePoint(A + i - start)\n res[i - start] = {\n replacement: String.fromCodePoint(i),\n imageUrl: false,\n displayText: 'regional_indicator_' + letter,\n displayTextI18n: {\n key: 'emoji.regional_indicator',\n args: { letter }\n }\n }\n }\n return res\n})()\n\nconst REMOTE_INTERACTION_URL = '/main/ostatus'\n\nconst defaultState = {\n // Stuff from apiConfig\n name: 'Pleroma FE',\n registrationOpen: true,\n server: 'http://localhost:4040/',\n textlimit: 5000,\n themeData: undefined,\n vapidPublicKey: undefined,\n\n // Stuff from static/config.json\n alwaysShowSubjectInput: true,\n defaultAvatar: '/images/avi.png',\n defaultBanner: '/images/banner.png',\n background: '/static/aurora_borealis.jpg',\n collapseMessageWithSubject: false,\n greentext: false,\n useAtIcon: false,\n mentionLinkDisplay: 'short',\n mentionLinkShowTooltip: true,\n mentionLinkShowAvatar: false,\n mentionLinkFadeDomain: true,\n mentionLinkShowYous: false,\n mentionLinkBoldenYou: true,\n hideFilteredStatuses: false,\n // bad name: actually hides posts of muted USERS\n hideMutedPosts: false,\n hideMutedThreads: true,\n hideWordFilteredPosts: false,\n hidePostStats: false,\n hideBotIndication: false,\n hideSitename: false,\n hideUserStats: false,\n muteBotStatuses: false,\n modalOnRepeat: false,\n modalOnUnfollow: false,\n modalOnBlock: true,\n modalOnMute: false,\n modalOnDelete: true,\n modalOnLogout: true,\n modalOnApproveFollow: false,\n modalOnDenyFollow: false,\n modalOnRemoveUserFromFollowers: false,\n loginMethod: 'password',\n logo: '/static/logo.svg',\n logoMargin: '.2em',\n logoMask: true,\n logoLeft: false,\n disableUpdateNotification: false,\n minimalScopesMode: false,\n nsfwCensorImage: undefined,\n postContentType: 'text/plain',\n redirectRootLogin: '/main/friends',\n redirectRootNoLogin: '/main/all',\n scopeCopy: true,\n showFeaturesPanel: true,\n showInstanceSpecificPanel: false,\n sidebarRight: false,\n subjectLineBehavior: 'email',\n theme: 'pleroma-dark',\n virtualScrolling: true,\n sensitiveByDefault: false,\n conversationDisplay: 'linear',\n conversationTreeAdvanced: false,\n conversationOtherRepliesButton: 'below',\n conversationTreeFadeAncestors: false,\n maxDepthInThread: 6,\n autocompleteSelect: false,\n\n // Nasty stuff\n customEmoji: [],\n customEmojiFetched: false,\n emoji: {},\n emojiFetched: false,\n unicodeEmojiAnnotations: {},\n pleromaBackend: true,\n postFormats: [],\n restrictedNicknames: [],\n safeDM: true,\n knownDomains: [],\n birthdayRequired: false,\n birthdayMinAge: 0,\n\n // Feature-set, apparently, not everything here is reported...\n shoutAvailable: false,\n pleromaChatMessagesAvailable: false,\n pleromaCustomEmojiReactionsAvailable: false,\n gopherAvailable: false,\n mediaProxyAvailable: false,\n suggestionsEnabled: false,\n suggestionsWeb: '',\n quotingAvailable: false,\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 loadAnnotations = (lang) => {\n return import(\n /* webpackChunkName: \"emoji-annotations/[request]\" */\n `@kazvmoe-infra/unicode-emoji-json/annotations/${langCodeToCldrName(lang)}.json`\n )\n .then(k => k.default)\n}\n\nconst injectAnnotations = (emoji, annotations) => {\n const availableLangs = Object.keys(annotations)\n\n return {\n ...emoji,\n annotations: availableLangs.reduce((acc, cur) => {\n acc[cur] = annotations[cur][emoji.replacement]\n return acc\n }, {})\n }\n}\n\nconst injectRegionalIndicators = groups => {\n groups.symbols.push(...REGIONAL_INDICATORS)\n return groups\n}\n\nconst instance = {\n state: defaultState,\n mutations: {\n setInstanceOption (state, { name, value }) {\n if (typeof value !== 'undefined') {\n state[name] = value\n }\n },\n setKnownDomains (state, domains) {\n state.knownDomains = domains\n },\n setUnicodeEmojiAnnotations (state, { lang, annotations }) {\n state.unicodeEmojiAnnotations[lang] = annotations\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 groupedCustomEmojis (state) {\n const packsOf = emoji => {\n const packs = emoji.tags\n .filter(k => k.startsWith('pack:'))\n .map(k => {\n const packName = k.slice(5) // remove 'pack:' prefix\n return {\n id: `custom-${packName}`,\n text: packName\n }\n })\n\n if (!packs.length) {\n return [{\n id: 'unpacked'\n }]\n } else {\n return packs\n }\n }\n\n return state.customEmoji\n .reduce((res, emoji) => {\n packsOf(emoji).forEach(({ id: packId, text: packName }) => {\n if (!res[packId]) {\n res[packId] = ({\n id: packId,\n text: packName,\n image: emoji.imageUrl,\n emojis: []\n })\n }\n res[packId].emojis.push(emoji)\n })\n return res\n }, {})\n },\n standardEmojiList (state) {\n return SORTED_EMOJI_GROUP_IDS\n .map(groupId => (state.emoji[groupId] || []).map(k => injectAnnotations(k, state.unicodeEmojiAnnotations)))\n .reduce((a, b) => a.concat(b), [])\n },\n standardEmojiGroupList (state) {\n return SORTED_EMOJI_GROUP_IDS.map(groupId => ({\n id: groupId,\n emojis: (state.emoji[groupId] || []).map(k => injectAnnotations(k, state.unicodeEmojiAnnotations))\n }))\n },\n instanceDomain (state) {\n return new URL(state.server).hostname\n },\n remoteInteractionLink (state) {\n const server = state.server.endsWith('/') ? state.server.slice(0, -1) : state.server\n const link = server + REMOTE_INTERACTION_URL\n\n return ({ statusId, nickname }) => {\n if (statusId) {\n return `${link}?status_id=${statusId}`\n } else {\n return `${link}?nickname=${nickname}`\n }\n }\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 'shoutAvailable':\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 values = (await import(/* webpackChunkName: 'emoji' */ '../../static/emoji.json')).default\n\n const emoji = Object.keys(values).reduce((res, groupId) => {\n res[groupId] = values[groupId].map(e => ({\n displayText: e.slug,\n imageUrl: false,\n replacement: e.emoji\n }))\n return res\n }, {})\n commit('setInstanceOption', { name: 'emoji', value: injectRegionalIndicators(emoji) })\n } catch (e) {\n console.warn(\"Can't load static emoji\")\n console.warn(e)\n }\n },\n\n loadUnicodeEmojiData ({ commit, state }, language) {\n const langList = ensureFinalFallback(language)\n\n return Promise.all(\n langList\n .map(async lang => {\n if (!state.unicodeEmojiAnnotations[lang]) {\n try {\n const annotations = await loadAnnotations(lang)\n commit('setUnicodeEmojiAnnotations', { lang, annotations })\n } catch (e) {\n console.warn(`Error loading unicode emoji annotations for ${lang}: `, e)\n // ignore\n }\n }\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 caseInsensitiveStrCmp = (a, b) => {\n const la = a.toLowerCase()\n const lb = b.toLowerCase()\n return la > lb ? 1 : (la < lb ? -1 : 0)\n }\n const noPackLast = (a, b) => {\n const aNull = a === ''\n const bNull = b === ''\n if (aNull === bNull) {\n return 0\n } else if (aNull && !bNull) {\n return 1\n } else {\n return -1\n }\n }\n const byPackThenByName = (a, b) => {\n const packOf = emoji => (emoji.tags.filter(k => k.startsWith('pack:'))[0] || '').slice(5)\n const packOfA = packOf(a)\n const packOfB = packOf(b)\n return noPackLast(packOfA, packOfB) || caseInsensitiveStrCmp(packOfA, packOfB) || caseInsensitiveStrCmp(a.displayText, b.displayText)\n }\n\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(byPackThenByName)\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 async getKnownDomains ({ commit, rootState }) {\n try {\n const result = await apiService.fetchKnownDomains({\n credentials: rootState.users.currentUser.credentials\n })\n commit('setKnownDomains', result)\n } catch (e) {\n console.warn(\"Can't load known domains\")\n console.warn(e)\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 {\n isStatusNotification,\n isValidNotification,\n maybeShowNotification\n} from '../services/notification_utils/notification_utils.js'\nimport apiService from '../services/api/api.service.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})\n\nexport const defaultState = () => ({\n allStatuses: [],\n allStatusesObject: {},\n conversationsObject: {},\n maxId: 0,\n notifications: emptyNotifications(),\n favorites: new Set(),\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 bookmarks: emptyTl(),\n list: 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 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 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 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 = {}, noIdUpdate = false, userId, pagination = {} }) => {\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 // Mismatch between API pagination and our internal minId/maxId tracking systems:\n // pagination.maxId is the oldest of the returned statuses when fetching older,\n // and pagination.minId is the newest when fetching newer. The names come directly\n // from the arguments they're supposed to be passed as for the next fetch.\n const minNew = pagination.maxId || (statuses.length > 0 ? minBy(statuses, 'id').id : 0)\n const maxNew = pagination.minId || (statuses.length > 0 ? maxBy(statuses, 'id').id : 0)\n\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 if (status.quote) {\n addStatus(status.quote, /* showImmediately = */ false, /* addToTimeline = */ false)\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 edit: (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 && !(timeline === 'bookmarks')) {\n sortTimeline(timelineObject)\n }\n}\n\nconst updateNotificationsMinMaxId = (state, notification) => {\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\nconst addNewNotifications = (state, { dispatch, notifications, older, visibleNotificationTypes, rootGetters, newNotificationSideEffects }) => {\n each(notifications, (notification) => {\n // If invalid notification, update ids but don't add it to store\n if (!isValidNotification(notification)) {\n console.error('Invalid notification:', notification)\n updateNotificationsMinMaxId(state, notification)\n return\n }\n\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:report') {\n dispatch('addReport', notification.report)\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 // eslint-disable-next-line no-prototype-builtins\n if (!state.notifications.idStore.hasOwnProperty(notification.id)) {\n updateNotificationsMinMaxId(state, notification)\n\n state.notifications.data.push(notification)\n state.notifications.idStore[notification.id] = notification\n\n newNotificationSideEffects(notification)\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 setBookmarked (state, { status, value }) {\n const newStatus = state.allStatusesObject[status.id]\n newStatus.bookmarked = value\n },\n setBookmarkedConfirm (state, { status }) {\n const newStatus = state.allStatusesObject[status.id]\n newStatus.bookmarked = status.bookmarked\n },\n setDeleted (state, { status }) {\n const newStatus = state.allStatusesObject[status.id]\n if (newStatus) newStatus.deleted = true\n },\n setManyDeleted (state, condition) {\n Object.values(state.allStatusesObject).forEach(status => {\n if (condition(status)) {\n status.deleted = true\n }\n })\n },\n setLoading (state, { timeline, value }) {\n state.timelines[timeline].loading = value\n },\n setNsfw (state, { id, nsfw }) {\n const newStatus = state.allStatusesObject[id]\n newStatus.nsfw = nsfw\n },\n setNotificationsLoading (state, { value }) {\n state.notifications.loading = value\n },\n setNotificationsSilence (state, { value }) {\n state.notifications.desktopNotificationSilence = value\n },\n markNotificationsAsSeen (state) {\n each(state.notifications.data, (notification) => {\n notification.seen = true\n })\n },\n markSingleNotificationAsSeen (state, { id }) {\n const notification = find(state.notifications.data, n => n.id === id)\n if (notification) notification.seen = true\n },\n dismissNotification (state, { id }) {\n state.notifications.data = state.notifications.data.filter(n => n.id !== id)\n },\n dismissNotifications (state, { finder }) {\n state.notifications.data = state.notifications.data.filter(n => finder)\n },\n updateNotification (state, { id, updater }) {\n const notification = find(state.notifications.data, n => n.id === id)\n notification && updater(notification)\n },\n queueFlush (state, { timeline, id }) {\n state.timelines[timeline].flushMarker = id\n },\n queueFlushAll (state) {\n Object.keys(state.timelines).forEach((timeline) => {\n state.timelines[timeline].flushMarker = state.timelines[timeline].maxId\n })\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 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 status.emoji_reactions[reactionIndex] = newReaction\n } else {\n 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 status.emoji_reactions[reactionIndex] = newReaction\n } else {\n 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 setVirtualHeight (state, { statusId, height }) {\n state.allStatusesObject[statusId].virtualHeight = height\n }\n}\n\nconst statuses = {\n state: defaultState(),\n actions: {\n addNewStatuses ({ rootState, commit }, { statuses, showImmediately = false, timeline = false, noIdUpdate = false, userId, pagination }) {\n commit('addNewStatuses', { statuses, showImmediately, timeline, noIdUpdate, user: rootState.users.currentUser, userId, pagination })\n },\n addNewNotifications (store, { notifications, older }) {\n const { commit, dispatch, rootGetters } = store\n\n const newNotificationSideEffects = (notification) => {\n maybeShowNotification(store, notification)\n }\n commit('addNewNotifications', { dispatch, notifications, older, rootGetters, newNotificationSideEffects })\n },\n setNotificationsLoading ({ rootState, commit }, { value }) {\n commit('setNotificationsLoading', { 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 fetchStatusSource ({ rootState, dispatch }, status) {\n return apiService.fetchStatusSource({ id: status.id, credentials: rootState.users.currentUser.credentials })\n },\n fetchStatusHistory ({ rootState, dispatch }, status) {\n return apiService.fetchStatusHistory({ status })\n },\n deleteStatus ({ rootState, commit, dispatch }, status) {\n apiService.deleteStatus({ id: status.id, credentials: rootState.users.currentUser.credentials })\n .then((_) => {\n commit('setDeleted', { status })\n })\n .catch((e) => {\n dispatch('pushGlobalNotice', {\n level: 'error',\n messageKey: 'status.delete_error',\n messageArgs: [e.message],\n timeout: 5000\n })\n })\n },\n deleteStatusById ({ rootState, commit }, id) {\n const status = rootState.statuses.allStatusesObject[id]\n commit('setDeleted', { status })\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 bookmark ({ rootState, commit }, status) {\n commit('setBookmarked', { status, value: true })\n rootState.api.backendInteractor.bookmarkStatus({ id: status.id })\n .then(status => {\n commit('setBookmarkedConfirm', { status })\n })\n },\n unbookmark ({ rootState, commit }, status) {\n commit('setBookmarked', { status, value: false })\n rootState.api.backendInteractor.unbookmarkStatus({ id: status.id })\n .then(status => {\n commit('setBookmarkedConfirm', { status })\n })\n },\n queueFlush ({ rootState, commit }, { timeline, id }) {\n commit('queueFlush', { timeline, id })\n },\n queueFlushAll ({ rootState, commit }) {\n commit('queueFlushAll')\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 return 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, type }) {\n return store.rootState.api.backendInteractor.search2({ q, resolve, limit, offset, following, type })\n .then((data) => {\n store.commit('addNewUsers', data.accounts)\n store.commit('addNewUsers', data.statuses.map(s => s.user).filter(u => u))\n store.commit('addNewStatuses', { statuses: data.statuses })\n return data\n })\n },\n setVirtualHeight ({ commit }, { statusId, height }) {\n commit('setVirtualHeight', { statusId, height })\n }\n },\n mutations\n}\n\nexport default statuses\n","import { remove, find } from 'lodash'\n\nexport const defaultState = {\n allLists: [],\n allListsObject: {}\n}\n\nexport const mutations = {\n setLists (state, value) {\n state.allLists = value\n },\n setList (state, { listId, title }) {\n if (!state.allListsObject[listId]) {\n state.allListsObject[listId] = { accountIds: [] }\n }\n state.allListsObject[listId].title = title\n\n const entry = find(state.allLists, { id: listId })\n if (!entry) {\n state.allLists.push({ id: listId, title })\n } else {\n entry.title = title\n }\n },\n setListAccounts (state, { listId, accountIds }) {\n if (!state.allListsObject[listId]) {\n state.allListsObject[listId] = { accountIds: [] }\n }\n state.allListsObject[listId].accountIds = accountIds\n },\n addListAccount (state, { listId, accountId }) {\n if (!state.allListsObject[listId]) {\n state.allListsObject[listId] = { accountIds: [] }\n }\n state.allListsObject[listId].accountIds.push(accountId)\n },\n removeListAccount (state, { listId, accountId }) {\n if (!state.allListsObject[listId]) {\n state.allListsObject[listId] = { accountIds: [] }\n }\n const { accountIds } = state.allListsObject[listId]\n const set = new Set(accountIds)\n set.delete(accountId)\n state.allListsObject[listId].accountIds = [...set]\n },\n deleteList (state, { listId }) {\n delete state.allListsObject[listId]\n remove(state.allLists, list => list.id === listId)\n }\n}\n\nconst actions = {\n setLists ({ commit }, value) {\n commit('setLists', value)\n },\n createList ({ rootState, commit }, { title }) {\n return rootState.api.backendInteractor.createList({ title })\n .then((list) => {\n commit('setList', { listId: list.id, title })\n return list\n })\n },\n fetchList ({ rootState, commit }, { listId }) {\n return rootState.api.backendInteractor.getList({ listId })\n .then((list) => commit('setList', { listId: list.id, title: list.title }))\n },\n fetchListAccounts ({ rootState, commit }, { listId }) {\n return rootState.api.backendInteractor.getListAccounts({ listId })\n .then((accountIds) => commit('setListAccounts', { listId, accountIds }))\n },\n setList ({ rootState, commit }, { listId, title }) {\n rootState.api.backendInteractor.updateList({ listId, title })\n commit('setList', { listId, title })\n },\n setListAccounts ({ rootState, commit }, { listId, accountIds }) {\n const saved = rootState.lists.allListsObject[listId].accountIds || []\n const added = accountIds.filter(id => !saved.includes(id))\n const removed = saved.filter(id => !accountIds.includes(id))\n commit('setListAccounts', { listId, accountIds })\n if (added.length > 0) {\n rootState.api.backendInteractor.addAccountsToList({ listId, accountIds: added })\n }\n if (removed.length > 0) {\n rootState.api.backendInteractor.removeAccountsFromList({ listId, accountIds: removed })\n }\n },\n addListAccount ({ rootState, commit }, { listId, accountId }) {\n return rootState\n .api\n .backendInteractor\n .addAccountsToList({ listId, accountIds: [accountId] })\n .then((result) => {\n commit('addListAccount', { listId, accountId })\n return result\n })\n },\n removeListAccount ({ rootState, commit }, { listId, accountId }) {\n return rootState\n .api\n .backendInteractor\n .removeAccountsFromList({ listId, accountIds: [accountId] })\n .then((result) => {\n commit('removeListAccount', { listId, accountId })\n return result\n })\n },\n deleteList ({ rootState, commit }, { listId }) {\n rootState.api.backendInteractor.deleteList({ listId })\n commit('deleteList', { listId })\n }\n}\n\nexport const getters = {\n findListTitle: state => id => {\n if (!state.allListsObject[id]) return\n return state.allListsObject[id].title\n },\n findListAccounts: state => id => {\n return [...state.allListsObject[id].accountIds]\n }\n}\n\nconst lists = {\n state: defaultState,\n mutations,\n actions,\n getters\n}\n\nexport default lists\n","import { camelCase } from 'lodash'\n\nimport apiService from '../api/api.service.js'\nimport { promiseInterval } from '../promise_interval/promise_interval.js'\n\nconst update = ({ store, statuses, timeline, showImmediately, userId, listId, pagination }) => {\n const ccTimeline = camelCase(timeline)\n\n store.dispatch('addNewStatuses', {\n timeline: ccTimeline,\n userId,\n listId,\n statuses,\n showImmediately,\n pagination\n })\n}\n\nconst fetchAndUpdate = ({\n store,\n credentials,\n timeline = 'friends',\n older = false,\n showImmediately = false,\n userId = false,\n listId = false,\n tag = false,\n until,\n since\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, replyVisibility } = getters.mergedConfig\n const loggedIn = !!rootState.users.currentUser\n\n if (older) {\n args.until = until || timelineData.minId\n } else {\n if (since === undefined) {\n args.since = timelineData.maxId\n } else if (since !== null) {\n args.since = since\n }\n }\n\n args.userId = userId\n args.listId = listId\n args.tag = tag\n args.withMuted = !hideMutedPosts\n if (loggedIn && ['friends', 'public', 'publicAndExternal'].includes(timeline)) {\n args.replyVisibility = replyVisibility\n }\n\n const numStatusesBeforeFetch = timelineData.statuses.length\n\n return apiService.fetchTimeline(args)\n .then(response => {\n if (response.errors) {\n throw new Error(`${response.status} ${response.statusText}`)\n }\n\n const { data: statuses, pagination } = response\n if (!older && statuses.length >= 20 && !timelineData.loading && numStatusesBeforeFetch > 0) {\n store.dispatch('queueFlush', { timeline, id: timelineData.maxId })\n }\n update({ store, statuses, timeline, showImmediately, userId, listId, pagination })\n return { statuses, pagination }\n })\n .catch((error) => {\n store.dispatch('pushGlobalNotice', {\n level: 'error',\n messageKey: 'timeline.error',\n messageArgs: [error.message],\n timeout: 5000\n })\n })\n}\n\nconst startFetching = ({ timeline = 'friends', credentials, store, userId = false, listId = 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 timelineData.listId = listId\n fetchAndUpdate({ timeline, credentials, store, showImmediately, userId, listId, tag })\n const boundFetchAndUpdate = () =>\n fetchAndUpdate({ timeline, credentials, store, userId, listId, tag })\n return promiseInterval(boundFetchAndUpdate, 10000)\n}\nconst timelineFetcher = {\n fetchAndUpdate,\n startFetching\n}\n\nexport default timelineFetcher\n","import apiService from '../api/api.service.js'\nimport { promiseInterval } from '../promise_interval/promise_interval.js'\n\nconst fetchAndUpdate = ({ store, credentials }) => {\n return apiService.fetchFollowRequests({ credentials })\n .then((requests) => {\n store.commit('setFollowRequests', requests)\n store.commit('addNewUsers', requests)\n }, () => {})\n .catch(() => {})\n}\n\nconst startFetching = ({ credentials, store }) => {\n const boundFetchAndUpdate = () => fetchAndUpdate({ credentials, store })\n boundFetchAndUpdate()\n return promiseInterval(boundFetchAndUpdate, 10000)\n}\n\nconst followRequestFetcher = {\n startFetching\n}\n\nexport default followRequestFetcher\n","import apiService from '../api/api.service.js'\nimport { promiseInterval } from '../promise_interval/promise_interval.js'\n\nconst fetchAndUpdate = ({ store, credentials }) => {\n return apiService.fetchLists({ credentials })\n .then(lists => {\n store.commit('setLists', lists)\n }, () => {})\n .catch(() => {})\n}\n\nconst startFetching = ({ credentials, store }) => {\n const boundFetchAndUpdate = () => fetchAndUpdate({ credentials, store })\n boundFetchAndUpdate()\n return promiseInterval(boundFetchAndUpdate, 240000)\n}\n\nconst listsFetcher = {\n startFetching\n}\n\nexport default listsFetcher\n","import apiService, { getMastodonSocketURI, ProcessedWS } from '../api/api.service.js'\nimport timelineFetcher 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'\nimport listsFetcher from '../../services/lists_fetcher/lists_fetcher.service.js'\n\nconst backendInteractorService = credentials => ({\n startFetchingTimeline ({ timeline, store, userId = false, listId = false, tag }) {\n return timelineFetcher.startFetching({ timeline, store, credentials, userId, listId, tag })\n },\n\n fetchTimeline (args) {\n return timelineFetcher.fetchAndUpdate({ ...args, credentials })\n },\n\n startFetchingNotifications ({ store }) {\n return notificationsFetcher.startFetching({ store, credentials })\n },\n\n fetchNotifications (args) {\n return notificationsFetcher.fetchAndUpdate({ ...args, credentials })\n },\n\n startFetchingFollowRequests ({ store }) {\n return followRequestFetcher.startFetching({ store, credentials })\n },\n\n startFetchingLists ({ store }) {\n return listsFetcher.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","\nexport const windowWidth = () =>\n window.innerWidth ||\n document.documentElement.clientWidth ||\n document.body.clientWidth\n\nexport const windowHeight = () =>\n window.innerHeight ||\n document.documentElement.clientHeight ||\n document.body.clientHeight\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-webpack5-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 { windowWidth, windowHeight } from '../services/window_utils/window_utils'\nimport oauthApi from '../services/new_api/oauth.js'\nimport { compact, map, each, mergeWith, last, concat, uniq, isArray } from 'lodash'\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 mergeWith(oldItem, item, mergeArrayLength)\n return { item: oldItem, new: false }\n } else {\n // This is a new item, prepare it\n arr.push(item)\n obj[item.id] = item\n return { item, new: true }\n }\n}\n\nconst mergeArrayLength = (oldValue, newValue) => {\n if (isArray(oldValue) && isArray(newValue)) {\n oldValue.length = newValue.length\n return mergeWith(oldValue, newValue, mergeArrayLength)\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 removeUserFromFollowers = (store, id) => {\n return store.rootState.api.backendInteractor.removeUserFromFollowers({ id })\n .then((relationship) => store.commit('updateUserRelationship', [relationship]))\n}\n\nconst editUserNote = (store, { id, comment }) => {\n return store.rootState.api.backendInteractor.editUserNote({ id, comment })\n .then((relationship) => store.commit('updateUserRelationship', [relationship]))\n}\n\nconst muteUser = (store, args) => {\n const id = typeof args === 'object' ? args.id : args\n const expiresIn = typeof args === 'object' ? args.expiresIn : 0\n\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, expiresIn })\n .then((relationship) => {\n store.commit('updateUserRelationship', [relationship])\n store.commit('addMuteId', id)\n })\n}\n\nconst unmuteUser = (store, id) => {\n const predictedRelationship = store.state.relationships[id] || { id }\n predictedRelationship.muting = false\n store.commit('updateUserRelationship', [predictedRelationship])\n\n return store.rootState.api.backendInteractor.unmuteUser({ id })\n .then((relationship) => store.commit('updateUserRelationship', [relationship]))\n}\n\nconst hideReblogs = (store, userId) => {\n return store.rootState.api.backendInteractor.followUser({ id: userId, reblogs: false })\n .then((relationship) => {\n store.commit('updateUserRelationship', [relationship])\n })\n}\n\nconst showReblogs = (store, userId) => {\n return store.rootState.api.backendInteractor.followUser({ id: userId, reblogs: true })\n .then((relationship) => store.commit('updateUserRelationship', [relationship]))\n}\n\nconst muteDomain = (store, domain) => {\n return store.rootState.api.backendInteractor.muteDomain({ domain })\n .then(() => store.commit('addDomainMute', domain))\n}\n\nconst unmuteDomain = (store, domain) => {\n return store.rootState.api.backendInteractor.unmuteDomain({ domain })\n .then(() => store.commit('removeDomainMute', domain))\n}\n\nexport const mutations = {\n tagUser (state, { user: { id }, tag }) {\n const user = state.usersObject[id]\n const tags = user.tags || []\n const newTags = tags.concat([tag])\n 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 user.tags = newTags\n },\n updateRight (state, { user: { id }, right, value }) {\n const user = state.usersObject[id]\n const newRights = user.rights\n newRights[right] = value\n user.rights = newRights\n },\n updateActivationStatus (state, { user: { id }, deactivated }) {\n const user = state.usersObject[id]\n user.deactivated = deactivated\n },\n setCurrentUser (state, user) {\n state.lastLoginName = user.screen_name\n state.currentUser = mergeWith(state.currentUser || {}, user, mergeArrayLength)\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 user.friendIds = []\n }\n },\n clearFollowers (state, userId) {\n const user = state.usersObject[userId]\n if (user) {\n user.followerIds = []\n }\n },\n addNewUsers (state, users) {\n each(users, (user) => {\n if (user.relationship) {\n state.relationships[user.relationship.id] = user.relationship\n }\n const res = mergeOrAdd(state.users, state.usersObject, user)\n const item = res.item\n if (res.new && item.screen_name && !item.screen_name.includes('@')) {\n state.usersByNameObject[item.screen_name.toLowerCase()] = item\n }\n })\n },\n updateUserRelationship (state, relationships) {\n relationships.forEach((relationship) => {\n state.relationships[relationship.id] = relationship\n })\n },\n updateUserInLists (state, { id, inLists }) {\n state.usersObject[id].inLists = inLists\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 setBlockIdsMaxId (state, blockIdsMaxId) {\n state.currentUser.blockIdsMaxId = blockIdsMaxId\n },\n saveMuteIds (state, muteIds) {\n state.currentUser.muteIds = muteIds\n },\n setMuteIdsMaxId (state, muteIdsMaxId) {\n state.currentUser.muteIdsMaxId = muteIdsMaxId\n },\n addMuteId (state, muteId) {\n if (state.currentUser.muteIds.indexOf(muteId) === -1) {\n state.currentUser.muteIds.push(muteId)\n }\n },\n saveDomainMutes (state, domainMutes) {\n state.currentUser.domainMutes = domainMutes\n },\n addDomainMute (state, domain) {\n if (state.currentUser.domainMutes.indexOf(domain) === -1) {\n state.currentUser.domainMutes.push(domain)\n }\n },\n removeDomainMute (state, domain) {\n const index = state.currentUser.domainMutes.indexOf(domain)\n if (index !== -1) {\n state.currentUser.domainMutes.splice(index, 1)\n }\n },\n setPinnedToUser (state, status) {\n const user = state.usersObject[status.user.id]\n user.pinnedStatusIds = user.pinnedStatusIds || []\n const index = user.pinnedStatusIds.indexOf(status.id)\n\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 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 return state.usersObject[query]\n },\n findUserByName: state => query => {\n return state.usersByNameObject[query.toLowerCase()]\n },\n findUserByUrl: state => query => {\n return state.users\n .find(u => u.statusnet_profile_url &&\n u.statusnet_profile_url.toLowerCase() === query.toLowerCase())\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 usersByNameObject: {},\n signUpPending: false,\n signUpErrors: [],\n relationships: {}\n}\n\nconst users = {\n state: defaultState,\n mutations,\n getters,\n actions: {\n fetchUserIfMissing (store, id) {\n if (!store.getters.findUser(id)) {\n store.dispatch('fetchUser', id)\n }\n },\n fetchUser (store, id) {\n return store.rootState.api.backendInteractor.fetchUser({ id })\n .then((user) => {\n store.commit('addNewUsers', [user])\n return user\n })\n },\n fetchUserByName (store, name) {\n return store.rootState.api.backendInteractor.fetchUserByName({ name })\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 fetchUserInLists (store, id) {\n if (store.state.currentUser) {\n store.rootState.api.backendInteractor.fetchUserInLists({ id })\n .then((inLists) => store.commit('updateUserInLists', { id, inLists }))\n }\n },\n fetchBlocks (store, args) {\n const { reset } = args || {}\n\n const maxId = store.state.currentUser.blockIdsMaxId\n return store.rootState.api.backendInteractor.fetchBlocks({ maxId })\n .then((blocks) => {\n if (reset) {\n store.commit('saveBlockIds', map(blocks, 'id'))\n } else {\n map(blocks, 'id').map(id => store.commit('addBlockId', id))\n }\n if (blocks.length) {\n store.commit('setBlockIdsMaxId', last(blocks).id)\n }\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 removeUserFromFollowers (store, id) {\n return removeUserFromFollowers(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 editUserNote (store, args) {\n return editUserNote(store, args)\n },\n fetchMutes (store, args) {\n const { reset } = args || {}\n\n const maxId = store.state.currentUser.muteIdsMaxId\n return store.rootState.api.backendInteractor.fetchMutes({ maxId })\n .then((mutes) => {\n if (reset) {\n store.commit('saveMuteIds', map(mutes, 'id'))\n } else {\n map(mutes, 'id').map(id => store.commit('addMuteId', id))\n }\n if (mutes.length) {\n store.commit('setMuteIdsMaxId', last(mutes).id)\n }\n store.commit('addNewUsers', mutes)\n return mutes\n })\n },\n muteUser (store, id) {\n return muteUser(store, id)\n },\n unmuteUser (store, id) {\n return unmuteUser(store, id)\n },\n hideReblogs (store, id) {\n return hideReblogs(store, id)\n },\n showReblogs (store, id) {\n return showReblogs(store, id)\n },\n muteUsers (store, ids = []) {\n return Promise.all(ids.map(id => muteUser(store, id)))\n },\n unmuteUsers (store, ids = []) {\n return Promise.all(ids.map(id => unmuteUser(store, id)))\n },\n fetchDomainMutes (store) {\n return store.rootState.api.backendInteractor.fetchDomainMutes()\n .then((domainMutes) => {\n store.commit('saveDomainMutes', domainMutes)\n return domainMutes\n })\n },\n muteDomain (store, domain) {\n return muteDomain(store, domain)\n },\n unmuteDomain (store, domain) {\n return unmuteDomain(store, domain)\n },\n muteDomains (store, domains = []) {\n return Promise.all(domains.map(domain => muteDomain(store, domain)))\n },\n unmuteDomains (store, domain = []) {\n return Promise.all(domain.map(domain => unmuteDomain(store, domain)))\n },\n fetchFriends ({ rootState, commit }, id) {\n const user = rootState.users.usersObject[id]\n const maxId = last(user.friendIds)\n return rootState.api.backendInteractor.fetchFriends({ id, maxId })\n .then((friends) => {\n commit('addNewUsers', friends)\n commit('saveFriendIds', { id, friendIds: map(friends, 'id') })\n return friends\n })\n },\n fetchFollowers ({ rootState, commit }, id) {\n const user = rootState.users.usersObject[id]\n const maxId = last(user.followerIds)\n return rootState.api.backendInteractor.fetchFollowers({ id, maxId })\n .then((followers) => {\n commit('addNewUsers', followers)\n commit('saveFollowerIds', { id, followerIds: map(followers, 'id') })\n return followers\n })\n },\n clearFriends ({ commit }, userId) {\n commit('clearFriends', userId)\n },\n clearFollowers ({ commit }, userId) {\n commit('clearFollowers', userId)\n },\n subscribeUser ({ rootState, commit }, id) {\n return rootState.api.backendInteractor.subscribeUser({ id })\n .then((relationship) => commit('updateUserRelationship', [relationship]))\n },\n unsubscribeUser ({ rootState, commit }, id) {\n return rootState.api.backendInteractor.unsubscribeUser({ id })\n .then((relationship) => commit('updateUserRelationship', [relationship]))\n },\n toggleActivationStatus ({ rootState, commit }, { user }) {\n const api = user.deactivated ? rootState.api.backendInteractor.activateUser : rootState.api.backendInteractor.deactivateUser\n api({ user })\n .then((user) => { const deactivated = !user.is_active; 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 ({ rootState, commit }, { query }) {\n return rootState.api.backendInteractor.searchUsers({ query })\n .then((users) => {\n commit('addNewUsers', users)\n return users\n })\n },\n async signUp (store, userInfo) {\n store.commit('signUpPending')\n\n const rootState = store.rootState\n\n try {\n const 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 const 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('stopFetchingLists')\n store.dispatch('stopFetchingFollowRequests')\n store.commit('clearNotifications')\n store.commit('resetStatuses')\n store.dispatch('resetChats')\n store.dispatch('setLastTimeline', 'public-timeline')\n store.dispatch('setLayoutWidth', windowWidth())\n store.dispatch('setLayoutHeight', windowHeight())\n store.commit('clearServerSideStorage')\n })\n },\n loginUser (store, accessToken) {\n return new Promise((resolve, reject) => {\n const commit = store.commit\n const dispatch = store.dispatch\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('setServerSideStorage', user)\n commit('addNewUsers', [user])\n\n dispatch('fetchEmoji')\n\n getNotificationPermission()\n .then(permission => commit('setNotificationPermission', permission))\n\n // Set our new backend interactor\n commit('setBackendInteractor', backendInteractorService(accessToken))\n dispatch('pushServerSideStorage')\n\n if (user.token) {\n dispatch('setWsToken', user.token)\n\n // Initialize the shout socket.\n dispatch('initializeSocket')\n }\n\n const startPolling = () => {\n // Start getting fresh posts.\n dispatch('startFetchingTimeline', { timeline: 'friends' })\n\n // Start fetching notifications\n dispatch('startFetchingNotifications')\n\n // Start fetching chats\n dispatch('startFetchingChats')\n }\n\n dispatch('startFetchingLists')\n\n if (user.locked) {\n dispatch('startFetchingFollowRequests')\n }\n\n if (store.getters.mergedConfig.useStreamingApi) {\n dispatch('fetchTimeline', { timeline: 'friends', since: null })\n dispatch('fetchNotifications', { since: null })\n dispatch('enableMastoSockets', true).catch((error) => {\n console.error('Failed initializing MastoAPI Streaming socket', error)\n }).then(() => {\n dispatch('fetchChats', { latest: true })\n setTimeout(() => dispatch('setNotificationsSilence', false), 10000)\n })\n } else {\n startPolling()\n }\n\n // Get user mutes\n dispatch('fetchMutes')\n\n dispatch('setLayoutWidth', windowWidth())\n dispatch('setLayoutHeight', windowHeight())\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\n // remove authentication token on client/authentication errors\n if ([400, 401, 403, 422].includes(response.status)) {\n commit('clearToken')\n }\n\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 { showDesktopNotification } from '../desktop_notification_utils/desktop_notification_utils.js'\n\nexport const maybeShowChatNotification = (store, chat) => {\n if (!chat.lastMessage) return\n if (store.rootState.chats.currentChatId === chat.id && !document.hidden) return\n if (store.rootState.users.currentUser.id === chat.lastMessage.account_id) return\n\n const opts = {\n tag: chat.lastMessage.id,\n title: chat.account.name,\n icon: chat.account.profile_image_url,\n body: chat.lastMessage.content\n }\n\n if (chat.lastMessage.attachment && chat.lastMessage.attachment.type === 'image') {\n opts.image = chat.lastMessage.attachment.preview_url\n }\n\n showDesktopNotification(store.rootState, opts)\n}\n\nexport const buildFakeMessage = ({ content, chatId, attachments, userId, idempotencyKey }) => {\n const fakeMessage = {\n content,\n chat_id: chatId,\n created_at: new Date(),\n id: `${new Date().getTime()}`,\n attachments,\n account_id: userId,\n idempotency_key: idempotencyKey,\n emojis: [],\n pending: true,\n isNormalized: true\n }\n\n if (attachments[0]) {\n fakeMessage.attachment = attachments[0]\n }\n\n return fakeMessage\n}\n","import backendInteractorService from '../services/backend_interactor_service/backend_interactor_service.js'\nimport { WSConnectionStatus } from '../services/api/api.service.js'\nimport { maybeShowChatNotification } from '../services/chat_utils/chat_utils.js'\nimport { Socket } from 'phoenix'\n\nconst retryTimeout = (multiplier) => 1000 * multiplier\n\nconst api = {\n state: {\n retryMultiplier: 1,\n backendInteractor: backendInteractorService(),\n fetchers: {},\n socket: null,\n mastoUserSocket: null,\n mastoUserSocketStatus: null,\n followRequests: []\n },\n getters: {\n followRequestCount: state => state.followRequests.length\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 state.fetchers[fetcherName].stop()\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 setMastoUserSocketStatus (state, value) {\n state.mastoUserSocketStatus = value\n },\n incrementRetryMultiplier (state) {\n state.retryMultiplier = Math.max(++state.retryMultiplier, 3)\n },\n resetRetryMultiplier (state) {\n state.retryMultiplier = 1\n }\n },\n actions: {\n /**\n * Global MastoAPI socket control, in future should disable ALL sockets/(re)start relevant sockets\n *\n * @param {Boolean} [initial] - whether this enabling happened at boot time or not\n */\n enableMastoSockets (store, initial) {\n const { state, dispatch, commit } = store\n // Do not initialize unless nonexistent or closed\n if (\n state.mastoUserSocket &&\n ![\n WebSocket.CLOSED,\n WebSocket.CLOSING\n ].includes(state.mastoUserSocket.getState())\n ) {\n return\n }\n if (initial) {\n commit('setMastoUserSocketStatus', WSConnectionStatus.STARTING_INITIAL)\n } else {\n commit('setMastoUserSocketStatus', WSConnectionStatus.STARTING)\n }\n return dispatch('startMastoUserSocket')\n },\n disableMastoSockets (store) {\n const { state, dispatch, commit } = store\n if (!state.mastoUserSocket) return\n commit('setMastoUserSocketStatus', WSConnectionStatus.DISABLED)\n return dispatch('stopMastoUserSocket')\n },\n\n // MastoAPI 'User' sockets\n startMastoUserSocket (store) {\n return new Promise((resolve, reject) => {\n try {\n const { state, commit, 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 } else if (message.event === 'status.update') {\n dispatch('addNewStatuses', {\n statuses: [message.status],\n userId: false,\n showImmediately: message.status.id in timelineData.visibleStatusesObject,\n timeline: 'friends'\n })\n } else if (message.event === 'delete') {\n dispatch('deleteStatusById', message.id)\n } else if (message.event === 'pleroma:chat_update') {\n // The setTimeout wrapper is a temporary band-aid to avoid duplicates for the user's own messages when doing optimistic sending.\n // The cause of the duplicates is the WS event arriving earlier than the HTTP response.\n // This setTimeout wrapper can be removed once the commit `8e41baff` is in the stable Pleroma release.\n // (`8e41baff` adds the idempotency key to the chat message entity, which PleromaFE uses when it's available, and it makes this artificial delay unnecessary).\n setTimeout(() => {\n dispatch('addChatMessages', {\n chatId: message.chatUpdate.id,\n messages: [message.chatUpdate.lastMessage]\n })\n dispatch('updateChat', { chat: message.chatUpdate })\n maybeShowChatNotification(store, message.chatUpdate)\n }, 100)\n }\n }\n )\n state.mastoUserSocket.addEventListener('open', () => {\n // Do not show notification when we just opened up the page\n if (state.mastoUserSocketStatus !== WSConnectionStatus.STARTING_INITIAL) {\n dispatch('pushGlobalNotice', {\n level: 'success',\n messageKey: 'timeline.socket_reconnected',\n timeout: 5000\n })\n }\n // Stop polling if we were errored or disabled\n if (new Set([\n WSConnectionStatus.ERROR,\n WSConnectionStatus.DISABLED\n ]).has(state.mastoUserSocketStatus)) {\n dispatch('stopFetchingTimeline', { timeline: 'friends' })\n dispatch('stopFetchingNotifications')\n dispatch('stopFetchingChats')\n }\n commit('resetRetryMultiplier')\n commit('setMastoUserSocketStatus', WSConnectionStatus.JOINED)\n })\n state.mastoUserSocket.addEventListener('error', ({ detail: error }) => {\n console.error('Error in MastoAPI websocket:', error)\n // TODO is this needed?\n dispatch('clearOpenedChats')\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 commit('setMastoUserSocketStatus', WSConnectionStatus.CLOSED)\n } else {\n console.warn(`MastoAPI websocket disconnected, restarting. CloseEvent code: ${code}`)\n setTimeout(() => {\n dispatch('startMastoUserSocket')\n }, retryTimeout(state.retryMultiplier))\n commit('incrementRetryMultiplier')\n if (state.mastoUserSocketStatus !== WSConnectionStatus.ERROR) {\n dispatch('startFetchingTimeline', { timeline: 'friends' })\n dispatch('startFetchingNotifications')\n dispatch('startFetchingChats')\n dispatch('pushGlobalNotice', {\n level: 'error',\n messageKey: 'timeline.socket_broke',\n messageArgs: [code],\n timeout: 5000\n })\n }\n commit('setMastoUserSocketStatus', WSConnectionStatus.ERROR)\n }\n dispatch('clearOpenedChats')\n })\n resolve()\n } catch (e) {\n reject(e)\n }\n })\n },\n stopMastoUserSocket ({ state, dispatch }) {\n dispatch('startFetchingTimeline', { timeline: 'friends' })\n dispatch('startFetchingNotifications')\n dispatch('startFetchingChats')\n state.mastoUserSocket.close()\n },\n\n // Timelines\n startFetchingTimeline (store, {\n timeline = 'friends',\n tag = false,\n userId = false,\n listId = false\n }) {\n if (store.state.fetchers[timeline]) return\n\n const fetcher = store.state.backendInteractor.startFetchingTimeline({\n timeline, store, userId, listId, 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 fetchTimeline (store, { timeline, ...rest }) {\n store.state.backendInteractor.fetchTimeline({\n store,\n timeline,\n ...rest\n })\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 fetchNotifications (store, { ...rest }) {\n store.state.backendInteractor.fetchNotifications({\n store,\n ...rest\n })\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 const requests = store.state.followRequests.filter((it) => it !== request)\n store.commit('setFollowRequests', requests)\n },\n\n // Lists\n startFetchingLists (store) {\n if (store.state.fetchers.lists) return\n const fetcher = store.state.backendInteractor.startFetchingLists({ store })\n store.commit('addFetcher', { fetcherName: 'lists', fetcher })\n },\n stopFetchingLists (store) {\n const fetcher = store.state.fetchers.lists\n if (!fetcher) return\n store.commit('removeFetcher', { fetcherName: 'lists', fetcher })\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.shoutAvailable && typeof token !== 'undefined' && state.socket === null) {\n const socket = new Socket('/socket', { params: { token } })\n socket.connect()\n\n commit('setSocket', socket)\n dispatch('initializeShout', 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","import { get, set } from 'lodash'\n\nconst defaultApi = ({ rootState, commit }, { path, value }) => {\n const params = {}\n set(params, path, value)\n return rootState\n .api\n .backendInteractor\n .updateProfile({ params })\n .then(result => {\n commit('addNewUsers', [result])\n commit('setCurrentUser', result)\n })\n}\n\nconst notificationsApi = ({ rootState, commit }, { path, value, oldValue }) => {\n const settings = {}\n set(settings, path, value)\n return rootState\n .api\n .backendInteractor\n .updateNotificationSettings({ settings })\n .then(result => {\n if (result.status === 'success') {\n commit('confirmProfileOption', { name, value })\n } else {\n commit('confirmProfileOption', { name, value: oldValue })\n }\n })\n}\n\n/**\n * Map that stores relation between path for reading (from user profile),\n * for writing (into API) an what API to use.\n *\n * Shorthand - instead of { get, set, api? } object it's possible to use string\n * in case default api is used and get = set\n *\n * If no api is specified, defaultApi is used (see above)\n */\nexport const settingsMap = {\n defaultScope: 'source.privacy',\n defaultNSFW: 'source.sensitive', // BROKEN: pleroma/pleroma#2837\n stripRichContent: {\n get: 'source.pleroma.no_rich_text',\n set: 'no_rich_text'\n },\n // Privacy\n locked: 'locked',\n acceptChatMessages: {\n get: 'pleroma.accepts_chat_messages',\n set: 'accepts_chat_messages'\n },\n allowFollowingMove: {\n get: 'pleroma.allow_following_move',\n set: 'allow_following_move'\n },\n discoverable: {\n get: 'source.pleroma.discoverable',\n set: 'discoverable'\n },\n hideFavorites: {\n get: 'pleroma.hide_favorites',\n set: 'hide_favorites'\n },\n hideFollowers: {\n get: 'pleroma.hide_followers',\n set: 'hide_followers'\n },\n hideFollows: {\n get: 'pleroma.hide_follows',\n set: 'hide_follows'\n },\n hideFollowersCount: {\n get: 'pleroma.hide_followers_count',\n set: 'hide_followers_count'\n },\n hideFollowsCount: {\n get: 'pleroma.hide_follows_count',\n set: 'hide_follows_count'\n },\n // NotificationSettingsAPIs\n webPushHideContents: {\n get: 'pleroma.notification_settings.hide_notification_contents',\n set: 'hide_notification_contents',\n api: notificationsApi\n },\n blockNotificationsFromStrangers: {\n get: 'pleroma.notification_settings.block_from_strangers',\n set: 'block_from_strangers',\n api: notificationsApi\n }\n}\n\nexport const defaultState = Object.fromEntries(Object.keys(settingsMap).map(key => [key, null]))\n\nconst profileConfig = {\n state: { ...defaultState },\n mutations: {\n confirmProfileOption (state, { name, value }) {\n set(state, name, value)\n },\n wipeProfileOption (state, { name }) {\n set(state, name, null)\n },\n wipeAllProfileOptions (state) {\n Object.keys(settingsMap).forEach(key => {\n set(state, key, null)\n })\n },\n // Set the settings based on their path location\n setCurrentUser (state, user) {\n Object.entries(settingsMap).forEach((map) => {\n const [name, value] = map\n const { get: path = value } = value\n set(state, name, get(user._original, path))\n })\n }\n },\n actions: {\n setProfileOption ({ rootState, state, commit, dispatch }, { name, value }) {\n const oldValue = get(state, name)\n const map = settingsMap[name]\n if (!map) throw new Error('Invalid server-side setting')\n const { set: path = map, api = defaultApi } = map\n commit('wipeProfileOption', { name })\n\n api({ rootState, commit }, { path, value, oldValue })\n .catch((e) => {\n console.warn('Error setting server-side option:', e)\n commit('confirmProfileOption', { name, value: oldValue })\n })\n },\n logout ({ commit }) {\n commit('wipeAllProfileOptions')\n }\n }\n}\n\nexport default profileConfig\n","import Modal from 'src/components/modal/modal.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport pleromaTan from 'src/assets/pleromatan_apology.png'\nimport pleromaTanFox from 'src/assets/pleromatan_apology_fox.png'\nimport pleromaTanMask from 'src/assets/pleromatan_apology_mask.png'\nimport pleromaTanFoxMask from 'src/assets/pleromatan_apology_fox_mask.png'\n\nimport {\n faTimes\n} from '@fortawesome/free-solid-svg-icons'\nlibrary.add(\n faTimes\n)\n\nexport const CURRENT_UPDATE_COUNTER = 1\n\nconst UpdateNotification = {\n data () {\n return {\n showingImage: false,\n pleromaTanVariant: Math.random() > 0.5 ? pleromaTan : pleromaTanFox,\n showingMore: false\n }\n },\n components: {\n Modal\n },\n computed: {\n pleromaTanStyles () {\n const mask = this.pleromaTanVariant === pleromaTan ? pleromaTanMask : pleromaTanFoxMask\n return {\n 'shape-outside': 'url(' + mask + ')'\n }\n },\n shouldShow () {\n return !this.$store.state.instance.disableUpdateNotification &&\n this.$store.state.users.currentUser &&\n this.$store.state.serverSideStorage.flagStorage.updateCounter < CURRENT_UPDATE_COUNTER &&\n !this.$store.state.serverSideStorage.prefsStorage.simple.dontShowUpdateNotifs\n }\n },\n methods: {\n toggleShow () {\n this.showingMore = !this.showingMore\n },\n neverShowAgain () {\n this.toggleShow()\n this.$store.commit('setFlag', { flag: 'updateCounter', value: CURRENT_UPDATE_COUNTER })\n this.$store.commit('setPreference', { path: 'simple.dontShowUpdateNotifs', value: true })\n this.$store.dispatch('pushServerSideStorage')\n },\n dismiss () {\n this.$store.commit('setFlag', { flag: 'updateCounter', value: CURRENT_UPDATE_COUNTER })\n this.$store.dispatch('pushServerSideStorage')\n }\n },\n mounted () {\n this.contentHeightNoImage = this.$refs.animatedText.scrollHeight\n\n // Workaround to get the text height only after mask loaded. A bit hacky.\n const newImg = new Image()\n newImg.onload = () => {\n setTimeout(() => { this.showingImage = true }, 100)\n }\n newImg.src = this.pleromaTanVariant === pleromaTan ? pleromaTanMask : pleromaTanFoxMask\n }\n}\n\nexport default UpdateNotification\n","import { toRaw } from 'vue'\nimport { isEqual, cloneDeep, set, get, clamp, flatten, groupBy, findLastIndex, takeRight, uniqWith } from 'lodash'\nimport { CURRENT_UPDATE_COUNTER } from 'src/components/update_notification/update_notification.js'\n\nexport const VERSION = 1\nexport const NEW_USER_DATE = new Date('2022-08-04') // date of writing this, basically\n\nexport const COMMAND_TRIM_FLAGS = 1000\nexport const COMMAND_TRIM_FLAGS_AND_RESET = 1001\n\nexport const defaultState = {\n // do we need to update data on server?\n dirty: false,\n // storage of flags - stuff that can only be set and incremented\n flagStorage: {\n updateCounter: 0, // Counter for most recent update notification seen\n reset: 0 // special flag that can be used to force-reset all flags, debug purposes only\n // special reset codes:\n // 1000: trim keys to those known by currently running FE\n // 1001: same as above + reset everything to 0\n },\n prefsStorage: {\n _journal: [],\n simple: {\n dontShowUpdateNotifs: false,\n collapseNav: false\n },\n collections: {\n pinnedNavItems: ['home', 'dms', 'chats']\n }\n },\n // raw data\n raw: null,\n // local cache\n cache: null\n}\n\nexport const newUserFlags = {\n ...defaultState.flagStorage,\n updateCounter: CURRENT_UPDATE_COUNTER // new users don't need to see update notification\n}\n\nexport const _moveItemInArray = (array, value, movement) => {\n const oldIndex = array.indexOf(value)\n const newIndex = oldIndex + movement\n const newArray = [...array]\n // remove old\n newArray.splice(oldIndex, 1)\n // add new\n newArray.splice(clamp(newIndex, 0, newArray.length + 1), 0, value)\n return newArray\n}\n\nconst _wrapData = (data, userName) => ({\n ...data,\n _user: userName,\n _timestamp: Date.now(),\n _version: VERSION\n})\n\nconst _checkValidity = (data) => data._timestamp > 0 && data._version > 0\n\nconst _verifyPrefs = (state) => {\n state.prefsStorage = state.prefsStorage || {\n simple: {},\n collections: {}\n }\n Object.entries(defaultState.prefsStorage.simple).forEach(([k, v]) => {\n if (typeof v === 'number' || typeof v === 'boolean') return\n console.warn(`Preference simple.${k} as invalid type, reinitializing`)\n set(state.prefsStorage.simple, k, defaultState.prefsStorage.simple[k])\n })\n Object.entries(defaultState.prefsStorage.collections).forEach(([k, v]) => {\n if (Array.isArray(v)) return\n console.warn(`Preference collections.${k} as invalid type, reinitializing`)\n set(state.prefsStorage.collections, k, defaultState.prefsStorage.collections[k])\n })\n}\n\nexport const _getRecentData = (cache, live) => {\n const result = { recent: null, stale: null, needUpload: false }\n const cacheValid = _checkValidity(cache || {})\n const liveValid = _checkValidity(live || {})\n if (!liveValid && cacheValid) {\n result.needUpload = true\n console.debug('Nothing valid stored on server, assuming cache to be source of truth')\n result.recent = cache\n result.stale = live\n } else if (!cacheValid && liveValid) {\n console.debug('Valid storage on server found, no local cache found, using live as source of truth')\n result.recent = live\n result.stale = cache\n } else if (cacheValid && liveValid) {\n console.debug('Both sources have valid data, figuring things out...')\n if (live._timestamp === cache._timestamp && live._version === cache._version) {\n console.debug('Same version/timestamp on both source, source of truth irrelevant')\n result.recent = cache\n result.stale = live\n } else {\n console.debug('Different timestamp, figuring out which one is more recent')\n if (live._timestamp < cache._timestamp) {\n result.recent = cache\n result.stale = live\n } else {\n result.recent = live\n result.stale = cache\n }\n }\n } else {\n console.debug('Both sources are invalid, start from scratch')\n result.needUpload = true\n }\n return result\n}\n\nexport const _getAllFlags = (recent, stale) => {\n return Array.from(new Set([\n ...Object.keys(toRaw((recent || {}).flagStorage || {})),\n ...Object.keys(toRaw((stale || {}).flagStorage || {}))\n ]))\n}\n\nexport const _mergeFlags = (recent, stale, allFlagKeys) => {\n if (!stale.flagStorage) return recent.flagStorage\n if (!recent.flagStorage) return stale.flagStorage\n return Object.fromEntries(allFlagKeys.map(flag => {\n const recentFlag = recent.flagStorage[flag]\n const staleFlag = stale.flagStorage[flag]\n // use flag that is of higher value\n return [flag, Number((recentFlag > staleFlag ? recentFlag : staleFlag) || 0)]\n }))\n}\n\nconst _mergeJournal = (...journals) => {\n // Ignore invalid journal entries\n const allJournals = flatten(\n journals.map(j => Array.isArray(j) ? j : [])\n ).filter(entry =>\n Object.prototype.hasOwnProperty.call(entry, 'path') &&\n Object.prototype.hasOwnProperty.call(entry, 'operation') &&\n Object.prototype.hasOwnProperty.call(entry, 'args') &&\n Object.prototype.hasOwnProperty.call(entry, 'timestamp')\n )\n const grouped = groupBy(allJournals, 'path')\n const trimmedGrouped = Object.entries(grouped).map(([path, journal]) => {\n // side effect\n journal.sort((a, b) => a.timestamp > b.timestamp ? 1 : -1)\n\n if (path.startsWith('collections')) {\n const lastRemoveIndex = findLastIndex(journal, ({ operation }) => operation === 'removeFromCollection')\n // everything before last remove is unimportant\n let remainder\n if (lastRemoveIndex > 0) {\n remainder = journal.slice(lastRemoveIndex)\n } else {\n // everything else doesn't need trimming\n remainder = journal\n }\n return uniqWith(remainder, (a, b) => {\n if (a.path !== b.path) { return false }\n if (a.operation !== b.operation) { return false }\n if (a.operation === 'addToCollection') {\n return a.args[0] === b.args[0]\n }\n return false\n })\n } else if (path.startsWith('simple')) {\n // Only the last record is important\n return takeRight(journal)\n } else {\n return journal\n }\n })\n return flatten(trimmedGrouped)\n .sort((a, b) => a.timestamp > b.timestamp ? 1 : -1)\n}\n\nexport const _mergePrefs = (recent, stale, allFlagKeys) => {\n if (!stale) return recent\n if (!recent) return stale\n const { _journal: recentJournal, ...recentData } = recent\n const { _journal: staleJournal } = stale\n /** Journal entry format:\n * path: path to entry in prefsStorage\n * timestamp: timestamp of the change\n * operation: operation type\n * arguments: array of arguments, depends on operation type\n *\n * currently only supported operation type is \"set\" which just sets the value\n * to requested one. Intended only to be used with simple preferences (boolean, number)\n * shouldn't be used with collections!\n */\n const resultOutput = { ...recentData }\n const totalJournal = _mergeJournal(staleJournal, recentJournal)\n totalJournal.forEach(({ path, timestamp, operation, command, args }) => {\n if (path.startsWith('_')) {\n console.error(`journal contains entry to edit internal (starts with _) field '${path}', something is incorrect here, ignoring.`)\n return\n }\n switch (operation) {\n case 'set':\n set(resultOutput, path, args[0])\n break\n case 'addToCollection':\n set(resultOutput, path, Array.from(new Set(get(resultOutput, path)).add(args[0])))\n break\n case 'removeFromCollection': {\n const newSet = new Set(get(resultOutput, path))\n newSet.delete(args[0])\n set(resultOutput, path, Array.from(newSet))\n break\n }\n case 'reorderCollection': {\n const [value, movement] = args\n set(resultOutput, path, _moveItemInArray(get(resultOutput, path), value, movement))\n break\n }\n default:\n console.error(`Unknown journal operation: '${operation}', did we forget to run reverse migrations beforehand?`)\n }\n })\n return { ...resultOutput, _journal: totalJournal }\n}\n\nexport const _resetFlags = (totalFlags, knownKeys = defaultState.flagStorage) => {\n let result = { ...totalFlags }\n const allFlagKeys = Object.keys(totalFlags)\n // flag reset functionality\n if (totalFlags.reset >= COMMAND_TRIM_FLAGS && totalFlags.reset <= COMMAND_TRIM_FLAGS_AND_RESET) {\n console.debug('Received command to trim the flags')\n const knownKeysSet = new Set(Object.keys(knownKeys))\n\n // Trim\n result = {}\n allFlagKeys.forEach(flag => {\n if (knownKeysSet.has(flag)) {\n result[flag] = totalFlags[flag]\n }\n })\n\n // Reset\n if (totalFlags.reset === COMMAND_TRIM_FLAGS_AND_RESET) {\n // 1001 - and reset everything to 0\n console.debug('Received command to reset the flags')\n Object.keys(knownKeys).forEach(flag => { result[flag] = 0 })\n }\n } else if (totalFlags.reset > 0 && totalFlags.reset < 9000) {\n console.debug('Received command to reset the flags')\n allFlagKeys.forEach(flag => { result[flag] = 0 })\n }\n result.reset = 0\n return result\n}\n\nexport const _doMigrations = (cache) => {\n if (!cache) return cache\n\n if (cache._version < VERSION) {\n console.debug('Local cached data has older version, seeing if there any migrations that can be applied')\n\n // no migrations right now since we only have one version\n console.debug('No migrations found')\n }\n\n if (cache._version > VERSION) {\n console.debug('Local cached data has newer version, seeing if there any reverse migrations that can be applied')\n\n // no reverse migrations right now but we leave a possibility of loading a hotpatch if need be\n if (window._PLEROMA_HOTPATCH) {\n if (window._PLEROMA_HOTPATCH.reverseMigrations) {\n console.debug('Found hotpatch migration, applying')\n return window._PLEROMA_HOTPATCH.reverseMigrations.call({}, 'serverSideStorage', { from: cache._version, to: VERSION }, cache)\n }\n }\n }\n\n return cache\n}\n\nexport const mutations = {\n clearServerSideStorage (state, userData) {\n state = { ...cloneDeep(defaultState) }\n },\n setServerSideStorage (state, userData) {\n const live = userData.storage\n state.raw = live\n let cache = state.cache\n if (cache && cache._user !== userData.fqn) {\n console.warn('cache belongs to another user! reinitializing local cache!')\n cache = null\n }\n\n cache = _doMigrations(cache)\n\n let { recent, stale, needsUpload } = _getRecentData(cache, live)\n\n const userNew = userData.created_at > NEW_USER_DATE\n const flagsTemplate = userNew ? newUserFlags : defaultState.flagStorage\n let dirty = false\n\n if (recent === null) {\n console.debug(`Data is empty, initializing for ${userNew ? 'new' : 'existing'} user`)\n recent = _wrapData({\n flagStorage: { ...flagsTemplate },\n prefsStorage: { ...defaultState.prefsStorage }\n })\n }\n\n if (!needsUpload && recent && stale) {\n console.debug('Checking if data needs merging...')\n // discarding timestamps and versions\n const { _timestamp: _0, _version: _1, ...recentData } = recent\n const { _timestamp: _2, _version: _3, ...staleData } = stale\n dirty = !isEqual(recentData, staleData)\n console.debug(`Data ${dirty ? 'needs' : 'doesn\\'t need'} merging`)\n }\n\n const allFlagKeys = _getAllFlags(recent, stale)\n let totalFlags\n let totalPrefs\n if (dirty) {\n // Merge the flags\n console.debug('Merging the data...')\n totalFlags = _mergeFlags(recent, stale, allFlagKeys)\n _verifyPrefs(recent)\n _verifyPrefs(stale)\n totalPrefs = _mergePrefs(recent.prefsStorage, stale.prefsStorage)\n } else {\n totalFlags = recent.flagStorage\n totalPrefs = recent.prefsStorage\n }\n\n totalFlags = _resetFlags(totalFlags)\n\n recent.flagStorage = { ...flagsTemplate, ...totalFlags }\n recent.prefsStorage = { ...defaultState.prefsStorage, ...totalPrefs }\n\n state.dirty = dirty || needsUpload\n state.cache = recent\n // set local timestamp to smaller one if we don't have any changes\n if (stale && recent && !state.dirty) {\n state.cache._timestamp = Math.min(stale._timestamp, recent._timestamp)\n }\n state.flagStorage = state.cache.flagStorage\n state.prefsStorage = state.cache.prefsStorage\n },\n setFlag (state, { flag, value }) {\n state.flagStorage[flag] = value\n state.dirty = true\n },\n setPreference (state, { path, value }) {\n if (path.startsWith('_')) {\n console.error(`tried to edit internal (starts with _) field '${path}', ignoring.`)\n return\n }\n set(state.prefsStorage, path, value)\n state.prefsStorage._journal = [\n ...state.prefsStorage._journal,\n { operation: 'set', path, args: [value], timestamp: Date.now() }\n ]\n state.dirty = true\n },\n addCollectionPreference (state, { path, value }) {\n if (path.startsWith('_')) {\n console.error(`tried to edit internal (starts with _) field '${path}', ignoring.`)\n return\n }\n const collection = new Set(get(state.prefsStorage, path))\n collection.add(value)\n set(state.prefsStorage, path, [...collection])\n state.prefsStorage._journal = [\n ...state.prefsStorage._journal,\n { operation: 'addToCollection', path, args: [value], timestamp: Date.now() }\n ]\n state.dirty = true\n },\n removeCollectionPreference (state, { path, value }) {\n if (path.startsWith('_')) {\n console.error(`tried to edit internal (starts with _) field '${path}', ignoring.`)\n return\n }\n const collection = new Set(get(state.prefsStorage, path))\n collection.delete(value)\n set(state.prefsStorage, path, [...collection])\n state.prefsStorage._journal = [\n ...state.prefsStorage._journal,\n { operation: 'removeFromCollection', path, args: [value], timestamp: Date.now() }\n ]\n state.dirty = true\n },\n reorderCollectionPreference (state, { path, value, movement }) {\n if (path.startsWith('_')) {\n console.error(`tried to edit internal (starts with _) field '${path}', ignoring.`)\n return\n }\n const collection = get(state.prefsStorage, path)\n const newCollection = _moveItemInArray(collection, value, movement)\n set(state.prefsStorage, path, newCollection)\n state.prefsStorage._journal = [\n ...state.prefsStorage._journal,\n { operation: 'arrangeCollection', path, args: [value], timestamp: Date.now() }\n ]\n state.dirty = true\n },\n updateCache (state, { username }) {\n state.prefsStorage._journal = _mergeJournal(state.prefsStorage._journal)\n state.cache = _wrapData({\n flagStorage: toRaw(state.flagStorage),\n prefsStorage: toRaw(state.prefsStorage)\n }, username)\n }\n}\n\nconst serverSideStorage = {\n state: {\n ...cloneDeep(defaultState)\n },\n mutations,\n actions: {\n pushServerSideStorage ({ state, rootState, commit }, { force = false } = {}) {\n const needPush = state.dirty || force\n console.log(needPush)\n if (!needPush) return\n commit('updateCache', { username: rootState.users.currentUser.fqn })\n const params = { pleroma_settings_store: { 'pleroma-fe': state.cache } }\n rootState.api.backendInteractor\n .updateProfile({ params })\n .then((user) => {\n commit('setServerSideStorage', user)\n state.dirty = false\n })\n }\n }\n}\n\nexport default serverSideStorage\n","import { set, get, cloneDeep, differenceWith, isEqual, flatten } from 'lodash'\n\nexport const defaultState = {\n frontends: [],\n loaded: false,\n needsReboot: null,\n config: null,\n modifiedPaths: null,\n descriptions: null,\n draft: null,\n dbConfigEnabled: null\n}\n\nexport const newUserFlags = {\n ...defaultState.flagStorage\n}\n\nconst adminSettingsStorage = {\n state: {\n ...cloneDeep(defaultState)\n },\n mutations: {\n setInstanceAdminNoDbConfig (state) {\n state.loaded = false\n state.dbConfigEnabled = false\n },\n setAvailableFrontends (state, { frontends }) {\n state.frontends = frontends.map(f => {\n if (f.name === 'pleroma-fe') {\n f.refs = ['master', 'develop']\n } else {\n f.refs = [f.ref]\n }\n return f\n })\n },\n updateAdminSettings (state, { config, modifiedPaths }) {\n state.loaded = true\n state.dbConfigEnabled = true\n state.config = config\n state.modifiedPaths = modifiedPaths\n },\n updateAdminDescriptions (state, { descriptions }) {\n state.descriptions = descriptions\n },\n updateAdminDraft (state, { path, value }) {\n const [group, key, subkey] = path\n const parent = [group, key, subkey]\n\n set(state.draft, path, value)\n\n // force-updating grouped draft to trigger refresh of group settings\n if (path.length > parent.length) {\n set(state.draft, parent, cloneDeep(get(state.draft, parent)))\n }\n },\n resetAdminDraft (state) {\n state.draft = cloneDeep(state.config)\n }\n },\n actions: {\n loadFrontendsStuff ({ state, rootState, dispatch, commit }) {\n rootState.api.backendInteractor.fetchAvailableFrontends()\n .then(frontends => commit('setAvailableFrontends', { frontends }))\n },\n loadAdminStuff ({ state, rootState, dispatch, commit }) {\n rootState.api.backendInteractor.fetchInstanceDBConfig()\n .then(backendDbConfig => {\n if (backendDbConfig.error) {\n if (backendDbConfig.error.status === 400) {\n backendDbConfig.error.json().then(errorJson => {\n if (/configurable_from_database/.test(errorJson.error)) {\n commit('setInstanceAdminNoDbConfig')\n }\n })\n }\n } else {\n dispatch('setInstanceAdminSettings', { backendDbConfig })\n }\n })\n if (state.descriptions === null) {\n rootState.api.backendInteractor.fetchInstanceConfigDescriptions()\n .then(backendDescriptions => dispatch('setInstanceAdminDescriptions', { backendDescriptions }))\n }\n },\n setInstanceAdminSettings ({ state, commit, dispatch }, { backendDbConfig }) {\n const config = state.config || {}\n const modifiedPaths = new Set()\n backendDbConfig.configs.forEach(c => {\n const path = [c.group, c.key]\n if (c.db) {\n // Path elements can contain dot, therefore we use ' -> ' as a separator instead\n // Using strings for modified paths for easier searching\n c.db.forEach(x => modifiedPaths.add([...path, x].join(' -> ')))\n }\n const convert = (value) => {\n if (Array.isArray(value) && value.length > 0 && value[0].tuple) {\n return value.reduce((acc, c) => {\n return { ...acc, [c.tuple[0]]: convert(c.tuple[1]) }\n }, {})\n } else {\n return value\n }\n }\n set(config, path, convert(c.value))\n })\n console.log(config[':pleroma'])\n commit('updateAdminSettings', { config, modifiedPaths })\n commit('resetAdminDraft')\n },\n setInstanceAdminDescriptions ({ state, commit, dispatch }, { backendDescriptions }) {\n const convert = ({ children, description, label, key = '<ROOT>', group, suggestions }, path, acc) => {\n const newPath = group ? [group, key] : [key]\n const obj = { description, label, suggestions }\n if (Array.isArray(children)) {\n children.forEach(c => {\n convert(c, newPath, obj)\n })\n }\n set(acc, newPath, obj)\n }\n\n const descriptions = {}\n backendDescriptions.forEach(d => convert(d, '', descriptions))\n console.log(descriptions[':pleroma']['Pleroma.Captcha'])\n commit('updateAdminDescriptions', { descriptions })\n },\n\n // This action takes draft state, diffs it with live config state and then pushes\n // only differences between the two. Difference detection only work up to subkey (third) level.\n pushAdminDraft ({ rootState, state, commit, dispatch }) {\n // TODO cleanup paths in modifiedPaths\n const convert = (value) => {\n if (typeof value !== 'object') {\n return value\n } else if (Array.isArray(value)) {\n return value.map(convert)\n } else {\n return Object.entries(value).map(([k, v]) => ({ tuple: [k, v] }))\n }\n }\n\n // Getting all group-keys used in config\n const allGroupKeys = flatten(\n Object\n .entries(state.config)\n .map(\n ([group, lv1data]) => Object\n .keys(lv1data)\n .map((key) => ({ group, key }))\n )\n )\n\n // Only using group-keys where there are changes detected\n const changedGroupKeys = allGroupKeys.filter(({ group, key }) => {\n return !isEqual(state.config[group][key], state.draft[group][key])\n })\n\n // Here we take all changed group-keys and get all changed subkeys\n const changed = changedGroupKeys.map(({ group, key }) => {\n const config = state.config[group][key]\n const draft = state.draft[group][key]\n\n // We convert group-key value into entries arrays\n const eConfig = Object.entries(config)\n const eDraft = Object.entries(draft)\n\n // Then those entries array we diff so only changed subkey entries remain\n // We use the diffed array to reconstruct the object and then shove it into convert()\n return ({ group, key, value: convert(Object.fromEntries(differenceWith(eDraft, eConfig, isEqual))) })\n })\n\n rootState.api.backendInteractor.pushInstanceDBConfig({\n payload: {\n configs: changed\n }\n })\n .then(() => rootState.api.backendInteractor.fetchInstanceDBConfig())\n .then(backendDbConfig => dispatch('setInstanceAdminSettings', { backendDbConfig }))\n },\n pushAdminSetting ({ rootState, state, commit, dispatch }, { path, value }) {\n const [group, key, ...rest] = Array.isArray(path) ? path : path.split(/\\./g)\n const clone = {} // not actually cloning the entire thing to avoid excessive writes\n set(clone, rest, value)\n\n // TODO cleanup paths in modifiedPaths\n const convert = (value) => {\n if (typeof value !== 'object') {\n return value\n } else if (Array.isArray(value)) {\n return value.map(convert)\n } else {\n return Object.entries(value).map(([k, v]) => ({ tuple: [k, v] }))\n }\n }\n\n rootState.api.backendInteractor.pushInstanceDBConfig({\n payload: {\n configs: [{\n group,\n key,\n value: convert(clone)\n }]\n }\n })\n .then(() => rootState.api.backendInteractor.fetchInstanceDBConfig())\n .then(backendDbConfig => dispatch('setInstanceAdminSettings', { backendDbConfig }))\n },\n resetAdminSetting ({ rootState, state, commit, dispatch }, { path }) {\n const [group, key, subkey] = path.split(/\\./g)\n\n state.modifiedPaths.delete(path)\n\n return rootState.api.backendInteractor.pushInstanceDBConfig({\n payload: {\n configs: [{\n group,\n key,\n delete: true,\n subkeys: [subkey]\n }]\n }\n })\n .then(() => rootState.api.backendInteractor.fetchInstanceDBConfig())\n .then(backendDbConfig => dispatch('setInstanceAdminSettings', { backendDbConfig }))\n }\n }\n}\n\nexport default adminSettingsStorage\n","const shout = {\n state: {\n messages: [],\n channel: { state: '' },\n joined: false\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 setJoined (state, joined) {\n state.joined = joined\n }\n },\n actions: {\n initializeShout (store, socket) {\n const channel = socket.channel('chat:public')\n channel.joinPush.receive('ok', () => {\n store.commit('setJoined', true)\n })\n channel.onClose(() => {\n store.commit('setJoined', false)\n })\n channel.onError(() => {\n store.commit('setJoined', false)\n })\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 shout\n","const 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 delete 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'\nconst supportedTypes = new Set(['image', 'video', 'audio', 'flash'])\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 setCurrentMedia (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 supportedTypes.has(type)\n })\n commit('setMedia', media)\n },\n setCurrentMedia ({ commit, state }, current) {\n const index = state.media.indexOf(current)\n commit('setCurrentMedia', 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 reportModal: {\n userId: null,\n statuses: [],\n preTickedIds: [],\n activated: false\n },\n reports: {}\n },\n mutations: {\n openUserReportingModal (state, { userId, statuses, preTickedIds }) {\n state.reportModal.userId = userId\n state.reportModal.statuses = statuses\n state.reportModal.preTickedIds = preTickedIds\n state.reportModal.activated = true\n },\n closeUserReportingModal (state) {\n state.reportModal.activated = false\n },\n setReportState (reportsState, { id, state }) {\n reportsState.reports[id].state = state\n },\n addReport (state, report) {\n state.reports[report.id] = report\n }\n },\n actions: {\n openUserReportingModal ({ rootState, commit }, { userId, statusIds = [] }) {\n const preTickedStatuses = statusIds.map(id => rootState.statuses.allStatusesObject[id])\n const preTickedIds = statusIds\n const statuses = preTickedStatuses.concat(\n filter(rootState.statuses.allStatuses,\n status => status.user.id === userId && !preTickedIds.includes(status.id)\n )\n )\n commit('openUserReportingModal', { userId, statuses, preTickedIds })\n },\n closeUserReportingModal ({ commit }) {\n commit('closeUserReportingModal')\n },\n setReportState ({ commit, dispatch, rootState }, { id, state }) {\n const oldState = rootState.reports.reports[id].state\n commit('setReportState', { id, state })\n rootState.api.backendInteractor.setReportState({ id, state }).catch(e => {\n console.error('Failed to set report state', e)\n dispatch('pushGlobalNotice', {\n level: 'error',\n messageKey: 'general.generic_error_message',\n messageArgs: [e.message],\n timeout: 5000\n })\n commit('setReportState', { id, state: oldState })\n })\n },\n addReport ({ commit }, report) {\n commit('addReport', report)\n }\n }\n}\n\nexport default reports\n","import { merge } from 'lodash'\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 state.pollsObject[poll.id] = merge(existingPoll, poll)\n } else {\n state.pollsObject[poll.id] = poll\n }\n },\n trackPoll (state, pollId) {\n const currentValue = state.trackedPolls[pollId]\n if (currentValue) {\n state.trackedPolls[pollId] = currentValue + 1\n } else {\n state.trackedPolls[pollId] = 1\n }\n },\n untrackPoll (state, pollId) {\n const currentValue = state.trackedPolls[pollId]\n if (currentValue) {\n state.trackedPolls[pollId] = currentValue - 1\n } else {\n 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 resetPostStatusModal (state) {\n state.params = null\n }\n },\n actions: {\n openPostStatusModal ({ commit }, params) {\n commit('openPostStatusModal', params)\n },\n closePostStatusModal ({ commit }) {\n commit('closePostStatusModal')\n },\n resetPostStatusModal ({ commit }) {\n commit('resetPostStatusModal')\n }\n }\n}\n\nexport default postStatus\n","const editStatus = {\n state: {\n params: null,\n modalActivated: false\n },\n mutations: {\n openEditStatusModal (state, params) {\n state.params = params\n state.modalActivated = true\n },\n closeEditStatusModal (state) {\n state.modalActivated = false\n }\n },\n actions: {\n openEditStatusModal ({ commit }, params) {\n commit('openEditStatusModal', params)\n },\n closeEditStatusModal ({ commit }) {\n commit('closeEditStatusModal')\n }\n }\n}\n\nexport default editStatus\n","const statusHistory = {\n state: {\n params: {},\n modalActivated: false\n },\n mutations: {\n openStatusHistoryModal (state, params) {\n state.params = params\n state.modalActivated = true\n },\n closeStatusHistoryModal (state) {\n state.modalActivated = false\n }\n },\n actions: {\n openStatusHistoryModal ({ commit }, params) {\n commit('openStatusHistoryModal', params)\n },\n closeStatusHistoryModal ({ commit }) {\n commit('closeStatusHistoryModal')\n }\n }\n}\n\nexport default statusHistory\n","import _ from 'lodash'\n\nconst empty = (chatId) => {\n return {\n idIndex: {},\n idempotencyKeyIndex: {},\n messages: [],\n newMessageCount: 0,\n lastSeenMessageId: '0',\n chatId,\n minId: undefined,\n maxId: undefined\n }\n}\n\nconst clear = (storage) => {\n const failedMessageIds = []\n\n for (const message of storage.messages) {\n if (message.error) {\n failedMessageIds.push(message.id)\n } else {\n delete storage.idIndex[message.id]\n delete storage.idempotencyKeyIndex[message.idempotency_key]\n }\n }\n\n storage.messages = storage.messages.filter(m => failedMessageIds.includes(m.id))\n storage.newMessageCount = 0\n storage.lastSeenMessageId = '0'\n storage.minId = undefined\n storage.maxId = undefined\n}\n\nconst deleteMessage = (storage, messageId) => {\n if (!storage) { return }\n storage.messages = storage.messages.filter(m => m.id !== messageId)\n delete storage.idIndex[messageId]\n\n if (storage.maxId === messageId) {\n const lastMessage = _.maxBy(storage.messages, 'id')\n storage.maxId = lastMessage.id\n }\n\n if (storage.minId === messageId) {\n const firstMessage = _.minBy(storage.messages, 'id')\n storage.minId = firstMessage.id\n }\n}\n\nconst cullOlderMessages = (storage) => {\n const maxIndex = storage.messages.length\n const minIndex = maxIndex - 50\n if (maxIndex <= 50) return\n\n storage.messages = _.sortBy(storage.messages, ['id'])\n storage.minId = storage.messages[minIndex].id\n for (const message of storage.messages) {\n if (message.id < storage.minId) {\n delete storage.idIndex[message.id]\n delete storage.idempotencyKeyIndex[message.idempotency_key]\n }\n }\n storage.messages = storage.messages.slice(minIndex, maxIndex)\n}\n\nconst handleMessageError = (storage, fakeId, isRetry) => {\n if (!storage) { return }\n const fakeMessage = storage.idIndex[fakeId]\n if (fakeMessage) {\n fakeMessage.error = true\n fakeMessage.pending = false\n if (!isRetry) {\n // Ensure the failed message doesn't stay at the bottom of the list.\n const lastPersistedMessage = _.orderBy(storage.messages, ['pending', 'id'], ['asc', 'desc'])[0]\n if (lastPersistedMessage) {\n const oldId = fakeMessage.id\n fakeMessage.id = `${lastPersistedMessage.id}-${new Date().getTime()}`\n storage.idIndex[fakeMessage.id] = fakeMessage\n delete storage.idIndex[oldId]\n }\n }\n }\n}\n\nconst add = (storage, { messages: newMessages, updateMaxId = true }) => {\n if (!storage) { return }\n for (let i = 0; i < newMessages.length; i++) {\n const message = newMessages[i]\n\n // sanity check\n if (message.chat_id !== storage.chatId) { return }\n\n if (message.fakeId) {\n const fakeMessage = storage.idIndex[message.fakeId]\n if (fakeMessage) {\n // In case the same id exists (chat update before POST response)\n // make sure to remove the older duplicate message.\n if (storage.idIndex[message.id]) {\n delete storage.idIndex[message.id]\n storage.messages = storage.messages.filter(msg => msg.id !== message.id)\n }\n Object.assign(fakeMessage, message, { error: false })\n delete fakeMessage.fakeId\n storage.idIndex[fakeMessage.id] = fakeMessage\n delete storage.idIndex[message.fakeId]\n\n return\n }\n }\n\n if (!storage.minId || (!message.pending && message.id < storage.minId)) {\n storage.minId = message.id\n }\n\n if (!storage.maxId || message.id > storage.maxId) {\n if (updateMaxId) {\n storage.maxId = message.id\n }\n }\n\n if (!storage.idIndex[message.id] && !isConfirmation(storage, message)) {\n if (storage.lastSeenMessageId < message.id) {\n storage.newMessageCount++\n }\n storage.idIndex[message.id] = message\n storage.messages.push(storage.idIndex[message.id])\n storage.idempotencyKeyIndex[message.idempotency_key] = true\n }\n }\n}\n\nconst isConfirmation = (storage, message) => {\n if (!message.idempotency_key) return\n return storage.idempotencyKeyIndex[message.idempotency_key]\n}\n\nconst resetNewMessageCount = (storage) => {\n if (!storage) { return }\n storage.newMessageCount = 0\n storage.lastSeenMessageId = storage.maxId\n}\n\n// Inserts date separators and marks the head and tail if it's the chain of messages made by the same user\nconst getView = (storage) => {\n if (!storage) { return [] }\n\n const result = []\n const messages = _.orderBy(storage.messages, ['pending', 'id'], ['asc', 'asc'])\n const firstMessage = messages[0]\n let previousMessage = messages[messages.length - 1]\n let currentMessageChainId\n\n if (firstMessage) {\n const date = new Date(firstMessage.created_at)\n date.setHours(0, 0, 0, 0)\n result.push({\n type: 'date',\n date,\n id: date.getTime().toString()\n })\n }\n\n let afterDate = false\n\n for (let i = 0; i < messages.length; i++) {\n const message = messages[i]\n const nextMessage = messages[i + 1]\n\n const date = new Date(message.created_at)\n date.setHours(0, 0, 0, 0)\n\n // insert date separator and start a new message chain\n if (previousMessage && previousMessage.date < date) {\n result.push({\n type: 'date',\n date,\n id: date.getTime().toString()\n })\n\n previousMessage.isTail = true\n currentMessageChainId = undefined\n afterDate = true\n }\n\n const object = {\n type: 'message',\n data: message,\n date,\n id: message.id,\n messageChainId: currentMessageChainId\n }\n\n // end a message chian\n if ((nextMessage && nextMessage.account_id) !== message.account_id) {\n object.isTail = true\n currentMessageChainId = undefined\n }\n\n // start a new message chain\n if ((previousMessage && previousMessage.data && previousMessage.data.account_id) !== message.account_id || afterDate) {\n currentMessageChainId = _.uniqueId()\n object.isHead = true\n object.messageChainId = currentMessageChainId\n }\n\n result.push(object)\n previousMessage = object\n afterDate = false\n }\n\n return result\n}\n\nconst ChatService = {\n add,\n empty,\n getView,\n deleteMessage,\n cullOlderMessages,\n resetNewMessageCount,\n clear,\n handleMessageError\n}\n\nexport default ChatService\n","import { reactive } from 'vue'\nimport { find, omitBy, orderBy, sumBy } from 'lodash'\nimport chatService from '../services/chat_service/chat_service.js'\nimport { parseChat, parseChatMessage } from '../services/entity_normalizer/entity_normalizer.service.js'\nimport { maybeShowChatNotification } from '../services/chat_utils/chat_utils.js'\nimport { promiseInterval } from '../services/promise_interval/promise_interval.js'\n\nconst emptyChatList = () => ({\n data: [],\n idStore: {}\n})\n\nconst defaultState = {\n chatList: emptyChatList(),\n chatListFetcher: null,\n openedChats: reactive({}),\n openedChatMessageServices: reactive({}),\n fetcher: undefined,\n currentChatId: null,\n lastReadMessageId: null\n}\n\nconst getChatById = (state, id) => {\n return find(state.chatList.data, { id })\n}\n\nconst sortedChatList = (state) => {\n return orderBy(state.chatList.data, ['updated_at'], ['desc'])\n}\n\nconst unreadChatCount = (state) => {\n return sumBy(state.chatList.data, 'unread')\n}\n\nconst chats = {\n state: { ...defaultState },\n getters: {\n currentChat: state => state.openedChats[state.currentChatId],\n currentChatMessageService: state => state.openedChatMessageServices[state.currentChatId],\n findOpenedChatByRecipientId: state => recipientId => find(state.openedChats, c => c.account.id === recipientId),\n sortedChatList,\n unreadChatCount\n },\n actions: {\n // Chat list\n startFetchingChats ({ dispatch, commit }) {\n const fetcher = () => dispatch('fetchChats', { latest: true })\n fetcher()\n commit('setChatListFetcher', {\n fetcher: () => promiseInterval(fetcher, 5000)\n })\n },\n stopFetchingChats ({ commit }) {\n commit('setChatListFetcher', { fetcher: undefined })\n },\n fetchChats ({ dispatch, rootState, commit }, params = {}) {\n return rootState.api.backendInteractor.chats()\n .then(({ chats }) => {\n dispatch('addNewChats', { chats })\n return chats\n })\n },\n addNewChats (store, { chats }) {\n const { commit, dispatch, rootGetters } = store\n const newChatMessageSideEffects = (chat) => {\n maybeShowChatNotification(store, chat)\n }\n commit('addNewUsers', chats.map(k => k.account).filter(k => k))\n commit('addNewChats', { dispatch, chats, rootGetters, newChatMessageSideEffects })\n },\n updateChat ({ commit }, { chat }) {\n commit('updateChat', { chat })\n },\n\n // Opened Chats\n startFetchingCurrentChat ({ commit, dispatch }, { fetcher }) {\n dispatch('setCurrentChatFetcher', { fetcher })\n },\n setCurrentChatFetcher ({ rootState, commit }, { fetcher }) {\n commit('setCurrentChatFetcher', { fetcher })\n },\n addOpenedChat ({ rootState, commit, dispatch }, { chat }) {\n commit('addOpenedChat', { dispatch, chat: parseChat(chat) })\n dispatch('addNewUsers', [chat.account])\n },\n addChatMessages ({ commit }, value) {\n commit('addChatMessages', { commit, ...value })\n },\n resetChatNewMessageCount ({ commit }, value) {\n commit('resetChatNewMessageCount', value)\n },\n clearCurrentChat ({ rootState, commit, dispatch }, value) {\n commit('setCurrentChatId', { chatId: undefined })\n commit('setCurrentChatFetcher', { fetcher: undefined })\n },\n readChat ({ rootState, commit, dispatch }, { id, lastReadId }) {\n const isNewMessage = rootState.chats.lastReadMessageId !== lastReadId\n\n dispatch('resetChatNewMessageCount')\n commit('readChat', { id, lastReadId })\n\n if (isNewMessage) {\n rootState.api.backendInteractor.readChat({ id, lastReadId })\n }\n },\n deleteChatMessage ({ rootState, commit }, value) {\n rootState.api.backendInteractor.deleteChatMessage(value)\n commit('deleteChatMessage', { commit, ...value })\n },\n resetChats ({ commit, dispatch }) {\n dispatch('clearCurrentChat')\n commit('resetChats', { commit })\n },\n clearOpenedChats ({ rootState, commit, dispatch, rootGetters }) {\n commit('clearOpenedChats', { commit })\n },\n handleMessageError ({ commit }, value) {\n commit('handleMessageError', { commit, ...value })\n },\n cullOlderMessages ({ commit }, chatId) {\n commit('cullOlderMessages', chatId)\n }\n },\n mutations: {\n setChatListFetcher (state, { commit, fetcher }) {\n const prevFetcher = state.chatListFetcher\n if (prevFetcher) {\n prevFetcher.stop()\n }\n state.chatListFetcher = fetcher && fetcher()\n },\n setCurrentChatFetcher (state, { fetcher }) {\n const prevFetcher = state.fetcher\n if (prevFetcher) {\n prevFetcher.stop()\n }\n state.fetcher = fetcher && fetcher()\n },\n addOpenedChat (state, { _dispatch, chat }) {\n state.currentChatId = chat.id\n state.openedChats[chat.id] = chat\n\n if (!state.openedChatMessageServices[chat.id]) {\n state.openedChatMessageServices[chat.id] = chatService.empty(chat.id)\n }\n },\n setCurrentChatId (state, { chatId }) {\n state.currentChatId = chatId\n },\n addNewChats (state, { chats, newChatMessageSideEffects }) {\n chats.forEach((updatedChat) => {\n const chat = getChatById(state, updatedChat.id)\n\n if (chat) {\n const isNewMessage = (chat.lastMessage && chat.lastMessage.id) !== (updatedChat.lastMessage && updatedChat.lastMessage.id)\n chat.lastMessage = updatedChat.lastMessage\n chat.unread = updatedChat.unread\n chat.updated_at = updatedChat.updated_at\n if (isNewMessage && chat.unread) {\n newChatMessageSideEffects(updatedChat)\n }\n } else {\n state.chatList.data.push(updatedChat)\n state.chatList.idStore[updatedChat.id] = updatedChat\n }\n })\n },\n updateChat (state, { _dispatch, chat: updatedChat, _rootGetters }) {\n const chat = getChatById(state, updatedChat.id)\n if (chat) {\n chat.lastMessage = updatedChat.lastMessage\n chat.unread = updatedChat.unread\n chat.updated_at = updatedChat.updated_at\n }\n if (!chat) { state.chatList.data.unshift(updatedChat) }\n state.chatList.idStore[updatedChat.id] = updatedChat\n },\n deleteChat (state, { _dispatch, id, _rootGetters }) {\n state.chats.data = state.chats.data.filter(conversation =>\n conversation.last_status.id !== id\n )\n state.chats.idStore = omitBy(state.chats.idStore, conversation => conversation.last_status.id === id)\n },\n resetChats (state, { commit }) {\n state.chatList = emptyChatList()\n state.currentChatId = null\n commit('setChatListFetcher', { fetcher: undefined })\n for (const chatId in state.openedChats) {\n chatService.clear(state.openedChatMessageServices[chatId])\n delete state.openedChats[chatId]\n delete state.openedChatMessageServices[chatId]\n }\n },\n setChatsLoading (state, { value }) {\n state.chats.loading = value\n },\n addChatMessages (state, { chatId, messages, updateMaxId }) {\n const chatMessageService = state.openedChatMessageServices[chatId]\n if (chatMessageService) {\n chatService.add(chatMessageService, { messages: messages.map(parseChatMessage), updateMaxId })\n }\n },\n deleteChatMessage (state, { chatId, messageId }) {\n const chatMessageService = state.openedChatMessageServices[chatId]\n if (chatMessageService) {\n chatService.deleteMessage(chatMessageService, messageId)\n }\n },\n resetChatNewMessageCount (state, _value) {\n const chatMessageService = state.openedChatMessageServices[state.currentChatId]\n chatService.resetNewMessageCount(chatMessageService)\n },\n // Used when a connection loss occurs\n clearOpenedChats (state) {\n const currentChatId = state.currentChatId\n for (const chatId in state.openedChats) {\n if (currentChatId !== chatId) {\n chatService.clear(state.openedChatMessageServices[chatId])\n delete state.openedChats[chatId]\n delete state.openedChatMessageServices[chatId]\n }\n }\n },\n readChat (state, { id, lastReadId }) {\n state.lastReadMessageId = lastReadId\n const chat = getChatById(state, id)\n if (chat) {\n chat.unread = 0\n }\n },\n handleMessageError (state, { chatId, fakeId, isRetry }) {\n const chatMessageService = state.openedChatMessageServices[chatId]\n chatService.handleMessageError(chatMessageService, fakeId, isRetry)\n },\n cullOlderMessages (state, chatId) {\n chatService.cullOlderMessages(state.openedChatMessageServices[chatId])\n }\n }\n}\n\nexport default chats\n","const FETCH_ANNOUNCEMENT_INTERVAL_MS = 1000 * 60 * 5\n\nexport const defaultState = {\n announcements: [],\n supportsAnnouncements: true,\n fetchAnnouncementsTimer: undefined\n}\n\nexport const mutations = {\n setAnnouncements (state, announcements) {\n state.announcements = announcements\n },\n setAnnouncementRead (state, { id, read }) {\n const index = state.announcements.findIndex(a => a.id === id)\n\n if (index < 0) {\n return\n }\n\n state.announcements[index].read = read\n },\n setFetchAnnouncementsTimer (state, timer) {\n state.fetchAnnouncementsTimer = timer\n },\n setSupportsAnnouncements (state, supportsAnnouncements) {\n state.supportsAnnouncements = supportsAnnouncements\n }\n}\n\nexport const getters = {\n unreadAnnouncementCount (state, _getters, rootState) {\n if (!rootState.users.currentUser) {\n return 0\n }\n\n const unread = state.announcements.filter(announcement => !(announcement.inactive || announcement.read))\n return unread.length\n }\n}\n\nconst announcements = {\n state: defaultState,\n mutations,\n getters,\n actions: {\n fetchAnnouncements (store) {\n if (!store.state.supportsAnnouncements) {\n return Promise.resolve()\n }\n\n const currentUser = store.rootState.users.currentUser\n const isAdmin = currentUser && currentUser.privileges.includes('announcements_manage_announcements')\n\n const getAnnouncements = async () => {\n if (!isAdmin) {\n return store.rootState.api.backendInteractor.fetchAnnouncements()\n }\n\n const all = await store.rootState.api.backendInteractor.adminFetchAnnouncements()\n const visible = await store.rootState.api.backendInteractor.fetchAnnouncements()\n const visibleObject = visible.reduce((a, c) => {\n a[c.id] = c\n return a\n }, {})\n const getWithinVisible = announcement => visibleObject[announcement.id]\n\n all.forEach(announcement => {\n const visibleAnnouncement = getWithinVisible(announcement)\n if (!visibleAnnouncement) {\n announcement.inactive = true\n } else {\n announcement.read = visibleAnnouncement.read\n }\n })\n\n return all\n }\n\n return getAnnouncements()\n .then(announcements => {\n store.commit('setAnnouncements', announcements)\n })\n .catch(error => {\n // If and only if backend does not support announcements, it would return 404.\n // In this case, silently ignores it.\n if (error && error.statusCode === 404) {\n store.commit('setSupportsAnnouncements', false)\n } else {\n throw error\n }\n })\n },\n markAnnouncementAsRead (store, id) {\n return store.rootState.api.backendInteractor.dismissAnnouncement({ id })\n .then(() => {\n store.commit('setAnnouncementRead', { id, read: true })\n })\n },\n startFetchingAnnouncements (store) {\n if (store.state.fetchAnnouncementsTimer) {\n return\n }\n\n const interval = setInterval(() => store.dispatch('fetchAnnouncements'), FETCH_ANNOUNCEMENT_INTERVAL_MS)\n store.commit('setFetchAnnouncementsTimer', interval)\n\n return store.dispatch('fetchAnnouncements')\n },\n stopFetchingAnnouncements (store) {\n const interval = store.state.fetchAnnouncementsTimer\n store.commit('setFetchAnnouncementsTimer', undefined)\n clearInterval(interval)\n },\n postAnnouncement (store, { content, startsAt, endsAt, allDay }) {\n return store.rootState.api.backendInteractor.postAnnouncement({ content, startsAt, endsAt, allDay })\n .then(() => {\n return store.dispatch('fetchAnnouncements')\n })\n },\n editAnnouncement (store, { id, content, startsAt, endsAt, allDay }) {\n return store.rootState.api.backendInteractor.editAnnouncement({ id, content, startsAt, endsAt, allDay })\n .then(() => {\n return store.dispatch('fetchAnnouncements')\n })\n },\n deleteAnnouncement (store, id) {\n return store.rootState.api.backendInteractor.deleteAnnouncement({ id })\n .then(() => {\n return store.dispatch('fetchAnnouncements')\n })\n }\n }\n}\n\nexport default announcements\n","import merge from 'lodash.merge'\nimport localforage from 'localforage'\nimport { each, get, set, cloneDeep } from 'lodash'\n\nlet loaded = false\n\nconst defaultReducer = (state, paths) => (\n paths.length === 0\n ? state\n : paths.reduce((substate, path) => {\n set(substate, path, get(state, path))\n return substate\n }, {})\n)\n\nconst saveImmedeatelyActions = [\n 'markNotificationsAsSeen',\n 'clearCurrentUser',\n 'setCurrentUser',\n 'setServerSideStorage',\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 const 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(cloneDeep(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","<template>\n <div\n id=\"app-loaded\"\n :style=\"bgStyle\"\n >\n <div\n id=\"app_bg_wrapper\"\n class=\"app-bg-wrapper\"\n />\n <MobileNav v-if=\"layoutType === 'mobile'\" />\n <DesktopNav\n v-else\n :class=\"navClasses\"\n />\n <Notifications v-if=\"currentUser\" />\n <div\n id=\"content\"\n class=\"app-layout container\"\n :class=\"classes\"\n >\n <div class=\"underlay\" />\n <div\n id=\"sidebar\"\n class=\"column -scrollable\"\n :class=\"{ '-show-scrollbar': showScrollbars }\"\n >\n <user-panel />\n <template v-if=\"layoutType !== 'mobile'\">\n <nav-panel />\n <instance-specific-panel v-if=\"showInstanceSpecificPanel\" />\n <features-panel v-if=\"!currentUser && showFeaturesPanel\" />\n <who-to-follow-panel v-if=\"currentUser && suggestionsEnabled\" />\n <div id=\"notifs-sidebar\" />\n </template>\n </div>\n <main\n id=\"main-scroller\"\n class=\"column main\"\n :class=\"{ '-full-height': isChats || isListEdit }\"\n >\n <div\n v-if=\"!currentUser\"\n class=\"login-hint panel panel-default\"\n >\n <router-link\n :to=\"{ name: 'login' }\"\n class=\"panel-body\"\n >\n {{ $t(\"login.hint\") }}\n </router-link>\n </div>\n <router-view />\n </main>\n <div\n id=\"notifs-column\"\n class=\"column -scrollable\"\n :class=\"{ '-show-scrollbar': showScrollbars }\"\n />\n </div>\n <MediaModal />\n <shout-panel\n v-if=\"currentUser && shout && !hideShoutbox\"\n :floating=\"true\"\n class=\"floating-shout mobile-hidden\"\n :class=\"{ '-left': shoutboxPosition }\"\n />\n <MobilePostStatusButton />\n <UserReportingModal />\n <PostStatusModal />\n <EditStatusModal v-if=\"editingAvailable\" />\n <StatusHistoryModal v-if=\"editingAvailable\" />\n <SettingsModal />\n <UpdateNotification />\n <GlobalNoticeList />\n </div>\n</template>\n\n<script src=\"./App.js\"></script>\n<style lang=\"scss\" src=\"./App.scss\"></style>\n","<template>\n <aside class=\"user-panel\">\n <div\n v-if=\"signedIn\"\n key=\"user-panel-signed\"\n class=\"panel panel-default signed-in\"\n >\n <UserCard\n :user-id=\"user.id\"\n :hide-bio=\"true\"\n rounded=\"top\"\n />\n <PostStatusForm />\n </div>\n <auth-form\n v-else\n key=\"user-panel\"\n />\n </aside>\n</template>\n\n<script src=\"./user_panel.js\"></script>\n\n<style lang=\"scss\">\n.user-panel .signed-in {\n overflow: visible;\n z-index: 10;\n}\n</style>\n","<template>\n <div class=\"login panel panel-default\">\n <!-- Default panel contents -->\n\n <div class=\"panel-heading\">\n {{ $t('login.login') }}\n </div>\n\n <div class=\"panel-body\">\n <form\n class=\"login-form\"\n @submit.prevent=\"submit\"\n >\n <template v-if=\"isPasswordAuth\">\n <div class=\"form-group\">\n <label for=\"username\">{{ $t('login.username') }}</label>\n <input\n id=\"username\"\n v-model=\"user.username\"\n :disabled=\"loggingIn\"\n class=\"form-control\"\n :placeholder=\"$t('login.placeholder')\"\n >\n </div>\n <div class=\"form-group\">\n <label for=\"password\">{{ $t('login.password') }}</label>\n <input\n id=\"password\"\n ref=\"passwordInput\"\n v-model=\"user.password\"\n :disabled=\"loggingIn\"\n class=\"form-control\"\n type=\"password\"\n >\n </div>\n <div class=\"form-group\">\n <router-link :to=\"{name: 'password-reset'}\">\n {{ $t('password_reset.forgot_password') }}\n </router-link>\n </div>\n </template>\n\n <div\n v-if=\"isTokenAuth\"\n class=\"form-group\"\n >\n <p>{{ $t('login.description') }}</p>\n </div>\n\n <div class=\"form-group\">\n <div class=\"login-bottom\">\n <div>\n <router-link\n v-if=\"registrationOpen\"\n :to=\"{name: 'registration'}\"\n class=\"register\"\n >\n {{ $t('login.register') }}\n </router-link>\n </div>\n <button\n :disabled=\"loggingIn\"\n type=\"submit\"\n class=\"btn button-default\"\n >\n {{ $t('login.login') }}\n </button>\n </div>\n </div>\n </form>\n </div>\n\n <div\n v-if=\"error\"\n class=\"form-group\"\n >\n <div class=\"alert error\">\n {{ error }}\n <button\n class=\"button-unstyled\"\n @click=\"clearError\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"times\"\n />\n </button>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./login_form.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.login-form {\n display: flex;\n flex-direction: column;\n padding: 0.6em;\n\n .btn {\n min-height: 2em;\n width: 10em;\n }\n\n .register {\n flex: 1 1;\n }\n\n .login-bottom {\n margin-top: 1em;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n }\n\n .form-group {\n display: flex;\n flex-direction: column;\n padding: 0.3em 0.5em 0.6em;\n line-height: 24px;\n }\n\n .form-bottom {\n display: flex;\n padding: 0.5em;\n height: 32px;\n\n button {\n width: 10em;\n }\n\n p {\n margin: 0.35em;\n padding: 0.35em;\n display: flex;\n }\n }\n\n .error {\n text-align: center;\n animation-name: shakeError;\n animation-duration: 0.4s;\n animation-timing-function: ease-in-out;\n }\n}\n</style>\n","import { mapState, mapGetters, mapActions, mapMutations } from 'vuex'\nimport oauthApi from '../../services/new_api/oauth.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faTimes\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faTimes\n)\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 const passwordInput = this.$refs.passwordInput\n passwordInput.focus()\n passwordInput.setSelectionRange(0, passwordInput.value.length)\n }\n }\n}\n\nexport default LoginForm\n","import { render } from \"./login_form.vue?vue&type=template&id=508f3ec3\"\nimport script from \"./login_form.js?vue&type=script&lang=js\"\nexport * from \"./login_form.js?vue&type=script&lang=js\"\n\nimport \"./login_form.vue?vue&type=style&index=0&id=508f3ec3&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"login panel panel-default\">\n <!-- Default panel contents -->\n\n <div class=\"panel-heading\">\n {{ $t('login.heading.recovery') }}\n </div>\n\n <div class=\"panel-body\">\n <form\n class=\"login-form\"\n @submit.prevent=\"submit\"\n >\n <div class=\"form-group\">\n <label for=\"code\">{{ $t('login.recovery_code') }}</label>\n <input\n id=\"code\"\n v-model=\"code\"\n class=\"form-control\"\n >\n </div>\n\n <div class=\"form-group\">\n <div class=\"login-bottom\">\n <div>\n <button\n class=\"button-unstyled -link\"\n type=\"button\"\n @click.prevent=\"requireTOTP\"\n >\n {{ $t('login.enter_two_factor_code') }}\n </button>\n <br>\n <button\n class=\"button-unstyled -link\"\n type=\"button\"\n @click.prevent=\"abortMFA\"\n >\n {{ $t('general.cancel') }}\n </button>\n </div>\n <button\n type=\"submit\"\n class=\"btn button-default\"\n >\n {{ $t('general.verify') }}\n </button>\n </div>\n </div>\n </form>\n </div>\n\n <div\n v-if=\"error\"\n class=\"form-group\"\n >\n <div class=\"alert error\">\n {{ error }}\n <button\n class=\"button-unstyled\"\n @click=\"clearError\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"times\"\n />\n </button>\n </div>\n </div>\n </div>\n</template>\n<script src=\"./recovery_form.js\"></script>\n","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'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faTimes\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faTimes\n)\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","import { render } from \"./recovery_form.vue?vue&type=template&id=e18da610\"\nimport script from \"./recovery_form.js?vue&type=script&lang=js\"\nexport * from \"./recovery_form.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"login panel panel-default\">\n <!-- Default panel contents -->\n\n <div class=\"panel-heading\">\n {{ $t('login.heading.totp') }}\n </div>\n\n <div class=\"panel-body\">\n <form\n class=\"login-form\"\n @submit.prevent=\"submit\"\n >\n <div class=\"form-group\">\n <label for=\"code\">\n {{ $t('login.authentication_code') }}\n </label>\n <input\n id=\"code\"\n v-model=\"code\"\n class=\"form-control\"\n >\n </div>\n\n <div class=\"form-group\">\n <div class=\"login-bottom\">\n <div>\n <button\n class=\"button-unstyled -link\"\n type=\"button\"\n @click.prevent=\"requireRecovery\"\n >\n {{ $t('login.enter_recovery_code') }}\n </button>\n <br>\n <button\n class=\"button-unstyled -link\"\n type=\"button\"\n @click.prevent=\"abortMFA\"\n >\n {{ $t('general.cancel') }}\n </button>\n </div>\n <button\n type=\"submit\"\n class=\"btn button-default\"\n >\n {{ $t('general.verify') }}\n </button>\n </div>\n </div>\n </form>\n </div>\n\n <div\n v-if=\"error\"\n class=\"form-group\"\n >\n <div class=\"alert error\">\n {{ error }}\n <button\n class=\"button-unstyled\"\n @click=\"clearError\"\n >\n <FAIcon\n size=\"lg\"\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"times\"\n />\n </button>\n </div>\n </div>\n </div>\n</template>\n<script src=\"./totp_form.js\"></script>\n","import mfaApi from '../../services/new_api/mfa.js'\nimport { mapState, mapGetters, mapActions, mapMutations } from 'vuex'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faTimes\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faTimes\n)\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', ['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","import { render } from \"./totp_form.vue?vue&type=template&id=6fb04413\"\nimport script from \"./totp_form.js?vue&type=script&lang=js\"\nexport * from \"./totp_form.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { h, resolveComponent } from 'vue'\nimport 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 () {\n return h(resolveComponent(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 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","import { render } from \"./user_panel.vue?vue&type=template&id=1a2cb8e9\"\nimport script from \"./user_panel.js?vue&type=script&lang=js\"\nexport * from \"./user_panel.js?vue&type=script&lang=js\"\n\nimport \"./user_panel.vue?vue&type=style&index=0&id=1a2cb8e9&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"NavPanel\">\n <div class=\"panel panel-default\">\n <div\n v-if=\"!forceExpand\"\n class=\"panel-heading nav-panel-heading\"\n >\n <NavigationPins :limit=\"6\" />\n <div class=\"spacer\" />\n <button\n class=\"button-unstyled\"\n @click=\"toggleCollapse\"\n >\n <FAIcon\n class=\"navigation-chevron\"\n fixed-width\n :icon=\"collapsed ? 'chevron-down' : 'chevron-up'\"\n />\n </button>\n </div>\n <ul\n v-if=\"!collapsed || forceExpand\"\n class=\"panel-body\"\n >\n <NavigationEntry\n v-if=\"currentUser || !privateMode\"\n :show-pin=\"false\"\n :item=\"{ icon: 'stream', label: 'nav.timelines' }\"\n :aria-expanded=\"showTimelines ? 'true' : 'false'\"\n @click=\"toggleTimelines\"\n >\n <FAIcon\n class=\"timelines-chevron\"\n fixed-width\n :icon=\"showTimelines ? 'chevron-up' : 'chevron-down'\"\n />\n </NavigationEntry>\n <div\n v-show=\"showTimelines\"\n class=\"timelines-background\"\n >\n <div class=\"timelines\">\n <NavigationEntry\n v-for=\"item in timelinesItems\"\n :key=\"item.name\"\n :show-pin=\"editMode || forceEditMode\"\n :item=\"item\"\n />\n </div>\n </div>\n <NavigationEntry\n v-if=\"currentUser\"\n :show-pin=\"false\"\n :item=\"{ icon: 'list', label: 'nav.lists' }\"\n :aria-expanded=\"showLists ? 'true' : 'false'\"\n @click=\"toggleLists\"\n >\n <router-link\n :title=\"$t('lists.manage_lists')\"\n class=\"extra-button\"\n :to=\"{ name: 'lists' }\"\n @click.stop\n >\n <FAIcon\n class=\"extra-button\"\n fixed-width\n icon=\"wrench\"\n />\n </router-link>\n <FAIcon\n class=\"timelines-chevron\"\n fixed-width\n :icon=\"showLists ? 'chevron-up' : 'chevron-down'\"\n />\n </NavigationEntry>\n <div\n v-show=\"showLists\"\n class=\"timelines-background\"\n >\n <ListsMenuContent\n :show-pin=\"editMode || forceEditMode\"\n class=\"timelines\"\n />\n </div>\n <NavigationEntry\n v-for=\"item in rootItems\"\n :key=\"item.name\"\n :show-pin=\"editMode || forceEditMode\"\n :item=\"item\"\n />\n <NavigationEntry\n v-if=\"!forceEditMode && currentUser\"\n :show-pin=\"false\"\n :item=\"{ label: editMode ? $t('nav.edit_finish') : $t('nav.edit_pinned'), icon: editMode ? 'check' : 'wrench' }\"\n @click=\"toggleEditMode\"\n />\n </ul>\n </div>\n </div>\n</template>\n\n<script src=\"./nav_panel.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.NavPanel {\n .panel {\n overflow: hidden;\n box-shadow: var(--panelShadow);\n }\n\n ul {\n list-style: none;\n margin: 0;\n padding: 0;\n }\n\n li {\n position: relative;\n border-bottom: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n }\n\n > li {\n &:first-child .menu-item {\n border-top-right-radius: $fallback--panelRadius;\n border-top-right-radius: var(--panelRadius, $fallback--panelRadius);\n border-top-left-radius: $fallback--panelRadius;\n border-top-left-radius: var(--panelRadius, $fallback--panelRadius);\n }\n\n &:last-child .menu-item {\n border-bottom-right-radius: $fallback--panelRadius;\n border-bottom-right-radius: var(--panelRadius, $fallback--panelRadius);\n border-bottom-left-radius: $fallback--panelRadius;\n border-bottom-left-radius: var(--panelRadius, $fallback--panelRadius);\n }\n }\n\n li:last-child {\n border: none;\n }\n\n .navigation-chevron {\n margin-left: 0.8em;\n margin-right: 0.8em;\n font-size: 1.1em;\n }\n\n .timelines-chevron {\n margin-left: 0.8em;\n font-size: 1.1em;\n }\n\n .timelines-background {\n padding: 0 0 0 0.6em;\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n border-bottom: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n }\n\n .timelines {\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n }\n\n .nav-panel-heading {\n // breaks without a unit\n // stylelint-disable-next-line length-zero-no-unit\n --panel-heading-height-padding: 0px;\n }\n}\n</style>\n","<template>\n <OptionalRouterLink\n v-slot=\"{ isActive, href, navigate } = {}\"\n ass=\"ass\"\n :to=\"routeTo\"\n >\n <li\n class=\"NavigationEntry menu-item\"\n :class=\"{ '-active': isActive }\"\n v-bind=\"$attrs\"\n >\n <component\n :is=\"routeTo ? 'a' : 'button'\"\n class=\"main-link button-unstyled\"\n :href=\"href\"\n @click=\"navigate\"\n >\n <span>\n <FAIcon\n v-if=\"item.icon\"\n fixed-width\n class=\"fa-scale-110 menu-icon\"\n :icon=\"item.icon\"\n />\n </span>\n <span\n v-if=\"item.iconLetter\"\n class=\"icon iconLetter fa-scale-110 menu-icon\"\n >{{ item.iconLetter }}\n </span>\n <span class=\"label\">\n {{ item.labelRaw || $t(item.label) }}\n </span>\n </component>\n <slot />\n <div\n v-if=\"item.badgeGetter && getters[item.badgeGetter]\"\n class=\"badge badge-notification\"\n >\n {{ getters[item.badgeGetter] }}\n </div>\n <button\n v-if=\"showPin && currentUser\"\n type=\"button\"\n class=\"button-unstyled extra-button\"\n :title=\"$t(isPinned ? 'general.unpin' : 'general.pin' )\"\n :aria-pressed=\"!!isPinned\"\n @click.stop.prevent=\"togglePin(item.name)\"\n >\n <FAIcon\n v-if=\"showPin && currentUser\"\n fixed-width\n class=\"fa-scale-110\"\n :class=\"{ 'veryfaint': !isPinned(item.name) }\"\n :transform=\"!isPinned(item.name) ? 'rotate-45' : ''\"\n icon=\"thumbtack\"\n />\n </button>\n </li>\n </OptionalRouterLink>\n</template>\n\n<script src=\"./navigation_entry.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.NavigationEntry {\n display: flex;\n box-sizing: border-box;\n align-items: baseline;\n height: 3.5em;\n line-height: 3.5em;\n padding: 0 1em;\n width: 100%;\n color: $fallback--link;\n color: var(--link, $fallback--link);\n\n .timelines-chevron {\n margin-right: 0;\n }\n\n .main-link {\n flex: 1;\n }\n\n .menu-icon {\n margin-right: 0.8em;\n }\n\n .extra-button {\n width: 3em;\n text-align: center;\n\n &:last-child {\n margin-right: -0.8em;\n }\n }\n\n &:hover {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n color: $fallback--link;\n color: var(--selectedMenuText, $fallback--link);\n\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n\n .menu-icon {\n --icon: var(--text, $fallback--icon);\n }\n }\n\n &.-active {\n font-weight: bolder;\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n color: $fallback--text;\n color: var(--selectedMenuText, $fallback--text);\n\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n\n .menu-icon {\n --icon: var(--text, $fallback--icon);\n }\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n</style>\n","export const USERNAME_ROUTES = new Set([\n 'bookmarks',\n 'dms',\n 'interactions',\n 'notifications',\n 'chat',\n 'chats',\n 'user-profile'\n])\n\nexport const TIMELINES = {\n home: {\n route: 'friends',\n icon: 'home',\n label: 'nav.home_timeline',\n criteria: ['!private']\n },\n public: {\n route: 'public-timeline',\n anon: true,\n icon: 'users',\n label: 'nav.public_tl',\n criteria: ['!private']\n },\n twkn: {\n route: 'public-external-timeline',\n anon: true,\n icon: 'globe',\n label: 'nav.twkn',\n criteria: ['!private', 'federating']\n },\n bookmarks: {\n route: 'bookmarks',\n icon: 'bookmark',\n label: 'nav.bookmarks'\n },\n favorites: {\n routeObject: { name: 'user-profile', query: { tab: 'favorites' } },\n icon: 'star',\n label: 'user_card.favorites'\n },\n dms: {\n route: 'dms',\n icon: 'envelope',\n label: 'nav.dms'\n }\n}\n\nexport const ROOT_ITEMS = {\n interactions: {\n route: 'interactions',\n icon: 'bell',\n label: 'nav.interactions'\n },\n chats: {\n route: 'chats',\n icon: 'comments',\n label: 'nav.chats',\n badgeGetter: 'unreadChatCount',\n criteria: ['chats']\n },\n friendRequests: {\n route: 'friend-requests',\n icon: 'user-plus',\n label: 'nav.friend_requests',\n criteria: ['lockedUser'],\n badgeGetter: 'followRequestCount'\n },\n about: {\n route: 'about',\n anon: true,\n icon: 'info-circle',\n label: 'nav.about'\n },\n announcements: {\n route: 'announcements',\n icon: 'bullhorn',\n label: 'nav.announcements',\n badgeGetter: 'unreadAnnouncementCount',\n criteria: ['announcements']\n }\n}\n\nexport function routeTo (item, currentUser) {\n if (!item.route && !item.routeObject) return null\n\n let route\n\n if (item.routeObject) {\n route = item.routeObject\n } else {\n route = { name: (item.anon || currentUser) ? item.route : item.anonRoute }\n }\n\n if (USERNAME_ROUTES.has(route.name)) {\n route.params = { username: currentUser.screen_name, name: currentUser.screen_name }\n }\n\n return route\n}\n","<template>\n <!-- eslint-disable vue/no-multiple-template-root -->\n <router-link\n v-if=\"to\"\n v-slot=\"props\"\n :to=\"to\"\n custom\n >\n <slot\n v-bind=\"props\"\n />\n </router-link>\n <slot\n v-else\n v-bind=\"{}\"\n />\n</template>\n\n<script>\nexport default {\n props: ['to']\n}\n</script>\n","import { render } from \"./optional_router_link.vue?vue&type=template&id=0ec30c00\"\nimport script from \"./optional_router_link.vue?vue&type=script&lang=js\"\nexport * from \"./optional_router_link.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { mapState } from 'vuex'\nimport { routeTo } from 'src/components/navigation/navigation.js'\nimport OptionalRouterLink from 'src/components/optional_router_link/optional_router_link.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faThumbtack } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(faThumbtack)\n\nconst NavigationEntry = {\n props: ['item', 'showPin'],\n components: {\n OptionalRouterLink\n },\n methods: {\n isPinned (value) {\n return this.pinnedItems.has(value)\n },\n togglePin (value) {\n if (this.isPinned(value)) {\n this.$store.commit('removeCollectionPreference', { path: 'collections.pinnedNavItems', value })\n } else {\n this.$store.commit('addCollectionPreference', { path: 'collections.pinnedNavItems', value })\n }\n this.$store.dispatch('pushServerSideStorage')\n }\n },\n computed: {\n routeTo () {\n return routeTo(this.item, this.currentUser)\n },\n getters () {\n return this.$store.getters\n },\n ...mapState({\n currentUser: state => state.users.currentUser,\n pinnedItems: state => new Set(state.serverSideStorage.prefsStorage.collections.pinnedNavItems)\n })\n }\n}\n\nexport default NavigationEntry\n","import { render } from \"./navigation_entry.vue?vue&type=template&id=de2c2c50\"\nimport script from \"./navigation_entry.js?vue&type=script&lang=js\"\nexport * from \"./navigation_entry.js?vue&type=script&lang=js\"\n\nimport \"./navigation_entry.vue?vue&type=style&index=0&id=de2c2c50&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","export const filterNavigation = (list = [], { hasChats, hasAnnouncements, isFederating, isPrivate, currentUser }) => {\n return list.filter(({ criteria, anon, anonRoute }) => {\n const set = new Set(criteria || [])\n if (!isFederating && set.has('federating')) return false\n if (!currentUser && isPrivate && set.has('!private')) return false\n if (!currentUser && !(anon || anonRoute)) return false\n if ((!currentUser || !currentUser.locked) && set.has('lockedUser')) return false\n if (!hasChats && set.has('chats')) return false\n if (!hasAnnouncements && set.has('announcements')) return false\n return true\n })\n}\n\nexport const getListEntries = state => state.lists.allLists.map(list => ({\n name: 'list-' + list.id,\n routeObject: { name: 'lists-timeline', params: { id: list.id } },\n labelRaw: list.title,\n iconLetter: list.title[0]\n}))\n","import { mapState } from 'vuex'\nimport NavigationEntry from 'src/components/navigation/navigation_entry.vue'\nimport { getListEntries } from 'src/components/navigation/filter.js'\n\nexport const ListsMenuContent = {\n props: [\n 'showPin'\n ],\n components: {\n NavigationEntry\n },\n computed: {\n ...mapState({\n lists: getListEntries,\n currentUser: state => state.users.currentUser,\n privateMode: state => state.instance.private,\n federating: state => state.instance.federating\n })\n }\n}\n\nexport default ListsMenuContent\n","import { render } from \"./lists_menu_content.vue?vue&type=template&id=24f15238\"\nimport script from \"./lists_menu_content.js?vue&type=script&lang=js\"\nexport * from \"./lists_menu_content.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <ul>\n <NavigationEntry\n v-for=\"item in lists\"\n :key=\"item.name\"\n :show-pin=\"showPin\"\n :item=\"item\"\n />\n </ul>\n</template>\n\n<script src=\"./lists_menu_content.js\"></script>\n","<template>\n <span class=\"NavigationPins\">\n <router-link\n v-for=\"item in pinnedList\"\n :key=\"item.name\"\n class=\"pinned-item\"\n :to=\"getRouteTo(item)\"\n :title=\"item.labelRaw || $t(item.label)\"\n >\n <FAIcon\n v-if=\"item.icon\"\n fixed-width\n :icon=\"item.icon\"\n />\n <span\n v-if=\"item.iconLetter\"\n class=\"iconLetter fa-scale-110 fa-old-padding\"\n >{{ item.iconLetter }}</span>\n <div\n v-if=\"item.badgeGetter && getters[item.badgeGetter]\"\n class=\"alert-dot\"\n />\n </router-link>\n </span>\n</template>\n\n<script src=\"./navigation_pins.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.NavigationPins {\n display: flex;\n flex-wrap: wrap;\n overflow: hidden;\n height: 100%;\n\n .alert-dot {\n border-radius: 100%;\n height: 0.5em;\n width: 0.5em;\n position: absolute;\n right: calc(50% - 0.75em);\n top: calc(50% - 0.5em);\n background-color: $fallback--cRed;\n background-color: var(--badgeNotification, $fallback--cRed);\n }\n\n .pinned-item {\n position: relative;\n flex: 1 0 3em;\n min-width: 2em;\n text-align: center;\n overflow: visible;\n box-sizing: border-box;\n height: 100%;\n\n & .svg-inline--fa,\n & .iconLetter {\n margin: 0;\n }\n\n &.router-link-active {\n color: $fallback--text;\n color: var(--panelText, $fallback--text);\n border-bottom: 4px solid;\n\n & .svg-inline--fa,\n & .iconLetter {\n color: inherit;\n }\n }\n }\n}\n</style>\n","import { mapState } from 'vuex'\nimport { TIMELINES, ROOT_ITEMS, routeTo } from 'src/components/navigation/navigation.js'\nimport { getListEntries, filterNavigation } from 'src/components/navigation/filter.js'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faUsers,\n faGlobe,\n faBookmark,\n faEnvelope,\n faComments,\n faBell,\n faInfoCircle,\n faStream,\n faList\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faUsers,\n faGlobe,\n faBookmark,\n faEnvelope,\n faComments,\n faBell,\n faInfoCircle,\n faStream,\n faList\n)\n\nconst NavPanel = {\n props: ['limit'],\n methods: {\n getRouteTo (item) {\n return routeTo(item, this.currentUser)\n }\n },\n computed: {\n getters () {\n return this.$store.getters\n },\n ...mapState({\n lists: getListEntries,\n currentUser: state => state.users.currentUser,\n followRequestCount: state => state.api.followRequests.length,\n privateMode: state => state.instance.private,\n federating: state => state.instance.federating,\n pleromaChatMessagesAvailable: state => state.instance.pleromaChatMessagesAvailable,\n supportsAnnouncements: state => state.announcements.supportsAnnouncements,\n pinnedItems: state => new Set(state.serverSideStorage.prefsStorage.collections.pinnedNavItems)\n }),\n pinnedList () {\n if (!this.currentUser) {\n return filterNavigation([\n { ...TIMELINES.public, name: 'public' },\n { ...TIMELINES.twkn, name: 'twkn' },\n { ...ROOT_ITEMS.about, name: 'about' }\n ],\n {\n hasChats: this.pleromaChatMessagesAvailable,\n hasAnnouncements: this.supportsAnnouncements,\n isFederating: this.federating,\n isPrivate: this.privateMode,\n currentUser: this.currentUser\n })\n }\n return filterNavigation(\n [\n ...Object\n .entries({ ...TIMELINES })\n .filter(([k]) => this.pinnedItems.has(k))\n .map(([k, v]) => ({ ...v, name: k })),\n ...this.lists.filter((k) => this.pinnedItems.has(k.name)),\n ...Object\n .entries({ ...ROOT_ITEMS })\n .filter(([k]) => this.pinnedItems.has(k))\n .map(([k, v]) => ({ ...v, name: k }))\n ],\n {\n hasChats: this.pleromaChatMessagesAvailable,\n hasAnnouncements: this.supportsAnnouncements,\n isFederating: this.federating,\n isPrivate: this.privateMode,\n currentUser: this.currentUser\n }\n ).slice(0, this.limit)\n }\n }\n}\n\nexport default NavPanel\n","import { render } from \"./navigation_pins.vue?vue&type=template&id=61dbea24\"\nimport script from \"./navigation_pins.js?vue&type=script&lang=js\"\nexport * from \"./navigation_pins.js?vue&type=script&lang=js\"\n\nimport \"./navigation_pins.vue?vue&type=style&index=0&id=61dbea24&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import ListsMenuContent from 'src/components/lists_menu/lists_menu_content.vue'\nimport { mapState, mapGetters } from 'vuex'\nimport { TIMELINES, ROOT_ITEMS } from 'src/components/navigation/navigation.js'\nimport { filterNavigation } from 'src/components/navigation/filter.js'\nimport NavigationEntry from 'src/components/navigation/navigation_entry.vue'\nimport NavigationPins from 'src/components/navigation/navigation_pins.vue'\nimport Checkbox from 'src/components/checkbox/checkbox.vue'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faUsers,\n faGlobe,\n faBookmark,\n faEnvelope,\n faChevronDown,\n faChevronUp,\n faComments,\n faBell,\n faInfoCircle,\n faStream,\n faList,\n faBullhorn\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faUsers,\n faGlobe,\n faBookmark,\n faEnvelope,\n faChevronDown,\n faChevronUp,\n faComments,\n faBell,\n faInfoCircle,\n faStream,\n faList,\n faBullhorn\n)\nconst NavPanel = {\n props: ['forceExpand', 'forceEditMode'],\n created () {\n },\n components: {\n ListsMenuContent,\n NavigationEntry,\n NavigationPins,\n Checkbox\n },\n data () {\n return {\n editMode: false,\n showTimelines: false,\n showLists: false,\n timelinesList: Object.entries(TIMELINES).map(([k, v]) => ({ ...v, name: k })),\n rootList: Object.entries(ROOT_ITEMS).map(([k, v]) => ({ ...v, name: k }))\n }\n },\n methods: {\n toggleTimelines () {\n this.showTimelines = !this.showTimelines\n },\n toggleLists () {\n this.showLists = !this.showLists\n },\n toggleEditMode () {\n this.editMode = !this.editMode\n },\n toggleCollapse () {\n this.$store.commit('setPreference', { path: 'simple.collapseNav', value: !this.collapsed })\n this.$store.dispatch('pushServerSideStorage')\n },\n isPinned (item) {\n return this.pinnedItems.has(item)\n },\n togglePin (item) {\n if (this.isPinned(item)) {\n this.$store.commit('removeCollectionPreference', { path: 'collections.pinnedNavItems', value: item })\n } else {\n this.$store.commit('addCollectionPreference', { path: 'collections.pinnedNavItems', value: item })\n }\n this.$store.dispatch('pushServerSideStorage')\n }\n },\n computed: {\n ...mapState({\n currentUser: state => state.users.currentUser,\n followRequestCount: state => state.api.followRequests.length,\n privateMode: state => state.instance.private,\n federating: state => state.instance.federating,\n pleromaChatMessagesAvailable: state => state.instance.pleromaChatMessagesAvailable,\n supportsAnnouncements: state => state.announcements.supportsAnnouncements,\n pinnedItems: state => new Set(state.serverSideStorage.prefsStorage.collections.pinnedNavItems),\n collapsed: state => state.serverSideStorage.prefsStorage.simple.collapseNav\n }),\n timelinesItems () {\n return filterNavigation(\n Object\n .entries({ ...TIMELINES })\n .map(([k, v]) => ({ ...v, name: k })),\n {\n hasChats: this.pleromaChatMessagesAvailable,\n hasAnnouncements: this.supportsAnnouncements,\n isFederating: this.federating,\n isPrivate: this.privateMode,\n currentUser: this.currentUser\n }\n )\n },\n rootItems () {\n return filterNavigation(\n Object\n .entries({ ...ROOT_ITEMS })\n .map(([k, v]) => ({ ...v, name: k })),\n {\n hasChats: this.pleromaChatMessagesAvailable,\n hasAnnouncements: this.supportsAnnouncements,\n isFederating: this.federating,\n isPrivate: this.privateMode,\n currentUser: this.currentUser\n }\n )\n },\n ...mapGetters(['unreadChatCount', 'unreadAnnouncementCount'])\n }\n}\n\nexport default NavPanel\n","import { render } from \"./nav_panel.vue?vue&type=template&id=7c761001\"\nimport script from \"./nav_panel.js?vue&type=script&lang=js\"\nexport * from \"./nav_panel.js?vue&type=script&lang=js\"\n\nimport \"./nav_panel.vue?vue&type=style&index=0&id=7c761001&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"instance-specific-panel\">\n <div class=\"panel panel-default\">\n <div class=\"panel-body\">\n <!-- eslint-disable vue/no-v-html -->\n <div v-html=\"instanceSpecificPanelContent\" />\n <!-- eslint-enable vue/no-v-html -->\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./instance_specific_panel.js\"></script>\n","const InstanceSpecificPanel = {\n computed: {\n instanceSpecificPanelContent () {\n return this.$store.state.instance.instanceSpecificPanelContent\n }\n }\n}\n\nexport default InstanceSpecificPanel\n","import { render } from \"./instance_specific_panel.vue?vue&type=template&id=707b4e95\"\nimport script from \"./instance_specific_panel.js?vue&type=script&lang=js\"\nexport * from \"./instance_specific_panel.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"features-panel\">\n <div class=\"panel panel-default base01-background\">\n <div class=\"panel-heading timeline-heading base02-background base04\">\n <div class=\"title\">\n {{ $t('features_panel.title') }}\n </div>\n </div>\n <div class=\"panel-body features-panel\">\n <ul>\n <li v-if=\"shout\">\n {{ $t('features_panel.shout') }}\n </li>\n <li v-if=\"pleromaChatMessages\">\n {{ $t('features_panel.pleroma_chat_messages') }}\n </li>\n <li v-if=\"gopher\">\n {{ $t('features_panel.gopher') }}\n </li>\n <li v-if=\"whoToFollow\">\n {{ $t('features_panel.who_to_follow') }}\n </li>\n <li v-if=\"mediaProxy\">\n {{ $t('features_panel.media_proxy') }}\n </li>\n <li>{{ $t('features_panel.scope_options') }}</li>\n <li>{{ $t('features_panel.text_limit') }} = {{ textlimit }}</li>\n <li>{{ $t('features_panel.upload_limit') }} = {{ uploadlimit.num }} {{ $t('upload.file_size_units.' + uploadlimit.unit) }}</li>\n </ul>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./features_panel.js\"></script>\n\n<style lang=\"scss\">\n .features-panel li {\n line-height: 24px;\n }\n</style>\n","import fileSizeFormatService from '../../services/file_size_format/file_size_format.js'\n\nconst FeaturesPanel = {\n computed: {\n shout: function () { return this.$store.state.instance.shoutAvailable },\n pleromaChatMessages: function () { return this.$store.state.instance.pleromaChatMessagesAvailable },\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 uploadlimit: function () { return fileSizeFormatService.fileSizeFormat(this.$store.state.instance.uploadlimit) }\n }\n}\n\nexport default FeaturesPanel\n","import { render } from \"./features_panel.vue?vue&type=template&id=76defdfa\"\nimport script from \"./features_panel.js?vue&type=script&lang=js\"\nexport * from \"./features_panel.js?vue&type=script&lang=js\"\n\nimport \"./features_panel.vue?vue&type=style&index=0&id=76defdfa&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"who-to-follow-panel\">\n <div class=\"panel panel-default base01-background\">\n <div class=\"panel-heading timeline-heading base02-background base04\">\n <div class=\"title\">\n {{ $t('who_to_follow.who_to_follow') }}\n </div>\n </div>\n <div class=\"who-to-follow\">\n <p\n v-for=\"user in usersToFollow\"\n :key=\"user.id\"\n class=\"who-to-follow-items\"\n >\n <img :src=\"user.img\">\n <router-link :to=\"userProfileLink(user.id, user.name)\">\n {{ user.name }}\n </router-link><br>\n </p>\n <p class=\"who-to-follow-more\">\n <router-link :to=\"{ name: 'who-to-follow' }\">\n {{ $t('who_to_follow.more') }}\n </router-link>\n </p>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./who_to_follow_panel.js\"></script>\n\n<style lang=\"scss\">\n .who-to-follow * {\n vertical-align: middle;\n }\n\n .who-to-follow img {\n width: 32px;\n height: 32px;\n }\n\n .who-to-follow {\n padding: 0 1em;\n margin: 0;\n }\n\n .who-to-follow-items {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 0;\n margin: 1em 0;\n }\n\n .who-to-follow-more {\n padding: 0;\n margin: 1em 0;\n text-align: center;\n }\n</style>\n","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 const user = shuffled[index]\n const img = user.avatar || this.$store.state.instance.defaultAvatar\n const 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 const credentials = panel.$store.state.users.currentUser.credentials\n if (credentials) {\n panel.usersToFollow.forEach(toFollow => {\n toFollow.name = 'Loading...'\n })\n apiService.suggestions({ credentials })\n .then((reply) => {\n showWhoToFollow(panel, reply)\n })\n }\n}\n\nconst WhoToFollowPanel = {\n data: () => ({\n usersToFollow: []\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 this.usersToFollow = new Array(3).fill().map(x => (\n {\n img: this.$store.state.instance.defaultAvatar,\n name: '',\n id: 0\n }\n ))\n if (this.suggestionsEnabled) {\n getWhoToFollow(this)\n }\n }\n}\n\nexport default WhoToFollowPanel\n","import { render } from \"./who_to_follow_panel.vue?vue&type=template&id=f150b2ba\"\nimport script from \"./who_to_follow_panel.js?vue&type=script&lang=js\"\nexport * from \"./who_to_follow_panel.js?vue&type=script&lang=js\"\n\nimport \"./who_to_follow_panel.vue?vue&type=style&index=0&id=f150b2ba&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n v-if=\"!collapsed || !floating\"\n class=\"shout-panel\"\n >\n <div class=\"panel panel-default\">\n <div\n class=\"panel-heading timeline-heading\"\n :class=\"{ 'shout-heading': floating }\"\n @click.stop.prevent=\"togglePanel\"\n >\n <div class=\"title\">\n {{ $t('shoutbox.title') }}\n <FAIcon\n v-if=\"floating\"\n icon=\"times\"\n class=\"close-icon\"\n />\n </div>\n </div>\n <div class=\"shout-window\">\n <div\n v-for=\"message in messages\"\n :key=\"message.id\"\n class=\"shout-message\"\n >\n <span class=\"shout-avatar\">\n <img :src=\"message.author.avatar\">\n </span>\n <div class=\"shout-content\">\n <router-link\n class=\"shout-name\"\n :to=\"userProfileLink(message.author)\"\n >\n {{ message.author.username }}\n </router-link>\n <br>\n <span class=\"shout-text\">\n {{ message.text }}\n </span>\n </div>\n </div>\n </div>\n <div class=\"shout-input\">\n <textarea\n v-model=\"currentMessage\"\n class=\"shout-input-textarea\"\n rows=\"1\"\n @keyup.enter=\"submit(currentMessage)\"\n />\n </div>\n </div>\n </div>\n <div\n v-else\n class=\"shout-panel\"\n >\n <div class=\"panel panel-default\">\n <div\n class=\"panel-heading -stub timeline-heading shout-heading\"\n @click.stop.prevent=\"togglePanel\"\n >\n <div class=\"title\">\n <FAIcon\n class=\"icon\"\n icon=\"bullhorn\"\n />\n {{ $t('shoutbox.title') }}\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./shout_panel.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.floating-shout {\n position: fixed;\n bottom: 0.5em;\n z-index: var(--ZI_popovers);\n max-width: 25em;\n\n &.-left {\n left: 0.5em;\n }\n\n &:not(.-left) {\n right: 0.5em;\n }\n}\n\n.shout-panel {\n .shout-heading {\n cursor: pointer;\n\n .icon {\n color: $fallback--text;\n color: var(--panelText, $fallback--text);\n margin-right: 0.5em;\n }\n\n .title {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n }\n\n .shout-window {\n overflow-y: auto;\n overflow-x: hidden;\n max-height: 20em;\n }\n\n .shout-window-container {\n height: 100%;\n }\n\n .shout-message {\n display: flex;\n padding: 0.2em 0.5em;\n }\n\n .shout-avatar {\n img {\n height: 24px;\n width: 24px;\n border-radius: $fallback--avatarRadius;\n border-radius: var(--avatarRadius, $fallback--avatarRadius);\n margin-right: 0.5em;\n margin-top: 0.25em;\n }\n }\n\n .shout-input {\n display: flex;\n\n textarea {\n flex: 1;\n margin: 0.6em;\n min-height: 3.5em;\n resize: none;\n }\n }\n\n .shout-panel {\n .title {\n display: flex;\n justify-content: space-between;\n }\n }\n}\n</style>\n","import generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faBullhorn,\n faTimes\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faBullhorn,\n faTimes\n)\n\nconst shoutPanel = {\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.shout.messages\n }\n },\n methods: {\n submit (message) {\n this.$store.state.shout.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 watch: {\n messages (newVal) {\n const scrollEl = this.$el.querySelector('.chat-window')\n if (!scrollEl) return\n if (scrollEl.scrollTop + scrollEl.offsetHeight + 20 > scrollEl.scrollHeight) {\n this.$nextTick(() => {\n if (!scrollEl) return\n scrollEl.scrollTop = scrollEl.scrollHeight - scrollEl.offsetHeight\n })\n }\n }\n }\n}\n\nexport default shoutPanel\n","import { render } from \"./shout_panel.vue?vue&type=template&id=48f55c04\"\nimport script from \"./shout_panel.js?vue&type=script&lang=js\"\nexport * from \"./shout_panel.js?vue&type=script&lang=js\"\n\nimport \"./shout_panel.vue?vue&type=style&index=0&id=48f55c04&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Modal\n v-if=\"showing\"\n class=\"media-modal-view\"\n @backdropClicked=\"hideIfNotSwiped\"\n >\n <SwipeClick\n v-if=\"type === 'image'\"\n ref=\"swipeClick\"\n class=\"modal-image-container\"\n :direction=\"swipeDirection\"\n :threshold=\"swipeThreshold\"\n :disable-click-threshold=\"swipeDisableClickThreshold\"\n @preview-requested=\"handleSwipePreview\"\n @swipe-finished=\"handleSwipeEnd\"\n @swipeless-clicked=\"hide\"\n >\n <PinchZoom\n ref=\"pinchZoom\"\n class=\"modal-image-container-inner\"\n selector=\".modal-image\"\n reach-min-scale-strategy=\"reset\"\n stop-propagate-handled=\"stop-propgate-handled\"\n :allow-pan-min-scale=\"pinchZoomMinScale\"\n :min-scale=\"pinchZoomMinScale\"\n :reset-to-min-scale-limit=\"pinchZoomScaleResetLimit\"\n >\n <img\n :class=\"{ loading }\"\n class=\"modal-image\"\n :src=\"currentMedia.url\"\n :alt=\"currentMedia.description\"\n :title=\"currentMedia.description\"\n @load=\"onImageLoaded\"\n >\n </PinchZoom>\n </SwipeClick>\n <VideoAttachment\n v-if=\"type === 'video'\"\n class=\"modal-image\"\n :attachment=\"currentMedia\"\n :controls=\"true\"\n />\n <audio\n v-if=\"type === 'audio'\"\n class=\"modal-image\"\n :src=\"currentMedia.url\"\n :alt=\"currentMedia.description\"\n :title=\"currentMedia.description\"\n controls\n />\n <Flash\n v-if=\"type === 'flash'\"\n class=\"modal-image\"\n :src=\"currentMedia.url\"\n :alt=\"currentMedia.description\"\n :title=\"currentMedia.description\"\n />\n <button\n v-if=\"canNavigate\"\n :title=\"$t('media_modal.previous')\"\n class=\"modal-view-button modal-view-button-arrow modal-view-button-arrow--prev\"\n @click.stop.prevent=\"goPrev\"\n >\n <FAIcon\n class=\"button-icon arrow-icon\"\n icon=\"chevron-left\"\n />\n </button>\n <button\n v-if=\"canNavigate\"\n :title=\"$t('media_modal.next')\"\n class=\"modal-view-button modal-view-button-arrow modal-view-button-arrow--next\"\n @click.stop.prevent=\"goNext\"\n >\n <FAIcon\n class=\"button-icon arrow-icon\"\n icon=\"chevron-right\"\n />\n </button>\n <button\n class=\"modal-view-button modal-view-button-hide\"\n :title=\"$t('media_modal.hide')\"\n @click.stop.prevent=\"hide\"\n >\n <FAIcon\n class=\"button-icon\"\n icon=\"times\"\n />\n </button>\n\n <span\n v-if=\"description\"\n class=\"description\"\n >\n {{ description }}\n </span>\n <span\n class=\"counter\"\n >\n {{ $tc('media_modal.counter', currentIndex + 1, { current: currentIndex + 1, total: media.length }) }}\n </span>\n <span\n v-if=\"loading\"\n class=\"loading-spinner\"\n >\n <FAIcon\n spin\n icon=\"circle-notch\"\n size=\"5x\"\n />\n </span>\n </Modal>\n</template>\n\n<script src=\"./media_modal.js\"></script>\n\n<style lang=\"scss\">\n$modal-view-button-icon-height: 3em;\n$modal-view-button-icon-half-height: calc(#{$modal-view-button-icon-height} / 2);\n$modal-view-button-icon-width: 3em;\n$modal-view-button-icon-margin: 0.5em;\n\n.media-modal-view {\n @keyframes media-fadein {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n }\n\n .modal-image-container {\n display: flex;\n overflow: hidden;\n align-items: center;\n flex-direction: column;\n max-width: 100%;\n max-height: 100%;\n width: 100%;\n height: 100%;\n flex-grow: 1;\n justify-content: center;\n\n &-inner {\n width: 100%;\n height: 100%;\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n }\n }\n\n .description,\n .counter {\n /* Hardcoded since background is also hardcoded */\n color: white;\n margin-top: 1em;\n text-shadow: 0 0 10px black, 0 0 10px black;\n padding: 0.2em 2em;\n }\n\n .description {\n flex: 0 0 auto;\n overflow-y: auto;\n min-height: 1em;\n max-width: 500px;\n max-height: 9.5em;\n word-break: break-all;\n }\n\n .modal-image {\n max-width: 100%;\n max-height: 100%;\n image-orientation: from-image; // NOTE: only FF supports this\n animation: 0.1s cubic-bezier(0.7, 0, 1, 0.6) media-fadein;\n\n &.loading {\n opacity: 0.5;\n }\n }\n\n .loading-spinner {\n width: 100%;\n height: 100%;\n position: absolute;\n pointer-events: none;\n display: flex;\n justify-content: center;\n align-items: center;\n\n svg {\n color: white;\n }\n }\n\n .modal-view-button {\n border: 0;\n padding: 0;\n opacity: 0;\n box-shadow: none;\n background: none;\n appearance: none;\n overflow: visible;\n cursor: pointer;\n transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);\n height: $modal-view-button-icon-height;\n width: $modal-view-button-icon-width;\n\n .button-icon {\n position: absolute;\n height: $modal-view-button-icon-height;\n width: $modal-view-button-icon-width;\n font-size: 1rem;\n line-height: $modal-view-button-icon-height;\n color: #fff;\n text-align: center;\n background-color: rgb(0 0 0 / 30%);\n }\n }\n\n .modal-view-button-arrow {\n position: absolute;\n display: block;\n top: 50%;\n margin-top: $modal-view-button-icon-half-height;\n width: $modal-view-button-icon-width;\n height: $modal-view-button-icon-height;\n\n .arrow-icon {\n position: absolute;\n top: 0;\n line-height: $modal-view-button-icon-height;\n color: #fff;\n text-align: center;\n background-color: rgb(0 0 0 / 30%);\n }\n\n &--prev {\n left: 0;\n\n .arrow-icon {\n left: $modal-view-button-icon-margin;\n }\n }\n\n &--next {\n right: 0;\n\n .arrow-icon {\n right: $modal-view-button-icon-margin;\n }\n }\n }\n\n .modal-view-button-hide {\n position: absolute;\n top: 0;\n right: 0;\n\n .button-icon {\n top: $modal-view-button-icon-margin;\n right: $modal-view-button-icon-margin;\n }\n }\n}\n\n.modal-view.media-modal-view {\n z-index: var(--ZI_media_modal);\n flex-direction: column;\n\n .modal-view-button-arrow,\n .modal-view-button-hide {\n opacity: 0.75;\n\n &:focus,\n &:hover {\n outline: none;\n box-shadow: none;\n }\n\n &:hover {\n opacity: 1;\n }\n }\n\n overflow: hidden;\n}\n</style>\n","import PinchZoom from '@kazvmoe-infra/pinch-zoom-element'\n\nexport default {\n methods: {\n setTransform ({ scale, x, y }) {\n this.$el.setTransform({ scale, x, y })\n }\n },\n created () {\n // Make lint happy\n (() => PinchZoom)()\n }\n}\n","import { render } from \"./pinch_zoom.vue?vue&type=template&id=4608b5bf\"\nimport script from \"./pinch_zoom.js?vue&type=script&lang=js\"\nexport * from \"./pinch_zoom.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <pinch-zoom\n class=\"pinch-zoom-parent\"\n v-bind=\"$attrs\"\n v-on=\"$listeners\"\n >\n <slot />\n </pinch-zoom>\n</template>\n\n<script src=\"./pinch_zoom.js\"></script>\n","\nconst DIRECTION_LEFT = [-1, 0]\nconst DIRECTION_RIGHT = [1, 0]\nconst DIRECTION_UP = [0, -1]\nconst DIRECTION_DOWN = [0, 1]\n\nconst BUTTON_LEFT = 0\n\nconst deltaCoord = (oldCoord, newCoord) => [newCoord[0] - oldCoord[0], newCoord[1] - oldCoord[1]]\n\nconst touchCoord = touch => [touch.screenX, touch.screenY]\n\nconst touchEventCoord = e => touchCoord(e.touches[0])\n\nconst pointerEventCoord = e => [e.clientX, e.clientY]\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\nclass SwipeAndClickGesture {\n // swipePreviewCallback(offsets: Array[Number])\n // offsets: the offset vector which the underlying component should move, from the starting position\n // swipeEndCallback(sign: 0|-1|1)\n // sign: if the swipe does not meet the threshold, 0\n // if the swipe meets the threshold in the positive direction, 1\n // if the swipe meets the threshold in the negative direction, -1\n constructor ({\n direction,\n // swipeStartCallback\n swipePreviewCallback,\n swipeEndCallback,\n swipeCancelCallback,\n swipelessClickCallback,\n threshold = 30,\n perpendicularTolerance = 1.0,\n disableClickThreshold = 1\n }) {\n const nop = () => {}\n this.direction = direction\n this.swipePreviewCallback = swipePreviewCallback || nop\n this.swipeEndCallback = swipeEndCallback || nop\n this.swipeCancelCallback = swipeCancelCallback || nop\n this.swipelessClickCallback = swipelessClickCallback || nop\n this.threshold = typeof threshold === 'function' ? threshold : () => threshold\n this.disableClickThreshold = typeof disableClickThreshold === 'function' ? disableClickThreshold : () => disableClickThreshold\n this.perpendicularTolerance = perpendicularTolerance\n this._reset()\n }\n\n _reset () {\n this._startPos = [0, 0]\n this._pointerId = -1\n this._swiping = false\n this._swiped = false\n this._preventNextClick = false\n }\n\n start (event) {\n // Only handle left click\n if (event.button !== BUTTON_LEFT) {\n return\n }\n\n this._startPos = pointerEventCoord(event)\n this._pointerId = event.pointerId\n this._swiping = true\n this._swiped = false\n }\n\n move (event) {\n if (this._swiping && this._pointerId === event.pointerId) {\n this._swiped = true\n\n const coord = pointerEventCoord(event)\n const delta = deltaCoord(this._startPos, coord)\n\n this.swipePreviewCallback(delta)\n }\n }\n\n cancel (event) {\n if (!this._swiping || this._pointerId !== event.pointerId) {\n return\n }\n\n this.swipeCancelCallback()\n }\n\n end (event) {\n if (!this._swiping) {\n return\n }\n\n if (this._pointerId !== event.pointerId) {\n return\n }\n\n this._swiping = false\n\n // movement too small\n const coord = pointerEventCoord(event)\n const delta = deltaCoord(this._startPos, coord)\n\n const sign = (() => {\n if (vectorLength(delta) < this.threshold()) {\n return 0\n }\n // movement is opposite from direction\n const isPositive = dotProduct(delta, this.direction) > 0\n\n // movement perpendicular to direction is too much\n const towardsDir = project(delta, this.direction)\n const perpendicularDir = perpendicular(this.direction)\n const towardsPerpendicular = project(delta, perpendicularDir)\n if (\n vectorLength(towardsDir) * this.perpendicularTolerance <\n vectorLength(towardsPerpendicular)\n ) {\n return 0\n }\n\n return isPositive ? 1 : -1\n })()\n\n if (this._swiped) {\n this.swipeEndCallback(sign)\n }\n this._reset()\n // Only a mouse will fire click event when\n // the end point is far from the starting point\n // so for other kinds of pointers do not check\n // whether we have swiped\n if (vectorLength(delta) >= this.disableClickThreshold() && event.pointerType === 'mouse') {\n this._preventNextClick = true\n }\n }\n\n click (event) {\n if (!this._preventNextClick) {\n this.swipelessClickCallback()\n }\n this._reset()\n }\n}\n\nconst GestureService = {\n DIRECTION_LEFT,\n DIRECTION_RIGHT,\n DIRECTION_UP,\n DIRECTION_DOWN,\n swipeGesture,\n beginSwipe,\n updateSwipe,\n SwipeAndClickGesture\n}\n\nexport default GestureService\n","import GestureService from '../../services/gesture_service/gesture_service'\n\n/**\n * props:\n * direction: a vector that indicates the direction of the intended swipe\n * threshold: the minimum distance in pixels the swipe has moved on `direction'\n * for swipe-finished() to have a non-zero sign\n * disableClickThreshold: the minimum distance in pixels for the swipe to\n * not trigger a click\n * perpendicularTolerance: see gesture_service\n *\n * Events:\n * preview-requested(offsets)\n * Emitted when the pointer has moved.\n * offsets: the offsets from the start of the swipe to the current cursor position\n *\n * swipe-canceled()\n * Emitted when the swipe has been canceled due to a pointercancel event.\n *\n * swipe-finished(sign: 0|-1|1)\n * Emitted when the swipe has finished.\n * sign: if the swipe does not meet the threshold, 0\n * if the swipe meets the threshold in the positive direction, 1\n * if the swipe meets the threshold in the negative direction, -1\n *\n * swipeless-clicked()\n * Emitted when there is a click without swipe.\n * This and swipe-finished() cannot be emitted for the same pointerup event.\n */\nconst SwipeClick = {\n props: {\n direction: {\n type: Array\n },\n threshold: {\n type: Function,\n default: () => 30\n },\n disableClickThreshold: {\n type: Function,\n default: () => 1\n },\n perpendicularTolerance: {\n type: Number,\n default: 1.0\n }\n },\n methods: {\n handlePointerDown (event) {\n this.$gesture.start(event)\n },\n handlePointerMove (event) {\n this.$gesture.move(event)\n },\n handlePointerUp (event) {\n this.$gesture.end(event)\n },\n handlePointerCancel (event) {\n this.$gesture.cancel(event)\n },\n handleNativeClick (event) {\n this.$gesture.click(event)\n },\n preview (offsets) {\n this.$emit('preview-requested', offsets)\n },\n end (sign) {\n this.$emit('swipe-finished', sign)\n },\n click () {\n this.$emit('swipeless-clicked')\n },\n cancel () {\n this.$emit('swipe-canceled')\n }\n },\n created () {\n this.$gesture = new GestureService.SwipeAndClickGesture({\n direction: this.direction,\n threshold: this.threshold,\n disableClickThreshold: this.disableClickThreshold,\n perpendicularTolerance: this.perpendicularTolerance,\n swipePreviewCallback: this.preview,\n swipeEndCallback: this.end,\n swipeCancelCallback: this.cancel,\n swipelessClickCallback: this.click\n })\n }\n}\n\nexport default SwipeClick\n","import { render } from \"./swipe_click.vue?vue&type=template&id=4c0f684c\"\nimport script from \"./swipe_click.js?vue&type=script&lang=js\"\nexport * from \"./swipe_click.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n v-bind=\"$attrs\"\n @pointerdown=\"handlePointerDown\"\n @pointermove=\"handlePointerMove\"\n @pointerup=\"handlePointerUp\"\n @pointercancel=\"handlePointerCancel\"\n @click=\"handleNativeClick\"\n >\n <slot />\n </div>\n</template>\n\n<script src=\"./swipe_click.js\"></script>\n","import StillImage from '../still-image/still-image.vue'\nimport VideoAttachment from '../video_attachment/video_attachment.vue'\nimport Modal from '../modal/modal.vue'\nimport PinchZoom from '../pinch_zoom/pinch_zoom.vue'\nimport SwipeClick from '../swipe_click/swipe_click.vue'\nimport GestureService from '../../services/gesture_service/gesture_service'\nimport Flash from 'src/components/flash/flash.vue'\nimport fileTypeService from '../../services/file_type/file_type.service.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faChevronLeft,\n faChevronRight,\n faCircleNotch,\n faTimes\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faChevronLeft,\n faChevronRight,\n faCircleNotch,\n faTimes\n)\n\nconst MediaModal = {\n components: {\n StillImage,\n VideoAttachment,\n PinchZoom,\n SwipeClick,\n Modal,\n Flash\n },\n data () {\n return {\n loading: false,\n swipeDirection: GestureService.DIRECTION_LEFT,\n swipeThreshold: () => {\n const considerableMoveRatio = 1 / 4\n return window.innerWidth * considerableMoveRatio\n },\n pinchZoomMinScale: 1,\n pinchZoomScaleResetLimit: 1.2\n }\n },\n computed: {\n showing () {\n return this.$store.state.mediaViewer.activated\n },\n media () {\n return this.$store.state.mediaViewer.media\n },\n description () {\n return this.currentMedia.description\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 ? this.getType(this.currentMedia) : null\n },\n swipeDisableClickThreshold () {\n // If there is only one media, allow more mouse movements to close the modal\n // because there is less chance that the user wants to switch to another image\n return () => this.canNavigate ? 1 : 30\n }\n },\n methods: {\n getType (media) {\n return fileTypeService.fileType(media.mimetype)\n },\n hide () {\n // HACK: Closing immediately via a touch will cause the click\n // to be processed on the content below the overlay\n const transitionTime = 100 // ms\n setTimeout(() => {\n this.$store.dispatch('closeMediaViewer')\n }, transitionTime)\n },\n hideIfNotSwiped (event) {\n // If we have swiped over SwipeClick, do not trigger hide\n const comp = this.$refs.swipeClick\n if (!comp) {\n this.hide()\n } else {\n comp.$gesture.click(event)\n }\n },\n goPrev () {\n if (this.canNavigate) {\n const prevIndex = this.currentIndex === 0 ? this.media.length - 1 : (this.currentIndex - 1)\n const newMedia = this.media[prevIndex]\n if (this.getType(newMedia) === 'image') {\n this.loading = true\n }\n this.$store.dispatch('setCurrentMedia', newMedia)\n }\n },\n goNext () {\n if (this.canNavigate) {\n const nextIndex = this.currentIndex === this.media.length - 1 ? 0 : (this.currentIndex + 1)\n const newMedia = this.media[nextIndex]\n if (this.getType(newMedia) === 'image') {\n this.loading = true\n }\n this.$store.dispatch('setCurrentMedia', newMedia)\n }\n },\n onImageLoaded () {\n this.loading = false\n },\n handleSwipePreview (offsets) {\n this.$refs.pinchZoom.setTransform({ scale: 1, x: offsets[0], y: 0 })\n },\n handleSwipeEnd (sign) {\n this.$refs.pinchZoom.setTransform({ scale: 1, x: 0, y: 0 })\n if (sign > 0) {\n this.goNext()\n } else if (sign < 0) {\n this.goPrev()\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 window.addEventListener('popstate', this.hide)\n document.addEventListener('keyup', this.handleKeyupEvent)\n document.addEventListener('keydown', this.handleKeydownEvent)\n },\n unmounted () {\n window.removeEventListener('popstate', this.hide)\n document.removeEventListener('keyup', this.handleKeyupEvent)\n document.removeEventListener('keydown', this.handleKeydownEvent)\n }\n}\n\nexport default MediaModal\n","import { render } from \"./media_modal.vue?vue&type=template&id=a080a8e6\"\nimport script from \"./media_modal.js?vue&type=script&lang=js\"\nexport * from \"./media_modal.js?vue&type=script&lang=js\"\n\nimport \"./media_modal.vue?vue&type=style&index=0&id=a080a8e6&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n class=\"side-drawer-container\"\n :class=\"{ 'side-drawer-container-closed': closed, 'side-drawer-container-open': !closed }\"\n >\n <div\n class=\"side-drawer-darken\"\n :class=\"{ 'side-drawer-darken-closed': closed}\"\n />\n <div\n class=\"side-drawer\"\n :class=\"{'side-drawer-closed': closed}\"\n @touchstart=\"touchStart\"\n @touchmove=\"touchMove\"\n >\n <div\n class=\"side-drawer-heading\"\n @click=\"toggleDrawer\"\n >\n <UserCard\n v-if=\"currentUser\"\n :user-id=\"currentUser.id\"\n :hide-bio=\"true\"\n />\n <div\n v-else\n class=\"side-drawer-logo-wrapper\"\n >\n <img :src=\"logo\">\n <span v-if=\"!hideSitename\">{{ sitename }}</span>\n </div>\n </div>\n <ul>\n <li\n v-if=\"!currentUser\"\n @click=\"toggleDrawer\"\n >\n <router-link :to=\"{ name: 'login' }\">\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"sign-in-alt\"\n /> {{ $t(\"login.login\") }}\n </router-link>\n </li>\n <li\n v-if=\"currentUser || !privateMode\"\n @click=\"toggleDrawer\"\n >\n <router-link :to=\"timelinesRoute\">\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"home\"\n /> {{ $t(\"nav.timelines\") }}\n </router-link>\n </li>\n <li\n v-if=\"currentUser\"\n @click=\"toggleDrawer\"\n >\n <router-link :to=\"{ name: 'lists' }\">\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"list\"\n /> {{ $t(\"nav.lists\") }}\n </router-link>\n </li>\n <li\n v-if=\"currentUser && pleromaChatMessagesAvailable\"\n @click=\"toggleDrawer\"\n >\n <router-link\n :to=\"{ name: 'chats', params: { username: currentUser.screen_name } }\"\n style=\"position: relative;\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"comments\"\n /> {{ $t(\"nav.chats\") }}\n <span\n v-if=\"unreadChatCount\"\n class=\"badge badge-notification\"\n >\n {{ unreadChatCount }}\n </span>\n </router-link>\n </li>\n </ul>\n <ul v-if=\"currentUser\">\n <li @click=\"toggleDrawer\">\n <router-link :to=\"{ name: 'interactions', params: { username: currentUser.screen_name } }\">\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"bell\"\n /> {{ $t(\"nav.interactions\") }}\n </router-link>\n </li>\n <li\n v-if=\"currentUser.locked\"\n @click=\"toggleDrawer\"\n >\n <router-link to=\"/friend-requests\">\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"user-plus\"\n /> {{ $t(\"nav.friend_requests\") }}\n <span\n v-if=\"followRequestCount > 0\"\n class=\"badge badge-notification\"\n >\n {{ followRequestCount }}\n </span>\n </router-link>\n </li>\n <li\n v-if=\"shout\"\n @click=\"toggleDrawer\"\n >\n <router-link :to=\"{ name: 'shout-panel' }\">\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"bullhorn\"\n /> {{ $t(\"shoutbox.title\") }}\n </router-link>\n </li>\n </ul>\n <ul>\n <li\n v-if=\"currentUser || !privateMode\"\n @click=\"toggleDrawer\"\n >\n <router-link :to=\"{ name: 'search' }\">\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"search\"\n /> {{ $t(\"nav.search\") }}\n </router-link>\n </li>\n <li\n v-if=\"currentUser && suggestionsEnabled\"\n @click=\"toggleDrawer\"\n >\n <router-link :to=\"{ name: 'who-to-follow' }\">\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"user-plus\"\n /> {{ $t(\"nav.who_to_follow\") }}\n </router-link>\n </li>\n <li @click=\"toggleDrawer\">\n <button\n class=\"button-unstyled -link -fullwidth\"\n @click=\"openSettingsModal\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"cog\"\n /> {{ $t(\"settings.settings\") }}\n </button>\n </li>\n <li @click=\"toggleDrawer\">\n <router-link :to=\"{ name: 'about'}\">\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"info-circle\"\n /> {{ $t(\"nav.about\") }}\n </router-link>\n </li>\n <li\n v-if=\"currentUser && currentUser.role === 'admin'\"\n @click=\"toggleDrawer\"\n >\n <button\n class=\"button-unstyled -link -fullwidth\"\n @click.stop=\"openAdminModal\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"tachometer-alt\"\n /> {{ $t(\"nav.administration\") }}\n </button>\n </li>\n <li\n v-if=\"currentUser && supportsAnnouncements\"\n @click=\"toggleDrawer\"\n >\n <router-link\n :to=\"{ name: 'announcements' }\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"bullhorn\"\n /> {{ $t(\"nav.announcements\") }}\n <span\n v-if=\"unreadAnnouncementCount\"\n class=\"badge badge-notification\"\n >\n {{ unreadAnnouncementCount }}\n </span>\n </router-link>\n </li>\n <li\n v-if=\"currentUser\"\n @click=\"toggleDrawer\"\n >\n <router-link :to=\"{ name: 'edit-navigation' }\">\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"compass\"\n /> {{ $t(\"nav.edit_nav_mobile\") }}\n </router-link>\n </li>\n <li\n v-if=\"currentUser\"\n @click=\"toggleDrawer\"\n >\n <button\n class=\"button-unstyled -link -fullwidth\"\n @click=\"doLogout\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"sign-out-alt\"\n /> {{ $t(\"login.logout\") }}\n </button>\n </li>\n </ul>\n </div>\n <div\n class=\"side-drawer-click-outside\"\n :class=\"{'side-drawer-click-outside-closed': closed}\"\n @click.stop.prevent=\"toggleDrawer\"\n />\n </div>\n</template>\n\n<script src=\"./side_drawer.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.side-drawer-container {\n position: fixed;\n z-index: var(--ZI_navbar);\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: stretch;\n transition-duration: 0s;\n transition-property: transform;\n}\n\n.side-drawer-container-open {\n transform: translate(0%);\n}\n\n.side-drawer-container-closed {\n transition-delay: 0.35s;\n transform: translate(-100%);\n}\n\n.side-drawer-darken {\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n position: fixed;\n z-index: -1;\n transition: 0.35s;\n transition-property: background-color;\n background-color: rgb(0 0 0 / 50%);\n}\n\n.side-drawer-darken-closed {\n background-color: rgb(0 0 0 / 0%);\n}\n\n.side-drawer-click-outside {\n flex: 1 1 100%;\n}\n\n.side-drawer {\n overflow-x: hidden;\n transition: 0.35s;\n transition-timing-function: cubic-bezier(0, 1, 0.5, 1);\n transition-property: transform;\n margin: 0 0 0 -100px;\n padding: 0 0 1em 100px;\n width: 80%;\n max-width: 20em;\n flex: 0 0 80%;\n box-shadow: 1px 1px 4px rgb(0 0 0 / 60%);\n box-shadow: var(--panelShadow);\n background-color: $fallback--bg;\n background-color: var(--popover, $fallback--bg);\n color: $fallback--link;\n color: var(--popoverText, $fallback--link);\n\n --faint: var(--popoverFaintText, $fallback--faint);\n --faintLink: var(--popoverFaintLink, $fallback--faint);\n --lightText: var(--popoverLightText, $fallback--lightText);\n --icon: var(--popoverIcon, $fallback--icon);\n\n .badge {\n margin-left: 10px;\n }\n}\n\n.side-drawer-logo-wrapper {\n display: flex;\n align-items: center;\n padding: 0.85em;\n\n img {\n flex: none;\n height: 50px;\n margin-right: 0.85em;\n }\n\n span {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n}\n\n.side-drawer-click-outside-closed {\n flex: 0 0 0;\n}\n\n.side-drawer-closed {\n transform: translate(-100%);\n}\n\n.side-drawer-heading {\n background: transparent;\n flex-direction: column;\n align-items: stretch;\n display: flex;\n padding: 0;\n margin: 0;\n}\n\n.side-drawer ul {\n list-style: none;\n margin: 0;\n padding: 0;\n border-bottom: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n}\n\n.side-drawer ul:last-child {\n border: 0;\n}\n\n.side-drawer li {\n padding: 0;\n\n a,\n button {\n box-sizing: border-box;\n display: block;\n height: 3em;\n line-height: 3em;\n padding: 0 0.7em;\n\n &:hover {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenuPopover, $fallback--lightBg);\n color: $fallback--text;\n color: var(--selectedMenuPopoverText, $fallback--text);\n\n --faint: var(--selectedMenuPopoverFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuPopoverFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuPopoverLightText, $fallback--lightText);\n --icon: var(--selectedMenuPopoverIcon, $fallback--icon);\n }\n }\n}\n</style>\n","import { mapState, mapGetters } from 'vuex'\nimport UserCard from '../user_card/user_card.vue'\nimport { unseenNotificationsFromStore } from '../../services/notification_utils/notification_utils'\nimport GestureService from '../../services/gesture_service/gesture_service'\nimport { USERNAME_ROUTES } from 'src/components/navigation/navigation.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faSignInAlt,\n faSignOutAlt,\n faHome,\n faComments,\n faBell,\n faUserPlus,\n faBullhorn,\n faSearch,\n faTachometerAlt,\n faCog,\n faInfoCircle,\n faCompass,\n faList\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faSignInAlt,\n faSignOutAlt,\n faHome,\n faComments,\n faBell,\n faUserPlus,\n faBullhorn,\n faSearch,\n faTachometerAlt,\n faCog,\n faInfoCircle,\n faCompass,\n faList\n)\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 shout () { return this.$store.state.shout.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 timelinesRoute () {\n let name\n if (this.$store.state.interface.lastTimeline) {\n name = this.$store.state.interface.lastTimeline\n }\n name = this.currentUser ? 'friends' : 'public-timeline'\n if (USERNAME_ROUTES.has(name)) {\n return { name, params: { username: this.currentUser.screen_name } }\n } else {\n return { name }\n }\n },\n ...mapState({\n pleromaChatMessagesAvailable: state => state.instance.pleromaChatMessagesAvailable,\n supportsAnnouncements: state => state.announcements.supportsAnnouncements\n }),\n ...mapGetters(['unreadChatCount', 'unreadAnnouncementCount'])\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 openSettingsModal () {\n this.$store.dispatch('openSettingsModal', 'user')\n },\n openAdminModal () {\n this.$store.dispatch('openSettingsModal', 'admin')\n }\n }\n}\n\nexport default SideDrawer\n","import { render } from \"./side_drawer.vue?vue&type=template&id=0c55529b\"\nimport script from \"./side_drawer.js?vue&type=script&lang=js\"\nexport * from \"./side_drawer.js?vue&type=script&lang=js\"\n\nimport \"./side_drawer.vue?vue&type=style&index=0&id=0c55529b&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { debounce } from 'lodash'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faPen\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faPen\n)\n\nconst HIDDEN_FOR_PAGES = new Set([\n 'chats',\n 'chat',\n 'lists-edit'\n])\n\nconst MobilePostStatusButton = {\n data () {\n return {\n hidden: false,\n scrollingDown: false,\n inputActive: false,\n oldScrollPos: 0,\n amountScrolled: 0\n }\n },\n created () {\n if (this.autohideFloatingPostButton) {\n this.activateFloatingPostButtonAutohide()\n }\n window.addEventListener('resize', this.handleOSK)\n },\n unmounted () {\n if (this.autohideFloatingPostButton) {\n this.deactivateFloatingPostButtonAutohide()\n }\n window.removeEventListener('resize', this.handleOSK)\n },\n computed: {\n isLoggedIn () {\n return !!this.$store.state.users.currentUser\n },\n isHidden () {\n if (HIDDEN_FOR_PAGES.has(this.$route.name)) { return true }\n\n return this.autohideFloatingPostButton && (this.hidden || this.inputActive)\n },\n isPersistent () {\n return !!this.$store.getters.mergedConfig.alwaysShowNewPostButton\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","import { render } from \"./mobile_post_status_button.vue?vue&type=template&id=6c0a4c69\"\nimport script from \"./mobile_post_status_button.js?vue&type=script&lang=js\"\nexport * from \"./mobile_post_status_button.js?vue&type=script&lang=js\"\n\nimport \"./mobile_post_status_button.vue?vue&type=style&index=0&id=6c0a4c69&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <button\n v-if=\"isLoggedIn\"\n class=\"MobilePostButton button-default new-status-button\"\n :class=\"{ 'hidden': isHidden, 'always-show': isPersistent }\"\n :title=\"$t('post_status.new_status')\"\n @click=\"openPostForm\"\n >\n <FAIcon icon=\"pen\" />\n </button>\n</template>\n\n<script src=\"./mobile_post_status_button.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.MobilePostButton {\n &.button-default {\n width: 5em;\n height: 5em;\n border-radius: 100%;\n position: fixed;\n bottom: 1.5em;\n right: 1.5em;\n // TODO: this needs its own color, it has to stand out enough and link color\n // is not very optimal for this particular use.\n background-color: $fallback--fg;\n background-color: var(--btn, $fallback--fg);\n display: flex;\n justify-content: center;\n align-items: center;\n box-shadow: 0 2px 2px rgb(0 0 0 / 30%), 0 4px 6px rgb(0 0 0 / 30%);\n z-index: 10;\n transition: 0.35s transform;\n transition-timing-function: cubic-bezier(0, 1, 0.5, 1);\n }\n\n &.hidden {\n transform: translateY(150%);\n }\n\n svg {\n font-size: 1.5em;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n}\n\n@media all and (min-width: 801px) {\n .new-status-button:not(.always-show) {\n display: none;\n }\n}\n\n</style>\n","<template>\n <div\n class=\"MobileNav\"\n >\n <nav\n id=\"nav\"\n class=\"mobile-nav\"\n @click=\"scrollToTop()\"\n >\n <div class=\"item\">\n <button\n class=\"button-unstyled mobile-nav-button\"\n :title=\"$t('nav.mobile_sidebar')\"\n :aria-expanaded=\"$refs.sideDrawer && !$refs.sideDrawer.closed\"\n @click.stop.prevent=\"toggleMobileSidebar()\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"bars\"\n />\n <div\n v-if=\"(unreadChatCount && !chatsPinned) || unreadAnnouncementCount\"\n class=\"alert-dot\"\n />\n </button>\n <NavigationPins class=\"pins\" />\n </div> <div class=\"item right\">\n <button\n v-if=\"currentUser\"\n class=\"button-unstyled mobile-nav-button\"\n :title=\"unseenNotificationsCount ? $t('nav.mobile_notifications_unread_active') : $t('nav.mobile_notifications')\"\n @click.stop.prevent=\"openMobileNotifications()\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"bell\"\n />\n <div\n v-if=\"unseenNotificationsCount\"\n class=\"alert-dot\"\n />\n </button>\n </div>\n </nav>\n <aside\n v-if=\"currentUser\"\n class=\"mobile-notifications-drawer\"\n :class=\"{ '-closed': !notificationsOpen }\"\n @touchstart.stop=\"notificationsTouchStart\"\n @touchmove.stop=\"notificationsTouchMove\"\n >\n <div class=\"mobile-notifications-header\">\n <span class=\"title\">{{ $t('notifications.notifications') }}</span>\n <span class=\"spacer\" />\n <button\n v-if=\"notificationsAtTop\"\n class=\"button-unstyled mobile-nav-button\"\n :title=\"$t('general.scroll_to_top')\"\n @click.stop.prevent=\"scrollMobileNotificationsToTop\"\n >\n <FALayers class=\"fa-scale-110 fa-old-padding-layer\">\n <FAIcon icon=\"arrow-up\" />\n <FAIcon\n icon=\"minus\"\n transform=\"up-7\"\n />\n </FALayers>\n </button>\n <button\n class=\"button-unstyled mobile-nav-button\"\n :title=\"$t('nav.mobile_notifications_close')\"\n @click.stop.prevent=\"closeMobileNotifications(true)\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"times\"\n />\n </button>\n </div>\n <div\n id=\"mobile-notifications\"\n ref=\"mobileNotifications\"\n class=\"mobile-notifications\"\n @scroll=\"onScroll\"\n />\n </aside>\n <SideDrawer\n ref=\"sideDrawer\"\n :logout=\"logout\"\n />\n <teleport to=\"#modal\">\n <confirm-modal\n v-if=\"showingConfirmLogout\"\n :title=\"$t('login.logout_confirm_title')\"\n :confirm-text=\"$t('login.logout_confirm_accept_button')\"\n :cancel-text=\"$t('login.logout_confirm_cancel_button')\"\n @accepted=\"doLogout\"\n @cancelled=\"hideConfirmLogout\"\n >\n {{ $t('login.logout_confirm') }}\n </confirm-modal>\n </teleport>\n </div>\n</template>\n\n<script src=\"./mobile_nav.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.MobileNav {\n z-index: var(--ZI_navbar);\n\n .mobile-nav {\n display: grid;\n line-height: var(--navbar-height);\n grid-template-rows: 50px;\n grid-template-columns: 2fr auto;\n width: 100%;\n box-sizing: border-box;\n\n a {\n color: var(--topBarLink, $fallback--link);\n }\n }\n\n .mobile-inner-nav {\n width: 100%;\n display: flex;\n align-items: center;\n }\n\n .mobile-nav-button {\n display: inline-block;\n text-align: center;\n padding: 0 1em;\n position: relative;\n cursor: pointer;\n }\n\n .site-name {\n padding: 0 0.3em;\n display: inline-block;\n }\n\n .item {\n /* moslty just to get rid of extra whitespaces */\n display: flex;\n }\n\n .alert-dot {\n border-radius: 100%;\n height: 8px;\n width: 8px;\n position: absolute;\n left: calc(50% - 4px);\n top: calc(50% - 4px);\n margin-left: 6px;\n margin-top: -6px;\n background-color: $fallback--cRed;\n background-color: var(--badgeNotification, $fallback--cRed);\n }\n\n .mobile-notifications-drawer {\n width: 100%;\n height: 100vh;\n overflow-x: hidden;\n position: fixed;\n top: 0;\n left: 0;\n box-shadow: 1px 1px 4px rgb(0 0 0 / 60%);\n box-shadow: var(--panelShadow);\n transition-property: transform;\n transition-duration: 0.25s;\n transform: translateX(0);\n z-index: var(--ZI_navbar);\n -webkit-overflow-scrolling: touch;\n\n &.-closed {\n transform: translateX(100%);\n box-shadow: none;\n }\n }\n\n .mobile-notifications-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n z-index: calc(var(--ZI_navbar) + 100);\n width: 100%;\n height: 50px;\n line-height: 50px;\n position: absolute;\n color: var(--topBarText);\n background-color: $fallback--fg;\n background-color: var(--topBar, $fallback--fg);\n box-shadow: 0 0 4px rgb(0 0 0 / 60%);\n box-shadow: var(--topBarShadow);\n\n .spacer {\n flex: 1;\n }\n\n .title {\n font-size: 1.3em;\n margin-left: 0.6em;\n }\n }\n\n .pins {\n flex: 1;\n\n .pinned-item {\n flex-grow: 1;\n }\n }\n\n .mobile-notifications {\n margin-top: 50px;\n width: 100vw;\n height: calc(100vh - var(--navbar-height));\n overflow-x: hidden;\n overflow-y: scroll;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n\n .notifications {\n padding: 0;\n border-radius: 0;\n box-shadow: none;\n\n .panel {\n border-radius: 0;\n margin: 0;\n box-shadow: none;\n }\n\n .panel::after {\n border-radius: 0;\n }\n\n .panel .panel-heading {\n border-radius: 0;\n box-shadow: none;\n }\n }\n }\n\n .confirm-modal.dark-overlay {\n &::before {\n z-index: 3000;\n }\n\n .dialog-modal.panel {\n z-index: 3001;\n }\n }\n}\n\n</style>\n","import SideDrawer from '../side_drawer/side_drawer.vue'\nimport Notifications from '../notifications/notifications.vue'\nimport ConfirmModal from '../confirm_modal/confirm_modal.vue'\nimport { unseenNotificationsFromStore } from '../../services/notification_utils/notification_utils'\nimport GestureService from '../../services/gesture_service/gesture_service'\nimport NavigationPins from 'src/components/navigation/navigation_pins.vue'\nimport { mapGetters } from 'vuex'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faTimes,\n faBell,\n faBars,\n faArrowUp,\n faMinus\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faTimes,\n faBell,\n faBars,\n faArrowUp,\n faMinus\n)\n\nconst MobileNav = {\n components: {\n SideDrawer,\n Notifications,\n NavigationPins,\n ConfirmModal\n },\n data: () => ({\n notificationsCloseGesture: undefined,\n notificationsOpen: false,\n notificationsAtTop: true,\n showingConfirmLogout: false\n }),\n created () {\n this.notificationsCloseGesture = GestureService.swipeGesture(\n GestureService.DIRECTION_RIGHT,\n () => this.closeMobileNotifications(true),\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 isChat () {\n return this.$route.name === 'chat'\n },\n ...mapGetters(['unreadChatCount', 'unreadAnnouncementCount']),\n chatsPinned () {\n return new Set(this.$store.state.serverSideStorage.prefsStorage.collections.pinnedNavItems).has('chats')\n },\n shouldConfirmLogout () {\n return this.$store.getters.mergedConfig.modalOnLogout\n },\n ...mapGetters(['unreadChatCount'])\n },\n methods: {\n toggleMobileSidebar () {\n this.$refs.sideDrawer.toggleDrawer()\n },\n openMobileNotifications () {\n this.notificationsOpen = true\n },\n closeMobileNotifications (markRead) {\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 if (markRead) {\n this.markNotificationsAsSeen()\n }\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 scrollMobileNotificationsToTop () {\n this.$refs.mobileNotifications.scrollTo(0, 0)\n },\n showConfirmLogout () {\n this.showingConfirmLogout = true\n },\n hideConfirmLogout () {\n this.showingConfirmLogout = false\n },\n logout () {\n if (!this.shouldConfirmLogout) {\n this.doLogout()\n } else {\n this.showConfirmLogout()\n }\n },\n doLogout () {\n this.$router.replace('/main/public')\n this.$store.dispatch('logout')\n this.hideConfirmLogout()\n },\n markNotificationsAsSeen () {\n // this.$refs.notifications.markAsSeen()\n this.$store.dispatch('markNotificationsAsSeen')\n },\n onScroll ({ target: { scrollTop, clientHeight, scrollHeight } }) {\n this.notificationsAtTop = scrollTop > 0\n if (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","import { render } from \"./mobile_nav.vue?vue&type=template&id=06094f09\"\nimport script from \"./mobile_nav.js?vue&type=script&lang=js\"\nexport * from \"./mobile_nav.js?vue&type=script&lang=js\"\n\nimport \"./mobile_nav.vue?vue&type=style&index=0&id=06094f09&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <nav\n id=\"nav\"\n class=\"DesktopNav\"\n :class=\"{ '-logoLeft': logoLeft }\"\n @click=\"scrollToTop()\"\n >\n <div class=\"inner-nav\">\n <div class=\"item sitename\">\n <router-link\n v-if=\"!hideSitename\"\n class=\"site-name\"\n :to=\"{ name: 'root' }\"\n active-class=\"home\"\n >\n {{ sitename }}\n </router-link>\n </div>\n <router-link\n class=\"logo\"\n :to=\"{ name: 'root' }\"\n :style=\"logoBgStyle\"\n :title=\"sitename\"\n >\n <div\n class=\"mask\"\n :style=\"logoMaskStyle\"\n />\n <img\n :src=\"logo\"\n :style=\"logoStyle\"\n >\n </router-link>\n <div class=\"item right actions\">\n <search-bar\n v-if=\"currentUser || !privateMode\"\n @toggled=\"onSearchBarToggled\"\n @click.stop\n />\n <button\n class=\"button-unstyled nav-icon\"\n :title=\"$t('nav.preferences')\"\n @click.stop=\"openSettingsModal\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"cog\"\n />\n </button>\n <button\n v-if=\"currentUser && currentUser.role === 'admin'\"\n class=\"button-unstyled nav-icon\"\n target=\"_blank\"\n :title=\"$t('nav.administration')\"\n @click.stop=\"openAdminModal\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"tachometer-alt\"\n />\n </button>\n <span class=\"spacer\" />\n <button\n v-if=\"currentUser\"\n class=\"button-unstyled nav-icon\"\n :title=\"$t('login.logout')\"\n @click.stop.prevent=\"logout\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"sign-out-alt\"\n />\n </button>\n </div>\n </div>\n <teleport to=\"#modal\">\n <confirm-modal\n v-if=\"showingConfirmLogout\"\n :title=\"$t('login.logout_confirm_title')\"\n :confirm-text=\"$t('login.logout_confirm_accept_button')\"\n :cancel-text=\"$t('login.logout_confirm_cancel_button')\"\n @accepted=\"doLogout\"\n @cancelled=\"hideConfirmLogout\"\n >\n {{ $t('login.logout_confirm') }}\n </confirm-modal>\n </teleport>\n </nav>\n</template>\n<script src=\"./desktop_nav.js\"></script>\n\n<style src=\"./desktop_nav.scss\" lang=\"scss\"></style>\n","<template>\n <div\n class=\"SearchBar\"\n :class=\"{ '-expanded': !hidden }\"\n >\n <button\n v-if=\"hidden\"\n class=\"button-unstyled nav-icon\"\n :title=\"$t('nav.search')\"\n type=\"button\"\n :aria-expanded=\"!hidden\"\n @click.prevent.stop=\"toggleHidden\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"search\"\n />\n </button>\n <template v-else>\n <input\n id=\"search-bar-input\"\n ref=\"searchInput\"\n v-model=\"searchTerm\"\n class=\"search-bar-input\"\n :placeholder=\"$t('nav.search')\"\n type=\"text\"\n @keyup.enter=\"find(searchTerm)\"\n >\n <button\n class=\"button-default search-button\"\n type=\"submit\"\n :title=\"$t('nav.search')\"\n @click=\"find(searchTerm)\"\n >\n <FAIcon\n fixed-width\n icon=\"search\"\n />\n </button>\n <button\n class=\"button-unstyled cancel-search\"\n type=\"button\"\n :title=\"$t('nav.search_close')\"\n :aria-expanded=\"!hidden\"\n @click.prevent.stop=\"toggleHidden\"\n >\n <FAIcon\n fixed-width\n icon=\"times\"\n class=\"cancel-icon fa-scale-110 fa-old-padding\"\n />\n </button>\n <span class=\"spacer\" />\n <span class=\"spacer\" />\n </template>\n </div>\n</template>\n\n<script src=\"./search_bar.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.SearchBar {\n display: inline-flex;\n align-items: baseline;\n vertical-align: baseline;\n justify-content: flex-end;\n\n &.-expanded {\n width: 100%;\n }\n\n .search-bar-input,\n .search-button {\n height: 29px;\n }\n\n .search-bar-input {\n flex: 1 0 auto;\n }\n\n .cancel-search {\n height: 50px;\n }\n\n .cancel-icon {\n color: $fallback--text;\n color: var(--btnTopBarText, $fallback--text);\n }\n}\n\n</style>\n","import { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faTimes,\n faSearch\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faTimes,\n faSearch\n)\n\nconst SearchBar = {\n data: () => ({\n searchTerm: undefined,\n hidden: true,\n error: 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","import { render } from \"./search_bar.vue?vue&type=template&id=3ff3b2d5\"\nimport script from \"./search_bar.js?vue&type=script&lang=js\"\nexport * from \"./search_bar.js?vue&type=script&lang=js\"\n\nimport \"./search_bar.vue?vue&type=style&index=0&id=3ff3b2d5&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import SearchBar from 'components/search_bar/search_bar.vue'\nimport ConfirmModal from '../confirm_modal/confirm_modal.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faSignInAlt,\n faSignOutAlt,\n faHome,\n faComments,\n faBell,\n faUserPlus,\n faBullhorn,\n faSearch,\n faTachometerAlt,\n faCog,\n faInfoCircle\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faSignInAlt,\n faSignOutAlt,\n faHome,\n faComments,\n faBell,\n faUserPlus,\n faBullhorn,\n faSearch,\n faTachometerAlt,\n faCog,\n faInfoCircle\n)\n\nexport default {\n components: {\n SearchBar,\n ConfirmModal\n },\n data: () => ({\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 showingConfirmLogout: false\n }),\n computed: {\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 ? {\n 'mask-image': `url(${this.$store.state.instance.logo})`\n }\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 ? {}\n : {\n 'background-color': this.enableMask ? '' : 'transparent'\n })\n },\n logo () { return this.$store.state.instance.logo },\n sitename () { return this.$store.state.instance.name },\n hideSitename () { return this.$store.state.instance.hideSitename },\n logoLeft () { return this.$store.state.instance.logoLeft },\n currentUser () { return this.$store.state.users.currentUser },\n privateMode () { return this.$store.state.instance.private },\n shouldConfirmLogout () {\n return this.$store.getters.mergedConfig.modalOnLogout\n }\n },\n methods: {\n scrollToTop () {\n window.scrollTo(0, 0)\n },\n showConfirmLogout () {\n this.showingConfirmLogout = true\n },\n hideConfirmLogout () {\n this.showingConfirmLogout = false\n },\n logout () {\n if (!this.shouldConfirmLogout) {\n this.doLogout()\n } else {\n this.showConfirmLogout()\n }\n },\n doLogout () {\n this.$router.replace('/main/public')\n this.$store.dispatch('logout')\n this.hideConfirmLogout()\n },\n onSearchBarToggled (hidden) {\n this.searchBarHidden = hidden\n },\n openSettingsModal () {\n this.$store.dispatch('openSettingsModal', 'user')\n },\n openAdminModal () {\n this.$store.dispatch('openSettingsModal', 'admin')\n }\n }\n}\n","import { render } from \"./desktop_nav.vue?vue&type=template&id=5dbfe449\"\nimport script from \"./desktop_nav.js?vue&type=script&lang=js\"\nexport * from \"./desktop_nav.js?vue&type=script&lang=js\"\n\nimport \"./desktop_nav.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Modal\n v-if=\"isOpen\"\n @backdropClicked=\"closeModal\"\n >\n <div class=\"user-reporting-panel panel\">\n <div class=\"panel-heading\">\n <i18n-t\n tag=\"div\"\n keypath=\"user_reporting.title\"\n class=\"title\"\n >\n <UserLink :user=\"user\" />\n </i18n-t>\n </div>\n <div class=\"panel-body\">\n <div class=\"user-reporting-panel-left\">\n <div>\n <p>{{ $t('user_reporting.add_comment_description') }}</p>\n <textarea\n v-model=\"comment\"\n class=\"form-control\"\n :placeholder=\"$t('user_reporting.additional_comments')\"\n rows=\"1\"\n @input=\"resize\"\n />\n </div>\n <div v-if=\"!user.is_local\">\n <p>{{ $t('user_reporting.forward_description') }}</p>\n <Checkbox v-model=\"forward\">\n {{ $t('user_reporting.forward_to', [remoteInstance]) }}\n </Checkbox>\n </div>\n <div>\n <button\n class=\"btn button-default\"\n :disabled=\"processing\"\n @click=\"reportUser\"\n >\n {{ $t('user_reporting.submit') }}\n </button>\n <div\n v-if=\"error\"\n class=\"alert error\"\n >\n {{ $t('user_reporting.generic_error') }}\n </div>\n </div>\n </div>\n <div class=\"user-reporting-panel-right\">\n <List :items=\"statuses\">\n <template #item=\"{item}\">\n <div class=\"status-fadein user-reporting-panel-sitem\">\n <Status\n :in-conversation=\"false\"\n :focused=\"false\"\n :statusoid=\"item\"\n />\n <Checkbox\n :model-value=\"isChecked(item.id)\"\n @update:model-value=\"checked => toggleStatus(checked, item.id)\"\n />\n </div>\n </template>\n </List>\n </div>\n </div>\n </div>\n </Modal>\n</template>\n\n<script src=\"./user_reporting_modal.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.user-reporting-panel {\n width: 90vw;\n max-width: 700px;\n min-height: 20vh;\n max-height: 80vh;\n\n .panel-body {\n display: flex;\n flex-direction: column-reverse;\n border-top: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n overflow: hidden;\n }\n\n &-left {\n padding: 1.1em 0.7em 0.7em;\n line-height: var(--post-line-height);\n box-sizing: border-box;\n\n > div {\n margin-bottom: 1em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n p {\n margin-top: 0;\n }\n\n textarea.form-control {\n line-height: 16px;\n resize: none;\n overflow: hidden;\n transition: min-height 200ms 100ms;\n min-height: 44px;\n width: 100%;\n }\n\n .btn {\n min-width: 10em;\n padding: 0 2em;\n }\n\n .alert {\n margin: 1em 0 0;\n line-height: 1.3em;\n }\n }\n\n &-right {\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n }\n\n &-sitem {\n display: flex;\n justify-content: space-between;\n\n /* TODO cleanup this */\n > .Status {\n flex: 1;\n }\n\n > .checkbox {\n margin: 0.75em;\n }\n }\n\n @media all and (min-width: 801px) {\n .panel-body {\n flex-direction: row;\n }\n\n &-left {\n width: 50%;\n max-width: 320px;\n border-right: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n padding: 1.1em;\n\n > div {\n margin-bottom: 2em;\n }\n }\n\n &-right {\n width: 50%;\n flex: 1 1 auto;\n margin-bottom: 12px;\n }\n }\n}\n</style>\n","import Status from '../status/status.vue'\nimport List from '../list/list.vue'\nimport Checkbox from '../checkbox/checkbox.vue'\nimport Modal from '../modal/modal.vue'\nimport UserLink from '../user_link/user_link.vue'\n\nconst UserReportingModal = {\n components: {\n Status,\n List,\n Checkbox,\n Modal,\n UserLink\n },\n data () {\n return {\n comment: '',\n forward: false,\n statusIdsToReport: [],\n processing: false,\n error: false\n }\n },\n computed: {\n reportModal () {\n return this.$store.state.reports.reportModal\n },\n isLoggedIn () {\n return !!this.$store.state.users.currentUser\n },\n isOpen () {\n return this.isLoggedIn && this.reportModal.activated\n },\n userId () {\n return this.reportModal.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.reportModal.statuses\n },\n preTickedIds () {\n return this.reportModal.preTickedIds\n }\n },\n watch: {\n userId: 'resetState',\n preTickedIds (newValue) {\n this.statusIdsToReport = newValue\n }\n },\n methods: {\n resetState () {\n // Reset state\n this.comment = ''\n this.forward = false\n this.statusIdsToReport = this.preTickedIds\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","import { render } from \"./user_reporting_modal.vue?vue&type=template&id=b4c54784\"\nimport script from \"./user_reporting_modal.js?vue&type=script&lang=js\"\nexport * from \"./user_reporting_modal.js?vue&type=script&lang=js\"\n\nimport \"./user_reporting_modal.vue?vue&type=style&index=0&id=b4c54784&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Modal\n v-if=\"isFormVisible\"\n class=\"edit-form-modal-view\"\n @backdropClicked=\"closeModal\"\n >\n <div class=\"edit-form-modal-panel panel\">\n <div class=\"panel-heading\">\n {{ $t('post_status.edit_status') }}\n </div>\n <PostStatusForm\n class=\"panel-body\"\n v-bind=\"params\"\n :post-handler=\"doEditStatus\"\n :disable-polls=\"true\"\n :disable-visibility-selector=\"true\"\n @posted=\"closeModal\"\n />\n </div>\n </Modal>\n</template>\n\n<script src=\"./edit_status_modal.js\"></script>\n\n<style lang=\"scss\">\n.modal-view.edit-form-modal-view {\n align-items: flex-start;\n}\n\n.edit-form-modal-panel {\n flex-shrink: 0;\n margin-top: 25%;\n margin-bottom: 2em;\n width: 100%;\n max-width: 700px;\n\n @media (orientation: landscape) {\n margin-top: 8%;\n }\n\n .form-bottom-left {\n max-width: 6.5em;\n\n .emoji-icon {\n justify-content: right;\n }\n }\n}\n</style>\n","import PostStatusForm from '../post_status_form/post_status_form.vue'\nimport Modal from '../modal/modal.vue'\nimport statusPosterService from '../../services/status_poster/status_poster.service.js'\nimport get from 'lodash/get'\n\nconst EditStatusModal = {\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.editStatus.modalActivated\n },\n isFormVisible () {\n return this.isLoggedIn && !this.resettingForm && this.modalActivated\n },\n params () {\n return this.$store.state.editStatus.params || {}\n }\n },\n watch: {\n params (newVal, oldVal) {\n if (get(newVal, 'statusId') !== get(oldVal, 'statusId')) {\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 doEditStatus ({ status, spoilerText, sensitive, media, contentType, poll }) {\n const params = {\n store: this.$store,\n statusId: this.$store.state.editStatus.params.statusId,\n status,\n spoilerText,\n sensitive,\n poll,\n media,\n contentType\n }\n\n return statusPosterService.editStatus(params)\n .then((data) => {\n return data\n })\n .catch((err) => {\n console.error('Error editing status', err)\n return {\n error: err.message\n }\n })\n },\n closeModal () {\n this.$store.dispatch('closeEditStatusModal')\n }\n }\n}\n\nexport default EditStatusModal\n","import { render } from \"./edit_status_modal.vue?vue&type=template&id=7e74cdc2\"\nimport script from \"./edit_status_modal.js?vue&type=script&lang=js\"\nexport * from \"./edit_status_modal.js?vue&type=script&lang=js\"\n\nimport \"./edit_status_modal.vue?vue&type=style&index=0&id=7e74cdc2&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Modal\n v-if=\"isLoggedIn && !resettingForm\"\n :is-open=\"modalActivated\"\n class=\"post-form-modal-view\"\n @backdropClicked=\"closeModal\"\n >\n <div class=\"post-form-modal-panel panel\">\n <div class=\"panel-heading\">\n {{ $t('post_status.new_status') }}\n </div>\n <PostStatusForm\n class=\"panel-body\"\n v-bind=\"params\"\n @posted=\"resetAndClose\"\n />\n </div>\n </Modal>\n</template>\n\n<script src=\"./post_status_modal.js\"></script>\n\n<style lang=\"scss\">\n.modal-view.post-form-modal-view {\n align-items: flex-start;\n}\n\n.post-form-modal-panel {\n flex-shrink: 0;\n margin-top: 25%;\n margin-bottom: 2em;\n width: 100%;\n max-width: 700px;\n\n @media (orientation: landscape) {\n margin-top: 8%;\n }\n}\n</style>\n","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 resetAndClose () {\n this.$store.dispatch('resetPostStatusModal')\n this.$store.dispatch('closePostStatusModal')\n }\n }\n}\n\nexport default PostStatusModal\n","import { render } from \"./post_status_modal.vue?vue&type=template&id=365216ee\"\nimport script from \"./post_status_modal.js?vue&type=script&lang=js\"\nexport * from \"./post_status_modal.js?vue&type=script&lang=js\"\n\nimport \"./post_status_modal.vue?vue&type=style&index=0&id=365216ee&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Modal\n v-if=\"modalActivated\"\n class=\"status-history-modal-view\"\n @backdropClicked=\"closeModal\"\n >\n <div class=\"status-history-modal-panel panel\">\n <div class=\"panel-heading\">\n {{ $t('status.status_history') }} ({{ historyCount }})\n </div>\n <div class=\"panel-body\">\n <div\n v-if=\"historyCount > 0\"\n class=\"history-body\"\n >\n <status\n v-for=\"status in history\"\n :key=\"status.id\"\n :statusoid=\"status\"\n :is-preview=\"true\"\n class=\"conversation-status status-fadein panel-body\"\n />\n </div>\n </div>\n </div>\n </Modal>\n</template>\n\n<script src=\"./status_history_modal.js\"></script>\n\n<style lang=\"scss\">\n.modal-view.status-history-modal-view {\n align-items: flex-start;\n}\n\n.status-history-modal-panel {\n flex-shrink: 0;\n margin-top: 25%;\n margin-bottom: 2em;\n width: 100%;\n max-width: 700px;\n\n @media (orientation: landscape) {\n margin-top: 8%;\n }\n}\n</style>\n","import { get } from 'lodash'\nimport Modal from '../modal/modal.vue'\nimport Status from '../status/status.vue'\n\nconst StatusHistoryModal = {\n components: {\n Modal,\n Status\n },\n data () {\n return {\n statuses: []\n }\n },\n computed: {\n modalActivated () {\n return this.$store.state.statusHistory.modalActivated\n },\n params () {\n return this.$store.state.statusHistory.params\n },\n statusId () {\n return this.params.id\n },\n historyCount () {\n return this.statuses.length\n },\n history () {\n return this.statuses\n }\n },\n watch: {\n params (newVal, oldVal) {\n const newStatusId = get(newVal, 'id') !== get(oldVal, 'id')\n if (newStatusId) {\n this.resetHistory()\n }\n\n if (newStatusId || get(newVal, 'edited_at') !== get(oldVal, 'edited_at')) {\n this.fetchStatusHistory()\n }\n }\n },\n methods: {\n resetHistory () {\n this.statuses = []\n },\n fetchStatusHistory () {\n this.$store.dispatch('fetchStatusHistory', this.params)\n .then(data => {\n this.statuses = data\n })\n },\n closeModal () {\n this.$store.dispatch('closeStatusHistoryModal')\n }\n }\n}\n\nexport default StatusHistoryModal\n","import { render } from \"./status_history_modal.vue?vue&type=template&id=16d58712\"\nimport script from \"./status_history_modal.js?vue&type=script&lang=js\"\nexport * from \"./status_history_modal.js?vue&type=script&lang=js\"\n\nimport \"./status_history_modal.vue?vue&type=style&index=0&id=16d58712&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"global-notice-list\">\n <div\n v-for=\"(notice, index) in notices\"\n :key=\"index\"\n class=\"alert global-notice\"\n :class=\"{ ['global-' + notice.level]: true }\"\n >\n <div class=\"notice-message\">\n {{ $t(notice.messageKey, notice.messageArgs) }}\n </div>\n <button\n class=\"button-unstyled close-notice\"\n @click=\"closeNotice(notice)\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"times\"\n />\n </button>\n </div>\n </div>\n</template>\n\n<script src=\"./global_notice_list.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.global-notice-list {\n position: fixed;\n top: calc(var(--navbar-height) + 0.5em);\n width: 100%;\n pointer-events: none;\n z-index: var(--ZI_navbar_popovers);\n display: flex;\n flex-direction: column;\n align-items: center;\n\n .global-notice {\n pointer-events: auto;\n text-align: center;\n width: 40em;\n max-width: calc(100% - 3em);\n display: flex;\n padding-left: 1.5em;\n line-height: 2;\n margin-bottom: 0.5em;\n\n .notice-message {\n flex: 1 1 100%;\n }\n }\n\n .global-error {\n background-color: var(--alertPopupError, $fallback--cRed);\n color: var(--alertPopupErrorText, $fallback--text);\n\n .svg-inline--fa {\n color: var(--alertPopupErrorText, $fallback--text);\n }\n }\n\n .global-warning {\n background-color: var(--alertPopupWarning, $fallback--cOrange);\n color: var(--alertPopupWarningText, $fallback--text);\n\n .svg-inline--fa {\n color: var(--alertPopupWarningText, $fallback--text);\n }\n }\n\n .global-success {\n background-color: var(--alertPopupSuccess, $fallback--cGreen);\n color: var(--alertPopupSuccessText, $fallback--text);\n\n .svg-inline--fa {\n color: var(--alertPopupSuccessText, $fallback--text);\n }\n }\n\n .global-info {\n background-color: var(--alertPopupNeutral, $fallback--fg);\n color: var(--alertPopupNeutralText, $fallback--text);\n\n .svg-inline--fa {\n color: var(--alertPopupNeutralText, $fallback--text);\n }\n }\n\n .close-notice {\n padding-right: 0.2em;\n\n .svg-inline--fa:hover {\n opacity: 0.6;\n }\n }\n}\n</style>\n","import { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faTimes\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faTimes\n)\n\nconst GlobalNoticeList = {\n computed: {\n notices () {\n return this.$store.state.interface.globalNotices\n }\n },\n methods: {\n closeNotice (notice) {\n this.$store.dispatch('removeGlobalNotice', notice)\n }\n }\n}\n\nexport default GlobalNoticeList\n","import { render } from \"./global_notice_list.vue?vue&type=template&id=f3a7303a\"\nimport script from \"./global_notice_list.js?vue&type=script&lang=js\"\nexport * from \"./global_notice_list.js?vue&type=script&lang=js\"\n\nimport \"./global_notice_list.vue?vue&type=style&index=0&id=f3a7303a&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import UserPanel from './components/user_panel/user_panel.vue'\nimport NavPanel from './components/nav_panel/nav_panel.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 ShoutPanel from './components/shout_panel/shout_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 DesktopNav from './components/desktop_nav/desktop_nav.vue'\nimport UserReportingModal from './components/user_reporting_modal/user_reporting_modal.vue'\nimport EditStatusModal from './components/edit_status_modal/edit_status_modal.vue'\nimport PostStatusModal from './components/post_status_modal/post_status_modal.vue'\nimport StatusHistoryModal from './components/status_history_modal/status_history_modal.vue'\nimport GlobalNoticeList from './components/global_notice_list/global_notice_list.vue'\nimport { windowWidth, windowHeight } from './services/window_utils/window_utils'\nimport { mapGetters } from 'vuex'\nimport { defineAsyncComponent } from 'vue'\n\nexport default {\n name: 'app',\n components: {\n UserPanel,\n NavPanel,\n Notifications: defineAsyncComponent(() => import('./components/notifications/notifications.vue')),\n InstanceSpecificPanel,\n FeaturesPanel,\n WhoToFollowPanel,\n ShoutPanel,\n MediaModal,\n SideDrawer,\n MobilePostStatusButton,\n MobileNav,\n DesktopNav,\n SettingsModal: defineAsyncComponent(() => import('./components/settings_modal/settings_modal.vue')),\n UpdateNotification: defineAsyncComponent(() => import('./components/update_notification/update_notification.vue')),\n UserReportingModal,\n PostStatusModal,\n EditStatusModal,\n StatusHistoryModal,\n GlobalNoticeList\n },\n data: () => ({\n mobileActivePanel: 'timeline'\n }),\n created () {\n // Load the locale from the storage\n const val = this.$store.getters.mergedConfig.interfaceLanguage\n this.$store.dispatch('setOption', { name: 'interfaceLanguage', value: val })\n window.addEventListener('resize', this.updateMobileState)\n },\n unmounted () {\n window.removeEventListener('resize', this.updateMobileState)\n },\n computed: {\n classes () {\n return [\n {\n '-reverse': this.reverseLayout,\n '-no-sticky-headers': this.noSticky,\n '-has-new-post-button': this.newPostButtonShown\n },\n '-' + this.layoutType\n ]\n },\n navClasses () {\n const { navbarColumnStretch } = this.$store.getters.mergedConfig\n return [\n '-' + this.layoutType,\n ...(navbarColumnStretch ? ['-column-stretch'] : [])\n ]\n },\n currentUser () { return this.$store.state.users.currentUser },\n userBackground () { return this.currentUser.background_image },\n instanceBackground () {\n return this.mergedConfig.hideInstanceWallpaper\n ? null\n : this.$store.state.instance.background\n },\n background () { return this.userBackground || this.instanceBackground },\n bgStyle () {\n if (this.background) {\n return {\n '--body-background-image': `url(${this.background})`\n }\n }\n },\n shout () { return this.$store.state.shout.joined },\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 isChats () {\n return this.$route.name === 'chat' || this.$route.name === 'chats'\n },\n isListEdit () {\n return this.$route.name === 'lists-edit'\n },\n newPostButtonShown () {\n if (this.isChats) return false\n if (this.isListEdit) return false\n return this.$store.getters.mergedConfig.alwaysShowNewPostButton || this.layoutType === 'mobile'\n },\n showFeaturesPanel () { return this.$store.state.instance.showFeaturesPanel },\n editingAvailable () { return this.$store.state.instance.editingAvailable },\n shoutboxPosition () {\n return this.$store.getters.mergedConfig.alwaysShowNewPostButton || false\n },\n hideShoutbox () {\n return this.$store.getters.mergedConfig.hideShoutbox\n },\n layoutType () { return this.$store.state.interface.layoutType },\n privateMode () { return this.$store.state.instance.private },\n reverseLayout () {\n const { thirdColumnMode, sidebarRight: reverseSetting } = this.$store.getters.mergedConfig\n if (this.layoutType !== 'wide') {\n return reverseSetting\n } else {\n return thirdColumnMode === 'notifications' ? reverseSetting : !reverseSetting\n }\n },\n noSticky () { return this.$store.getters.mergedConfig.disableStickyHeaders },\n showScrollbars () { return this.$store.getters.mergedConfig.showScrollbars },\n ...mapGetters(['mergedConfig'])\n },\n methods: {\n updateMobileState () {\n this.$store.dispatch('setLayoutWidth', windowWidth())\n this.$store.dispatch('setLayoutHeight', windowHeight())\n }\n }\n}\n","import { render } from \"./App.vue?vue&type=template&id=8323d9fc\"\nimport script from \"./App.js?vue&type=script&lang=js\"\nexport * from \"./App.js?vue&type=script&lang=js\"\n\nimport \"./App.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div :class=\"['Timeline', classes.root]\">\n <div :class=\"classes.header\">\n <TimelineMenu\n v-if=\"!embedded\"\n :timeline-name=\"timelineName\"\n />\n <div\n v-if=\"showScrollTop && !embedded\"\n class=\"rightside-button\"\n >\n <button\n class=\"button-unstyled scroll-to-top-button\"\n type=\"button\"\n :title=\"$t('general.scroll_to_top')\"\n @click=\"scrollToTop\"\n >\n <FALayers class=\"fa-scale-110 fa-old-padding-layer\">\n <FAIcon icon=\"arrow-up\" />\n <FAIcon\n icon=\"minus\"\n transform=\"up-7\"\n />\n </FALayers>\n </button>\n </div>\n <template v-if=\"mobileLayout && !embedded\">\n <div\n v-if=\"showLoadButton\"\n class=\"rightside-button\"\n >\n <button\n class=\"button-unstyled loadmore-button\"\n :title=\"loadButtonString\"\n @click.prevent=\"showNewStatuses\"\n >\n <FAIcon\n fixed-width\n icon=\"circle-plus\"\n />\n <div class=\"alert-badge\">\n {{ mobileLoadButtonString }}\n </div>\n </button>\n </div>\n <div\n v-else-if=\"!embedded\"\n class=\"loadmore-text faint veryfaint rightside-icon\"\n :title=\"$t('timeline.up_to_date')\"\n :aria-disabled=\"true\"\n @click.prevent\n >\n <FAIcon\n fixed-width\n icon=\"check\"\n />\n </div>\n </template>\n <template v-else>\n <button\n v-if=\"showLoadButton\"\n class=\"button-default loadmore-button\"\n @click.prevent=\"showNewStatuses\"\n >\n {{ loadButtonString }}\n </button>\n <div\n v-else-if=\"!embedded\"\n class=\"loadmore-text faint\"\n @click.prevent\n >\n {{ $t('timeline.up_to_date') }}\n </div>\n </template>\n <QuickFilterSettings\n v-if=\"!embedded\"\n class=\"rightside-button\"\n />\n <QuickViewSettings\n v-if=\"!embedded\"\n class=\"rightside-button\"\n />\n </div>\n <div :class=\"classes.body\">\n <div\n ref=\"timeline\"\n class=\"timeline\"\n role=\"feed\"\n >\n <conversation\n v-for=\"statusId in filteredPinnedStatusIds\"\n :key=\"statusId + '-pinned'\"\n role=\"listitem\"\n class=\"status-fadein\"\n :status-id=\"statusId\"\n :collapsable=\"true\"\n :pinned-status-ids-object=\"pinnedStatusIdsObject\"\n :in-profile=\"inProfile\"\n :profile-user-id=\"userId\"\n />\n <conversation\n v-for=\"status in filteredVisibleStatuses\"\n :key=\"status.id\"\n role=\"listitem\"\n class=\"status-fadein\"\n :status-id=\"status.id\"\n :collapsable=\"true\"\n :in-profile=\"inProfile\"\n :profile-user-id=\"userId\"\n :virtual-hidden=\"virtualScrollingEnabled && !statusesToDisplay.includes(status.id)\"\n />\n </div>\n </div>\n <div :class=\"classes.footer\">\n <teleport\n :to=\"footerSlipgate\"\n :disabled=\"!embedded || !footerSlipgate\"\n >\n <div\n v-if=\"count===0\"\n class=\"new-status-notification text-center faint\"\n >\n {{ $t('timeline.no_statuses') }}\n </div>\n <div\n v-else-if=\"bottomedOut\"\n class=\"new-status-notification text-center faint\"\n >\n {{ $t('timeline.no_more_statuses') }}\n </div>\n <button\n v-else-if=\"!timeline.loading\"\n class=\"button-unstyled -link\"\n @click.prevent=\"fetchOlderStatuses()\"\n >\n <div class=\"new-status-notification text-center\">\n {{ $t('timeline.load_older') }}\n </div>\n </button>\n <div\n v-else\n class=\"new-status-notification text-center\"\n >\n <FAIcon\n icon=\"circle-notch\"\n spin\n size=\"lg\"\n />\n </div>\n </teleport>\n </div>\n </div>\n</template>\n\n<script src=\"./timeline.js\"></script>\n\n<style src=\"./timeline.scss\" lang=\"scss\"> </style>\n","<template>\n <div\n v-if=\"!hideStatus\"\n :style=\"hiddenStyle\"\n class=\"Conversation\"\n :class=\"{ '-expanded' : isExpanded, 'panel' : isExpanded }\"\n >\n <div\n v-if=\"isExpanded\"\n class=\"panel-heading conversation-heading -sticky\"\n >\n <span class=\"title\"> {{ $t('timeline.conversation') }} </span>\n <button\n v-if=\"collapsable\"\n class=\"button-unstyled -link\"\n @click.prevent=\"toggleExpanded\"\n >\n {{ $t('timeline.collapse') }}\n </button>\n <QuickFilterSettings\n v-if=\"!collapsable\"\n :conversation=\"true\"\n class=\"rightside-button\"\n />\n <QuickViewSettings\n v-if=\"!collapsable\"\n :conversation=\"true\"\n class=\"rightside-button\"\n />\n </div>\n <div class=\"conversation-body panel-body\">\n <div\n v-if=\"isTreeView\"\n class=\"thread-body\"\n >\n <div\n v-if=\"shouldShowAllConversationButton\"\n class=\"conversation-dive-to-top-level-box\"\n >\n <i18n-t\n keypath=\"status.show_all_conversation_with_icon\"\n tag=\"button\"\n class=\"button-unstyled -link\"\n scope=\"global\"\n @click.prevent=\"diveToTopLevel\"\n >\n <template #icon>\n <FAIcon\n icon=\"angle-double-left\"\n />\n </template>\n <template #text>\n <span>\n {{ $tc('status.show_all_conversation', otherTopLevelCount, { numStatus: otherTopLevelCount }) }}\n </span>\n </template>\n </i18n-t>\n </div>\n <div\n v-if=\"shouldShowAncestors\"\n class=\"thread-ancestors\"\n >\n <article\n v-for=\"status in ancestorsOf(diveRoot)\"\n :key=\"status.id\"\n class=\"thread-ancestor\"\n :class=\"{'thread-ancestor-has-other-replies': getReplies(status.id).length > 1, '-faded': shouldFadeAncestors}\"\n >\n <status\n ref=\"statusComponent\"\n :inline-expanded=\"collapsable && isExpanded\"\n :statusoid=\"status\"\n :expandable=\"!isExpanded\"\n :show-pinned=\"pinnedStatusIdsObject && pinnedStatusIdsObject[status.id]\"\n :focused=\"focused(status.id)\"\n :in-conversation=\"isExpanded\"\n :highlight=\"getHighlight()\"\n :replies=\"getReplies(status.id)\"\n :in-profile=\"inProfile\"\n :profile-user-id=\"profileUserId\"\n class=\"conversation-status status-fadein panel-body\"\n\n :simple-tree=\"treeViewIsSimple\"\n :toggle-thread-display=\"toggleThreadDisplay\"\n :thread-display-status=\"threadDisplayStatus\"\n :show-thread-recursively=\"showThreadRecursively\"\n :total-reply-count=\"totalReplyCount\"\n :total-reply-depth=\"totalReplyDepth\"\n :show-other-replies-as-button=\"showOtherRepliesButtonInsideStatus\"\n :dive=\"() => diveIntoStatus(status.id)\"\n\n :controlled-showing-tall=\"statusContentProperties[status.id].showingTall\"\n :controlled-expanding-subject=\"statusContentProperties[status.id].expandingSubject\"\n :controlled-showing-long-subject=\"statusContentProperties[status.id].showingLongSubject\"\n :controlled-replying=\"statusContentProperties[status.id].replying\"\n :controlled-media-playing=\"statusContentProperties[status.id].mediaPlaying\"\n :controlled-toggle-showing-tall=\"() => toggleStatusContentProperty(status.id, 'showingTall')\"\n :controlled-toggle-expanding-subject=\"() => toggleStatusContentProperty(status.id, 'expandingSubject')\"\n :controlled-toggle-showing-long-subject=\"() => toggleStatusContentProperty(status.id, 'showingLongSubject')\"\n :controlled-toggle-replying=\"() => toggleStatusContentProperty(status.id, 'replying')\"\n :controlled-set-media-playing=\"(newVal) => toggleStatusContentProperty(status.id, 'mediaPlaying', newVal)\"\n\n @goto=\"setHighlight\"\n @toggleExpanded=\"toggleExpanded\"\n />\n <div\n v-if=\"showOtherRepliesButtonBelowStatus && getReplies(status.id).length > 1\"\n class=\"thread-ancestor-dive-box\"\n >\n <div\n class=\"thread-ancestor-dive-box-inner\"\n >\n <i18n-t\n tag=\"button\"\n scope=\"global\"\n keypath=\"status.ancestor_follow_with_icon\"\n class=\"button-unstyled -link thread-tree-show-replies-button\"\n @click.prevent=\"diveIntoStatus(status.id)\"\n >\n <template #icon>\n <FAIcon\n icon=\"angle-double-right\"\n />\n </template>\n <template #text>\n <span>\n {{ $tc('status.ancestor_follow', getReplies(status.id).length - 1, { numReplies: getReplies(status.id).length - 1 }) }}\n </span>\n </template>\n </i18n-t>\n </div>\n </div>\n </article>\n </div>\n <thread-tree\n v-for=\"status in showingTopLevel\"\n :key=\"status.id\"\n ref=\"statusComponent\"\n :depth=\"0\"\n\n :status=\"status\"\n :in-profile=\"inProfile\"\n :conversation=\"conversation\"\n :collapsable=\"collapsable\"\n :is-expanded=\"isExpanded\"\n :pinned-status-ids-object=\"pinnedStatusIdsObject\"\n :profile-user-id=\"profileUserId\"\n\n :focused=\"focused\"\n :get-replies=\"getReplies\"\n :highlight=\"maybeHighlight\"\n :set-highlight=\"setHighlight\"\n :toggle-expanded=\"toggleExpanded\"\n\n :simple=\"treeViewIsSimple\"\n :toggle-thread-display=\"toggleThreadDisplay\"\n :thread-display-status=\"threadDisplayStatus\"\n :show-thread-recursively=\"showThreadRecursively\"\n :total-reply-count=\"totalReplyCount\"\n :total-reply-depth=\"totalReplyDepth\"\n :status-content-properties=\"statusContentProperties\"\n :set-status-content-property=\"setStatusContentProperty\"\n :toggle-status-content-property=\"toggleStatusContentProperty\"\n :dive=\"canDive ? diveIntoStatus : undefined\"\n />\n </div>\n <div\n v-if=\"isLinearView\"\n class=\"thread-body\"\n >\n <article>\n <status\n v-for=\"status in conversation\"\n :key=\"status.id\"\n ref=\"statusComponent\"\n :inline-expanded=\"collapsable && isExpanded\"\n :statusoid=\"status\"\n :expandable=\"!isExpanded\"\n :show-pinned=\"pinnedStatusIdsObject && pinnedStatusIdsObject[status.id]\"\n :focused=\"focused(status.id)\"\n :in-conversation=\"isExpanded\"\n :highlight=\"getHighlight()\"\n :replies=\"getReplies(status.id)\"\n :in-profile=\"inProfile\"\n :profile-user-id=\"profileUserId\"\n class=\"conversation-status status-fadein panel-body\"\n\n :toggle-thread-display=\"toggleThreadDisplay\"\n :thread-display-status=\"threadDisplayStatus\"\n :show-thread-recursively=\"showThreadRecursively\"\n :total-reply-count=\"totalReplyCount\"\n :total-reply-depth=\"totalReplyDepth\"\n :status-content-properties=\"statusContentProperties\"\n :set-status-content-property=\"setStatusContentProperty\"\n :toggle-status-content-property=\"toggleStatusContentProperty\"\n\n @goto=\"setHighlight\"\n @toggleExpanded=\"toggleExpanded\"\n />\n </article>\n </div>\n </div>\n </div>\n <div\n v-else\n :style=\"hiddenStyle\"\n />\n</template>\n\n<script src=\"./conversation.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.Conversation {\n z-index: 1;\n\n .conversation-dive-to-top-level-box {\n padding: var(--status-margin, $status-margin);\n border-bottom: 1px solid var(--border, $fallback--border);\n border-radius: 0;\n\n /* Make the button stretch along the whole row */\n display: flex;\n align-items: stretch;\n flex-direction: column;\n }\n\n .thread-ancestors {\n margin-left: var(--status-margin, $status-margin);\n border-left: 2px solid var(--border, $fallback--border);\n }\n\n .thread-ancestor.-faded .StatusContent {\n --link: var(--faintLink);\n --text: var(--faint);\n\n color: var(--text);\n }\n\n .thread-ancestor-dive-box {\n padding-left: var(--status-margin, $status-margin);\n border-bottom: 1px solid var(--border, $fallback--border);\n border-radius: 0;\n\n /* Make the button stretch along the whole row */\n &,\n &-inner {\n display: flex;\n align-items: stretch;\n flex-direction: column;\n }\n }\n\n .thread-ancestor-dive-box-inner {\n padding: var(--status-margin, $status-margin);\n }\n\n .conversation-status {\n border-bottom: 1px solid var(--border, $fallback--border);\n border-radius: 0;\n }\n\n .thread-ancestor-has-other-replies .conversation-status,\n &:last-child .conversation-status,\n .thread-ancestor:last-child .conversation-status,\n .thread-ancestor:last-child .thread-ancestor-dive-box,\n &.-expanded .thread-tree .conversation-status {\n border-bottom: none;\n }\n\n .thread-ancestors + .thread-tree > .conversation-status {\n border-top: 1px solid var(--border, $fallback--border);\n }\n\n /* expanded conversation in timeline */\n &.status-fadein.-expanded .thread-body {\n border-left: 4px solid $fallback--cRed;\n border-left-color: var(--cRed, $fallback--cRed);\n border-radius: 0 0 $fallback--panelRadius $fallback--panelRadius;\n border-radius: 0 0 var(--panelRadius, $fallback--panelRadius) var(--panelRadius, $fallback--panelRadius);\n border-bottom: 1px solid var(--border, $fallback--border);\n }\n\n &.-expanded.status-fadein {\n margin: calc(var(--status-margin, $status-margin) / 2);\n }\n}\n</style>\n","<template>\n <article class=\"thread-tree\">\n <status\n :key=\"status.id\"\n ref=\"statusComponent\"\n :inline-expanded=\"collapsable && isExpanded\"\n :statusoid=\"status\"\n :expandable=\"!isExpanded\"\n :show-pinned=\"pinnedStatusIdsObject && pinnedStatusIdsObject[status.id]\"\n :focused=\"focused(status.id)\"\n :in-conversation=\"isExpanded\"\n :highlight=\"highlight\"\n :replies=\"getReplies(status.id)\"\n :in-profile=\"inProfile\"\n :profile-user-id=\"profileUserId\"\n class=\"conversation-status conversation-status-treeview status-fadein panel-body\"\n\n :simple-tree=\"simple\"\n :controlled-thread-display-status=\"threadDisplayStatus[status.id]\"\n :controlled-toggle-thread-display=\"() => toggleThreadDisplay(status.id)\"\n\n :controlled-showing-tall=\"currentProp.showingTall\"\n :controlled-expanding-subject=\"currentProp.expandingSubject\"\n :controlled-showing-long-subject=\"currentProp.showingLongSubject\"\n :controlled-replying=\"currentProp.replying\"\n :controlled-media-playing=\"currentProp.mediaPlaying\"\n :controlled-toggle-showing-tall=\"() => toggleCurrentProp('showingTall')\"\n :controlled-toggle-expanding-subject=\"() => toggleCurrentProp('expandingSubject')\"\n :controlled-toggle-showing-long-subject=\"() => toggleCurrentProp('showingLongSubject')\"\n :controlled-toggle-replying=\"() => toggleCurrentProp('replying')\"\n :controlled-set-media-playing=\"(newVal) => setCurrentProp('mediaPlaying', newVal)\"\n :dive=\"dive ? () => dive(status.id) : undefined\"\n\n @goto=\"setHighlight\"\n @toggleExpanded=\"toggleExpanded\"\n />\n <div\n v-if=\"currentReplies.length && threadShowing\"\n class=\"thread-tree-replies\"\n >\n <thread-tree\n v-for=\"replyStatus in currentReplies\"\n :key=\"replyStatus.id\"\n ref=\"childComponent\"\n :depth=\"depth + 1\"\n :status=\"replyStatus\"\n\n :in-profile=\"inProfile\"\n :conversation=\"conversation\"\n :collapsable=\"collapsable\"\n :is-expanded=\"isExpanded\"\n :pinned-status-ids-object=\"pinnedStatusIdsObject\"\n :profile-user-id=\"profileUserId\"\n\n :focused=\"focused\"\n :get-replies=\"getReplies\"\n :highlight=\"highlight\"\n :set-highlight=\"setHighlight\"\n :toggle-expanded=\"toggleExpanded\"\n\n :simple=\"simple\"\n :toggle-thread-display=\"toggleThreadDisplay\"\n :thread-display-status=\"threadDisplayStatus\"\n :show-thread-recursively=\"showThreadRecursively\"\n :total-reply-count=\"totalReplyCount\"\n :total-reply-depth=\"totalReplyDepth\"\n :status-content-properties=\"statusContentProperties\"\n :set-status-content-property=\"setStatusContentProperty\"\n :toggle-status-content-property=\"toggleStatusContentProperty\"\n :dive=\"dive\"\n />\n </div>\n <div\n v-if=\"currentReplies.length && !threadShowing\"\n class=\"thread-tree-replies thread-tree-replies-hidden\"\n >\n <i18n-t\n v-if=\"simple\"\n scope=\"global\"\n tag=\"button\"\n keypath=\"status.thread_follow_with_icon\"\n class=\"button-unstyled -link thread-tree-show-replies-button\"\n @click.prevent=\"dive(status.id)\"\n >\n <template #icon>\n <FAIcon\n icon=\"angle-double-right\"\n />\n </template>\n <template #text>\n <span>\n {{ $tc('status.thread_follow', totalReplyCount[status.id], { numStatus: totalReplyCount[status.id] }) }}\n </span>\n </template>\n </i18n-t>\n <i18n-t\n v-else\n scope=\"global\"\n tag=\"button\"\n keypath=\"status.thread_show_full_with_icon\"\n class=\"button-unstyled -link thread-tree-show-replies-button\"\n @click.prevent=\"showThreadRecursively(status.id)\"\n >\n <template #icon>\n <FAIcon\n icon=\"angle-double-down\"\n />\n </template>\n <template #text>\n <span>\n {{ $tc('status.thread_show_full', totalReplyCount[status.id], { numStatus: totalReplyCount[status.id], depth: totalReplyDepth[status.id] }) }}\n </span>\n </template>\n </i18n-t>\n </div>\n </article>\n</template>\n\n<script src=\"./thread_tree.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.thread-tree-replies {\n margin-left: var(--status-margin, $status-margin);\n border-left: 2px solid var(--border, $fallback--border);\n}\n\n.thread-tree-replies-hidden {\n padding: var(--status-margin, $status-margin);\n\n /* Make the button stretch along the whole row */\n display: flex;\n align-items: stretch;\n flex-direction: column;\n}\n</style>\n","import Status from '../status/status.vue'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faAngleDoubleDown,\n faAngleDoubleRight\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faAngleDoubleDown,\n faAngleDoubleRight\n)\n\nconst ThreadTree = {\n components: {\n Status\n },\n name: 'ThreadTree',\n props: {\n depth: Number,\n status: Object,\n inProfile: Boolean,\n conversation: Array,\n collapsable: Boolean,\n isExpanded: Boolean,\n pinnedStatusIdsObject: Object,\n profileUserId: String,\n\n focused: Function,\n highlight: String,\n getReplies: Function,\n setHighlight: Function,\n toggleExpanded: Function,\n\n simple: Boolean,\n // to control display of the whole thread forest\n toggleThreadDisplay: Function,\n threadDisplayStatus: Object,\n showThreadRecursively: Function,\n totalReplyCount: Object,\n totalReplyDepth: Object,\n statusContentProperties: Object,\n setStatusContentProperty: Function,\n toggleStatusContentProperty: Function,\n dive: Function\n },\n computed: {\n suspendable () {\n const selfSuspendable = this.$refs.statusComponent ? this.$refs.statusComponent.suspendable : true\n if (this.$refs.childComponent) {\n return selfSuspendable && this.$refs.childComponent.every(s => s.suspendable)\n }\n return selfSuspendable\n },\n reverseLookupTable () {\n return this.conversation.reduce((table, status, index) => {\n table[status.id] = index\n return table\n }, {})\n },\n currentReplies () {\n return this.getReplies(this.status.id).map(({ id }) => this.statusById(id))\n },\n threadShowing () {\n return this.threadDisplayStatus[this.status.id] === 'showing'\n },\n currentProp () {\n return this.statusContentProperties[this.status.id]\n }\n },\n methods: {\n statusById (id) {\n return this.conversation[this.reverseLookupTable[id]]\n },\n collapseThread () {\n },\n showThread () {\n },\n showAllSubthreads () {\n },\n toggleCurrentProp (name) {\n this.toggleStatusContentProperty(this.status.id, name)\n },\n setCurrentProp (name, newVal) {\n this.setStatusContentProperty(this.status.id, name)\n }\n }\n}\n\nexport default ThreadTree\n","import { render } from \"./thread_tree.vue?vue&type=template&id=061df1d9\"\nimport script from \"./thread_tree.js?vue&type=script&lang=js\"\nexport * from \"./thread_tree.js?vue&type=script&lang=js\"\n\nimport \"./thread_tree.vue?vue&type=style&index=0&id=061df1d9&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Popover\n trigger=\"click\"\n class=\"QuickFilterSettings\"\n :bound-to=\"{ x: 'container' }\"\n :trigger-attrs=\"{ title: $t('timeline.quick_filter_settings') }\"\n >\n <template #content>\n <div\n class=\"dropdown-menu\"\n role=\"menu\"\n >\n <div\n v-if=\"loggedIn\"\n role=\"group\"\n >\n <button\n v-if=\"!conversation\"\n class=\"button-default dropdown-item\"\n :aria-checked=\"replyVisibilityAll\"\n role=\"menuitemradio\"\n @click=\"replyVisibilityAll = true\"\n >\n <span\n class=\"menu-checkbox -radio\"\n :class=\"{ 'menu-checkbox-checked': replyVisibilityAll }\"\n :aria-hidden=\"true\"\n />{{ $t('settings.reply_visibility_all') }}\n </button>\n <button\n v-if=\"!conversation\"\n class=\"button-default dropdown-item\"\n :aria-checked=\"replyVisibilityFollowing\"\n role=\"menuitemradio\"\n @click=\"replyVisibilityFollowing = true\"\n >\n <span\n class=\"menu-checkbox -radio\"\n :class=\"{ 'menu-checkbox-checked': replyVisibilityFollowing }\"\n :aria-hidden=\"true\"\n />{{ $t('settings.reply_visibility_following_short') }}\n </button>\n <button\n v-if=\"!conversation\"\n class=\"button-default dropdown-item\"\n :aria-checked=\"replyVisibilitySelf\"\n role=\"menuitemradio\"\n @click=\"replyVisibilitySelf = true\"\n >\n <span\n class=\"menu-checkbox -radio\"\n :class=\"{ 'menu-checkbox-checked': replyVisibilitySelf }\"\n :aria-hidden=\"true\"\n />{{ $t('settings.reply_visibility_self_short') }}\n </button>\n <div\n v-if=\"!conversation\"\n role=\"separator\"\n class=\"dropdown-divider\"\n />\n </div>\n <button\n class=\"button-default dropdown-item\"\n role=\"menuitemcheckbox\"\n :aria-checked=\"muteBotStatuses\"\n @click=\"muteBotStatuses = !muteBotStatuses\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': muteBotStatuses }\"\n :aria-hidden=\"true\"\n />{{ $t('settings.mute_bot_posts') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n role=\"menuitemcheckbox\"\n :aria-checked=\"hideMedia\"\n @click=\"hideMedia = !hideMedia\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': hideMedia }\"\n :aria-hidden=\"true\"\n />{{ $t('settings.hide_media_previews') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n role=\"menuitemcheckbox\"\n :aria-checked=\"hideMutedPosts\"\n @click=\"hideMutedPosts = !hideMutedPosts\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': hideMutedPosts }\"\n :aria-hidden=\"true\"\n />{{ $t('settings.hide_all_muted_posts') }}\n </button>\n <button\n class=\"button-default dropdown-item dropdown-item-icon\"\n role=\"menuitem\"\n @click=\"openTab('filtering')\"\n >\n <FAIcon icon=\"font\" />{{ $t('settings.word_filter_and_more') }}\n </button>\n </div>\n </template>\n <template #trigger>\n <FAIcon icon=\"filter\" />\n </template>\n </Popover>\n</template>\n\n<script src=\"./quick_filter_settings.js\"></script>\n","import Popover from '../popover/popover.vue'\nimport { mapGetters } from 'vuex'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faFilter, faFont, faWrench } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faFilter,\n faFont,\n faWrench\n)\n\nconst QuickFilterSettings = {\n props: {\n conversation: Boolean\n },\n components: {\n Popover\n },\n methods: {\n setReplyVisibility (visibility) {\n this.$store.dispatch('setOption', { name: 'replyVisibility', value: visibility })\n this.$store.dispatch('queueFlushAll')\n },\n openTab (tab) {\n this.$store.dispatch('openSettingsModalTab', tab)\n }\n },\n computed: {\n ...mapGetters(['mergedConfig']),\n loggedIn () {\n return !!this.$store.state.users.currentUser\n },\n replyVisibilitySelf: {\n get () { return this.mergedConfig.replyVisibility === 'self' },\n set () { this.setReplyVisibility('self') }\n },\n replyVisibilityFollowing: {\n get () { return this.mergedConfig.replyVisibility === 'following' },\n set () { this.setReplyVisibility('following') }\n },\n replyVisibilityAll: {\n get () { return this.mergedConfig.replyVisibility === 'all' },\n set () { this.setReplyVisibility('all') }\n },\n hideMedia: {\n get () { return this.mergedConfig.hideAttachments || this.mergedConfig.hideAttachmentsInConv },\n set () {\n const value = !this.hideMedia\n this.$store.dispatch('setOption', { name: 'hideAttachments', value })\n this.$store.dispatch('setOption', { name: 'hideAttachmentsInConv', value })\n }\n },\n hideMutedPosts: {\n get () { return this.mergedConfig.hideFilteredStatuses },\n set () {\n const value = !this.hideMutedPosts\n this.$store.dispatch('setOption', { name: 'hideFilteredStatuses', value })\n }\n },\n muteBotStatuses: {\n get () { return this.mergedConfig.muteBotStatuses },\n set () {\n const value = !this.muteBotStatuses\n this.$store.dispatch('setOption', { name: 'muteBotStatuses', value })\n }\n }\n }\n}\n\nexport default QuickFilterSettings\n","import { render } from \"./quick_filter_settings.vue?vue&type=template&id=43207d13\"\nimport script from \"./quick_filter_settings.js?vue&type=script&lang=js\"\nexport * from \"./quick_filter_settings.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Popover\n trigger=\"click\"\n class=\"QuickViewSettings\"\n :bound-to=\"{ x: 'container' }\"\n :trigger-attrs=\"{ title: $t('timeline.quick_view_settings') }\"\n >\n <template #content>\n <div\n class=\"dropdown-menu\"\n role=\"menu\"\n >\n <div role=\"group\">\n <button\n class=\"button-default dropdown-item\"\n :aria-checked=\"conversationDisplay === 'tree'\"\n role=\"menuitemradio\"\n @click=\"conversationDisplay = 'tree'\"\n >\n <span\n class=\"menu-checkbox -radio\"\n :aria-hidden=\"true\"\n :class=\"{ 'menu-checkbox-checked': conversationDisplay === 'tree' }\"\n /><FAIcon\n icon=\"folder-tree\"\n :aria-hidden=\"true\"\n /> {{ $t('settings.conversation_display_tree_quick') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n :aria-checked=\"conversationDisplay === 'linear'\"\n role=\"menuitemradio\"\n @click=\"conversationDisplay = 'linear'\"\n >\n <span\n class=\"menu-checkbox -radio\"\n :class=\"{ 'menu-checkbox-checked': conversationDisplay === 'linear' }\"\n :aria-hidden=\"true\"\n /><FAIcon\n icon=\"list\"\n :aria-hidden=\"true\"\n /> {{ $t('settings.conversation_display_linear_quick') }}\n </button>\n </div>\n <div\n role=\"separator\"\n class=\"dropdown-divider\"\n />\n <button\n class=\"button-default dropdown-item\"\n role=\"menuitemcheckbox\"\n :aria-checked=\"showUserAvatars\"\n @click=\"showUserAvatars = !showUserAvatars\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': showUserAvatars }\"\n :aria-hidden=\"true\"\n />{{ $t('settings.mention_link_show_avatar_quick') }}\n </button>\n <button\n v-if=\"!conversation\"\n class=\"button-default dropdown-item\"\n role=\"menuitemcheckbox\"\n :aria-checked=\"autoUpdate\"\n @click=\"autoUpdate = !autoUpdate\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': autoUpdate }\"\n :aria-hidden=\"true\"\n />{{ $t('settings.auto_update') }}\n </button>\n <button\n v-if=\"!conversation\"\n class=\"button-default dropdown-item\"\n role=\"menuitemcheckbox\"\n :aria-checked=\"collapseWithSubjects\"\n @click=\"collapseWithSubjects = !collapseWithSubjects\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': collapseWithSubjects }\"\n :aria-hidden=\"true\"\n />{{ $t('settings.collapse_subject') }}\n </button>\n <button\n class=\"button-default dropdown-item dropdown-item-icon\"\n role=\"menuitem\"\n @click=\"openTab('general')\"\n >\n <FAIcon icon=\"wrench\" />{{ $t('settings.more_settings') }}\n </button>\n </div>\n </template>\n <template #trigger>\n <FAIcon icon=\"bars\" />\n </template>\n </Popover>\n</template>\n\n<script src=\"./quick_view_settings.js\"></script>\n","import Popover from '../popover/popover.vue'\nimport { mapGetters } from 'vuex'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faList, faFolderTree, faBars, faWrench } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faList,\n faFolderTree,\n faBars,\n faWrench\n)\n\nconst QuickViewSettings = {\n props: {\n conversation: Boolean\n },\n components: {\n Popover\n },\n methods: {\n setConversationDisplay (visibility) {\n this.$store.dispatch('setOption', { name: 'conversationDisplay', value: visibility })\n },\n openTab (tab) {\n this.$store.dispatch('openSettingsModalTab', tab)\n }\n },\n computed: {\n ...mapGetters(['mergedConfig']),\n loggedIn () {\n return !!this.$store.state.users.currentUser\n },\n conversationDisplay: {\n get () { return this.mergedConfig.conversationDisplay },\n set (newVal) { this.setConversationDisplay(newVal) }\n },\n autoUpdate: {\n get () { return this.mergedConfig.streaming },\n set () {\n const value = !this.autoUpdate\n this.$store.dispatch('setOption', { name: 'streaming', value })\n }\n },\n collapseWithSubjects: {\n get () { return this.mergedConfig.collapseMessageWithSubject },\n set () {\n const value = !this.collapseWithSubjects\n this.$store.dispatch('setOption', { name: 'collapseMessageWithSubject', value })\n }\n },\n showUserAvatars: {\n get () { return this.mergedConfig.mentionLinkShowAvatar },\n set () {\n const value = !this.showUserAvatars\n console.log(value)\n this.$store.dispatch('setOption', { name: 'mentionLinkShowAvatar', value })\n }\n },\n muteBotStatuses: {\n get () { return this.mergedConfig.muteBotStatuses },\n set () {\n const value = !this.muteBotStatuses\n this.$store.dispatch('setOption', { name: 'muteBotStatuses', value })\n }\n }\n }\n}\n\nexport default QuickViewSettings\n","import { render } from \"./quick_view_settings.vue?vue&type=template&id=2a929bb0\"\nimport script from \"./quick_view_settings.js?vue&type=script&lang=js\"\nexport * from \"./quick_view_settings.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { reduce, filter, findIndex, clone, get } from 'lodash'\nimport Status from '../status/status.vue'\nimport ThreadTree from '../thread_tree/thread_tree.vue'\nimport { WSConnectionStatus } from '../../services/api/api.service.js'\nimport { mapGetters, mapState } from 'vuex'\nimport QuickFilterSettings from '../quick_filter_settings/quick_filter_settings.vue'\nimport QuickViewSettings from '../quick_view_settings/quick_view_settings.vue'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faAngleDoubleDown,\n faAngleDoubleLeft,\n faChevronLeft\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faAngleDoubleDown,\n faAngleDoubleLeft,\n faChevronLeft\n)\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 threadDisplayStatusObject: {}, // id => 'showing' | 'hidden'\n statusContentPropertiesObject: {},\n inlineDivePosition: null\n }\n },\n props: [\n 'statusId',\n 'collapsable',\n 'isPage',\n 'pinnedStatusIdsObject',\n 'inProfile',\n 'profileUserId',\n 'virtualHidden'\n ],\n created () {\n if (this.isPage) {\n this.fetchConversation()\n }\n },\n computed: {\n maxDepthToShowByDefault () {\n // maxDepthInThread = max number of depths that is *visible*\n // since our depth starts with 0 and \"showing\" means \"showing children\"\n // there is a -2 here\n const maxDepth = this.$store.getters.mergedConfig.maxDepthInThread - 2\n return maxDepth >= 1 ? maxDepth : 1\n },\n streamingEnabled () {\n return this.mergedConfig.useStreamingApi && this.mastoUserSocketStatus === WSConnectionStatus.JOINED\n },\n displayStyle () {\n return this.$store.getters.mergedConfig.conversationDisplay\n },\n isTreeView () {\n return !this.isLinearView\n },\n treeViewIsSimple () {\n return !this.$store.getters.mergedConfig.conversationTreeAdvanced\n },\n isLinearView () {\n return this.displayStyle === 'linear'\n },\n shouldFadeAncestors () {\n return this.$store.getters.mergedConfig.conversationTreeFadeAncestors\n },\n otherRepliesButtonPosition () {\n return this.$store.getters.mergedConfig.conversationOtherRepliesButton\n },\n showOtherRepliesButtonBelowStatus () {\n return this.otherRepliesButtonPosition === 'below'\n },\n showOtherRepliesButtonInsideStatus () {\n return this.otherRepliesButtonPosition === 'inside'\n },\n suspendable () {\n if (this.isTreeView) {\n return Object.entries(this.statusContentProperties)\n .every(([k, prop]) => !prop.replying && prop.mediaPlaying.length === 0)\n }\n if (this.$refs.statusComponent && this.$refs.statusComponent[0]) {\n return this.$refs.statusComponent.every(s => s.suspendable)\n } else {\n return true\n }\n },\n hideStatus () {\n return this.virtualHidden && this.suspendable\n },\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 statusMap () {\n return this.conversation.reduce((res, s) => {\n res[s.id] = s\n return res\n }, {})\n },\n threadTree () {\n const reverseLookupTable = this.conversation.reduce((table, status, index) => {\n table[status.id] = index\n return table\n }, {})\n\n const threads = this.conversation.reduce((a, cur) => {\n const id = cur.id\n a.forest[id] = this.getReplies(id)\n .map(s => s.id)\n\n return a\n }, {\n forest: {}\n })\n\n const walk = (forest, topLevel, depth = 0, processed = {}) => topLevel.map(id => {\n if (processed[id]) {\n return []\n }\n\n processed[id] = true\n return [{\n status: this.conversation[reverseLookupTable[id]],\n id,\n depth\n }, walk(forest, forest[id], depth + 1, processed)].reduce((a, b) => a.concat(b), [])\n }).reduce((a, b) => a.concat(b), [])\n\n const linearized = walk(threads.forest, this.topLevel.map(k => k.id))\n\n return linearized\n },\n replyIds () {\n return this.conversation.map(k => k.id)\n .reduce((res, id) => {\n res[id] = (this.replies[id] || []).map(k => k.id)\n return res\n }, {})\n },\n totalReplyCount () {\n const sizes = {}\n const subTreeSizeFor = (id) => {\n if (sizes[id]) {\n return sizes[id]\n }\n sizes[id] = 1 + this.replyIds[id].map(cid => subTreeSizeFor(cid)).reduce((a, b) => a + b, 0)\n return sizes[id]\n }\n this.conversation.map(k => k.id).map(subTreeSizeFor)\n return Object.keys(sizes).reduce((res, id) => {\n res[id] = sizes[id] - 1 // exclude itself\n return res\n }, {})\n },\n totalReplyDepth () {\n const depths = {}\n const subTreeDepthFor = (id) => {\n if (depths[id]) {\n return depths[id]\n }\n depths[id] = 1 + this.replyIds[id].map(cid => subTreeDepthFor(cid)).reduce((a, b) => a > b ? a : b, 0)\n return depths[id]\n }\n this.conversation.map(k => k.id).map(subTreeDepthFor)\n return Object.keys(depths).reduce((res, id) => {\n res[id] = depths[id] - 1 // exclude itself\n return res\n }, {})\n },\n depths () {\n return this.threadTree.reduce((a, k) => {\n a[k.id] = k.depth\n return a\n }, {})\n },\n topLevel () {\n const topLevel = this.conversation.reduce((tl, cur) =>\n tl.filter(k => this.getReplies(cur.id).map(v => v.id).indexOf(k.id) === -1), this.conversation)\n return topLevel\n },\n otherTopLevelCount () {\n return this.topLevel.length - 1\n },\n showingTopLevel () {\n if (this.canDive && this.diveRoot) {\n return [this.statusMap[this.diveRoot]]\n }\n return this.topLevel\n },\n diveRoot () {\n const statusId = this.inlineDivePosition || this.statusId\n const isTopLevel = !this.parentOf(statusId)\n return isTopLevel ? null : statusId\n },\n diveDepth () {\n return this.canDive && this.diveRoot ? this.depths[this.diveRoot] : 0\n },\n diveMode () {\n return this.canDive && !!this.diveRoot\n },\n shouldShowAllConversationButton () {\n // The \"show all conversation\" button tells the user that there exist\n // other toplevel statuses, so do not show it if there is only a single root\n return this.isTreeView && this.isExpanded && this.diveMode && this.topLevel.length > 1\n },\n shouldShowAncestors () {\n return this.isTreeView && this.isExpanded && this.ancestorsOf(this.diveRoot).length\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\n })\n }\n i++\n return result\n }, {})\n },\n isExpanded () {\n return !!(this.expanded || this.isPage)\n },\n hiddenStyle () {\n const height = (this.status && this.status.virtualHeight) || '120px'\n return this.virtualHidden ? { height } : {}\n },\n threadDisplayStatus () {\n return this.conversation.reduce((a, k) => {\n const id = k.id\n const depth = this.depths[id]\n const status = (() => {\n if (this.threadDisplayStatusObject[id]) {\n return this.threadDisplayStatusObject[id]\n }\n if ((depth - this.diveDepth) <= this.maxDepthToShowByDefault) {\n return 'showing'\n } else {\n return 'hidden'\n }\n })()\n\n a[id] = status\n return a\n }, {})\n },\n statusContentProperties () {\n return this.conversation.reduce((a, k) => {\n const id = k.id\n const props = (() => {\n const def = {\n showingTall: false,\n expandingSubject: false,\n showingLongSubject: false,\n isReplying: false,\n mediaPlaying: []\n }\n\n if (this.statusContentPropertiesObject[id]) {\n return {\n ...def,\n ...this.statusContentPropertiesObject[id]\n }\n }\n return def\n })()\n\n a[id] = props\n return a\n }, {})\n },\n canDive () {\n return this.isTreeView && this.isExpanded\n },\n focused () {\n return (id) => {\n return (this.isExpanded) && id === this.highlight\n }\n },\n maybeHighlight () {\n return this.isExpanded ? this.highlight : null\n },\n ...mapGetters(['mergedConfig']),\n ...mapState({\n mastoUserSocketStatus: state => state.api.mastoUserSocketStatus\n })\n },\n components: {\n Status,\n ThreadTree,\n QuickFilterSettings,\n QuickViewSettings\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 } else {\n this.resetDisplayState()\n }\n },\n virtualHidden (value) {\n this.$store.dispatch(\n 'setVirtualHeight',\n { statusId: this.statusId, height: `${this.$el.clientHeight}px` }\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 getHighlight () {\n return this.isExpanded ? this.highlight : null\n },\n setHighlight (id) {\n if (!id) return\n this.highlight = id\n\n if (!this.streamingEnabled) {\n this.$store.dispatch('fetchStatus', id)\n }\n\n this.$store.dispatch('fetchFavsAndRepeats', id)\n this.$store.dispatch('fetchEmojiReactionsBy', id)\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 setThreadDisplay (id, nextStatus) {\n this.threadDisplayStatusObject = {\n ...this.threadDisplayStatusObject,\n [id]: nextStatus\n }\n },\n toggleThreadDisplay (id) {\n const curStatus = this.threadDisplayStatus[id]\n const nextStatus = curStatus === 'showing' ? 'hidden' : 'showing'\n this.setThreadDisplay(id, nextStatus)\n },\n setThreadDisplayRecursively (id, nextStatus) {\n this.setThreadDisplay(id, nextStatus)\n this.getReplies(id).map(k => k.id).map(id => this.setThreadDisplayRecursively(id, nextStatus))\n },\n showThreadRecursively (id) {\n this.setThreadDisplayRecursively(id, 'showing')\n },\n setStatusContentProperty (id, name, value) {\n this.statusContentPropertiesObject = {\n ...this.statusContentPropertiesObject,\n [id]: {\n ...this.statusContentPropertiesObject[id],\n [name]: value\n }\n }\n },\n toggleStatusContentProperty (id, name) {\n this.setStatusContentProperty(id, name, !this.statusContentProperties[id][name])\n },\n leastVisibleAncestor (id) {\n let cur = id\n let parent = this.parentOf(cur)\n while (cur) {\n // if the parent is showing it means cur is visible\n if (this.threadDisplayStatus[parent] === 'showing') {\n return cur\n }\n parent = this.parentOf(parent)\n cur = this.parentOf(cur)\n }\n // nothing found, fall back to toplevel\n return this.topLevel[0] ? this.topLevel[0].id : undefined\n },\n diveIntoStatus (id, preventScroll) {\n this.tryScrollTo(id)\n },\n diveToTopLevel () {\n this.tryScrollTo(this.topLevelAncestorOrSelfId(this.diveRoot) || this.topLevel[0].id)\n },\n // only used when we are not on a page\n undive () {\n this.inlineDivePosition = null\n this.setHighlight(this.statusId)\n },\n tryScrollTo (id) {\n if (!id) {\n return\n }\n if (this.isPage) {\n // set statusId\n this.$router.push({ name: 'conversation', params: { id } })\n } else {\n this.inlineDivePosition = id\n }\n // Because the conversation can be unmounted when out of sight\n // and mounted again when it comes into sight,\n // the `mounted` or `created` function in `status` should not\n // contain scrolling calls, as we do not want the page to jump\n // when we scroll with an expanded conversation.\n //\n // Now the method is to rely solely on the `highlight` watcher\n // in `status` components.\n // In linear views, all statuses are rendered at all times, but\n // in tree views, it is possible that a change in active status\n // removes and adds status components (e.g. an originally child\n // status becomes an ancestor status, and thus they will be\n // different).\n // Here, let the components be rendered first, in order to trigger\n // the `highlight` watcher.\n this.$nextTick(() => {\n this.setHighlight(id)\n })\n },\n goToCurrent () {\n this.tryScrollTo(this.diveRoot || this.topLevel[0].id)\n },\n statusById (id) {\n return this.statusMap[id]\n },\n parentOf (id) {\n const status = this.statusById(id)\n if (!status) {\n return undefined\n }\n const { in_reply_to_status_id: parentId } = status\n if (!this.statusMap[parentId]) {\n return undefined\n }\n return parentId\n },\n parentOrSelf (id) {\n return this.parentOf(id) || id\n },\n // Ancestors of some status, from top to bottom\n ancestorsOf (id) {\n const ancestors = []\n let cur = this.parentOf(id)\n while (cur) {\n ancestors.unshift(this.statusMap[cur])\n cur = this.parentOf(cur)\n }\n return ancestors\n },\n topLevelAncestorOrSelfId (id) {\n let cur = id\n let parent = this.parentOf(id)\n while (parent) {\n cur = this.parentOf(cur)\n parent = this.parentOf(parent)\n }\n return cur\n },\n resetDisplayState () {\n this.undive()\n this.threadDisplayStatusObject = {}\n }\n }\n}\n\nexport default conversation\n","import { render } from \"./conversation.vue?vue&type=template&id=68e3b9cb\"\nimport script from \"./conversation.js?vue&type=script&lang=js\"\nexport * from \"./conversation.js?vue&type=script&lang=js\"\n\nimport \"./conversation.vue?vue&type=style&index=0&id=68e3b9cb&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Popover\n trigger=\"click\"\n class=\"TimelineMenu\"\n :class=\"{ 'open': isOpen }\"\n :bound-to=\"{ x: 'container' }\"\n bound-to-selector=\".Timeline\"\n popover-class=\"timeline-menu-popover popover-default\"\n @show=\"openMenu\"\n @close=\"() => isOpen = false\"\n >\n <template #content>\n <ListsMenuContent\n v-if=\"useListsMenu\"\n :show-pin=\"false\"\n class=\"timelines\"\n />\n <ul v-else>\n <NavigationEntry\n v-for=\"item in timelinesList\"\n :key=\"item.name\"\n :show-pin=\"false\"\n :item=\"item\"\n />\n </ul>\n </template>\n <template #trigger>\n <span class=\"button-unstyled title timeline-menu-title\">\n <span class=\"timeline-title\">{{ timelineName() }}</span>\n <span>\n <FAIcon\n size=\"sm\"\n icon=\"chevron-down\"\n />\n </span>\n <span\n class=\"click-blocker\"\n @click=\"blockOpen\"\n />\n </span>\n </template>\n </Popover>\n</template>\n\n<script src=\"./timeline_menu.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.timeline-menu-popover {\n min-width: 24rem;\n max-width: 100vw;\n margin-top: 0.6rem;\n font-size: 1rem;\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n\n ul {\n list-style: none;\n margin: 0;\n padding: 0;\n }\n\n a {\n display: block;\n padding: 0 0.65em;\n height: 3.5em;\n line-height: 3.5em;\n\n &:hover {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n color: $fallback--link;\n color: var(--selectedMenuText, $fallback--link);\n\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n --icon: var(--selectedMenuIcon, $fallback--icon);\n }\n\n &.router-link-active {\n font-weight: bolder;\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n color: $fallback--text;\n color: var(--selectedMenuText, $fallback--text);\n\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n --icon: var(--selectedMenuIcon, $fallback--icon);\n\n &:hover {\n text-decoration: underline;\n }\n }\n\n svg {\n margin-right: 0.4em;\n margin-left: -0.2em;\n }\n }\n\n li {\n border-bottom: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n padding: 0;\n\n &:last-child a {\n border-bottom-right-radius: $fallback--panelRadius;\n border-bottom-right-radius: var(--panelRadius, $fallback--panelRadius);\n border-bottom-left-radius: $fallback--panelRadius;\n border-bottom-left-radius: var(--panelRadius, $fallback--panelRadius);\n }\n\n &:last-child {\n border: none;\n }\n }\n}\n\n.TimelineMenu {\n margin-right: auto;\n min-width: 0;\n\n .popover-trigger-button {\n vertical-align: bottom;\n }\n\n .panel::after {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n }\n\n .timeline-menu-title {\n margin: 0;\n cursor: pointer;\n user-select: none;\n width: 100%;\n display: flex;\n\n .timeline-menu-name {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n svg {\n margin-left: 0.6em;\n transition: transform 100ms;\n }\n\n .click-blocker {\n cursor: default;\n flex-grow: 1;\n }\n }\n\n &.open .timeline-menu-title svg {\n color: $fallback--text;\n color: var(--panelText, $fallback--text);\n transform: rotate(180deg);\n }\n\n .panel {\n box-shadow: var(--popoverShadow);\n }\n}\n</style>\n","import Popover from '../popover/popover.vue'\nimport NavigationEntry from 'src/components/navigation/navigation_entry.vue'\nimport { mapState } from 'vuex'\nimport { ListsMenuContent } from '../lists_menu/lists_menu_content.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { TIMELINES } from 'src/components/navigation/navigation.js'\nimport { filterNavigation } from 'src/components/navigation/filter.js'\nimport {\n faChevronDown\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(faChevronDown)\n\n// Route -> i18n key mapping, exported and not in the computed\n// because nav panel benefits from the same information.\nexport const timelineNames = () => {\n return {\n friends: 'nav.home_timeline',\n bookmarks: 'nav.bookmarks',\n dms: 'nav.dms',\n 'public-timeline': 'nav.public_tl',\n 'public-external-timeline': 'nav.twkn'\n }\n}\n\nconst TimelineMenu = {\n components: {\n Popover,\n NavigationEntry,\n ListsMenuContent\n },\n data () {\n return {\n isOpen: false\n }\n },\n created () {\n if (timelineNames()[this.$route.name]) {\n this.$store.dispatch('setLastTimeline', this.$route.name)\n }\n },\n computed: {\n useListsMenu () {\n const route = this.$route.name\n return route === 'lists-timeline'\n },\n ...mapState({\n currentUser: state => state.users.currentUser,\n privateMode: state => state.instance.private,\n federating: state => state.instance.federating\n }),\n timelinesList () {\n return filterNavigation(\n Object.entries(TIMELINES).map(([k, v]) => ({ ...v, name: k })),\n {\n hasChats: this.pleromaChatMessagesAvailable,\n isFederating: this.federating,\n isPrivate: this.privateMode,\n currentUser: this.currentUser\n }\n )\n }\n },\n methods: {\n openMenu () {\n // $nextTick is too fast, animation won't play back but\n // instead starts in fully open position. Low values\n // like 1-5 work on fast machines but not on mobile, 25\n // seems like a good compromise that plays without significant\n // added lag.\n setTimeout(() => {\n this.isOpen = true\n }, 25)\n },\n blockOpen (event) {\n // For the blank area inside the button element.\n // Just setting @click.stop=\"\" makes unintuitive behavior when\n // menu is open and clicking on the blank area doesn't close it.\n if (!this.isOpen) {\n event.stopPropagation()\n }\n },\n timelineName () {\n const route = this.$route.name\n if (route === 'tag-timeline') {\n return '#' + this.$route.params.tag\n }\n if (route === 'lists-timeline') {\n return this.$store.getters.findListTitle(this.$route.params.id)\n }\n const i18nkey = timelineNames()[this.$route.name]\n return i18nkey ? this.$t(i18nkey) : route\n }\n }\n}\n\nexport default TimelineMenu\n","import { render } from \"./timeline_menu.vue?vue&type=template&id=b7d0cae0\"\nimport script from \"./timeline_menu.js?vue&type=script&lang=js\"\nexport * from \"./timeline_menu.js?vue&type=script&lang=js\"\n\nimport \"./timeline_menu.vue?vue&type=style&index=0&id=b7d0cae0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import Status from '../status/status.vue'\nimport { mapState } from 'vuex'\nimport timelineFetcher from '../../services/timeline_fetcher/timeline_fetcher.service.js'\nimport Conversation from '../conversation/conversation.vue'\nimport TimelineMenu from '../timeline_menu/timeline_menu.vue'\nimport QuickFilterSettings from '../quick_filter_settings/quick_filter_settings.vue'\nimport QuickViewSettings from '../quick_view_settings/quick_view_settings.vue'\nimport { debounce, throttle, keyBy } from 'lodash'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faCircleNotch, faCirclePlus, faCog, faMinus, faArrowUp, faCheck } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCircleNotch,\n faCog,\n faMinus,\n faArrowUp,\n faCirclePlus,\n faCheck\n)\n\nconst Timeline = {\n props: [\n 'timeline',\n 'timelineName',\n 'title',\n 'userId',\n 'listId',\n 'tag',\n 'embedded',\n 'count',\n 'pinnedStatusIds',\n 'inProfile',\n 'footerSlipgate' // reference to an element where we should put our footer\n ],\n data () {\n return {\n showScrollTop: false,\n paused: false,\n unfocused: false,\n bottomedOut: false,\n virtualScrollIndex: 0,\n blockingClicks: false\n }\n },\n components: {\n Status,\n Conversation,\n TimelineMenu,\n QuickFilterSettings,\n QuickViewSettings\n },\n computed: {\n filteredVisibleStatuses () {\n return this.timeline.visibleStatuses.filter(status => this.timelineName !== 'user' || (status.id >= this.timeline.minId && status.id <= this.timeline.maxId))\n },\n filteredPinnedStatusIds () {\n return (this.pinnedStatusIds || []).filter(statusId => this.timeline.statusesObject[statusId])\n },\n newStatusCount () {\n return this.timeline.newStatusCount\n },\n showLoadButton () {\n return this.timeline.newStatusCount > 0 || this.timeline.flushMarker !== 0\n },\n loadButtonString () {\n if (this.timeline.flushMarker !== 0) {\n return this.$t('timeline.reload')\n } else {\n return `${this.$t('timeline.show_new')} (${this.newStatusCount})`\n }\n },\n mobileLoadButtonString () {\n if (this.timeline.flushMarker !== 0) {\n return '+'\n } else {\n return this.newStatusCount > 99 ? '∞' : this.newStatusCount\n }\n },\n classes () {\n let rootClasses = !this.embedded ? ['panel', 'panel-default'] : ['-nonpanel']\n if (this.blockingClicks) rootClasses = rootClasses.concat(['-blocked', '_misclick-prevention'])\n return {\n root: rootClasses,\n header: ['timeline-heading'].concat(!this.embedded ? ['panel-heading', '-sticky'] : []),\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 pinnedStatusIdsObject () {\n return keyBy(this.pinnedStatusIds)\n },\n statusesToDisplay () {\n const amount = this.timeline.visibleStatuses.length\n const statusesPerSide = Math.ceil(Math.max(3, window.innerHeight / 80))\n const nonPinnedIndex = this.virtualScrollIndex - this.filteredPinnedStatusIds.length\n const min = Math.max(0, nonPinnedIndex - statusesPerSide)\n const max = Math.min(amount, nonPinnedIndex + statusesPerSide)\n return this.timeline.visibleStatuses.slice(min, max).map(_ => _.id)\n },\n virtualScrollingEnabled () {\n return this.$store.getters.mergedConfig.virtualScrolling\n },\n ...mapState({\n mobileLayout: state => state.interface.layoutType === 'mobile'\n })\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.handleScroll)\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 listId: this.listId,\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 setTimeout(this.determineVisibleStatuses, 250)\n },\n unmounted () {\n window.removeEventListener('scroll', this.handleScroll)\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 scrollToTop () {\n window.scrollTo({ top: this.$el.offsetTop })\n },\n stopBlockingClicks: debounce(function () {\n this.blockingClicks = false\n }, 1000),\n blockClicksTemporarily () {\n if (!this.blockingClicks) {\n this.blockingClicks = true\n }\n this.stopBlockingClicks()\n },\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.timeline.flushMarker !== 0) {\n this.$store.commit('clearTimeline', { timeline: this.timelineName, excludeUserId: true })\n this.$store.commit('queueFlush', { timeline: this.timelineName, id: 0 })\n if (this.timelineName === 'user') {\n this.$store.dispatch('fetchPinnedStatuses', this.userId)\n }\n this.fetchOlderStatuses()\n } else {\n this.blockClicksTemporarily()\n this.$store.commit('showNewStatuses', { timeline: this.timelineName })\n this.paused = false\n }\n window.scrollTo({ top: 0 })\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 listId: this.listId,\n tag: this.tag\n }).then(({ statuses }) => {\n if (statuses && statuses.length === 0) {\n this.bottomedOut = true\n }\n }).finally(() =>\n store.commit('setLoading', { timeline: this.timelineName, value: false })\n )\n }, 1000, this),\n determineVisibleStatuses () {\n if (!this.$refs.timeline) return\n if (!this.virtualScrollingEnabled) return\n\n const statuses = this.$refs.timeline.children\n const cappedScrollIndex = Math.max(0, Math.min(this.virtualScrollIndex, statuses.length - 1))\n\n if (statuses.length === 0) return\n\n const height = Math.max(document.body.offsetHeight, window.pageYOffset)\n\n const centerOfScreen = window.pageYOffset + (window.innerHeight * 0.5)\n\n // Start from approximating the index of some visible status by using the\n // the center of the screen on the timeline.\n let approxIndex = Math.floor(statuses.length * (centerOfScreen / height))\n let err = statuses[approxIndex].getBoundingClientRect().y\n\n // if we have a previous scroll index that can be used, test if it's\n // closer than the previous approximation, use it if so\n\n const virtualScrollIndexY = statuses[cappedScrollIndex].getBoundingClientRect().y\n if (Math.abs(err) > virtualScrollIndexY) {\n approxIndex = cappedScrollIndex\n err = virtualScrollIndexY\n }\n\n // if the status is too far from viewport, check the next/previous ones if\n // they happen to be better\n while (err < -20 && approxIndex < statuses.length - 1) {\n err += statuses[approxIndex].offsetHeight\n approxIndex++\n }\n while (err > window.innerHeight + 100 && approxIndex > 0) {\n approxIndex--\n err -= statuses[approxIndex].offsetHeight\n }\n\n // this status is now the center point for virtual scrolling and visible\n // statuses will be nearby statuses before and after it\n this.virtualScrollIndex = approxIndex\n },\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.$el.offsetHeight > 0 &&\n (window.innerHeight + window.pageYOffset) >= (height - 750)) {\n this.fetchOlderStatuses()\n }\n },\n handleScroll: throttle(function (e) {\n this.showScrollTop = this.$el.offsetTop < window.scrollY\n this.determineVisibleStatuses()\n this.scrollLoad(e)\n }, 200),\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","import { render } from \"./timeline.vue?vue&type=template&id=79de750e\"\nimport script from \"./timeline.js?vue&type=script&lang=js\"\nexport * from \"./timeline.js?vue&type=script&lang=js\"\n\nimport \"./timeline.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","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 unmounted () {\n this.$store.dispatch('stopFetchingTimeline', 'public')\n }\n\n}\n\nexport default PublicTimeline\n","import { render } from \"./public_timeline.vue?vue&type=template&id=5f2a502e\"\nimport script from \"./public_timeline.js?vue&type=script&lang=js\"\nexport * from \"./public_timeline.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Timeline\n :title=\"$t('nav.public_tl')\"\n :timeline=\"timeline\"\n :timeline-name=\"'public'\"\n />\n</template>\n\n<script src=\"./public_timeline.js\"></script>\n","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 unmounted () {\n this.$store.dispatch('stopFetchingTimeline', 'publicAndExternal')\n }\n}\n\nexport default PublicAndExternalTimeline\n","import { render } from \"./public_and_external_timeline.vue?vue&type=template&id=f6923484\"\nimport script from \"./public_and_external_timeline.js?vue&type=script&lang=js\"\nexport * from \"./public_and_external_timeline.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Timeline\n :title=\"$t('nav.twkn')\"\n :timeline=\"timeline\"\n :timeline-name=\"'publicAndExternal'\"\n />\n</template>\n\n<script src=\"./public_and_external_timeline.js\"></script>\n","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","import { render } from \"./friends_timeline.vue?vue&type=template&id=22490669\"\nimport script from \"./friends_timeline.js?vue&type=script&lang=js\"\nexport * from \"./friends_timeline.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Timeline\n :title=\"$t('nav.timeline')\"\n :timeline=\"timeline\"\n :timeline-name=\"'friends'\"\n />\n</template>\n\n<script src=\"./friends_timeline.js\"></script>\n","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 unmounted () {\n this.$store.dispatch('stopFetchingTimeline', 'tag')\n }\n}\n\nexport default TagTimeline\n","import { render } from \"./tag_timeline.vue?vue&type=template&id=047310d3\"\nimport script from \"./tag_timeline.js?vue&type=script&lang=js\"\nexport * from \"./tag_timeline.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Timeline\n :title=\"tag\"\n :timeline=\"timeline\"\n :timeline-name=\"'tag'\"\n :tag=\"tag\"\n />\n</template>\n\n<script src='./tag_timeline.js'></script>\n","import Timeline from '../timeline/timeline.vue'\n\nconst Bookmarks = {\n computed: {\n timeline () {\n return this.$store.state.statuses.timelines.bookmarks\n }\n },\n components: {\n Timeline\n },\n unmounted () {\n this.$store.commit('clearTimeline', { timeline: 'bookmarks' })\n }\n}\n\nexport default Bookmarks\n","import { render } from \"./bookmark_timeline.vue?vue&type=template&id=2b9c8ba0\"\nimport script from \"./bookmark_timeline.js?vue&type=script&lang=js\"\nexport * from \"./bookmark_timeline.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Timeline\n :title=\"$t('nav.bookmarks')\"\n :timeline=\"timeline\"\n :timeline-name=\"'bookmarks'\"\n />\n</template>\n\n<script src=\"./bookmark_timeline.js\"></script>\n","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","import { render } from \"./conversation-page.vue?vue&type=template&id=46654d24\"\nimport script from \"./conversation-page.js?vue&type=script&lang=js\"\nexport * from \"./conversation-page.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <conversation\n :collapsable=\"false\"\n is-page=\"true\"\n :status-id=\"statusId\"\n />\n</template>\n\n<script src=\"./conversation-page.js\"></script>\n","<template>\n <div class=\"panel panel-default\">\n <div class=\"panel-heading\">\n <div class=\"title\">\n {{ $t(\"nav.interactions\") }}\n </div>\n </div>\n <tab-switcher\n ref=\"tabSwitcher\"\n :on-switch=\"onModeSwitch\"\n >\n <span\n key=\"mentions\"\n :label=\"$t('nav.mentions')\"\n />\n <span\n key=\"likes+repeats\"\n :label=\"$t('interactions.favs_repeats')\"\n />\n <span\n key=\"follows\"\n :label=\"$t('interactions.follows')\"\n />\n <span\n key=\"reactions\"\n :label=\"$t('interactions.emoji_reactions')\"\n />\n <span\n v-if=\"canSeeReports\"\n key=\"reports\"\n :label=\"$t('interactions.reports')\"\n />\n <span\n v-if=\"!allowFollowingMove\"\n key=\"moves\"\n :label=\"$t('interactions.moves')\"\n />\n </tab-switcher>\n <Notifications\n ref=\"notifications\"\n :no-heading=\"true\"\n :minimal-mode=\"true\"\n :filter-mode=\"filterMode\"\n />\n </div>\n</template>\n\n<script src=\"./interactions.js\"></script>\n","import Notifications from '../notifications/notifications.vue'\nimport TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'\n\nconst tabModeDict = {\n mentions: ['mention'],\n 'likes+repeats': ['repeat', 'like'],\n follows: ['follow'],\n reactions: ['pleroma:emoji_reaction'],\n reports: ['pleroma:report'],\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 canSeeReports: this.$store.state.users.currentUser.privileges.includes('reports_manage_reports')\n }\n },\n methods: {\n onModeSwitch (key) {\n this.filterMode = tabModeDict[key]\n }\n },\n components: {\n Notifications,\n TabSwitcher\n }\n}\n\nexport default Interactions\n","import { render } from \"./interactions.vue?vue&type=template&id=3b173532\"\nimport script from \"./interactions.js?vue&type=script&lang=js\"\nexport * from \"./interactions.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","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","import { render } from \"./dm_timeline.vue?vue&type=template&id=294f8b6d\"\nimport script from \"./dm_timeline.js?vue&type=script&lang=js\"\nexport * from \"./dm_timeline.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Timeline\n :title=\"$t('nav.dms')\"\n :timeline=\"timeline\"\n :timeline-name=\"'dms'\"\n />\n</template>\n\n<script src=\"./dm_timeline.js\"></script>\n","<template>\n <div v-if=\"isNew\">\n <ChatNew @cancel=\"cancelNewChat\" />\n </div>\n <div\n v-else\n class=\"chat-list panel panel-default\"\n >\n <div class=\"panel-heading -sticky\">\n <span class=\"title\">\n {{ $t(\"chats.chats\") }}\n </span>\n <button\n class=\"button-default\"\n @click=\"newChat\"\n >\n {{ $t(\"chats.new\") }}\n </button>\n </div>\n <div class=\"panel-body\">\n <div\n v-if=\"sortedChatList.length > 0\"\n class=\"timeline\"\n >\n <List :items=\"sortedChatList\">\n <template #item=\"{item}\">\n <ChatListItem\n :key=\"item.id\"\n :compact=\"false\"\n :chat=\"item\"\n />\n </template>\n </List>\n </div>\n <div\n v-else\n class=\"emtpy-chat-list-alert\"\n >\n <span>{{ $t('chats.empty_chat_list_placeholder') }}</span>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./chat_list.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.chat-list {\n min-height: 25em;\n margin-bottom: 0;\n}\n\n.emtpy-chat-list-alert {\n padding: 3em;\n font-size: 1.2em;\n display: flex;\n justify-content: center;\n color: $fallback--text;\n color: var(--faint, $fallback--text);\n}\n\n</style>\n","<template>\n <div\n class=\"chat-list-item\"\n @click.capture.prevent=\"openChat\"\n >\n <div class=\"chat-list-item-left\">\n <UserAvatar\n :user=\"chat.account\"\n height=\"48px\"\n width=\"48px\"\n />\n </div>\n <div class=\"chat-list-item-center\">\n <div class=\"heading\">\n <span\n v-if=\"chat.account\"\n class=\"name-and-account-name\"\n >\n <ChatTitle\n :user=\"chat.account\"\n />\n </span>\n <span class=\"heading-right\" />\n <div class=\"time-wrapper\">\n <Timeago\n :time=\"chat.updated_at\"\n :auto-update=\"60\"\n />\n </div>\n </div>\n <div class=\"chat-preview\">\n <StatusBody\n class=\"chat-preview-body\"\n :status=\"messageForStatusContent\"\n :single-line=\"true\"\n />\n <div\n v-if=\"chat.unread > 0\"\n class=\"badge badge-notification unread-chat-count\"\n >\n {{ chat.unread }}\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./chat_list_item.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n@import \"./chat_list_item\";\n</style>\n","import UserAvatar from '../user_avatar/user_avatar.vue'\nimport RichContent from 'src/components/rich_content/rich_content.jsx'\nimport { defineAsyncComponent } from 'vue'\n\nexport default {\n name: 'ChatTitle',\n components: {\n UserAvatar,\n RichContent,\n UserPopover: defineAsyncComponent(() => import('../user_popover/user_popover.vue'))\n },\n props: [\n 'user', 'withAvatar'\n ],\n computed: {\n title () {\n return this.user ? this.user.screen_name_ui : ''\n },\n htmlTitle () {\n return this.user ? this.user.name_html : ''\n }\n }\n}\n","import { render } from \"./chat_title.vue?vue&type=template&id=e9d70b10\"\nimport script from \"./chat_title.js?vue&type=script&lang=js\"\nexport * from \"./chat_title.js?vue&type=script&lang=js\"\n\nimport \"./chat_title.vue?vue&type=style&index=0&id=e9d70b10&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n class=\"chat-title\"\n :title=\"title\"\n >\n <UserPopover\n v-if=\"withAvatar && user\"\n class=\"avatar-container\"\n :user-id=\"user.id\"\n >\n <UserAvatar\n class=\"titlebar-avatar\"\n :user=\"user\"\n />\n </UserPopover>\n <RichContent\n v-if=\"user\"\n class=\"username\"\n :title=\"'@'+(user && user.screen_name_ui)\"\n :html=\"htmlTitle\"\n :emoji=\"user.emoji || []\"\n />\n </div>\n</template>\n\n<script src=\"./chat_title.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.chat-title {\n display: flex;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n --emoji-size: 14px;\n\n .username {\n max-width: 100%;\n text-overflow: ellipsis;\n white-space: nowrap;\n display: inline;\n word-wrap: break-word;\n overflow: hidden;\n }\n\n .avatar-container {\n align-self: center;\n line-height: 1;\n }\n\n .titlebar-avatar {\n margin-right: 0.5em;\n height: 1.5em;\n width: 1.5em;\n border-radius: $fallback--avatarAltRadius;\n border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);\n\n &.animated::before {\n display: none;\n }\n }\n}\n</style>\n","import { mapState } from 'vuex'\nimport StatusBody from '../status_content/status_content.vue'\nimport fileType from 'src/services/file_type/file_type.service'\nimport UserAvatar from '../user_avatar/user_avatar.vue'\nimport AvatarList from '../avatar_list/avatar_list.vue'\nimport Timeago from '../timeago/timeago.vue'\nimport ChatTitle from '../chat_title/chat_title.vue'\n\nconst ChatListItem = {\n name: 'ChatListItem',\n props: [\n 'chat'\n ],\n components: {\n UserAvatar,\n AvatarList,\n Timeago,\n ChatTitle,\n StatusBody\n },\n computed: {\n ...mapState({\n currentUser: state => state.users.currentUser\n }),\n attachmentInfo () {\n if (this.chat.lastMessage.attachments.length === 0) { return }\n\n const types = this.chat.lastMessage.attachments.map(file => fileType.fileType(file.mimetype))\n if (types.includes('video')) {\n return this.$t('file_type.video')\n } else if (types.includes('audio')) {\n return this.$t('file_type.audio')\n } else if (types.includes('image')) {\n return this.$t('file_type.image')\n } else {\n return this.$t('file_type.file')\n }\n },\n messageForStatusContent () {\n const message = this.chat.lastMessage\n const messageEmojis = message ? message.emojis : []\n const isYou = message && message.account_id === this.currentUser.id\n const content = message ? (this.attachmentInfo || message.content) : ''\n const messagePreview = isYou ? `<i>${this.$t('chats.you')}</i> ${content}` : content\n return {\n summary: '',\n emojis: messageEmojis,\n raw_html: messagePreview,\n text: messagePreview,\n attachments: []\n }\n }\n },\n methods: {\n openChat (_e) {\n if (this.chat.id) {\n this.$router.push({\n name: 'chat',\n params: {\n username: this.currentUser.screen_name,\n recipient_id: this.chat.account.id\n }\n })\n }\n }\n }\n}\n\nexport default ChatListItem\n","import { render } from \"./chat_list_item.vue?vue&type=template&id=a202646c\"\nimport script from \"./chat_list_item.js?vue&type=script&lang=js\"\nexport * from \"./chat_list_item.js?vue&type=script&lang=js\"\n\nimport \"./chat_list_item.vue?vue&type=style&index=0&id=a202646c&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n class=\"panel-default panel chat-new\"\n >\n <div\n ref=\"header\"\n class=\"panel-heading\"\n >\n <button\n class=\"button-unstyled go-back-button\"\n @click=\"goBack\"\n >\n <FAIcon\n size=\"lg\"\n icon=\"chevron-left\"\n />\n </button>\n </div>\n <div class=\"input-wrap\">\n <div class=\"input-search\">\n <FAIcon\n class=\"search-icon fa-scale-110 fa-old-padding\"\n icon=\"search\"\n />\n </div>\n <input\n ref=\"search\"\n v-model=\"query\"\n placeholder=\"Search people\"\n @input=\"onInput\"\n >\n </div>\n <div class=\"member-list\">\n <div\n v-for=\"user in availableUsers\"\n :key=\"user.id\"\n class=\"member\"\n >\n <div @click.capture.prevent=\"goToChat(user)\">\n <BasicUserCard :user=\"user\" />\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./chat_new.js\"></script>\n<style lang=\"scss\">\n@import \"../../variables\";\n@import \"./chat_new\";\n</style>\n","import { mapState, mapGetters } from 'vuex'\nimport BasicUserCard from '../basic_user_card/basic_user_card.vue'\nimport UserAvatar from '../user_avatar/user_avatar.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faSearch,\n faChevronLeft\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faSearch,\n faChevronLeft\n)\n\nconst chatNew = {\n components: {\n BasicUserCard,\n UserAvatar\n },\n data () {\n return {\n suggestions: [],\n userIds: [],\n loading: false,\n query: ''\n }\n },\n async created () {\n const { chats } = await this.backendInteractor.chats()\n chats.forEach(chat => this.suggestions.push(chat.account))\n },\n computed: {\n users () {\n return this.userIds.map(userId => this.findUser(userId))\n },\n availableUsers () {\n if (this.query.length !== 0) {\n return this.users\n } else {\n return this.suggestions\n }\n },\n ...mapState({\n currentUser: state => state.users.currentUser,\n backendInteractor: state => state.api.backendInteractor\n }),\n ...mapGetters(['findUser'])\n },\n methods: {\n goBack () {\n this.$emit('cancel')\n },\n goToChat (user) {\n this.$router.push({ name: 'chat', params: { recipient_id: user.id } })\n },\n onInput () {\n this.search(this.query)\n },\n addUser (user) {\n this.selectedUserIds.push(user.id)\n this.query = ''\n },\n removeUser (userId) {\n this.selectedUserIds = this.selectedUserIds.filter(id => id !== userId)\n },\n search (query) {\n if (!query) {\n this.loading = false\n return\n }\n\n this.loading = true\n this.userIds = []\n this.$store.dispatch('search', { q: query, resolve: true, type: 'accounts' })\n .then(data => {\n this.loading = false\n this.userIds = data.accounts.map(a => a.id)\n })\n }\n }\n}\n\nexport default chatNew\n","import { render } from \"./chat_new.vue?vue&type=template&id=527ae593\"\nimport script from \"./chat_new.js?vue&type=script&lang=js\"\nexport * from \"./chat_new.js?vue&type=script&lang=js\"\n\nimport \"./chat_new.vue?vue&type=style&index=0&id=527ae593&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { mapState, mapGetters } from 'vuex'\nimport ChatListItem from '../chat_list_item/chat_list_item.vue'\nimport ChatNew from '../chat_new/chat_new.vue'\nimport List from '../list/list.vue'\n\nconst ChatList = {\n components: {\n ChatListItem,\n List,\n ChatNew\n },\n computed: {\n ...mapState({\n currentUser: state => state.users.currentUser\n }),\n ...mapGetters(['sortedChatList'])\n },\n data () {\n return {\n isNew: false\n }\n },\n created () {\n this.$store.dispatch('fetchChats', { latest: true })\n },\n methods: {\n cancelNewChat () {\n this.isNew = false\n this.$store.dispatch('fetchChats', { latest: true })\n },\n newChat () {\n this.isNew = true\n }\n }\n}\n\nexport default ChatList\n","import { render } from \"./chat_list.vue?vue&type=template&id=66fabc09\"\nimport script from \"./chat_list.js?vue&type=script&lang=js\"\nexport * from \"./chat_list.js?vue&type=script&lang=js\"\n\nimport \"./chat_list.vue?vue&type=style&index=0&id=66fabc09&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"chat-view\">\n <div class=\"chat-view-inner\">\n <div\n ref=\"inner\"\n class=\"panel-default panel chat-view-body\"\n >\n <div\n ref=\"header\"\n class=\"panel-heading -sticky chat-view-heading\"\n >\n <button\n class=\"button-unstyled go-back-button\"\n @click=\"goBack\"\n >\n <FAIcon\n size=\"lg\"\n icon=\"chevron-left\"\n />\n </button>\n <div class=\"title text-center\">\n <ChatTitle\n :user=\"recipient\"\n :with-avatar=\"true\"\n />\n </div>\n </div>\n <div\n class=\"message-list\"\n :style=\"{ height: scrollableContainerHeight }\"\n >\n <template v-if=\"!errorLoadingChat\">\n <ChatMessage\n v-for=\"chatViewItem in chatViewItems\"\n :key=\"chatViewItem.id\"\n :author=\"recipient\"\n :chat-view-item=\"chatViewItem\"\n :hovered-message-chain=\"chatViewItem.messageChainId === hoveredMessageChainId\"\n @hover=\"onMessageHover\"\n />\n </template>\n <div\n v-else\n class=\"chat-loading-error\"\n >\n <div class=\"alert error\">\n {{ $t('chats.error_loading_chat') }}\n </div>\n </div>\n </div>\n <div\n ref=\"footer\"\n class=\"panel-body footer\"\n >\n <div\n class=\"jump-to-bottom-button\"\n :class=\"{ 'visible': jumpToBottomButtonVisible }\"\n @click=\"scrollDown({ behavior: 'smooth' })\"\n >\n <span>\n <FAIcon icon=\"chevron-down\" />\n <div\n v-if=\"newMessageCount\"\n class=\"badge badge-notification unread-chat-count unread-message-count\"\n >\n {{ newMessageCount }}\n </div>\n </span>\n </div>\n <PostStatusForm\n :disable-subject=\"true\"\n :disable-scope-selector=\"true\"\n :disable-notice=\"true\"\n :disable-lock-warning=\"true\"\n :disable-polls=\"true\"\n :disable-sensitivity-checkbox=\"true\"\n :disable-submit=\"errorLoadingChat || !currentChat\"\n :disable-preview=\"true\"\n :optimistic-posting=\"true\"\n :post-handler=\"sendMessage\"\n :submit-on-enter=\"!mobileLayout\"\n :preserve-focus=\"!mobileLayout\"\n :auto-focus=\"!mobileLayout\"\n :placeholder=\"formPlaceholder\"\n :file-limit=\"1\"\n max-height=\"160\"\n emoji-picker-placement=\"top\"\n @resize=\"handleResize\"\n />\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./chat.js\"></script>\n<style lang=\"scss\">\n@import \"../../variables\";\n@import \"./chat\";\n</style>\n","<template>\n <div\n v-if=\"isMessage\"\n class=\"chat-message-wrapper\"\n :class=\"{ 'hovered-message-chain': hoveredMessageChain }\"\n @mouseover=\"onHover(true)\"\n @mouseleave=\"onHover(false)\"\n >\n <div\n class=\"chat-message\"\n :class=\"[{ 'outgoing': isCurrentUser, 'incoming': !isCurrentUser }]\"\n >\n <div\n v-if=\"!isCurrentUser\"\n class=\"avatar-wrapper\"\n >\n <UserPopover\n v-if=\"chatViewItem.isHead\"\n :user-id=\"author.id\"\n >\n <UserAvatar\n :compact=\"true\"\n :better-shadow=\"betterShadow\"\n :user=\"author\"\n />\n </UserPopover>\n </div>\n <div class=\"chat-message-inner\">\n <div\n class=\"status-body\"\n :style=\"{ 'min-width': message.attachment ? '80%' : '' }\"\n >\n <div\n class=\"media status\"\n :class=\"{ 'without-attachment': !hasAttachment, 'pending': chatViewItem.data.pending, 'error': chatViewItem.data.error }\"\n style=\"position: relative;\"\n @mouseenter=\"hovered = true\"\n @mouseleave=\"hovered = false\"\n >\n <div\n class=\"chat-message-menu\"\n :class=\"{ 'visible': hovered || menuOpened }\"\n >\n <Popover\n trigger=\"click\"\n placement=\"top\"\n bound-to-selector=\".chat-view-inner\"\n :bound-to=\"{ x: 'container' }\"\n :margin=\"popoverMarginStyle\"\n @show=\"menuOpened = true\"\n @close=\"menuOpened = false\"\n >\n <template #content>\n <div class=\"dropdown-menu\">\n <button\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click=\"deleteMessage\"\n >\n <FAIcon icon=\"times\" /> {{ $t(\"chats.delete\") }}\n </button>\n </div>\n </template>\n <template #trigger>\n <button\n class=\"button-default menu-icon\"\n :title=\"$t('chats.more')\"\n >\n <FAIcon icon=\"ellipsis-h\" />\n </button>\n </template>\n </Popover>\n </div>\n <StatusContent\n class=\"message-content\"\n :status=\"messageForStatusContent\"\n :full-content=\"true\"\n >\n <template #footer>\n <span\n class=\"created-at\"\n >\n {{ createdAt }}\n </span>\n </template>\n </StatusContent>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div\n v-else\n class=\"chat-message-date-separator\"\n >\n <ChatMessageDate :date=\"chatViewItem.date\" />\n </div>\n</template>\n\n<script src=\"./chat_message.js\"></script>\n<style lang=\"scss\">\n@import \"./chat_message\";\n\n</style>\n","<template>\n <time>\n {{ displayDate }}\n </time>\n</template>\n\n<script>\nimport localeService from 'src/services/locale/locale.service.js'\n\nexport default {\n name: 'Timeago',\n props: ['date'],\n computed: {\n displayDate () {\n const today = new Date()\n today.setHours(0, 0, 0, 0)\n\n if (this.date.getTime() === today.getTime()) {\n return this.$t('display_date.today')\n } else {\n return this.date.toLocaleDateString(localeService.internalToBrowserLocale(this.$i18n.locale), { day: 'numeric', month: 'long' })\n }\n }\n }\n}\n</script>\n","import { render } from \"./chat_message_date.vue?vue&type=template&id=23377998\"\nimport script from \"./chat_message_date.vue?vue&type=script&lang=js\"\nexport * from \"./chat_message_date.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { mapState, mapGetters } from 'vuex'\nimport Popover from '../popover/popover.vue'\nimport Attachment from '../attachment/attachment.vue'\nimport UserAvatar from '../user_avatar/user_avatar.vue'\nimport Gallery from '../gallery/gallery.vue'\nimport LinkPreview from '../link-preview/link-preview.vue'\nimport StatusContent from '../status_content/status_content.vue'\nimport ChatMessageDate from '../chat_message_date/chat_message_date.vue'\nimport { defineAsyncComponent } from 'vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faTimes,\n faEllipsisH\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faTimes,\n faEllipsisH\n)\n\nconst ChatMessage = {\n name: 'ChatMessage',\n props: [\n 'author',\n 'edited',\n 'noHeading',\n 'chatViewItem',\n 'hoveredMessageChain'\n ],\n emits: ['hover'],\n components: {\n Popover,\n Attachment,\n StatusContent,\n UserAvatar,\n Gallery,\n LinkPreview,\n ChatMessageDate,\n UserPopover: defineAsyncComponent(() => import('../user_popover/user_popover.vue'))\n },\n computed: {\n // Returns HH:MM (hours and minutes) in local time.\n createdAt () {\n const time = this.chatViewItem.data.created_at\n return time.toLocaleTimeString('en', { hour: '2-digit', minute: '2-digit', hour12: false })\n },\n isCurrentUser () {\n return this.message.account_id === this.currentUser.id\n },\n message () {\n return this.chatViewItem.data\n },\n isMessage () {\n return this.chatViewItem.type === 'message'\n },\n messageForStatusContent () {\n return {\n summary: '',\n emojis: this.message.emojis,\n raw_html: this.message.content || '',\n text: this.message.content || '',\n attachments: this.message.attachments\n }\n },\n hasAttachment () {\n return this.message.attachments.length > 0\n },\n ...mapState({\n betterShadow: state => state.interface.browserSupport.cssFilter,\n currentUser: state => state.users.currentUser,\n restrictedNicknames: state => state.instance.restrictedNicknames\n }),\n popoverMarginStyle () {\n if (this.isCurrentUser) {\n return {}\n } else {\n return { left: 50 }\n }\n },\n ...mapGetters(['mergedConfig', 'findUser'])\n },\n data () {\n return {\n hovered: false,\n menuOpened: false\n }\n },\n methods: {\n onHover (bool) {\n this.$emit('hover', { isHovered: bool, messageChainId: this.chatViewItem.messageChainId })\n },\n async deleteMessage () {\n const confirmed = window.confirm(this.$t('chats.delete_confirm'))\n if (confirmed) {\n await this.$store.dispatch('deleteChatMessage', {\n messageId: this.chatViewItem.data.id,\n chatId: this.chatViewItem.data.chat_id\n })\n }\n this.hovered = false\n this.menuOpened = false\n }\n }\n}\n\nexport default ChatMessage\n","import { render } from \"./chat_message.vue?vue&type=template&id=e61e03a2\"\nimport script from \"./chat_message.js?vue&type=script&lang=js\"\nexport * from \"./chat_message.js?vue&type=script&lang=js\"\n\nimport \"./chat_message.vue?vue&type=style&index=0&id=e61e03a2&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","// Captures a scroll position\nexport const getScrollPosition = () => {\n return {\n scrollTop: window.scrollY,\n scrollHeight: document.documentElement.scrollHeight,\n offsetHeight: window.innerHeight\n }\n}\n\n// A helper function that is used to keep the scroll position fixed as the new elements are added to the top\n// Takes two scroll positions, before and after the update.\nexport const getNewTopPosition = (previousPosition, newPosition) => {\n return previousPosition.scrollTop + (newPosition.scrollHeight - previousPosition.scrollHeight)\n}\n\nexport const isBottomedOut = (offset = 0) => {\n const scrollHeight = window.scrollY + offset\n const totalHeight = document.documentElement.scrollHeight - window.innerHeight\n return totalHeight <= scrollHeight\n}\n// Returns whether or not the scrollbar is visible.\nexport const isScrollable = () => {\n return document.documentElement.scrollHeight > window.innerHeight\n}\n","import _ from 'lodash'\nimport { WSConnectionStatus } from '../../services/api/api.service.js'\nimport { mapGetters, mapState } from 'vuex'\nimport ChatMessage from '../chat_message/chat_message.vue'\nimport PostStatusForm from '../post_status_form/post_status_form.vue'\nimport ChatTitle from '../chat_title/chat_title.vue'\nimport chatService from '../../services/chat_service/chat_service.js'\nimport { promiseInterval } from '../../services/promise_interval/promise_interval.js'\nimport { getScrollPosition, getNewTopPosition, isBottomedOut, isScrollable } from './chat_layout_utils.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faChevronDown,\n faChevronLeft\n} from '@fortawesome/free-solid-svg-icons'\nimport { buildFakeMessage } from '../../services/chat_utils/chat_utils.js'\n\nlibrary.add(\n faChevronDown,\n faChevronLeft\n)\n\nconst BOTTOMED_OUT_OFFSET = 10\nconst JUMP_TO_BOTTOM_BUTTON_VISIBILITY_OFFSET = 10\nconst SAFE_RESIZE_TIME_OFFSET = 100\nconst MARK_AS_READ_DELAY = 1500\nconst MAX_RETRIES = 10\n\nconst Chat = {\n components: {\n ChatMessage,\n ChatTitle,\n PostStatusForm\n },\n data () {\n return {\n jumpToBottomButtonVisible: false,\n hoveredMessageChainId: undefined,\n lastScrollPosition: {},\n scrollableContainerHeight: '100%',\n errorLoadingChat: false,\n messageRetriers: {}\n }\n },\n created () {\n this.startFetching()\n window.addEventListener('resize', this.handleResize)\n },\n mounted () {\n window.addEventListener('scroll', this.handleScroll)\n if (typeof document.hidden !== 'undefined') {\n document.addEventListener('visibilitychange', this.handleVisibilityChange, false)\n }\n\n this.$nextTick(() => {\n this.handleResize()\n })\n },\n unmounted () {\n window.removeEventListener('scroll', this.handleScroll)\n window.removeEventListener('resize', this.handleResize)\n if (typeof document.hidden !== 'undefined') document.removeEventListener('visibilitychange', this.handleVisibilityChange, false)\n this.$store.dispatch('clearCurrentChat')\n },\n computed: {\n recipient () {\n return this.currentChat && this.currentChat.account\n },\n recipientId () {\n return this.$route.params.recipient_id\n },\n formPlaceholder () {\n if (this.recipient) {\n return this.$t('chats.message_user', { nickname: this.recipient.screen_name_ui })\n } else {\n return ''\n }\n },\n chatViewItems () {\n return chatService.getView(this.currentChatMessageService)\n },\n newMessageCount () {\n return this.currentChatMessageService && this.currentChatMessageService.newMessageCount\n },\n streamingEnabled () {\n return this.mergedConfig.useStreamingApi && this.mastoUserSocketStatus === WSConnectionStatus.JOINED\n },\n ...mapGetters([\n 'currentChat',\n 'currentChatMessageService',\n 'findOpenedChatByRecipientId',\n 'mergedConfig'\n ]),\n ...mapState({\n backendInteractor: state => state.api.backendInteractor,\n mastoUserSocketStatus: state => state.api.mastoUserSocketStatus,\n mobileLayout: state => state.interface.layoutType === 'mobile',\n currentUser: state => state.users.currentUser\n })\n },\n watch: {\n chatViewItems () {\n // We don't want to scroll to the bottom on a new message when the user is viewing older messages.\n // Therefore we need to know whether the scroll position was at the bottom before the DOM update.\n const bottomedOutBeforeUpdate = this.bottomedOut(BOTTOMED_OUT_OFFSET)\n this.$nextTick(() => {\n if (bottomedOutBeforeUpdate) {\n this.scrollDown()\n }\n })\n },\n $route: function () {\n this.startFetching()\n },\n mastoUserSocketStatus (newValue) {\n if (newValue === WSConnectionStatus.JOINED) {\n this.fetchChat({ isFirstFetch: true })\n }\n }\n },\n methods: {\n // Used to animate the avatar near the first message of the message chain when any message belonging to the chain is hovered\n onMessageHover ({ isHovered, messageChainId }) {\n this.hoveredMessageChainId = isHovered ? messageChainId : undefined\n },\n onFilesDropped () {\n this.$nextTick(() => {\n this.handleResize()\n })\n },\n handleVisibilityChange () {\n this.$nextTick(() => {\n if (!document.hidden && this.bottomedOut(BOTTOMED_OUT_OFFSET)) {\n this.scrollDown({ forceRead: true })\n }\n })\n },\n // \"Sticks\" scroll to bottom instead of top, helps with OSK resizing the viewport\n handleResize (opts = {}) {\n const { delayed = false } = opts\n\n if (delayed) {\n setTimeout(() => {\n this.handleResize({ ...opts, delayed: false })\n }, SAFE_RESIZE_TIME_OFFSET)\n return\n }\n\n this.$nextTick(() => {\n const { offsetHeight = undefined } = getScrollPosition()\n const diff = offsetHeight - this.lastScrollPosition.offsetHeight\n if (diff !== 0 && !this.bottomedOut()) {\n this.$nextTick(() => {\n window.scrollBy({ top: -Math.trunc(diff) })\n })\n }\n this.lastScrollPosition = getScrollPosition()\n })\n },\n scrollDown (options = {}) {\n const { behavior = 'auto', forceRead = false } = options\n this.$nextTick(() => {\n window.scrollTo({ top: document.documentElement.scrollHeight, behavior })\n })\n if (forceRead) {\n this.readChat()\n }\n },\n readChat () {\n if (!(this.currentChatMessageService && this.currentChatMessageService.maxId)) { return }\n if (document.hidden) { return }\n const lastReadId = this.currentChatMessageService.maxId\n this.$store.dispatch('readChat', {\n id: this.currentChat.id,\n lastReadId\n })\n },\n bottomedOut (offset) {\n return isBottomedOut(offset)\n },\n reachedTop () {\n return window.scrollY <= 0\n },\n cullOlderCheck () {\n window.setTimeout(() => {\n if (this.bottomedOut(JUMP_TO_BOTTOM_BUTTON_VISIBILITY_OFFSET)) {\n this.$store.dispatch('cullOlderMessages', this.currentChatMessageService.chatId)\n }\n }, 5000)\n },\n handleScroll: _.throttle(function () {\n this.lastScrollPosition = getScrollPosition()\n if (!this.currentChat) { return }\n\n if (this.reachedTop()) {\n this.fetchChat({ maxId: this.currentChatMessageService.minId })\n } else if (this.bottomedOut(JUMP_TO_BOTTOM_BUTTON_VISIBILITY_OFFSET)) {\n this.jumpToBottomButtonVisible = false\n this.cullOlderCheck()\n if (this.newMessageCount > 0) {\n // Use a delay before marking as read to prevent situation where new messages\n // arrive just as you're leaving the view and messages that you didn't actually\n // get to see get marked as read.\n window.setTimeout(() => {\n // Don't mark as read if the element doesn't exist, user has left chat view\n if (this.$el) this.readChat()\n }, MARK_AS_READ_DELAY)\n }\n } else {\n this.jumpToBottomButtonVisible = true\n }\n }, 200),\n handleScrollUp (positionBeforeLoading) {\n const positionAfterLoading = getScrollPosition()\n window.scrollTo({\n top: getNewTopPosition(positionBeforeLoading, positionAfterLoading)\n })\n },\n fetchChat ({ isFirstFetch = false, fetchLatest = false, maxId }) {\n const chatMessageService = this.currentChatMessageService\n if (!chatMessageService) { return }\n if (fetchLatest && this.streamingEnabled) { return }\n\n const chatId = chatMessageService.chatId\n const fetchOlderMessages = !!maxId\n const sinceId = fetchLatest && chatMessageService.maxId\n\n return this.backendInteractor.chatMessages({ id: chatId, maxId, sinceId })\n .then((messages) => {\n // Clear the current chat in case we're recovering from a ws connection loss.\n if (isFirstFetch) {\n chatService.clear(chatMessageService)\n }\n\n const positionBeforeUpdate = getScrollPosition()\n this.$store.dispatch('addChatMessages', { chatId, messages }).then(() => {\n this.$nextTick(() => {\n if (fetchOlderMessages) {\n this.handleScrollUp(positionBeforeUpdate)\n }\n\n // In vertical screens, the first batch of fetched messages may not always take the\n // full height of the scrollable container.\n // If this is the case, we want to fetch the messages until the scrollable container\n // is fully populated so that the user has the ability to scroll up and load the history.\n if (!isScrollable() && messages.length > 0) {\n this.fetchChat({ maxId: this.currentChatMessageService.minId })\n }\n })\n })\n })\n },\n async startFetching () {\n let chat = this.findOpenedChatByRecipientId(this.recipientId)\n if (!chat) {\n try {\n chat = await this.backendInteractor.getOrCreateChat({ accountId: this.recipientId })\n } catch (e) {\n console.error('Error creating or getting a chat', e)\n this.errorLoadingChat = true\n }\n }\n if (chat) {\n this.$nextTick(() => {\n this.scrollDown({ forceRead: true })\n })\n this.$store.dispatch('addOpenedChat', { chat })\n this.doStartFetching()\n }\n },\n doStartFetching () {\n this.$store.dispatch('startFetchingCurrentChat', {\n fetcher: () => promiseInterval(() => this.fetchChat({ fetchLatest: true }), 5000)\n })\n this.fetchChat({ isFirstFetch: true })\n },\n handleAttachmentPosting () {\n this.$nextTick(() => {\n this.handleResize()\n // When the posting form size changes because of a media attachment, we need an extra resize\n // to account for the potential delay in the DOM update.\n this.scrollDown({ forceRead: true })\n })\n },\n sendMessage ({ status, media, idempotencyKey }) {\n const params = {\n id: this.currentChat.id,\n content: status,\n idempotencyKey\n }\n\n if (media[0]) {\n params.mediaId = media[0].id\n }\n\n const fakeMessage = buildFakeMessage({\n attachments: media,\n chatId: this.currentChat.id,\n content: status,\n userId: this.currentUser.id,\n idempotencyKey\n })\n\n this.$store.dispatch('addChatMessages', {\n chatId: this.currentChat.id,\n messages: [fakeMessage]\n }).then(() => {\n this.handleAttachmentPosting()\n })\n\n return this.doSendMessage({ params, fakeMessage, retriesLeft: MAX_RETRIES })\n },\n doSendMessage ({ params, fakeMessage, retriesLeft = MAX_RETRIES }) {\n if (retriesLeft <= 0) return\n\n this.backendInteractor.sendChatMessage(params)\n .then(data => {\n this.$store.dispatch('addChatMessages', {\n chatId: this.currentChat.id,\n updateMaxId: false,\n messages: [{ ...data, fakeId: fakeMessage.id }]\n })\n\n return data\n })\n .catch(error => {\n console.error('Error sending message', error)\n this.$store.dispatch('handleMessageError', {\n chatId: this.currentChat.id,\n fakeId: fakeMessage.id,\n isRetry: retriesLeft !== MAX_RETRIES\n })\n if ((error.statusCode >= 500 && error.statusCode < 600) || error.message === 'Failed to fetch') {\n this.messageRetriers[fakeMessage.id] = setTimeout(() => {\n this.doSendMessage({ params, fakeMessage, retriesLeft: retriesLeft - 1 })\n }, 1000 * (2 ** (MAX_RETRIES - retriesLeft)))\n }\n return {}\n })\n\n return Promise.resolve(fakeMessage)\n },\n goBack () {\n this.$router.push({ name: 'chats', params: { username: this.currentUser.screen_name } })\n }\n }\n}\n\nexport default Chat\n","import { render } from \"./chat.vue?vue&type=template&id=796d1749\"\nimport script from \"./chat.js?vue&type=script&lang=js\"\nexport * from \"./chat.js?vue&type=script&lang=js\"\n\nimport \"./chat.vue?vue&type=style&index=0&id=796d1749&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div>\n <div\n v-if=\"user\"\n class=\"user-profile panel panel-default\"\n >\n <UserCard\n :user-id=\"userId\"\n :switcher=\"true\"\n :selected=\"timeline.viewing\"\n avatar-action=\"zoom\"\n rounded=\"top\"\n :has-note-editor=\"true\"\n />\n <span\n v-if=\"!!user.birthday\"\n class=\"user-birthday\"\n >\n <FAIcon\n class=\"fa-old-padding\"\n icon=\"birthday-cake\"\n />\n {{ $t('user_card.birthday', { birthday: formattedBirthday }) }}\n </span>\n <div\n v-if=\"user.fields_html && user.fields_html.length > 0\"\n class=\"user-profile-fields\"\n >\n <dl\n v-for=\"(field, index) in user.fields_html\"\n :key=\"index\"\n class=\"user-profile-field\"\n >\n <dt\n :title=\"user.fields_text[index].name\"\n class=\"user-profile-field-name\"\n >\n <RichContent\n :html=\"field.name\"\n :emoji=\"user.emoji\"\n />\n </dt>\n <dd\n :title=\"user.fields_text[index].value\"\n class=\"user-profile-field-value\"\n >\n <RichContent\n :html=\"field.value\"\n :emoji=\"user.emoji\"\n />\n </dd>\n </dl>\n </div>\n <tab-switcher\n :active-tab=\"tab\"\n :render-only-focused=\"true\"\n :on-switch=\"onTabSwitch\"\n >\n <Timeline\n key=\"statuses\"\n :label=\"$t('user_card.statuses')\"\n :count=\"user.statuses_count\"\n :embedded=\"true\"\n :title=\"$t('user_profile.timeline_title')\"\n :timeline=\"timeline\"\n timeline-name=\"user\"\n :user-id=\"userId\"\n :pinned-status-ids=\"user.pinnedStatusIds\"\n :in-profile=\"true\"\n :footer-slipgate=\"footerRef\"\n />\n <div\n v-if=\"followsTabVisible\"\n key=\"followees\"\n :label=\"$t('user_card.followees')\"\n :disabled=\"!user.friends_count\"\n >\n <FriendList :user-id=\"userId\">\n <template #item=\"{item}\">\n <FollowCard :user=\"item\" />\n </template>\n </FriendList>\n </div>\n <div\n v-if=\"followersTabVisible\"\n key=\"followers\"\n :label=\"$t('user_card.followers')\"\n :disabled=\"!user.followers_count\"\n >\n <FollowerList :user-id=\"userId\">\n <template #item=\"{item}\">\n <FollowCard\n :user=\"item\"\n :no-follows-you=\"isUs\"\n />\n </template>\n </FollowerList>\n </div>\n <Timeline\n key=\"media\"\n :label=\"$t('user_card.media')\"\n :disabled=\"!media.visibleStatuses.length\"\n :embedded=\"true\"\n :title=\"$t('user_card.media')\"\n timeline-name=\"media\"\n :timeline=\"media\"\n :user-id=\"userId\"\n :in-profile=\"true\"\n :footer-slipgate=\"footerRef\"\n />\n <Timeline\n v-if=\"isUs\"\n key=\"favorites\"\n :label=\"$t('user_card.favorites')\"\n :disabled=\"!favorites.visibleStatuses.length\"\n :embedded=\"true\"\n :title=\"$t('user_card.favorites')\"\n timeline-name=\"favorites\"\n :timeline=\"favorites\"\n :in-profile=\"true\"\n :footer-slipgate=\"footerRef\"\n />\n </tab-switcher>\n <div\n :ref=\"setFooterRef\"\n class=\"panel-footer\"\n />\n </div>\n <div\n v-else\n class=\"panel user-profile-placeholder\"\n >\n <div class=\"panel-heading\">\n <div class=\"title\">\n {{ $t('settings.profile_tab') }}\n </div>\n </div>\n <div class=\"panel-body\">\n <span v-if=\"error\">{{ error }}</span>\n <FAIcon\n v-else\n spin\n icon=\"circle-notch\"\n />\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./user_profile.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.user-profile {\n flex: 2;\n flex-basis: 500px;\n\n // No sticky header on user profile\n --currentPanelStack: 1;\n\n .user-birthday {\n margin: 0 0.75em 0.5em;\n }\n\n .user-profile-fields {\n margin: 0 0.5em;\n\n img {\n object-fit: contain;\n vertical-align: middle;\n max-width: 100%;\n max-height: 400px;\n\n &.emoji {\n width: 18px;\n height: 18px;\n }\n }\n\n .user-profile-field {\n display: flex;\n margin: 0.25em;\n border: 1px solid var(--border, $fallback--border);\n border-radius: $fallback--inputRadius;\n border-radius: var(--inputRadius, $fallback--inputRadius);\n\n .user-profile-field-name {\n flex: 0 1 30%;\n font-weight: 500;\n text-align: right;\n color: var(--lightText);\n min-width: 120px;\n border-right: 1px solid var(--border, $fallback--border);\n }\n\n .user-profile-field-value {\n flex: 1 1 70%;\n color: var(--text);\n margin: 0 0 0 0.25em;\n }\n\n .user-profile-field-name,\n .user-profile-field-value {\n line-height: 1.3;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n padding: 0.5em 1.5em;\n box-sizing: border-box;\n }\n }\n }\n\n .userlist-placeholder {\n display: flex;\n justify-content: center;\n align-items: middle;\n padding: 2em;\n }\n}\n\n.user-profile-placeholder {\n .panel-body {\n display: flex;\n justify-content: center;\n align-items: middle;\n padding: 7em;\n }\n}\n</style>\n","<template>\n <basic-user-card :user=\"user\">\n <div class=\"follow-card-content-container\">\n <span\n v-if=\"isMe || (!noFollowsYou && relationship.followed_by)\"\n class=\"faint\"\n >\n {{ isMe ? $t('user_card.its_you') : $t('user_card.follows_you') }}\n </span>\n <template v-if=\"!loggedIn\">\n <div\n v-if=\"!relationship.following\"\n class=\"follow-card-follow-button\"\n >\n <RemoteFollow :user=\"user\" />\n </div>\n </template>\n <template v-else-if=\"!isMe\">\n <FollowButton\n :relationship=\"relationship\"\n :label-following=\"$t('user_card.follow_unfollow')\"\n class=\"follow-card-follow-button\"\n :user=\"user\"\n />\n <RemoveFollowerButton\n v-if=\"noFollowsYou && relationship.followed_by\"\n :user=\"user\"\n :relationship=\"relationship\"\n class=\"follow-card-button\"\n />\n </template>\n </div>\n </basic-user-card>\n</template>\n\n<script src=\"./follow_card.js\"></script>\n\n<style lang=\"scss\">\n.follow-card {\n &-content-container {\n flex-shrink: 0;\n display: flex;\n flex-flow: row wrap;\n justify-content: space-between;\n line-height: 1.5em;\n }\n\n &-button {\n margin-top: 0.5em;\n padding: 0 1.5em;\n margin-left: 1em;\n }\n\n &-follow-button {\n margin-top: 0.5em;\n margin-left: auto;\n width: 10em;\n }\n}\n</style>\n","import ConfirmModal from '../confirm_modal/confirm_modal.vue'\n\nexport default {\n props: ['user', 'relationship'],\n data () {\n return {\n inProgress: false,\n showingConfirmRemoveFollower: false\n }\n },\n components: {\n ConfirmModal\n },\n computed: {\n label () {\n if (this.inProgress) {\n return this.$t('user_card.follow_progress')\n } else {\n return this.$t('user_card.remove_follower')\n }\n },\n shouldConfirmRemoveUserFromFollowers () {\n return this.$store.getters.mergedConfig.modalOnRemoveUserFromFollowers\n }\n },\n methods: {\n showConfirmRemoveUserFromFollowers () {\n this.showingConfirmRemoveFollower = true\n },\n hideConfirmRemoveUserFromFollowers () {\n this.showingConfirmRemoveFollower = false\n },\n onClick () {\n if (!this.shouldConfirmRemoveUserFromFollowers) {\n this.doRemoveUserFromFollowers()\n } else {\n this.showConfirmRemoveUserFromFollowers()\n }\n },\n doRemoveUserFromFollowers () {\n this.inProgress = true\n this.$store.dispatch('removeUserFromFollowers', this.relationship.id).then(() => {\n this.inProgress = false\n })\n this.hideConfirmRemoveUserFromFollowers()\n }\n }\n}\n","import { render } from \"./remove_follower_button.vue?vue&type=template&id=bc80064a\"\nimport script from \"./remove_follower_button.js?vue&type=script&lang=js\"\nexport * from \"./remove_follower_button.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <button\n class=\"btn button-default follow-button\"\n :class=\"{ toggled: inProgress }\"\n :disabled=\"inProgress\"\n :title=\"$t('user_card.remove_follower')\"\n @click=\"onClick\"\n >\n {{ label }}\n <teleport to=\"#modal\">\n <confirm-modal\n v-if=\"showingConfirmRemoveFollower\"\n :title=\"$t('user_card.remove_follower_confirm_title')\"\n :confirm-text=\"$t('user_card.remove_follower_confirm_accept_button')\"\n :cancel-text=\"$t('user_card.remove_follower_confirm_cancel_button')\"\n @accepted=\"doRemoveUserFromFollowers\"\n @cancelled=\"hideConfirmRemoveUserFromFollowers\"\n >\n <i18n-t\n keypath=\"user_card.remove_follower_confirm\"\n tag=\"span\"\n >\n <template #user>\n <span\n v-text=\"user.screen_name_ui\"\n />\n </template>\n </i18n-t>\n </confirm-modal>\n </teleport>\n </button>\n</template>\n\n<script src=\"./remove_follower_button.js\"></script>\n","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'\nimport RemoveFollowerButton from '../remove_follower_button/remove_follower_button.vue'\n\nconst FollowCard = {\n props: [\n 'user',\n 'noFollowsYou'\n ],\n components: {\n BasicUserCard,\n RemoteFollow,\n FollowButton,\n RemoveFollowerButton\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","import { render } from \"./follow_card.vue?vue&type=template&id=e6b6839c\"\nimport script from \"./follow_card.js?vue&type=script&lang=js\"\nexport * from \"./follow_card.js?vue&type=script&lang=js\"\n\nimport \"./follow_card.vue?vue&type=style&index=0&id=e6b6839c&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","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 TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'\nimport RichContent from 'src/components/rich_content/rich_content.jsx'\nimport List from '../list/list.vue'\nimport withLoadMore from '../../hocs/with_load_more/with_load_more'\nimport localeService from 'src/services/locale/locale.service.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faCircleNotch,\n faBirthdayCake\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCircleNotch,\n faBirthdayCake\n)\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 footerRef: null\n }\n },\n created () {\n const routeParams = this.$route.params\n this.load({ name: routeParams.name, id: routeParams.id })\n this.tab = get(this.$route, 'query.tab', defaultTabKey)\n },\n unmounted () {\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 formattedBirthday () {\n const browserLocale = localeService.internalToBrowserLocale(this.$i18n.locale)\n return this.user.birthday && new Date(Date.parse(this.user.birthday)).toLocaleDateString(browserLocale, { timeZone: 'UTC', day: 'numeric', month: 'long', year: 'numeric' })\n }\n },\n methods: {\n setFooterRef (el) {\n this.footerRef = el\n },\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 const maybeId = userNameOrId.id\n const maybeName = userNameOrId.name\n\n // Check if user data is already loaded in store\n const user = maybeId ? this.$store.getters.findUser(maybeId) : this.$store.getters.findUserByName(maybeName)\n if (user) {\n loadById(user.id)\n } else {\n (maybeId\n ? this.$store.dispatch('fetchUser', maybeId)\n : this.$store.dispatch('fetchUserByName', maybeName))\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 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 },\n watch: {\n '$route.params.id': function (newVal) {\n if (newVal) {\n this.switchUser({ id: newVal })\n }\n },\n '$route.params.name': function (newVal) {\n if (newVal) {\n this.switchUser({ name: 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 TabSwitcher,\n Conversation,\n RichContent\n }\n}\n\nexport default UserProfile\n","import { render } from \"./user_profile.vue?vue&type=template&id=3af4c11e\"\nimport script from \"./user_profile.js?vue&type=script&lang=js\"\nexport * from \"./user_profile.js?vue&type=script&lang=js\"\n\nimport \"./user_profile.vue?vue&type=style&index=0&id=3af4c11e&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"panel panel-default\">\n <div class=\"panel-heading\">\n <div class=\"title\">\n {{ $t('nav.search') }}\n </div>\n </div>\n <div class=\"search-input-container\">\n <input\n ref=\"searchInput\"\n v-model=\"searchTerm\"\n class=\"search-input\"\n :placeholder=\"$t('nav.search')\"\n @keyup.enter=\"newQuery(searchTerm)\"\n >\n <button\n class=\"btn button-default search-button\"\n type=\"submit\"\n @click=\"newQuery(searchTerm)\"\n >\n <FAIcon icon=\"search\" />\n </button>\n </div>\n <div\n v-if=\"loading && statusesOffset == 0\"\n class=\"text-center loading-icon\"\n >\n <FAIcon\n icon=\"circle-notch\"\n spin\n size=\"lg\"\n />\n </div>\n <div v-else-if=\"loaded\">\n <div class=\"search-nav-heading\">\n <tab-switcher\n ref=\"tabSwitcher\"\n :on-switch=\"onResultTabSwitch\"\n :active-tab=\"currenResultTab\"\n >\n <span\n key=\"statuses\"\n :label=\"$t('user_card.statuses') + resultCount('visibleStatuses')\"\n />\n <span\n key=\"people\"\n :label=\"$t('search.people') + resultCount('users')\"\n />\n <span\n key=\"hashtags\"\n :label=\"$t('search.hashtags') + resultCount('hashtags')\"\n />\n </tab-switcher>\n </div>\n </div>\n <div class=\"panel-body\">\n <div v-if=\"currenResultTab === 'statuses'\">\n <Status\n v-for=\"status in visibleStatuses\"\n :key=\"status.id\"\n :collapsable=\"false\"\n :expandable=\"false\"\n :compact=\"false\"\n class=\"search-result\"\n :statusoid=\"status\"\n :no-heading=\"false\"\n />\n <button\n v-if=\"!loading && loaded && lastStatusFetchCount > 0\"\n class=\"more-statuses-button button-unstyled -link -fullwidth\"\n @click.prevent=\"search(searchTerm, 'statuses')\"\n >\n <div class=\"new-status-notification text-center\">\n {{ $t('search.load_more') }}\n </div>\n </button>\n <div\n v-else-if=\"loading && statusesOffset > 0\"\n class=\"text-center loading-icon\"\n >\n <FAIcon\n icon=\"circle-notch\"\n spin\n size=\"lg\"\n />\n </div>\n <div\n v-if=\"(visibleStatuses.length === 0 || lastStatusFetchCount === 0) && !loading && loaded\"\n class=\"search-result-heading\"\n >\n <h4>\n {{ visibleStatuses.length === 0 ? $t('search.no_results') : $t('search.no_more_results') }}\n </h4>\n </div>\n </div>\n <div v-else-if=\"currenResultTab === 'people'\">\n <div\n v-if=\"users.length === 0 && !loading && loaded\"\n class=\"search-result-heading\"\n >\n <h4>{{ $t('search.no_results') }}</h4>\n </div>\n <FollowCard\n v-for=\"user in users\"\n :key=\"user.id\"\n :user=\"user\"\n class=\"list-item search-result\"\n />\n </div>\n <div v-else-if=\"currenResultTab === 'hashtags'\">\n <div\n v-if=\"hashtags.length === 0 && !loading && loaded\"\n class=\"search-result-heading\"\n >\n <h4>{{ $t('search.no_results') }}</h4>\n </div>\n <div\n v-for=\"hashtag in hashtags\"\n :key=\"hashtag.url\"\n class=\"status trend search-result\"\n >\n <div class=\"hashtag\">\n <router-link :to=\"{ name: 'tag-timeline', params: { tag: hashtag.name } }\">\n #{{ hashtag.name }}\n </router-link>\n <div v-if=\"lastHistoryRecord(hashtag)\">\n <span v-if=\"lastHistoryRecord(hashtag).accounts == 1\">\n {{ $t('search.person_talking', { count: lastHistoryRecord(hashtag).accounts }) }}\n </span>\n <span v-else>\n {{ $t('search.people_talking', { count: lastHistoryRecord(hashtag).accounts }) }}\n </span>\n </div>\n </div>\n <div\n v-if=\"lastHistoryRecord(hashtag)\"\n class=\"count\"\n >\n {{ lastHistoryRecord(hashtag).uses }}\n </div>\n </div>\n </div>\n </div>\n <div class=\"search-result-footer text-center panel-footer faint\" />\n </div>\n</template>\n\n<script src=\"./search.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.search-result-heading {\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n padding: 0.75rem;\n text-align: center;\n}\n\n@media all and (max-width: 800px) {\n .search-nav-heading {\n .tab-switcher .tabs .tab-wrapper {\n display: block;\n justify-content: center;\n flex: 1 1 auto;\n text-align: center;\n }\n }\n}\n\n.search-result {\n box-sizing: border-box;\n border-bottom: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n}\n\n.search-result-footer {\n border-width: 1px 0 0;\n border-style: solid;\n border-color: var(--border, $fallback--border);\n padding: 10px;\n background-color: $fallback--fg;\n background-color: var(--panel, $fallback--fg);\n}\n\n.search-input-container {\n padding: 0.8rem;\n display: flex;\n justify-content: center;\n\n .search-input {\n width: 100%;\n line-height: 1.125rem;\n font-size: 1rem;\n padding: 0.5rem;\n box-sizing: border-box;\n }\n\n .search-button {\n margin-left: 0.5em;\n }\n}\n\n.loading-icon {\n padding: 1em;\n}\n\n.trend {\n display: flex;\n align-items: center;\n\n .hashtag {\n flex: 1 1 auto;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .count {\n flex: 0 0 auto;\n width: 2rem;\n font-size: 1.5rem;\n line-height: 2.25rem;\n font-weight: 500;\n text-align: center;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n}\n\n.more-statuses-button {\n height: 3.5em;\n line-height: 3.5em;\n}\n\n</style>\n","import FollowCard from '../follow_card/follow_card.vue'\nimport Conversation from '../conversation/conversation.vue'\nimport Status from '../status/status.vue'\nimport TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'\nimport map from 'lodash/map'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faCircleNotch,\n faSearch\n} from '@fortawesome/free-solid-svg-icons'\nimport { uniqBy } from 'lodash'\n\nlibrary.add(\n faCircleNotch,\n faSearch\n)\n\nconst Search = {\n components: {\n FollowCard,\n Conversation,\n Status,\n TabSwitcher\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 statusesOffset: 0,\n lastStatusFetchCount: 0,\n lastQuery: ''\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, searchType = null) {\n if (!query) {\n this.loading = false\n return\n }\n\n this.loading = true\n this.$refs.searchInput.blur()\n if (this.lastQuery !== query) {\n this.userIds = []\n this.hashtags = []\n this.statuses = []\n\n this.statusesOffset = 0\n this.lastStatusFetchCount = 0\n }\n\n this.$store.dispatch('search', { q: query, resolve: true, offset: this.statusesOffset, type: searchType })\n .then(data => {\n this.loading = false\n\n const oldLength = this.statuses.length\n\n // Always append to old results. If new results are empty, this doesn't change anything\n this.userIds = this.userIds.concat(map(data.accounts, 'id'))\n this.statuses = uniqBy(this.statuses.concat(data.statuses), 'id')\n this.hashtags = this.hashtags.concat(data.hashtags)\n\n this.currenResultTab = this.getActiveTab()\n this.loaded = true\n\n // Offset from whatever we already have\n this.statusesOffset = this.statuses.length\n // Because the amount of new statuses can actually be zero, compare to old lenght instead\n this.lastStatusFetchCount = this.statuses.length - oldLength\n this.lastQuery = query\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","import { render } from \"./search.vue?vue&type=template&id=29ec17bc\"\nimport script from \"./search.js?vue&type=script&lang=js\"\nexport * from \"./search.js?vue&type=script&lang=js\"\n\nimport \"./search.vue?vue&type=style&index=0&id=29ec17bc&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"settings panel panel-default\">\n <div class=\"panel-heading\">\n {{ $t('registration.registration') }}\n </div>\n <div class=\"panel-body\">\n <form\n class=\"registration-form\"\n @submit.prevent=\"submit(user)\"\n >\n <div class=\"container\">\n <div class=\"text-fields\">\n <div\n class=\"form-group\"\n :class=\"{ 'form-group--error': v$.user.username.$error }\"\n >\n <label\n class=\"form--label\"\n for=\"sign-up-username\"\n >{{ $t('login.username') }}</label>\n <input\n id=\"sign-up-username\"\n v-model.trim=\"v$.user.username.$model\"\n :disabled=\"isPending\"\n class=\"form-control\"\n :aria-required=\"true\"\n :placeholder=\"$t('registration.username_placeholder')\"\n >\n </div>\n <div\n v-if=\"v$.user.username.$dirty\"\n class=\"form-error\"\n >\n <ul>\n <li v-if=\"!v$.user.username.required\">\n <span>{{ $t('registration.validations.username_required') }}</span>\n </li>\n </ul>\n </div>\n\n <div\n class=\"form-group\"\n :class=\"{ 'form-group--error': v$.user.fullname.$error }\"\n >\n <label\n class=\"form--label\"\n for=\"sign-up-fullname\"\n >{{ $t('registration.fullname') }}</label>\n <input\n id=\"sign-up-fullname\"\n v-model.trim=\"v$.user.fullname.$model\"\n :disabled=\"isPending\"\n class=\"form-control\"\n :aria-required=\"true\"\n :placeholder=\"$t('registration.fullname_placeholder')\"\n >\n </div>\n <div\n v-if=\"v$.user.fullname.$dirty\"\n class=\"form-error\"\n >\n <ul>\n <li v-if=\"!v$.user.fullname.required\">\n <span>{{ $t('registration.validations.fullname_required') }}</span>\n </li>\n </ul>\n </div>\n\n <div\n class=\"form-group\"\n :class=\"{ 'form-group--error': v$.user.email.$error }\"\n >\n <label\n class=\"form--label\"\n for=\"email\"\n >{{ accountActivationRequired ? $t('registration.email') : $t('registration.email_optional') }}</label>\n <input\n id=\"email\"\n v-model=\"v$.user.email.$model\"\n :disabled=\"isPending\"\n class=\"form-control\"\n type=\"email\"\n :aria-required=\"accountActivationRequired\"\n >\n </div>\n <div\n v-if=\"v$.user.email.$dirty\"\n class=\"form-error\"\n >\n <ul>\n <li v-if=\"!v$.user.email.required\">\n <span>{{ $t('registration.validations.email_required') }}</span>\n </li>\n </ul>\n </div>\n\n <div class=\"form-group\">\n <label\n class=\"form--label\"\n for=\"bio\"\n >{{ $t('registration.bio_optional') }}</label>\n <textarea\n id=\"bio\"\n v-model=\"user.bio\"\n :disabled=\"isPending\"\n class=\"form-control\"\n :placeholder=\"bioPlaceholder\"\n />\n </div>\n\n <div\n class=\"form-group\"\n :class=\"{ 'form-group--error': v$.user.password.$error }\"\n >\n <label\n class=\"form--label\"\n for=\"sign-up-password\"\n >{{ $t('login.password') }}</label>\n <input\n id=\"sign-up-password\"\n v-model=\"user.password\"\n :disabled=\"isPending\"\n class=\"form-control\"\n type=\"password\"\n :aria-required=\"true\"\n >\n </div>\n <div\n v-if=\"v$.user.password.$dirty\"\n class=\"form-error\"\n >\n <ul>\n <li v-if=\"!v$.user.password.required\">\n <span>{{ $t('registration.validations.password_required') }}</span>\n </li>\n </ul>\n </div>\n\n <div\n class=\"form-group\"\n :class=\"{ 'form-group--error': v$.user.confirm.$error }\"\n >\n <label\n class=\"form--label\"\n for=\"sign-up-password-confirmation\"\n >{{ $t('registration.password_confirm') }}</label>\n <input\n id=\"sign-up-password-confirmation\"\n v-model=\"user.confirm\"\n :disabled=\"isPending\"\n class=\"form-control\"\n type=\"password\"\n :aria-required=\"true\"\n >\n </div>\n <div\n v-if=\"v$.user.confirm.$dirty\"\n class=\"form-error\"\n >\n <ul>\n <li v-if=\"v$.user.confirm.required.$invalid\">\n <span>{{ $t('registration.validations.password_confirmation_required') }}</span>\n </li>\n <li v-if=\"v$.user.confirm.sameAs.$invalid\">\n <span>{{ $t('registration.validations.password_confirmation_match') }}</span>\n </li>\n </ul>\n </div>\n\n <div\n class=\"form-group\"\n :class=\"{ 'form-group--error': v$.user.birthday.$error }\"\n >\n <label\n class=\"form--label\"\n for=\"sign-up-birthday\"\n >\n {{ birthdayRequired ? $t('registration.birthday') : $t('registration.birthday_optional') }}\n </label>\n <input\n id=\"sign-up-birthday\"\n v-model=\"user.birthday\"\n :disabled=\"isPending\"\n class=\"form-control\"\n type=\"date\"\n :max=\"birthdayRequired ? birthdayMinAttr : undefined\"\n :aria-required=\"birthdayRequired\"\n >\n </div>\n <div\n v-if=\"v$.user.birthday.$dirty\"\n class=\"form-error\"\n >\n <ul>\n <li v-if=\"v$.user.birthday.required.$invalid\">\n <span>{{ $t('registration.validations.birthday_required') }}</span>\n </li>\n <li v-if=\"v$.user.birthday.maxValue.$invalid\">\n <span>{{ $tc('registration.validations.birthday_min_age', { date: birthdayMinFormatted }) }}</span>\n </li>\n </ul>\n </div>\n\n <div\n class=\"form-group\"\n :class=\"{ 'form-group--error': v$.user.language.$error }\"\n >\n <interface-language-switcher\n for=\"email-language\"\n :prompt-text=\"$t('registration.email_language')\"\n :language=\"v$.user.language.$model\"\n :set-language=\"val => v$.user.language.$model = val\"\n @click.stop.prevent\n />\n </div>\n\n <div\n v-if=\"accountApprovalRequired\"\n class=\"form-group\"\n >\n <label\n class=\"form--label\"\n for=\"reason\"\n >{{ $t('registration.reason') }}</label>\n <textarea\n id=\"reason\"\n v-model=\"user.reason\"\n :disabled=\"isPending\"\n class=\"form-control\"\n :placeholder=\"reasonPlaceholder\"\n />\n </div>\n\n <div\n v-if=\"captcha.type != 'none'\"\n id=\"captcha-group\"\n class=\"form-group\"\n >\n <label\n class=\"form--label\"\n for=\"captcha-label\"\n >{{ $t('registration.captcha') }}</label>\n\n <template v-if=\"['kocaptcha', 'native'].includes(captcha.type)\">\n <img\n :src=\"captcha.url\"\n @click=\"setCaptcha\"\n >\n\n <sub>{{ $t('registration.new_captcha') }}</sub>\n\n <input\n id=\"captcha-answer\"\n v-model=\"captcha.solution\"\n :disabled=\"isPending\"\n class=\"form-control\"\n type=\"text\"\n autocomplete=\"off\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n spellcheck=\"false\"\n >\n </template>\n </div>\n\n <div\n v-if=\"token\"\n class=\"form-group\"\n >\n <label for=\"token\">{{ $t('registration.token') }}</label>\n <input\n id=\"token\"\n v-model=\"token\"\n disabled=\"true\"\n class=\"form-control\"\n type=\"text\"\n >\n </div>\n <div class=\"form-group\">\n <button\n :disabled=\"isPending\"\n type=\"submit\"\n class=\"btn button-default\"\n >\n {{ $t('registration.register') }}\n </button>\n </div>\n </div>\n\n <!-- eslint-disable vue/no-v-html -->\n <div\n class=\"terms-of-service\"\n v-html=\"termsOfService\"\n />\n <!-- eslint-enable vue/no-v-html -->\n </div>\n <div\n v-if=\"serverValidationErrors.length\"\n class=\"form-group\"\n >\n <div class=\"alert error\">\n <span\n v-for=\"error in serverValidationErrors\"\n :key=\"error\"\n >{{ error }}</span>\n </div>\n </div>\n </form>\n </div>\n </div>\n</template>\n\n<script src=\"./registration.js\"></script>\n<style lang=\"scss\">\n@import \"../../variables\";\n$validations-cRed: #f04124;\n\n.registration-form {\n display: flex;\n flex-direction: column;\n margin: 0.6em;\n\n .container {\n display: flex;\n flex-direction: row;\n\n > * {\n min-width: 0;\n }\n }\n\n .terms-of-service {\n flex: 0 1 50%;\n margin: 0.8em;\n }\n\n .text-fields {\n margin-top: 0.6em;\n flex: 1 0;\n display: flex;\n flex-direction: column;\n }\n\n textarea {\n min-height: 100px;\n resize: vertical;\n }\n\n .form-group {\n display: flex;\n flex-direction: column;\n padding: 0.3em 0;\n line-height: 2;\n margin-bottom: 1em;\n }\n\n .form-group--error {\n animation-name: shakeError;\n animation-duration: 0.6s;\n animation-timing-function: ease-in-out;\n }\n\n .form-group--error .form--label {\n color: $validations-cRed;\n color: var(--cRed, $validations-cRed);\n }\n\n .form-error {\n margin-top: -0.7em;\n text-align: left;\n\n span {\n font-size: 0.85em;\n }\n }\n\n .form-error ul {\n list-style: none;\n padding: 0 0 0 5px;\n margin-top: 0;\n\n li::before {\n content: \"• \";\n }\n }\n\n form textarea {\n line-height: 16px;\n resize: vertical;\n }\n\n .captcha {\n max-width: 350px;\n margin-bottom: 0.4em;\n }\n\n .btn {\n margin-top: 0.6em;\n height: 2em;\n }\n\n .error {\n text-align: center;\n }\n}\n\n@media all and (max-width: 800px) {\n .registration-form .container {\n flex-direction: column-reverse;\n }\n}\n</style>\n","import useVuelidate from '@vuelidate/core'\nimport { required, requiredIf, sameAs } from '@vuelidate/validators'\nimport { mapActions, mapState } from 'vuex'\nimport InterfaceLanguageSwitcher from '../interface_language_switcher/interface_language_switcher.vue'\nimport localeService from '../../services/locale/locale.service.js'\nimport { DAY } from 'src/services/date_utils/date_utils.js'\n\nconst registration = {\n setup () { return { v$: useVuelidate() } },\n data: () => ({\n user: {\n email: '',\n fullname: '',\n username: '',\n password: '',\n confirm: '',\n birthday: '',\n reason: '',\n language: ['']\n },\n captcha: {}\n }),\n components: {\n InterfaceLanguageSwitcher\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 sameAs: sameAs(this.user.password)\n },\n birthday: {\n required: requiredIf(() => this.birthdayRequired),\n maxValue: value => {\n return !this.birthdayRequired || new Date(value).getTime() <= this.birthdayMin.getTime()\n }\n },\n reason: { required: requiredIf(() => this.accountApprovalRequired) },\n language: {}\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.replaceNewlines(this.$t('registration.bio_placeholder'))\n },\n reasonPlaceholder () {\n return this.replaceNewlines(this.$t('registration.reason_placeholder'))\n },\n birthdayMin () {\n const minAge = this.birthdayMinAge\n const today = new Date()\n today.setUTCMilliseconds(0)\n today.setUTCSeconds(0)\n today.setUTCMinutes(0)\n today.setUTCHours(0)\n const minDate = new Date()\n minDate.setTime(today.getTime() - minAge * DAY)\n return minDate\n },\n birthdayMinAttr () {\n return this.birthdayMin.toJSON().replace(/T.+$/, '')\n },\n birthdayMinFormatted () {\n const browserLocale = localeService.internalToBrowserLocale(this.$i18n.locale)\n return this.user.birthday && new Date(Date.parse(this.birthdayMin)).toLocaleDateString(browserLocale, { timeZone: 'UTC', day: 'numeric', month: 'long', year: 'numeric' })\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 accountApprovalRequired: (state) => state.instance.accountApprovalRequired,\n birthdayRequired: (state) => state.instance.birthdayRequired,\n birthdayMinAge: (state) => state.instance.birthdayMinAge\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 if (this.user.language) {\n this.user.language = localeService.internalToBackendLocaleMulti(this.user.language.filter(k => k))\n }\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 replaceNewlines (str) {\n return str.replace(/\\s*\\n\\s*/g, ' \\n')\n }\n }\n}\n\nexport default registration\n","import { render } from \"./registration.vue?vue&type=template&id=f9488ca2\"\nimport script from \"./registration.js?vue&type=script&lang=js\"\nexport * from \"./registration.js?vue&type=script&lang=js\"\n\nimport \"./registration.vue?vue&type=style&index=0&id=f9488ca2&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"settings panel panel-default\">\n <div class=\"panel-heading\">\n {{ $t('password_reset.password_reset') }}\n </div>\n <div class=\"panel-body\">\n <form\n class=\"password-reset-form\"\n @submit.prevent=\"submit\"\n >\n <div class=\"container\">\n <div v-if=\"!mailerEnabled\">\n <p v-if=\"passwordResetRequested\">\n {{ $t('password_reset.password_reset_required_but_mailer_is_disabled') }}\n </p>\n <p v-else>\n {{ $t('password_reset.password_reset_disabled') }}\n </p>\n </div>\n <div v-else-if=\"success || throttled\">\n <p v-if=\"success\">\n {{ $t('password_reset.check_email') }}\n </p>\n <div class=\"form-group text-center\">\n <router-link :to=\"{name: 'root'}\">\n {{ $t('password_reset.return_home') }}\n </router-link>\n </div>\n </div>\n <div v-else>\n <p\n v-if=\"passwordResetRequested\"\n class=\"password-reset-required error\"\n >\n {{ $t('password_reset.password_reset_required') }}\n </p>\n <p>\n {{ $t('password_reset.instruction') }}\n </p>\n <div class=\"form-group\">\n <input\n ref=\"email\"\n v-model=\"user.email\"\n :disabled=\"isPending\"\n :placeholder=\"$t('password_reset.placeholder')\"\n class=\"form-control\"\n type=\"input\"\n >\n </div>\n <div class=\"form-group\">\n <button\n :disabled=\"isPending\"\n type=\"submit\"\n class=\"btn button-default btn-block\"\n >\n {{ $t('settings.save') }}\n </button>\n </div>\n </div>\n <p\n v-if=\"error\"\n class=\"alert error notice-dismissible\"\n >\n <span>{{ error }}</span>\n <a\n class=\"fa-scale-110 fa-old-padding dismiss\"\n @click.prevent=\"dismissError()\"\n >\n <FAIcon icon=\"times\" />\n </a>\n </p>\n </div>\n </form>\n </div>\n </div>\n</template>\n\n<script src=\"./password_reset.js\"></script>\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.password-reset-form {\n display: flex;\n flex-direction: column;\n align-items: center;\n margin: 0.6em;\n\n .container {\n display: flex;\n flex: 1 0;\n flex-direction: column;\n margin-top: 0.6em;\n max-width: 18rem;\n\n > * {\n min-width: 0;\n }\n }\n\n .form-group {\n display: flex;\n flex-direction: column;\n margin-bottom: 1em;\n padding: 0.3em 0;\n line-height: 1.85em;\n }\n\n .error {\n text-align: center;\n animation-name: shakeError;\n animation-duration: 0.4s;\n animation-timing-function: ease-in-out;\n }\n\n .alert {\n padding: 0.5em;\n margin: 0.3em 0 1em;\n }\n\n .password-reset-required {\n background-color: var(--alertError, $fallback--alertError);\n padding: 10px 0;\n }\n\n .notice-dismissible {\n padding-right: 2rem;\n }\n\n .dismiss {\n cursor: pointer;\n }\n}\n\n</style>\n","import { mapState } from 'vuex'\nimport passwordResetApi from '../../services/new_api/password_reset.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faTimes\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faTimes\n)\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 === 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","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 { render } from \"./password_reset.vue?vue&type=template&id=0a88ea38\"\nimport script from \"./password_reset.js?vue&type=script&lang=js\"\nexport * from \"./password_reset.js?vue&type=script&lang=js\"\n\nimport \"./password_reset.vue?vue&type=style&index=0&id=0a88ea38&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"settings panel panel-default\">\n <div class=\"panel-heading\">\n <div class=\"title\">\n {{ $t('nav.friend_requests') }}\n </div>\n </div>\n <div class=\"panel-body\">\n <FollowRequestCard\n v-for=\"request in requests\"\n :key=\"request.id\"\n :user=\"request\"\n class=\"list-item\"\n />\n </div>\n </div>\n</template>\n\n<script src=\"./follow_requests.js\"></script>\n","<template>\n <basic-user-card :user=\"user\">\n <div class=\"follow-request-card-content-container\">\n <button\n class=\"btn button-default\"\n @click=\"approveUser\"\n >\n {{ $t('user_card.approve') }}\n </button>\n <button\n class=\"btn button-default\"\n @click=\"denyUser\"\n >\n {{ $t('user_card.deny') }}\n </button>\n </div>\n <teleport to=\"#modal\">\n <confirm-modal\n v-if=\"showingApproveConfirmDialog\"\n :title=\"$t('user_card.approve_confirm_title')\"\n :confirm-text=\"$t('user_card.approve_confirm_accept_button')\"\n :cancel-text=\"$t('user_card.approve_confirm_cancel_button')\"\n @accepted=\"doApprove\"\n @cancelled=\"hideApproveConfirmDialog\"\n >\n {{ $t('user_card.approve_confirm', { user: user.screen_name_ui }) }}\n </confirm-modal>\n <confirm-modal\n v-if=\"showingDenyConfirmDialog\"\n :title=\"$t('user_card.deny_confirm_title')\"\n :confirm-text=\"$t('user_card.deny_confirm_accept_button')\"\n :cancel-text=\"$t('user_card.deny_confirm_cancel_button')\"\n @accepted=\"doDeny\"\n @cancelled=\"hideDenyConfirmDialog\"\n >\n {{ $t('user_card.deny_confirm', { user: user.screen_name_ui }) }}\n </confirm-modal>\n </teleport>\n </basic-user-card>\n</template>\n\n<script src=\"./follow_request_card.js\"></script>\n\n<style lang=\"scss\">\n.follow-request-card-content-container {\n display: flex;\n flex-flow: row wrap;\n\n button {\n margin-top: 0.5em;\n margin-right: 0.5em;\n flex: 1 1;\n max-width: 12em;\n min-width: 8em;\n\n &:last-child {\n margin-right: 0;\n }\n }\n}\n</style>\n","import BasicUserCard from '../basic_user_card/basic_user_card.vue'\nimport ConfirmModal from '../confirm_modal/confirm_modal.vue'\nimport { notificationsFromStore } from '../../services/notification_utils/notification_utils.js'\n\nconst FollowRequestCard = {\n props: ['user'],\n components: {\n BasicUserCard,\n ConfirmModal\n },\n data () {\n return {\n showingApproveConfirmDialog: false,\n showingDenyConfirmDialog: false\n }\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 showApproveConfirmDialog () {\n this.showingApproveConfirmDialog = true\n },\n hideApproveConfirmDialog () {\n this.showingApproveConfirmDialog = false\n },\n showDenyConfirmDialog () {\n this.showingDenyConfirmDialog = true\n },\n hideDenyConfirmDialog () {\n this.showingDenyConfirmDialog = false\n },\n approveUser () {\n if (this.shouldConfirmApprove) {\n this.showApproveConfirmDialog()\n } else {\n this.doApprove()\n }\n },\n doApprove () {\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 this.hideApproveConfirmDialog()\n },\n denyUser () {\n if (this.shouldConfirmDeny) {\n this.showDenyConfirmDialog()\n } else {\n this.doDeny()\n }\n },\n doDeny () {\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 this.hideDenyConfirmDialog()\n }\n },\n computed: {\n mergedConfig () {\n return this.$store.getters.mergedConfig\n },\n shouldConfirmApprove () {\n return this.mergedConfig.modalOnApproveFollow\n },\n shouldConfirmDeny () {\n return this.mergedConfig.modalOnDenyFollow\n }\n }\n}\n\nexport default FollowRequestCard\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","import { render } from \"./follow_request_card.vue?vue&type=template&id=3bb26ea8\"\nimport script from \"./follow_request_card.js?vue&type=script&lang=js\"\nexport * from \"./follow_request_card.js?vue&type=script&lang=js\"\n\nimport \"./follow_request_card.vue?vue&type=style&index=0&id=3bb26ea8&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./follow_requests.vue?vue&type=template&id=62e19784\"\nimport script from \"./follow_requests.js?vue&type=script&lang=js\"\nexport * from \"./follow_requests.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","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","import { render } from \"./oauth_callback.vue?vue&type=template&id=f514124c\"\nimport script from \"./oauth_callback.js?vue&type=script&lang=js\"\nexport * from \"./oauth_callback.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <h1>...</h1>\n</template>\n\n<script src=\"./oauth_callback.js\"></script>\n","<template>\n <div class=\"panel panel-default\">\n <div class=\"panel-heading\">\n {{ $t('who_to_follow.who_to_follow') }}\n </div>\n <div class=\"panel-body\">\n <FollowCard\n v-for=\"user in users\"\n :key=\"user.id\"\n :user=\"user\"\n class=\"list-item\"\n />\n </div>\n </div>\n</template>\n\n<script src=\"./who_to_follow.js\"></script>\n","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 })\n .then((reply) => {\n this.showWhoToFollow(reply)\n })\n }\n }\n }\n}\n\nexport default WhoToFollow\n","import { render } from \"./who_to_follow.vue?vue&type=template&id=1d38a2c8\"\nimport script from \"./who_to_follow.js?vue&type=script&lang=js\"\nexport * from \"./who_to_follow.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"column-inner\">\n <instance-specific-panel v-if=\"showInstanceSpecificPanel\" />\n <staff-panel />\n <terms-of-service-panel />\n <MRFTransparencyPanel />\n <features-panel v-if=\"showFeaturesPanel\" />\n </div>\n</template>\n\n<script src=\"./about.js\"></script>\n","<template>\n <div>\n <div class=\"panel panel-default\">\n <div class=\"panel-body\">\n <!-- eslint-disable vue/no-v-html -->\n <div\n class=\"tos-content\"\n v-html=\"content\"\n />\n <!-- eslint-enable vue/no-v-html -->\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./terms_of_service_panel.js\"></script>\n\n<style lang=\"scss\">\n.tos-content {\n margin: 1em;\n}\n</style>\n","const TermsOfServicePanel = {\n computed: {\n content () {\n return this.$store.state.instance.tos\n }\n }\n}\n\nexport default TermsOfServicePanel\n","import { render } from \"./terms_of_service_panel.vue?vue&type=template&id=22763f84\"\nimport script from \"./terms_of_service_panel.js?vue&type=script&lang=js\"\nexport * from \"./terms_of_service_panel.js?vue&type=script&lang=js\"\n\nimport \"./terms_of_service_panel.vue?vue&type=style&index=0&id=22763f84&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"staff-panel\">\n <div class=\"panel panel-default base01-background\">\n <div class=\"panel-heading timeline-heading base02-background\">\n <div class=\"title\">\n {{ $t(\"about.staff\") }}\n </div>\n </div>\n <div class=\"panel-body\">\n <div\n v-for=\"group in groupedStaffAccounts\"\n :key=\"group.role\"\n class=\"staff-group\"\n >\n <h4>{{ $t('general.role.' + group.role) }}</h4>\n <basic-user-card\n v-for=\"user in group.users\"\n :key=\"user.screen_name\"\n :user=\"user\"\n />\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./staff_panel.js\"></script>\n\n<style lang=\"scss\">\n.staff-group {\n padding-left: 1em;\n padding-top: 1em;\n\n .basic-user-card {\n padding-left: 0;\n }\n}\n\n</style>\n","import map from 'lodash/map'\nimport groupBy from 'lodash/groupBy'\nimport { mapGetters, mapState } from 'vuex'\nimport BasicUserCard from '../basic_user_card/basic_user_card.vue'\n\nconst StaffPanel = {\n created () {\n const nicknames = this.$store.state.instance.staffAccounts\n nicknames.forEach(nickname => this.$store.dispatch('fetchUserIfMissing', nickname))\n },\n components: {\n BasicUserCard\n },\n computed: {\n groupedStaffAccounts () {\n const staffAccounts = map(this.staffAccounts, this.findUserByName).filter(_ => _)\n const groupedStaffAccounts = groupBy(staffAccounts, 'role')\n\n return [\n { role: 'admin', users: groupedStaffAccounts.admin },\n { role: 'moderator', users: groupedStaffAccounts.moderator }\n ].filter(group => group.users)\n },\n ...mapGetters([\n 'findUserByName'\n ]),\n ...mapState({\n staffAccounts: state => state.instance.staffAccounts\n })\n }\n}\n\nexport default StaffPanel\n","import { render } from \"./staff_panel.vue?vue&type=template&id=56c37220\"\nimport script from \"./staff_panel.js?vue&type=script&lang=js\"\nexport * from \"./staff_panel.js?vue&type=script&lang=js\"\n\nimport \"./staff_panel.vue?vue&type=style&index=0&id=56c37220&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n v-if=\"federationPolicy\"\n class=\"mrf-transparency-panel\"\n >\n <div class=\"panel panel-default base01-background\">\n <div class=\"panel-heading timeline-heading base02-background\">\n <div class=\"title\">\n {{ $t(\"about.mrf.federation\") }}\n </div>\n </div>\n <div class=\"panel-body\">\n <div class=\"mrf-section\">\n <h2>{{ $t(\"about.mrf.mrf_policies\") }}</h2>\n <p>{{ $t(\"about.mrf.mrf_policies_desc\") }}</p>\n\n <ul>\n <li\n v-for=\"policy in mrfPolicies\"\n :key=\"policy\"\n v-text=\"policy\"\n />\n </ul>\n\n <h2 v-if=\"hasInstanceSpecificPolicies\">\n {{ $t(\"about.mrf.simple.simple_policies\") }}\n </h2>\n\n <div v-if=\"acceptInstances.length\">\n <h4>{{ $t(\"about.mrf.simple.accept\") }}</h4>\n\n <p>{{ $t(\"about.mrf.simple.accept_desc\") }}</p>\n\n <table>\n <tr>\n <th>{{ $t(\"about.mrf.simple.instance\") }}</th>\n <th>{{ $t(\"about.mrf.simple.reason\") }}</th>\n </tr>\n <tr\n v-for=\"entry in acceptInstances\"\n :key=\"entry.instance + '_accept'\"\n >\n <td>{{ entry.instance }}</td>\n <td v-if=\"entry.reason === ''\">\n {{ $t(\"about.mrf.simple.not_applicable\") }}\n </td>\n <td v-else>\n {{ entry.reason }}\n </td>\n </tr>\n </table>\n </div>\n\n <div v-if=\"rejectInstances.length\">\n <h4>{{ $t(\"about.mrf.simple.reject\") }}</h4>\n\n <p>{{ $t(\"about.mrf.simple.reject_desc\") }}</p>\n\n <table>\n <tr>\n <th>{{ $t(\"about.mrf.simple.instance\") }}</th>\n <th>{{ $t(\"about.mrf.simple.reason\") }}</th>\n </tr>\n <tr\n v-for=\"entry in rejectInstances\"\n :key=\"entry.instance + '_reject'\"\n >\n <td>{{ entry.instance }}</td>\n <td v-if=\"entry.reason === ''\">\n {{ $t(\"about.mrf.simple.not_applicable\") }}\n </td>\n <td v-else>\n {{ entry.reason }}\n </td>\n </tr>\n </table>\n </div>\n\n <div v-if=\"quarantineInstances.length\">\n <h4>{{ $t(\"about.mrf.simple.quarantine\") }}</h4>\n\n <p>{{ $t(\"about.mrf.simple.quarantine_desc\") }}</p>\n\n <table>\n <tr>\n <th>{{ $t(\"about.mrf.simple.instance\") }}</th>\n <th>{{ $t(\"about.mrf.simple.reason\") }}</th>\n </tr>\n <tr\n v-for=\"entry in quarantineInstances\"\n :key=\"entry.instance + '_quarantine'\"\n >\n <td>{{ entry.instance }}</td>\n <td v-if=\"entry.reason === ''\">\n {{ $t(\"about.mrf.simple.not_applicable\") }}\n </td>\n <td v-else>\n {{ entry.reason }}\n </td>\n </tr>\n </table>\n </div>\n\n <div v-if=\"ftlRemovalInstances.length\">\n <h4>{{ $t(\"about.mrf.simple.ftl_removal\") }}</h4>\n\n <p>{{ $t(\"about.mrf.simple.ftl_removal_desc\") }}</p>\n\n <table>\n <tr>\n <th>{{ $t(\"about.mrf.simple.instance\") }}</th>\n <th>{{ $t(\"about.mrf.simple.reason\") }}</th>\n </tr>\n <tr\n v-for=\"entry in ftlRemovalInstances\"\n :key=\"entry.instance + '_ftl_removal'\"\n >\n <td>{{ entry.instance }}</td>\n <td v-if=\"entry.reason === ''\">\n {{ $t(\"about.mrf.simple.not_applicable\") }}\n </td>\n <td v-else>\n {{ entry.reason }}\n </td>\n </tr>\n </table>\n </div>\n\n <div v-if=\"mediaNsfwInstances.length\">\n <h4>{{ $t(\"about.mrf.simple.media_nsfw\") }}</h4>\n\n <p>{{ $t(\"about.mrf.simple.media_nsfw_desc\") }}</p>\n\n <table>\n <tr>\n <th>{{ $t(\"about.mrf.simple.instance\") }}</th>\n <th>{{ $t(\"about.mrf.simple.reason\") }}</th>\n </tr>\n <tr\n v-for=\"entry in mediaNsfwInstances\"\n :key=\"entry.instance + '_media_nsfw'\"\n >\n <td>{{ entry.instance }}</td>\n <td v-if=\"entry.reason === ''\">\n {{ $t(\"about.mrf.simple.not_applicable\") }}\n </td>\n <td v-else>\n {{ entry.reason }}\n </td>\n </tr>\n </table>\n </div>\n\n <div v-if=\"mediaRemovalInstances.length\">\n <h4>{{ $t(\"about.mrf.simple.media_removal\") }}</h4>\n\n <p>{{ $t(\"about.mrf.simple.media_removal_desc\") }}</p>\n\n <table>\n <tr>\n <th>{{ $t(\"about.mrf.simple.instance\") }}</th>\n <th>{{ $t(\"about.mrf.simple.reason\") }}</th>\n </tr>\n <tr\n v-for=\"entry in mediaRemovalInstances\"\n :key=\"entry.instance + '_media_removal'\"\n >\n <td>{{ entry.instance }}</td>\n <td v-if=\"entry.reason === ''\">\n {{ $t(\"about.mrf.simple.not_applicable\") }}\n </td>\n <td v-else>\n {{ entry.reason }}\n </td>\n </tr>\n </table>\n </div>\n\n <h2 v-if=\"hasKeywordPolicies\">\n {{ $t(\"about.mrf.keyword.keyword_policies\") }}\n </h2>\n\n <div v-if=\"keywordsFtlRemoval.length\">\n <h4>{{ $t(\"about.mrf.keyword.ftl_removal\") }}</h4>\n\n <ul>\n <li\n v-for=\"keyword in keywordsFtlRemoval\"\n :key=\"keyword\"\n v-text=\"keyword\"\n />\n </ul>\n </div>\n\n <div v-if=\"keywordsReject.length\">\n <h4>{{ $t(\"about.mrf.keyword.reject\") }}</h4>\n\n <ul>\n <li\n v-for=\"keyword in keywordsReject\"\n :key=\"keyword\"\n v-text=\"keyword\"\n />\n </ul>\n </div>\n\n <div v-if=\"keywordsReplace.length\">\n <h4>{{ $t(\"about.mrf.keyword.replace\") }}</h4>\n\n <ul>\n <li\n v-for=\"keyword in keywordsReplace\"\n :key=\"keyword\"\n >\n {{ keyword.pattern }}\n {{ $t(\"about.mrf.keyword.is_replaced_by\") }}\n {{ keyword.replacement }}\n </li>\n </ul>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./mrf_transparency_panel.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n@import \"./mrf_transparency_panel\";\n</style>\n","import { mapState } from 'vuex'\nimport { get } from 'lodash'\n\n/**\n * This is for backwards compatibility. We originally didn't recieve\n * extra info like a reason why an instance was rejected/quarantined/etc.\n * Because we didn't want to break backwards compatibility it was decided\n * to add an extra \"info\" key.\n */\nconst toInstanceReasonObject = (instances, info, key) => {\n return instances.map(instance => {\n if (info[key] && info[key][instance] && info[key][instance].reason) {\n return { instance, reason: info[key][instance].reason }\n }\n return { instance, reason: '' }\n })\n}\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 => toInstanceReasonObject(\n get(state, 'instance.federationPolicy.quarantined_instances', []),\n get(state, 'instance.federationPolicy.quarantined_instances_info', []),\n 'quarantined_instances'\n ),\n acceptInstances: state => toInstanceReasonObject(\n get(state, 'instance.federationPolicy.mrf_simple.accept', []),\n get(state, 'instance.federationPolicy.mrf_simple_info', []),\n 'accept'\n ),\n rejectInstances: state => toInstanceReasonObject(\n get(state, 'instance.federationPolicy.mrf_simple.reject', []),\n get(state, 'instance.federationPolicy.mrf_simple_info', []),\n 'reject'\n ),\n ftlRemovalInstances: state => toInstanceReasonObject(\n get(state, 'instance.federationPolicy.mrf_simple.federated_timeline_removal', []),\n get(state, 'instance.federationPolicy.mrf_simple_info', []),\n 'federated_timeline_removal'\n ),\n mediaNsfwInstances: state => toInstanceReasonObject(\n get(state, 'instance.federationPolicy.mrf_simple.media_nsfw', []),\n get(state, 'instance.federationPolicy.mrf_simple_info', []),\n 'media_nsfw'\n ),\n mediaRemovalInstances: state => toInstanceReasonObject(\n get(state, 'instance.federationPolicy.mrf_simple.media_removal', []),\n get(state, 'instance.federationPolicy.mrf_simple_info', []),\n 'media_removal'\n ),\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","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","import { render } from \"./mrf_transparency_panel.vue?vue&type=template&id=67a05c5c\"\nimport script from \"./mrf_transparency_panel.js?vue&type=script&lang=js\"\nexport * from \"./mrf_transparency_panel.js?vue&type=script&lang=js\"\n\nimport \"./mrf_transparency_panel.vue?vue&type=style&index=0&id=67a05c5c&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./about.vue?vue&type=template&id=4d996902\"\nimport script from \"./about.js?vue&type=script&lang=js\"\nexport * from \"./about.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"panel panel-default\">\n <div class=\"panel-heading\">\n {{ $t('remote_user_resolver.remote_user_resolver') }}\n </div>\n <div class=\"panel-body\">\n <p>\n {{ $t('remote_user_resolver.searching_for') }} @{{ $route.params.username }}@{{ $route.params.hostname }}\n </p>\n <p v-if=\"error\">\n {{ $t('remote_user_resolver.error') }}\n </p>\n </div>\n </div>\n</template>\n\n<script src=\"./remote_user_resolver.js\"></script>\n","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","import { render } from \"./remote_user_resolver.vue?vue&type=template&id=147deeb8\"\nimport script from \"./remote_user_resolver.js?vue&type=script&lang=js\"\nexport * from \"./remote_user_resolver.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"Lists panel panel-default\">\n <div class=\"panel-heading\">\n <div class=\"title\">\n {{ $t('lists.lists') }}\n </div>\n <router-link\n :to=\"{ name: 'lists-new' }\"\n class=\"button-default btn new-list-button\"\n >\n {{ $t(\"lists.new\") }}\n </router-link>\n </div>\n <div class=\"panel-body\">\n <ListsCard\n v-for=\"list in lists.slice().reverse()\"\n :key=\"list\"\n :list=\"list\"\n class=\"list-item\"\n />\n </div>\n </div>\n</template>\n\n<script src=\"./lists.js\"></script>\n\n<style lang=\"scss\">\n.Lists {\n .new-list-button {\n padding: 0 0.5em;\n }\n}\n</style>\n","<template>\n <div class=\"list-card\">\n <router-link\n :to=\"{ name: 'lists-timeline', params: { id: list.id } }\"\n class=\"list-name\"\n >\n {{ list.title }}\n </router-link>\n <router-link\n :to=\"{ name: 'lists-edit', params: { id: list.id } }\"\n class=\"button-list-edit\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"ellipsis-h\"\n />\n </router-link>\n </div>\n</template>\n\n<script src=\"./lists_card.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.list-card {\n display: flex;\n}\n\n.list-name {\n flex-grow: 1;\n}\n\n.list-name,\n.button-list-edit {\n margin: 0;\n padding: 1em;\n color: $fallback--link;\n color: var(--link, $fallback--link);\n\n &:hover {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n color: $fallback--link;\n color: var(--selectedMenuText, $fallback--link);\n\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n }\n}\n</style>\n","import { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faEllipsisH\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faEllipsisH\n)\n\nconst ListsCard = {\n props: [\n 'list'\n ]\n}\n\nexport default ListsCard\n","import ListsCard from '../lists_card/lists_card.vue'\n\nconst Lists = {\n data () {\n return {\n isNew: false\n }\n },\n components: {\n ListsCard\n },\n computed: {\n lists () {\n return this.$store.state.lists.allLists\n }\n },\n methods: {\n cancelNewList () {\n this.isNew = false\n },\n newList () {\n this.isNew = true\n }\n }\n}\n\nexport default Lists\n","import { render } from \"./lists_card.vue?vue&type=template&id=cb7330aa\"\nimport script from \"./lists_card.js?vue&type=script&lang=js\"\nexport * from \"./lists_card.js?vue&type=script&lang=js\"\n\nimport \"./lists_card.vue?vue&type=style&index=0&id=cb7330aa&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./lists.vue?vue&type=template&id=273aca3d\"\nimport script from \"./lists.js?vue&type=script&lang=js\"\nexport * from \"./lists.js?vue&type=script&lang=js\"\n\nimport \"./lists.vue?vue&type=style&index=0&id=273aca3d&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import Timeline from '../timeline/timeline.vue'\nconst ListsTimeline = {\n data () {\n return {\n listId: null\n }\n },\n components: {\n Timeline\n },\n computed: {\n timeline () { return this.$store.state.statuses.timelines.list }\n },\n watch: {\n $route: function (route) {\n if (route.name === 'lists-timeline' && route.params.id !== this.listId) {\n this.listId = route.params.id\n this.$store.dispatch('stopFetchingTimeline', 'list')\n this.$store.commit('clearTimeline', { timeline: 'list' })\n this.$store.dispatch('fetchList', { listId: this.listId })\n this.$store.dispatch('startFetchingTimeline', { timeline: 'list', listId: this.listId })\n }\n }\n },\n created () {\n this.listId = this.$route.params.id\n this.$store.dispatch('fetchList', { listId: this.listId })\n this.$store.dispatch('startFetchingTimeline', { timeline: 'list', listId: this.listId })\n },\n unmounted () {\n this.$store.dispatch('stopFetchingTimeline', 'list')\n this.$store.commit('clearTimeline', { timeline: 'list' })\n }\n}\n\nexport default ListsTimeline\n","import { render } from \"./lists_timeline.vue?vue&type=template&id=464584d8\"\nimport script from \"./lists_timeline.js?vue&type=script&lang=js\"\nexport * from \"./lists_timeline.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Timeline\n title=\"list.name\"\n :timeline=\"timeline\"\n :list-id=\"listId\"\n timeline-name=\"list\"\n />\n</template>\n\n<script src=\"./lists_timeline.js\"></script>\n","<template>\n <div class=\"panel-default panel ListEdit\">\n <div\n ref=\"header\"\n class=\"panel-heading list-edit-heading\"\n >\n <button\n class=\"button-unstyled go-back-button\"\n @click=\"$router.back\"\n >\n <FAIcon\n size=\"lg\"\n icon=\"chevron-left\"\n />\n </button>\n <div class=\"title\">\n <i18n-t\n v-if=\"id\"\n keypath=\"lists.editing_list\"\n >\n <template #listTitle>\n {{ title }}\n </template>\n </i18n-t>\n <i18n-t\n v-else\n keypath=\"lists.creating_list\"\n />\n </div>\n </div>\n <div class=\"panel-body\">\n <div class=\"input-wrap\">\n <label for=\"list-edit-title\">{{ $t('lists.title') }}</label>\n {{ ' ' }}\n <input\n id=\"list-edit-title\"\n ref=\"title\"\n v-model=\"titleDraft\"\n >\n <button\n v-if=\"id\"\n class=\"btn button-default follow-button\"\n @click=\"updateListTitle\"\n >\n {{ $t('lists.update_title') }}\n </button>\n </div>\n <tab-switcher\n class=\"list-member-management\"\n :scrollable-tabs=\"true\"\n >\n <div\n v-if=\"id || addedUserIds.size > 0\"\n :label=\"$t('lists.manage_members')\"\n class=\"members-list\"\n >\n <div class=\"users-list\">\n <div\n v-for=\"user in membersUsers\"\n :key=\"user.id\"\n class=\"member\"\n >\n <BasicUserCard\n :user=\"user\"\n >\n <button\n class=\"btn button-default follow-button\"\n @click=\"toggleRemoveMember(user)\"\n >\n {{ isRemoved(user) ? $t('general.undo') : $t('lists.remove_from_list') }}\n </button>\n </BasicUserCard>\n </div>\n </div>\n </div>\n\n <div\n class=\"search-list\"\n :label=\"$t('lists.add_members')\"\n >\n <ListsUserSearch\n @results=\"onSearchResults\"\n @loading=\"onSearchLoading\"\n @loadingDone=\"onSearchLoadingDone\"\n />\n <div\n v-if=\"searchLoading\"\n class=\"loading\"\n >\n <PanelLoading />\n </div>\n <div\n v-else\n class=\"users-list\"\n >\n <div\n v-for=\"user in searchUsers\"\n :key=\"user.id\"\n class=\"member\"\n >\n <BasicUserCard\n :user=\"user\"\n >\n <span\n v-if=\"membersUserIds.includes(user.id)\"\n >\n {{ $t('lists.is_in_list') }}\n </span>\n <button\n v-if=\"!membersUserIds.includes(user.id)\"\n class=\"btn button-default follow-button\"\n @click=\"toggleAddFromSearch(user)\"\n >\n {{ isAdded(user) ? $t('general.undo') : $t('lists.add_to_list') }}\n </button>\n <button\n v-else\n class=\"btn button-default follow-button\"\n @click=\"toggleRemoveMember(user)\"\n >\n {{ isRemoved(user) ? $t('general.undo') : $t('lists.remove_from_list') }}\n </button>\n </BasicUserCard>\n </div>\n </div>\n </div>\n </tab-switcher>\n </div>\n <div class=\"panel-footer\">\n <span class=\"spacer\" />\n <button\n v-if=\"!id\"\n class=\"btn button-default footer-button\"\n @click=\"createList\"\n >\n {{ $t('lists.create') }}\n </button>\n <button\n v-else-if=\"!reallyDelete\"\n class=\"btn button-default footer-button\"\n @click=\"reallyDelete = true\"\n >\n {{ $t('lists.delete') }}\n </button>\n <template v-else>\n {{ $t('lists.really_delete') }}\n <button\n class=\"btn button-default footer-button\"\n @click=\"deleteList\"\n >\n {{ $t('general.yes') }}\n </button>\n <button\n class=\"btn button-default footer-button\"\n @click=\"reallyDelete = false\"\n >\n {{ $t('general.no') }}\n </button>\n </template>\n </div>\n </div>\n</template>\n\n<script src=\"./lists_edit.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.ListEdit {\n --panel-body-padding: 0.5em;\n\n height: calc(100vh - var(--navbar-height));\n overflow: hidden;\n display: flex;\n flex-direction: column;\n\n .list-edit-heading {\n grid-template-columns: auto minmax(50%, 1fr);\n }\n\n .panel-body {\n display: flex;\n flex: 1;\n flex-direction: column;\n overflow: hidden;\n }\n\n .list-member-management {\n flex: 1 0 auto;\n }\n\n .search-icon {\n margin-right: 0.3em;\n }\n\n .users-list {\n padding-bottom: 0.7rem;\n overflow-y: auto;\n }\n\n & .search-list,\n & .members-list {\n overflow: hidden;\n flex-direction: column;\n min-height: 0;\n }\n\n .go-back-button {\n text-align: center;\n line-height: 1;\n height: 100%;\n align-self: start;\n width: var(--__panel-heading-height-inner);\n }\n\n .btn {\n margin: 0 0.5em;\n }\n\n .panel-footer {\n grid-template-columns: minmax(10%, 1fr);\n\n .footer-button {\n min-width: 9em;\n }\n }\n}\n</style>\n","<template>\n <div class=\"ListsUserSearch\">\n <div class=\"input-wrap\">\n <div class=\"input-search\">\n <FAIcon\n class=\"search-icon fa-scale-110 fa-old-padding\"\n icon=\"search\"\n />\n </div>\n <input\n ref=\"search\"\n v-model=\"query\"\n :placeholder=\"$t('lists.search')\"\n @input=\"onInput\"\n >\n </div>\n <div class=\"input-wrap\">\n <Checkbox\n v-model=\"followingOnly\"\n @change=\"onInput\"\n >\n {{ $t('lists.following_only') }}\n </Checkbox>\n </div>\n </div>\n</template>\n\n<script src=\"./lists_user_search.js\"></script>\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.ListsUserSearch {\n .input-wrap {\n display: flex;\n margin: 0.7em 0.5em;\n\n input {\n width: 100%;\n }\n }\n\n .search-icon {\n margin-right: 0.3em;\n }\n}\n\n</style>\n","import { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faSearch,\n faChevronLeft\n} from '@fortawesome/free-solid-svg-icons'\nimport { debounce } from 'lodash'\nimport Checkbox from '../checkbox/checkbox.vue'\n\nlibrary.add(\n faSearch,\n faChevronLeft\n)\n\nconst ListsUserSearch = {\n components: {\n Checkbox\n },\n emits: ['loading', 'loadingDone', 'results'],\n data () {\n return {\n loading: false,\n query: '',\n followingOnly: true\n }\n },\n methods: {\n onInput: debounce(function () {\n this.search(this.query)\n }, 2000),\n search (query) {\n if (!query) {\n this.loading = false\n return\n }\n\n this.loading = true\n this.$emit('loading')\n this.userIds = []\n this.$store.dispatch('search', { q: query, resolve: true, type: 'accounts', following: this.followingOnly })\n .then(data => {\n this.$emit('results', data.accounts.map(a => a.id))\n })\n .finally(() => {\n this.loading = false\n this.$emit('loadingDone')\n })\n }\n }\n}\n\nexport default ListsUserSearch\n","import { render } from \"./lists_user_search.vue?vue&type=template&id=f65a8ae4\"\nimport script from \"./lists_user_search.js?vue&type=script&lang=js\"\nexport * from \"./lists_user_search.js?vue&type=script&lang=js\"\n\nimport \"./lists_user_search.vue?vue&type=style&index=0&id=f65a8ae4&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { mapState, mapGetters } from 'vuex'\nimport BasicUserCard from '../basic_user_card/basic_user_card.vue'\nimport ListsUserSearch from '../lists_user_search/lists_user_search.vue'\nimport PanelLoading from 'src/components/panel_loading/panel_loading.vue'\nimport UserAvatar from '../user_avatar/user_avatar.vue'\nimport TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faSearch,\n faChevronLeft\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faSearch,\n faChevronLeft\n)\n\nconst ListsNew = {\n components: {\n BasicUserCard,\n UserAvatar,\n ListsUserSearch,\n TabSwitcher,\n PanelLoading\n },\n data () {\n return {\n title: '',\n titleDraft: '',\n membersUserIds: [],\n removedUserIds: new Set([]), // users we added for members, to undo\n searchUserIds: [],\n addedUserIds: new Set([]), // users we added from search, to undo\n searchLoading: false,\n reallyDelete: false\n }\n },\n created () {\n if (!this.id) return\n this.$store.dispatch('fetchList', { listId: this.id })\n .then(() => {\n this.title = this.findListTitle(this.id)\n this.titleDraft = this.title\n })\n this.$store.dispatch('fetchListAccounts', { listId: this.id })\n .then(() => {\n this.membersUserIds = this.findListAccounts(this.id)\n this.membersUserIds.forEach(userId => {\n this.$store.dispatch('fetchUserIfMissing', userId)\n })\n })\n },\n computed: {\n id () {\n return this.$route.params.id\n },\n membersUsers () {\n return [...this.membersUserIds, ...this.addedUserIds]\n .map(userId => this.findUser(userId)).filter(user => user)\n },\n searchUsers () {\n return this.searchUserIds.map(userId => this.findUser(userId)).filter(user => user)\n },\n ...mapState({\n currentUser: state => state.users.currentUser\n }),\n ...mapGetters(['findUser', 'findListTitle', 'findListAccounts'])\n },\n methods: {\n onInput () {\n this.search(this.query)\n },\n toggleRemoveMember (user) {\n if (this.removedUserIds.has(user.id)) {\n this.id && this.addUser(user)\n this.removedUserIds.delete(user.id)\n } else {\n this.id && this.removeUser(user.id)\n this.removedUserIds.add(user.id)\n }\n },\n toggleAddFromSearch (user) {\n if (this.addedUserIds.has(user.id)) {\n this.id && this.removeUser(user.id)\n this.addedUserIds.delete(user.id)\n } else {\n this.id && this.addUser(user)\n this.addedUserIds.add(user.id)\n }\n },\n isRemoved (user) {\n return this.removedUserIds.has(user.id)\n },\n isAdded (user) {\n return this.addedUserIds.has(user.id)\n },\n addUser (user) {\n this.$store.dispatch('addListAccount', { accountId: user.id, listId: this.id })\n },\n removeUser (userId) {\n this.$store.dispatch('removeListAccount', { accountId: userId, listId: this.id })\n },\n onSearchLoading (results) {\n this.searchLoading = true\n },\n onSearchLoadingDone (results) {\n this.searchLoading = false\n },\n onSearchResults (results) {\n this.searchLoading = false\n this.searchUserIds = results\n },\n updateListTitle () {\n this.$store.dispatch('setList', { listId: this.id, title: this.titleDraft })\n .then(() => {\n this.title = this.findListTitle(this.id)\n })\n },\n createList () {\n this.$store.dispatch('createList', { title: this.titleDraft })\n .then((list) => {\n return this\n .$store\n .dispatch('setListAccounts', { listId: list.id, accountIds: [...this.addedUserIds] })\n .then(() => list.id)\n })\n .then((listId) => {\n this.$router.push({ name: 'lists-timeline', params: { id: listId } })\n })\n .catch((e) => {\n this.$store.dispatch('pushGlobalNotice', {\n messageKey: 'lists.error',\n messageArgs: [e.message],\n level: 'error'\n })\n })\n },\n deleteList () {\n this.$store.dispatch('deleteList', { listId: this.id })\n this.$router.push({ name: 'lists' })\n }\n }\n}\n\nexport default ListsNew\n","import { render } from \"./lists_edit.vue?vue&type=template&id=722535f4\"\nimport script from \"./lists_edit.js?vue&type=script&lang=js\"\nexport * from \"./lists_edit.js?vue&type=script&lang=js\"\n\nimport \"./lists_edit.vue?vue&type=style&index=0&id=722535f4&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"panel panel-default announcements-page\">\n <div class=\"panel-heading\">\n <span>\n {{ $t('announcements.page_header') }}\n </span>\n </div>\n <div class=\"panel-body\">\n <section\n v-if=\"canPostAnnouncement\"\n >\n <div class=\"post-form\">\n <div class=\"heading\">\n <h4>{{ $t('announcements.post_form_header') }}</h4>\n </div>\n <div class=\"body\">\n <announcement-editor\n :announcement=\"newAnnouncement\"\n :disabled=\"posting\"\n />\n </div>\n <div class=\"footer\">\n <button\n class=\"btn button-default post-button\"\n :disabled=\"posting\"\n @click.prevent=\"postAnnouncement\"\n >\n {{ $t('announcements.post_action') }}\n </button>\n <div\n v-if=\"error\"\n class=\"alert error\"\n >\n {{ $t('announcements.post_error', { error }) }}\n <button\n class=\"button-unstyled\"\n @click=\"clearError\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"times\"\n :title=\"$t('announcements.close_error')\"\n />\n </button>\n </div>\n </div>\n </div>\n </section>\n <section\n v-for=\"announcement in announcements\"\n :key=\"announcement.id\"\n >\n <announcement\n :announcement=\"announcement\"\n />\n </section>\n </div>\n </div>\n</template>\n\n<script src=\"./announcements_page.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.announcements-page {\n .post-form {\n padding: var(--status-margin, $status-margin);\n\n .heading,\n .body {\n margin-bottom: var(--status-margin, $status-margin);\n }\n\n .post-button {\n min-width: 10em;\n }\n }\n}\n</style>\n","<template>\n <div class=\"announcement\">\n <div class=\"heading\">\n <h4>{{ $t('announcements.title') }}</h4>\n </div>\n <div class=\"body\">\n <rich-content\n v-if=\"!editing\"\n :html=\"content\"\n :emoji=\"announcement.emojis\"\n :handle-links=\"true\"\n />\n <announcement-editor\n v-else\n :announcement=\"editedAnnouncement\"\n />\n </div>\n <div class=\"footer\">\n <div\n v-if=\"!editing\"\n class=\"times\"\n >\n <span v-if=\"publishedAt\">\n {{ $t('announcements.published_time_display', { time: publishedAt }) }}\n </span>\n <span v-if=\"startsAt\">\n {{ $t('announcements.start_time_display', { time: startsAt }) }}\n </span>\n <span v-if=\"endsAt\">\n {{ $t('announcements.end_time_display', { time: endsAt }) }}\n </span>\n </div>\n <div\n v-if=\"!editing\"\n class=\"actions\"\n >\n <button\n v-if=\"currentUser\"\n class=\"btn button-default\"\n :class=\"{ toggled: isRead }\"\n :disabled=\"inactive\"\n :title=\"inactive ? $t('announcements.inactive_message') : ''\"\n @click=\"markAsRead\"\n >\n {{ $t('announcements.mark_as_read_action') }}\n </button>\n <button\n v-if=\"canEditAnnouncement\"\n class=\"btn button-default\"\n @click=\"enterEditMode\"\n >\n {{ $t('announcements.edit_action') }}\n </button>\n <button\n v-if=\"canEditAnnouncement\"\n class=\"btn button-default\"\n @click=\"deleteAnnouncement\"\n >\n {{ $t('announcements.delete_action') }}\n </button>\n </div>\n <div\n v-else\n class=\"actions\"\n >\n <button\n class=\"btn button-default\"\n @click=\"submitEdit\"\n >\n {{ $t('announcements.submit_edit_action') }}\n </button>\n <button\n class=\"btn button-default\"\n @click=\"cancelEdit\"\n >\n {{ $t('announcements.cancel_edit_action') }}\n </button>\n <div\n v-if=\"editing && editError\"\n class=\"alert error\"\n >\n {{ $t('announcements.edit_error', { error }) }}\n <button\n class=\"button-unstyled\"\n @click=\"clearError\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"times\"\n :title=\"$t('announcements.close_error')\"\n />\n </button>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./announcement.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.announcement {\n border-bottom: 1px solid var(--border, $fallback--border);\n border-radius: 0;\n padding: var(--status-margin, $status-margin);\n\n .heading,\n .body {\n margin-bottom: var(--status-margin, $status-margin);\n }\n\n .footer {\n display: flex;\n flex-direction: column;\n\n .times {\n display: flex;\n flex-direction: column;\n }\n }\n\n .footer .actions {\n display: flex;\n flex-direction: row;\n justify-content: space-evenly;\n\n .btn {\n flex: 1;\n margin: 1em;\n max-width: 10em;\n }\n }\n}\n</style>\n","<template>\n <div class=\"announcement-editor\">\n <textarea\n ref=\"textarea\"\n v-model=\"announcement.content\"\n class=\"post-textarea\"\n rows=\"1\"\n cols=\"1\"\n :placeholder=\"$t('announcements.post_placeholder')\"\n :disabled=\"disabled\"\n />\n <span class=\"announcement-metadata\">\n <label for=\"announcement-start-time\">{{ $t('announcements.start_time_prompt') }}</label>\n <input\n id=\"announcement-start-time\"\n v-model=\"announcement.startsAt\"\n :type=\"announcement.allDay ? 'date' : 'datetime-local'\"\n :disabled=\"disabled\"\n >\n </span>\n <span class=\"announcement-metadata\">\n <label for=\"announcement-end-time\">{{ $t('announcements.end_time_prompt') }}</label>\n <input\n id=\"announcement-end-time\"\n v-model=\"announcement.endsAt\"\n :type=\"announcement.allDay ? 'date' : 'datetime-local'\"\n :disabled=\"disabled\"\n >\n </span>\n <span class=\"announcement-metadata\">\n <Checkbox\n id=\"announcement-all-day\"\n v-model=\"announcement.allDay\"\n :disabled=\"disabled\"\n />\n <label for=\"announcement-all-day\">{{ $t('announcements.all_day_prompt') }}</label>\n </span>\n </div>\n</template>\n\n<script src=\"./announcement_editor.js\"></script>\n\n<style lang=\"scss\">\n.announcement-editor {\n display: flex;\n align-items: stretch;\n flex-direction: column;\n\n .announcement-metadata {\n margin-top: 0.5em;\n }\n\n .post-textarea {\n resize: vertical;\n height: 10em;\n overflow: none;\n box-sizing: content-box;\n }\n}\n</style>\n","import Checkbox from '../checkbox/checkbox.vue'\n\nconst AnnouncementEditor = {\n components: {\n Checkbox\n },\n props: {\n announcement: Object,\n disabled: Boolean\n }\n}\n\nexport default AnnouncementEditor\n","import { render } from \"./announcement_editor.vue?vue&type=template&id=357f0d7c\"\nimport script from \"./announcement_editor.js?vue&type=script&lang=js\"\nexport * from \"./announcement_editor.js?vue&type=script&lang=js\"\n\nimport \"./announcement_editor.vue?vue&type=style&index=0&id=357f0d7c&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { mapState } from 'vuex'\nimport AnnouncementEditor from '../announcement_editor/announcement_editor.vue'\nimport RichContent from '../rich_content/rich_content.jsx'\nimport localeService from '../../services/locale/locale.service.js'\n\nconst Announcement = {\n components: {\n AnnouncementEditor,\n RichContent\n },\n data () {\n return {\n editing: false,\n editedAnnouncement: {\n content: '',\n startsAt: undefined,\n endsAt: undefined,\n allDay: undefined\n },\n editError: ''\n }\n },\n props: {\n announcement: Object\n },\n computed: {\n ...mapState({\n currentUser: state => state.users.currentUser\n }),\n canEditAnnouncement () {\n return this.currentUser && this.currentUser.privileges.includes('announcements_manage_announcements')\n },\n content () {\n return this.announcement.content\n },\n isRead () {\n return this.announcement.read\n },\n publishedAt () {\n const time = this.announcement.published_at\n if (!time) {\n return\n }\n\n return this.formatTimeOrDate(time, localeService.internalToBrowserLocale(this.$i18n.locale))\n },\n startsAt () {\n const time = this.announcement.starts_at\n if (!time) {\n return\n }\n\n return this.formatTimeOrDate(time, localeService.internalToBrowserLocale(this.$i18n.locale))\n },\n endsAt () {\n const time = this.announcement.ends_at\n if (!time) {\n return\n }\n\n return this.formatTimeOrDate(time, localeService.internalToBrowserLocale(this.$i18n.locale))\n },\n inactive () {\n return this.announcement.inactive\n }\n },\n methods: {\n markAsRead () {\n if (!this.isRead) {\n return this.$store.dispatch('markAnnouncementAsRead', this.announcement.id)\n }\n },\n deleteAnnouncement () {\n return this.$store.dispatch('deleteAnnouncement', this.announcement.id)\n },\n formatTimeOrDate (time, locale) {\n const d = new Date(time)\n return this.announcement.all_day ? d.toLocaleDateString(locale) : d.toLocaleString(locale)\n },\n enterEditMode () {\n this.editedAnnouncement.content = this.announcement.pleroma.raw_content\n this.editedAnnouncement.startsAt = this.announcement.starts_at\n this.editedAnnouncement.endsAt = this.announcement.ends_at\n this.editedAnnouncement.allDay = this.announcement.all_day\n this.editing = true\n },\n submitEdit () {\n this.$store.dispatch('editAnnouncement', {\n id: this.announcement.id,\n ...this.editedAnnouncement\n })\n .then(() => {\n this.editing = false\n })\n .catch(error => {\n this.editError = error.error\n })\n },\n cancelEdit () {\n this.editing = false\n },\n clearError () {\n this.editError = undefined\n }\n }\n}\n\nexport default Announcement\n","import { mapState } from 'vuex'\nimport Announcement from '../announcement/announcement.vue'\nimport AnnouncementEditor from '../announcement_editor/announcement_editor.vue'\n\nconst AnnouncementsPage = {\n components: {\n Announcement,\n AnnouncementEditor\n },\n data () {\n return {\n newAnnouncement: {\n content: '',\n startsAt: undefined,\n endsAt: undefined,\n allDay: false\n },\n posting: false,\n error: undefined\n }\n },\n mounted () {\n this.$store.dispatch('fetchAnnouncements')\n },\n computed: {\n ...mapState({\n currentUser: state => state.users.currentUser\n }),\n announcements () {\n return this.$store.state.announcements.announcements\n },\n canPostAnnouncement () {\n return this.currentUser && this.currentUser.privileges.includes('announcements_manage_announcements')\n }\n },\n methods: {\n postAnnouncement () {\n this.posting = true\n this.$store.dispatch('postAnnouncement', this.newAnnouncement)\n .then(() => {\n this.newAnnouncement.content = ''\n this.startsAt = undefined\n this.endsAt = undefined\n })\n .catch(error => {\n this.error = error.error\n })\n .finally(() => {\n this.posting = false\n })\n },\n clearError () {\n this.error = undefined\n }\n }\n}\n\nexport default AnnouncementsPage\n","import { render } from \"./announcement.vue?vue&type=template&id=c07fccd0\"\nimport script from \"./announcement.js?vue&type=script&lang=js\"\nexport * from \"./announcement.js?vue&type=script&lang=js\"\n\nimport \"./announcement.vue?vue&type=style&index=0&id=c07fccd0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./announcements_page.vue?vue&type=template&id=33196ec2\"\nimport script from \"./announcements_page.js?vue&type=script&lang=js\"\nexport * from \"./announcements_page.js?vue&type=script&lang=js\"\n\nimport \"./announcements_page.vue?vue&type=style&index=0&id=33196ec2&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","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 BookmarkTimeline from 'components/bookmark_timeline/bookmark_timeline.vue'\nimport ConversationPage from 'components/conversation-page/conversation-page.vue'\nimport Interactions from 'components/interactions/interactions.vue'\nimport DMs from 'components/dm_timeline/dm_timeline.vue'\nimport ChatList from 'components/chat_list/chat_list.vue'\nimport Chat from 'components/chat/chat.vue'\nimport UserProfile from 'components/user_profile/user_profile.vue'\nimport Search from 'components/search/search.vue'\nimport Registration from 'components/registration/registration.vue'\nimport PasswordReset from 'components/password_reset/password_reset.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 ShoutPanel from 'components/shout_panel/shout_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'\nimport Lists from 'components/lists/lists.vue'\nimport ListsTimeline from 'components/lists_timeline/lists_timeline.vue'\nimport ListsEdit from 'components/lists_edit/lists_edit.vue'\nimport NavPanel from 'src/components/nav_panel/nav_panel.vue'\nimport AnnouncementsPage from 'components/announcements_page/announcements_page.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 let routes = [\n {\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: 'bookmarks', path: '/bookmarks', component: BookmarkTimeline },\n { name: 'conversation', path: '/notice/:id', component: ConversationPage, meta: { dontScroll: true } },\n {\n name: 'remote-user-profile-acct',\n path: '/remote-users/:_(@)?:username([^/@]+)@:hostname([^/@]+)',\n component: RemoteUserResolver,\n beforeEnter: validateAuthenticatedRoute\n },\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: '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: 'notifications', path: '/:username/notifications', component: Notifications, props: () => ({ disableTeleport: true }), beforeEnter: validateAuthenticatedRoute },\n { name: 'login', path: '/login', component: AuthForm },\n { name: 'shout-panel', path: '/shout-panel', component: ShoutPanel, 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: 'announcements', path: '/announcements', component: AnnouncementsPage },\n { name: 'user-profile', path: '/users/:name', component: UserProfile },\n { name: 'legacy-user-profile', path: '/:name', component: UserProfile },\n { name: 'lists', path: '/lists', component: Lists },\n { name: 'lists-timeline', path: '/lists/:id', component: ListsTimeline },\n { name: 'lists-edit', path: '/lists/:id/edit', component: ListsEdit },\n { name: 'lists-new', path: '/lists/new', component: ListsEdit },\n { name: 'edit-navigation', path: '/nav-edit', component: NavPanel, props: () => ({ forceExpand: true, forceEditMode: true }), beforeEnter: validateAuthenticatedRoute }\n ]\n\n if (store.state.instance.pleromaChatMessagesAvailable) {\n routes = routes.concat([\n { name: 'chat', path: '/users/:username/chats/:recipient_id', component: Chat, meta: { dontScroll: false }, beforeEnter: validateAuthenticatedRoute },\n { name: 'chats', path: '/users/:username/chats', component: ChatList, meta: { dontScroll: false }, beforeEnter: validateAuthenticatedRoute }\n ])\n }\n\n return routes\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 mounted: (el, binding) => {\n if (binding.value) {\n disableBodyScroll(el)\n }\n },\n updated: (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 unmounted: (el) => {\n enableBodyScroll(el)\n }\n}\n\nexport default (Vue) => {\n Vue.directive('body-scroll-lock', directive)\n}\n","import { createApp } from 'vue'\nimport { createRouter, createWebHistory } from 'vue-router'\nimport vClickOutside from 'click-outside-vue3'\nimport VueVirtualScroller from 'vue-virtual-scroller'\nimport 'vue-virtual-scroller/dist/vue-virtual-scroller.css'\n\nimport { FontAwesomeIcon, FontAwesomeLayers } from '@fortawesome/vue-fontawesome'\n\nimport App from '../App.vue'\nimport routes from './routes'\nimport VBodyScrollLock from 'src/directives/body_scroll_lock'\n\nimport { windowWidth, windowHeight } 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, applyConfig } from '../services/style_setter/style_setter.js'\nimport FaviconService from '../services/favicon_service/favicon_service.js'\n\nlet staticInitialResults = null\n\nconst parsedInitialResults = () => {\n if (!document.getElementById('initial-results')) {\n return null\n }\n if (!staticInitialResults) {\n staticInitialResults = JSON.parse(document.getElementById('initial-results').textContent)\n }\n return staticInitialResults\n}\n\nconst decodeUTF8Base64 = (data) => {\n const rawData = atob(data)\n const array = Uint8Array.from([...rawData].map((char) => char.charCodeAt(0)))\n const text = new TextDecoder().decode(array)\n return text\n}\n\nconst preloadFetch = async (request) => {\n const data = parsedInitialResults()\n if (!data || !data[request]) {\n return window.fetch(request)\n }\n const decoded = decodeUTF8Base64(data[request])\n const requestData = JSON.parse(decoded)\n return {\n ok: true,\n json: () => requestData,\n text: () => requestData\n }\n}\n\nconst getInstanceConfig = async ({ store }) => {\n try {\n const res = await preloadFetch('/api/v1/instance')\n if (res.ok) {\n const data = await res.json()\n const textlimit = data.max_toot_chars\n const vapidPublicKey = data.pleroma.vapid_public_key\n\n store.dispatch('setInstanceOption', { name: 'textlimit', value: textlimit })\n store.dispatch('setInstanceOption', { name: 'accountApprovalRequired', value: data.approval_required })\n store.dispatch('setInstanceOption', { name: 'birthdayRequired', value: !!data.pleroma.metadata.birthday_required })\n store.dispatch('setInstanceOption', { name: 'birthdayMinAge', value: data.pleroma.metadata.birthday_min_age || 0 })\n\n if (vapidPublicKey) {\n store.dispatch('setInstanceOption', { name: 'vapidPublicKey', value: vapidPublicKey })\n }\n } else {\n throw (res)\n }\n } catch (error) {\n console.error('Could not load instance config, potentially fatal')\n console.error(error)\n }\n}\n\nconst getBackendProvidedConfig = async ({ store }) => {\n try {\n const res = await window.fetch('/api/pleroma/frontend_configurations')\n if (res.ok) {\n const data = await res.json()\n return data.pleroma_fe\n } else {\n throw (res)\n }\n } catch (error) {\n console.error('Could not load backend-provided frontend 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('hideBotIndication')\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 copyInstanceOption('logoLeft')\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('showFeaturesPanel')\n copyInstanceOption('hideSitename')\n copyInstanceOption('sidebarRight')\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 preloadFetch('/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 let 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 store.dispatch('setInstanceOption', { name: 'staffAccounts', value: nicknames })\n}\n\nconst getNodeInfo = async ({ store }) => {\n try {\n const res = await preloadFetch('/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: 'name', value: metadata.nodeName })\n store.dispatch('setInstanceOption', { name: 'registrationOpen', value: data.openRegistrations })\n store.dispatch('setInstanceOption', { name: 'mediaProxyAvailable', value: features.includes('media_proxy') })\n store.dispatch('setInstanceOption', { name: 'safeDM', value: features.includes('safe_dm_mentions') })\n store.dispatch('setInstanceOption', { name: 'shoutAvailable', value: features.includes('chat') })\n store.dispatch('setInstanceOption', { name: 'pleromaChatMessagesAvailable', value: features.includes('pleroma_chat_messages') })\n store.dispatch('setInstanceOption', { name: 'pleromaCustomEmojiReactionsAvailable', value: features.includes('pleroma_custom_emoji_reactions') })\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: 'editingAvailable', value: features.includes('editing') })\n store.dispatch('setInstanceOption', { name: 'pollLimits', value: metadata.pollLimits })\n store.dispatch('setInstanceOption', { name: 'mailerEnabled', value: metadata.mailerEnabled })\n store.dispatch('setInstanceOption', { name: 'quotingAvailable', value: features.includes('quote_posting') })\n\n const uploadLimits = metadata.uploadLimits\n store.dispatch('setInstanceOption', { name: 'uploadlimit', value: parseInt(uploadLimits.general) })\n store.dispatch('setInstanceOption', { name: 'avatarlimit', value: parseInt(uploadLimits.avatar) })\n store.dispatch('setInstanceOption', { name: 'backgroundlimit', value: parseInt(uploadLimits.background) })\n store.dispatch('setInstanceOption', { name: 'bannerlimit', value: parseInt(uploadLimits.banner) })\n store.dispatch('setInstanceOption', { name: 'fieldsLimits', value: metadata.fieldsLimits })\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([getBackendProvidedConfig({ 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 // eslint-disable-next-line no-async-promise-executor\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 store.dispatch('setLayoutWidth', windowWidth())\n store.dispatch('setLayoutHeight', windowHeight())\n\n FaviconService.initFaviconService()\n\n const overrides = window.___pleromafe_dev_overrides || {}\n const server = (typeof overrides.target !== 'undefined') ? overrides.target : window.location.origin\n store.dispatch('setInstanceOption', { name: 'server', value: server })\n\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 applyConfig(store.state.config)\n\n // Now we can try getting the server settings and logging in\n // Most of these are preloaded into the index.html so blocking is minimized\n await Promise.all([\n checkOAuthToken({ store }),\n getInstancePanel({ store }),\n getNodeInfo({ store }),\n getInstanceConfig({ store })\n ])\n\n // Start fetching things that don't need to block the UI\n store.dispatch('fetchMutes')\n store.dispatch('startFetchingAnnouncements')\n getTOS({ store })\n getStickers({ store })\n\n const router = createRouter({\n history: createWebHistory(),\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 || { left: 0, top: 0 }\n }\n })\n\n const app = createApp(App)\n\n app.use(router)\n app.use(store)\n app.use(i18n)\n\n app.use(vClickOutside)\n app.use(VBodyScrollLock)\n app.use(VueVirtualScroller)\n\n app.component('FAIcon', FontAwesomeIcon)\n app.component('FALayers', FontAwesomeLayers)\n\n // remove after vue 3.3\n app.config.unwrapInjectedRef = true\n\n app.mount('#app')\n\n return app\n}\n\nexport default afterStoreSetup\n","import { createStore } 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 listsModule from './modules/lists.js'\nimport usersModule from './modules/users.js'\nimport apiModule from './modules/api.js'\nimport configModule from './modules/config.js'\nimport profileConfigModule from './modules/profileConfig.js'\nimport serverSideStorageModule from './modules/serverSideStorage.js'\nimport adminSettingsModule from './modules/adminSettings.js'\nimport shoutModule from './modules/shout.js'\nimport oauthModule from './modules/oauth.js'\nimport authFlowModule from './modules/auth_flow.js'\nimport mediaViewerModule from './modules/media_viewer.js'\nimport oauthTokensModule from './modules/oauth_tokens.js'\nimport reportsModule from './modules/reports.js'\nimport pollsModule from './modules/polls.js'\nimport postStatusModule from './modules/postStatus.js'\nimport editStatusModule from './modules/editStatus.js'\nimport statusHistoryModule from './modules/statusHistory.js'\n\nimport chatsModule from './modules/chats.js'\nimport announcementsModule from './modules/announcements.js'\n\nimport { createI18n } 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 afterStoreSetup from './boot/after_store.js'\n\nconst currentLocale = (window.navigator.language || 'en').split('-')[0]\n\nconst i18n = createI18n({\n // By default, use the browser locale, we will update it if neccessary\n locale: 'en',\n fallbackLocale: 'en',\n messages: messages.default\n})\n\nmessages.setLanguage(i18n.global, currentLocale)\n\nconst persistedStateOptions = {\n paths: [\n 'serverSideStorage.cache',\n 'config',\n 'users.lastLoginName',\n 'oauth'\n ]\n};\n\n(async () => {\n let storageError = false\n const plugins = [pushNotifications]\n try {\n const persistedState = await createPersistedState(persistedStateOptions)\n plugins.push(persistedState)\n } catch (e) {\n console.error(e)\n storageError = true\n }\n const store = createStore({\n modules: {\n i18n: {\n getters: {\n i18n: () => i18n.global\n }\n },\n interface: interfaceModule,\n instance: instanceModule,\n // TODO refactor users/statuses modules, they depend on each other\n users: usersModule,\n statuses: statusesModule,\n lists: listsModule,\n api: apiModule,\n config: configModule,\n profileConfig: profileConfigModule,\n serverSideStorage: serverSideStorageModule,\n adminSettings: adminSettingsModule,\n shout: shoutModule,\n oauth: oauthModule,\n authFlow: authFlowModule,\n mediaViewer: mediaViewerModule,\n oauthTokens: oauthTokensModule,\n reports: reportsModule,\n polls: pollsModule,\n postStatus: postStatusModule,\n editStatus: editStatusModule,\n statusHistory: statusHistoryModule,\n chats: chatsModule,\n announcements: announcementsModule\n },\n plugins,\n strict: false // Socket modifies itself, let's ignore this for now.\n // strict: process.env.NODE_ENV !== 'production'\n })\n if (storageError) {\n store.dispatch('pushGlobalNotice', { messageKey: 'errors.storage_unavailable', level: 'error' })\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","import Cookies from 'js-cookie'\nimport { setPreset, applyTheme, applyConfig } from '../services/style_setter/style_setter.js'\nimport messages from '../i18n/messages'\nimport { set } from 'lodash'\nimport localeService from '../services/locale/locale.service.js'\n\nconst BACKEND_LANGUAGE_COOKIE_NAME = 'userLanguage'\n\nconst browserLocale = (window.navigator.language || 'en').split('-')[0]\n\n/* TODO this is a bit messy.\n * We need to declare settings with their types and also deal with\n * instance-default settings in some way, hopefully try to avoid copy-pasta\n * in general.\n */\nexport const multiChoiceProperties = [\n 'postContentType',\n 'subjectLineBehavior',\n 'conversationDisplay', // tree | linear\n 'conversationOtherRepliesButton', // below | inside\n 'mentionLinkDisplay', // short | full_for_remote | full\n 'userPopoverAvatarAction' // close | zoom | open\n]\n\nexport const defaultState = {\n expertLevel: 0, // used to track which settings to show and hide\n colors: {},\n theme: undefined,\n customTheme: undefined,\n customThemeSource: undefined,\n hideISP: false,\n hideInstanceWallpaper: false,\n hideShoutbox: false,\n // bad name: actually hides posts of muted USERS\n hideMutedPosts: undefined, // instance default\n hideMutedThreads: undefined, // instance default\n hideWordFilteredPosts: undefined, // instance default\n muteBotStatuses: 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 streaming: false,\n emojiReactionsOnTimeline: true,\n alwaysShowNewPostButton: false,\n autohideFloatingPostButton: false,\n pauseOnUnfocused: true,\n stopGifs: true,\n replyVisibility: 'all',\n thirdColumnMode: 'notifications',\n notificationVisibility: {\n follows: true,\n mentions: true,\n likes: true,\n repeats: true,\n moves: true,\n emojiReactions: true,\n followRequest: true,\n reports: true,\n chatMention: true,\n polls: true\n },\n webPushNotifications: false,\n muteWords: [],\n highlight: {},\n interfaceLanguage: browserLocale,\n hideScopeNotice: false,\n useStreamingApi: false,\n sidebarRight: undefined, // instance default\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 modalOnRepeat: undefined, // instance default\n modalOnUnfollow: undefined, // instance default\n modalOnBlock: undefined, // instance default\n modalOnMute: undefined, // instance default\n modalOnDelete: undefined, // instance default\n modalOnLogout: undefined, // instance default\n modalOnApproveFollow: undefined, // instance default\n modalOnDenyFollow: undefined, // instance default\n modalOnRemoveUserFromFollowers: undefined, // instance default\n playVideosInModal: false,\n useOneClickNsfw: false,\n useContainFit: true,\n disableStickyHeaders: false,\n showScrollbars: false,\n userPopoverAvatarAction: 'open',\n userPopoverOverlay: false,\n sidebarColumnWidth: '25rem',\n contentColumnWidth: '45rem',\n notifsColumnWidth: '25rem',\n emojiReactionsScale: 1.0,\n navbarColumnStretch: false,\n greentext: undefined, // instance default\n useAtIcon: undefined, // instance default\n mentionLinkDisplay: undefined, // instance default\n mentionLinkShowTooltip: undefined, // instance default\n mentionLinkShowAvatar: undefined, // instance default\n mentionLinkFadeDomain: undefined, // instance default\n mentionLinkShowYous: undefined, // instance default\n mentionLinkBoldenYou: undefined, // instance default\n hidePostStats: undefined, // instance default\n hideBotIndication: undefined, // instance default\n hideUserStats: undefined, // instance default\n virtualScrolling: undefined, // instance default\n sensitiveByDefault: undefined, // instance default\n conversationDisplay: undefined, // instance default\n conversationTreeAdvanced: undefined, // instance default\n conversationOtherRepliesButton: undefined, // instance default\n conversationTreeFadeAncestors: undefined, // instance default\n maxDepthInThread: undefined, // instance default\n autocompleteSelect: 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 defaultConfig (state, getters, rootState, rootGetters) {\n const { instance } = rootState\n return {\n ...defaultState,\n ...Object.fromEntries(\n instanceDefaultProperties.map(key => [key, instance[key]])\n )\n }\n },\n mergedConfig (state, getters, rootState, rootGetters) {\n const { defaultConfig } = rootGetters\n return {\n ...defaultConfig,\n // Do not override with undefined\n ...Object.fromEntries(Object.entries(state).filter(([k, v]) => v !== undefined))\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 state.highlight[user] = { color: color || data.color, type: type || data.type }\n } else {\n delete state.highlight[user]\n }\n }\n },\n actions: {\n loadSettings ({ dispatch }, data) {\n const knownKeys = new Set(Object.keys(defaultState))\n const presentKeys = new Set(Object.keys(data))\n const intersection = new Set()\n for (const elem of presentKeys) {\n if (knownKeys.has(elem)) {\n intersection.add(elem)\n }\n }\n\n intersection.forEach(\n name => dispatch('setOption', { name, value: data[name] })\n )\n },\n setHighlight ({ commit, dispatch }, { user, color, type }) {\n commit('setHighlight', { user, color, type })\n },\n setOption ({ commit, dispatch, state }, { name, value }) {\n const exceptions = new Set([\n 'useStreamingApi'\n ])\n\n if (exceptions.has(name)) {\n switch (name) {\n case 'useStreamingApi': {\n const action = value ? 'enableMastoSockets' : 'disableMastoSockets'\n\n dispatch(action).then(() => {\n commit('setOption', { name: 'useStreamingApi', value })\n }).catch((e) => {\n console.error('Failed starting MastoAPI Streaming socket', e)\n dispatch('disableMastoSockets')\n dispatch('setOption', { name: 'useStreamingApi', value: false })\n })\n }\n }\n } else {\n commit('setOption', { name, value })\n switch (name) {\n case 'theme':\n setPreset(value)\n break\n case 'sidebarColumnWidth':\n case 'contentColumnWidth':\n case 'notifsColumnWidth':\n case 'emojiReactionsScale':\n applyConfig(state)\n break\n case 'customTheme':\n case 'customThemeSource':\n applyTheme(value)\n break\n case 'interfaceLanguage':\n messages.setLanguage(this.getters.i18n, value)\n dispatch('loadUnicodeEmojiData', value)\n Cookies.set(\n BACKEND_LANGUAGE_COOKIE_NAME,\n localeService.internalToBackendLocaleMulti(value)\n )\n break\n case 'thirdColumnMode':\n dispatch('setLayoutWidth', undefined)\n break\n }\n }\n }\n }\n}\n\nexport default config\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 // eslint-disable-next-line\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 const message = val.reduce((acc, message) => {\n const 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, parseSource, parseUser, parseNotification, parseAttachment, parseChat, parseLinkHeaderPagination } from '../entity_normalizer/entity_normalizer.service.js'\nimport { RegistrationError, StatusCodeError } from '../errors/errors'\n\n/* eslint-env browser */\nconst MUTES_IMPORT_URL = '/api/pleroma/mutes_import'\nconst BLOCKS_IMPORT_URL = '/api/pleroma/blocks_import'\nconst FOLLOW_IMPORT_URL = '/api/pleroma/follow_import'\nconst DELETE_ACCOUNT_URL = '/api/pleroma/delete_account'\nconst CHANGE_EMAIL_URL = '/api/pleroma/change_email'\nconst CHANGE_PASSWORD_URL = '/api/pleroma/change_password'\nconst MOVE_ACCOUNT_URL = '/api/pleroma/move_account'\nconst ALIASES_URL = '/api/pleroma/aliases'\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_STATUS_SOURCE_URL = id => `/api/v1/statuses/${id}/source`\nconst MASTODON_STATUS_HISTORY_URL = id => `/api/v1/statuses/${id}/history`\nconst MASTODON_USER_URL = '/api/v1/accounts'\nconst MASTODON_USER_LOOKUP_URL = '/api/v1/accounts/lookup'\nconst MASTODON_USER_RELATIONSHIPS_URL = '/api/v1/accounts/relationships'\nconst MASTODON_USER_TIMELINE_URL = id => `/api/v1/accounts/${id}/statuses`\nconst MASTODON_USER_IN_LISTS = id => `/api/v1/accounts/${id}/lists`\nconst MASTODON_LIST_URL = id => `/api/v1/lists/${id}`\nconst MASTODON_LIST_TIMELINE_URL = id => `/api/v1/timelines/list/${id}`\nconst MASTODON_LIST_ACCOUNTS_URL = id => `/api/v1/lists/${id}/accounts`\nconst MASTODON_TAG_TIMELINE_URL = tag => `/api/v1/timelines/tag/${tag}`\nconst MASTODON_BOOKMARK_TIMELINE_URL = '/api/v1/bookmarks'\nconst MASTODON_USER_BLOCKS_URL = '/api/v1/blocks/'\nconst MASTODON_USER_MUTES_URL = '/api/v1/mutes/'\nconst MASTODON_BLOCK_USER_URL = id => `/api/v1/accounts/${id}/block`\nconst MASTODON_UNBLOCK_USER_URL = id => `/api/v1/accounts/${id}/unblock`\nconst MASTODON_MUTE_USER_URL = id => `/api/v1/accounts/${id}/mute`\nconst MASTODON_UNMUTE_USER_URL = id => `/api/v1/accounts/${id}/unmute`\nconst MASTODON_REMOVE_USER_FROM_FOLLOWERS = id => `/api/v1/accounts/${id}/remove_from_followers`\nconst MASTODON_SUBSCRIBE_USER = id => `/api/v1/pleroma/accounts/${id}/subscribe`\nconst MASTODON_UNSUBSCRIBE_USER = id => `/api/v1/pleroma/accounts/${id}/unsubscribe`\nconst MASTODON_USER_NOTE_URL = id => `/api/v1/accounts/${id}/note`\nconst MASTODON_BOOKMARK_STATUS_URL = id => `/api/v1/statuses/${id}/bookmark`\nconst MASTODON_UNBOOKMARK_STATUS_URL = id => `/api/v1/statuses/${id}/unbookmark`\nconst MASTODON_POST_STATUS_URL = '/api/v1/statuses'\nconst MASTODON_MEDIA_UPLOAD_URL = '/api/v1/media'\nconst MASTODON_VOTE_URL = id => `/api/v1/polls/${id}/votes`\nconst MASTODON_POLL_URL = id => `/api/v1/polls/${id}`\nconst MASTODON_STATUS_FAVORITEDBY_URL = id => `/api/v1/statuses/${id}/favourited_by`\nconst MASTODON_STATUS_REBLOGGEDBY_URL = id => `/api/v1/statuses/${id}/reblogged_by`\nconst MASTODON_PROFILE_UPDATE_URL = '/api/v1/accounts/update_credentials'\nconst MASTODON_REPORT_USER_URL = '/api/v1/reports'\nconst MASTODON_PIN_OWN_STATUS = id => `/api/v1/statuses/${id}/pin`\nconst MASTODON_UNPIN_OWN_STATUS = id => `/api/v1/statuses/${id}/unpin`\nconst MASTODON_MUTE_CONVERSATION = id => `/api/v1/statuses/${id}/mute`\nconst MASTODON_UNMUTE_CONVERSATION = id => `/api/v1/statuses/${id}/unmute`\nconst MASTODON_SEARCH_2 = '/api/v2/search'\nconst MASTODON_USER_SEARCH_URL = '/api/v1/accounts/search'\nconst MASTODON_DOMAIN_BLOCKS_URL = '/api/v1/domain_blocks'\nconst MASTODON_LISTS_URL = '/api/v1/lists'\nconst MASTODON_STREAMING = '/api/v1/streaming'\nconst MASTODON_KNOWN_DOMAIN_LIST_URL = '/api/v1/instance/peers'\nconst MASTODON_ANNOUNCEMENTS_URL = '/api/v1/announcements'\nconst MASTODON_ANNOUNCEMENTS_DISMISS_URL = id => `/api/v1/announcements/${id}/dismiss`\nconst PLEROMA_EMOJI_REACTIONS_URL = id => `/api/v1/pleroma/statuses/${id}/reactions`\nconst PLEROMA_EMOJI_REACT_URL = (id, emoji) => `/api/v1/pleroma/statuses/${id}/reactions/${emoji}`\nconst PLEROMA_EMOJI_UNREACT_URL = (id, emoji) => `/api/v1/pleroma/statuses/${id}/reactions/${emoji}`\nconst PLEROMA_CHATS_URL = '/api/v1/pleroma/chats'\nconst PLEROMA_CHAT_URL = id => `/api/v1/pleroma/chats/by-account-id/${id}`\nconst PLEROMA_CHAT_MESSAGES_URL = id => `/api/v1/pleroma/chats/${id}/messages`\nconst PLEROMA_CHAT_READ_URL = id => `/api/v1/pleroma/chats/${id}/read`\nconst PLEROMA_DELETE_CHAT_MESSAGE_URL = (chatId, messageId) => `/api/v1/pleroma/chats/${chatId}/messages/${messageId}`\nconst PLEROMA_ADMIN_REPORTS = '/api/pleroma/admin/reports'\nconst PLEROMA_BACKUP_URL = '/api/v1/pleroma/backups'\nconst PLEROMA_ANNOUNCEMENTS_URL = '/api/v1/pleroma/admin/announcements'\nconst PLEROMA_POST_ANNOUNCEMENT_URL = '/api/v1/pleroma/admin/announcements'\nconst PLEROMA_EDIT_ANNOUNCEMENT_URL = id => `/api/v1/pleroma/admin/announcements/${id}`\nconst PLEROMA_DELETE_ANNOUNCEMENT_URL = id => `/api/v1/pleroma/admin/announcements/${id}`\n\nconst PLEROMA_ADMIN_CONFIG_URL = '/api/pleroma/admin/config'\nconst PLEROMA_ADMIN_DESCRIPTIONS_URL = '/api/pleroma/admin/config/descriptions'\nconst PLEROMA_ADMIN_FRONTENDS_URL = '/api/pleroma/admin/frontends'\nconst PLEROMA_ADMIN_FRONTENDS_INSTALL_URL = '/api/pleroma/admin/frontends/install'\n\nconst oldfetch = window.fetch\n\nconst fetch = (url, options) => {\n options = options || {}\n const baseUrl = ''\n const fullUrl = baseUrl + url\n options.credentials = 'same-origin'\n return oldfetch(fullUrl, options)\n}\n\nconst promisedRequest = ({ method, url, params, payload, credentials, headers = {} }) => {\n const options = {\n method,\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n ...headers\n }\n }\n if (params) {\n url += '?' + Object.entries(params)\n .map(([key, value]) => encodeURIComponent(key) + '=' + encodeURIComponent(value))\n .join('&')\n }\n if (payload) {\n options.body = JSON.stringify(payload)\n }\n if (credentials) {\n options.headers = {\n ...options.headers,\n ...authHeaders(credentials)\n }\n }\n return fetch(url, options)\n .then((response) => {\n return new Promise((resolve, reject) => response.json()\n .then((json) => {\n if (!response.ok) {\n return reject(new StatusCodeError(response.status, json, { url, options }, response))\n }\n return resolve(json)\n })\n .catch((error) => {\n return reject(new StatusCodeError(response.status, error, { url, options }, response))\n })\n )\n })\n}\n\nconst updateNotificationSettings = ({ credentials, settings }) => {\n const form = new FormData()\n\n each(settings, (value, key) => {\n form.append(key, value)\n })\n\n return fetch(`${NOTIFICATION_SETTINGS_URL}?${new URLSearchParams(settings)}`, {\n headers: authHeaders(credentials),\n method: 'PUT',\n body: form\n }).then((data) => data.json())\n}\n\nconst updateProfileImages = ({ credentials, avatar = null, avatarName = null, banner = null, background = null }) => {\n const form = new FormData()\n if (avatar !== null) {\n if (avatarName !== null) {\n form.append('avatar', avatar, avatarName)\n } else {\n form.append('avatar', avatar)\n }\n }\n if (banner !== null) form.append('header', banner)\n if (background !== null) form.append('pleroma_background_image', background)\n return fetch(MASTODON_PROFILE_UPDATE_URL, {\n headers: authHeaders(credentials),\n method: 'PATCH',\n body: form\n })\n .then((data) => data.json())\n .then((data) => {\n if (data.error) {\n throw new Error(data.error)\n }\n return parseUser(data)\n })\n}\n\nconst updateProfile = ({ credentials, params }) => {\n return promisedRequest({\n url: MASTODON_PROFILE_UPDATE_URL,\n method: 'PATCH',\n payload: params,\n credentials\n }).then((data) => parseUser(data))\n}\n\n// Params needed:\n// nickname\n// email\n// fullname\n// password\n// password_confirm\n//\n// Optional\n// bio\n// homepage\n// location\n// token\n// language\nconst register = ({ params, credentials }) => {\n const { nickname, ...rest } = params\n return fetch(MASTODON_REGISTRATION_URL, {\n method: 'POST',\n headers: {\n ...authHeaders(credentials),\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n nickname,\n locale: 'en_US',\n agreement: true,\n ...rest\n })\n })\n .then((response) => {\n if (response.ok) {\n return response.json()\n } else {\n return response.json().then((error) => { throw new RegistrationError(error) })\n }\n })\n}\n\nconst getCaptcha = () => fetch('/api/pleroma/captcha').then(resp => resp.json())\n\nconst authHeaders = (accessToken) => {\n if (accessToken) {\n return { Authorization: `Bearer ${accessToken}` }\n } else {\n return { }\n }\n}\n\nconst followUser = ({ id, credentials, ...options }) => {\n const 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 const url = MASTODON_UNFOLLOW_URL(id)\n return fetch(url, {\n headers: authHeaders(credentials),\n method: 'POST'\n }).then((data) => data.json())\n}\n\nconst fetchUserInLists = ({ id, credentials }) => {\n const url = MASTODON_USER_IN_LISTS(id)\n return fetch(url, {\n headers: authHeaders(credentials)\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 removeUserFromFollowers = ({ id, credentials }) => {\n return fetch(MASTODON_REMOVE_USER_FROM_FOLLOWERS(id), {\n headers: authHeaders(credentials),\n method: 'POST'\n }).then((data) => data.json())\n}\n\nconst editUserNote = ({ id, credentials, comment }) => {\n return promisedRequest({\n url: MASTODON_USER_NOTE_URL(id),\n credentials,\n payload: {\n comment\n },\n method: 'POST'\n })\n}\n\nconst approveUser = ({ id, credentials }) => {\n const 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 const 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 const url = `${MASTODON_USER_URL}/${id}`\n return promisedRequest({ url, credentials })\n .then((data) => parseUser(data))\n}\n\nconst fetchUserByName = ({ name, credentials }) => {\n return promisedRequest({\n url: MASTODON_USER_LOOKUP_URL,\n credentials,\n params: { acct: name }\n })\n .then(data => data.id)\n .catch(error => {\n if (error && error.statusCode === 404) {\n // Either the backend does not support lookup endpoint,\n // or there is no user with such name. Fallback and treat name as id.\n return name\n } else {\n throw error\n }\n })\n .then(id => fetchUser({ id, credentials }))\n}\n\nconst fetchUserRelationship = ({ id, credentials }) => {\n const url = `${MASTODON_USER_RELATIONSHIPS_URL}/?id=${id}`\n return fetch(url, { headers: authHeaders(credentials) })\n .then((response) => {\n return new Promise((resolve, reject) => response.json()\n .then((json) => {\n if (!response.ok) {\n return reject(new StatusCodeError(response.status, json, { url }, response))\n }\n return resolve(json)\n }))\n })\n}\n\nconst fetchFriends = ({ id, maxId, sinceId, limit = 20, credentials }) => {\n let url = MASTODON_FOLLOWING_URL(id)\n const args = [\n maxId && `max_id=${maxId}`,\n sinceId && `since_id=${sinceId}`,\n limit && `limit=${limit}`,\n 'with_relationships=true'\n ].filter(_ => _).join('&')\n\n url = url + (args ? '?' + args : '')\n return fetch(url, { headers: authHeaders(credentials) })\n .then((data) => data.json())\n .then((data) => data.map(parseUser))\n}\n\nconst exportFriends = ({ id, credentials }) => {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise(async (resolve, reject) => {\n try {\n let friends = []\n let more = true\n while (more) {\n const maxId = friends.length > 0 ? last(friends).id : undefined\n const users = await fetchFriends({ id, maxId, credentials })\n friends = concat(friends, users)\n if (users.length === 0) {\n more = false\n }\n }\n resolve(friends)\n } catch (err) {\n reject(err)\n }\n })\n}\n\nconst fetchFollowers = ({ id, maxId, sinceId, limit = 20, credentials }) => {\n let url = MASTODON_FOLLOWERS_URL(id)\n const args = [\n maxId && `max_id=${maxId}`,\n sinceId && `since_id=${sinceId}`,\n limit && `limit=${limit}`,\n 'with_relationships=true'\n ].filter(_ => _).join('&')\n\n url += args ? '?' + args : ''\n return fetch(url, { headers: authHeaders(credentials) })\n .then((data) => data.json())\n .then((data) => data.map(parseUser))\n}\n\nconst fetchFollowRequests = ({ credentials }) => {\n const url = MASTODON_FOLLOW_REQUESTS_URL\n return fetch(url, { headers: authHeaders(credentials) })\n .then((data) => data.json())\n .then((data) => data.map(parseUser))\n}\n\nconst fetchLists = ({ credentials }) => {\n const url = MASTODON_LISTS_URL\n return fetch(url, { headers: authHeaders(credentials) })\n .then((data) => data.json())\n}\n\nconst createList = ({ title, credentials }) => {\n const url = MASTODON_LISTS_URL\n const headers = authHeaders(credentials)\n headers['Content-Type'] = 'application/json'\n\n return fetch(url, {\n headers,\n method: 'POST',\n body: JSON.stringify({ title })\n }).then((data) => data.json())\n}\n\nconst getList = ({ listId, credentials }) => {\n const url = MASTODON_LIST_URL(listId)\n return fetch(url, { headers: authHeaders(credentials) })\n .then((data) => data.json())\n}\n\nconst updateList = ({ listId, title, credentials }) => {\n const url = MASTODON_LIST_URL(listId)\n const headers = authHeaders(credentials)\n headers['Content-Type'] = 'application/json'\n\n return fetch(url, {\n headers,\n method: 'PUT',\n body: JSON.stringify({ title })\n })\n}\n\nconst getListAccounts = ({ listId, credentials }) => {\n const url = MASTODON_LIST_ACCOUNTS_URL(listId)\n return fetch(url, { headers: authHeaders(credentials) })\n .then((data) => data.json())\n .then((data) => data.map(({ id }) => id))\n}\n\nconst addAccountsToList = ({ listId, accountIds, credentials }) => {\n const url = MASTODON_LIST_ACCOUNTS_URL(listId)\n const headers = authHeaders(credentials)\n headers['Content-Type'] = 'application/json'\n\n return fetch(url, {\n headers,\n method: 'POST',\n body: JSON.stringify({ account_ids: accountIds })\n })\n}\n\nconst removeAccountsFromList = ({ listId, accountIds, credentials }) => {\n const url = MASTODON_LIST_ACCOUNTS_URL(listId)\n const headers = authHeaders(credentials)\n headers['Content-Type'] = 'application/json'\n\n return fetch(url, {\n headers,\n method: 'DELETE',\n body: JSON.stringify({ account_ids: accountIds })\n })\n}\n\nconst deleteList = ({ listId, credentials }) => {\n const url = MASTODON_LIST_URL(listId)\n return fetch(url, {\n method: 'DELETE',\n headers: authHeaders(credentials)\n })\n}\n\nconst fetchConversation = ({ id, credentials }) => {\n const 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 const 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 fetchStatusSource = ({ id, credentials }) => {\n const url = MASTODON_STATUS_SOURCE_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 source', data)\n })\n .then((data) => data.json())\n .then((data) => parseSource(data))\n}\n\nconst fetchStatusHistory = ({ status, credentials }) => {\n const url = MASTODON_STATUS_HISTORY_URL(status.id)\n return promisedRequest({ url, credentials })\n .then((data) => {\n data.reverse()\n return data.map((item) => {\n item.originalStatus = status\n return parseStatus(item)\n })\n })\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,\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,\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\n })\n}\n\nconst fetchTimeline = ({\n timeline,\n credentials,\n since = false,\n until = false,\n userId = false,\n listId = false,\n tag = false,\n withMuted = false,\n replyVisibility = 'all',\n includeTypes = []\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 list: MASTODON_LIST_TIMELINE_URL,\n favorites: MASTODON_USER_FAVORITES_TIMELINE_URL,\n tag: MASTODON_TAG_TIMELINE_URL,\n bookmarks: MASTODON_BOOKMARK_TIMELINE_URL\n }\n const isNotifications = timeline === 'notifications'\n const params = []\n\n let url = timelineUrls[timeline]\n\n if (timeline === 'user' || timeline === 'media') {\n url = url(userId)\n }\n\n if (timeline === 'list') {\n url = url(listId)\n }\n\n if (since) {\n params.push(['since_id', since])\n }\n if (until) {\n params.push(['max_id', until])\n }\n if (tag) {\n url = url(tag)\n }\n if (timeline === 'media') {\n params.push(['only_media', 1])\n }\n if (timeline === 'public') {\n params.push(['local', true])\n }\n if (timeline === 'public' || timeline === 'publicAndExternal') {\n params.push(['only_media', false])\n }\n if (timeline !== 'favorites' && timeline !== 'bookmarks') {\n params.push(['with_muted', withMuted])\n }\n if (replyVisibility !== 'all') {\n params.push(['reply_visibility', replyVisibility])\n }\n if (includeTypes.length > 0) {\n includeTypes.forEach(type => {\n params.push(['include_types[]', type])\n })\n }\n\n params.push(['limit', 20])\n\n const queryString = map(params, (param) => `${param[0]}=${param[1]}`).join('&')\n url += `?${queryString}`\n\n return fetch(url, { headers: authHeaders(credentials) })\n .then(async (response) => {\n const success = response.ok\n\n const data = await response.json()\n\n if (success && !data.errors) {\n const pagination = parseLinkHeaderPagination(response.headers.get('Link'), {\n flakeId: timeline !== 'bookmarks' && timeline !== 'notifications'\n })\n\n return { data: data.map(isNotifications ? parseNotification : parseStatus), pagination }\n } else {\n data.errors ||= []\n data.status = response.status\n data.statusText = response.statusText\n return data\n }\n })\n}\n\nconst fetchPinnedStatuses = ({ id, credentials }) => {\n const url = MASTODON_USER_TIMELINE_URL(id) + '?pinned=true'\n return promisedRequest({ url, credentials })\n .then((data) => data.map(parseStatus))\n}\n\nconst verifyCredentials = (user) => {\n return fetch(MASTODON_LOGIN_URL, {\n headers: authHeaders(user)\n })\n .then((response) => {\n if (response.ok) {\n return response.json()\n } else {\n return {\n error: response\n }\n }\n })\n .then((data) => data.error ? data : parseUser(data))\n}\n\nconst favorite = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_FAVORITE_URL(id), method: 'POST', credentials })\n .then((data) => parseStatus(data))\n}\n\nconst unfavorite = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_UNFAVORITE_URL(id), method: 'POST', credentials })\n .then((data) => parseStatus(data))\n}\n\nconst retweet = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_RETWEET_URL(id), method: 'POST', credentials })\n .then((data) => parseStatus(data))\n}\n\nconst unretweet = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_UNRETWEET_URL(id), method: 'POST', credentials })\n .then((data) => parseStatus(data))\n}\n\nconst bookmarkStatus = ({ id, credentials }) => {\n return promisedRequest({\n url: MASTODON_BOOKMARK_STATUS_URL(id),\n headers: authHeaders(credentials),\n method: 'POST'\n })\n}\n\nconst unbookmarkStatus = ({ id, credentials }) => {\n return promisedRequest({\n url: MASTODON_UNBOOKMARK_STATUS_URL(id),\n headers: authHeaders(credentials),\n method: 'POST'\n })\n}\n\nconst postStatus = ({\n credentials,\n status,\n spoilerText,\n visibility,\n sensitive,\n poll,\n mediaIds = [],\n inReplyToStatusId,\n quoteId,\n contentType,\n preview,\n idempotencyKey\n}) => {\n const form = new FormData()\n const pollOptions = poll.options || []\n\n form.append('status', status)\n form.append('source', 'Pleroma FE')\n if (spoilerText) form.append('spoiler_text', spoilerText)\n if (visibility) form.append('visibility', visibility)\n if (sensitive) form.append('sensitive', sensitive)\n if (contentType) form.append('content_type', contentType)\n mediaIds.forEach(val => {\n form.append('media_ids[]', val)\n })\n if (pollOptions.some(option => option !== '')) {\n const normalizedPoll = {\n expires_in: parseInt(poll.expiresIn, 10),\n multiple: poll.multiple\n }\n Object.keys(normalizedPoll).forEach(key => {\n form.append(`poll[${key}]`, normalizedPoll[key])\n })\n\n pollOptions.forEach(option => {\n form.append('poll[options][]', option)\n })\n }\n if (inReplyToStatusId) {\n form.append('in_reply_to_id', inReplyToStatusId)\n }\n if (quoteId) {\n form.append('quote_id', quoteId)\n }\n if (preview) {\n form.append('preview', 'true')\n }\n\n const postHeaders = authHeaders(credentials)\n if (idempotencyKey) {\n postHeaders['idempotency-key'] = idempotencyKey\n }\n\n return fetch(MASTODON_POST_STATUS_URL, {\n body: form,\n method: 'POST',\n headers: postHeaders\n })\n .then((response) => {\n return response.json()\n })\n .then((data) => data.error ? data : parseStatus(data))\n}\n\nconst editStatus = ({\n id,\n credentials,\n status,\n spoilerText,\n sensitive,\n poll,\n mediaIds = [],\n contentType\n}) => {\n const form = new FormData()\n const pollOptions = poll.options || []\n\n form.append('status', status)\n if (spoilerText) form.append('spoiler_text', spoilerText)\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\n if (pollOptions.some(option => option !== '')) {\n const normalizedPoll = {\n expires_in: parseInt(poll.expiresIn, 10),\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\n const putHeaders = authHeaders(credentials)\n\n return fetch(MASTODON_STATUS_URL(id), {\n body: form,\n method: 'PUT',\n headers: putHeaders\n })\n .then((response) => {\n return response.json()\n })\n .then((data) => data.error ? data : parseStatus(data))\n}\n\nconst deleteStatus = ({ id, credentials }) => {\n return promisedRequest({\n url: MASTODON_DELETE_URL(id),\n credentials,\n method: 'DELETE'\n })\n}\n\nconst uploadMedia = ({ formData, credentials }) => {\n return fetch(MASTODON_MEDIA_UPLOAD_URL, {\n body: formData,\n method: 'POST',\n headers: authHeaders(credentials)\n })\n .then((data) => data.json())\n .then((data) => parseAttachment(data))\n}\n\nconst setMediaDescription = ({ id, description, credentials }) => {\n return promisedRequest({\n url: `${MASTODON_MEDIA_UPLOAD_URL}/${id}`,\n method: 'PUT',\n headers: authHeaders(credentials),\n payload: {\n description\n }\n }).then((data) => parseAttachment(data))\n}\n\nconst importMutes = ({ file, credentials }) => {\n const formData = new FormData()\n formData.append('list', file)\n return fetch(MUTES_IMPORT_URL, {\n body: formData,\n method: 'POST',\n headers: authHeaders(credentials)\n })\n .then((response) => response.ok)\n}\n\nconst importBlocks = ({ file, credentials }) => {\n const formData = new FormData()\n formData.append('list', file)\n return fetch(BLOCKS_IMPORT_URL, {\n body: formData,\n method: 'POST',\n headers: authHeaders(credentials)\n })\n .then((response) => response.ok)\n}\n\nconst importFollows = ({ file, credentials }) => {\n const formData = new FormData()\n formData.append('list', file)\n return fetch(FOLLOW_IMPORT_URL, {\n body: formData,\n method: 'POST',\n headers: authHeaders(credentials)\n })\n .then((response) => response.ok)\n}\n\nconst deleteAccount = ({ credentials, password }) => {\n const form = new FormData()\n\n form.append('password', password)\n\n return fetch(DELETE_ACCOUNT_URL, {\n body: form,\n method: 'POST',\n headers: authHeaders(credentials)\n })\n .then((response) => response.json())\n}\n\nconst changeEmail = ({ credentials, email, password }) => {\n const form = new FormData()\n\n form.append('email', email)\n form.append('password', password)\n\n return fetch(CHANGE_EMAIL_URL, {\n body: form,\n method: 'POST',\n headers: authHeaders(credentials)\n })\n .then((response) => response.json())\n}\n\nconst moveAccount = ({ credentials, password, targetAccount }) => {\n const form = new FormData()\n\n form.append('password', password)\n form.append('target_account', targetAccount)\n\n return fetch(MOVE_ACCOUNT_URL, {\n body: form,\n method: 'POST',\n headers: authHeaders(credentials)\n })\n .then((response) => response.json())\n}\n\nconst addAlias = ({ credentials, alias }) => {\n return promisedRequest({\n url: ALIASES_URL,\n method: 'PUT',\n credentials,\n payload: { alias }\n })\n}\n\nconst deleteAlias = ({ credentials, alias }) => {\n return promisedRequest({\n url: ALIASES_URL,\n method: 'DELETE',\n credentials,\n payload: { alias }\n })\n}\n\nconst listAliases = ({ credentials }) => {\n return promisedRequest({\n url: ALIASES_URL,\n method: 'GET',\n credentials,\n params: {\n _cacheBooster: (new Date()).getTime()\n }\n })\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 = ({ maxId, credentials }) => {\n const query = new URLSearchParams({ with_relationships: true })\n if (maxId) {\n query.append('max_id', maxId)\n }\n return promisedRequest({ url: `${MASTODON_USER_MUTES_URL}?${query.toString()}`, credentials })\n .then((users) => users.map(parseUser))\n}\n\nconst muteUser = ({ id, expiresIn, credentials }) => {\n const payload = {}\n if (expiresIn) {\n payload.expires_in = expiresIn\n }\n return promisedRequest({ url: MASTODON_MUTE_USER_URL(id), credentials, method: 'POST', payload })\n}\n\nconst unmuteUser = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_UNMUTE_USER_URL(id), credentials, method: 'POST' })\n}\n\nconst subscribeUser = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_SUBSCRIBE_USER(id), credentials, method: 'POST' })\n}\n\nconst unsubscribeUser = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_UNSUBSCRIBE_USER(id), credentials, method: 'POST' })\n}\n\nconst fetchBlocks = ({ maxId, credentials }) => {\n const query = new URLSearchParams({ with_relationships: true })\n if (maxId) {\n query.append('max_id', maxId)\n }\n return promisedRequest({ url: `${MASTODON_USER_BLOCKS_URL}?${query.toString()}`, credentials })\n .then((users) => users.map(parseUser))\n}\n\nconst addBackup = ({ credentials }) => {\n return promisedRequest({\n url: PLEROMA_BACKUP_URL,\n method: 'POST',\n credentials\n })\n}\n\nconst listBackups = ({ credentials }) => {\n return promisedRequest({\n url: PLEROMA_BACKUP_URL,\n method: 'GET',\n credentials,\n params: {\n _cacheBooster: (new Date()).getTime()\n }\n })\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\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, type }) => {\n let url = MASTODON_SEARCH_2\n const 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 if (type) {\n params.push(['following', type])\n }\n\n params.push(['with_relationships', true])\n\n const queryString = map(params, (param) => `${param[0]}=${param[1]}`).join('&')\n url += `?${queryString}`\n\n return fetch(url, { headers: authHeaders(credentials) })\n .then((data) => {\n if (data.ok) {\n return data\n }\n throw new Error('Error fetching search result', data)\n })\n .then((data) => { return data.json() })\n .then((data) => {\n data.accounts = data.accounts.slice(0, limit).map(u => parseUser(u))\n data.statuses = data.statuses.slice(0, limit).map(s => parseStatus(s))\n return data\n })\n}\n\nconst fetchKnownDomains = ({ credentials }) => {\n return promisedRequest({ url: MASTODON_KNOWN_DOMAIN_LIST_URL, credentials })\n}\n\nconst fetchDomainMutes = ({ credentials }) => {\n return promisedRequest({ url: MASTODON_DOMAIN_BLOCKS_URL, credentials })\n}\n\nconst muteDomain = ({ domain, credentials }) => {\n return promisedRequest({\n url: MASTODON_DOMAIN_BLOCKS_URL,\n method: 'POST',\n payload: { domain },\n credentials\n })\n}\n\nconst unmuteDomain = ({ domain, credentials }) => {\n return promisedRequest({\n url: MASTODON_DOMAIN_BLOCKS_URL,\n method: 'DELETE',\n payload: { domain },\n credentials\n })\n}\n\nconst dismissNotification = ({ credentials, id }) => {\n return promisedRequest({\n url: MASTODON_DISMISS_NOTIFICATION_URL(id),\n method: 'POST',\n payload: { id },\n credentials\n })\n}\n\nconst adminFetchAnnouncements = ({ credentials }) => {\n return promisedRequest({ url: PLEROMA_ANNOUNCEMENTS_URL, credentials })\n}\n\nconst fetchAnnouncements = ({ credentials }) => {\n return promisedRequest({ url: MASTODON_ANNOUNCEMENTS_URL, credentials })\n}\n\nconst dismissAnnouncement = ({ id, credentials }) => {\n return promisedRequest({\n url: MASTODON_ANNOUNCEMENTS_DISMISS_URL(id),\n credentials,\n method: 'POST'\n })\n}\n\nconst announcementToPayload = ({ content, startsAt, endsAt, allDay }) => {\n const payload = { content }\n\n if (typeof startsAt !== 'undefined') {\n payload.starts_at = startsAt ? new Date(startsAt).toISOString() : null\n }\n\n if (typeof endsAt !== 'undefined') {\n payload.ends_at = endsAt ? new Date(endsAt).toISOString() : null\n }\n\n if (typeof allDay !== 'undefined') {\n payload.all_day = allDay\n }\n\n return payload\n}\n\nconst postAnnouncement = ({ credentials, content, startsAt, endsAt, allDay }) => {\n return promisedRequest({\n url: PLEROMA_POST_ANNOUNCEMENT_URL,\n credentials,\n method: 'POST',\n payload: announcementToPayload({ content, startsAt, endsAt, allDay })\n })\n}\n\nconst editAnnouncement = ({ id, credentials, content, startsAt, endsAt, allDay }) => {\n return promisedRequest({\n url: PLEROMA_EDIT_ANNOUNCEMENT_URL(id),\n credentials,\n method: 'PATCH',\n payload: announcementToPayload({ content, startsAt, endsAt, allDay })\n })\n}\n\nconst deleteAnnouncement = ({ id, credentials }) => {\n return promisedRequest({\n url: PLEROMA_DELETE_ANNOUNCEMENT_URL(id),\n credentials,\n method: 'DELETE'\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 'status.update'\n])\n\nconst PLEROMA_STREAMING_EVENTS = new Set([\n 'pleroma:chat_update'\n])\n\n// A thin wrapper around WebSocket API that allows adding a pre-processor to it\n// Uses EventTarget and a CustomEvent to proxy events\nexport const ProcessedWS = ({\n url,\n preprocessor = handleMastoWS,\n id = 'Unknown'\n}) => {\n const eventTarget = new EventTarget()\n const socket = new WebSocket(url)\n if (!socket) throw new Error(`Failed to create socket ${id}`)\n const proxy = (original, eventName, processor = a => a) => {\n original.addEventListener(eventName, (eventData) => {\n eventTarget.dispatchEvent(new CustomEvent(\n eventName,\n { detail: processor(eventData) }\n ))\n })\n }\n socket.addEventListener('open', (wsEvent) => {\n console.debug(`[WS][${id}] Socket connected`, wsEvent)\n })\n socket.addEventListener('error', (wsEvent) => {\n console.debug(`[WS][${id}] Socket errored`, wsEvent)\n })\n socket.addEventListener('close', (wsEvent) => {\n console.debug(\n `[WS][${id}] Socket disconnected with code ${wsEvent.code}`,\n wsEvent\n )\n })\n // Commented code reason: very spammy, uncomment to enable message debug logging\n /*\n socket.addEventListener('message', (wsEvent) => {\n console.debug(\n `[WS][${id}] Message received`,\n wsEvent\n )\n })\n /**/\n\n proxy(socket, 'open')\n proxy(socket, 'close')\n proxy(socket, 'message', preprocessor)\n proxy(socket, 'error')\n\n // 1000 = Normal Closure\n eventTarget.close = () => { socket.close(1000, 'Shutting down socket') }\n eventTarget.getState = () => socket.readyState\n\n return eventTarget\n}\n\nexport const handleMastoWS = (wsEvent) => {\n const { data } = wsEvent\n if (!data) return\n const parsedEvent = JSON.parse(data)\n const { event, payload } = parsedEvent\n if (MASTODON_STREAMING_EVENTS.has(event) || PLEROMA_STREAMING_EVENTS.has(event)) {\n // MastoBE and PleromaBE both send payload for delete as a PLAIN string\n if (event === 'delete') {\n return { event, id: payload }\n }\n const data = payload ? JSON.parse(payload) : null\n if (event === 'update') {\n return { event, status: parseStatus(data) }\n } else if (event === 'status.update') {\n return { event, status: parseStatus(data) }\n } else if (event === 'notification') {\n return { event, notification: parseNotification(data) }\n } else if (event === 'pleroma:chat_update') {\n return { event, chatUpdate: parseChat(data) }\n }\n } else {\n console.warn('Unknown event', wsEvent)\n return null\n }\n}\n\nexport const WSConnectionStatus = Object.freeze({\n JOINED: 1,\n CLOSED: 2,\n ERROR: 3,\n DISABLED: 4,\n STARTING: 5,\n STARTING_INITIAL: 6\n})\n\nconst chats = ({ credentials }) => {\n return fetch(PLEROMA_CHATS_URL, { headers: authHeaders(credentials) })\n .then((data) => data.json())\n .then((data) => {\n return { chats: data.map(parseChat).filter(c => c) }\n })\n}\n\nconst getOrCreateChat = ({ accountId, credentials }) => {\n return promisedRequest({\n url: PLEROMA_CHAT_URL(accountId),\n method: 'POST',\n credentials\n })\n}\n\nconst chatMessages = ({ id, credentials, maxId, sinceId, limit = 20 }) => {\n let url = PLEROMA_CHAT_MESSAGES_URL(id)\n const args = [\n maxId && `max_id=${maxId}`,\n sinceId && `since_id=${sinceId}`,\n limit && `limit=${limit}`\n ].filter(_ => _).join('&')\n\n url = url + (args ? '?' + args : '')\n\n return promisedRequest({\n url,\n method: 'GET',\n credentials\n })\n}\n\nconst sendChatMessage = ({ id, content, mediaId = null, idempotencyKey, credentials }) => {\n const payload = {\n content\n }\n\n if (mediaId) {\n payload.media_id = mediaId\n }\n\n const headers = {}\n\n if (idempotencyKey) {\n headers['idempotency-key'] = idempotencyKey\n }\n\n return promisedRequest({\n url: PLEROMA_CHAT_MESSAGES_URL(id),\n method: 'POST',\n payload,\n credentials,\n headers\n })\n}\n\nconst readChat = ({ id, lastReadId, credentials }) => {\n return promisedRequest({\n url: PLEROMA_CHAT_READ_URL(id),\n method: 'POST',\n payload: {\n last_read_id: lastReadId\n },\n credentials\n })\n}\n\nconst deleteChatMessage = ({ chatId, messageId, credentials }) => {\n return promisedRequest({\n url: PLEROMA_DELETE_CHAT_MESSAGE_URL(chatId, messageId),\n method: 'DELETE',\n credentials\n })\n}\n\nconst setReportState = ({ id, state, credentials }) => {\n // TODO: Can't use promisedRequest because on OK this does not return json\n // See https://git.pleroma.social/pleroma/pleroma-fe/-/merge_requests/1322\n return fetch(PLEROMA_ADMIN_REPORTS, {\n headers: {\n ...authHeaders(credentials),\n Accept: 'application/json',\n 'Content-Type': 'application/json'\n },\n method: 'PATCH',\n body: JSON.stringify({\n reports: [{\n id,\n state\n }]\n })\n })\n .then(data => {\n if (data.status >= 500) {\n throw Error(data.statusText)\n } else if (data.status >= 400) {\n return data.json()\n }\n return data\n })\n .then(data => {\n if (data.errors) {\n throw Error(data.errors[0].message)\n }\n })\n}\n\n// ADMIN STUFF // EXPERIMENTAL\nconst fetchInstanceDBConfig = ({ credentials }) => {\n return fetch(PLEROMA_ADMIN_CONFIG_URL, {\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}\n\nconst fetchInstanceConfigDescriptions = ({ credentials }) => {\n return fetch(PLEROMA_ADMIN_DESCRIPTIONS_URL, {\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}\n\nconst fetchAvailableFrontends = ({ credentials }) => {\n return fetch(PLEROMA_ADMIN_FRONTENDS_URL, {\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}\n\nconst pushInstanceDBConfig = ({ credentials, payload }) => {\n return fetch(PLEROMA_ADMIN_CONFIG_URL, {\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n ...authHeaders(credentials)\n },\n method: 'POST',\n body: JSON.stringify(payload)\n })\n .then((response) => {\n if (response.ok) {\n return response.json()\n } else {\n return {\n error: response\n }\n }\n })\n}\n\nconst installFrontend = ({ credentials, payload }) => {\n return fetch(PLEROMA_ADMIN_FRONTENDS_INSTALL_URL, {\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n ...authHeaders(credentials)\n },\n method: 'POST',\n body: JSON.stringify(payload)\n })\n .then((response) => {\n if (response.ok) {\n return response.json()\n } else {\n return {\n error: response\n }\n }\n })\n}\n\nconst apiService = {\n verifyCredentials,\n fetchTimeline,\n fetchPinnedStatuses,\n fetchConversation,\n fetchStatus,\n fetchStatusSource,\n fetchStatusHistory,\n fetchFriends,\n exportFriends,\n fetchFollowers,\n followUser,\n unfollowUser,\n pinOwnStatus,\n unpinOwnStatus,\n muteConversation,\n unmuteConversation,\n blockUser,\n unblockUser,\n removeUserFromFollowers,\n editUserNote,\n fetchUser,\n fetchUserByName,\n fetchUserRelationship,\n favorite,\n unfavorite,\n retweet,\n unretweet,\n bookmarkStatus,\n unbookmarkStatus,\n postStatus,\n editStatus,\n deleteStatus,\n uploadMedia,\n setMediaDescription,\n fetchMutes,\n muteUser,\n unmuteUser,\n subscribeUser,\n unsubscribeUser,\n fetchBlocks,\n fetchOAuthTokens,\n revokeOAuthToken,\n tagUser,\n untagUser,\n deleteUser,\n addRight,\n deleteRight,\n activateUser,\n deactivateUser,\n register,\n getCaptcha,\n updateProfileImages,\n updateProfile,\n importMutes,\n importBlocks,\n importFollows,\n deleteAccount,\n changeEmail,\n moveAccount,\n addAlias,\n deleteAlias,\n listAliases,\n changePassword,\n settingsMFA,\n mfaDisableOTP,\n generateMfaBackupCodes,\n mfaSetupOTP,\n mfaConfirmOTP,\n addBackup,\n listBackups,\n fetchFollowRequests,\n fetchLists,\n createList,\n getList,\n updateList,\n getListAccounts,\n addAccountsToList,\n removeAccountsFromList,\n deleteList,\n approveUser,\n denyUser,\n suggestions,\n markNotificationsAsSeen,\n dismissNotification,\n vote,\n fetchPoll,\n fetchFavoritedByUsers,\n fetchRebloggedByUsers,\n fetchEmojiReactions,\n reactWithEmoji,\n unreactWithEmoji,\n reportUser,\n updateNotificationSettings,\n search2,\n searchUsers,\n fetchKnownDomains,\n fetchDomainMutes,\n muteDomain,\n unmuteDomain,\n chats,\n getOrCreateChat,\n chatMessages,\n sendChatMessage,\n readChat,\n deleteChatMessage,\n setReportState,\n fetchUserInLists,\n fetchAnnouncements,\n dismissAnnouncement,\n postAnnouncement,\n editAnnouncement,\n deleteAnnouncement,\n adminFetchAnnouncements,\n fetchInstanceDBConfig,\n fetchInstanceConfigDescriptions,\n fetchAvailableFrontends,\n pushInstanceDBConfig,\n installFrontend\n}\n\nexport default apiService\n","import { kebabCase } from 'lodash'\n\nconst propsToNative = props => Object.keys(props).reduce((acc, cur) => {\n acc[kebabCase(cur)] = props[cur]\n return acc\n}, {})\n\nexport { propsToNative }\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 ? {\n r: parseInt(result[1], 16),\n g: parseInt(result[2], 16),\n b: parseInt(result[3], 16)\n }\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 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","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 const r = { num: round(d / YEAR), key: 'time.unit.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.unit.seconds'\n } else if (d < HOUR) {\n r.num = round(d / MINUTE)\n r.key = 'time.unit.minutes'\n } else if (d < DAY) {\n r.num = round(d / HOUR)\n r.key = 'time.unit.hours'\n } else if (d < WEEK) {\n r.num = round(d / DAY)\n r.key = 'time.unit.days'\n } else if (d < MONTH) {\n r.num = round(d / WEEK)\n r.key = 'time.unit.weeks'\n } else if (d < YEAR) {\n r.num = round(d / MONTH)\n r.key = 'time.unit.months'\n }\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\nexport const unitToSeconds = (unit, amount) => {\n switch (unit) {\n case 'minutes': return 0.001 * amount * MINUTE\n case 'hours': return 0.001 * amount * HOUR\n case 'days': return 0.001 * amount * DAY\n }\n}\n\nexport const secondsToUnit = (unit, amount) => {\n switch (unit) {\n case 'minutes': return (1000 * amount) / MINUTE\n case 'hours': return (1000 * amount) / HOUR\n case 'days': return (1000 * amount) / DAY\n }\n}\n","export const showDesktopNotification = (rootState, desktopNotificationOpts) => {\n if (!('Notification' in window && window.Notification.permission === 'granted')) return\n if (rootState.statuses.notifications.desktopNotificationSilence) { return }\n\n const desktopNotification = new window.Notification(desktopNotificationOpts.title, desktopNotificationOpts)\n // Chrome is known for not closing notifications automatically\n // according to MDN, anyway.\n setTimeout(desktopNotification.close.bind(desktopNotification), 5000)\n}\n","import escape from 'escape-html'\nimport parseLinkHeader from 'parse-link-header'\nimport { isStatusNotification } from '../notification_utils/notification_utils.js'\nimport punycode from 'punycode.js'\n\n/** NOTICE! **\n * Do not initialize UI-generated data here.\n * It will override existing data.\n *\n * i.e. user.pinnedStatusIds was set to [] here\n * UI code would update it with data but upon next user fetch\n * it would be reverted back to []\n */\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 = Object.prototype.hasOwnProperty.call(data, 'acct')\n // case for users in \"mentions\" property for statuses in MastoAPI\n const mastoShort = masto && !Object.prototype.hasOwnProperty.call(data, 'avatar')\n\n output.inLists = null\n output.id = String(data.id)\n output._original = data // used for server-side settings\n\n if (masto) {\n output.screen_name = data.acct\n output.fqn = data.fqn\n output.statusnet_profile_url = data.url\n\n // There's nothing else to get\n if (mastoShort) {\n return output\n }\n\n output.emoji = data.emojis\n output.name = escape(data.display_name)\n output.name_html = output.name\n output.name_unescaped = data.display_name\n\n output.description = data.note\n // TODO cleanup this shit, output.description is overriden with source data\n output.description_html = data.note\n\n output.fields = data.fields\n output.fields_html = data.fields.map(field => {\n return {\n name: escape(field.name),\n value: field.value\n }\n })\n output.fields_text = data.fields.map(field => {\n return {\n name: unescape(field.name.replace(/<[^>]*>/g, '')),\n value: unescape(field.value.replace(/<[^>]*>/g, ''))\n }\n })\n\n // Utilize avatar_static for gif avatars?\n output.profile_image_url = data.avatar\n output.profile_image_url_original = data.avatar\n\n // Same, utilize header_static?\n output.cover_photo = data.header\n\n output.friends_count = data.following_count\n\n output.bot = data.bot\n\n if (data.pleroma) {\n if (data.pleroma.settings_store) {\n output.storage = data.pleroma.settings_store['pleroma-fe']\n }\n const relationship = data.pleroma.relationship\n\n output.background_image = data.pleroma.background_image\n output.favicon = data.pleroma.favicon\n output.token = data.pleroma.chat_token\n\n if (relationship) {\n output.relationship = relationship\n }\n\n output.allow_following_move = data.pleroma.allow_following_move\n\n output.hide_follows = data.pleroma.hide_follows\n output.hide_followers = data.pleroma.hide_followers\n output.hide_follows_count = data.pleroma.hide_follows_count\n output.hide_followers_count = data.pleroma.hide_followers_count\n\n output.rights = {\n moderator: data.pleroma.is_moderator,\n admin: data.pleroma.is_admin\n }\n // TODO: Clean up in UI? This is duplication from what BE does for qvitterapi\n if (output.rights.admin) {\n output.role = 'admin'\n } else if (output.rights.moderator) {\n output.role = 'moderator'\n } else {\n output.role = 'member'\n }\n\n output.birthday = data.pleroma.birthday\n\n if (data.pleroma.privileges) {\n output.privileges = data.pleroma.privileges\n } else if (data.pleroma.is_admin) {\n output.privileges = [\n 'users_read',\n 'users_manage_invites',\n 'users_manage_activation_state',\n 'users_manage_tags',\n 'users_manage_credentials',\n 'users_delete',\n 'messages_read',\n 'messages_delete',\n 'instances_delete',\n 'reports_manage_reports',\n 'moderation_log_read',\n 'announcements_manage_announcements',\n 'emoji_manage_emoji',\n 'statistics_read'\n ]\n } else if (data.pleroma.is_moderator) {\n output.privileges = [\n 'messages_delete',\n 'reports_manage_reports'\n ]\n } else {\n output.privileges = []\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 output.show_birthday = data.pleroma.show_birthday\n }\n }\n\n // TODO: handle is_local\n output.is_local = !output.screen_name.includes('@')\n } else {\n output.screen_name = data.screen_name\n\n output.name = data.name\n output.name_html = data.name_html\n\n output.description = data.description\n output.description_html = data.description_html\n\n output.profile_image_url = data.profile_image_url\n output.profile_image_url_original = data.profile_image_url_original\n\n output.cover_photo = data.cover_photo\n\n output.friends_count = data.friends_count\n\n // output.bot = ??? missing\n\n output.statusnet_profile_url = data.statusnet_profile_url\n\n output.is_local = data.is_local\n output.role = data.role\n output.show_role = data.show_role\n\n if (data.rights) {\n output.rights = {\n moderator: data.rights.delete_others_notice,\n admin: data.rights.admin\n }\n }\n output.no_rich_text = data.no_rich_text\n output.default_scope = data.default_scope\n output.hide_follows = data.hide_follows\n output.hide_followers = data.hide_followers\n output.hide_follows_count = data.hide_follows_count\n output.hide_followers_count = data.hide_followers_count\n output.background_image = data.background_image\n // Websocket token\n output.token = data.token\n\n // Convert relationsip data to expected format\n output.relationship = {\n muting: data.muted,\n blocking: data.statusnet_blocking,\n followed_by: data.follows_you,\n following: data.following\n }\n }\n\n output.created_at = new Date(data.created_at)\n output.locked = data.locked\n output.followers_count = data.followers_count\n output.statuses_count = data.statuses_count\n\n if (data.pleroma) {\n output.follow_request_count = data.pleroma.follow_request_count\n\n output.tags = data.pleroma.tags\n\n // deactivated was changed to is_active in Pleroma 2.3.0\n // so check if is_active is present\n output.deactivated = typeof data.pleroma.is_active !== 'undefined'\n ? !data.pleroma.is_active // new backend\n : data.pleroma.deactivated // old backend\n\n output.notification_settings = data.pleroma.notification_settings\n output.unread_chat_count = data.pleroma.unread_chat_count\n }\n\n output.tags = output.tags || []\n output.rights = output.rights || {}\n output.notification_settings = output.notification_settings || {}\n\n // Convert punycode to unicode for UI\n output.screen_name_ui = output.screen_name\n if (output.screen_name && output.screen_name.includes('@')) {\n const parts = output.screen_name.split('@')\n const unicodeDomain = punycode.toUnicode(parts[1])\n if (unicodeDomain !== parts[1]) {\n // Add some identifier so users can potentially spot spoofing attempts:\n // lain.com and xn--lin-6cd.com would appear identical otherwise.\n output.screen_name_ui_contains_non_ascii = true\n output.screen_name_ui = [parts[0], unicodeDomain].join('@')\n } else {\n output.screen_name_ui_contains_non_ascii = false\n }\n }\n\n return output\n}\n\nexport const parseAttachment = (data) => {\n const output = {}\n const masto = !Object.prototype.hasOwnProperty.call(data, 'oembed')\n\n if (masto) {\n // Not exactly same...\n output.mimetype = data.pleroma ? data.pleroma.mime_type : data.type\n output.meta = data.meta // not present in BE yet\n output.id = data.id\n } else {\n output.mimetype = data.mimetype\n // output.meta = ??? missing\n }\n\n output.url = data.url\n output.large_thumb_url = data.preview_url\n output.description = data.description\n\n return output\n}\n\nexport const parseSource = (data) => {\n const output = {}\n\n output.text = data.text\n output.spoiler_text = data.spoiler_text\n output.content_type = data.content_type\n\n return output\n}\n\nexport const parseStatus = (data) => {\n const output = {}\n const masto = Object.prototype.hasOwnProperty.call(data, 'account')\n\n if (masto) {\n output.favorited = data.favourited\n output.fave_num = data.favourites_count\n\n output.repeated = data.reblogged\n output.repeat_num = data.reblogs_count\n\n output.bookmarked = data.bookmarked\n\n output.type = data.reblog ? 'retweet' : 'status'\n output.nsfw = data.sensitive\n\n output.raw_html = data.content\n output.emojis = data.emojis\n\n output.tags = data.tags\n\n output.edited_at = data.edited_at\n\n if (data.pleroma) {\n const { pleroma } = data\n output.text = pleroma.content ? data.pleroma.content['text/plain'] : data.content\n output.summary = pleroma.spoiler_text ? data.pleroma.spoiler_text['text/plain'] : data.spoiler_text\n output.statusnet_conversation_id = data.pleroma.conversation_id\n output.is_local = pleroma.local\n output.in_reply_to_screen_name = data.pleroma.in_reply_to_account_acct\n output.thread_muted = pleroma.thread_muted\n output.emoji_reactions = pleroma.emoji_reactions\n output.parent_visible = pleroma.parent_visible === undefined ? true : pleroma.parent_visible\n output.quote = pleroma.quote ? parseStatus(pleroma.quote) : undefined\n output.quote_id = pleroma.quote_id ? pleroma.quote_id : (output.quote ? output.quote.id : undefined)\n output.quote_url = pleroma.quote_url\n output.quote_visible = pleroma.quote_visible\n } else {\n output.text = data.content\n output.summary = data.spoiler_text\n }\n\n output.in_reply_to_status_id = data.in_reply_to_id\n output.in_reply_to_user_id = data.in_reply_to_account_id\n output.replies_count = data.replies_count\n\n if (output.type === 'retweet') {\n output.retweeted_status = parseStatus(data.reblog)\n }\n\n output.summary_raw_html = escape(data.spoiler_text)\n output.external_url = data.url\n output.poll = data.poll\n if (output.poll) {\n output.poll.options = (output.poll.options || []).map(field => ({\n ...field,\n title_html: escape(field.title)\n }))\n }\n output.pinned = data.pinned\n output.muted = data.muted\n } else {\n output.favorited = data.favorited\n output.fave_num = data.fave_num\n\n output.repeated = data.repeated\n output.repeat_num = data.repeat_num\n\n // catchall, temporary\n // Object.assign(output, data)\n\n output.type = qvitterStatusType(data)\n\n if (data.nsfw === undefined) {\n output.nsfw = isNsfw(data)\n if (data.retweeted_status) {\n output.nsfw = data.retweeted_status.nsfw\n }\n } else {\n output.nsfw = data.nsfw\n }\n\n output.raw_html = data.statusnet_html\n output.text = data.text\n\n output.in_reply_to_status_id = data.in_reply_to_status_id\n output.in_reply_to_user_id = data.in_reply_to_user_id\n output.in_reply_to_screen_name = data.in_reply_to_screen_name\n output.statusnet_conversation_id = data.statusnet_conversation_id\n\n if (output.type === 'retweet') {\n output.retweeted_status = parseStatus(data.retweeted_status)\n }\n\n output.summary = data.summary\n output.summary_html = data.summary_html\n output.external_url = data.external_url\n output.is_local = data.is_local\n }\n\n output.id = String(data.id)\n output.visibility = data.visibility\n output.card = data.card\n output.created_at = new Date(data.created_at)\n\n // Converting to string, the right way.\n output.in_reply_to_status_id = output.in_reply_to_status_id\n ? String(output.in_reply_to_status_id)\n : null\n output.in_reply_to_user_id = output.in_reply_to_user_id\n ? String(output.in_reply_to_user_id)\n : null\n\n output.user = parseUser(masto ? data.account : data.user)\n\n output.attentions = ((masto ? data.mentions : data.attentions) || []).map(parseUser)\n\n output.attachments = ((masto ? data.media_attachments : data.attachments) || [])\n .map(parseAttachment)\n\n const retweetedStatus = masto ? data.reblog : data.retweeted_status\n if (retweetedStatus) {\n output.retweeted_status = parseStatus(retweetedStatus)\n }\n\n output.favoritedBy = []\n output.rebloggedBy = []\n\n if (Object.prototype.hasOwnProperty.call(data, 'originalStatus')) {\n Object.assign(output, data.originalStatus)\n }\n\n return output\n}\n\nexport const parseNotification = (data) => {\n const mastoDict = {\n favourite: 'like',\n reblog: 'repeat'\n }\n const masto = !Object.prototype.hasOwnProperty.call(data, 'ntype')\n const output = {}\n\n if (masto) {\n output.type = mastoDict[data.type] || data.type\n output.seen = data.pleroma.is_seen\n output.status = isStatusNotification(output.type) ? parseStatus(data.status) : null\n output.action = output.status // TODO: Refactor, this is unneeded\n output.target = output.type !== 'move'\n ? null\n : parseUser(data.target)\n output.from_profile = parseUser(data.account)\n output.emoji = data.emoji\n output.emoji_url = data.emoji_url\n if (data.report) {\n output.report = data.report\n output.report.content = data.report.content\n output.report.acct = parseUser(data.report.account)\n output.report.actor = parseUser(data.report.actor)\n output.report.statuses = data.report.statuses.map(parseStatus)\n }\n } else {\n const parsedNotice = parseStatus(data.notice)\n output.type = data.ntype\n output.seen = Boolean(data.is_seen)\n output.status = output.type === 'like'\n ? parseStatus(data.notice.favorited_status)\n : parsedNotice\n output.action = parsedNotice\n output.from_profile = output.type === 'pleroma:chat_mention' ? parseUser(data.account) : parseUser(data.from_profile)\n }\n\n output.created_at = new Date(data.created_at)\n output.id = parseInt(data.id)\n\n return output\n}\n\nconst isNsfw = (status) => {\n const nsfwRegex = /#nsfw/i\n return (status.tags || []).includes('nsfw') || !!(status.text || '').match(nsfwRegex)\n}\n\nexport const parseLinkHeaderPagination = (linkHeader, opts = {}) => {\n const flakeId = opts.flakeId\n const parsedLinkHeader = parseLinkHeader(linkHeader)\n if (!parsedLinkHeader) return\n const maxId = parsedLinkHeader.next.max_id\n const minId = parsedLinkHeader.prev.min_id\n\n return {\n maxId: flakeId ? maxId : parseInt(maxId, 10),\n minId: flakeId ? minId : parseInt(minId, 10)\n }\n}\n\nexport const parseChat = (chat) => {\n const output = {}\n output.id = chat.id\n output.account = parseUser(chat.account)\n output.unread = chat.unread\n output.lastMessage = parseChatMessage(chat.last_message)\n output.updated_at = new Date(chat.updated_at)\n return output\n}\n\nexport const parseChatMessage = (message) => {\n if (!message) { return }\n if (message.isNormalized) { return message }\n const output = message\n output.id = message.id\n output.created_at = new Date(message.created_at)\n output.chat_id = message.chat_id\n output.emojis = message.emojis\n output.content = message.content\n if (message.attachment) {\n output.attachments = [parseAttachment(message.attachment)]\n } else {\n output.attachments = []\n }\n output.pending = !!message.pending\n output.error = false\n output.idempotency_key = message.idempotency_key\n output.isNormalized = true\n return output\n}\n","const createFaviconService = () => {\n const favicons = []\n const faviconWidth = 128\n const faviconHeight = 128\n const badgeRadius = 32\n\n const initFaviconService = () => {\n const nodes = document.querySelectorAll('link[rel=\"icon\"]')\n nodes.forEach(favicon => {\n if (favicon) {\n const favcanvas = document.createElement('canvas')\n favcanvas.width = faviconWidth\n favcanvas.height = faviconHeight\n const favimg = new Image()\n favimg.crossOrigin = 'anonymous'\n favimg.src = favicon.href\n const favcontext = favcanvas.getContext('2d')\n favicons.push({ favcanvas, favimg, favcontext, favicon })\n }\n })\n }\n\n const isImageLoaded = (img) => img.complete && img.naturalHeight !== 0\n\n const clearFaviconBadge = () => {\n if (favicons.length === 0) return\n favicons.forEach(({ favimg, favcanvas, favcontext, favicon }) => {\n if (!favimg || !favcontext || !favicon) return\n\n favcontext.clearRect(0, 0, faviconWidth, faviconHeight)\n if (isImageLoaded(favimg)) {\n favcontext.drawImage(favimg, 0, 0, favimg.width, favimg.height, 0, 0, faviconWidth, faviconHeight)\n }\n favicon.href = favcanvas.toDataURL('image/png')\n })\n }\n\n const drawFaviconBadge = () => {\n if (favicons.length === 0) return\n clearFaviconBadge()\n favicons.forEach(({ favimg, favcanvas, favcontext, favicon }) => {\n if (!favimg || !favcontext || !favcontext) return\n\n const style = getComputedStyle(document.body)\n const badgeColor = `${style.getPropertyValue('--badgeNotification') || 'rgb(240, 100, 100)'}`\n\n if (isImageLoaded(favimg)) {\n favcontext.drawImage(favimg, 0, 0, favimg.width, favimg.height, 0, 0, faviconWidth, faviconHeight)\n }\n favcontext.fillStyle = badgeColor\n favcontext.beginPath()\n favcontext.arc(faviconWidth - badgeRadius, badgeRadius, badgeRadius, 0, 2 * Math.PI, false)\n favcontext.fill()\n favicon.href = favcanvas.toDataURL('image/png')\n })\n }\n\n return {\n initFaviconService,\n clearFaviconBadge,\n drawFaviconBadge\n }\n}\n\nconst FaviconService = createFaviconService()\n\nexport default FaviconService\n","const fileSizeFormat = (numArg) => {\n const units = ['B', 'KiB', 'MiB', 'GiB', 'TiB']\n let num = numArg\n if (num < 1) {\n return num + ' ' + units[0]\n }\n\n const 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 const unit = units[exponent]\n return { num, unit }\n}\nconst fileSizeFormatService = {\n fileSizeFormat\n}\nexport default fileSizeFormatService\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.\nexport const fileType = mimetype => {\n if (mimetype.match(/flash/)) {\n return 'flash'\n }\n\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\nexport const fileTypeExt = url => {\n if (url.match(/\\.(png|jpe?g|gif|webp|avif)$/)) {\n return 'image'\n }\n if (url.match(/\\.(ogv|mp4|webm|mov)$/)) {\n return 'video'\n }\n if (url.match(/\\.(it|s3m|mod|umx|mp3|aac|m4a|flac|alac|ogg|oga|opus|wav|ape|midi?)$/)) {\n return 'audio'\n }\n return 'unknown'\n}\n\nexport const fileMatchesSomeType = (types, file) =>\n types.some(type => fileType(file.mimetype) === type)\n\nconst fileTypeService = {\n fileType,\n fileTypeExt,\n fileMatchesSomeType\n}\n\nexport default fileTypeService\n","import languagesObject from '../../i18n/messages'\nimport ISO6391 from 'iso-639-1'\nimport _ from 'lodash'\n\nconst specialLanguageCodes = {\n ja_easy: 'ja',\n zh_Hant: 'zh-HANT',\n zh: 'zh-Hans'\n}\n\nconst internalToBrowserLocale = code => specialLanguageCodes[code] || code\n\nconst internalToBackendLocale = code => internalToBrowserLocale(code).replace('_', '-')\nconst internalToBackendLocaleMulti = codes => {\n const langs = Array.isArray(codes) ? codes : [codes]\n return langs.map(internalToBackendLocale).join(',')\n}\n\nconst getLanguageName = (code) => {\n const specialLanguageNames = {\n ja_easy: 'やさしいにほんご',\n 'nan-TW': '臺語(閩南語)',\n zh: '简体中文',\n zh_Hant: '繁體中文'\n }\n const languageName = specialLanguageNames[code] || ISO6391.getNativeName(code)\n const browserLocale = internalToBrowserLocale(code)\n return languageName.charAt(0).toLocaleUpperCase(browserLocale) + languageName.slice(1)\n}\n\nconst languages = _.map(languagesObject.languages, (code) => ({ code, name: getLanguageName(code) })).sort((a, b) => a.name.localeCompare(b.name))\n\nconst localeService = {\n internalToBrowserLocale,\n internalToBackendLocale,\n internalToBackendLocaleMulti,\n languages,\n getLanguageName\n}\n\nexport default localeService\n","import { filter, sortBy, includes } from 'lodash'\nimport { muteWordHits } from '../status_parser/status_parser.js'\nimport { showDesktopNotification } from '../desktop_notification_utils/desktop_notification_utils.js'\n\nexport const notificationsFromStore = store => store.state.statuses.notifications.data\n\nexport const visibleTypes = store => {\n const rootState = store.rootState || store.state\n\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.followRequest && 'follow_request',\n rootState.config.notificationVisibility.moves && 'move',\n rootState.config.notificationVisibility.emojiReactions && 'pleroma:emoji_reaction',\n rootState.config.notificationVisibility.reports && 'pleroma:report',\n rootState.config.notificationVisibility.polls && 'poll'\n ].filter(_ => _))\n}\n\nconst statusNotifications = ['like', 'mention', 'repeat', 'pleroma:emoji_reaction', 'poll']\n\nexport const isStatusNotification = (type) => includes(statusNotifications, type)\n\nexport const isValidNotification = (notification) => {\n if (isStatusNotification(notification.type) && !notification.status) {\n return false\n }\n return true\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 isMutedNotification = (store, notification) => {\n if (!notification.status) return\n return notification.status.muted || muteWordHits(notification.status, store.rootGetters.mergedConfig.muteWords).length > 0\n}\n\nexport const maybeShowNotification = (store, notification) => {\n const rootState = store.rootState || store.state\n\n if (notification.seen) return\n if (!visibleTypes(store).includes(notification.type)) return\n if (notification.type === 'mention' && isMutedNotification(store, notification)) return\n\n const notificationObject = prepareNotificationObject(notification, store.rootGetters.i18n)\n showDesktopNotification(rootState, notificationObject)\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\nexport const prepareNotificationObject = (notification, i18n) => {\n const notifObj = {\n tag: notification.id\n }\n const status = notification.status\n const title = notification.from_profile.name\n notifObj.title = title\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 case 'pleroma:report':\n i18nString = 'submitted_report'\n break\n case 'poll':\n i18nString = 'poll_ended'\n break\n }\n\n if (notification.type === 'pleroma:emoji_reaction') {\n notifObj.body = i18n.t('notifications.reacted_with', [notification.emoji])\n } else if (i18nString) {\n notifObj.body = 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 return notifObj\n}\n","import apiService from '../api/api.service.js'\nimport { promiseInterval } from '../promise_interval/promise_interval.js'\n\n// For using include_types when fetching notifications.\n// Note: chat_mention excluded as pleroma-fe polls them separately\nconst mastoApiNotificationTypes = [\n 'mention',\n 'favourite',\n 'reblog',\n 'follow',\n 'move',\n 'pleroma:emoji_reaction',\n 'pleroma:report'\n]\n\nconst update = ({ store, notifications, older }) => {\n store.dispatch('addNewNotifications', { notifications, older })\n}\n\nconst fetchAndUpdate = ({ store, credentials, older = false, since }) => {\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.includeTypes = mastoApiNotificationTypes\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 (since === undefined && timelineData.maxId !== Number.POSITIVE_INFINITY) {\n args.since = timelineData.maxId\n } else if (since !== null) {\n args.since = since\n }\n const result = fetchNotifications({ store, args, older })\n\n // If there's any unread notifications, try fetch notifications since\n // the newest read notification to check if any of the unread notifs\n // have changed their 'seen' state (marked as read in another session), so\n // we can update the state in this session to mark them as read as well.\n // The normal maxId-check does not tell if older notifications have changed\n const notifications = timelineData.data\n const readNotifsIds = notifications.filter(n => n.seen).map(n => n.id)\n const numUnseenNotifs = notifications.length - readNotifsIds.length\n if (numUnseenNotifs > 0 && readNotifsIds.length > 0) {\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((response) => {\n if (response.errors) {\n throw new Error(`${response.status} ${response.statusText}`)\n }\n const notifications = response.data\n update({ store, notifications, older })\n return notifications\n })\n .catch((error) => {\n store.dispatch('pushGlobalNotice', {\n level: 'error',\n messageKey: 'notifications.error',\n messageArgs: [error.message],\n timeout: 5000\n })\n console.error(error)\n })\n}\n\nconst startFetching = ({ 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 const boundFetchAndUpdate = () => fetchAndUpdate({ credentials, store })\n boundFetchAndUpdate()\n return promiseInterval(boundFetchAndUpdate, 10000)\n}\n\nconst notificationsFetcher = {\n fetchAndUpdate,\n startFetching\n}\n\nexport default notificationsFetcher\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 && window.getComputedStyle(child.offsetParent).position !== 'sticky' && (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","\n// promiseInterval - replacement for setInterval for promises, starts counting\n// the interval only after a promise is done instead of immediately.\n// - promiseCall is a function that returns a promise, it's called the first\n// time after the first interval.\n// - interval is the interval delay in ms.\n\nexport const promiseInterval = (promiseCall, interval) => {\n let stopped = false\n let timeout = null\n\n const func = () => {\n const promise = promiseCall()\n // something unexpected happened and promiseCall did not\n // return a promise, abort the loop.\n if (!(promise && promise.finally)) {\n console.warn('promiseInterval: promise call did not return a promise, stopping interval.')\n return\n }\n promise.finally(() => {\n if (stopped) return\n timeout = window.setTimeout(func, interval)\n })\n }\n\n const stopFetcher = () => {\n stopped = true\n window.clearTimeout(timeout)\n }\n\n timeout = window.setTimeout(func, interval)\n\n return { stop: stopFetcher }\n}\n","import { filter } from 'lodash'\n\nexport const muteWordHits = (status, muteWords) => {\n const statusText = status.text.toLowerCase()\n const statusSummary = status.summary.toLowerCase()\n const hits = filter(muteWords, (muteWord) => {\n return statusText.includes(muteWord.toLowerCase()) || statusSummary.includes(muteWord.toLowerCase())\n })\n\n return hits\n}\n","import { map } from 'lodash'\nimport apiService from '../api/api.service.js'\n\nconst postStatus = ({\n store,\n status,\n spoilerText,\n visibility,\n sensitive,\n poll,\n media = [],\n inReplyToStatusId = undefined,\n quoteId = undefined,\n contentType = 'text/plain',\n preview = false,\n idempotencyKey = ''\n}) => {\n const mediaIds = map(media, 'id')\n\n return apiService.postStatus({\n credentials: store.state.users.currentUser.credentials,\n status,\n spoilerText,\n visibility,\n sensitive,\n mediaIds,\n inReplyToStatusId,\n quoteId,\n contentType,\n poll,\n preview,\n idempotencyKey\n })\n .then((data) => {\n if (!data.error && !preview) {\n store.dispatch('addNewStatuses', {\n statuses: [data],\n timeline: 'friends',\n showImmediately: true,\n noIdUpdate: true // To prevent missing notices on next pull.\n })\n }\n return data\n })\n .catch((err) => {\n return {\n error: err.message\n }\n })\n}\n\nconst editStatus = ({\n store,\n statusId,\n status,\n spoilerText,\n sensitive,\n poll,\n media = [],\n contentType = 'text/plain'\n}) => {\n const mediaIds = map(media, 'id')\n\n return apiService.editStatus({\n id: statusId,\n credentials: store.state.users.currentUser.credentials,\n status,\n spoilerText,\n sensitive,\n poll,\n mediaIds,\n contentType\n })\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 console.error('Error editing status', err)\n return {\n error: err.message\n }\n })\n}\n\nconst uploadMedia = ({ store, formData }) => {\n const credentials = store.state.users.currentUser.credentials\n return apiService.uploadMedia({ credentials, formData })\n}\n\nconst setMediaDescription = ({ store, id, description }) => {\n const credentials = store.state.users.currentUser.credentials\n return apiService.setMediaDescription({ credentials, id, description })\n}\n\nconst statusPosterService = {\n postStatus,\n editStatus,\n uploadMedia,\n setMediaDescription\n}\n\nexport default statusPosterService\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'\nimport { defaultState } from '../../modules/config.js'\n\nexport const applyTheme = (input) => {\n const { rules } = generatePreset(input)\n const head = document.head\n const body = document.body\n body.classList.add('hidden')\n\n const styleEl = document.createElement('style')\n head.appendChild(styleEl)\n const styleSheet = styleEl.sheet\n\n styleSheet.toString()\n styleSheet.insertRule(`:root { ${rules.radii} }`, 'index-max')\n styleSheet.insertRule(`:root { ${rules.colors} }`, 'index-max')\n styleSheet.insertRule(`:root { ${rules.shadows} }`, 'index-max')\n styleSheet.insertRule(`:root { ${rules.fonts} }`, 'index-max')\n body.classList.remove('hidden')\n}\n\nconst configColumns = ({ sidebarColumnWidth, contentColumnWidth, notifsColumnWidth, emojiReactionsScale }) =>\n ({ sidebarColumnWidth, contentColumnWidth, notifsColumnWidth, emojiReactionsScale })\n\nconst defaultConfigColumns = configColumns(defaultState)\n\nexport const applyConfig = (config) => {\n const columns = configColumns(config)\n\n if (columns === defaultConfigColumns) {\n return\n }\n\n const head = document.head\n const body = document.body\n body.classList.add('hidden')\n\n const rules = Object\n .entries(columns)\n .filter(([k, v]) => v)\n .map(([k, v]) => `--${k}: ${v}`).join(';')\n\n const styleEl = document.createElement('style')\n head.appendChild(styleEl)\n const styleSheet = styleEl.sheet\n\n styleSheet.toString()\n styleSheet.insertRule(`:root { ${rules} }`, 'index-max')\n body.classList.remove('hidden')\n}\n\nexport const getCssShadow = (input, usesDropShadow) => {\n if (input.length === 0) {\n return 'none'\n }\n\n return input\n .filter(_ => usesDropShadow ? _.inset : _)\n .map((shad) => [\n shad.x,\n shad.y,\n shad.blur,\n shad.spread\n ].map(_ => _ + 'px').concat([\n getCssColor(shad.color, shad.alpha),\n shad.inset ? 'inset' : ''\n ]).join(' ')).join(', ')\n}\n\nconst getCssShadowFilter = (input) => {\n if (input.length === 0) {\n return 'none'\n }\n\n return input\n // drop-shadow doesn't support inset or spread\n .filter((shad) => !shad.inset && Number(shad.spread) === 0)\n .map((shad) => [\n shad.x,\n shad.y,\n // drop-shadow's blur is twice as strong compared to box-shadow\n shad.blur / 2\n ].map(_ => _ + 'px').concat([\n getCssColor(shad.color, shad.alpha)\n ]).join(' '))\n .map(_ => `drop-shadow(${_})`)\n .join(' ')\n}\n\nexport const generateColors = (themeData) => {\n const sourceColors = !themeData.themeEngineVersion\n ? colors2to3(themeData.colors || themeData)\n : themeData.colors || themeData\n\n const { colors, opacity } = getColors(sourceColors, themeData.opacity || {})\n\n const htmlColors = Object.entries(colors)\n .reduce((acc, [k, v]) => {\n if (!v) return acc\n acc.solid[k] = rgb2hex(v)\n acc.complete[k] = typeof v.a === 'undefined' ? rgb2hex(v) : rgba2css(v)\n return acc\n }, { complete: {}, solid: {} })\n return {\n rules: {\n colors: Object.entries(htmlColors.complete)\n .filter(([k, v]) => v)\n .map(([k, v]) => `--${k}: ${v}`)\n .join(';')\n },\n theme: {\n colors: htmlColors.solid,\n opacity\n }\n }\n}\n\nexport const generateRadii = (input) => {\n let inputRadii = input.radii || {}\n // v1 -> v2\n if (typeof input.btnRadius !== 'undefined') {\n inputRadii = Object\n .entries(input)\n .filter(([k, v]) => k.endsWith('Radius'))\n .reduce((acc, e) => { acc[e[0].split('Radius')[0]] = e[1]; return acc }, {})\n }\n const radii = Object.entries(inputRadii).filter(([k, v]) => v).reduce((acc, [k, v]) => {\n acc[k] = v\n return acc\n }, {\n btn: 4,\n input: 4,\n checkbox: 2,\n panel: 10,\n avatar: 5,\n avatarAlt: 50,\n tooltip: 2,\n attachment: 5,\n chatMessage: inputRadii.panel\n })\n\n return {\n rules: {\n radii: Object.entries(radii).filter(([k, v]) => v).map(([k, v]) => `--${k}Radius: ${v}px`).join(';')\n },\n theme: {\n radii\n }\n }\n}\n\nexport const generateFonts = (input) => {\n const fonts = Object.entries(input.fonts || {}).filter(([k, v]) => v).reduce((acc, [k, v]) => {\n acc[k] = Object.entries(v).filter(([k, v]) => v).reduce((acc, [k, v]) => {\n acc[k] = v\n return acc\n }, acc[k])\n return acc\n }, {\n interface: {\n family: 'sans-serif'\n },\n input: {\n family: 'inherit'\n },\n post: {\n family: 'inherit'\n },\n postCode: {\n family: 'monospace'\n }\n })\n\n return {\n rules: {\n fonts: Object\n .entries(fonts)\n .filter(([k, v]) => v)\n .map(([k, v]) => `--${k}Font: ${v.family}`).join(';')\n },\n theme: {\n fonts\n }\n }\n}\n\nconst border = (top, shadow) => ({\n x: 0,\n y: top ? 1 : -1,\n blur: 0,\n spread: 0,\n color: shadow ? '#000000' : '#FFFFFF',\n alpha: 0.2,\n inset: true\n})\nconst buttonInsetFakeBorders = [border(true, false), border(false, true)]\nconst inputInsetFakeBorders = [border(true, true), border(false, false)]\nconst hoverGlow = {\n x: 0,\n y: 0,\n blur: 4,\n spread: 0,\n color: '--faint',\n alpha: 1\n}\n\nexport const DEFAULT_SHADOWS = {\n panel: [{\n x: 1,\n y: 1,\n blur: 4,\n spread: 0,\n color: '#000000',\n alpha: 0.6\n }],\n topBar: [{\n x: 0,\n y: 0,\n blur: 4,\n spread: 0,\n color: '#000000',\n alpha: 0.6\n }],\n popup: [{\n x: 2,\n y: 2,\n blur: 3,\n spread: 0,\n color: '#000000',\n alpha: 0.5\n }],\n avatar: [{\n x: 0,\n y: 1,\n blur: 8,\n spread: 0,\n color: '#000000',\n alpha: 0.7\n }],\n avatarStatus: [],\n panelHeader: [],\n button: [{\n x: 0,\n y: 0,\n blur: 2,\n spread: 0,\n color: '#000000',\n alpha: 1\n }, ...buttonInsetFakeBorders],\n buttonHover: [hoverGlow, ...buttonInsetFakeBorders],\n buttonPressed: [hoverGlow, ...inputInsetFakeBorders],\n input: [...inputInsetFakeBorders, {\n x: 0,\n y: 0,\n blur: 2,\n inset: true,\n spread: 0,\n color: '#000000',\n alpha: 1\n }]\n}\nexport const generateShadows = (input, colors) => {\n // TODO this is a small hack for `mod` to work with shadows\n // this is used to get the \"context\" of shadow, i.e. for `mod` properly depend on background color of element\n const hackContextDict = {\n button: 'btn',\n panel: 'bg',\n top: 'topBar',\n popup: 'popover',\n avatar: 'bg',\n panelHeader: 'panel',\n input: 'input'\n }\n\n const cleanInputShadows = Object.fromEntries(\n Object.entries(input.shadows || {})\n .map(([name, shadowSlot]) => [\n name,\n // defaulting color to black to avoid potential problems\n shadowSlot.map(shadowDef => ({ color: '#000000', ...shadowDef }))\n ])\n )\n const inputShadows = cleanInputShadows && !input.themeEngineVersion\n ? shadows2to3(cleanInputShadows, input.opacity)\n : cleanInputShadows || {}\n const shadows = Object.entries({\n ...DEFAULT_SHADOWS,\n ...inputShadows\n }).reduce((shadowsAcc, [slotName, shadowDefs]) => {\n const slotFirstWord = slotName.replace(/[A-Z].*$/, '')\n const colorSlotName = hackContextDict[slotFirstWord]\n const isLightOnDark = relativeLuminance(convert(colors[colorSlotName]).rgb) < 0.5\n const mod = isLightOnDark ? 1 : -1\n const newShadow = shadowDefs.reduce((shadowAcc, def) => [\n ...shadowAcc,\n {\n ...def,\n color: rgb2hex(computeDynamicColor(\n def.color,\n (variableSlot) => convert(colors[variableSlot]).rgb,\n mod\n ))\n }\n ], [])\n return { ...shadowsAcc, [slotName]: newShadow }\n }, {})\n\n return {\n rules: {\n shadows: Object\n .entries(shadows)\n // TODO for v2.2: if shadow doesn't have non-inset shadows with spread > 0 - optionally\n // convert all non-inset shadows into filter: drop-shadow() to boost performance\n .map(([k, v]) => [\n `--${k}Shadow: ${getCssShadow(v)}`,\n `--${k}ShadowFilter: ${getCssShadowFilter(v)}`,\n `--${k}ShadowInset: ${getCssShadow(v, true)}`\n ].join(';'))\n .join(';')\n },\n theme: {\n shadows\n }\n }\n}\n\nexport const composePreset = (colors, radii, shadows, fonts) => {\n return {\n rules: {\n ...shadows.rules,\n ...colors.rules,\n ...radii.rules,\n ...fonts.rules\n },\n theme: {\n ...shadows.theme,\n ...colors.theme,\n ...radii.theme,\n ...fonts.theme\n }\n }\n}\n\nexport const generatePreset = (input) => {\n const colors = generateColors(input)\n return composePreset(\n colors,\n generateRadii(input),\n generateShadows(input, colors.theme.colors, colors.mod),\n generateFonts(input)\n )\n}\n\nexport const getThemes = () => {\n const cache = 'no-store'\n\n return window.fetch('/static/styles.json', { cache })\n .then((data) => data.json())\n .then((themes) => {\n return Object.entries(themes).map(([k, v]) => {\n let promise = null\n if (typeof v === 'object') {\n promise = Promise.resolve(v)\n } else if (typeof v === 'string') {\n promise = window.fetch(v, { cache })\n .then((data) => data.json())\n .catch((e) => {\n console.error(e)\n return null\n })\n }\n return [k, promise]\n })\n })\n .then((promises) => {\n return promises\n .reduce((acc, [k, v]) => {\n acc[k] = v\n return acc\n }, {})\n })\n}\nexport const colors2to3 = (colors) => {\n return Object.entries(colors).reduce((acc, [slotName, color]) => {\n const btnPositions = ['', 'Panel', 'TopBar']\n switch (slotName) {\n case 'lightBg':\n return { ...acc, highlight: color }\n case 'btnText':\n return {\n ...acc,\n ...btnPositions\n .reduce(\n (statePositionAcc, position) =>\n ({ ...statePositionAcc, ['btn' + position + 'Text']: color })\n , {}\n )\n }\n default:\n return { ...acc, [slotName]: color }\n }\n }, {})\n}\n\n/**\n * This handles compatibility issues when importing v2 theme's shadows to current format\n *\n * Back in v2 shadows allowed you to use dynamic colors however those used pure CSS3 variables\n */\nexport const shadows2to3 = (shadows, opacity) => {\n return Object.entries(shadows).reduce((shadowsAcc, [slotName, shadowDefs]) => {\n const isDynamic = ({ color = '#000000' }) => color.startsWith('--')\n const getOpacity = ({ color }) => opacity[getOpacitySlot(color.substring(2).split(',')[0])]\n const newShadow = shadowDefs.reduce((shadowAcc, def) => [\n ...shadowAcc,\n {\n ...def,\n alpha: isDynamic(def) ? getOpacity(def) || 1 : def.alpha\n }\n ], [])\n return { ...shadowsAcc, [slotName]: newShadow }\n }, {})\n}\n\nexport const getPreset = (val) => {\n return getThemes()\n .then((themes) => themes[val] ? themes[val] : themes['pleroma-dark'])\n .then((theme) => {\n const isV1 = Array.isArray(theme)\n const data = isV1 ? {} : theme.theme\n\n if (isV1) {\n const bg = hex2rgb(theme[1])\n const fg = hex2rgb(theme[2])\n const text = hex2rgb(theme[3])\n const link = hex2rgb(theme[4])\n\n const cRed = hex2rgb(theme[5] || '#FF0000')\n const cGreen = hex2rgb(theme[6] || '#00FF00')\n const cBlue = hex2rgb(theme[7] || '#0000FF')\n const cOrange = hex2rgb(theme[8] || '#E3FF00')\n\n data.colors = { bg, fg, text, link, cRed, cBlue, cGreen, cOrange }\n }\n\n return { theme: data, source: theme.source }\n })\n}\n\nexport const setPreset = (val) => getPreset(val).then(data => applyTheme(data.theme))\n","import { invertLightness, brightness } from 'chromatism'\nimport { alphaBlend, mixrgb } from '../color_convert/color_convert.js'\n/* This is a definition of all layer combinations\n * each key is a topmost layer, each value represents layer underneath\n * this is essentially a simplified tree\n */\nexport const LAYERS = {\n undelay: null, // root\n topBar: null, // no transparency support\n badge: null, // no transparency support\n profileTint: null, // doesn't matter\n fg: null,\n bg: 'underlay',\n highlight: 'bg',\n panel: 'bg',\n popover: 'bg',\n selectedMenu: 'popover',\n btn: 'bg',\n btnPanel: 'panel',\n btnTopBar: 'topBar',\n input: 'bg',\n inputPanel: 'panel',\n inputTopBar: 'topBar',\n alert: 'bg',\n alertPanel: 'panel',\n poll: 'bg',\n chatBg: 'underlay',\n chatMessage: 'chatBg'\n}\n\n/* By default opacity slots have 1 as default opacity\n * this allows redefining it to something else\n */\nexport const DEFAULT_OPACITY = {\n profileTint: 0.5,\n alert: 0.5,\n input: 0.5,\n faint: 0.5,\n underlay: 0.15,\n alertPopup: 0.95\n}\n\n/** SUBJECT TO CHANGE IN THE FUTURE, this is all beta\n * Color and opacity slots definitions. Each key represents a slot.\n *\n * Short-hands:\n * String beginning with `--` - value after dashes treated as sole\n * dependency - i.e. `--value` equivalent to { depends: ['value']}\n * String beginning with `#` - value would be treated as solid color\n * defined in hexadecimal representation (i.e. #FFFFFF) and will be\n * used as default. `#FFFFFF` is equivalent to { default: '#FFFFFF'}\n *\n * Full definition:\n * @property {String[]} depends - color slot names this color depends ones.\n * cyclic dependencies are supported to some extent but not recommended.\n * @property {String} [opacity] - opacity slot used by this color slot.\n * opacity is inherited from parents. To break inheritance graph use null\n * @property {Number} [priority] - EXPERIMENTAL. used to pre-sort slots so\n * that slots with higher priority come earlier\n * @property {Function(mod, ...colors)} [color] - function that will be\n * used to determine the color. By default it just copies first color in\n * dependency list.\n * @argument {Number} mod - `1` (light-on-dark) or `-1` (dark-on-light)\n * depending on background color (for textColor)/given color.\n * @argument {...Object} deps - each argument after mod represents each\n * color from `depends` array. All colors take user customizations into\n * account and represented by { r, g, b } objects.\n * @returns {Object} resulting color, should be in { r, g, b } form\n *\n * @property {Boolean|String} [textColor] - true to mark color slot as text\n * color. This enables automatic text color generation for the slot. Use\n * 'preserve' string if you don't want text color to fall back to\n * black/white. Use 'bw' to only ever use black or white. This also makes\n * following properties required:\n * @property {String} [layer] - which layer the text sit on top on - used\n * to account for transparency in text color calculation\n * layer is inherited from parents. To break inheritance graph use null\n * @property {String} [variant] - which color slot is background (same as\n * above, used to account for transparency)\n */\nexport const SLOT_INHERITANCE = {\n bg: {\n depends: [],\n opacity: 'bg',\n priority: 1\n },\n wallpaper: {\n depends: ['bg'],\n color: (mod, bg) => brightness(-2 * mod, bg).rgb\n },\n fg: {\n depends: [],\n priority: 1\n },\n text: {\n depends: [],\n layer: 'bg',\n opacity: null,\n priority: 1\n },\n underlay: {\n default: '#000000',\n opacity: 'underlay'\n },\n link: {\n depends: ['accent'],\n priority: 1\n },\n accent: {\n depends: ['link'],\n priority: 1\n },\n faint: {\n depends: ['text'],\n opacity: 'faint'\n },\n faintLink: {\n depends: ['link'],\n opacity: 'faint'\n },\n postFaintLink: {\n depends: ['postLink'],\n opacity: 'faint'\n },\n\n cBlue: '#0000ff',\n cRed: '#FF0000',\n cGreen: '#00FF00',\n cOrange: '#E3FF00',\n\n profileBg: {\n depends: ['bg'],\n color: (mod, bg) => ({\n r: Math.floor(bg.r * 0.53),\n g: Math.floor(bg.g * 0.56),\n b: Math.floor(bg.b * 0.59)\n })\n },\n profileTint: {\n depends: ['bg'],\n layer: 'profileTint',\n opacity: 'profileTint'\n },\n\n highlight: {\n depends: ['bg'],\n color: (mod, bg) => brightness(5 * mod, bg).rgb\n },\n highlightLightText: {\n depends: ['lightText'],\n layer: 'highlight',\n textColor: true\n },\n highlightPostLink: {\n depends: ['postLink'],\n layer: 'highlight',\n textColor: 'preserve'\n },\n highlightFaintText: {\n depends: ['faint'],\n layer: 'highlight',\n textColor: true\n },\n highlightFaintLink: {\n depends: ['faintLink'],\n layer: 'highlight',\n textColor: 'preserve'\n },\n highlightPostFaintLink: {\n depends: ['postFaintLink'],\n layer: 'highlight',\n textColor: 'preserve'\n },\n highlightText: {\n depends: ['text'],\n layer: 'highlight',\n textColor: true\n },\n highlightLink: {\n depends: ['link'],\n layer: 'highlight',\n textColor: 'preserve'\n },\n highlightIcon: {\n depends: ['highlight', 'highlightText'],\n color: (mod, bg, text) => mixrgb(bg, text)\n },\n\n popover: {\n depends: ['bg'],\n opacity: 'popover'\n },\n popoverLightText: {\n depends: ['lightText'],\n layer: 'popover',\n textColor: true\n },\n popoverPostLink: {\n depends: ['postLink'],\n layer: 'popover',\n textColor: 'preserve'\n },\n popoverFaintText: {\n depends: ['faint'],\n layer: 'popover',\n textColor: true\n },\n popoverFaintLink: {\n depends: ['faintLink'],\n layer: 'popover',\n textColor: 'preserve'\n },\n popoverPostFaintLink: {\n depends: ['postFaintLink'],\n layer: 'popover',\n textColor: 'preserve'\n },\n popoverText: {\n depends: ['text'],\n layer: 'popover',\n textColor: true\n },\n popoverLink: {\n depends: ['link'],\n layer: 'popover',\n textColor: 'preserve'\n },\n popoverIcon: {\n depends: ['popover', 'popoverText'],\n color: (mod, bg, text) => mixrgb(bg, text)\n },\n\n selectedPost: '--highlight',\n selectedPostFaintText: {\n depends: ['highlightFaintText'],\n layer: 'highlight',\n variant: 'selectedPost',\n textColor: true\n },\n selectedPostLightText: {\n depends: ['highlightLightText'],\n layer: 'highlight',\n variant: 'selectedPost',\n textColor: true\n },\n selectedPostPostLink: {\n depends: ['highlightPostLink'],\n layer: 'highlight',\n variant: 'selectedPost',\n textColor: 'preserve'\n },\n selectedPostFaintLink: {\n depends: ['highlightFaintLink'],\n layer: 'highlight',\n variant: 'selectedPost',\n textColor: 'preserve'\n },\n selectedPostText: {\n depends: ['highlightText'],\n layer: 'highlight',\n variant: 'selectedPost',\n textColor: true\n },\n selectedPostLink: {\n depends: ['highlightLink'],\n layer: 'highlight',\n variant: 'selectedPost',\n textColor: 'preserve'\n },\n selectedPostIcon: {\n depends: ['selectedPost', 'selectedPostText'],\n color: (mod, bg, text) => mixrgb(bg, text)\n },\n\n selectedMenu: {\n depends: ['bg'],\n color: (mod, bg) => brightness(5 * mod, bg).rgb\n },\n selectedMenuLightText: {\n depends: ['highlightLightText'],\n layer: 'selectedMenu',\n variant: 'selectedMenu',\n textColor: true\n },\n selectedMenuFaintText: {\n depends: ['highlightFaintText'],\n layer: 'selectedMenu',\n variant: 'selectedMenu',\n textColor: true\n },\n selectedMenuFaintLink: {\n depends: ['highlightFaintLink'],\n layer: 'selectedMenu',\n variant: 'selectedMenu',\n textColor: 'preserve'\n },\n selectedMenuText: {\n depends: ['highlightText'],\n layer: 'selectedMenu',\n variant: 'selectedMenu',\n textColor: true\n },\n selectedMenuLink: {\n depends: ['highlightLink'],\n layer: 'selectedMenu',\n variant: 'selectedMenu',\n textColor: 'preserve'\n },\n selectedMenuIcon: {\n depends: ['selectedMenu', 'selectedMenuText'],\n color: (mod, bg, text) => mixrgb(bg, text)\n },\n\n selectedMenuPopover: {\n depends: ['popover'],\n color: (mod, bg) => brightness(5 * mod, bg).rgb\n },\n selectedMenuPopoverLightText: {\n depends: ['selectedMenuLightText'],\n layer: 'selectedMenuPopover',\n variant: 'selectedMenuPopover',\n textColor: true\n },\n selectedMenuPopoverFaintText: {\n depends: ['selectedMenuFaintText'],\n layer: 'selectedMenuPopover',\n variant: 'selectedMenuPopover',\n textColor: true\n },\n selectedMenuPopoverFaintLink: {\n depends: ['selectedMenuFaintLink'],\n layer: 'selectedMenuPopover',\n variant: 'selectedMenuPopover',\n textColor: 'preserve'\n },\n selectedMenuPopoverText: {\n depends: ['selectedMenuText'],\n layer: 'selectedMenuPopover',\n variant: 'selectedMenuPopover',\n textColor: true\n },\n selectedMenuPopoverLink: {\n depends: ['selectedMenuLink'],\n layer: 'selectedMenuPopover',\n variant: 'selectedMenuPopover',\n textColor: 'preserve'\n },\n selectedMenuPopoverIcon: {\n depends: ['selectedMenuPopover', 'selectedMenuText'],\n color: (mod, bg, text) => mixrgb(bg, text)\n },\n\n lightText: {\n depends: ['text'],\n layer: 'bg',\n textColor: 'preserve',\n color: (mod, text) => brightness(20 * mod, text).rgb\n },\n\n postLink: {\n depends: ['link'],\n layer: 'bg',\n textColor: 'preserve'\n },\n\n postGreentext: {\n depends: ['cGreen'],\n layer: 'bg',\n textColor: 'preserve'\n },\n\n postCyantext: {\n depends: ['cBlue'],\n layer: 'bg',\n textColor: 'preserve'\n },\n\n border: {\n depends: ['fg'],\n opacity: 'border',\n color: (mod, fg) => brightness(2 * mod, fg).rgb\n },\n\n poll: {\n depends: ['accent', 'bg'],\n copacity: 'poll',\n color: (mod, accent, bg) => alphaBlend(accent, 0.4, bg)\n },\n pollText: {\n depends: ['text'],\n layer: 'poll',\n textColor: true\n },\n\n icon: {\n depends: ['bg', 'text'],\n inheritsOpacity: false,\n color: (mod, bg, text) => mixrgb(bg, text)\n },\n\n // Foreground\n fgText: {\n depends: ['text'],\n layer: 'fg',\n textColor: true\n },\n fgLink: {\n depends: ['link'],\n layer: 'fg',\n textColor: 'preserve'\n },\n\n // Panel header\n panel: {\n depends: ['fg'],\n opacity: 'panel'\n },\n panelText: {\n depends: ['text'],\n layer: 'panel',\n textColor: true\n },\n panelFaint: {\n depends: ['fgText'],\n layer: 'panel',\n opacity: 'faint',\n textColor: true\n },\n panelLink: {\n depends: ['fgLink'],\n layer: 'panel',\n textColor: 'preserve'\n },\n\n // Top bar\n topBar: '--fg',\n topBarText: {\n depends: ['fgText'],\n layer: 'topBar',\n textColor: true\n },\n topBarLink: {\n depends: ['fgLink'],\n layer: 'topBar',\n textColor: 'preserve'\n },\n\n // Tabs\n tab: {\n depends: ['btn']\n },\n tabText: {\n depends: ['btnText'],\n layer: 'btn',\n textColor: true\n },\n tabActiveText: {\n depends: ['text'],\n layer: 'bg',\n textColor: true\n },\n\n // Buttons\n btn: {\n depends: ['fg'],\n variant: 'btn',\n opacity: 'btn'\n },\n btnText: {\n depends: ['fgText'],\n layer: 'btn',\n textColor: true\n },\n btnPanelText: {\n depends: ['btnText'],\n layer: 'btnPanel',\n variant: 'btn',\n textColor: true\n },\n btnTopBarText: {\n depends: ['btnText'],\n layer: 'btnTopBar',\n variant: 'btn',\n textColor: true\n },\n\n // Buttons: pressed\n btnPressed: {\n depends: ['btn'],\n layer: 'btn'\n },\n btnPressedText: {\n depends: ['btnText'],\n layer: 'btn',\n variant: 'btnPressed',\n textColor: true\n },\n btnPressedPanel: {\n depends: ['btnPressed'],\n layer: 'btn'\n },\n btnPressedPanelText: {\n depends: ['btnPanelText'],\n layer: 'btnPanel',\n variant: 'btnPressed',\n textColor: true\n },\n btnPressedTopBar: {\n depends: ['btnPressed'],\n layer: 'btn'\n },\n btnPressedTopBarText: {\n depends: ['btnTopBarText'],\n layer: 'btnTopBar',\n variant: 'btnPressed',\n textColor: true\n },\n\n // Buttons: toggled\n btnToggled: {\n depends: ['btn'],\n layer: 'btn',\n color: (mod, btn) => brightness(mod * 20, btn).rgb\n },\n btnToggledText: {\n depends: ['btnText'],\n layer: 'btn',\n variant: 'btnToggled',\n textColor: true\n },\n btnToggledPanelText: {\n depends: ['btnPanelText'],\n layer: 'btnPanel',\n variant: 'btnToggled',\n textColor: true\n },\n btnToggledTopBarText: {\n depends: ['btnTopBarText'],\n layer: 'btnTopBar',\n variant: 'btnToggled',\n textColor: true\n },\n\n // Buttons: disabled\n btnDisabled: {\n depends: ['btn', 'bg'],\n color: (mod, btn, bg) => alphaBlend(btn, 0.25, bg)\n },\n btnDisabledText: {\n depends: ['btnText', 'btnDisabled'],\n layer: 'btn',\n variant: 'btnDisabled',\n color: (mod, text, btn) => alphaBlend(text, 0.25, btn)\n },\n btnDisabledPanelText: {\n depends: ['btnPanelText', 'btnDisabled'],\n layer: 'btnPanel',\n variant: 'btnDisabled',\n color: (mod, text, btn) => alphaBlend(text, 0.25, btn)\n },\n btnDisabledTopBarText: {\n depends: ['btnTopBarText', 'btnDisabled'],\n layer: 'btnTopBar',\n variant: 'btnDisabled',\n color: (mod, text, btn) => alphaBlend(text, 0.25, btn)\n },\n\n // Input fields\n input: {\n depends: ['fg'],\n opacity: 'input'\n },\n inputText: {\n depends: ['text'],\n layer: 'input',\n textColor: true\n },\n inputPanelText: {\n depends: ['panelText'],\n layer: 'inputPanel',\n variant: 'input',\n textColor: true\n },\n inputTopbarText: {\n depends: ['topBarText'],\n layer: 'inputTopBar',\n variant: 'input',\n textColor: true\n },\n\n alertError: {\n depends: ['cRed'],\n opacity: 'alert'\n },\n alertErrorText: {\n depends: ['text'],\n layer: 'alert',\n variant: 'alertError',\n textColor: true\n },\n alertErrorPanelText: {\n depends: ['panelText'],\n layer: 'alertPanel',\n variant: 'alertError',\n textColor: true\n },\n\n alertWarning: {\n depends: ['cOrange'],\n opacity: 'alert'\n },\n alertWarningText: {\n depends: ['text'],\n layer: 'alert',\n variant: 'alertWarning',\n textColor: true\n },\n alertWarningPanelText: {\n depends: ['panelText'],\n layer: 'alertPanel',\n variant: 'alertWarning',\n textColor: true\n },\n\n alertSuccess: {\n depends: ['cGreen'],\n opacity: 'alert'\n },\n alertSuccessText: {\n depends: ['text'],\n layer: 'alert',\n variant: 'alertSuccess',\n textColor: true\n },\n alertSuccessPanelText: {\n depends: ['panelText'],\n layer: 'alertPanel',\n variant: 'alertSuccess',\n textColor: true\n },\n\n alertNeutral: {\n depends: ['text'],\n opacity: 'alert'\n },\n alertNeutralText: {\n depends: ['text'],\n layer: 'alert',\n variant: 'alertNeutral',\n color: (mod, text) => invertLightness(text).rgb,\n textColor: true\n },\n alertNeutralPanelText: {\n depends: ['panelText'],\n layer: 'alertPanel',\n variant: 'alertNeutral',\n textColor: true\n },\n\n alertPopupError: {\n depends: ['alertError'],\n opacity: 'alertPopup'\n },\n alertPopupErrorText: {\n depends: ['alertErrorText'],\n layer: 'popover',\n variant: 'alertPopupError',\n textColor: true\n },\n\n alertPopupWarning: {\n depends: ['alertWarning'],\n opacity: 'alertPopup'\n },\n alertPopupWarningText: {\n depends: ['alertWarningText'],\n layer: 'popover',\n variant: 'alertPopupWarning',\n textColor: true\n },\n\n alertPopupSuccess: {\n depends: ['alertSuccess'],\n opacity: 'alertPopup'\n },\n alertPopupSuccessText: {\n depends: ['alertSuccessText'],\n layer: 'popover',\n variant: 'alertPopupSuccess',\n textColor: true\n },\n\n alertPopupNeutral: {\n depends: ['alertNeutral'],\n opacity: 'alertPopup'\n },\n alertPopupNeutralText: {\n depends: ['alertNeutralText'],\n layer: 'popover',\n variant: 'alertPopupNeutral',\n textColor: true\n },\n\n badgeNotification: '--cRed',\n badgeNotificationText: {\n depends: ['text', 'badgeNotification'],\n layer: 'badge',\n variant: 'badgeNotification',\n textColor: 'bw'\n },\n\n badgeNeutral: '--cGreen',\n badgeNeutralText: {\n depends: ['text', 'badgeNeutral'],\n layer: 'badge',\n variant: 'badgeNeutral',\n textColor: 'bw'\n },\n\n chatBg: {\n depends: ['bg']\n },\n\n chatMessageIncomingBg: {\n depends: ['chatBg']\n },\n\n chatMessageIncomingText: {\n depends: ['text'],\n layer: 'chatMessage',\n variant: 'chatMessageIncomingBg',\n textColor: true\n },\n\n chatMessageIncomingLink: {\n depends: ['link'],\n layer: 'chatMessage',\n variant: 'chatMessageIncomingBg',\n textColor: 'preserve'\n },\n\n chatMessageIncomingBorder: {\n depends: ['border'],\n opacity: 'border',\n color: (mod, border) => brightness(2 * mod, border).rgb\n },\n\n chatMessageOutgoingBg: {\n depends: ['chatMessageIncomingBg'],\n color: (mod, chatMessage) => brightness(5 * mod, chatMessage).rgb\n },\n\n chatMessageOutgoingText: {\n depends: ['text'],\n layer: 'chatMessage',\n variant: 'chatMessageOutgoingBg',\n textColor: true\n },\n\n chatMessageOutgoingLink: {\n depends: ['link'],\n layer: 'chatMessage',\n variant: 'chatMessageOutgoingBg',\n textColor: 'preserve'\n },\n\n chatMessageOutgoingBorder: {\n depends: ['chatMessageOutgoingBg'],\n opacity: 'border',\n color: (mod, border) => brightness(2 * mod, border).rgb\n }\n}\n","import { 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 const array = [layer]\n let parent = data[layer]\n while (parent) {\n array.unshift(parent)\n parent = data[parent]\n }\n return array\n}\n\nexport const getLayers = (layer, variant = layer, opacitySlot, colors, opacity) => {\n return getLayersArray(layer).map((currentLayer) => ([\n currentLayer === layer\n ? colors[variant]\n : colors[currentLayer],\n currentLayer === layer\n ? opacity[opacitySlot] || 1\n : opacity[currentLayer]\n ]))\n}\n\nconst getDependencies = (key, inheritance) => {\n const data = inheritance[key]\n if (typeof data === 'string' && data.startsWith('--')) {\n return [data.substring(2)]\n } else {\n if (data === null) return []\n const { depends, layer, variant } = data\n const layerDeps = layer\n ? getLayersArray(layer).map(currentLayer => {\n return currentLayer === layer\n ? variant || layer\n : currentLayer\n })\n : []\n if (Array.isArray(depends)) {\n return [...depends, ...layerDeps]\n } else {\n return [...layerDeps]\n }\n }\n}\n\n/**\n * Sorts inheritance object topologically - dependant slots come after\n * dependencies\n *\n * @property {Object} inheritance - object defining the nodes\n * @property {Function} getDeps - function that returns dependencies for\n * given value and inheritance object.\n * @returns {String[]} keys of inheritance object, sorted in topological\n * order. Additionally, dependency-less nodes will always be first in line\n */\nexport const topoSort = (\n inheritance = SLOT_INHERITANCE,\n getDeps = getDependencies\n) => {\n // This is an implementation of https://en.wikipedia.org/wiki/Tarjan%27s_strongly_connected_components_algorithm\n\n const allKeys = Object.keys(inheritance)\n const whites = new Set(allKeys)\n const grays = new Set()\n const blacks = new Set()\n const unprocessed = [...allKeys]\n const output = []\n\n const step = (node) => {\n if (whites.has(node)) {\n // Make node \"gray\"\n whites.delete(node)\n grays.add(node)\n // Do step for each node connected to it (one way)\n getDeps(node, inheritance).forEach(step)\n // Make node \"black\"\n grays.delete(node)\n blacks.add(node)\n // Put it into the output list\n output.push(node)\n } else if (grays.has(node)) {\n console.debug('Cyclic depenency in topoSort, ignoring')\n output.push(node)\n } else if (blacks.has(node)) {\n // do nothing\n } else {\n throw new Error('Unintended condition in topoSort!')\n }\n }\n while (unprocessed.length > 0) {\n step(unprocessed.pop())\n }\n\n // The index thing is to make sorting stable on browsers\n // where Array.sort() isn't stable\n return output.map((data, index) => ({ data, index })).sort(({ data: a, index: ai }, { data: b, index: bi }) => {\n const depsA = getDeps(a, inheritance).length\n const depsB = getDeps(b, inheritance).length\n\n if (depsA === depsB || (depsB !== 0 && depsA !== 0)) return ai - bi\n if (depsA === 0 && depsB !== 0) return -1\n if (depsB === 0 && depsA !== 0) return 1\n return 0 // failsafe, shouldn't happen?\n }).map(({ data }) => data)\n}\n\nconst expandSlotValue = (value) => {\n if (typeof value === 'object') return value\n return {\n depends: value.startsWith('--') ? [value.substring(2)] : [],\n default: value.startsWith('#') ? value : undefined\n }\n}\n/**\n * retrieves opacity slot for given slot. This goes up the depenency graph\n * to find which parent has opacity slot defined for it.\n * TODO refactor this\n */\nexport const getOpacitySlot = (\n k,\n inheritance = SLOT_INHERITANCE,\n getDeps = getDependencies\n) => {\n const value = expandSlotValue(inheritance[k])\n if (value.opacity === null) return\n if (value.opacity) return value.opacity\n const findInheritedOpacity = (key, visited = [k]) => {\n const depSlot = getDeps(key, inheritance)[0]\n if (depSlot === undefined) return\n const dependency = inheritance[depSlot]\n if (dependency === undefined) return\n if (dependency.opacity || dependency === null) {\n return dependency.opacity\n } else if (dependency.depends && visited.includes(depSlot)) {\n return findInheritedOpacity(depSlot, [...visited, depSlot])\n } else {\n return null\n }\n }\n if (value.depends) {\n return findInheritedOpacity(k)\n }\n}\n\n/**\n * retrieves layer slot for given slot. This goes up the depenency graph\n * to find which parent has opacity slot defined for it.\n * this is basically copypaste of getOpacitySlot except it checks if key is\n * in LAYERS\n * TODO refactor this\n */\nexport const getLayerSlot = (\n k,\n inheritance = SLOT_INHERITANCE,\n getDeps = getDependencies\n) => {\n const value = expandSlotValue(inheritance[k])\n if (LAYERS[k]) return k\n if (value.layer === null) return\n if (value.layer) return value.layer\n const findInheritedLayer = (key, visited = [k]) => {\n const depSlot = getDeps(key, inheritance)[0]\n if (depSlot === undefined) return\n const dependency = inheritance[depSlot]\n if (dependency === undefined) return\n if (dependency.layer || dependency === null) {\n return dependency.layer\n } else if (dependency.depends) {\n return findInheritedLayer(dependency, [...visited, depSlot])\n } else {\n return null\n }\n }\n if (value.depends) {\n return findInheritedLayer(k)\n }\n}\n\n/**\n * topologically sorted SLOT_INHERITANCE\n */\nexport const SLOT_ORDERED = topoSort(\n Object.entries(SLOT_INHERITANCE)\n .sort(([aK, aV], [bK, bV]) => ((aV && aV.priority) || 0) - ((bV && bV.priority) || 0))\n .reduce((acc, [k, v]) => ({ ...acc, [k]: v }), {})\n)\n\n/**\n * All opacity slots used in color slots, their default values and affected\n * color slots.\n */\nexport const OPACITIES = Object.entries(SLOT_INHERITANCE).reduce((acc, [k, v]) => {\n const opacity = getOpacitySlot(k, SLOT_INHERITANCE, getDependencies)\n if (opacity) {\n return {\n ...acc,\n [opacity]: {\n defaultValue: DEFAULT_OPACITY[opacity] || 1,\n affectedSlots: [...((acc[opacity] && acc[opacity].affectedSlots) || []), k]\n }\n }\n } else {\n return acc\n }\n}, {})\n\n/**\n * Handle dynamic color\n */\nexport const computeDynamicColor = (sourceColor, getColor, mod) => {\n if (typeof sourceColor !== 'string' || !sourceColor.startsWith('--')) return sourceColor\n let targetColor = null\n // Color references other color\n const [variable, modifier] = sourceColor.split(/,/g).map(str => str.trim())\n const variableSlot = variable.substring(2)\n targetColor = getColor(variableSlot)\n if (modifier) {\n targetColor = brightness(Number.parseFloat(modifier) * mod, targetColor).rgb\n }\n return targetColor\n}\n\n/**\n * THE function you want to use. Takes provided colors and opacities\n * value and uses inheritance data to figure out color needed for the slot.\n */\nexport const getColors = (sourceColors, sourceOpacity) => SLOT_ORDERED.reduce(({ colors, opacity }, key) => {\n const sourceColor = sourceColors[key]\n const value = expandSlotValue(SLOT_INHERITANCE[key])\n const deps = getDependencies(key, SLOT_INHERITANCE)\n const isTextColor = !!value.textColor\n const variant = value.variant || value.layer\n\n let backgroundColor = null\n\n if (isTextColor) {\n backgroundColor = alphaBlendLayers(\n { ...(colors[deps[0]] || convert(sourceColors[key] || '#FF00FF').rgb) },\n getLayers(\n getLayerSlot(key) || 'bg',\n variant || 'bg',\n getOpacitySlot(variant),\n colors,\n opacity\n )\n )\n } else if (variant && variant !== key) {\n backgroundColor = colors[variant] || convert(sourceColors[variant]).rgb\n } else {\n backgroundColor = colors.bg || convert(sourceColors.bg)\n }\n\n const isLightOnDark = relativeLuminance(backgroundColor) < 0.5\n const mod = isLightOnDark ? 1 : -1\n\n let outputColor = null\n if (sourceColor) {\n // Color is defined in source color\n let targetColor = sourceColor\n if (targetColor === 'transparent') {\n // We take only layers below current one\n const layers = getLayers(\n getLayerSlot(key),\n key,\n getOpacitySlot(key) || key,\n colors,\n opacity\n ).slice(0, -1)\n targetColor = {\n ...alphaBlendLayers(\n convert('#FF00FF').rgb,\n layers\n ),\n a: 0\n }\n } else if (typeof sourceColor === 'string' && sourceColor.startsWith('--')) {\n targetColor = computeDynamicColor(\n sourceColor,\n variableSlot => colors[variableSlot] || sourceColors[variableSlot],\n mod\n )\n } else if (typeof sourceColor === 'string' && sourceColor.startsWith('#')) {\n targetColor = convert(targetColor).rgb\n }\n outputColor = { ...targetColor }\n } else if (value.default) {\n // same as above except in object form\n outputColor = convert(value.default).rgb\n } else {\n // calculate color\n const defaultColorFunc = (mod, dep) => ({ ...dep })\n const colorFunc = value.color || defaultColorFunc\n\n if (value.textColor) {\n if (value.textColor === 'bw') {\n outputColor = contrastRatio(backgroundColor).rgb\n } else {\n let color = { ...colors[deps[0]] }\n if (value.color) {\n color = colorFunc(mod, ...deps.map((dep) => ({ ...colors[dep] })))\n }\n outputColor = getTextColor(\n backgroundColor,\n { ...color },\n value.textColor === 'preserve'\n )\n }\n } else {\n // background color case\n outputColor = colorFunc(\n mod,\n ...deps.map((dep) => ({ ...colors[dep] }))\n )\n }\n }\n if (!outputColor) {\n throw new Error('Couldn\\'t generate color for ' + key)\n }\n\n const opacitySlot = value.opacity || getOpacitySlot(key)\n const ownOpacitySlot = value.opacity\n\n if (ownOpacitySlot === null) {\n outputColor.a = 1\n } else if (sourceColor === 'transparent') {\n outputColor.a = 0\n } else {\n const opacityOverriden = ownOpacitySlot && sourceOpacity[opacitySlot] !== undefined\n\n const dependencySlot = deps[0]\n const dependencyColor = dependencySlot && colors[dependencySlot]\n\n if (!ownOpacitySlot && dependencyColor && !value.textColor && ownOpacitySlot !== null) {\n // Inheriting color from dependency (weird, i know)\n // except if it's a text color or opacity slot is set to 'null'\n outputColor.a = dependencyColor.a\n } else if (!dependencyColor && !opacitySlot) {\n // Remove any alpha channel if no dependency and no opacitySlot found\n delete outputColor.a\n } else {\n // Otherwise try to assign opacity\n if (dependencyColor && dependencyColor.a === 0) {\n // transparent dependency shall make dependents transparent too\n outputColor.a = 0\n } else {\n // Otherwise check if opacity is overriden and use that or default value instead\n outputColor.a = Number(\n opacityOverriden\n ? sourceOpacity[opacitySlot]\n : (OPACITIES[opacitySlot] || {}).defaultValue\n )\n }\n }\n }\n\n if (Number.isNaN(outputColor.a) || outputColor.a === undefined) {\n outputColor.a = 1\n }\n\n if (opacitySlot) {\n return {\n colors: { ...colors, [key]: outputColor },\n opacity: { ...opacity, [opacitySlot]: outputColor.a }\n }\n } else {\n return {\n colors: { ...colors, [key]: outputColor },\n opacity\n }\n }\n}, { colors: {}, opacity: {} })\n","import { hex2rgb } from '../color_convert/color_convert.js'\nconst highlightStyle = (prefs) => {\n if (prefs === undefined) return\n const { color, type } = prefs\n if (typeof color !== 'string') return\n const rgb = hex2rgb(color)\n if (rgb == null) return\n const solidColor = `rgb(${Math.floor(rgb.r)}, ${Math.floor(rgb.g)}, ${Math.floor(rgb.b)})`\n const tintColor = `rgba(${Math.floor(rgb.r)}, ${Math.floor(rgb.g)}, ${Math.floor(rgb.b)}, .1)`\n const tintColor2 = `rgba(${Math.floor(rgb.r)}, ${Math.floor(rgb.g)}, ${Math.floor(rgb.b)}, .2)`\n const customProps = {\n '--____highlight-solidColor': solidColor,\n '--____highlight-tintColor': tintColor,\n '--____highlight-tintColor2': tintColor2\n }\n if (type === 'striped') {\n return {\n backgroundImage: [\n 'repeating-linear-gradient(135deg,',\n `${tintColor} ,`,\n `${tintColor} 20px,`,\n `${tintColor2} 20px,`,\n `${tintColor2} 40px`\n ].join(' '),\n backgroundPosition: '0 0',\n ...customProps\n }\n } else if (type === 'solid') {\n return {\n backgroundColor: tintColor2,\n ...customProps\n }\n } else if (type === 'side') {\n return {\n backgroundImage: [\n 'linear-gradient(to right,',\n `${solidColor} ,`,\n `${solidColor} 2px,`,\n 'transparent 6px'\n ].join(' '),\n backgroundPosition: '0 0',\n ...customProps\n }\n }\n}\n\nconst highlightClass = (user) => {\n return 'USER____' + user.screen_name\n .replace(/\\./g, '_')\n .replace(/@/g, '_AT_')\n}\n\nexport {\n highlightClass,\n highlightStyle\n}\n","import { includes } from 'lodash'\n\nconst generateProfileLink = (id, screenName, restrictedNicknames) => {\n const complicated = !screenName || (isExternal(screenName) || includes(restrictedNicknames, screenName))\n return {\n name: (complicated ? 'external-user-profile' : 'user-profile'),\n params: (complicated ? { id } : { name: screenName })\n }\n}\n\nconst isExternal = screenName => screenName && screenName.includes('@')\n\nexport default generateProfileLink\n","<template>\n <button\n v-if=\"usePlaceholder\"\n class=\"Attachment -placeholder button-unstyled\"\n :class=\"classNames\"\n @click=\"openModal\"\n >\n <a\n v-if=\"type !== 'html'\"\n class=\"placeholder\"\n target=\"_blank\"\n :href=\"attachment.url\"\n :alt=\"attachment.description\"\n :title=\"attachment.description\"\n @click.prevent\n >\n <FAIcon :icon=\"placeholderIconClass\" />\n <b>{{ nsfw ? \"NSFW / \" : \"\" }}</b>{{ edit ? '' : placeholderName }}\n </a>\n <div\n v-if=\"edit || remove\"\n class=\"attachment-buttons\"\n >\n <button\n v-if=\"remove\"\n class=\"button-unstyled attachment-button\"\n @click.prevent=\"onRemove\"\n >\n <FAIcon icon=\"trash-alt\" />\n </button>\n </div>\n <div\n v-if=\"size !== 'hide' && !hideDescription && (edit || localDescription || showDescription)\"\n class=\"description-container\"\n :class=\"{ '-static': !edit }\"\n >\n <input\n v-if=\"edit\"\n v-model=\"localDescription\"\n type=\"text\"\n class=\"description-field\"\n :placeholder=\"$t('post_status.media_description')\"\n @keydown.enter.prevent=\"\"\n >\n <p v-else>\n {{ localDescription }}\n </p>\n </div>\n </button>\n <div\n v-else\n class=\"Attachment\"\n :class=\"classNames\"\n >\n <div\n v-show=\"!isEmpty\"\n class=\"attachment-wrapper\"\n >\n <a\n v-if=\"hidden\"\n class=\"image-container\"\n :href=\"attachment.url\"\n :alt=\"attachment.description\"\n :title=\"attachment.description\"\n @click.prevent.stop=\"toggleHidden\"\n >\n <img\n :key=\"nsfwImage\"\n class=\"nsfw\"\n :src=\"nsfwImage\"\n >\n <FAIcon\n v-if=\"type === 'video'\"\n class=\"play-icon\"\n icon=\"play-circle\"\n />\n </a>\n <div\n v-if=\"!hidden\"\n class=\"attachment-buttons\"\n >\n <button\n v-if=\"type === 'flash' && flashLoaded\"\n class=\"button-unstyled attachment-button\"\n :title=\"$t('status.attachment_stop_flash')\"\n @click.prevent=\"stopFlash\"\n >\n <FAIcon icon=\"stop\" />\n </button>\n <button\n v-if=\"attachment.description && size !== 'small' && !edit && type !== 'unknown'\"\n class=\"button-unstyled attachment-button\"\n :title=\"$t('status.show_attachment_description')\"\n @click.prevent=\"toggleDescription\"\n >\n <FAIcon icon=\"align-right\" />\n </button>\n <button\n v-if=\"!useModal && type !== 'unknown'\"\n class=\"button-unstyled attachment-button\"\n :title=\"$t('status.show_attachment_in_modal')\"\n @click.prevent=\"openModalForce\"\n >\n <FAIcon icon=\"search-plus\" />\n </button>\n <button\n v-if=\"nsfw && hideNsfwLocal\"\n class=\"button-unstyled attachment-button\"\n :title=\"$t('status.hide_attachment')\"\n @click.prevent=\"toggleHidden\"\n >\n <FAIcon icon=\"times\" />\n </button>\n <button\n v-if=\"shiftUp\"\n class=\"button-unstyled attachment-button\"\n :title=\"$t('status.move_up')\"\n @click.prevent=\"onShiftUp\"\n >\n <FAIcon icon=\"chevron-left\" />\n </button>\n <button\n v-if=\"shiftDn\"\n class=\"button-unstyled attachment-button\"\n :title=\"$t('status.move_down')\"\n @click.prevent=\"onShiftDn\"\n >\n <FAIcon icon=\"chevron-right\" />\n </button>\n <button\n v-if=\"remove\"\n class=\"button-unstyled attachment-button\"\n :title=\"$t('status.remove_attachment')\"\n @click.prevent=\"onRemove\"\n >\n <FAIcon icon=\"trash-alt\" />\n </button>\n </div>\n\n <a\n v-if=\"type === 'image' && (!hidden || preloadImage)\"\n class=\"image-container\"\n :class=\"{'-hidden': hidden && preloadImage }\"\n :href=\"attachment.url\"\n target=\"_blank\"\n @click.stop.prevent=\"openModal\"\n >\n <StillImage\n class=\"image\"\n :referrerpolicy=\"referrerpolicy\"\n :mimetype=\"attachment.mimetype\"\n :src=\"attachment.large_thumb_url || attachment.url\"\n :image-load-handler=\"onImageLoad\"\n :alt=\"attachment.description\"\n />\n </a>\n\n <a\n v-if=\"type === 'unknown' && !hidden\"\n class=\"placeholder-container\"\n :href=\"attachment.url\"\n target=\"_blank\"\n >\n <FAIcon\n :size=\"compact ? '2x' : '5x'\"\n :icon=\"placeholderIconClass\"\n :title=\"localDescription\"\n />\n <p v-if=\"!compact\">\n {{ localDescription }}\n </p>\n </a>\n\n <component\n :is=\"videoTag\"\n v-if=\"type === 'video' && !hidden\"\n class=\"video-container\"\n :class=\"{ 'button-unstyled': 'isModal' }\"\n :href=\"attachment.url\"\n @click.stop.prevent=\"openModal\"\n >\n <VideoAttachment\n class=\"video\"\n :attachment=\"attachment\"\n :controls=\"!useModal\"\n @play=\"$emit('play')\"\n @pause=\"$emit('pause')\"\n />\n <FAIcon\n v-if=\"useModal\"\n class=\"play-icon\"\n icon=\"play-circle\"\n />\n </component>\n\n <span\n v-if=\"type === 'audio' && !hidden\"\n class=\"audio-container\"\n :href=\"attachment.url\"\n @click.stop.prevent=\"openModal\"\n >\n <audio\n v-if=\"type === 'audio'\"\n :src=\"attachment.url\"\n :alt=\"attachment.description\"\n :title=\"attachment.description\"\n controls\n @play=\"$emit('play')\"\n @pause=\"$emit('pause')\"\n />\n </span>\n\n <div\n v-if=\"type === 'html' && attachment.oembed\"\n class=\"oembed-container\"\n @click.prevent=\"linkClicked\"\n >\n <div\n v-if=\"attachment.thumb_url\"\n class=\"image\"\n >\n <img :src=\"attachment.thumb_url\">\n </div>\n <div class=\"text\">\n <!-- eslint-disable vue/no-v-html -->\n <h1><a :href=\"attachment.url\">{{ attachment.oembed.title }}</a></h1>\n <div v-html=\"attachment.oembed.oembedHTML\" />\n <!-- eslint-enable vue/no-v-html -->\n </div>\n </div>\n\n <span\n v-if=\"type === 'flash' && !hidden\"\n class=\"flash-container\"\n :href=\"attachment.url\"\n @click.stop.prevent=\"openModal\"\n >\n <Flash\n ref=\"flash\"\n class=\"flash\"\n :src=\"attachment.large_thumb_url || attachment.url\"\n @playerOpened=\"setFlashLoaded(true)\"\n @playerClosed=\"setFlashLoaded(false)\"\n />\n </span>\n </div>\n <div\n v-if=\"size !== 'hide' && !hideDescription && (edit || (localDescription && showDescription))\"\n class=\"description-container\"\n :class=\"{ '-static': !edit }\"\n >\n <input\n v-if=\"edit\"\n v-model=\"localDescription\"\n type=\"text\"\n class=\"description-field\"\n :placeholder=\"$t('post_status.media_description')\"\n @keydown.enter.prevent=\"\"\n >\n <p v-else>\n {{ localDescription }}\n </p>\n </div>\n </div>\n</template>\n\n<script src=\"./attachment.js\"></script>\n\n<style src=\"./attachment.scss\" lang=\"scss\"></style>\n","import StillImage from '../still-image/still-image.vue'\nimport Flash from '../flash/flash.vue'\nimport VideoAttachment from '../video_attachment/video_attachment.vue'\nimport nsfwImage from '../../assets/nsfw.png'\nimport fileTypeService from '../../services/file_type/file_type.service.js'\nimport { mapGetters } from 'vuex'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faFile,\n faMusic,\n faImage,\n faVideo,\n faPlayCircle,\n faTimes,\n faStop,\n faSearchPlus,\n faTrashAlt,\n faPencilAlt,\n faAlignRight\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faFile,\n faMusic,\n faImage,\n faVideo,\n faPlayCircle,\n faTimes,\n faStop,\n faSearchPlus,\n faTrashAlt,\n faPencilAlt,\n faAlignRight\n)\n\nconst Attachment = {\n props: [\n 'attachment',\n 'compact',\n 'description',\n 'hideDescription',\n 'nsfw',\n 'size',\n 'setMedia',\n 'remove',\n 'shiftUp',\n 'shiftDn',\n 'edit'\n ],\n data () {\n return {\n localDescription: this.description || this.attachment.description,\n nsfwImage: this.$store.state.instance.nsfwCensorImage || nsfwImage,\n hideNsfwLocal: this.$store.getters.mergedConfig.hideNsfw,\n preloadImage: this.$store.getters.mergedConfig.preloadImage,\n loading: false,\n img: fileTypeService.fileType(this.attachment.mimetype) === 'image' && document.createElement('img'),\n modalOpen: false,\n showHidden: false,\n flashLoaded: false,\n showDescription: false\n }\n },\n components: {\n Flash,\n StillImage,\n VideoAttachment\n },\n computed: {\n classNames () {\n return [\n {\n '-loading': this.loading,\n '-nsfw-placeholder': this.hidden,\n '-editable': this.edit !== undefined,\n '-compact': this.compact\n },\n '-type-' + this.type,\n this.size && '-size-' + this.size,\n `-${this.useContainFit ? 'contain' : 'cover'}-fit`\n ]\n },\n usePlaceholder () {\n return this.size === 'hide'\n },\n useContainFit () {\n return this.$store.getters.mergedConfig.useContainFit\n },\n placeholderName () {\n if (this.attachment.description === '' || !this.attachment.description) {\n return this.type.toUpperCase()\n }\n return this.attachment.description\n },\n placeholderIconClass () {\n if (this.type === 'image') return 'image'\n if (this.type === 'video') return 'video'\n if (this.type === 'audio') return 'music'\n return 'file'\n },\n referrerpolicy () {\n return this.$store.state.instance.mediaProxyAvailable ? '' : 'no-referrer'\n },\n type () {\n return fileTypeService.fileType(this.attachment.mimetype)\n },\n hidden () {\n return this.nsfw && this.hideNsfwLocal && !this.showHidden\n },\n isEmpty () {\n return (this.type === 'html' && !this.attachment.oembed)\n },\n useModal () {\n let modalTypes = []\n switch (this.size) {\n case 'hide':\n case 'small':\n modalTypes = ['image', 'video', 'audio', 'flash']\n break\n default:\n modalTypes = this.mergedConfig.playVideosInModal\n ? ['image', 'video', 'flash']\n : ['image']\n break\n }\n return modalTypes.includes(this.type)\n },\n videoTag () {\n return this.useModal ? 'button' : 'span'\n },\n ...mapGetters(['mergedConfig'])\n },\n watch: {\n 'attachment.description' (newVal) {\n this.localDescription = newVal\n },\n localDescription (newVal) {\n this.onEdit(newVal)\n }\n },\n methods: {\n linkClicked ({ target }) {\n if (target.tagName === 'A') {\n window.open(target.href, '_blank')\n }\n },\n openModal (event) {\n if (this.useModal) {\n this.$emit('setMedia')\n this.$store.dispatch('setCurrentMedia', this.attachment)\n } else if (this.type === 'unknown') {\n window.open(this.attachment.url)\n }\n },\n openModalForce (event) {\n this.$emit('setMedia')\n this.$store.dispatch('setCurrentMedia', this.attachment)\n },\n onEdit (event) {\n this.edit && this.edit(this.attachment, event)\n },\n onRemove () {\n this.remove && this.remove(this.attachment)\n },\n onShiftUp () {\n this.shiftUp && this.shiftUp(this.attachment)\n },\n onShiftDn () {\n this.shiftDn && this.shiftDn(this.attachment)\n },\n stopFlash () {\n this.$refs.flash.closePlayer()\n },\n setFlashLoaded (event) {\n this.flashLoaded = event\n },\n toggleDescription () {\n this.showDescription = !this.showDescription\n },\n toggleHidden (event) {\n if (\n (this.mergedConfig.useOneClickNsfw && !this.showHidden) &&\n (this.type !== 'video' || this.mergedConfig.playVideosInModal)\n ) {\n this.openModal(event)\n return\n }\n if (this.img && !this.preloadImage) {\n if (this.img.onload) {\n this.img.onload()\n } else {\n this.loading = true\n this.img.src = this.attachment.url\n this.img.onload = () => {\n this.loading = false\n this.showHidden = !this.showHidden\n }\n }\n } else {\n this.showHidden = !this.showHidden\n }\n },\n onImageLoad (image) {\n const width = image.naturalWidth\n const height = image.naturalHeight\n this.$emit('naturalSizeLoad', { id: this.attachment.id, width, height })\n }\n }\n}\n\nexport default Attachment\n","import { render } from \"./attachment.vue?vue&type=template&id=581d66b2\"\nimport script from \"./attachment.js?vue&type=script&lang=js\"\nexport * from \"./attachment.js?vue&type=script&lang=js\"\n\nimport \"./attachment.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"avatars\">\n <router-link\n v-for=\"user in slicedUsers\"\n :key=\"user.id\"\n :to=\"userProfileLink(user)\"\n class=\"avatars-item\"\n >\n <UserAvatar\n :user=\"user\"\n class=\"avatar-small\"\n />\n </router-link>\n </div>\n</template>\n\n<script src=\"./avatar_list.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.avatars {\n display: flex;\n margin: 0;\n padding: 0;\n\n // For hiding overflowing elements\n flex-wrap: wrap;\n height: 24px;\n\n .avatars-item {\n margin: 0 0 5px 5px;\n\n &:first-child {\n padding-left: 5px;\n }\n\n .avatar-small {\n border-radius: $fallback--avatarAltRadius;\n border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);\n height: 24px;\n width: 24px;\n }\n }\n}\n</style>\n","import UserAvatar from '../user_avatar/user_avatar.vue'\nimport generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\n\nconst AvatarList = {\n props: ['users'],\n computed: {\n slicedUsers () {\n return this.users ? this.users.slice(0, 15) : []\n }\n },\n components: {\n UserAvatar\n },\n methods: {\n userProfileLink (user) {\n return generateProfileLink(user.id, user.screen_name, this.$store.state.instance.restrictedNicknames)\n }\n }\n}\n\nexport default AvatarList\n","import { render } from \"./avatar_list.vue?vue&type=template&id=432beb66\"\nimport script from \"./avatar_list.js?vue&type=script&lang=js\"\nexport * from \"./avatar_list.js?vue&type=script&lang=js\"\n\nimport \"./avatar_list.vue?vue&type=style&index=0&id=432beb66&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"basic-user-card\">\n <router-link\n :to=\"userProfileLink(user)\"\n @click.prevent\n >\n <UserPopover\n :user-id=\"user.id\"\n :overlay-centers=\"true\"\n overlay-centers-selector=\".avatar\"\n >\n <UserAvatar\n class=\"user-avatar avatar\"\n :user=\"user\"\n @click.prevent\n />\n </UserPopover>\n </router-link>\n <div\n class=\"basic-user-card-collapsed-content\"\n >\n <div\n :title=\"user.name\"\n class=\"basic-user-card-user-name\"\n >\n <RichContent\n class=\"basic-user-card-user-name-value\"\n :html=\"user.name\"\n :emoji=\"user.emoji\"\n />\n </div>\n <div>\n <user-link\n class=\"basic-user-card-screen-name\"\n :user=\"user\"\n />\n </div>\n <slot />\n </div>\n </div>\n</template>\n\n<script src=\"./basic_user_card.js\"></script>\n\n<style lang=\"scss\">\n.basic-user-card {\n display: flex;\n flex: 1 0;\n margin: 0;\n padding: 0.6em 1em;\n\n --emoji-size: 14px;\n\n &-collapsed-content {\n margin-left: 0.7em;\n text-align: left;\n flex: 1;\n min-width: 0;\n }\n\n &-user-name {\n img {\n object-fit: contain;\n height: 16px;\n width: 16px;\n vertical-align: middle;\n }\n }\n\n &-user-name-value,\n &-screen-name {\n display: inline-block;\n max-width: 100%;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n &-expanded-content {\n flex: 1;\n margin-left: 0.7em;\n min-width: 0;\n }\n}\n</style>\n","import UserPopover from '../user_popover/user_popover.vue'\nimport UserAvatar from '../user_avatar/user_avatar.vue'\nimport UserLink from '../user_link/user_link.vue'\nimport RichContent from 'src/components/rich_content/rich_content.jsx'\nimport generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\n\nconst BasicUserCard = {\n props: [\n 'user'\n ],\n components: {\n UserPopover,\n UserAvatar,\n RichContent,\n UserLink\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 BasicUserCard\n","import { render } from \"./basic_user_card.vue?vue&type=template&id=d8a50982\"\nimport script from \"./basic_user_card.js?vue&type=script&lang=js\"\nexport * from \"./basic_user_card.js?vue&type=script&lang=js\"\n\nimport \"./basic_user_card.vue?vue&type=style&index=0&id=d8a50982&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <label\n class=\"checkbox\"\n :class=\"{ disabled, indeterminate, 'indeterminate-fix': indeterminateTransitionFix }\"\n >\n <input\n type=\"checkbox\"\n class=\"visible-for-screenreader-only\"\n :disabled=\"disabled\"\n :checked=\"modelValue\"\n :indeterminate=\"indeterminate\"\n @change=\"$emit('update:modelValue', $event.target.checked)\"\n >\n <i\n class=\"checkbox-indicator\"\n :aria-hidden=\"true\"\n @transitionend.capture=\"onTransitionEnd\"\n />\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 props: [\n 'modelValue',\n 'indeterminate',\n 'disabled'\n ],\n emits: ['update:modelValue'],\n data: (vm) => ({\n indeterminateTransitionFix: vm.indeterminate\n }),\n watch: {\n indeterminate (e) {\n if (e) {\n this.indeterminateTransitionFix = true\n }\n }\n },\n methods: {\n onTransitionEnd (e) {\n if (!this.indeterminate) {\n this.indeterminateTransitionFix = false\n }\n }\n }\n}\n</script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n@import \"../../mixins\";\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: 0 0 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: 0.5;\n }\n\n .label {\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n }\n }\n\n input[type=\"checkbox\"] {\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 &.indeterminate-fix {\n input[type=\"checkbox\"] + .checkbox-indicator::before {\n content: \"–\";\n }\n }\n\n & > span {\n margin-left: 0.5em;\n }\n}\n</style>\n","import { render } from \"./checkbox.vue?vue&type=template&id=7164e0b5\"\nimport script from \"./checkbox.vue?vue&type=script&lang=js\"\nexport * from \"./checkbox.vue?vue&type=script&lang=js\"\n\nimport \"./checkbox.vue?vue&type=style&index=0&id=7164e0b5&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import DialogModal from '../dialog_modal/dialog_modal.vue'\n\n/**\n * This component emits the following events:\n * cancelled, emitted when the action should not be performed;\n * accepted, emitted when the action should be performed;\n *\n * The caller should close this dialog after receiving any of the two events.\n */\nconst ConfirmModal = {\n components: {\n DialogModal\n },\n props: {\n title: {\n type: String\n },\n cancelText: {\n type: String\n },\n confirmText: {\n type: String\n }\n },\n computed: {\n },\n methods: {\n onCancel () {\n this.$emit('cancelled')\n },\n onAccept () {\n this.$emit('accepted')\n }\n }\n}\n\nexport default ConfirmModal\n","import { render } from \"./confirm_modal.vue?vue&type=template&id=c74bcd96\"\nimport script from \"./confirm_modal.js?vue&type=script&lang=js\"\nexport * from \"./confirm_modal.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <dialog-modal\n v-body-scroll-lock=\"true\"\n class=\"confirm-modal\"\n :on-cancel=\"onCancel\"\n >\n <template #header>\n <span v-text=\"title\" />\n </template>\n\n <slot />\n\n <template #footer>\n <button\n class=\"btn button-default\"\n @click.prevent=\"onAccept\"\n v-text=\"confirmText\"\n />\n\n <button\n class=\"btn button-default\"\n @click.prevent=\"onCancel\"\n v-text=\"cancelText\"\n />\n </template>\n </dialog-modal>\n</template>\n\n<script src=\"./confirm_modal.js\"></script>\n","<template>\n <span\n :class=\"{ 'dark-overlay': darkOverlay }\"\n @click.self.stop=\"onCancel()\"\n >\n <div\n class=\"dialog-modal panel panel-default\"\n @click.stop=\"\"\n >\n <div class=\"panel-heading dialog-modal-heading\">\n <div class=\"title\">\n <slot name=\"header\" />\n </div>\n </div>\n <div class=\"dialog-modal-content\">\n <slot name=\"default\" />\n </div>\n <div class=\"dialog-modal-footer user-interactions panel-footer\">\n <slot name=\"footer\" />\n </div>\n </div>\n </span>\n</template>\n\n<script src=\"./dialog_modal.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n// TODO: unify with other modals.\n.dark-overlay {\n &::before {\n bottom: 0;\n content: \" \";\n display: block;\n cursor: default;\n left: 0;\n position: fixed;\n right: 0;\n top: 0;\n background: rgb(27 31 35 / 50%);\n z-index: 2000;\n }\n}\n\n.dialog-modal.panel {\n top: 0;\n left: 50%;\n max-height: 80vh;\n max-width: 90vw;\n margin: 15vh auto;\n position: fixed;\n transform: translateX(-50%);\n z-index: 2001;\n cursor: default;\n display: block;\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n\n .dialog-modal-heading {\n .title {\n text-align: center;\n }\n }\n\n .dialog-modal-content {\n margin: 0;\n padding: 1rem;\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n white-space: normal;\n }\n\n .dialog-modal-footer {\n margin: 0;\n padding: 0.5em;\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n border-top: 1px solid $fallback--border;\n border-top: 1px solid var(--border, $fallback--border);\n display: flex;\n justify-content: flex-end;\n\n button {\n width: auto;\n margin-left: 0.5rem;\n }\n }\n}\n\n</style>\n","const DialogModal = {\n props: {\n darkOverlay: {\n default: true,\n type: Boolean\n },\n onCancel: {\n default: () => {},\n type: Function\n }\n }\n}\n\nexport default DialogModal\n","import { render } from \"./dialog_modal.vue?vue&type=template&id=5b856fbc\"\nimport script from \"./dialog_modal.js?vue&type=script&lang=js\"\nexport * from \"./dialog_modal.js?vue&type=script&lang=js\"\n\nimport \"./dialog_modal.vue?vue&type=style&index=0&id=5b856fbc&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n ref=\"root\"\n class=\"emoji-input\"\n :class=\"{ 'with-picker': !hideEmojiButton }\"\n >\n <slot\n :id=\"'textbox-' + randomSeed\"\n :aria-owns=\"suggestionListId\"\n aria-autocomplete=\"both\"\n :aria-expanded=\"showSuggestions\"\n :aria-activedescendant=\"(!showSuggestions || highlighted === -1) ? '' : suggestionItemId(highlighted)\"\n />\n <!-- TODO: make the 'x' disappear if at the end maybe? -->\n <div\n ref=\"hiddenOverlay\"\n class=\"hidden-overlay\"\n :style=\"overlayStyle\"\n :aria-hidden=\"true\"\n >\n <span>{{ preText }}</span>\n <span\n ref=\"hiddenOverlayCaret\"\n class=\"caret\"\n >x</span>\n <span>{{ postText }}</span>\n </div>\n <screen-reader-notice\n ref=\"screenReaderNotice\"\n aria-live=\"assertive\"\n />\n <template v-if=\"enableEmojiPicker\">\n <button\n v-if=\"!hideEmojiButton\"\n class=\"button-unstyled emoji-picker-icon\"\n type=\"button\"\n :title=\"$t('emoji.add_emoji')\"\n @click.prevent=\"togglePicker\"\n >\n <FAIcon :icon=\"['far', 'smile-beam']\" />\n </button>\n <EmojiPicker\n v-if=\"enableEmojiPicker\"\n ref=\"picker\"\n :enable-sticker-picker=\"enableStickerPicker\"\n class=\"emoji-picker-panel\"\n @emoji=\"insert\"\n @sticker-uploaded=\"onStickerUploaded\"\n @sticker-upload-failed=\"onStickerUploadFailed\"\n @show=\"onPickerShown\"\n @close=\"onPickerClosed\"\n />\n </template>\n <Popover\n ref=\"suggestorPopover\"\n class=\"autocomplete-panel\"\n placement=\"bottom\"\n :trigger-attrs=\"{ 'aria-hidden': true }\"\n >\n <template #content>\n <div\n :id=\"suggestionListId\"\n ref=\"panel-body\"\n class=\"autocomplete-panel-body\"\n role=\"listbox\"\n >\n <div\n v-for=\"(suggestion, index) in suggestions\"\n :id=\"suggestionItemId(index)\"\n :key=\"index\"\n class=\"autocomplete-item\"\n role=\"option\"\n :class=\"{ highlighted: index === highlighted }\"\n :aria-label=\"autoCompleteItemLabel(suggestion)\"\n :aria-selected=\"index === highlighted\"\n @click.stop.prevent=\"onClick($event, suggestion)\"\n >\n <span class=\"image\">\n <img\n v-if=\"suggestion.img\"\n :src=\"suggestion.img\"\n >\n <span v-else>{{ suggestion.replacement }}</span>\n </span>\n <div class=\"label\">\n <span\n v-if=\"suggestion.user\"\n class=\"displayText\"\n >\n {{ suggestion.displayText }}<UnicodeDomainIndicator\n :user=\"suggestion.user\"\n :at=\"false\"\n />\n </span>\n <span\n v-if=\"!suggestion.user\"\n class=\"displayText\"\n >\n {{ maybeLocalizedEmojiName(suggestion) }}\n </span>\n <span class=\"detailText\">{{ suggestion.detailText }}</span>\n </div>\n </div>\n </div>\n </template>\n </Popover>\n </div>\n</template>\n\n<script src=\"./emoji_input.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.emoji-input {\n display: flex;\n flex-direction: column;\n position: relative;\n\n .emoji-picker-icon {\n position: absolute;\n top: 0;\n right: 0;\n margin: 0.2em 0.25em;\n font-size: 1.3em;\n cursor: pointer;\n line-height: 24px;\n\n &:hover i {\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n }\n\n .emoji-picker-panel {\n position: absolute;\n z-index: 20;\n margin-top: 2px;\n\n &.hide {\n display: none;\n }\n }\n\n input,\n textarea {\n flex: 1 0 auto;\n }\n\n &.with-picker input {\n padding-right: 30px;\n }\n\n .hidden-overlay {\n opacity: 0;\n pointer-events: none;\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n left: 0;\n overflow: hidden;\n\n /* DEBUG STUFF */\n color: red;\n\n /* set opacity to non-zero to see the overlay */\n\n .caret {\n width: 0;\n margin-right: calc(-1ch - 1px);\n border: 1px solid red;\n }\n }\n}\n\n.autocomplete {\n &-panel {\n position: absolute;\n }\n\n &-item {\n display: flex;\n cursor: pointer;\n padding: 0.2em 0.4em;\n border-bottom: 1px solid rgb(0 0 0 / 40%);\n height: 32px;\n\n .image {\n width: 32px;\n height: 32px;\n line-height: 32px;\n text-align: center;\n font-size: 32px;\n margin-right: 4px;\n\n img {\n width: 32px;\n height: 32px;\n object-fit: contain;\n }\n }\n\n .label {\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin: 0 0.1em 0 0.2em;\n\n .displayText {\n line-height: 1.5;\n }\n\n .detailText {\n font-size: 9px;\n line-height: 9px;\n }\n }\n\n &.highlighted {\n background-color: $fallback--fg;\n background-color: var(--selectedMenuPopover, $fallback--fg);\n color: var(--selectedMenuPopoverText, $fallback--text);\n\n --faint: var(--selectedMenuPopoverFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuPopoverFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuPopoverLightText, $fallback--lightText);\n --icon: var(--selectedMenuPopoverIcon, $fallback--icon);\n }\n }\n}\n</style>\n","import { reduce, find } from 'lodash'\n\nexport const replaceWord = (str, toReplace, replacement) => {\n return str.slice(0, toReplace.start) + replacement + str.slice(toReplace.end)\n}\n\nexport const wordAtPosition = (str, pos) => {\n const words = splitByWhitespaceBoundary(str)\n const wordsWithPosition = addPositionToWords(words)\n\n return find(wordsWithPosition, ({ start, end }) => start <= pos && end > pos)\n}\n\nexport const addPositionToWords = (words) => {\n return reduce(words, (result, word) => {\n const data = {\n word,\n start: 0,\n end: word.length\n }\n\n if (result.length > 0) {\n const previous = result.pop()\n\n data.start += previous.end\n data.end += previous.end\n\n result.push(previous)\n }\n\n result.push(data)\n\n return result\n }, [])\n}\n\nexport const splitByWhitespaceBoundary = (str) => {\n const result = []\n let currentWord = ''\n for (let i = 0; i < str.length; i++) {\n const currentChar = str[i]\n // Starting a new word\n if (!currentWord) {\n currentWord = currentChar\n continue\n }\n // current character is whitespace while word isn't, or vice versa:\n // add our current word to results, start over the current word.\n if (!!currentChar.trim() !== !!currentWord.trim()) {\n result.push(currentWord)\n currentWord = currentChar\n continue\n }\n currentWord += currentChar\n }\n // Add the last word we were working on\n if (currentWord) {\n result.push(currentWord)\n }\n return result\n}\n\nconst completion = {\n wordAtPosition,\n addPositionToWords,\n splitByWhitespaceBoundary,\n replaceWord\n}\n\nexport default completion\n","const ScreenReaderNotice = {\n props: {\n ariaLive: {\n type: String,\n defualt: 'assertive'\n }\n },\n data () {\n return {\n currentText: ''\n }\n },\n methods: {\n announce (text) {\n this.currentText = text\n setTimeout(() => { this.currentText = '' }, 1000)\n }\n }\n}\n\nexport default ScreenReaderNotice\n","import { render } from \"./screen_reader_notice.vue?vue&type=template&id=4978e64a\"\nimport script from \"./screen_reader_notice.js?vue&type=script&lang=js\"\nexport * from \"./screen_reader_notice.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n class=\"visible-for-screenreader-only\"\n :aria-live=\"ariaLive\"\n >\n {{ currentText }}\n </div>\n</template>\n\n<script src=\"./screen_reader_notice.js\"></script>\n","import Completion from '../../services/completion/completion.js'\nimport EmojiPicker from '../emoji_picker/emoji_picker.vue'\nimport Popover from 'src/components/popover/popover.vue'\nimport ScreenReaderNotice from 'src/components/screen_reader_notice/screen_reader_notice.vue'\nimport UnicodeDomainIndicator from '../unicode_domain_indicator/unicode_domain_indicator.vue'\nimport { take } from 'lodash'\nimport { findOffset } from '../../services/offset_finder/offset_finder.service.js'\nimport { ensureFinalFallback } from '../../i18n/languages.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faSmileBeam\n} from '@fortawesome/free-regular-svg-icons'\n\nlibrary.add(\n faSmileBeam\n)\n\n/**\n * EmojiInput - augmented inputs for emoji and autocomplete support in inputs\n * without having to give up the comfort of <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 emits: ['update:modelValue', 'shown'],\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 modelValue: {\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 placement: {\n /**\n * Forces the panel to take a specific position relative to the input element.\n * The 'auto' placement chooses either bottom or top depending on which has the available space (when both have available space, bottom is preferred).\n */\n required: false,\n type: String, // 'auto', 'top', 'bottom'\n default: 'auto'\n },\n newlineOnCtrlEnter: {\n required: false,\n type: Boolean,\n default: false\n }\n },\n data () {\n return {\n randomSeed: `${Math.random()}`.replace('.', '-'),\n input: undefined,\n caretEl: undefined,\n highlighted: -1,\n caret: 0,\n focused: false,\n blurTimeout: null,\n temporarilyHideSuggestions: false,\n disableClickOutside: false,\n suggestions: [],\n overlayStyle: {},\n pickerShown: false\n }\n },\n components: {\n Popover,\n EmojiPicker,\n UnicodeDomainIndicator,\n ScreenReaderNotice\n },\n computed: {\n padEmoji () {\n return this.$store.getters.mergedConfig.padEmoji\n },\n defaultCandidateIndex () {\n return this.$store.getters.mergedConfig.autocompleteSelect ? 0 : -1\n },\n preText () {\n return this.modelValue.slice(0, this.caret)\n },\n postText () {\n return this.modelValue.slice(this.caret)\n },\n showSuggestions () {\n return this.focused &&\n this.suggestions &&\n this.suggestions.length > 0 &&\n !this.pickerShown &&\n !this.temporarilyHideSuggestions\n },\n textAtCaret () {\n return this.wordAtCaret?.word\n },\n wordAtCaret () {\n if (this.modelValue && this.caret) {\n const word = Completion.wordAtPosition(this.modelValue, this.caret - 1) || {}\n return word\n }\n },\n languages () {\n return ensureFinalFallback(this.$store.getters.mergedConfig.interfaceLanguage)\n },\n maybeLocalizedEmojiNamesAndKeywords () {\n return emoji => {\n const names = [emoji.displayText]\n const keywords = []\n\n if (emoji.displayTextI18n) {\n names.push(this.$t(emoji.displayTextI18n.key, emoji.displayTextI18n.args))\n }\n\n if (emoji.annotations) {\n this.languages.forEach(lang => {\n names.push(emoji.annotations[lang]?.name)\n\n keywords.push(...(emoji.annotations[lang]?.keywords || []))\n })\n }\n\n return {\n names: names.filter(k => k),\n keywords: keywords.filter(k => k)\n }\n }\n },\n maybeLocalizedEmojiName () {\n return emoji => {\n if (!emoji.annotations) {\n return emoji.displayText\n }\n\n if (emoji.displayTextI18n) {\n return this.$t(emoji.displayTextI18n.key, emoji.displayTextI18n.args)\n }\n\n for (const lang of this.languages) {\n if (emoji.annotations[lang]?.name) {\n return emoji.annotations[lang].name\n }\n }\n\n return emoji.displayText\n }\n },\n onInputScroll () {\n this.$refs.hiddenOverlay.scrollTo({\n top: this.input.scrollTop,\n left: this.input.scrollLeft\n })\n },\n suggestionListId () {\n return `suggestions-${this.randomSeed}`\n },\n suggestionItemId () {\n return (index) => `suggestion-item-${index}-${this.randomSeed}`\n }\n },\n mounted () {\n const { root, hiddenOverlayCaret, suggestorPopover } = this.$refs\n const input = root.querySelector('.emoji-input > input') || root.querySelector('.emoji-input > textarea')\n if (!input) return\n this.input = input\n this.caretEl = hiddenOverlayCaret\n if (suggestorPopover.setAnchorEl) {\n suggestorPopover.setAnchorEl(this.caretEl) // unit test compat\n this.$refs.picker.setAnchorEl(this.caretEl)\n } else {\n console.warn('setAnchorEl not found, are we in a unit test?')\n }\n const style = getComputedStyle(this.input)\n this.overlayStyle.padding = style.padding\n this.overlayStyle.border = style.border\n this.overlayStyle.margin = style.margin\n this.overlayStyle.lineHeight = style.lineHeight\n this.overlayStyle.fontFamily = style.fontFamily\n this.overlayStyle.fontSize = style.fontSize\n this.overlayStyle.wordWrap = style.wordWrap\n this.overlayStyle.whiteSpace = style.whiteSpace\n this.resize()\n input.addEventListener('blur', this.onBlur)\n input.addEventListener('focus', this.onFocus)\n input.addEventListener('paste', this.onPaste)\n input.addEventListener('keyup', this.onKeyUp)\n input.addEventListener('keydown', this.onKeyDown)\n input.addEventListener('click', this.onClickInput)\n input.addEventListener('transitionend', this.onTransition)\n input.addEventListener('input', this.onInput)\n input.addEventListener('scroll', this.onInputScroll)\n },\n unmounted () {\n const { input } = this\n if (input) {\n input.removeEventListener('blur', this.onBlur)\n input.removeEventListener('focus', this.onFocus)\n input.removeEventListener('paste', this.onPaste)\n input.removeEventListener('keyup', this.onKeyUp)\n input.removeEventListener('keydown', this.onKeyDown)\n input.removeEventListener('click', this.onClickInput)\n input.removeEventListener('transitionend', this.onTransition)\n input.removeEventListener('input', this.onInput)\n input.removeEventListener('scroll', this.onInputScroll)\n }\n },\n watch: {\n showSuggestions: function (newValue, oldValue) {\n this.$emit('shown', newValue)\n if (newValue) {\n this.$refs.suggestorPopover.showPopover()\n } else {\n this.$refs.suggestorPopover.hidePopover()\n }\n },\n textAtCaret: async function (newWord) {\n if (newWord === undefined) return\n const firstchar = newWord.charAt(0)\n if (newWord === firstchar) {\n this.suggestions = []\n return\n }\n const matchedSuggestions = await this.suggest(newWord, this.maybeLocalizedEmojiNamesAndKeywords)\n // Async: cancel if textAtCaret has changed during wait\n if (this.textAtCaret !== newWord || matchedSuggestions.length <= 0) {\n this.suggestions = []\n return\n }\n this.suggestions = take(matchedSuggestions, 5)\n .map(({ imageUrl, ...rest }) => ({\n ...rest,\n img: imageUrl || ''\n }))\n this.highlighted = this.defaultCandidateIndex\n this.$refs.screenReaderNotice.announce(\n this.$tc('tool_tip.autocomplete_available',\n this.suggestions.length,\n { number: this.suggestions.length }))\n }\n },\n methods: {\n triggerShowPicker () {\n this.$nextTick(() => {\n this.$refs.picker.showPicker()\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.focus()\n if (!this.pickerShown) {\n this.scrollIntoView()\n this.$refs.picker.showPicker()\n this.$refs.picker.startEmojiLoad()\n } else {\n this.$refs.picker.hidePicker()\n }\n },\n replace (replacement) {\n const newValue = Completion.replaceWord(this.modelValue, this.wordAtCaret, replacement)\n this.$emit('update:modelValue', newValue)\n this.caret = 0\n },\n insert ({ insertion, keepOpen, surroundingSpace = true }) {\n const before = this.modelValue.substring(0, this.caret) || ''\n const after = this.modelValue.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 = (surroundingSpace && !isSpaceRegex.exec(before.slice(-1)) && before.length && this.padEmoji > 0) ? ' ' : ''\n const spaceAfter = (surroundingSpace && !isSpaceRegex.exec(after[0]) && this.padEmoji) ? ' ' : ''\n\n const newValue = [\n before,\n spaceBefore,\n insertion,\n spaceAfter,\n after\n ].join('')\n this.$emit('update:modelValue', newValue)\n const position = this.caret + (insertion + spaceAfter + spaceBefore).length\n if (!keepOpen) {\n this.input.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.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.modelValue, this.wordAtCaret, replacement)\n this.$emit('update:modelValue', 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.focus()\n // Set selection right after the replacement instead of the very end\n this.input.setSelectionRange(position, position)\n this.caret = position\n })\n e.preventDefault()\n }\n },\n cycleBackward (e) {\n const len = this.suggestions.length || 0\n\n this.highlighted -= 1\n if (this.highlighted === -1) {\n this.input.focus()\n } else if (this.highlighted < -1) {\n this.highlighted = len - 1\n }\n if (len > 0) {\n e.preventDefault()\n }\n },\n cycleForward (e) {\n const len = this.suggestions.length || 0\n\n this.highlighted += 1\n if (this.highlighted >= len) {\n this.highlighted = -1\n this.input.focus()\n }\n if (len > 0) {\n e.preventDefault()\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\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 onPickerShown () {\n this.pickerShown = true\n },\n onPickerClosed () {\n this.pickerShown = false\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 }, 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 this.focused = true\n this.setCaret(e)\n this.temporarilyHideSuggestions = false\n },\n onKeyUp (e) {\n const { key } = e\n this.setCaret(e)\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 },\n onKeyDown (e) {\n const { ctrlKey, shiftKey, key } = e\n if (this.newlineOnCtrlEnter && ctrlKey && key === 'Enter') {\n this.insert({ insertion: '\\n', surroundingSpace: false })\n // Ensure only one new line is added on macos\n e.stopPropagation()\n e.preventDefault()\n\n // Scroll the input element to the position of the cursor\n this.$nextTick(() => {\n this.input.blur()\n this.input.focus()\n })\n }\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.focus()\n }\n }\n },\n onInput (e) {\n this.setCaret(e)\n this.$emit('update:modelValue', e.target.value)\n },\n onStickerUploaded (e) {\n this.$emit('sticker-uploaded', e)\n },\n onStickerUploadFailed (e) {\n this.$emit('sticker-upload-Failed', e)\n },\n setCaret ({ target: { selectionStart } }) {\n this.caret = selectionStart\n this.$nextTick(() => {\n this.$refs.suggestorPopover.updateStyles()\n })\n },\n resize () {\n },\n autoCompleteItemLabel (suggestion) {\n if (suggestion.user) {\n return suggestion.displayText + ' ' + suggestion.detailText\n } else {\n return this.maybeLocalizedEmojiName(suggestion)\n }\n }\n }\n}\n\nexport default EmojiInput\n","import { render } from \"./emoji_input.vue?vue&type=template&id=401ef83a\"\nimport script from \"./emoji_input.js?vue&type=script&lang=js\"\nexport * from \"./emoji_input.js?vue&type=script&lang=js\"\n\nimport \"./emoji_input.vue?vue&type=style&index=0&id=401ef83a&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Popover\n ref=\"popover\"\n trigger=\"click\"\n popover-class=\"emoji-picker popover-default\"\n :trigger-attrs=\"{ 'aria-hidden': true }\"\n @show=\"onPopoverShown\"\n @close=\"onPopoverClosed\"\n >\n <template #content>\n <div class=\"heading\">\n <!--\n Body scroll lock needs to be on every scrollable element on safari iOS.\n Here we tell it to enable scrolling for this element.\n See https://github.com/willmcpo/body-scroll-lock#vanilla-js\n -->\n <span\n ref=\"header\"\n v-body-scroll-lock=\"isInModal\"\n class=\"emoji-tabs\"\n >\n <span\n v-for=\"group in filteredEmojiGroups\"\n :ref=\"setGroupRef('group-header-' + group.id)\"\n :key=\"group.id\"\n class=\"emoji-tabs-item\"\n :class=\"{\n active: activeGroupView === group.id\n }\"\n :title=\"group.text\"\n role=\"button\"\n @click.prevent=\"highlight(group.id)\"\n >\n <span\n v-if=\"group.image\"\n class=\"emoji-picker-header-image\"\n >\n <still-image\n :alt=\"group.text\"\n :src=\"group.image\"\n />\n </span>\n <FAIcon\n v-else\n :icon=\"group.icon\"\n fixed-width\n />\n </span>\n </span>\n <span\n v-if=\"stickerPickerEnabled\"\n class=\"additional-tabs\"\n >\n <span\n class=\"stickers-tab-icon additional-tabs-item\"\n :class=\"{active: showingStickers}\"\n :title=\"$t('emoji.stickers')\"\n @click.prevent=\"toggleStickers\"\n >\n <FAIcon\n icon=\"sticky-note\"\n fixed-width\n />\n </span>\n </span>\n </div>\n <div\n v-if=\"contentLoaded\"\n class=\"content\"\n >\n <div\n class=\"emoji-content\"\n :class=\"{hidden: showingStickers}\"\n >\n <div class=\"emoji-search\">\n <input\n ref=\"search\"\n v-model=\"keyword\"\n type=\"text\"\n class=\"form-control\"\n :placeholder=\"$t('emoji.search_emoji')\"\n @input=\"$event.target.composing = false\"\n >\n </div>\n <!-- Enables scrolling for this element on safari iOS. See comments for header. -->\n <DynamicScroller\n ref=\"emoji-groups\"\n v-body-scroll-lock=\"isInModal\"\n class=\"emoji-groups\"\n :class=\"groupsScrolledClass\"\n :min-item-size=\"minItemSize\"\n :items=\"emojiItems\"\n :emit-update=\"true\"\n @update=\"onScroll\"\n @visible=\"recalculateItemPerRow\"\n @resize=\"recalculateItemPerRow\"\n >\n <template #default=\"{ item: group, index, active }\">\n <DynamicScrollerItem\n :ref=\"setGroupRef('group-' + group.id)\"\n :item=\"group\"\n :active=\"active\"\n :data-index=\"index\"\n :size-dependencies=\"[group.emojis.length]\"\n >\n <div\n class=\"emoji-group\"\n >\n <h6\n v-if=\"group.isFirstRow\"\n class=\"emoji-group-title\"\n >\n {{ group.text }}\n </h6>\n <span\n v-for=\"emoji in group.emojis\"\n :key=\"group.id + emoji.displayText\"\n :title=\"maybeLocalizedEmojiName(emoji)\"\n class=\"emoji-item\"\n role=\"button\"\n @click.stop.prevent=\"onEmoji(emoji)\"\n >\n <span\n v-if=\"!emoji.imageUrl\"\n class=\"emoji-picker-emoji -unicode\"\n >{{ emoji.replacement }}</span>\n <still-image\n v-else\n class=\"emoji-picker-emoji -custom\"\n loading=\"lazy\"\n :alt=\"maybeLocalizedEmojiName(emoji)\"\n :src=\"emoji.imageUrl\"\n :data-emoji-name=\"group.id + emoji.displayText\"\n />\n </span>\n </div>\n </DynamicScrollerItem>\n </template>\n </DynamicScroller>\n <div class=\"keep-open\">\n <Checkbox v-model=\"keepOpen\">\n {{ $t('emoji.keep_open') }}\n </Checkbox>\n </div>\n </div>\n <div\n v-if=\"showingStickers\"\n class=\"stickers-content\"\n >\n <sticker-picker\n @uploaded=\"onStickerUploaded\"\n @upload-failed=\"onStickerUploadFailed\"\n />\n </div>\n </div>\n </template>\n </Popover>\n</template>\n\n<script src=\"./emoji_picker.js\"></script>\n<style lang=\"scss\" src=\"./emoji_picker.scss\"></style>\n","import { defineAsyncComponent } from 'vue'\nimport Checkbox from '../checkbox/checkbox.vue'\nimport Popover from 'src/components/popover/popover.vue'\nimport StillImage from '../still-image/still-image.vue'\nimport { ensureFinalFallback } from '../../i18n/languages.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faBoxOpen,\n faStickyNote,\n faSmileBeam,\n faSmile,\n faUser,\n faPaw,\n faIceCream,\n faBus,\n faBasketballBall,\n faLightbulb,\n faCode,\n faFlag\n} from '@fortawesome/free-solid-svg-icons'\nimport { debounce, trim, chunk } from 'lodash'\n\nlibrary.add(\n faBoxOpen,\n faStickyNote,\n faSmileBeam,\n faSmile,\n faUser,\n faPaw,\n faIceCream,\n faBus,\n faBasketballBall,\n faLightbulb,\n faCode,\n faFlag\n)\n\nconst UNICODE_EMOJI_GROUP_ICON = {\n 'smileys-and-emotion': 'smile',\n 'people-and-body': 'user',\n 'animals-and-nature': 'paw',\n 'food-and-drink': 'ice-cream',\n 'travel-and-places': 'bus',\n activities: 'basketball-ball',\n objects: 'lightbulb',\n symbols: 'code',\n flags: 'flag'\n}\n\nconst maybeLocalizedKeywords = (emoji, languages, nameLocalizer) => {\n const res = [emoji.displayText, nameLocalizer(emoji)]\n if (emoji.annotations) {\n languages.forEach(lang => {\n const keywords = emoji.annotations[lang]?.keywords || []\n const name = emoji.annotations[lang]?.name\n res.push(...(keywords.concat([name]).filter(k => k)))\n })\n }\n return res\n}\n\nconst filterByKeyword = (list, keyword = '', languages, nameLocalizer) => {\n if (keyword === '') return list\n\n const keywordLowercase = keyword.toLowerCase()\n const orderedEmojiList = []\n for (const emoji of list) {\n const indices = maybeLocalizedKeywords(emoji, languages, nameLocalizer)\n .map(k => k.toLowerCase().indexOf(keywordLowercase))\n .filter(k => k > -1)\n\n const indexOfKeyword = indices.length ? Math.min(...indices) : -1\n\n if (indexOfKeyword > -1) {\n if (!Array.isArray(orderedEmojiList[indexOfKeyword])) {\n orderedEmojiList[indexOfKeyword] = []\n }\n orderedEmojiList[indexOfKeyword].push(emoji)\n }\n }\n return orderedEmojiList.flat()\n}\n\nconst getOffset = (elem) => {\n const style = elem.style.transform\n const res = /translateY\\((\\d+)px\\)/.exec(style)\n if (!res) { return 0 }\n return res[1]\n}\n\nconst toHeaderId = id => {\n return id.replace(/^row-\\d+-/, '')\n}\n\nconst EmojiPicker = {\n props: {\n enableStickerPicker: {\n required: false,\n type: Boolean,\n default: false\n },\n hideCustomEmoji: {\n required: false,\n type: Boolean,\n default: false\n }\n },\n inject: ['popoversZLayer'],\n data () {\n return {\n keyword: '',\n activeGroup: 'custom',\n showingStickers: false,\n groupsScrolledClass: 'scrolled-top',\n keepOpen: false,\n customEmojiTimeout: null,\n // Lazy-load only after the first time `showing` becomes true.\n contentLoaded: false,\n groupRefs: {},\n emojiRefs: {},\n filteredEmojiGroups: [],\n width: 0\n }\n },\n components: {\n StickerPicker: defineAsyncComponent(() => import('../sticker_picker/sticker_picker.vue')),\n Checkbox,\n StillImage,\n Popover\n },\n methods: {\n showPicker () {\n this.$refs.popover.showPopover()\n this.onShowing()\n },\n hidePicker () {\n this.$refs.popover.hidePopover()\n },\n setAnchorEl (el) {\n this.$refs.popover.setAnchorEl(el)\n },\n setGroupRef (name) {\n return el => { this.groupRefs[name] = el }\n },\n onPopoverShown () {\n this.$emit('show')\n },\n onPopoverClosed () {\n this.$emit('close')\n },\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 if (!this.keepOpen) {\n this.$refs.popover.hidePopover()\n }\n this.$emit('emoji', { insertion: value, keepOpen: this.keepOpen })\n },\n onScroll (startIndex, endIndex, visibleStartIndex, visibleEndIndex) {\n const target = this.$refs['emoji-groups'].$el\n this.scrolledGroup(target, visibleStartIndex, visibleEndIndex)\n },\n scrolledGroup (target, start, end) {\n const top = target.scrollTop + 5\n this.$nextTick(() => {\n this.emojiItems.slice(start, end + 1).forEach(group => {\n const headerId = toHeaderId(group.id)\n const ref = this.groupRefs['group-' + group.id]\n if (!ref) { return }\n const elem = ref.$el.parentElement\n if (!elem) { return }\n if (elem && getOffset(elem) <= top) {\n this.activeGroup = headerId\n }\n })\n this.scrollHeader()\n })\n },\n scrollHeader () {\n // Scroll the active tab's header into view\n const headerRef = this.groupRefs['group-header-' + this.activeGroup]\n const left = headerRef.offsetLeft\n const right = left + headerRef.offsetWidth\n const headerCont = this.$refs.header\n const currentScroll = headerCont.scrollLeft\n const currentScrollRight = currentScroll + headerCont.clientWidth\n const setScroll = s => { headerCont.scrollLeft = s }\n\n const margin = 7 // .emoji-tabs-item: padding\n if (left - margin < currentScroll) {\n setScroll(left - margin)\n } else if (right + margin > currentScrollRight) {\n setScroll(right + margin - headerCont.clientWidth)\n }\n },\n highlight (groupId) {\n this.setShowStickers(false)\n const indexInList = this.emojiItems.findIndex(k => k.id === groupId)\n this.$refs['emoji-groups'].scrollToItem(indexInList)\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 toggleStickers () {\n this.showingStickers = !this.showingStickers\n },\n setShowStickers (value) {\n this.showingStickers = value\n },\n filterByKeyword (list, keyword) {\n return filterByKeyword(list, keyword, this.languages, this.maybeLocalizedEmojiName)\n },\n onShowing () {\n const oldContentLoaded = this.contentLoaded\n this.recalculateItemPerRow()\n this.$nextTick(() => {\n this.$refs.search.focus()\n })\n this.contentLoaded = true\n this.filteredEmojiGroups = this.getFilteredEmojiGroups()\n if (!oldContentLoaded) {\n this.$nextTick(() => {\n if (this.defaultGroup) {\n this.highlight(this.defaultGroup)\n }\n })\n }\n },\n getFilteredEmojiGroups () {\n return this.allEmojiGroups\n .map(group => ({\n ...group,\n emojis: this.filterByKeyword(group.emojis, trim(this.keyword))\n }))\n .filter(group => group.emojis.length > 0)\n },\n recalculateItemPerRow () {\n this.$nextTick(() => {\n if (!this.$refs['emoji-groups']) {\n return\n }\n this.width = this.$refs['emoji-groups'].$el.clientWidth\n })\n }\n },\n watch: {\n keyword () {\n this.onScroll()\n this.debouncedHandleKeywordChange()\n },\n allCustomGroups () {\n this.filteredEmojiGroups = this.getFilteredEmojiGroups()\n }\n },\n computed: {\n minItemSize () {\n return this.emojiHeight\n },\n emojiHeight () {\n return 32 + 4\n },\n emojiWidth () {\n return 32 + 4\n },\n itemPerRow () {\n return this.width ? Math.floor(this.width / this.emojiWidth - 1) : 6\n },\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 allCustomGroups () {\n if (this.hideCustomEmoji) {\n return {}\n }\n const emojis = this.$store.getters.groupedCustomEmojis\n if (emojis.unpacked) {\n emojis.unpacked.text = this.$t('emoji.unpacked')\n }\n return emojis\n },\n defaultGroup () {\n return Object.keys(this.allCustomGroups)[0]\n },\n unicodeEmojiGroups () {\n return this.$store.getters.standardEmojiGroupList.map(group => ({\n id: `standard-${group.id}`,\n text: this.$t(`emoji.unicode_groups.${group.id}`),\n icon: UNICODE_EMOJI_GROUP_ICON[group.id],\n emojis: group.emojis\n }))\n },\n allEmojiGroups () {\n return Object.entries(this.allCustomGroups)\n .map(([_, v]) => v)\n .concat(this.unicodeEmojiGroups)\n },\n stickerPickerEnabled () {\n return (this.$store.state.instance.stickers || []).length !== 0\n },\n debouncedHandleKeywordChange () {\n return debounce(() => {\n this.filteredEmojiGroups = this.getFilteredEmojiGroups()\n }, 500)\n },\n emojiItems () {\n return this.filteredEmojiGroups.map(group =>\n chunk(group.emojis, this.itemPerRow)\n .map((items, index) => ({\n ...group,\n id: index === 0 ? group.id : `row-${index}-${group.id}`,\n emojis: items,\n isFirstRow: index === 0\n })))\n .reduce((a, c) => a.concat(c), [])\n },\n languages () {\n return ensureFinalFallback(this.$store.getters.mergedConfig.interfaceLanguage)\n },\n maybeLocalizedEmojiName () {\n return emoji => {\n if (!emoji.annotations) {\n return emoji.displayText\n }\n\n if (emoji.displayTextI18n) {\n return this.$t(emoji.displayTextI18n.key, emoji.displayTextI18n.args)\n }\n\n for (const lang of this.languages) {\n if (emoji.annotations[lang]?.name) {\n return emoji.annotations[lang].name\n }\n }\n\n return emoji.displayText\n }\n },\n isInModal () {\n return this.popoversZLayer === 'modals'\n }\n }\n}\n\nexport default EmojiPicker\n","import { render } from \"./emoji_picker.vue?vue&type=template&id=7dac5382\"\nimport script from \"./emoji_picker.js?vue&type=script&lang=js\"\nexport * from \"./emoji_picker.js?vue&type=script&lang=js\"\n\nimport \"./emoji_picker.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","const createRuffleService = () => {\n let ruffleInstance = null\n\n const getRuffle = () => new Promise((resolve, reject) => {\n if (ruffleInstance) {\n resolve(ruffleInstance)\n return\n }\n // Ruffle needs these to be set before it's loaded\n // https://github.com/ruffle-rs/ruffle/issues/3952\n window.RufflePlayer = {}\n window.RufflePlayer.config = {\n polyfills: false,\n publicPath: '/static/ruffle'\n }\n\n // Currently it's seems like a better way of loading ruffle\n // because it needs the wasm publically accessible, but it needs path to it\n // and filename of wasm seems to be pseudo-randomly generated (is it a hash?)\n const script = document.createElement('script')\n // see webpack config, using CopyPlugin to copy it from node_modules\n // provided via ruffle-mirror\n script.src = '/static/ruffle/ruffle.js'\n script.type = 'text/javascript'\n script.onerror = (e) => { reject(e) }\n script.onabort = (e) => { reject(e) }\n script.oncancel = (e) => { reject(e) }\n script.onload = () => {\n ruffleInstance = window.RufflePlayer\n resolve(ruffleInstance)\n }\n document.body.appendChild(script)\n })\n\n return { getRuffle }\n}\n\nconst RuffleService = createRuffleService()\n\nexport default RuffleService\n","<template>\n <div class=\"Flash\">\n <div\n v-if=\"player === true || player === 'hidden'\"\n ref=\"container\"\n class=\"player\"\n :class=\"{ hidden: player === 'hidden' }\"\n />\n <button\n v-if=\"player !== true\"\n class=\"button-unstyled placeholder\"\n @click=\"openPlayer\"\n >\n <span\n v-if=\"player === 'hidden'\"\n class=\"label\"\n >\n {{ $t('general.loading') }}\n </span>\n <span\n v-if=\"player === 'error'\"\n class=\"label\"\n >\n {{ $t('general.flash_fail') }}\n </span>\n <span\n v-else\n class=\"label\"\n >\n <p>\n {{ $t('general.flash_content') }}\n </p>\n <p>\n <FAIcon icon=\"exclamation-triangle\" />\n {{ $t('general.flash_security') }}\n </p>\n </span>\n </button>\n </div>\n</template>\n\n<script src=\"./flash.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.Flash {\n display: inline-block;\n width: 100%;\n height: 100%;\n position: relative;\n\n .player {\n height: 100%;\n width: 100%;\n }\n\n .placeholder {\n height: 100%;\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--bg);\n color: var(--link);\n }\n\n .hider {\n top: 0;\n }\n\n .label {\n text-align: center;\n flex: 1 1 0;\n line-height: 1.2;\n white-space: normal;\n word-wrap: normal;\n }\n\n .hidden {\n display: none;\n visibility: \"hidden\";\n }\n}\n</style>\n","import RuffleService from '../../services/ruffle_service/ruffle_service.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faStop,\n faExclamationTriangle\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faStop,\n faExclamationTriangle\n)\n\nconst Flash = {\n props: ['src'],\n data () {\n return {\n player: false, // can be true, \"hidden\", false. hidden = element exists\n loaded: false,\n ruffleInstance: null\n }\n },\n methods: {\n openPlayer () {\n if (this.player) return // prevent double-loading, or re-loading on failure\n this.player = 'hidden'\n RuffleService.getRuffle().then((ruffle) => {\n const player = ruffle.newest().createPlayer()\n player.config = {\n letterbox: 'on'\n }\n const container = this.$refs.container\n container.appendChild(player)\n player.style.width = '100%'\n player.style.height = '100%'\n player.load(this.src).then(() => {\n this.player = true\n }).catch((e) => {\n console.error('Error loading ruffle', e)\n this.player = 'error'\n })\n this.ruffleInstance = player\n this.$emit('playerOpened')\n })\n },\n closePlayer () {\n this.ruffleInstance && this.ruffleInstance.remove()\n this.player = false\n this.$emit('playerClosed')\n }\n }\n}\n\nexport default Flash\n","import { render } from \"./flash.vue?vue&type=template&id=651ce37d\"\nimport script from \"./flash.js?vue&type=script&lang=js\"\nexport * from \"./flash.js?vue&type=script&lang=js\"\n\nimport \"./flash.vue?vue&type=style&index=0&id=651ce37d&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","const fetchRelationship = (attempt, userId, store) => new Promise((resolve, reject) => {\n setTimeout(() => {\n store.state.api.backendInteractor.fetchUserRelationship({ id: userId })\n .then((relationship) => {\n store.commit('updateUserRelationship', [relationship])\n return relationship\n })\n .then((relationship) => resolve([relationship.following, relationship.requested, relationship.locked, attempt]))\n .catch((e) => reject(e))\n }, 500)\n}).then(([following, sent, locked, attempt]) => {\n if (!following && !(locked && sent) && attempt <= 3) {\n // If we BE reports that we still not following that user - retry,\n // increment attempts by one\n fetchRelationship(++attempt, userId, store)\n }\n})\n\nexport const requestFollow = (userId, store) => new Promise((resolve, reject) => {\n store.state.api.backendInteractor.followUser({ id: userId })\n .then((updated) => {\n store.commit('updateUserRelationship', [updated])\n\n if (updated.following || (updated.locked && updated.requested)) {\n // If we get result immediately or the account is locked, just stop.\n resolve()\n return\n }\n\n // But usually we don't get result immediately, so we ask server\n // for updated user profile to confirm if we are following them\n // Sometimes it takes several tries. Sometimes we end up not following\n // user anyway, probably because they locked themselves and we\n // don't know that yet.\n // Recursive Promise, it will call itself up to 3 times.\n\n return fetchRelationship(1, updated, store)\n .then(() => {\n resolve()\n })\n })\n})\n\nexport const requestUnfollow = (userId, store) => new Promise((resolve, reject) => {\n store.state.api.backendInteractor.unfollowUser({ id: userId })\n .then((updated) => {\n store.commit('updateUserRelationship', [updated])\n resolve({\n updated\n })\n })\n})\n","import ConfirmModal from '../confirm_modal/confirm_modal.vue'\nimport { requestFollow, requestUnfollow } from '../../services/follow_manipulate/follow_manipulate'\nexport default {\n props: ['relationship', 'user', 'labelFollowing', 'buttonClass'],\n components: {\n ConfirmModal\n },\n data () {\n return {\n inProgress: false,\n showingConfirmUnfollow: false\n }\n },\n computed: {\n shouldConfirmUnfollow () {\n return this.$store.getters.mergedConfig.modalOnUnfollow\n },\n isPressed () {\n return this.inProgress || this.relationship.following\n },\n title () {\n if (this.inProgress || this.relationship.following) {\n return this.$t('user_card.follow_unfollow')\n } else if (this.relationship.requested) {\n return this.$t('user_card.follow_cancel')\n } else {\n return this.$t('user_card.follow')\n }\n },\n label () {\n if (this.inProgress) {\n return this.$t('user_card.follow_progress')\n } else if (this.relationship.following) {\n return this.labelFollowing || this.$t('user_card.following')\n } else if (this.relationship.requested) {\n return this.$t('user_card.follow_sent')\n } else {\n return this.$t('user_card.follow')\n }\n },\n disabled () {\n return this.inProgress || this.user.deactivated\n }\n },\n methods: {\n showConfirmUnfollow () {\n this.showingConfirmUnfollow = true\n },\n hideConfirmUnfollow () {\n this.showingConfirmUnfollow = false\n },\n onClick () {\n this.relationship.following || this.relationship.requested ? this.unfollow() : this.follow()\n },\n follow () {\n this.inProgress = true\n requestFollow(this.relationship.id, this.$store).then(() => {\n this.inProgress = false\n })\n },\n unfollow () {\n if (this.shouldConfirmUnfollow) {\n this.showConfirmUnfollow()\n } else {\n this.doUnfollow()\n }\n },\n doUnfollow () {\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 this.hideConfirmUnfollow()\n }\n }\n}\n","import { render } from \"./follow_button.vue?vue&type=template&id=6a0717e7\"\nimport script from \"./follow_button.js?vue&type=script&lang=js\"\nexport * from \"./follow_button.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <button\n class=\"btn button-default follow-button\"\n :class=\"{ toggled: isPressed }\"\n :disabled=\"disabled\"\n :title=\"title\"\n @click=\"onClick\"\n >\n {{ label }}\n <teleport to=\"#modal\">\n <confirm-modal\n v-if=\"showingConfirmUnfollow\"\n :title=\"$t('user_card.unfollow_confirm_title')\"\n :confirm-text=\"$t('user_card.unfollow_confirm_accept_button')\"\n :cancel-text=\"$t('user_card.unfollow_confirm_cancel_button')\"\n @accepted=\"doUnfollow\"\n @cancelled=\"hideConfirmUnfollow\"\n >\n <i18n-t\n keypath=\"user_card.unfollow_confirm\"\n tag=\"span\"\n >\n <template #user>\n <span\n v-text=\"user.screen_name_ui\"\n />\n </template>\n </i18n-t>\n </confirm-modal>\n </teleport>\n </button>\n</template>\n\n<script src=\"./follow_button.js\"></script>\n","<template>\n <div\n ref=\"galleryContainer\"\n class=\"Gallery\"\n :class=\"{ '-long': tooManyAttachments && hidingLong }\"\n >\n <div class=\"gallery-rows\">\n <div\n v-for=\"(row, rowIndex) in rows\"\n :key=\"rowIndex\"\n class=\"gallery-row\"\n :style=\"rowStyle(row)\"\n :class=\"{ '-audio': row.audio, '-minimal': row.minimal, '-grid': grid }\"\n >\n <div\n class=\"gallery-row-inner\"\n :class=\"{ '-grid': grid }\"\n >\n <Attachment\n v-for=\"(attachment, attachmentIndex) in row.items\"\n :key=\"attachment.id\"\n class=\"gallery-item\"\n :compact=\"compact\"\n :nsfw=\"nsfw\"\n :attachment=\"attachment\"\n :size=\"size\"\n :editable=\"editable\"\n :remove=\"removeAttachment\"\n :shift-up=\"!(attachmentIndex === 0 && rowIndex === 0) && shiftUpAttachment\"\n :shift-dn=\"!(attachmentIndex === row.items.length - 1 && rowIndex === rows.length - 1) && shiftDnAttachment\"\n :edit=\"editAttachment\"\n :description=\"descriptions && descriptions[attachment.id]\"\n :hide-description=\"size === 'small' || tooManyAttachments && hidingLong\"\n :style=\"itemStyle(attachment.id, row.items)\"\n @setMedia=\"onMedia\"\n @naturalSizeLoad=\"onNaturalSizeLoad\"\n />\n </div>\n </div>\n </div>\n <div\n v-if=\"tooManyAttachments\"\n class=\"many-attachments\"\n >\n <div class=\"many-attachments-text\">\n {{ $t(\"status.many_attachments\", { number: attachments.length }) }}\n </div>\n <div class=\"many-attachments-buttons\">\n <span\n v-if=\"!hidingLong\"\n class=\"many-attachments-button\"\n >\n <button\n class=\"button-unstyled -link\"\n @click=\"toggleHidingLong(true)\"\n >\n {{ $t(\"status.collapse_attachments\") }}\n </button>\n </span>\n <span\n v-if=\"hidingLong\"\n class=\"many-attachments-button\"\n >\n <button\n class=\"button-unstyled -link\"\n @click=\"toggleHidingLong(false)\"\n >\n {{ $t(\"status.show_all_attachments\") }}\n </button>\n </span>\n <span\n v-if=\"hidingLong\"\n class=\"many-attachments-button\"\n >\n <button\n class=\"button-unstyled -link\"\n @click=\"openGallery\"\n >\n {{ $t(\"status.open_gallery\") }}\n </button>\n </span>\n </div>\n </div>\n </div>\n</template>\n\n<script src='./gallery.js'></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.Gallery {\n .gallery-rows {\n display: flex;\n flex-direction: column;\n }\n\n .gallery-row {\n position: relative;\n height: 0;\n width: 100%;\n flex-grow: 1;\n\n .gallery-row-inner {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n flex-flow: row wrap;\n align-content: stretch;\n\n .gallery-item {\n margin: 0 0.5em 0 0;\n flex-grow: 1;\n height: 100%;\n box-sizing: border-box;\n // to make failed images a bit more noticeable on chromium\n min-width: 2em;\n\n &:last-child {\n margin: 0;\n }\n }\n\n &.-grid {\n width: 100%;\n height: auto;\n position: relative;\n display: grid;\n grid-gap: 0.5em;\n grid-template-columns: repeat(auto-fill, minmax(15em, 1fr));\n\n .gallery-item {\n margin: 0;\n height: 200px;\n }\n }\n }\n\n &.-grid,\n &.-minimal {\n height: auto;\n\n .gallery-row-inner {\n position: relative;\n }\n }\n\n &:not(:first-child) {\n margin-top: 0.5em;\n }\n }\n\n &.-long {\n .gallery-rows {\n max-height: 25em;\n overflow: hidden;\n mask:\n linear-gradient(to top, white, transparent) bottom/100% 70px no-repeat,\n linear-gradient(to top, white, white);\n\n /* Autoprefixed seem to ignore this one, and also syntax is different */\n mask-composite: xor;\n mask-composite: exclude;\n }\n }\n\n .many-attachments-text {\n text-align: center;\n line-height: 2;\n }\n\n .many-attachments-buttons {\n display: flex;\n }\n\n .many-attachments-button {\n display: flex;\n flex: 1;\n justify-content: center;\n line-height: 2;\n\n button {\n padding: 0 2em;\n }\n }\n}\n</style>\n","import Attachment from '../attachment/attachment.vue'\nimport { sumBy, set } from 'lodash'\n\nconst Gallery = {\n props: [\n 'attachments',\n 'compact',\n 'limitRows',\n 'descriptions',\n 'limit',\n 'nsfw',\n 'setMedia',\n 'size',\n 'editable',\n 'removeAttachment',\n 'shiftUpAttachment',\n 'shiftDnAttachment',\n 'editAttachment',\n 'grid'\n ],\n data () {\n return {\n sizes: {},\n hidingLong: true\n }\n },\n components: { Attachment },\n computed: {\n rows () {\n if (!this.attachments) {\n return []\n }\n const attachments = this.limit > 0\n ? this.attachments.slice(0, this.limit)\n : this.attachments\n if (this.size === 'hide') {\n return attachments.map(item => ({ minimal: true, items: [item] }))\n }\n const rows = this.grid\n ? [{ grid: true, items: attachments }]\n : attachments.reduce((acc, attachment, i) => {\n if (attachment.mimetype.includes('audio')) {\n return [...acc, { audio: true, items: [attachment] }, { items: [] }]\n }\n if (!(\n attachment.mimetype.includes('image') ||\n attachment.mimetype.includes('video') ||\n attachment.mimetype.includes('flash')\n )) {\n return [...acc, { minimal: true, items: [attachment] }, { items: [] }]\n }\n const maxPerRow = 3\n const attachmentsRemaining = this.attachments.length - i + 1\n const currentRow = acc[acc.length - 1].items\n currentRow.push(attachment)\n if (currentRow.length >= maxPerRow && attachmentsRemaining > maxPerRow) {\n return [...acc, { items: [] }]\n } else {\n return acc\n }\n }, [{ items: [] }]).filter(_ => _.items.length > 0)\n return rows\n },\n attachmentsDimensionalScore () {\n return this.rows.reduce((acc, row) => {\n let size = 0\n if (row.minimal) {\n size += 1 / 8\n } else if (row.audio) {\n size += 1 / 4\n } else {\n size += 1 / (row.items.length + 0.6)\n }\n return acc + size\n }, 0)\n },\n tooManyAttachments () {\n if (this.editable || this.size === 'small') {\n return false\n } else if (this.size === 'hide') {\n return this.attachments.length > 8\n } else {\n return this.attachmentsDimensionalScore > 1\n }\n }\n },\n methods: {\n onNaturalSizeLoad ({ id, width, height }) {\n set(this.sizes, id, { width, height })\n },\n rowStyle (row) {\n if (row.audio) {\n return { 'padding-bottom': '25%' } // fixed reduced height for audio\n } else if (!row.minimal && !row.grid) {\n return { 'padding-bottom': `${(100 / (row.items.length + 0.6))}%` }\n }\n },\n itemStyle (id, row) {\n const total = sumBy(row, item => this.getAspectRatio(item.id))\n return { flex: `${this.getAspectRatio(id) / total} 1 0%` }\n },\n getAspectRatio (id) {\n const size = this.sizes[id]\n return size ? size.width / size.height : 1\n },\n toggleHidingLong (event) {\n this.hidingLong = event\n },\n openGallery () {\n this.$store.dispatch('setMedia', this.attachments)\n this.$store.dispatch('setCurrentMedia', this.attachments[0])\n },\n onMedia () {\n this.$store.dispatch('setMedia', this.attachments)\n }\n }\n}\n\nexport default Gallery\n","import { render } from \"./gallery.vue?vue&type=template&id=3f62ea7c\"\nimport script from \"./gallery.js?vue&type=script&lang=js\"\nexport * from \"./gallery.js?vue&type=script&lang=js\"\n\nimport \"./gallery.vue?vue&type=style&index=0&id=3f62ea7c&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"interface-language-switcher\">\n <label>\n {{ promptText }}\n </label>\n <ul class=\"setting-list\">\n <li\n v-for=\"index of controlledLanguage.keys()\"\n :key=\"index\"\n >\n <label>\n {{ index === 0 ? $t('settings.primary_language') : $tc('settings.fallback_language', index, { index }) }}\n <Select\n class=\"language-select\"\n :model-value=\"controlledLanguage[index]\"\n @update:modelValue=\"val => setLanguageAt(index, val)\"\n >\n <option\n v-for=\"lang in languages\"\n :key=\"lang.code\"\n :value=\"lang.code\"\n >\n {{ lang.name }}\n </option>\n </Select>\n </label>\n <button\n v-if=\"controlledLanguage.length > 1 && index !== 0\"\n class=\"button-default btn\"\n @click=\"() => removeLanguageAt(index)\"\n >\n {{ $t('settings.remove_language') }}\n </button>\n </li>\n <li>\n <button\n class=\"button-default btn\"\n @click=\"addLanguage\"\n >\n {{ $t('settings.add_language') }}\n </button>\n </li>\n </ul>\n </div>\n</template>\n\n<script>\nimport localeService from '../../services/locale/locale.service.js'\nimport Select from '../select/select.vue'\n\nexport default {\n components: {\n // eslint-disable-next-line vue/no-reserved-component-names\n Select\n },\n props: {\n promptText: {\n type: String,\n required: true\n },\n language: {\n type: [Array, String],\n required: true\n },\n setLanguage: {\n type: Function,\n required: true\n }\n },\n computed: {\n languages () {\n return localeService.languages\n },\n\n controlledLanguage: {\n get: function () {\n return Array.isArray(this.language) ? this.language : [this.language]\n },\n set: function (val) {\n this.setLanguage(val)\n }\n }\n },\n\n methods: {\n getLanguageName (code) {\n return localeService.getLanguageName(code)\n },\n addLanguage () {\n this.controlledLanguage = [...this.controlledLanguage, '']\n },\n setLanguageAt (index, val) {\n const lang = [...this.controlledLanguage]\n lang[index] = val\n this.controlledLanguage = lang\n },\n removeLanguageAt (index) {\n const lang = [...this.controlledLanguage]\n lang.splice(index, 1)\n this.controlledLanguage = lang\n }\n }\n}\n</script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.interface-language-switcher {\n .language-select {\n margin-right: 1em;\n }\n}\n</style>\n","import { render } from \"./interface_language_switcher.vue?vue&type=template&id=416a09f6\"\nimport script from \"./interface_language_switcher.vue?vue&type=script&lang=js\"\nexport * from \"./interface_language_switcher.vue?vue&type=script&lang=js\"\n\nimport \"./interface_language_switcher.vue?vue&type=style&index=0&id=416a09f6&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div>\n <a\n class=\"link-preview-card\"\n :href=\"card.url\"\n target=\"_blank\"\n rel=\"noopener\"\n >\n <div\n v-if=\"useImage && imageLoaded\"\n class=\"card-image\"\n >\n <img :src=\"card.image\">\n </div>\n <div class=\"card-content\">\n <span class=\"card-host faint\">\n <span\n v-if=\"censored\"\n class=\"nsfw-alert alert warning\"\n >{{ $t('status.nsfw') }}</span>\n {{ card.provider_name }}\n </span>\n <h4 class=\"card-title\">{{ card.title }}</h4>\n <p\n v-if=\"useDescription\"\n class=\"card-description\"\n >{{ card.description }}</p>\n </div>\n </a>\n </div>\n</template>\n\n<script src=\"./link-preview.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.link-preview-card {\n display: flex;\n flex-direction: row;\n cursor: pointer;\n overflow: hidden;\n margin-top: 0.5em;\n\n .card-image {\n flex-shrink: 0;\n width: 120px;\n max-width: 25%;\n\n img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: $fallback--attachmentRadius;\n border-radius: var(--attachmentRadius, $fallback--attachmentRadius);\n }\n }\n\n .card-content {\n max-height: 100%;\n margin: 0.5em;\n display: flex;\n flex-direction: column;\n }\n\n .card-host {\n font-size: 0.85em;\n }\n\n .card-description {\n margin: 0.5em 0 0;\n overflow: hidden;\n text-overflow: ellipsis;\n word-break: break-word;\n line-height: 1.2em;\n // cap description at 3 lines, the 1px is to clean up some stray pixels\n // TODO: fancier fade-out at the bottom to show off that it's too long?\n max-height: calc(1.2em * 3 - 1px);\n }\n\n .nsfw-alert {\n margin: 2em 0;\n }\n\n color: $fallback--text;\n color: var(--text, $fallback--text);\n border-style: solid;\n border-width: 1px;\n border-radius: $fallback--attachmentRadius;\n border-radius: var(--attachmentRadius, $fallback--attachmentRadius);\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n}\n</style>\n","import { mapGetters } from 'vuex'\n\nconst LinkPreview = {\n name: 'LinkPreview',\n props: [\n 'card',\n 'size',\n 'nsfw'\n ],\n data () {\n return {\n imageLoaded: false\n }\n },\n computed: {\n useImage () {\n // Currently BE shoudn't give cards if tagged NSFW, this is a bit paranoid\n // as it makes sure to hide the image if somehow NSFW tagged preview can\n // exist.\n return this.card.image && !this.censored && this.size !== 'hide'\n },\n censored () {\n return this.nsfw && this.hideNsfwConfig\n },\n useDescription () {\n return this.card.description && /\\S/.test(this.card.description)\n },\n hideNsfwConfig () {\n return this.mergedConfig.hideNsfw\n },\n ...mapGetters([\n 'mergedConfig'\n ])\n },\n created () {\n if (this.useImage) {\n const newImg = new Image()\n newImg.onload = () => {\n this.imageLoaded = true\n }\n newImg.src = this.card.image\n }\n }\n}\n\nexport default LinkPreview\n","import { render } from \"./link-preview.vue?vue&type=template&id=5bb8ccfc\"\nimport script from \"./link-preview.js?vue&type=script&lang=js\"\nexport * from \"./link-preview.js?vue&type=script&lang=js\"\n\nimport \"./link-preview.vue?vue&type=style&index=0&id=5bb8ccfc&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n class=\"list\"\n role=\"list\"\n >\n <div\n v-for=\"item in items\"\n :key=\"getKey(item)\"\n class=\"list-item\"\n role=\"listitem\"\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\";\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","import { render } from \"./list.vue?vue&type=template&id=033f777b\"\nimport script from \"./list.vue?vue&type=script&lang=js\"\nexport * from \"./list.vue?vue&type=script&lang=js\"\n\nimport \"./list.vue?vue&type=style&index=0&id=033f777b&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","/* eslint-env browser */\nimport statusPosterService from '../../services/status_poster/status_poster.service.js'\nimport fileSizeFormatService from '../../services/file_size_format/file_size_format.js'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faUpload, faCircleNotch } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faUpload,\n faCircleNotch\n)\n\nconst mediaUpload = {\n data () {\n return {\n uploadCount: 0,\n uploadReady: true\n }\n },\n computed: {\n uploading () {\n return this.uploadCount > 0\n }\n },\n methods: {\n onClick () {\n if (this.uploadReady) {\n this.$refs.input.click()\n }\n },\n uploadFile (file) {\n const self = this\n const store = this.$store\n if (file.size > store.state.instance.uploadlimit) {\n const filesize = fileSizeFormatService.fileSizeFormat(file.size)\n const allowedsize = fileSizeFormatService.fileSizeFormat(store.state.instance.uploadlimit)\n self.$emit('upload-failed', 'file_too_big', { filesize: filesize.num, filesizeunit: filesize.unit, allowedsize: allowedsize.num, allowedsizeunit: allowedsize.unit })\n return\n }\n const formData = new FormData()\n formData.append('file', file)\n\n self.$emit('uploading')\n self.uploadCount++\n\n statusPosterService.uploadMedia({ store, formData })\n .then((fileData) => {\n self.$emit('uploaded', fileData)\n self.decreaseUploadCount()\n }, (error) => {\n console.error('Error uploading file', error)\n self.$emit('upload-failed', 'default')\n self.decreaseUploadCount()\n })\n },\n decreaseUploadCount () {\n this.uploadCount--\n if (this.uploadCount === 0) {\n this.$emit('all-uploaded')\n }\n },\n clearFile () {\n this.uploadReady = false\n this.$nextTick(() => {\n this.uploadReady = true\n })\n },\n multiUpload (files) {\n for (const file of files) {\n this.uploadFile(file)\n }\n },\n change ({ target }) {\n this.multiUpload(target.files)\n }\n },\n props: {\n dropFiles: Object,\n disabled: Boolean,\n normalButton: Boolean,\n acceptTypes: {\n type: String,\n default: '*/*'\n }\n },\n watch: {\n dropFiles: function (fileInfos) {\n if (!this.uploading) {\n this.multiUpload(fileInfos)\n }\n }\n }\n}\n\nexport default mediaUpload\n","import { render } from \"./media_upload.vue?vue&type=template&id=f831fc74\"\nimport script from \"./media_upload.js?vue&type=script&lang=js\"\nexport * from \"./media_upload.js?vue&type=script&lang=js\"\n\nimport \"./media_upload.vue?vue&type=style&index=0&id=f831fc74&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <button\n class=\"media-upload\"\n :class=\"[normalButton ? 'button-default btn' : 'button-unstyled', { disabled }]\"\n :title=\"$t('tool_tip.media_upload')\"\n @click=\"onClick\"\n >\n <FAIcon\n v-if=\"uploading\"\n class=\"progress-icon\"\n icon=\"circle-notch\"\n spin\n />\n <FAIcon\n v-if=\"!uploading\"\n class=\"new-icon\"\n icon=\"upload\"\n />\n <template v-if=\"normalButton\">\n {{ ' ' }}\n {{ uploading ? $t('general.loading') : $t('tool_tip.media_upload') }}\n </template>\n <input\n v-if=\"uploadReady\"\n ref=\"input\"\n class=\"hidden-input-file\"\n :disabled=\"disabled\"\n type=\"file\"\n multiple=\"true\"\n :accept=\"acceptTypes\"\n @change=\"change\"\n >\n </button>\n</template>\n\n<script src=\"./media_upload.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.media-upload {\n .hidden-input-file {\n display: none;\n }\n}\n\nlabel.media-upload {\n cursor: pointer; // We use <label> for interactivity... i wonder if it's fine\n}\n</style>\n","<template>\n <span\n class=\"MentionLink\"\n >\n <!-- eslint-disable vue/no-v-html -->\n <a\n v-if=\"!user\"\n :href=\"url\"\n class=\"original\"\n target=\"_blank\"\n v-html=\"content\"\n /><!-- eslint-enable vue/no-v-html -->\n <UserPopover\n v-else\n :user-id=\"user.id\"\n :disabled=\"!shouldShowTooltip\"\n >\n <span\n v-if=\"user\"\n class=\"new\"\n :style=\"style\"\n :class=\"classnames\"\n >\n <a\n class=\"short button-unstyled\"\n :class=\"{ '-with-tooltip': shouldShowTooltip }\"\n :href=\"url\"\n @click.prevent=\"onClick\"\n >\n <!-- eslint-disable vue/no-v-html -->\n <UserAvatar\n v-if=\"shouldShowAvatar\"\n class=\"mention-avatar\"\n :user=\"user\"\n /><span\n class=\"shortName\"\n ><FAIcon\n v-if=\"useAtIcon\"\n size=\"sm\"\n icon=\"at\"\n class=\"at\"\n />{{ !useAtIcon ? '@' : '' }}<span\n class=\"userName\"\n v-html=\"userName\"\n /><span\n v-if=\"shouldShowFullUserName\"\n class=\"serverName\"\n :class=\"{ '-faded': shouldFadeDomain }\"\n v-html=\"'@' + serverName\"\n /><UnicodeDomainIndicator\n v-if=\"shouldShowFullUserName\"\n :user=\"user\"\n />\n </span>\n <span\n v-if=\"isYou && shouldShowYous\"\n :class=\"{ '-you': shouldBoldenYou }\"\n > {{ ' ' + $t('status.you') }}</span>\n <!-- eslint-enable vue/no-v-html -->\n </a><span\n ref=\"full\"\n class=\"full\"\n >\n <!-- eslint-disable vue/no-v-html -->\n @<span v-html=\"userName\" /><span v-html=\"'@' + serverName\" />\n <!-- eslint-enable vue/no-v-html -->\n </span>\n </span>\n </UserPopover>\n </span>\n</template>\n\n<script src=\"./mention_link.js\" />\n\n<style lang=\"scss\" src=\"./mention_link.scss\" />\n","import generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\nimport { mapGetters, mapState } from 'vuex'\nimport { highlightClass, highlightStyle } from '../../services/user_highlighter/user_highlighter.js'\nimport UserAvatar from '../user_avatar/user_avatar.vue'\nimport UnicodeDomainIndicator from '../unicode_domain_indicator/unicode_domain_indicator.vue'\nimport { defineAsyncComponent } from 'vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faAt\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faAt\n)\n\nconst MentionLink = {\n name: 'MentionLink',\n components: {\n UserAvatar,\n UnicodeDomainIndicator,\n UserPopover: defineAsyncComponent(() => import('../user_popover/user_popover.vue'))\n },\n props: {\n url: {\n required: true,\n type: String\n },\n content: {\n required: true,\n type: String\n },\n userId: {\n required: false,\n type: String\n },\n userScreenName: {\n required: false,\n type: String\n }\n },\n data () {\n return {\n hasSelection: false\n }\n },\n methods: {\n onClick () {\n if (this.shouldShowTooltip) return\n const link = generateProfileLink(\n this.userId || this.user.id,\n this.userScreenName || this.user.screen_name\n )\n this.$router.push(link)\n },\n handleSelection () {\n this.hasSelection = document.getSelection().containsNode(this.$refs.full, true)\n }\n },\n mounted () {\n document.addEventListener('selectionchange', this.handleSelection)\n },\n unmounted () {\n document.removeEventListener('selectionchange', this.handleSelection)\n },\n computed: {\n user () {\n return this.url && this.$store && this.$store.getters.findUserByUrl(this.url)\n },\n isYou () {\n // FIXME why user !== currentUser???\n return this.user && this.user.id === this.currentUser.id\n },\n userName () {\n return this.user && this.userNameFullUi.split('@')[0]\n },\n serverName () {\n // XXX assumed that domain does not contain @\n return this.user && (this.userNameFullUi.split('@')[1] || this.$store.getters.instanceDomain)\n },\n userNameFull () {\n return this.user && this.user.screen_name\n },\n userNameFullUi () {\n return this.user && this.user.screen_name_ui\n },\n highlight () {\n return this.user && this.mergedConfig.highlight[this.user.screen_name]\n },\n highlightType () {\n return this.highlight && ('-' + this.highlight.type)\n },\n highlightClass () {\n if (this.highlight) return highlightClass(this.user)\n },\n style () {\n if (this.highlight) {\n const {\n backgroundColor,\n backgroundPosition,\n backgroundImage,\n ...rest\n } = highlightStyle(this.highlight)\n return rest\n }\n },\n classnames () {\n return [\n {\n '-you': this.isYou && this.shouldBoldenYou,\n '-highlighted': this.highlight,\n '-has-selection': this.hasSelection\n },\n this.highlightType\n ]\n },\n useAtIcon () {\n return this.mergedConfig.useAtIcon\n },\n isRemote () {\n return this.userName !== this.userNameFull\n },\n shouldShowFullUserName () {\n const conf = this.mergedConfig.mentionLinkDisplay\n if (conf === 'short') {\n return false\n } else if (conf === 'full') {\n return true\n } else { // full_for_remote\n return this.isRemote\n }\n },\n shouldShowTooltip () {\n return this.mergedConfig.mentionLinkShowTooltip\n },\n shouldShowAvatar () {\n return this.mergedConfig.mentionLinkShowAvatar\n },\n shouldShowYous () {\n return this.mergedConfig.mentionLinkShowYous\n },\n shouldBoldenYou () {\n return this.mergedConfig.mentionLinkBoldenYou\n },\n shouldFadeDomain () {\n return this.mergedConfig.mentionLinkFadeDomain\n },\n ...mapGetters(['mergedConfig']),\n ...mapState({\n currentUser: state => state.users.currentUser\n })\n }\n}\n\nexport default MentionLink\n","import { render } from \"./mention_link.vue?vue&type=template&id=11ab9a6c\"\nimport script from \"./mention_link.js?vue&type=script&lang=js\"\nexport * from \"./mention_link.js?vue&type=script&lang=js\"\n\nimport \"./mention_link.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <span class=\"MentionsLine\">\n <MentionLink\n v-for=\"mention in mentionsComputed\"\n :key=\"mention.index\"\n class=\"mention-link\"\n :content=\"mention.content\"\n :url=\"mention.url\"\n /><span\n v-if=\"manyMentions\"\n class=\"extraMentions\"\n >\n <span\n v-if=\"expanded\"\n class=\"fullExtraMentions\"\n >{{ ' ' }}<MentionLink\n v-for=\"mention in extraMentions\"\n :key=\"mention.index\"\n class=\"mention-link\"\n :content=\"mention.content\"\n :url=\"mention.url\"\n />\n </span><button\n v-if=\"!expanded\"\n class=\"button-unstyled showMoreLess\"\n @click=\"toggleShowMore\"\n >\n {{ $t('status.plus_more', { number: extraMentions.length }) }}\n </button><button\n v-if=\"expanded\"\n class=\"button-unstyled showMoreLess\"\n @click=\"toggleShowMore\"\n >\n {{ $t('general.show_less') }}\n </button>\n </span>\n </span>\n</template>\n<script src=\"./mentions_line.js\"></script>\n<style lang=\"scss\" src=\"./mentions_line.scss\" />\n","import MentionLink from 'src/components/mention_link/mention_link.vue'\nimport { mapGetters } from 'vuex'\n\nexport const MENTIONS_LIMIT = 5\n\nconst MentionsLine = {\n name: 'MentionsLine',\n props: {\n mentions: {\n required: true,\n type: Array\n }\n },\n data: () => ({ expanded: false }),\n components: {\n MentionLink\n },\n computed: {\n mentionsComputed () {\n return this.mentions.slice(0, MENTIONS_LIMIT)\n },\n extraMentions () {\n return this.mentions.slice(MENTIONS_LIMIT)\n },\n manyMentions () {\n return this.extraMentions.length > 0\n },\n ...mapGetters(['mergedConfig'])\n },\n methods: {\n toggleShowMore () {\n this.expanded = !this.expanded\n }\n }\n}\n\nexport default MentionsLine\n","import { render } from \"./mentions_line.vue?vue&type=template&id=0e41a1da\"\nimport script from \"./mentions_line.js?vue&type=script&lang=js\"\nexport * from \"./mentions_line.js?vue&type=script&lang=js\"\n\nimport \"./mentions_line.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n v-show=\"isOpen\"\n v-body-scroll-lock=\"isOpen && !noBackground\"\n class=\"modal-view\"\n :class=\"classes\"\n @click.self=\"$emit('backdropClicked')\"\n >\n <slot />\n </div>\n</template>\n\n<script>\nexport default {\n provide: {\n popoversZLayer: 'modals'\n },\n props: {\n isOpen: {\n type: Boolean,\n default: true\n },\n noBackground: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n classes () {\n return {\n 'modal-background': !this.noBackground,\n open: this.isOpen\n }\n }\n }\n}\n</script>\n\n<style lang=\"scss\">\n.modal-view {\n z-index: var(--ZI_modals);\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 pointer-events: none;\n animation-duration: 0.2s;\n animation-name: modal-background-fadein;\n opacity: 0;\n\n > * {\n pointer-events: initial;\n }\n\n &.modal-background {\n pointer-events: initial;\n background-color: rgb(0 0 0 / 50%);\n }\n\n &.open {\n opacity: 1;\n }\n}\n\n@keyframes modal-background-fadein {\n from {\n background-color: rgb(0 0 0 / 0%);\n }\n\n to {\n background-color: rgb(0 0 0 / 50%);\n }\n}\n</style>\n","import { render } from \"./modal.vue?vue&type=template&id=e92832fc\"\nimport script from \"./modal.vue?vue&type=script&lang=js\"\nexport * from \"./modal.vue?vue&type=script&lang=js\"\n\nimport \"./modal.vue?vue&type=style&index=0&id=e92832fc&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <teleport\n :disabled=\"minimalMode || disableTeleport\"\n :to=\"teleportTarget\"\n >\n <component\n :is=\"noHeading ? 'div' : 'aside'\"\n ref=\"root\"\n :class=\"{ minimal: minimalMode }\"\n class=\"Notifications\"\n >\n <div :class=\"mainClass\">\n <div\n v-if=\"!noHeading\"\n class=\"notifications-heading panel-heading -sticky\"\n >\n <div class=\"title\">\n {{ $t('notifications.notifications') }}\n <span\n v-if=\"unseenCount\"\n class=\"badge badge-notification unseen-count\"\n >{{ unseenCount }}</span>\n </div>\n <div\n v-if=\"showScrollTop\"\n class=\"rightside-button\"\n >\n <button\n class=\"button-unstyled scroll-to-top-button\"\n type=\"button\"\n :title=\"$t('general.scroll_to_top')\"\n @click=\"scrollToTop\"\n >\n <FALayers class=\"fa-scale-110 fa-old-padding-layer\">\n <FAIcon icon=\"arrow-up\" />\n <FAIcon\n icon=\"minus\"\n transform=\"up-7\"\n />\n </FALayers>\n </button>\n </div>\n <button\n v-if=\"unseenCount\"\n class=\"button-default read-button\"\n type=\"button\"\n @click.prevent=\"markAsSeen\"\n >\n {{ $t('notifications.read') }}\n </button>\n <NotificationFilters class=\"rightside-button\" />\n </div>\n <div\n class=\"panel-body\"\n role=\"feed\"\n >\n <div\n v-for=\"notification in notificationsToDisplay\"\n :key=\"notification.id\"\n role=\"listitem\"\n class=\"notification\"\n :class=\"{unseen: !minimalMode && !notification.seen}\"\n >\n <div class=\"notification-overlay\" />\n <notification :notification=\"notification\" />\n </div>\n </div>\n <div class=\"panel-footer\">\n <div\n v-if=\"bottomedOut\"\n class=\"new-status-notification text-center faint\"\n >\n {{ $t('notifications.no_more_notifications') }}\n </div>\n <button\n v-else-if=\"!loading\"\n class=\"button-unstyled -link -fullwidth\"\n @click.prevent=\"fetchOlderNotifications()\"\n >\n <div class=\"new-status-notification text-center\">\n {{ minimalMode ? $t('interactions.load_older') : $t('notifications.load_older') }}\n </div>\n </button>\n <div\n v-else\n class=\"new-status-notification text-center\"\n >\n <FAIcon\n icon=\"circle-notch\"\n spin\n size=\"lg\"\n />\n </div>\n </div>\n </div>\n </component>\n </teleport>\n</template>\n\n<script src=\"./notifications.js\"></script>\n<style lang=\"scss\" src=\"./notifications.scss\"></style>\n","<template>\n <article\n v-if=\"notification.type === 'mention'\"\n >\n <Status\n class=\"Notification\"\n :compact=\"true\"\n :statusoid=\"notification.status\"\n />\n </article>\n <article v-else>\n <div\n v-if=\"needMute && !unmuted\"\n class=\"Notification container -muted\"\n >\n <small>\n <user-link\n :user=\"notification.from_profile\"\n :at=\"false\"\n />\n </small>\n <button\n class=\"button-unstyled unmute\"\n @click.prevent=\"toggleMute\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"eye-slash\"\n />\n </button>\n </div>\n <div\n v-else\n class=\"Notification non-mention\"\n :class=\"[userClass, { highlighted: userStyle }, '-type--' + notification.type]\"\n :style=\"[ userStyle ]\"\n >\n <a\n class=\"avatar-container\"\n :href=\"$router.resolve(userProfileLink).href\"\n @click.prevent\n >\n <UserPopover\n :user-id=\"notification.from_profile.id\"\n :overlay-centers=\"true\"\n >\n <UserAvatar\n class=\"post-avatar\"\n :bot=\"botIndicator\"\n :compact=\"true\"\n :better-shadow=\"betterShadow\"\n :user=\"notification.from_profile\"\n />\n </UserPopover>\n </a>\n <div class=\"notification-right\">\n <span class=\"notification-details\">\n <div class=\"name-and-action\">\n <!-- eslint-disable vue/no-v-html -->\n <bdi v-if=\"!!notification.from_profile.name_html\">\n <RichContent\n class=\"username\"\n :title=\"'@'+notification.from_profile.screen_name_ui\"\n :html=\"notification.from_profile.name_html\"\n :emoji=\"notification.from_profile.emoji\"\n />\n </bdi>\n <!-- eslint-enable vue/no-v-html -->\n <span\n v-else\n class=\"username\"\n :title=\"'@'+notification.from_profile.screen_name_ui\"\n >\n {{ notification.from_profile.name }}\n </span>\n {{ ' ' }}\n <span v-if=\"notification.type === 'like'\">\n <FAIcon\n class=\"type-icon\"\n icon=\"star\"\n />\n {{ ' ' }}\n <small>{{ $t('notifications.favorited_you') }}</small>\n </span>\n <span v-if=\"notification.type === 'repeat'\">\n <FAIcon\n class=\"type-icon\"\n icon=\"retweet\"\n :title=\"$t('tool_tip.repeat')\"\n />\n {{ ' ' }}\n <small>{{ $t('notifications.repeated_you') }}</small>\n </span>\n <span v-if=\"notification.type === 'follow'\">\n <FAIcon\n class=\"type-icon\"\n icon=\"user-plus\"\n />\n {{ ' ' }}\n <small>{{ $t('notifications.followed_you') }}</small>\n </span>\n <span v-if=\"notification.type === 'follow_request'\">\n <FAIcon\n class=\"type-icon\"\n icon=\"user\"\n />\n {{ ' ' }}\n <small>{{ $t('notifications.follow_request') }}</small>\n </span>\n <span v-if=\"notification.type === 'move'\">\n <FAIcon\n class=\"type-icon\"\n icon=\"suitcase-rolling\"\n />\n {{ ' ' }}\n <small>{{ $t('notifications.migrated_to') }}</small>\n </span>\n <span v-if=\"notification.type === 'pleroma:emoji_reaction'\">\n <small>\n <i18n-t\n scope=\"global\"\n keypath=\"notifications.reacted_with\"\n >\n <img\n v-if=\"notification.emoji_url\"\n class=\"emoji-reaction-emoji emoji-reaction-emoji-image\"\n :src=\"notification.emoji_url\"\n :alt=\"notification.emoji\"\n :title=\"notification.emoji\"\n >\n <span\n v-else\n class=\"emoji-reaction-emoji\"\n >{{ notification.emoji }}</span>\n </i18n-t>\n </small>\n </span>\n <span v-if=\"notification.type === 'pleroma:report'\">\n <small>{{ $t('notifications.submitted_report') }}</small>\n </span>\n <span v-if=\"notification.type === 'poll'\">\n <FAIcon\n class=\"type-icon\"\n icon=\"poll-h\"\n />\n {{ ' ' }}\n <small>{{ $t('notifications.poll_ended') }}</small>\n </span>\n </div>\n <div\n v-if=\"isStatusNotification\"\n class=\"timeago\"\n >\n <router-link\n v-if=\"notification.status\"\n :to=\"{ name: 'conversation', params: { id: notification.status.id } }\"\n class=\"timeago-link faint-link\"\n >\n <Timeago\n :time=\"notification.created_at\"\n :auto-update=\"240\"\n />\n </router-link>\n <button\n class=\"button-unstyled expand-icon\"\n :title=\"$t('tool_tip.toggle_expand')\"\n :aria-expanded=\"statusExpanded\"\n @click.prevent=\"toggleStatusExpanded\"\n >\n <FAIcon\n class=\"fa-scale-110\"\n fixed-width\n :icon=\"statusExpanded ? 'compress-alt' : 'expand-alt'\"\n />\n </button>\n </div>\n <div\n v-else\n class=\"timeago\"\n >\n <span class=\"faint\">\n <Timeago\n :time=\"notification.created_at\"\n :auto-update=\"240\"\n />\n </span>\n </div>\n <button\n v-if=\"needMute\"\n class=\"button-unstyled\"\n :title=\"$t('tool_tip.toggle_mute')\"\n :aria-expanded=\"!unmuted\"\n @click.prevent=\"toggleMute\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"eye-slash\"\n />\n </button>\n </span>\n <div\n v-if=\"notification.type === 'follow' || notification.type === 'follow_request'\"\n class=\"follow-text\"\n >\n <user-link\n class=\"follow-name\"\n :user=\"notification.from_profile\"\n />\n <div\n v-if=\"notification.type === 'follow_request'\"\n style=\"white-space: nowrap;\"\n >\n <button\n class=\"button-unstyled\"\n :title=\"$t('tool_tip.accept_follow_request')\"\n @click=\"approveUser()\"\n >\n <FAIcon\n icon=\"check\"\n class=\"fa-scale-110 fa-old-padding follow-request-accept\"\n />\n </button>\n <button\n class=\"button-unstyled\"\n :title=\"$t('tool_tip.reject_follow_request')\"\n @click=\"denyUser()\"\n >\n <FAIcon\n icon=\"times\"\n class=\"fa-scale-110 fa-old-padding follow-request-reject\"\n />\n </button>\n </div>\n </div>\n <div\n v-else-if=\"notification.type === 'move'\"\n class=\"move-text\"\n >\n <user-link\n :user=\"notification.target\"\n />\n </div>\n <Report\n v-else-if=\"notification.type === 'pleroma:report'\"\n :report-id=\"notification.report.id\"\n />\n <template v-else>\n <StatusContent\n :class=\"{ faint: !statusExpanded }\"\n :compact=\"!statusExpanded\"\n :status=\"notification.action\"\n />\n </template>\n </div>\n </div>\n <teleport to=\"#modal\">\n <confirm-modal\n v-if=\"showingApproveConfirmDialog\"\n :title=\"$t('user_card.approve_confirm_title')\"\n :confirm-text=\"$t('user_card.approve_confirm_accept_button')\"\n :cancel-text=\"$t('user_card.approve_confirm_cancel_button')\"\n @accepted=\"doApprove\"\n @cancelled=\"hideApproveConfirmDialog\"\n >\n {{ $t('user_card.approve_confirm', { user: user.screen_name_ui }) }}\n </confirm-modal>\n <confirm-modal\n v-if=\"showingDenyConfirmDialog\"\n :title=\"$t('user_card.deny_confirm_title')\"\n :confirm-text=\"$t('user_card.deny_confirm_accept_button')\"\n :cancel-text=\"$t('user_card.deny_confirm_cancel_button')\"\n @accepted=\"doDeny\"\n @cancelled=\"hideDenyConfirmDialog\"\n >\n {{ $t('user_card.deny_confirm', { user: user.screen_name_ui }) }}\n </confirm-modal>\n </teleport>\n </article>\n</template>\n\n<script src=\"./notification.js\"></script>\n<style src=\"./notification.scss\" lang=\"scss\"></style>\n","<template>\n <div class=\"Report\">\n <div class=\"reported-user\">\n <span>{{ $t('report.reported_user') }}</span>\n <router-link :to=\"generateUserProfileLink(report.acct)\">\n @{{ report.acct.screen_name }}\n </router-link>\n </div>\n <div class=\"reporter\">\n <span>{{ $t('report.reporter') }}</span>\n <router-link :to=\"generateUserProfileLink(report.actor)\">\n @{{ report.actor.screen_name }}\n </router-link>\n </div>\n <div class=\"report-state\">\n <span>{{ $t('report.state') }}</span>\n <Select\n :id=\"report-state\"\n v-model=\"state\"\n class=\"form-control\"\n >\n <option\n v-for=\"state in ['open', 'closed', 'resolved']\"\n :key=\"state\"\n :value=\"state\"\n >\n {{ $t('report.state_' + state) }}\n </option>\n </Select>\n </div>\n <RichContent\n class=\"report-content\"\n :html=\"report.content\"\n :emoji=\"[]\"\n />\n <div v-if=\"report.statuses.length\">\n <small>{{ $t('report.reported_statuses') }}</small>\n <router-link\n v-for=\"status in report.statuses\"\n :key=\"status.id\"\n :to=\"{ name: 'conversation', params: { id: status.id } }\"\n class=\"reported-status\"\n >\n <div class=\"reported-status-heading\">\n <span class=\"reported-status-name\">{{ status.user.name }}</span>\n <Timeago\n :time=\"status.created_at\"\n :auto-update=\"240\"\n class=\"faint\"\n />\n </div>\n <status-content :status=\"status\" />\n </router-link>\n </div>\n <div v-if=\"report.notes.length\">\n <small>{{ $t('report.notes') }}</small>\n <div\n v-for=\"note in report.notes\"\n :key=\"note.id\"\n class=\"note\"\n >\n <span>{{ note.content }}</span>\n <Timeago\n :time=\"note.created_at\"\n :auto-update=\"240\"\n class=\"faint\"\n />\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./report.js\"></script>\n<style src=\"./report.scss\" lang=\"scss\"></style>\n","import Select from '../select/select.vue'\nimport StatusContent from '../status_content/status_content.vue'\nimport Timeago from '../timeago/timeago.vue'\nimport RichContent from 'src/components/rich_content/rich_content.jsx'\nimport generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\n\nconst Report = {\n props: [\n 'reportId'\n ],\n components: {\n Select,\n StatusContent,\n Timeago,\n RichContent\n },\n computed: {\n report () {\n console.log(this.$store.state.reports.reports[this.reportId] || {})\n return this.$store.state.reports.reports[this.reportId] || {}\n },\n state: {\n get: function () { return this.report.state },\n set: function (val) { this.setReportState(val) }\n }\n },\n methods: {\n generateUserProfileLink (user) {\n return generateProfileLink(user.id, user.screen_name, this.$store.state.instance.restrictedNicknames)\n },\n setReportState (state) {\n return this.$store.dispatch('setReportState', { id: this.report.id, state })\n }\n }\n}\n\nexport default Report\n","import { render } from \"./report.vue?vue&type=template&id=86a2fdce\"\nimport script from \"./report.js?vue&type=script&lang=js\"\nexport * from \"./report.js?vue&type=script&lang=js\"\n\nimport \"./report.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import StatusContent from '../status_content/status_content.vue'\nimport { mapState } from 'vuex'\nimport Status from '../status/status.vue'\nimport UserAvatar from '../user_avatar/user_avatar.vue'\nimport UserCard from '../user_card/user_card.vue'\nimport Timeago from '../timeago/timeago.vue'\nimport Report from '../report/report.vue'\nimport UserLink from '../user_link/user_link.vue'\nimport RichContent from 'src/components/rich_content/rich_content.jsx'\nimport UserPopover from '../user_popover/user_popover.vue'\nimport ConfirmModal from '../confirm_modal/confirm_modal.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'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faCheck,\n faTimes,\n faStar,\n faRetweet,\n faUserPlus,\n faEyeSlash,\n faUser,\n faSuitcaseRolling,\n faExpandAlt,\n faCompressAlt\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCheck,\n faTimes,\n faStar,\n faRetweet,\n faUserPlus,\n faUser,\n faEyeSlash,\n faSuitcaseRolling,\n faExpandAlt,\n faCompressAlt\n)\n\nconst Notification = {\n data () {\n return {\n statusExpanded: false,\n betterShadow: this.$store.state.interface.browserSupport.cssFilter,\n unmuted: false,\n showingApproveConfirmDialog: false,\n showingDenyConfirmDialog: false\n }\n },\n props: ['notification'],\n components: {\n StatusContent,\n UserAvatar,\n UserCard,\n Timeago,\n Status,\n Report,\n RichContent,\n UserPopover,\n UserLink,\n ConfirmModal\n },\n methods: {\n toggleStatusExpanded () {\n this.statusExpanded = !this.statusExpanded\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 showApproveConfirmDialog () {\n this.showingApproveConfirmDialog = true\n },\n hideApproveConfirmDialog () {\n this.showingApproveConfirmDialog = false\n },\n showDenyConfirmDialog () {\n this.showingDenyConfirmDialog = true\n },\n hideDenyConfirmDialog () {\n this.showingDenyConfirmDialog = false\n },\n approveUser () {\n if (this.shouldConfirmApprove) {\n this.showApproveConfirmDialog()\n } else {\n this.doApprove()\n }\n },\n doApprove () {\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 this.hideApproveConfirmDialog()\n },\n denyUser () {\n if (this.shouldConfirmDeny) {\n this.showDenyConfirmDialog()\n } else {\n this.doDeny()\n }\n },\n doDeny () {\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 this.hideDenyConfirmDialog()\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 mergedConfig () {\n return this.$store.getters.mergedConfig\n },\n shouldConfirmApprove () {\n return this.mergedConfig.modalOnApproveFollow\n },\n shouldConfirmDeny () {\n return this.mergedConfig.modalOnDenyFollow\n },\n ...mapState({\n currentUser: state => state.users.currentUser\n })\n }\n}\n\nexport default Notification\n","import { render } from \"./notification.vue?vue&type=template&id=1ab1e6c0\"\nimport script from \"./notification.js?vue&type=script&lang=js\"\nexport * from \"./notification.js?vue&type=script&lang=js\"\n\nimport \"./notification.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Popover\n trigger=\"click\"\n class=\"NotificationFilters\"\n placement=\"bottom\"\n :bound-to=\"{ x: 'container' }\"\n >\n <template #content>\n <div class=\"dropdown-menu\">\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleNotificationFilter('likes')\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': filters.likes }\"\n />{{ $t('settings.notification_visibility_likes') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleNotificationFilter('repeats')\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': filters.repeats }\"\n />{{ $t('settings.notification_visibility_repeats') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleNotificationFilter('follows')\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': filters.follows }\"\n />{{ $t('settings.notification_visibility_follows') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleNotificationFilter('mentions')\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': filters.mentions }\"\n />{{ $t('settings.notification_visibility_mentions') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleNotificationFilter('emojiReactions')\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': filters.emojiReactions }\"\n />{{ $t('settings.notification_visibility_emoji_reactions') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleNotificationFilter('moves')\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': filters.moves }\"\n />{{ $t('settings.notification_visibility_moves') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleNotificationFilter('polls')\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': filters.polls }\"\n />{{ $t('settings.notification_visibility_polls') }}\n </button>\n </div>\n </template>\n <template #trigger>\n <button class=\"filter-trigger-button button-unstyled\">\n <FAIcon icon=\"filter\" />\n </button>\n </template>\n </Popover>\n</template>\n\n<script>\nimport Popover from '../popover/popover.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faFilter } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faFilter\n)\n\nexport default {\n components: { Popover },\n computed: {\n filters () {\n return this.$store.getters.mergedConfig.notificationVisibility\n }\n },\n methods: {\n toggleNotificationFilter (type) {\n this.$store.dispatch('setOption', {\n name: 'notificationVisibility',\n value: {\n ...this.filters,\n [type]: !this.filters[type]\n }\n })\n }\n }\n}\n</script>\n","import { render } from \"./notification_filters.vue?vue&type=template&id=0ad39446\"\nimport script from \"./notification_filters.vue?vue&type=script&lang=js\"\nexport * from \"./notification_filters.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { computed } from 'vue'\nimport { mapGetters } from 'vuex'\nimport Notification from '../notification/notification.vue'\nimport NotificationFilters from './notification_filters.vue'\nimport notificationsFetcher from '../../services/notifications_fetcher/notifications_fetcher.service.js'\nimport {\n notificationsFromStore,\n filteredNotificationsFromStore,\n unseenNotificationsFromStore\n} from '../../services/notification_utils/notification_utils.js'\nimport FaviconService from '../../services/favicon_service/favicon_service.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faCircleNotch, faArrowUp, faMinus } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCircleNotch,\n faArrowUp,\n faMinus\n)\n\nconst DEFAULT_SEEN_TO_DISPLAY_COUNT = 30\n\nconst Notifications = {\n components: {\n Notification,\n NotificationFilters\n },\n props: {\n // Disables panel styles, unread mark, potentially other notification-related actions\n // meant for \"Interactions\" timeline\n minimalMode: Boolean,\n // Custom filter mode, an array of strings, possible values 'mention', 'repeat', 'like', 'follow', used to override global filter for use in \"Interactions\" timeline\n filterMode: Array,\n // Disable teleporting (i.e. for /users/user/notifications)\n disableTeleport: Boolean\n },\n data () {\n return {\n showScrollTop: false,\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 provide () {\n return {\n popoversZLayer: computed(() => this.popoversZLayer)\n }\n },\n computed: {\n mainClass () {\n return this.minimalMode ? '' : 'panel panel-default'\n },\n notifications () {\n return notificationsFromStore(this.$store)\n },\n error () {\n return this.$store.state.statuses.notifications.error\n },\n unseenNotifications () {\n return unseenNotificationsFromStore(this.$store)\n },\n filteredNotifications () {\n return filteredNotificationsFromStore(this.$store, this.filterMode)\n },\n unseenCount () {\n return this.unseenNotifications.length\n },\n unseenCountTitle () {\n return this.unseenCount + (this.unreadChatCount) + this.unreadAnnouncementCount\n },\n loading () {\n return this.$store.state.statuses.notifications.loading\n },\n noHeading () {\n const { layoutType } = this.$store.state.interface\n return this.minimalMode || layoutType === 'mobile'\n },\n teleportTarget () {\n const { layoutType } = this.$store.state.interface\n const map = {\n wide: '#notifs-column',\n mobile: '#mobile-notifications'\n }\n return map[layoutType] || '#notifs-sidebar'\n },\n popoversZLayer () {\n const { layoutType } = this.$store.state.interface\n return layoutType === 'mobile' ? 'navbar' : null\n },\n notificationsToDisplay () {\n return this.filteredNotifications.slice(0, this.unseenCount + this.seenToDisplayCount)\n },\n noSticky () { return this.$store.getters.mergedConfig.disableStickyHeaders },\n ...mapGetters(['unreadChatCount', 'unreadAnnouncementCount'])\n },\n mounted () {\n this.scrollerRef = this.$refs.root.closest('.column.-scrollable')\n if (!this.scrollerRef) {\n this.scrollerRef = this.$refs.root.closest('.mobile-notifications')\n }\n if (!this.scrollerRef) {\n this.scrollerRef = this.$refs.root.closest('.column.main')\n }\n this.scrollerRef.addEventListener('scroll', this.updateScrollPosition)\n },\n unmounted () {\n if (!this.scrollerRef) return\n this.scrollerRef.removeEventListener('scroll', this.updateScrollPosition)\n },\n watch: {\n unseenCountTitle (count) {\n if (count > 0) {\n FaviconService.drawFaviconBadge()\n this.$store.dispatch('setPageTitle', `(${count})`)\n } else {\n FaviconService.clearFaviconBadge()\n this.$store.dispatch('setPageTitle', '')\n }\n },\n teleportTarget () {\n // handle scroller change\n this.$nextTick(() => {\n this.scrollerRef.removeEventListener('scroll', this.updateScrollPosition)\n this.scrollerRef = this.$refs.root.closest('.column.-scrollable')\n if (!this.scrollerRef) {\n this.scrollerRef = this.$refs.root.closest('.mobile-notifications')\n }\n this.scrollerRef.addEventListener('scroll', this.updateScrollPosition)\n this.updateScrollPosition()\n })\n }\n },\n methods: {\n scrollToTop () {\n const scrollable = this.scrollerRef\n scrollable.scrollTo({ top: this.$refs.root.offsetTop })\n // this.$refs.root.scrollIntoView({ behavior: 'smooth', block: 'start' })\n },\n updateScrollPosition () {\n this.showScrollTop = this.$refs.root.offsetTop < this.scrollerRef.scrollTop\n },\n markAsSeen () {\n this.$store.dispatch('markNotificationsAsSeen')\n this.seenToDisplayCount = DEFAULT_SEEN_TO_DISPLAY_COUNT\n },\n fetchOlderNotifications () {\n if (this.loading) {\n return\n }\n\n const seenCount = this.filteredNotifications.length - this.unseenCount\n if (this.seenToDisplayCount < seenCount) {\n this.seenToDisplayCount = Math.min(this.seenToDisplayCount + 20, seenCount)\n return\n } else if (this.seenToDisplayCount > seenCount) {\n this.seenToDisplayCount = seenCount\n }\n\n const store = this.$store\n const credentials = store.state.users.currentUser.credentials\n store.commit('setNotificationsLoading', { value: true })\n notificationsFetcher.fetchAndUpdate({\n store,\n credentials,\n older: true\n }).then(notifs => {\n store.commit('setNotificationsLoading', { value: false })\n if (notifs.length === 0) {\n this.bottomedOut = true\n }\n this.seenToDisplayCount += notifs.length\n })\n }\n }\n}\n\nexport default Notifications\n","import { render } from \"./notifications.vue?vue&type=template&id=fdd5b5f4\"\nimport script from \"./notifications.js?vue&type=script&lang=js\"\nexport * from \"./notifications.js?vue&type=script&lang=js\"\n\nimport \"./notifications.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"panel-loading\">\n <span class=\"loading-text\">\n <FAIcon\n icon=\"circle-notch\"\n spin\n size=\"3x\"\n />\n {{ $t('general.loading') }}\n </span>\n </div>\n</template>\n\n<script>\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faCircleNotch } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCircleNotch\n)\n\nexport default {}\n</script>\n\n<style lang=\"scss\">\n@import \"src/variables\";\n\n.panel-loading {\n display: flex;\n height: 100%;\n align-items: center;\n justify-content: center;\n font-size: 2em;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n\n .loading-text svg {\n line-height: 0;\n vertical-align: middle;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n}\n</style>\n","import { render } from \"./panel_loading.vue?vue&type=template&id=0255a870\"\nimport script from \"./panel_loading.vue?vue&type=script&lang=js\"\nexport * from \"./panel_loading.vue?vue&type=script&lang=js\"\n\nimport \"./panel_loading.vue?vue&type=style&index=0&id=0255a870&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","const Popover = {\n name: 'Popover',\n props: {\n // Action to trigger popover: either 'hover' or 'click'\n trigger: String,\n\n // 'top', 'bottom', 'left', 'right'\n placement: String,\n\n // Takes object with properties 'x' and 'y', values of these can be\n // 'container' for using offsetParent as boundaries for either axis\n // or 'viewport'\n boundTo: Object,\n\n // Takes a selector to use as a replacement for the parent container\n // for getting boundaries for x an y axis\n boundToSelector: String,\n\n // Takes a top/bottom/left/right object, how much space to leave\n // between boundary and popover element\n margin: Object,\n\n // Takes a x/y object and tells how many pixels to offset from\n // anchor point on either axis\n offset: Object,\n\n // Replaces the classes you may want for the popover container.\n // Use 'popover-default' in addition to get the default popover\n // styles with your custom class.\n popoverClass: String,\n\n // If true, subtract padding when calculating position for the popover,\n // use it when popover offset looks to be different on top vs bottom.\n removePadding: Boolean,\n\n // self-explanatory (i hope)\n disabled: Boolean,\n\n // Instead of putting popover next to anchor, overlay popover's center on top of anchor's center\n overlayCenters: Boolean,\n\n // What selector (witin popover!) to use for determining center of popover\n overlayCentersSelector: String,\n\n // Lets hover popover stay when clicking inside of it\n stayOnClick: Boolean,\n\n // Use styled button (to avoid nested buttons)\n normalButton: Boolean,\n\n triggerAttrs: {\n type: Object,\n default: {}\n }\n },\n inject: ['popoversZLayer'], // override popover z layer\n data () {\n return {\n // lockReEntry is a flag that is set when mouse cursor is leaving the popover's content\n // so that if mouse goes back into popover it won't be re-shown again to prevent annoyance\n // with popovers refusing to be hidden when user wants to interact with something in below popover\n anchorEl: null,\n // There's an issue where having teleport enabled by default causes things just...\n // not render at all, i.e. main post status form and its emoji inputs\n teleport: false,\n lockReEntry: false,\n hidden: true,\n styles: {},\n oldSize: { width: 0, height: 0 },\n scrollable: null,\n // used to avoid blinking if hovered onto popover\n graceTimeout: null,\n parentPopover: null,\n disableClickOutside: false,\n childrenShown: new Set()\n }\n },\n methods: {\n setAnchorEl (el) {\n this.anchorEl = el\n this.updateStyles()\n },\n containerBoundingClientRect () {\n const container = this.boundToSelector ? this.$el.closest(this.boundToSelector) : this.$el.offsetParent\n return container.getBoundingClientRect()\n },\n updateStyles () {\n if (this.hidden) {\n this.styles = {}\n return\n }\n\n // Popover will be anchored around this element, trigger ref is the container, so\n // its children are what are inside the slot. Expect only one v-slot:trigger.\n const anchorEl = this.anchorEl || (this.$refs.trigger && this.$refs.trigger.children[0]) || this.$el\n // SVGs don't have offsetWidth/Height, use fallback\n const anchorHeight = anchorEl.offsetHeight || anchorEl.clientHeight\n const anchorWidth = anchorEl.offsetWidth || anchorEl.clientWidth\n const anchorScreenBox = anchorEl.getBoundingClientRect()\n\n const anchorStyle = getComputedStyle(anchorEl)\n const topPadding = parseFloat(anchorStyle.paddingTop)\n const bottomPadding = parseFloat(anchorStyle.paddingBottom)\n const rightPadding = parseFloat(anchorStyle.paddingRight)\n const leftPadding = parseFloat(anchorStyle.paddingLeft)\n\n // Screen position of the origin point for popover = center of the anchor\n const origin = {\n x: anchorScreenBox.left + anchorWidth * 0.5,\n y: anchorScreenBox.top + anchorHeight * 0.5\n }\n const content = this.$refs.content\n const overlayCenter = this.overlayCenters\n ? this.$refs.content.querySelector(this.overlayCentersSelector)\n : null\n\n // Minor optimization, don't call a slow reflow call if we don't have to\n const parentScreenBox = this.boundTo &&\n (this.boundTo.x === 'container' || this.boundTo.y === 'container') &&\n this.containerBoundingClientRect()\n\n const margin = this.margin || {}\n\n // What are the screen bounds for the popover? Viewport vs container\n // when using viewport, using default margin values to dodge the navbar\n const xBounds = this.boundTo && this.boundTo.x === 'container'\n ? {\n min: parentScreenBox.left + (margin.left || 0),\n max: parentScreenBox.right - (margin.right || 0)\n }\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 ? {\n min: parentScreenBox.top + (margin.top || 0),\n max: parentScreenBox.bottom - (margin.bottom || 0)\n }\n : {\n min: 0 + (margin.top || 50),\n max: window.innerHeight - (margin.bottom || 5)\n }\n\n let horizOffset = 0\n let vertOffset = 0\n\n if (overlayCenter) {\n const box = content.getBoundingClientRect()\n const overlayCenterScreenBox = overlayCenter.getBoundingClientRect()\n const leftInnerOffset = overlayCenterScreenBox.left - box.left\n const topInnerOffset = overlayCenterScreenBox.top - box.top\n horizOffset = -leftInnerOffset - overlayCenter.offsetWidth * 0.5\n vertOffset = -topInnerOffset - overlayCenter.offsetHeight * 0.5\n } else {\n horizOffset = content.offsetWidth * -0.5\n vertOffset = content.offsetHeight * -0.5\n }\n\n const leftBorder = origin.x + horizOffset\n const rightBorder = leftBorder + content.offsetWidth\n const topBorder = origin.y + vertOffset\n const bottomBorder = topBorder + content.offsetHeight\n\n // If overflowing from left, move it so that it doesn't\n if (leftBorder < xBounds.min) {\n horizOffset += xBounds.min - leftBorder\n }\n\n // If overflowing from right, move it so that it doesn't\n if (rightBorder > xBounds.max) {\n horizOffset -= rightBorder - xBounds.max\n }\n\n // If overflowing from top, move it so that it doesn't\n if (topBorder < yBounds.min) {\n vertOffset += yBounds.min - topBorder\n }\n\n // If overflowing from bottom, move it so that it doesn't\n if (bottomBorder > yBounds.max) {\n vertOffset -= bottomBorder - yBounds.max\n }\n\n let translateX = 0\n let translateY = 0\n\n if (overlayCenter) {\n translateX = origin.x + horizOffset\n translateY = origin.y + vertOffset\n } else if (this.placement !== 'right' && this.placement !== 'left') {\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 const topBoundary = origin.y - anchorHeight * 0.5 + (this.removePadding ? topPadding : 0)\n const bottomBoundary = origin.y + anchorHeight * 0.5 - (this.removePadding ? bottomPadding : 0)\n if (bottomBoundary + content.offsetHeight > yBounds.max) usingTop = true\n if (topBoundary - content.offsetHeight < yBounds.min) usingTop = false\n\n const yOffset = (this.offset && this.offset.y) || 0\n translateY = usingTop\n ? topBoundary - yOffset - content.offsetHeight\n : bottomBoundary + yOffset\n\n const xOffset = (this.offset && this.offset.x) || 0\n translateX = origin.x + horizOffset + xOffset\n } else {\n // Default to whatever user wished with placement prop\n let usingRight = this.placement !== 'left'\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 const rightBoundary = origin.x - anchorWidth * 0.5 + (this.removePadding ? rightPadding : 0)\n const leftBoundary = origin.x + anchorWidth * 0.5 - (this.removePadding ? leftPadding : 0)\n if (leftBoundary + content.offsetWidth > xBounds.max) usingRight = true\n if (rightBoundary - content.offsetWidth < xBounds.min) usingRight = false\n\n const xOffset = (this.offset && this.offset.x) || 0\n translateX = usingRight\n ? rightBoundary - xOffset - content.offsetWidth\n : leftBoundary + xOffset\n\n const yOffset = (this.offset && this.offset.y) || 0\n translateY = origin.y + vertOffset + yOffset\n }\n\n this.styles = {\n left: `${Math.round(translateX)}px`,\n top: `${Math.round(translateY)}px`\n }\n\n if (this.popoversZLayer) {\n this.styles['--ZI_popover_override'] = `var(--ZI_${this.popoversZLayer}_popovers)`\n }\n if (parentScreenBox) {\n this.styles.maxWidth = `${Math.round(parentScreenBox.width)}px`\n }\n },\n showPopover () {\n if (this.disabled) return\n this.disableClickOutside = true\n setTimeout(() => {\n this.disableClickOutside = false\n }, 0)\n const wasHidden = this.hidden\n this.hidden = false\n this.parentPopover && this.parentPopover.onChildPopoverState(this, true)\n if (this.trigger === 'click' || this.stayOnClick) {\n document.addEventListener('click', this.onClickOutside)\n }\n this.scrollable.addEventListener('scroll', this.onScroll)\n this.scrollable.addEventListener('resize', this.onResize)\n this.$nextTick(() => {\n if (wasHidden) this.$emit('show')\n this.updateStyles()\n })\n },\n hidePopover () {\n if (this.disabled) return\n if (!this.hidden) this.$emit('close')\n this.hidden = true\n this.parentPopover && this.parentPopover.onChildPopoverState(this, false)\n if (this.trigger === 'click') {\n document.removeEventListener('click', this.onClickOutside)\n }\n this.scrollable.removeEventListener('scroll', this.onScroll)\n this.scrollable.removeEventListener('resize', this.onResize)\n },\n onMouseenter (e) {\n if (this.trigger === 'hover') {\n this.lockReEntry = false\n clearTimeout(this.graceTimeout)\n this.graceTimeout = null\n this.showPopover()\n }\n },\n onMouseleave (e) {\n if (this.trigger === 'hover' && this.childrenShown.size === 0) {\n this.graceTimeout = setTimeout(() => this.hidePopover(), 1)\n }\n },\n onMouseenterContent (e) {\n if (this.trigger === 'hover' && !this.lockReEntry) {\n this.lockReEntry = true\n clearTimeout(this.graceTimeout)\n this.graceTimeout = null\n this.showPopover()\n }\n },\n onMouseleaveContent (e) {\n if (this.trigger === 'hover' && this.childrenShown.size === 0) {\n this.graceTimeout = setTimeout(() => this.hidePopover(), 1)\n }\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.disableClickOutside) return\n if (this.hidden) return\n if (this.$refs.content && this.$refs.content.contains(e.target)) return\n if (this.$el.contains(e.target)) return\n if (this.childrenShown.size > 0) return\n this.hidePopover()\n if (this.parentPopover) this.parentPopover.onClickOutside(e)\n },\n onScroll (e) {\n this.updateStyles()\n },\n onResize (e) {\n this.updateStyles()\n },\n onChildPopoverState (childRef, state) {\n if (state) {\n this.childrenShown.add(childRef)\n } else {\n this.childrenShown.delete(childRef)\n }\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 mounted () {\n this.teleport = true\n let scrollable = this.$refs.trigger.closest('.column.-scrollable') ||\n this.$refs.trigger.closest('.mobile-notifications')\n if (!scrollable) scrollable = window\n this.scrollable = scrollable\n let parent = this.$parent\n while (parent && parent.$.type.name !== 'Popover') {\n parent = parent.$parent\n }\n this.parentPopover = parent\n },\n beforeUnmount () {\n this.hidePopover()\n }\n}\n\nexport default Popover\n","import { render } from \"./popover.vue?vue&type=template&id=5ac74c76\"\nimport script from \"./popover.js?vue&type=script&lang=js\"\nexport * from \"./popover.js?vue&type=script&lang=js\"\n\nimport \"./popover.vue?vue&type=style&index=0&id=5ac74c76&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <span\n @mouseenter=\"onMouseenter\"\n @mouseleave=\"onMouseleave\"\n >\n <button\n ref=\"trigger\"\n class=\"popover-trigger-button\"\n :class=\"normalButton ? 'button-default btn' : 'button-unstyled'\"\n type=\"button\"\n v-bind=\"triggerAttrs\"\n @click=\"onClick\"\n >\n <slot name=\"trigger\" />\n </button>\n <teleport\n :disabled=\"!teleport\"\n to=\"#popovers\"\n >\n <transition name=\"fade\">\n <div\n v-if=\"!hidden\"\n ref=\"content\"\n :style=\"styles\"\n class=\"popover\"\n :class=\"popoverClass || 'popover-default'\"\n @mouseenter=\"onMouseenterContent\"\n @mouseleave=\"onMouseleaveContent\"\n @click=\"onClickContent\"\n >\n <slot\n name=\"content\"\n class=\"popover-inner\"\n :close=\"hidePopover\"\n />\n </div>\n </transition>\n </teleport>\n </span>\n</template>\n\n<script src=\"./popover.js\" />\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.popover-trigger-button {\n display: inline-block;\n}\n\n.popover {\n z-index: var(--ZI_popover_override, var(--ZI_popovers));\n position: fixed;\n min-width: 0;\n max-width: calc(100vw - 20px);\n box-shadow: 2px 2px 3px rgb(0 0 0 / 50%);\n box-shadow: var(--popupShadow);\n}\n\n.popover-default {\n &::after {\n content: \"\";\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 3;\n box-shadow: 1px 1px 4px rgb(0 0 0 / 60%);\n box-shadow: var(--panelShadow);\n pointer-events: none;\n }\n\n border-radius: $fallback--btnRadius;\n border-radius: var(--btnRadius, $fallback--btnRadius);\n background-color: $fallback--bg;\n background-color: var(--popover, $fallback--bg);\n color: $fallback--text;\n color: var(--popoverText, $fallback--text);\n\n --faint: var(--popoverFaintText, $fallback--faint);\n --faintLink: var(--popoverFaintLink, $fallback--faint);\n --lightText: var(--popoverLightText, $fallback--lightText);\n --postLink: var(--popoverPostLink, $fallback--link);\n --postFaintLink: var(--popoverPostFaintLink, $fallback--link);\n --icon: var(--popoverIcon, $fallback--icon);\n}\n\n.dropdown-menu {\n display: block;\n padding: 0.5rem 0;\n font-size: 1em;\n text-align: left;\n list-style: none;\n max-width: 100vw;\n z-index: var(--ZI_popover_override, var(--ZI_popovers));\n white-space: nowrap;\n\n .dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid $fallback--border;\n border-top: 1px solid var(--border, $fallback--border);\n }\n\n .dropdown-item {\n line-height: 21px;\n overflow: hidden;\n display: block;\n padding: 0.5em 0.75em;\n clear: both;\n font-weight: 400;\n text-align: inherit;\n white-space: nowrap;\n border: none;\n border-radius: 0;\n background-color: transparent;\n box-shadow: none;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n\n --btnText: var(--popoverText, $fallback--text);\n\n &-icon {\n svg {\n width: 22px;\n margin-right: 0.75rem;\n color: var(--menuPopoverIcon, $fallback--icon);\n }\n }\n\n &.-has-submenu {\n .chevron-icon {\n margin-right: 0.25rem;\n margin-left: 2rem;\n }\n }\n\n &:active,\n &:hover {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenuPopover, $fallback--lightBg);\n box-shadow: none;\n\n --btnText: var(--selectedMenuPopoverText, $fallback--link);\n --faint: var(--selectedMenuPopoverFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuPopoverFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuPopoverLightText, $fallback--lightText);\n --icon: var(--selectedMenuPopoverIcon, $fallback--icon);\n\n svg {\n color: var(--selectedMenuPopoverIcon, $fallback--icon);\n\n --icon: var(--selectedMenuPopoverIcon, $fallback--icon);\n }\n }\n\n .menu-checkbox {\n display: inline-block;\n vertical-align: middle;\n min-width: 22px;\n max-width: 22px;\n min-height: 22px;\n max-height: 22px;\n line-height: 22px;\n text-align: center;\n border-radius: 0;\n background-color: $fallback--fg;\n background-color: var(--input, $fallback--fg);\n box-shadow: 0 0 2px black inset;\n box-shadow: var(--inputShadow);\n margin-right: 0.75em;\n\n &.menu-checkbox-checked::after {\n font-size: 1.25em;\n content: \"✓\";\n }\n\n &.-radio {\n border-radius: 9999px;\n\n &.menu-checkbox-checked::after {\n font-size: 2em;\n content: \"•\";\n }\n }\n }\n }\n\n .button-default.dropdown-item {\n &,\n i[class*=\"icon-\"] {\n color: $fallback--text;\n color: var(--btnText, $fallback--text);\n }\n\n &:active {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenuPopover, $fallback--lightBg);\n color: $fallback--link;\n color: var(--selectedMenuPopoverText, $fallback--link);\n }\n\n &:disabled {\n color: $fallback--text;\n color: var(--btnDisabledText, $fallback--text);\n }\n\n &.toggled {\n color: $fallback--text;\n color: var(--btnToggledText, $fallback--text);\n }\n }\n}\n</style>\n","<template>\n <div\n ref=\"form\"\n class=\"post-status-form\"\n >\n <form\n autocomplete=\"off\"\n @submit.prevent\n @dragover.prevent=\"fileDrag\"\n >\n <div class=\"form-group\">\n <i18n-t\n v-if=\"!$store.state.users.currentUser.locked && newStatus.visibility == 'private' && !disableLockWarning\"\n keypath=\"post_status.account_not_locked_warning\"\n tag=\"p\"\n class=\"visibility-notice\"\n scope=\"global\"\n >\n <button\n class=\"button-unstyled -link\"\n @click=\"openProfileTab\"\n >\n {{ $t('post_status.account_not_locked_warning_link') }}\n </button>\n </i18n-t>\n <p\n v-if=\"!hideScopeNotice && newStatus.visibility === 'public'\"\n class=\"visibility-notice notice-dismissible\"\n >\n <span>{{ $t('post_status.scope_notice.public') }}</span>\n <a\n class=\"fa-scale-110 fa-old-padding dismiss\"\n :title=\"$t('post_status.scope_notice_dismiss')\"\n role=\"button\"\n tabindex=\"0\"\n @click.prevent=\"dismissScopeNotice()\"\n >\n <FAIcon icon=\"times\" />\n </a>\n </p>\n <p\n v-else-if=\"!hideScopeNotice && newStatus.visibility === 'unlisted'\"\n class=\"visibility-notice notice-dismissible\"\n >\n <span>{{ $t('post_status.scope_notice.unlisted') }}</span>\n <a\n class=\"fa-scale-110 fa-old-padding dismiss\"\n :title=\"$t('post_status.scope_notice_dismiss')\"\n role=\"button\"\n tabindex=\"0\"\n @click.prevent=\"dismissScopeNotice()\"\n >\n <FAIcon icon=\"times\" />\n </a>\n </p>\n <p\n v-else-if=\"!hideScopeNotice && newStatus.visibility === 'private' && $store.state.users.currentUser.locked\"\n class=\"visibility-notice notice-dismissible\"\n >\n <span>{{ $t('post_status.scope_notice.private') }}</span>\n <a\n class=\"fa-scale-110 fa-old-padding dismiss\"\n :title=\"$t('post_status.scope_notice_dismiss')\"\n role=\"button\"\n tabindex=\"0\"\n @click.prevent=\"dismissScopeNotice()\"\n >\n <FAIcon icon=\"times\" />\n </a>\n </p>\n <p\n v-else-if=\"newStatus.visibility === 'direct'\"\n class=\"visibility-notice\"\n >\n <span v-if=\"safeDMEnabled\">{{ $t('post_status.direct_warning_to_first_only') }}</span>\n <span v-else>{{ $t('post_status.direct_warning_to_all') }}</span>\n </p>\n <div\n v-if=\"isEdit\"\n class=\"visibility-notice edit-warning\"\n >\n <p>{{ $t('post_status.edit_remote_warning') }}</p>\n <p>{{ $t('post_status.edit_unsupported_warning') }}</p>\n </div>\n <div\n v-if=\"!disablePreview\"\n class=\"preview-heading faint\"\n >\n <a\n class=\"preview-toggle faint\"\n @click.stop.prevent=\"togglePreview\"\n >\n {{ $t('post_status.preview') }}\n <FAIcon :icon=\"showPreview ? 'chevron-left' : 'chevron-right'\" />\n </a>\n <div\n v-show=\"previewLoading\"\n class=\"preview-spinner\"\n >\n <FAIcon\n class=\"fa-old-padding\"\n spin\n icon=\"circle-notch\"\n />\n </div>\n </div>\n <div\n v-if=\"showPreview\"\n class=\"preview-container\"\n >\n <div\n v-if=\"!preview\"\n class=\"preview-status\"\n >\n {{ $t('general.loading') }}\n </div>\n <div\n v-else-if=\"preview.error\"\n class=\"preview-status preview-error\"\n >\n {{ preview.error }}\n </div>\n <StatusContent\n v-else\n :status=\"preview\"\n class=\"preview-status\"\n />\n </div>\n <div\n v-if=\"quotable\"\n role=\"radiogroup\"\n class=\"btn-group reply-or-quote-selector\"\n >\n <button\n :id=\"`reply-or-quote-option-${randomSeed}-reply`\"\n class=\"btn button-default reply-or-quote-option\"\n :class=\"{ toggled: !newStatus.quoting }\"\n tabindex=\"0\"\n role=\"radio\"\n :aria-labelledby=\"`reply-or-quote-option-${randomSeed}-reply`\"\n :aria-checked=\"!newStatus.quoting\"\n @click=\"newStatus.quoting = false\"\n >\n {{ $t('post_status.reply_option') }}\n </button>\n <button\n :id=\"`reply-or-quote-option-${randomSeed}-quote`\"\n class=\"btn button-default reply-or-quote-option\"\n :class=\"{ toggled: newStatus.quoting }\"\n tabindex=\"0\"\n role=\"radio\"\n :aria-labelledby=\"`reply-or-quote-option-${randomSeed}-quote`\"\n :aria-checked=\"newStatus.quoting\"\n @click=\"newStatus.quoting = true\"\n >\n {{ $t('post_status.quote_option') }}\n </button>\n </div>\n <EmojiInput\n v-if=\"!disableSubject && (newStatus.spoilerText || alwaysShowSubject)\"\n v-model=\"newStatus.spoilerText\"\n enable-emoji-picker\n :suggest=\"emojiSuggestor\"\n class=\"form-control\"\n >\n <template #default=\"inputProps\">\n <input\n v-model=\"newStatus.spoilerText\"\n type=\"text\"\n :placeholder=\"$t('post_status.content_warning')\"\n :disabled=\"posting && !optimisticPosting\"\n v-bind=\"propsToNative(inputProps)\"\n size=\"1\"\n class=\"form-post-subject\"\n >\n </template>\n </EmojiInput>\n <EmojiInput\n ref=\"emoji-input\"\n v-model=\"newStatus.status\"\n :suggest=\"emojiUserSuggestor\"\n :placement=\"emojiPickerPlacement\"\n class=\"form-control main-input\"\n enable-emoji-picker\n hide-emoji-button\n :newline-on-ctrl-enter=\"submitOnEnter\"\n enable-sticker-picker\n @input=\"onEmojiInputInput\"\n @sticker-uploaded=\"addMediaFile\"\n @sticker-upload-failed=\"uploadFailed\"\n @shown=\"handleEmojiInputShow\"\n >\n <template #default=\"inputProps\">\n <textarea\n ref=\"textarea\"\n v-model=\"newStatus.status\"\n :placeholder=\"placeholder || $t('post_status.default')\"\n rows=\"1\"\n cols=\"1\"\n :disabled=\"posting && !optimisticPosting\"\n class=\"form-post-body\"\n :class=\"{ 'scrollable-form': !!maxHeight }\"\n v-bind=\"propsToNative(inputProps)\"\n @keydown.exact.enter=\"submitOnEnter && postStatus($event, newStatus)\"\n @keydown.meta.enter=\"postStatus($event, newStatus)\"\n @keydown.ctrl.enter=\"!submitOnEnter && postStatus($event, newStatus)\"\n @input=\"resize\"\n @compositionupdate=\"resize\"\n @paste=\"paste\"\n />\n <p\n v-if=\"hasStatusLengthLimit\"\n class=\"character-counter faint\"\n :class=\"{ error: isOverLengthLimit }\"\n >\n {{ charactersLeft }}\n </p>\n </template>\n </EmojiInput>\n <div\n v-if=\"!disableScopeSelector\"\n class=\"visibility-tray\"\n >\n <scope-selector\n v-if=\"!disableVisibilitySelector\"\n :show-all=\"showAllScopes\"\n :user-default=\"userDefaultScope\"\n :original-scope=\"copyMessageScope\"\n :initial-scope=\"newStatus.visibility\"\n :on-scope-change=\"changeVis\"\n />\n\n <div\n v-if=\"postFormats.length > 1\"\n class=\"text-format\"\n >\n <Select\n id=\"post-content-type\"\n v-model=\"newStatus.contentType\"\n class=\"form-control\"\n :attrs=\"{ 'aria-label': $t('post_status.content_type_selection') }\"\n >\n <option\n v-for=\"postFormat in postFormats\"\n :key=\"postFormat\"\n :value=\"postFormat\"\n >\n {{ $t(`post_status.content_type[\"${postFormat}\"]`) }}\n </option>\n </Select>\n </div>\n <div\n v-if=\"postFormats.length === 1 && postFormats[0] !== 'text/plain'\"\n class=\"text-format\"\n >\n <span class=\"only-format\">\n {{ $t(`post_status.content_type[\"${postFormats[0]}\"]`) }}\n </span>\n </div>\n </div>\n </div>\n <poll-form\n v-if=\"pollsAvailable\"\n ref=\"pollForm\"\n :visible=\"pollFormVisible\"\n @update-poll=\"setPoll\"\n />\n <div\n ref=\"bottom\"\n class=\"form-bottom\"\n >\n <div class=\"form-bottom-left\">\n <media-upload\n ref=\"mediaUpload\"\n class=\"media-upload-icon\"\n :drop-files=\"dropFiles\"\n :disabled=\"uploadFileLimitReached\"\n @uploading=\"startedUploadingFiles\"\n @uploaded=\"addMediaFile\"\n @upload-failed=\"uploadFailed\"\n @all-uploaded=\"finishedUploadingFiles\"\n />\n <button\n class=\"emoji-icon button-unstyled\"\n :title=\"$t('emoji.add_emoji')\"\n @click=\"showEmojiPicker\"\n >\n <FAIcon icon=\"smile-beam\" />\n </button>\n <button\n v-if=\"pollsAvailable\"\n class=\"poll-icon button-unstyled\"\n :class=\"{ selected: pollFormVisible }\"\n :title=\"$t('polls.add_poll')\"\n @click=\"togglePollForm\"\n >\n <FAIcon icon=\"poll-h\" />\n </button>\n </div>\n <button\n v-if=\"posting\"\n disabled\n class=\"btn button-default\"\n >\n {{ $t('post_status.posting') }}\n </button>\n <button\n v-else-if=\"isOverLengthLimit\"\n disabled\n class=\"btn button-default\"\n >\n {{ $t('post_status.post') }}\n </button>\n <button\n v-else\n :disabled=\"uploadingFiles || disableSubmit\"\n class=\"btn button-default\"\n @click.stop.prevent=\"postStatus($event, newStatus)\"\n >\n {{ $t('post_status.post') }}\n </button>\n </div>\n <div\n v-show=\"showDropIcon !== 'hide'\"\n :style=\"{ animation: showDropIcon === 'show' ? 'fade-in 0.25s' : 'fade-out 0.5s' }\"\n class=\"drop-indicator\"\n @dragleave=\"fileDragStop\"\n @drop.stop=\"fileDrop\"\n >\n <FAIcon :icon=\"uploadFileLimitReached ? 'ban' : 'upload'\" />\n </div>\n <div\n v-if=\"error\"\n class=\"alert error\"\n >\n Error: {{ error }}\n <button\n class=\"button-unstyled\"\n @click=\"clearError\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"times\"\n />\n </button>\n </div>\n <gallery\n v-if=\"newStatus.files && newStatus.files.length > 0\"\n class=\"attachments\"\n :grid=\"true\"\n :nsfw=\"false\"\n :attachments=\"newStatus.files\"\n :descriptions=\"newStatus.mediaDescriptions\"\n :set-media=\"() => $store.dispatch('setMedia', newStatus.files)\"\n :editable=\"true\"\n :edit-attachment=\"editAttachment\"\n :remove-attachment=\"removeMediaFile\"\n :shift-up-attachment=\"newStatus.files.length > 1 && shiftUpMediaFile\"\n :shift-dn-attachment=\"newStatus.files.length > 1 && shiftDnMediaFile\"\n @play=\"$emit('mediaplay', attachment.id)\"\n @pause=\"$emit('mediapause', attachment.id)\"\n />\n <div\n v-if=\"newStatus.files.length > 0 && !disableSensitivityCheckbox\"\n class=\"upload_settings\"\n >\n <Checkbox v-model=\"newStatus.nsfw\">\n {{ $t('post_status.attachments_sensitive') }}\n </Checkbox>\n </div>\n </form>\n </div>\n</template>\n\n<script src=\"./post_status_form.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.post-status-form {\n position: relative;\n\n .attachments {\n margin-bottom: 0.5em;\n }\n\n .form-bottom {\n display: flex;\n justify-content: space-between;\n padding: 0.5em;\n height: 2.5em;\n\n button {\n width: 10em;\n }\n\n p {\n margin: 0.35em;\n padding: 0.35em;\n display: flex;\n }\n }\n\n .form-bottom-left {\n display: flex;\n flex: 1;\n padding-right: 7px;\n margin-right: 7px;\n max-width: 10em;\n }\n\n .preview-heading {\n display: flex;\n padding-left: 0.5em;\n }\n\n .preview-toggle {\n flex: 1;\n cursor: pointer;\n user-select: none;\n\n &:hover {\n text-decoration: underline;\n }\n\n svg,\n i {\n margin-left: 0.2em;\n font-size: 0.8em;\n transform: rotate(90deg);\n }\n }\n\n .preview-container {\n margin-bottom: 1em;\n }\n\n .preview-error {\n font-style: italic;\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n }\n\n .preview-status {\n border: 1px solid $fallback--border;\n border: 1px solid var(--border, $fallback--border);\n border-radius: $fallback--tooltipRadius;\n border-radius: var(--tooltipRadius, $fallback--tooltipRadius);\n padding: 0.5em;\n margin: 0;\n }\n\n .reply-or-quote-selector {\n margin-bottom: 0.5em;\n }\n\n .text-format {\n .only-format {\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n }\n }\n\n .visibility-tray {\n display: flex;\n justify-content: space-between;\n padding-top: 5px;\n align-items: baseline;\n }\n\n .visibility-notice.edit-warning {\n > :first-child {\n margin-top: 0;\n }\n\n > :last-child {\n margin-bottom: 0;\n }\n }\n\n // Order is not necessary but a good indicator\n .media-upload-icon {\n order: 1;\n justify-content: left;\n }\n\n .emoji-icon {\n order: 2;\n justify-content: center;\n }\n\n .poll-icon {\n order: 3;\n justify-content: right;\n }\n\n .media-upload-icon,\n .poll-icon,\n .emoji-icon {\n font-size: 1.85em;\n line-height: 1.1;\n flex: 1;\n padding: 0 0.1em;\n display: flex;\n align-items: center;\n\n &.selected,\n &:hover {\n // needs to be specific to override icon default color\n svg,\n i,\n label {\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n }\n }\n\n &.disabled {\n svg,\n i {\n cursor: not-allowed;\n color: $fallback--icon;\n color: var(--btnDisabledText, $fallback--icon);\n\n &:hover {\n color: $fallback--icon;\n color: var(--btnDisabledText, $fallback--icon);\n }\n }\n }\n }\n\n .error {\n text-align: center;\n }\n\n .media-upload-wrapper {\n margin-right: 0.2em;\n margin-bottom: 0.5em;\n width: 18em;\n\n img,\n video {\n object-fit: contain;\n max-height: 10em;\n }\n\n .video {\n max-height: 10em;\n }\n\n input {\n flex: 1;\n width: 100%;\n }\n }\n\n .status-input-wrapper {\n display: flex;\n position: relative;\n width: 100%;\n flex-direction: column;\n }\n\n .btn[disabled] {\n cursor: not-allowed;\n }\n\n form {\n display: flex;\n flex-direction: column;\n margin: 0.6em;\n position: relative;\n }\n\n .form-group {\n display: flex;\n flex-direction: column;\n padding: 0.25em 0.5em 0.5em;\n line-height: 1.85;\n }\n\n .form-post-body {\n // TODO: make a resizable textarea component?\n box-sizing: content-box; // needed for easier computation of dynamic size\n overflow: hidden;\n transition: min-height 200ms 100ms;\n // stock padding + 1 line of text (for counter)\n padding-bottom: calc(var(--_padding) + var(--post-line-height) * 1em);\n // two lines of text\n height: calc(var(--post-line-height) * 1em);\n min-height: calc(var(--post-line-height) * 1em);\n resize: none;\n\n &.scrollable-form {\n overflow-y: auto;\n }\n }\n\n .main-input {\n position: relative;\n }\n\n .character-counter {\n position: absolute;\n bottom: 0;\n right: 0;\n padding: 0;\n margin: 0 0.5em;\n\n &.error {\n color: $fallback--cRed;\n color: var(--cRed, $fallback--cRed);\n }\n }\n\n @keyframes fade-in {\n from { opacity: 0; }\n to { opacity: 0.6; }\n }\n\n @keyframes fade-out {\n from { opacity: 0.6; }\n to { opacity: 0; }\n }\n\n .drop-indicator {\n position: absolute;\n width: 100%;\n height: 100%;\n font-size: 5em;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0.6;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n border-radius: $fallback--tooltipRadius;\n border-radius: var(--tooltipRadius, $fallback--tooltipRadius);\n border: 2px dashed $fallback--text;\n border: 2px dashed var(--text, $fallback--text);\n }\n}\n</style>\n","<template>\n <div\n v-if=\"visible\"\n class=\"poll-form\"\n >\n <div\n v-for=\"(option, index) in options\"\n :key=\"index\"\n class=\"poll-option\"\n >\n <div class=\"input-container\">\n <input\n :id=\"`poll-${index}`\"\n v-model=\"options[index]\"\n size=\"1\"\n class=\"poll-option-input\"\n type=\"text\"\n :placeholder=\"$t('polls.option')\"\n :maxlength=\"maxLength\"\n @change=\"updatePollToParent\"\n @keydown.enter.stop.prevent=\"nextOption(index)\"\n >\n </div>\n <button\n v-if=\"options.length > 2\"\n class=\"delete-option button-unstyled -hover-highlight\"\n @click=\"deleteOption(index)\"\n >\n <FAIcon icon=\"times\" />\n </button>\n </div>\n <button\n v-if=\"options.length < maxOptions\"\n class=\"add-option faint button-unstyled -hover-highlight\"\n @click=\"addOption\"\n >\n <FAIcon\n icon=\"plus\"\n size=\"sm\"\n />\n\n {{ $t(\"polls.add_option\") }}\n </button>\n <div class=\"poll-type-expiry\">\n <div\n class=\"poll-type\"\n :title=\"$t('polls.type')\"\n >\n <Select\n v-model=\"pollType\"\n class=\"poll-type-select\"\n unstyled=\"true\"\n @change=\"updatePollToParent\"\n >\n <option value=\"single\">\n {{ $t('polls.single_choice') }}\n </option>\n <option value=\"multiple\">\n {{ $t('polls.multiple_choices') }}\n </option>\n </Select>\n </div>\n <div\n class=\"poll-expiry\"\n :title=\"$t('polls.expiry')\"\n >\n <input\n v-model=\"expiryAmount\"\n type=\"number\"\n class=\"expiry-amount hide-number-spinner\"\n :min=\"minExpirationInCurrentUnit\"\n :max=\"maxExpirationInCurrentUnit\"\n @change=\"expiryAmountChange\"\n >\n {{ ' ' }}\n <Select\n v-model=\"expiryUnit\"\n unstyled=\"true\"\n class=\"expiry-unit\"\n @change=\"expiryAmountChange\"\n >\n <option\n v-for=\"unit in expiryUnits\"\n :key=\"unit\"\n :value=\"unit\"\n >\n {{ $tc(`time.unit.${unit}_short`, expiryAmount, ['']) }}\n </option>\n </Select>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./poll_form.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.poll-form {\n display: flex;\n flex-direction: column;\n padding: 0 0.5em 0.5em;\n\n .add-option {\n align-self: flex-start;\n padding-top: 0.25em;\n padding-left: 0.1em;\n }\n\n .poll-option {\n display: flex;\n align-items: baseline;\n justify-content: space-between;\n margin-bottom: 0.25em;\n }\n\n .input-container {\n width: 100%;\n\n input {\n // Hack: dodge the floating X icon\n padding-right: 2.5em;\n width: 100%;\n }\n }\n\n .delete-option {\n // Hack: Move the icon over the input box\n width: 1.5em;\n margin-left: -1.5em;\n z-index: 1;\n }\n\n .poll-type-expiry {\n margin-top: 0.5em;\n display: flex;\n width: 100%;\n }\n\n .poll-type {\n margin-right: 0.75em;\n flex: 1 1 60%;\n\n .poll-type-select {\n padding-right: 0.75em;\n }\n }\n\n .poll-expiry {\n display: flex;\n\n .expiry-amount {\n width: 3em;\n text-align: right;\n }\n }\n}\n</style>\n","import * as DateUtils from 'src/services/date_utils/date_utils.js'\nimport { uniq } from 'lodash'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport Select from '../select/select.vue'\nimport {\n faTimes,\n faPlus\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faTimes,\n faPlus\n)\n\nexport default {\n components: {\n Select\n },\n name: 'PollForm',\n props: ['visible'],\n data: () => ({\n pollType: 'single',\n options: ['', ''],\n expiryAmount: 10,\n expiryUnit: 'minutes'\n }),\n computed: {\n pollLimits () {\n return this.$store.state.instance.pollLimits\n },\n maxOptions () {\n return this.pollLimits.max_options\n },\n maxLength () {\n return this.pollLimits.max_option_chars\n },\n expiryUnits () {\n const allUnits = ['minutes', 'hours', 'days']\n const expiry = this.convertExpiryFromUnit\n return allUnits.filter(\n unit => this.pollLimits.max_expiration >= expiry(unit, 1)\n )\n },\n minExpirationInCurrentUnit () {\n return Math.ceil(\n this.convertExpiryToUnit(\n this.expiryUnit,\n this.pollLimits.min_expiration\n )\n )\n },\n maxExpirationInCurrentUnit () {\n return Math.floor(\n this.convertExpiryToUnit(\n this.expiryUnit,\n this.pollLimits.max_expiration\n )\n )\n }\n },\n methods: {\n clear () {\n this.pollType = 'single'\n this.options = ['', '']\n this.expiryAmount = 10\n this.expiryUnit = 'minutes'\n },\n nextOption (index) {\n const element = this.$el.querySelector(`#poll-${index + 1}`)\n if (element) {\n element.focus()\n } else {\n // Try adding an option and try focusing on it\n const addedOption = this.addOption()\n if (addedOption) {\n this.$nextTick(function () {\n this.nextOption(index)\n })\n }\n }\n },\n addOption () {\n if (this.options.length < this.maxOptions) {\n this.options.push('')\n return true\n }\n return false\n },\n deleteOption (index, event) {\n if (this.options.length > 2) {\n this.options.splice(index, 1)\n this.updatePollToParent()\n }\n },\n convertExpiryToUnit (unit, amount) {\n // Note: we want seconds and not milliseconds\n return DateUtils.secondsToUnit(unit, amount)\n },\n convertExpiryFromUnit (unit, amount) {\n return DateUtils.unitToSeconds(unit, amount)\n },\n expiryAmountChange () {\n this.expiryAmount =\n Math.max(this.minExpirationInCurrentUnit, this.expiryAmount)\n this.expiryAmount =\n Math.min(this.maxExpirationInCurrentUnit, this.expiryAmount)\n this.updatePollToParent()\n },\n updatePollToParent () {\n const expiresIn = this.convertExpiryFromUnit(\n this.expiryUnit,\n this.expiryAmount\n )\n\n const options = uniq(this.options.filter(option => option !== ''))\n if (options.length < 2) {\n this.$emit('update-poll', { error: this.$t('polls.not_enough_options') })\n return\n }\n this.$emit('update-poll', {\n options,\n multiple: this.pollType === 'multiple',\n expiresIn\n })\n }\n }\n}\n","import { render } from \"./poll_form.vue?vue&type=template&id=24ea52c8\"\nimport script from \"./poll_form.js?vue&type=script&lang=js\"\nexport * from \"./poll_form.js?vue&type=script&lang=js\"\n\nimport \"./poll_form.vue?vue&type=style&index=0&id=24ea52c8&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import statusPoster from '../../services/status_poster/status_poster.service.js'\nimport MediaUpload from '../media_upload/media_upload.vue'\nimport ScopeSelector from '../scope_selector/scope_selector.vue'\nimport EmojiInput from '../emoji_input/emoji_input.vue'\nimport PollForm from '../poll/poll_form.vue'\nimport Attachment from '../attachment/attachment.vue'\nimport Gallery from 'src/components/gallery/gallery.vue'\nimport StatusContent from '../status_content/status_content.vue'\nimport fileTypeService from '../../services/file_type/file_type.service.js'\nimport { findOffset } from '../../services/offset_finder/offset_finder.service.js'\nimport { propsToNative } from '../../services/attributes_helper/attributes_helper.service.js'\nimport { reject, map, uniqBy, debounce } from 'lodash'\nimport suggestor from '../emoji_input/suggestor.js'\nimport { mapGetters, mapState } from 'vuex'\nimport Checkbox from '../checkbox/checkbox.vue'\nimport Select from '../select/select.vue'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faSmileBeam,\n faPollH,\n faUpload,\n faBan,\n faTimes,\n faCircleNotch\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faSmileBeam,\n faPollH,\n faUpload,\n faBan,\n faTimes,\n faCircleNotch\n)\n\nconst buildMentionsString = ({ user, attentions = [] }, currentUser) => {\n let allAttentions = [...attentions]\n\n allAttentions.unshift(user)\n\n allAttentions = uniqBy(allAttentions, 'id')\n allAttentions = reject(allAttentions, { id: currentUser.id })\n\n const mentions = map(allAttentions, (attention) => {\n return `@${attention.screen_name}`\n })\n\n return mentions.length > 0 ? mentions.join(' ') + ' ' : ''\n}\n\n// Converts a string with px to a number like '2px' -> 2\nconst pxStringToNumber = (str) => {\n return Number(str.substring(0, str.length - 2))\n}\n\nconst PostStatusForm = {\n props: [\n 'statusId',\n 'statusText',\n 'statusIsSensitive',\n 'statusPoll',\n 'statusFiles',\n 'statusMediaDescriptions',\n 'statusScope',\n 'statusContentType',\n 'replyTo',\n 'repliedUser',\n 'attentions',\n 'copyMessageScope',\n 'subject',\n 'disableSubject',\n 'disableScopeSelector',\n 'disableVisibilitySelector',\n 'disableNotice',\n 'disableLockWarning',\n 'disablePolls',\n 'disableSensitivityCheckbox',\n 'disableSubmit',\n 'disablePreview',\n 'placeholder',\n 'maxHeight',\n 'postHandler',\n 'preserveFocus',\n 'autoFocus',\n 'fileLimit',\n 'submitOnEnter',\n 'emojiPickerPlacement',\n 'optimisticPosting'\n ],\n emits: [\n 'posted',\n 'resize',\n 'mediaplay',\n 'mediapause'\n ],\n components: {\n MediaUpload,\n EmojiInput,\n PollForm,\n ScopeSelector,\n Checkbox,\n Select,\n Attachment,\n StatusContent,\n Gallery\n },\n mounted () {\n this.updateIdempotencyKey()\n this.resize(this.$refs.textarea)\n\n if (this.replyTo) {\n const textLength = this.$refs.textarea.value.length\n this.$refs.textarea.setSelectionRange(textLength, textLength)\n }\n\n if (this.replyTo || this.autoFocus) {\n this.$refs.textarea.focus()\n }\n },\n data () {\n const preset = this.$route.query.message\n let statusText = preset || ''\n\n const { scopeCopy } = this.$store.getters.mergedConfig\n\n if (this.replyTo) {\n const currentUser = this.$store.state.users.currentUser\n statusText = buildMentionsString({ user: this.repliedUser, attentions: this.attentions }, currentUser)\n }\n\n const scope = ((this.copyMessageScope && scopeCopy) || this.copyMessageScope === 'direct')\n ? this.copyMessageScope\n : this.$store.state.users.currentUser.default_scope\n\n const { postContentType: contentType, sensitiveByDefault } = this.$store.getters.mergedConfig\n\n let statusParams = {\n spoilerText: this.subject || '',\n status: statusText,\n nsfw: !!sensitiveByDefault,\n files: [],\n poll: {},\n mediaDescriptions: {},\n visibility: scope,\n contentType\n }\n\n if (this.statusId) {\n const statusContentType = this.statusContentType || contentType\n statusParams = {\n spoilerText: this.subject || '',\n status: this.statusText || '',\n nsfw: this.statusIsSensitive || !!sensitiveByDefault,\n files: this.statusFiles || [],\n poll: this.statusPoll || {},\n mediaDescriptions: this.statusMediaDescriptions || {},\n visibility: this.statusScope || scope,\n contentType: statusContentType,\n quoting: false\n }\n }\n\n return {\n randomSeed: `${Math.random()}`.replace('.', '-'),\n dropFiles: [],\n uploadingFiles: false,\n error: null,\n posting: false,\n highlighted: 0,\n newStatus: statusParams,\n caret: 0,\n pollFormVisible: false,\n showDropIcon: 'hide',\n dropStopTimeout: null,\n preview: null,\n previewLoading: false,\n emojiInputShown: false,\n idempotencyKey: ''\n }\n },\n computed: {\n users () {\n return this.$store.state.users.users\n },\n userDefaultScope () {\n return this.$store.state.users.currentUser.default_scope\n },\n showAllScopes () {\n return !this.mergedConfig.minimalScopesMode\n },\n emojiUserSuggestor () {\n return suggestor({\n emoji: [\n ...this.$store.getters.standardEmojiList,\n ...this.$store.state.instance.customEmoji\n ],\n store: this.$store\n })\n },\n emojiSuggestor () {\n return suggestor({\n emoji: [\n ...this.$store.getters.standardEmojiList,\n ...this.$store.state.instance.customEmoji\n ]\n })\n },\n emoji () {\n return this.$store.getters.standardEmojiList || []\n },\n customEmoji () {\n return this.$store.state.instance.customEmoji || []\n },\n statusLength () {\n return this.newStatus.status.length\n },\n spoilerTextLength () {\n return this.newStatus.spoilerText.length\n },\n statusLengthLimit () {\n return this.$store.state.instance.textlimit\n },\n hasStatusLengthLimit () {\n return this.statusLengthLimit > 0\n },\n charactersLeft () {\n return this.statusLengthLimit - (this.statusLength + this.spoilerTextLength)\n },\n isOverLengthLimit () {\n return this.hasStatusLengthLimit && (this.charactersLeft < 0)\n },\n minimalScopesMode () {\n return this.$store.state.instance.minimalScopesMode\n },\n alwaysShowSubject () {\n return this.mergedConfig.alwaysShowSubjectInput\n },\n postFormats () {\n return this.$store.state.instance.postFormats || []\n },\n safeDMEnabled () {\n return this.$store.state.instance.safeDM\n },\n pollsAvailable () {\n return this.$store.state.instance.pollsAvailable &&\n this.$store.state.instance.pollLimits.max_options >= 2 &&\n this.disablePolls !== true\n },\n hideScopeNotice () {\n return this.disableNotice || this.$store.getters.mergedConfig.hideScopeNotice\n },\n pollContentError () {\n return this.pollFormVisible &&\n this.newStatus.poll &&\n this.newStatus.poll.error\n },\n showPreview () {\n return !this.disablePreview && (!!this.preview || this.previewLoading)\n },\n emptyStatus () {\n return this.newStatus.status.trim() === '' && this.newStatus.files.length === 0\n },\n uploadFileLimitReached () {\n return this.newStatus.files.length >= this.fileLimit\n },\n isEdit () {\n return typeof this.statusId !== 'undefined' && this.statusId.trim() !== ''\n },\n quotable () {\n if (!this.$store.state.instance.quotingAvailable) {\n return false\n }\n\n if (!this.replyTo) {\n return false\n }\n\n const repliedStatus = this.$store.state.statuses.allStatusesObject[this.replyTo]\n if (!repliedStatus) {\n return false\n }\n\n if (repliedStatus.visibility === 'public' ||\n repliedStatus.visibility === 'unlisted' ||\n repliedStatus.visibility === 'local') {\n return true\n } else if (repliedStatus.visibility === 'private') {\n return repliedStatus.user.id === this.$store.state.users.currentUser.id\n }\n\n return false\n },\n ...mapGetters(['mergedConfig']),\n ...mapState({\n mobileLayout: state => state.interface.mobileLayout\n })\n },\n watch: {\n newStatus: {\n deep: true,\n handler () {\n this.statusChanged()\n }\n }\n },\n methods: {\n statusChanged () {\n this.autoPreview()\n this.updateIdempotencyKey()\n },\n clearStatus () {\n const newStatus = this.newStatus\n this.newStatus = {\n status: '',\n spoilerText: '',\n files: [],\n visibility: newStatus.visibility,\n contentType: newStatus.contentType,\n poll: {},\n mediaDescriptions: {},\n quoting: false\n }\n this.pollFormVisible = false\n this.$refs.mediaUpload && this.$refs.mediaUpload.clearFile()\n this.clearPollForm()\n if (this.preserveFocus) {\n this.$nextTick(() => {\n this.$refs.textarea.focus()\n })\n }\n const el = this.$el.querySelector('textarea')\n el.style.height = 'auto'\n el.style.height = undefined\n this.error = null\n if (this.preview) this.previewStatus()\n },\n async postStatus (event, newStatus, opts = {}) {\n if (this.posting && !this.optimisticPosting) { return }\n if (this.disableSubmit) { return }\n if (this.emojiInputShown) { return }\n if (this.submitOnEnter) {\n event.stopPropagation()\n event.preventDefault()\n }\n\n if (this.optimisticPosting && (this.emptyStatus || this.isOverLengthLimit)) { return }\n\n if (this.emptyStatus) {\n this.error = this.$t('post_status.empty_status_error')\n return\n }\n\n const poll = this.pollFormVisible ? this.newStatus.poll : {}\n if (this.pollContentError) {\n this.error = this.pollContentError\n return\n }\n\n this.posting = true\n\n try {\n await this.setAllMediaDescriptions()\n } catch (e) {\n this.error = this.$t('post_status.media_description_error')\n this.posting = false\n return\n }\n\n const replyOrQuoteAttr = newStatus.quoting ? 'quoteId' : 'inReplyToStatusId'\n\n const postingOptions = {\n status: newStatus.status,\n spoilerText: newStatus.spoilerText || null,\n visibility: newStatus.visibility,\n sensitive: newStatus.nsfw,\n media: newStatus.files,\n store: this.$store,\n [replyOrQuoteAttr]: this.replyTo,\n contentType: newStatus.contentType,\n poll,\n idempotencyKey: this.idempotencyKey\n }\n\n const postHandler = this.postHandler ? this.postHandler : statusPoster.postStatus\n\n postHandler(postingOptions).then((data) => {\n if (!data.error) {\n this.clearStatus()\n this.$emit('posted', data)\n } else {\n this.error = data.error\n }\n this.posting = false\n })\n },\n previewStatus () {\n if (this.emptyStatus && this.newStatus.spoilerText.trim() === '') {\n this.preview = { error: this.$t('post_status.preview_empty') }\n this.previewLoading = false\n return\n }\n const newStatus = this.newStatus\n this.previewLoading = true\n const replyOrQuoteAttr = newStatus.quoting ? 'quoteId' : 'inReplyToStatusId'\n statusPoster.postStatus({\n status: newStatus.status,\n spoilerText: newStatus.spoilerText || null,\n visibility: newStatus.visibility,\n sensitive: newStatus.nsfw,\n media: [],\n store: this.$store,\n [replyOrQuoteAttr]: this.replyTo,\n contentType: newStatus.contentType,\n poll: {},\n preview: true\n }).then((data) => {\n // Don't apply preview if not loading, because it means\n // user has closed the preview manually.\n if (!this.previewLoading) return\n if (!data.error) {\n this.preview = data\n } else {\n this.preview = { error: data.error }\n }\n }).catch((error) => {\n this.preview = { error }\n }).finally(() => {\n this.previewLoading = false\n })\n },\n debouncePreviewStatus: debounce(function () { this.previewStatus() }, 500),\n autoPreview () {\n if (!this.preview) return\n this.previewLoading = true\n this.debouncePreviewStatus()\n },\n closePreview () {\n this.preview = null\n this.previewLoading = false\n },\n togglePreview () {\n if (this.showPreview) {\n this.closePreview()\n } else {\n this.previewStatus()\n }\n },\n addMediaFile (fileInfo) {\n this.newStatus.files.push(fileInfo)\n this.$emit('resize', { delayed: true })\n },\n removeMediaFile (fileInfo) {\n const index = this.newStatus.files.indexOf(fileInfo)\n this.newStatus.files.splice(index, 1)\n this.$emit('resize')\n },\n editAttachment (fileInfo, newText) {\n this.newStatus.mediaDescriptions[fileInfo.id] = newText\n },\n shiftUpMediaFile (fileInfo) {\n const { files } = this.newStatus\n const index = this.newStatus.files.indexOf(fileInfo)\n files.splice(index, 1)\n files.splice(index - 1, 0, fileInfo)\n },\n shiftDnMediaFile (fileInfo) {\n const { files } = this.newStatus\n const index = this.newStatus.files.indexOf(fileInfo)\n files.splice(index, 1)\n files.splice(index + 1, 0, fileInfo)\n },\n uploadFailed (errString, templateArgs) {\n templateArgs = templateArgs || {}\n this.error = this.$t('upload.error.base') + ' ' + this.$t('upload.error.' + errString, templateArgs)\n },\n startedUploadingFiles () {\n this.uploadingFiles = true\n },\n finishedUploadingFiles () {\n this.$emit('resize')\n this.uploadingFiles = false\n },\n type (fileInfo) {\n return fileTypeService.fileType(fileInfo.mimetype)\n },\n paste (e) {\n this.autoPreview()\n this.resize(e)\n if (e.clipboardData.files.length > 0) {\n // prevent pasting of file as text\n e.preventDefault()\n // Strangely, files property gets emptied after event propagation\n // Trying to wrap it in array doesn't work. Plus I doubt it's possible\n // to hold more than one file in clipboard.\n this.dropFiles = [e.clipboardData.files[0]]\n }\n },\n fileDrop (e) {\n if (e.dataTransfer && e.dataTransfer.types.includes('Files')) {\n e.preventDefault() // allow dropping text like before\n this.dropFiles = e.dataTransfer.files\n clearTimeout(this.dropStopTimeout)\n this.showDropIcon = 'hide'\n }\n },\n fileDragStop (e) {\n // The false-setting is done with delay because just using leave-events\n // directly caused unwanted flickering, this is not perfect either but\n // much less noticable.\n clearTimeout(this.dropStopTimeout)\n this.showDropIcon = 'fade'\n this.dropStopTimeout = setTimeout(() => (this.showDropIcon = 'hide'), 500)\n },\n fileDrag (e) {\n e.dataTransfer.dropEffect = this.uploadFileLimitReached ? 'none' : 'copy'\n if (e.dataTransfer && e.dataTransfer.types.includes('Files')) {\n clearTimeout(this.dropStopTimeout)\n this.showDropIcon = 'show'\n }\n },\n onEmojiInputInput (e) {\n this.$nextTick(() => {\n this.resize(this.$refs.textarea)\n })\n },\n resize (e) {\n const target = e.target || e\n if (!(target instanceof window.Element)) { return }\n\n // Reset to default height for empty form, nothing else to do here.\n if (target.value === '') {\n target.style.height = null\n this.$emit('resize')\n return\n }\n\n const formRef = this.$refs.form\n const bottomRef = this.$refs.bottom\n /* Scroller is either `window` (replies in TL), sidebar (main post form,\n * replies in notifs) or mobile post form. Note that getting and setting\n * scroll is different for `Window` and `Element`s\n */\n const bottomBottomPaddingStr = window.getComputedStyle(bottomRef)['padding-bottom']\n const bottomBottomPadding = pxStringToNumber(bottomBottomPaddingStr)\n\n const scrollerRef = this.$el.closest('.column.-scrollable') ||\n this.$el.closest('.post-form-modal-view') ||\n window\n\n // Getting info about padding we have to account for, removing 'px' part\n const topPaddingStr = window.getComputedStyle(target)['padding-top']\n const bottomPaddingStr = window.getComputedStyle(target)['padding-bottom']\n const topPadding = pxStringToNumber(topPaddingStr)\n const bottomPadding = pxStringToNumber(bottomPaddingStr)\n const vertPadding = topPadding + bottomPadding\n\n const oldHeight = pxStringToNumber(target.style.height)\n\n /* Explanation:\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight\n * scrollHeight returns element's scrollable content height, i.e. visible\n * element + overscrolled parts of it. We use it to determine when text\n * inside the textarea exceeded its height, so we can set height to prevent\n * overscroll, i.e. make textarea grow with the text. HOWEVER, since we\n * explicitly set new height, scrollHeight won't go below that, so we can't\n * SHRINK the textarea when there's extra space. To workaround that we set\n * height to 'auto' which makes textarea tiny again, so that scrollHeight\n * will match text height again. HOWEVER, shrinking textarea can screw with\n * the scroll since there might be not enough padding around form-bottom to even\n * warrant a scroll, so it will jump to 0 and refuse to move anywhere,\n * so we check current scroll position before shrinking and then restore it\n * with needed delta.\n */\n\n // this part has to be BEFORE the content size update\n const currentScroll = scrollerRef === window\n ? scrollerRef.scrollY\n : scrollerRef.scrollTop\n const scrollerHeight = scrollerRef === window\n ? scrollerRef.innerHeight\n : scrollerRef.offsetHeight\n const scrollerBottomBorder = currentScroll + scrollerHeight\n\n // BEGIN content size update\n target.style.height = 'auto'\n const heightWithoutPadding = Math.floor(target.scrollHeight - vertPadding)\n let newHeight = this.maxHeight ? Math.min(heightWithoutPadding, this.maxHeight) : heightWithoutPadding\n // This is a bit of a hack to combat target.scrollHeight being different on every other input\n // on some browsers for whatever reason. Don't change the height if difference is 1px or less.\n if (Math.abs(newHeight - oldHeight) <= 1) {\n newHeight = oldHeight\n }\n target.style.height = `${newHeight}px`\n this.$emit('resize', newHeight)\n // END content size update\n\n // We check where the bottom border of form-bottom element is, this uses findOffset\n // to find offset relative to scrollable container (scroller)\n const bottomBottomBorder = bottomRef.offsetHeight + findOffset(bottomRef, scrollerRef).top + bottomBottomPadding\n\n const isBottomObstructed = scrollerBottomBorder < bottomBottomBorder\n const isFormBiggerThanScroller = scrollerHeight < formRef.offsetHeight\n const bottomChangeDelta = bottomBottomBorder - scrollerBottomBorder\n // The intention is basically this;\n // Keep form-bottom always visible so that submit button is in view EXCEPT\n // if form element bigger than scroller and caret isn't at the end, so that\n // if you scroll up and edit middle of text you won't get scrolled back to bottom\n const shouldScrollToBottom = isBottomObstructed &&\n !(isFormBiggerThanScroller &&\n this.$refs.textarea.selectionStart !== this.$refs.textarea.value.length)\n const totalDelta = shouldScrollToBottom ? bottomChangeDelta : 0\n const targetScroll = Math.round(currentScroll + totalDelta)\n\n if (scrollerRef === window) {\n scrollerRef.scroll(0, targetScroll)\n } else {\n scrollerRef.scrollTop = targetScroll\n }\n },\n showEmojiPicker () {\n this.$refs.textarea.focus()\n this.$refs['emoji-input'].triggerShowPicker()\n },\n clearError () {\n this.error = null\n },\n changeVis (visibility) {\n this.newStatus.visibility = visibility\n },\n togglePollForm () {\n this.pollFormVisible = !this.pollFormVisible\n },\n setPoll (poll) {\n this.newStatus.poll = poll\n },\n clearPollForm () {\n if (this.$refs.pollForm) {\n this.$refs.pollForm.clear()\n }\n },\n dismissScopeNotice () {\n this.$store.dispatch('setOption', { name: 'hideScopeNotice', value: true })\n },\n setMediaDescription (id) {\n const description = this.newStatus.mediaDescriptions[id]\n if (!description || description.trim() === '') return\n return statusPoster.setMediaDescription({ store: this.$store, id, description })\n },\n setAllMediaDescriptions () {\n const ids = this.newStatus.files.map(file => file.id)\n return Promise.all(ids.map(id => this.setMediaDescription(id)))\n },\n handleEmojiInputShow (value) {\n this.emojiInputShown = value\n },\n updateIdempotencyKey () {\n this.idempotencyKey = Date.now().toString()\n },\n openProfileTab () {\n this.$store.dispatch('openSettingsModalTab', 'profile')\n },\n propsToNative (props) {\n return propsToNative(props)\n }\n }\n}\n\nexport default PostStatusForm\n","import { render } from \"./post_status_form.vue?vue&type=template&id=59414186\"\nimport script from \"./post_status_form.js?vue&type=script&lang=js\"\nexport * from \"./post_status_form.js?vue&type=script&lang=js\"\n\nimport \"./post_status_form.vue?vue&type=style&index=0&id=59414186&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<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","import { render } from \"./progress_button.vue?vue&type=template&id=9f751ae6\"\nimport script from \"./progress_button.vue?vue&type=script&lang=js\"\nexport * from \"./progress_button.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"remote-follow\">\n <form\n method=\"POST\"\n :action=\"subscribeUrl\"\n >\n <input\n type=\"hidden\"\n name=\"nickname\"\n :value=\"user.screen_name\"\n >\n <input\n type=\"hidden\"\n name=\"profile\"\n value=\"\"\n >\n <button\n click=\"submit\"\n class=\"button-default remote-button\"\n >\n {{ $t('user_card.remote_follow') }}\n </button>\n </form>\n </div>\n</template>\n\n<script src=\"./remote_follow.js\"></script>\n\n<style lang=\"scss\">\n.remote-follow {\n max-width: 220px;\n\n .remote-button {\n width: 100%;\n min-height: 2em;\n }\n}\n</style>\n","export default {\n props: ['user'],\n computed: {\n subscribeUrl () {\n // eslint-disable-next-line no-undef\n const serverUrl = new URL(this.user.statusnet_profile_url)\n return `${serverUrl.protocol}//${serverUrl.host}/main/ostatus`\n }\n }\n}\n","import { render } from \"./remote_follow.vue?vue&type=template&id=2aed8421\"\nimport script from \"./remote_follow.js?vue&type=script&lang=js\"\nexport * from \"./remote_follow.js?vue&type=script&lang=js\"\n\nimport \"./remote_follow.vue?vue&type=style&index=0&id=2aed8421&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n v-if=\"!showNothing\"\n class=\"ScopeSelector\"\n >\n <button\n v-if=\"showDirect\"\n class=\"button-unstyled scope\"\n :class=\"css.direct\"\n :title=\"$t('post_status.scope.direct')\"\n type=\"button\"\n @click=\"changeVis('direct')\"\n >\n <FAIcon\n icon=\"envelope\"\n class=\"fa-scale-110 fa-old-padding\"\n />\n </button>\n {{ ' ' }}\n <button\n v-if=\"showPrivate\"\n class=\"button-unstyled scope\"\n :class=\"css.private\"\n :title=\"$t('post_status.scope.private')\"\n type=\"button\"\n @click=\"changeVis('private')\"\n >\n <FAIcon\n icon=\"lock\"\n class=\"fa-scale-110 fa-old-padding\"\n />\n </button>\n {{ ' ' }}\n <button\n v-if=\"showUnlisted\"\n class=\"button-unstyled scope\"\n :class=\"css.unlisted\"\n :title=\"$t('post_status.scope.unlisted')\"\n type=\"button\"\n @click=\"changeVis('unlisted')\"\n >\n <FAIcon\n icon=\"lock-open\"\n class=\"fa-scale-110 fa-old-padding\"\n />\n </button>\n {{ ' ' }}\n <button\n v-if=\"showPublic\"\n class=\"button-unstyled scope\"\n :class=\"css.public\"\n :title=\"$t('post_status.scope.public')\"\n type=\"button\"\n @click=\"changeVis('public')\"\n >\n <FAIcon\n icon=\"globe\"\n class=\"fa-scale-110 fa-old-padding\"\n />\n </button>\n </div>\n</template>\n\n<script src=\"./scope_selector.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.ScopeSelector {\n .scope {\n display: inline-block;\n cursor: pointer;\n min-width: 1.3em;\n min-height: 1.3em;\n text-align: center;\n\n &.selected svg {\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n }\n }\n}\n</style>\n","import { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faEnvelope,\n faLock,\n faLockOpen,\n faGlobe\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faEnvelope,\n faGlobe,\n faLock,\n faLockOpen\n)\n\nconst ScopeSelector = {\n props: [\n 'showAll',\n 'userDefault',\n 'originalScope',\n 'initialScope',\n 'onScopeChange'\n ],\n data () {\n return {\n currentScope: this.initialScope\n }\n },\n computed: {\n showNothing () {\n return !this.showPublic && !this.showUnlisted && !this.showPrivate && !this.showDirect\n },\n showPublic () {\n return this.originalScope !== 'direct' && this.shouldShow('public')\n },\n 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","import { render } from \"./scope_selector.vue?vue&type=template&id=3b2dbc9a\"\nimport script from \"./scope_selector.js?vue&type=script&lang=js\"\nexport * from \"./scope_selector.js?vue&type=script&lang=js\"\n\nimport \"./scope_selector.vue?vue&type=style&index=0&id=3b2dbc9a&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faChevronDown\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faChevronDown\n)\n\nexport default {\n emits: ['update:modelValue'],\n props: [\n 'modelValue',\n 'disabled',\n 'unstyled',\n 'kind',\n 'attrs'\n ]\n}\n","import { render } from \"./select.vue?vue&type=template&id=1f77c9b6\"\nimport script from \"./select.js?vue&type=script&lang=js\"\nexport * from \"./select.js?vue&type=script&lang=js\"\n\nimport \"./select.vue?vue&type=style&index=0&id=1f77c9b6&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <label\n class=\"Select input\"\n :class=\"{ disabled, unstyled }\"\n >\n <select\n :disabled=\"disabled\"\n :value=\"modelValue\"\n v-bind=\"attrs\"\n @change=\"$emit('update:modelValue', $event.target.value)\"\n >\n <slot />\n </select>\n {{ ' ' }}\n <FAIcon\n class=\"select-down-icon\"\n icon=\"chevron-down\"\n />\n </label>\n</template>\n\n<script src=\"./select.js\"> </script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n/* TODO fix order of styles */\nlabel.Select {\n padding: 0;\n\n select {\n appearance: none;\n background: transparent;\n border: none;\n color: $fallback--text;\n color: var(--inputText, --text, $fallback--text);\n margin: 0;\n padding: 0 2em 0 0.2em;\n font-family: sans-serif;\n font-family: var(--inputFont, sans-serif);\n font-size: 1em;\n width: 100%;\n z-index: 1;\n height: 2em;\n line-height: 16px;\n }\n\n .select-down-icon {\n position: absolute;\n top: 0;\n bottom: 0;\n right: 5px;\n height: 100%;\n width: 0.875em;\n color: $fallback--text;\n color: var(--inputText, $fallback--text);\n line-height: 2;\n z-index: 0;\n pointer-events: none;\n }\n}\n</style>\n","<template>\n <div\n v-if=\"!hideStatus\"\n ref=\"root\"\n class=\"Status\"\n :class=\"[{ '-focused': isFocused }, { '-conversation': inlineExpanded }]\"\n >\n <div\n v-if=\"error\"\n class=\"alert error\"\n >\n {{ error }}\n <span\n class=\"fa-scale-110 fa-old-padding\"\n @click=\"clearError\"\n >\n <FAIcon icon=\"times\" />\n </span>\n </div>\n <template v-if=\"muted && !isPreview\">\n <div class=\"status-container muted\">\n <small class=\"status-username\">\n <FAIcon\n v-if=\"muted && retweet\"\n class=\"fa-scale-110 fa-old-padding repeat-icon\"\n icon=\"retweet\"\n />\n <user-link\n :user=\"status.user\"\n :at=\"false\"\n />\n </small>\n <small\n v-if=\"showReasonMutedThread\"\n class=\"mute-thread\"\n >\n {{ $t('status.thread_muted') }}\n </small>\n <small\n v-if=\"showReasonMutedThread && muteWordHits.length > 0\"\n class=\"mute-thread\"\n >\n {{ $t('status.thread_muted_and_words') }}\n </small>\n <small\n class=\"mute-words\"\n :title=\"muteWordHits.join(', ')\"\n >\n {{ muteWordHits.join(', ') }}\n </small>\n <button\n class=\"unmute button-unstyled\"\n @click.prevent=\"toggleMute\"\n >\n <FAIcon\n icon=\"eye-slash\"\n class=\"fa-scale-110 fa-old-padding\"\n />\n </button>\n </div>\n </template>\n <template v-else>\n <div\n v-if=\"showPinned\"\n class=\"pin\"\n >\n <FAIcon\n icon=\"thumbtack\"\n class=\"faint\"\n />\n <span class=\"faint\">{{ $t('status.pinned') }}</span>\n </div>\n <div\n v-if=\"retweet && !noHeading && !inConversation\"\n :class=\"[repeaterClass, { highlighted: repeaterStyle }]\"\n :style=\"[repeaterStyle]\"\n class=\"status-container repeat-info\"\n >\n <UserAvatar\n v-if=\"retweet\"\n class=\"left-side repeater-avatar\"\n :bot=\"rtBotIndicator\"\n :better-shadow=\"betterShadow\"\n :user=\"statusoid.user\"\n />\n <div class=\"right-side faint\">\n <bdi\n class=\"status-username repeater-name\"\n :title=\"retweeter\"\n >\n <router-link\n v-if=\"retweeterHtml\"\n :to=\"retweeterProfileLink\"\n >\n <RichContent\n :html=\"retweeterHtml\"\n :emoji=\"retweeterUser.emoji\"\n />\n </router-link>\n <router-link\n v-else\n :to=\"retweeterProfileLink\"\n >{{ retweeter }}</router-link>\n </bdi>\n {{ ' ' }}\n <FAIcon\n icon=\"retweet\"\n class=\"repeat-icon\"\n :title=\"$t('tool_tip.repeat')\"\n />\n {{ $t('timeline.repeated') }}\n </div>\n </div>\n\n <div\n v-if=\"!deleted\"\n :class=\"[userClass, { highlighted: userStyle, '-repeat': retweet && !inConversation }]\"\n :style=\"[ userStyle ]\"\n class=\"status-container\"\n :data-tags=\"tags\"\n >\n <div\n v-if=\"!noHeading\"\n class=\"left-side\"\n >\n <a\n :href=\"$router.resolve(userProfileLink).href\"\n @click.prevent\n >\n <UserPopover\n :user-id=\"status.user.id\"\n :overlay-centers=\"true\"\n >\n <UserAvatar\n class=\"post-avatar\"\n :bot=\"botIndicator\"\n :compact=\"compact\"\n :better-shadow=\"betterShadow\"\n :user=\"status.user\"\n />\n </UserPopover>\n </a>\n </div>\n <div class=\"right-side\">\n <div\n v-if=\"!noHeading\"\n class=\"status-heading\"\n >\n <div class=\"heading-name-row\">\n <div class=\"heading-left\">\n <h4\n v-if=\"status.user.name_html\"\n class=\"status-username\"\n :title=\"status.user.name\"\n >\n <RichContent\n :html=\"status.user.name\"\n :emoji=\"status.user.emoji\"\n />\n </h4>\n <h4\n v-else\n class=\"status-username\"\n :title=\"status.user.name\"\n >\n {{ status.user.name }}\n </h4>\n <user-link\n class=\"account-name\"\n :title=\"status.user.screen_name_ui\"\n :user=\"status.user\"\n :at=\"false\"\n />\n <img\n v-if=\"!!(status.user && status.user.favicon)\"\n class=\"status-favicon\"\n :src=\"status.user.favicon\"\n >\n </div>\n\n <span class=\"heading-right\">\n <router-link\n class=\"timeago faint-link\"\n :to=\"{ name: 'conversation', params: { id: status.id } }\"\n >\n <Timeago\n :time=\"status.created_at\"\n :auto-update=\"60\"\n />\n </router-link>\n <span\n v-if=\"status.visibility\"\n class=\"visibility-icon\"\n :title=\"visibilityLocalized\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110\"\n :icon=\"visibilityIcon(status.visibility)\"\n />\n </span>\n <button\n v-if=\"expandable && !isPreview\"\n class=\"button-unstyled\"\n :title=\"$t('status.expand')\"\n @click.prevent=\"toggleExpanded\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110\"\n icon=\"plus-square\"\n />\n </button>\n <button\n v-if=\"unmuted\"\n class=\"button-unstyled\"\n @click.prevent=\"toggleMute\"\n >\n <FAIcon\n fixed-width\n icon=\"eye-slash\"\n class=\"fa-scale-110\"\n />\n </button>\n <button\n v-if=\"inThreadForest && replies && replies.length && !simpleTree\"\n class=\"button-unstyled\"\n :title=\"threadShowing ? $t('status.thread_hide') : $t('status.thread_show')\"\n :aria-expanded=\"threadShowing ? 'true' : 'false'\"\n @click.prevent=\"toggleThreadDisplay\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110\"\n :icon=\"threadShowing ? 'chevron-up' : 'chevron-down'\"\n />\n </button>\n <button\n v-if=\"dive && !simpleTree\"\n class=\"button-unstyled\"\n :title=\"$t('status.show_only_conversation_under_this')\"\n @click.prevent=\"dive\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110\"\n :icon=\"'angle-double-right'\"\n />\n </button>\n </span>\n </div>\n <div\n v-if=\"isReply || hasMentionsLine\"\n class=\"heading-reply-row\"\n >\n <span\n v-if=\"isReply\"\n class=\"glued-label reply-glued-label\"\n >\n <StatusPopover\n v-if=\"!isPreview\"\n :status-id=\"status.parent_visible && status.in_reply_to_status_id\"\n class=\"reply-to-popover\"\n style=\"min-width: 0;\"\n :class=\"{ '-strikethrough': !status.parent_visible }\"\n >\n <button\n class=\"button-unstyled reply-to\"\n :aria-label=\"$t('tool_tip.reply')\"\n @click.prevent=\"gotoOriginal(status.in_reply_to_status_id)\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"reply\"\n flip=\"horizontal\"\n />\n {{ ' ' }}\n <span\n class=\"reply-to-text\"\n >\n {{ $t('status.reply_to') }}\n </span>\n </button>\n </StatusPopover>\n\n <span\n v-else\n class=\"reply-to-no-popover\"\n >\n <span class=\"reply-to-text\">{{ $t('status.reply_to') }}</span>\n </span>\n <MentionLink\n :content=\"replyToName\"\n :url=\"replyProfileLink\"\n :user-id=\"status.in_reply_to_user_id\"\n :user-screen-name=\"status.in_reply_to_screen_name\"\n />\n </span>\n\n <!-- This little wrapper is made for sole purpose of \"gluing\" -->\n <!-- \"Mentions\" label to the first mention -->\n <span\n v-if=\"hasMentionsLine\"\n class=\"glued-label\"\n >\n <span\n class=\"mentions\"\n :aria-label=\"$t('tool_tip.mentions')\"\n @click.prevent=\"gotoOriginal(status.in_reply_to_status_id)\"\n >\n <span\n class=\"mentions-text\"\n >\n {{ $t('status.mentions') }}\n </span>\n </span>\n <MentionsLine\n v-if=\"hasMentionsLine\"\n :mentions=\"mentionsLine.slice(0, 1)\"\n class=\"mentions-line-first\"\n />\n </span>\n {{ ' ' }}\n <MentionsLine\n v-if=\"hasMentionsLine\"\n :mentions=\"mentionsLine.slice(1)\"\n class=\"mentions-line\"\n />\n </div>\n <div\n v-if=\"isEdited && editingAvailable && !isPreview\"\n class=\"heading-edited-row\"\n >\n <i18n-t\n keypath=\"status.edited_at\"\n tag=\"span\"\n >\n <template #time>\n <Timeago\n template-key=\"time.in_past\"\n :time=\"status.edited_at\"\n :auto-update=\"60\"\n :long-format=\"true\"\n />\n </template>\n </i18n-t>\n </div>\n </div>\n\n <StatusContent\n ref=\"content\"\n :status=\"status\"\n :no-heading=\"noHeading\"\n :highlight=\"highlight\"\n :focused=\"isFocused\"\n :controlled-showing-tall=\"controlledShowingTall\"\n :controlled-expanding-subject=\"controlledExpandingSubject\"\n :controlled-showing-long-subject=\"controlledShowingLongSubject\"\n :controlled-toggle-showing-tall=\"controlledToggleShowingTall\"\n :controlled-toggle-expanding-subject=\"controlledToggleExpandingSubject\"\n :controlled-toggle-showing-long-subject=\"controlledToggleShowingLongSubject\"\n @mediaplay=\"addMediaPlaying($event)\"\n @mediapause=\"removeMediaPlaying($event)\"\n @parseReady=\"setHeadTailLinks\"\n />\n\n <article\n v-if=\"hasVisibleQuote\"\n class=\"quoted-status\"\n >\n <button\n class=\"button-unstyled -link display-quoted-status-button\"\n :aria-expanded=\"shouldDisplayQuote\"\n @click=\"toggleDisplayQuote\"\n >\n {{ shouldDisplayQuote ? $t('status.hide_quote') : $t('status.display_quote') }}\n <FAIcon\n class=\"display-quoted-status-button-icon\"\n :icon=\"shouldDisplayQuote ? 'chevron-up' : 'chevron-down'\"\n />\n </button>\n <Status\n v-if=\"shouldDisplayQuote\"\n :statusoid=\"quotedStatus\"\n :in-quote=\"true\"\n />\n </article>\n <p\n v-else-if=\"hasInvisibleQuote\"\n class=\"quoted-status -unavailable-prompt\"\n >\n <i18n-t keypath=\"status.invisible_quote\">\n <template #link>\n <bdi>\n <a\n :href=\"status.quote_url\"\n target=\"_blank\"\n >\n {{ status.quote_url }}\n </a>\n </bdi>\n </template>\n </i18n-t>\n </p>\n\n <div\n v-if=\"inConversation && !isPreview && replies && replies.length\"\n class=\"replies\"\n >\n <button\n v-if=\"showOtherRepliesAsButton && replies.length > 1\"\n class=\"button-unstyled -link faint\"\n :title=\"$tc('status.ancestor_follow', replies.length - 1, { numReplies: replies.length - 1 })\"\n @click.prevent=\"dive\"\n >\n {{ $tc('status.replies_list_with_others', replies.length - 1, { numReplies: replies.length - 1 }) }}\n </button>\n <span\n v-else\n class=\"faint\"\n >\n {{ $t('status.replies_list') }}\n </span>\n <StatusPopover\n v-for=\"reply in replies\"\n :key=\"reply.id\"\n :status-id=\"reply.id\"\n >\n <button\n class=\"button-unstyled -link reply-link\"\n @click.prevent=\"gotoOriginal(reply.id)\"\n >\n {{ reply.name }}\n </button>\n </StatusPopover>\n </div>\n\n <transition name=\"fade\">\n <div\n v-if=\"!hidePostStats && isFocused && combinedFavsAndRepeatsUsers.length > 0\"\n class=\"favs-repeated-users\"\n >\n <div class=\"stats\">\n <UserListPopover\n v-if=\"statusFromGlobalRepository.rebloggedBy && statusFromGlobalRepository.rebloggedBy.length > 0\"\n :users=\"statusFromGlobalRepository.rebloggedBy\"\n >\n <div class=\"stat-count\">\n <a class=\"stat-title\">{{ $t('status.repeats') }}</a>\n <div class=\"stat-number\">\n {{ statusFromGlobalRepository.rebloggedBy.length }}\n </div>\n </div>\n </UserListPopover>\n <UserListPopover\n v-if=\"statusFromGlobalRepository.favoritedBy && statusFromGlobalRepository.favoritedBy.length > 0\"\n :users=\"statusFromGlobalRepository.favoritedBy\"\n >\n <div\n class=\"stat-count\"\n >\n <a class=\"stat-title\">{{ $t('status.favorites') }}</a>\n <div class=\"stat-number\">\n {{ statusFromGlobalRepository.favoritedBy.length }}\n </div>\n </div>\n </UserListPopover>\n <div class=\"avatar-row\">\n <AvatarList :users=\"combinedFavsAndRepeatsUsers\" />\n </div>\n </div>\n </div>\n </transition>\n\n <EmojiReactions\n v-if=\"(mergedConfig.emojiReactionsOnTimeline || isFocused) && (!noHeading && !isPreview)\"\n :status=\"status\"\n />\n\n <div\n v-if=\"!noHeading && !isPreview\"\n class=\"status-actions\"\n >\n <reply-button\n :replying=\"replying\"\n :status=\"status\"\n @toggle=\"toggleReplying\"\n />\n <retweet-button\n :visibility=\"status.visibility\"\n :logged-in=\"loggedIn\"\n :status=\"status\"\n />\n <favorite-button\n :logged-in=\"loggedIn\"\n :status=\"status\"\n />\n <ReactButton\n v-if=\"loggedIn\"\n :status=\"status\"\n />\n <extra-buttons\n :status=\"status\"\n @onError=\"showError\"\n @onSuccess=\"clearError\"\n />\n </div>\n </div>\n </div>\n <div\n v-else\n class=\"gravestone\"\n >\n <div class=\"left-side\">\n <UserAvatar\n class=\"post-avatar\"\n :compact=\"compact\"\n :bot=\"botIndicator\"\n />\n </div>\n <div class=\"right-side\">\n <div class=\"deleted-text\">\n {{ $t('status.status_deleted') }}\n </div>\n <reply-button\n v-if=\"replying\"\n :replying=\"replying\"\n :status=\"status\"\n @toggle=\"toggleReplying\"\n />\n </div>\n </div>\n <div\n v-if=\"replying\"\n class=\"status-container reply-form\"\n >\n <PostStatusForm\n class=\"reply-body\"\n :reply-to=\"status.id\"\n :attentions=\"status.attentions\"\n :replied-user=\"status.user\"\n :copy-message-scope=\"status.visibility\"\n :subject=\"replySubject\"\n @posted=\"toggleReplying\"\n />\n </div>\n </template>\n </div>\n</template>\n\n<script src=\"./status.js\"></script>\n\n<style src=\"./status.scss\" lang=\"scss\"></style>\n","<template>\n <div class=\"ReplyButton\">\n <button\n v-if=\"loggedIn\"\n class=\"button-unstyled interactive\"\n :class=\"{'-active': replying}\"\n :title=\"$t('tool_tip.reply')\"\n @click.prevent=\"$emit('toggle')\"\n >\n <FALayers class=\"fa-old-padding-layer\">\n <FAIcon\n class=\"fa-scale-110\"\n icon=\"reply\"\n />\n <FAIcon\n v-if=\"!replying\"\n class=\"focus-marker\"\n transform=\"shrink-6 up-8 right-11\"\n icon=\"plus\"\n />\n <FAIcon\n v-else\n class=\"focus-marker\"\n transform=\"shrink-6 up-8 right-11\"\n icon=\"times\"\n />\n </FALayers>\n </button>\n <a\n v-else\n class=\"button-unstyled interactive\"\n target=\"_blank\"\n role=\"button\"\n :href=\"remoteInteractionLink\"\n :title=\"$t('tool_tip.reply')\"\n >\n <FALayers class=\"fa-old-padding-layer\">\n <FAIcon\n class=\"fa-scale-110\"\n icon=\"reply\"\n />\n <FAIcon\n v-if=\"!replying\"\n class=\"focus-marker\"\n transform=\"shrink-6 up-8 right-16\"\n icon=\"plus\"\n />\n </FALayers>\n </a>\n <span\n v-if=\"status.replies_count > 0\"\n class=\"action-counter\"\n >\n {{ status.replies_count }}\n </span>\n </div>\n</template>\n\n<script src=\"./reply_button.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n@import \"../../mixins\";\n\n.ReplyButton {\n display: flex;\n\n > :first-child {\n padding: 10px;\n margin: -10px -8px -10px -10px;\n }\n\n .action-counter {\n pointer-events: none;\n user-select: none;\n }\n\n .interactive {\n &:hover .svg-inline--fa,\n &.-active .svg-inline--fa {\n color: $fallback--cBlue;\n color: var(--cBlue, $fallback--cBlue);\n }\n\n @include unfocused-style {\n .focus-marker {\n visibility: hidden;\n }\n }\n\n @include focused-style {\n .focus-marker {\n visibility: visible;\n }\n }\n }\n}\n</style>\n","import { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faReply,\n faPlus,\n faTimes\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faReply,\n faPlus,\n faTimes\n)\n\nconst ReplyButton = {\n name: 'ReplyButton',\n props: ['status', 'replying'],\n computed: {\n loggedIn () {\n return !!this.$store.state.users.currentUser\n },\n remoteInteractionLink () {\n return this.$store.getters.remoteInteractionLink({ statusId: this.status.id })\n }\n }\n}\n\nexport default ReplyButton\n","import { render } from \"./reply_button.vue?vue&type=template&id=a7dc5ddc\"\nimport script from \"./reply_button.js?vue&type=script&lang=js\"\nexport * from \"./reply_button.js?vue&type=script&lang=js\"\n\nimport \"./reply_button.vue?vue&type=style&index=0&id=a7dc5ddc&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"FavoriteButton\">\n <button\n v-if=\"loggedIn\"\n class=\"button-unstyled interactive\"\n :class=\"status.favorited && '-favorited'\"\n :title=\"$t('tool_tip.favorite')\"\n @click.prevent=\"favorite()\"\n >\n <FALayers class=\"fa-scale-110 fa-old-padding-layer\">\n <FAIcon\n class=\"fa-scale-110\"\n :icon=\"[status.favorited ? 'fas' : 'far', 'star']\"\n :spin=\"animated\"\n />\n <FAIcon\n v-if=\"status.favorited\"\n class=\"active-marker\"\n transform=\"shrink-6 up-9 right-12\"\n icon=\"check\"\n />\n <FAIcon\n v-if=\"!status.favorited\"\n class=\"focus-marker\"\n transform=\"shrink-6 up-9 right-12\"\n icon=\"plus\"\n />\n <FAIcon\n v-else\n class=\"focus-marker\"\n transform=\"shrink-6 up-9 right-12\"\n icon=\"minus\"\n />\n </FALayers>\n </button>\n <a\n v-else\n class=\"button-unstyled interactive\"\n target=\"_blank\"\n role=\"button\"\n :title=\"$t('tool_tip.favorite')\"\n :href=\"remoteInteractionLink\"\n >\n <FALayers class=\"fa-scale-110 fa-old-padding-layer\">\n <FAIcon\n class=\"fa-scale-110\"\n :icon=\"['far', 'star']\"\n />\n <FAIcon\n class=\"focus-marker\"\n transform=\"shrink-6 up-9 right-12\"\n icon=\"plus\"\n />\n </FALayers>\n </a>\n <span\n v-if=\"!mergedConfig.hidePostStats && status.fave_num > 0\"\n class=\"action-counter\"\n >\n {{ status.fave_num }}\n </span>\n </div>\n</template>\n\n<script src=\"./favorite_button.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n@import \"../../mixins\";\n\n.FavoriteButton {\n display: flex;\n\n > :first-child {\n padding: 10px;\n margin: -10px -8px -10px -10px;\n }\n\n .action-counter {\n pointer-events: none;\n user-select: none;\n }\n\n .interactive {\n .svg-inline--fa {\n animation-duration: 0.6s;\n }\n\n &:hover .svg-inline--fa,\n &.-favorited .svg-inline--fa {\n color: $fallback--cOrange;\n color: var(--cOrange, $fallback--cOrange);\n }\n\n @include unfocused-style {\n .focus-marker {\n visibility: hidden;\n }\n\n .active-marker {\n visibility: visible;\n }\n }\n\n @include focused-style {\n .focus-marker {\n visibility: visible;\n }\n\n .active-marker {\n visibility: hidden;\n }\n }\n }\n}\n</style>\n","import { mapGetters } from 'vuex'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faStar,\n faPlus,\n faMinus,\n faCheck\n} from '@fortawesome/free-solid-svg-icons'\nimport {\n faStar as faStarRegular\n} from '@fortawesome/free-regular-svg-icons'\n\nlibrary.add(\n faStar,\n faStarRegular,\n faPlus,\n faMinus,\n faCheck\n)\n\nconst FavoriteButton = {\n props: ['status', 'loggedIn'],\n data () {\n return {\n animated: false\n }\n },\n methods: {\n favorite () {\n if (!this.status.favorited) {\n this.$store.dispatch('favorite', { id: this.status.id })\n } else {\n this.$store.dispatch('unfavorite', { id: this.status.id })\n }\n this.animated = true\n setTimeout(() => {\n this.animated = false\n }, 500)\n }\n },\n computed: {\n ...mapGetters(['mergedConfig']),\n remoteInteractionLink () {\n return this.$store.getters.remoteInteractionLink({ statusId: this.status.id })\n }\n }\n}\n\nexport default FavoriteButton\n","import { render } from \"./favorite_button.vue?vue&type=template&id=195db34e\"\nimport script from \"./favorite_button.js?vue&type=script&lang=js\"\nexport * from \"./favorite_button.js?vue&type=script&lang=js\"\n\nimport \"./favorite_button.vue?vue&type=style&index=0&id=195db34e&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <span class=\"ReactButton\">\n <EmojiPicker\n ref=\"picker\"\n :enable-sticker-picker=\"enableStickerPicker\"\n :hide-custom-emoji=\"hideCustomEmoji\"\n class=\"emoji-picker-panel\"\n @emoji=\"addReaction\"\n @show=\"onShow\"\n @close=\"onClose\"\n />\n <span\n class=\"button-unstyled popover-trigger\"\n :title=\"$t('tool_tip.add_reaction')\"\n @click.stop.prevent=\"show\"\n >\n <FALayers>\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n :icon=\"['far', 'smile-beam']\"\n />\n <FAIcon\n v-show=\"!expanded\"\n class=\"focus-marker\"\n transform=\"shrink-6 up-9 right-17\"\n icon=\"plus\"\n />\n <FAIcon\n v-show=\"expanded\"\n class=\"focus-marker\"\n transform=\"shrink-6 up-9 right-17\"\n icon=\"times\"\n />\n </FALayers>\n </span>\n </span>\n</template>\n\n<script src=\"./react_button.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n@import \"../../mixins\";\n\n.ReactButton {\n .reaction-picker-filter {\n padding: 0.5em;\n display: flex;\n\n input {\n flex: 1;\n }\n }\n\n .reaction-picker-divider {\n height: 1px;\n width: 100%;\n margin: 0.5em;\n background-color: var(--border, $fallback--border);\n }\n\n .reaction-picker {\n width: 10em;\n height: 9em;\n font-size: 1.5em;\n overflow-y: scroll;\n display: flex;\n flex-wrap: wrap;\n padding: 0.5em;\n text-align: center;\n align-content: flex-start;\n user-select: none;\n mask:\n linear-gradient(to top, white 0, transparent 100%) bottom no-repeat,\n linear-gradient(to bottom, white 0, transparent 100%) top no-repeat,\n linear-gradient(to top, white, white);\n transition: mask-size 150ms;\n mask-size: 100% 20px, 100% 20px, auto;\n\n /* Autoprefixed seem to ignore this one, and also syntax is different */\n mask-composite: xor;\n mask-composite: exclude;\n\n .emoji-button {\n cursor: pointer;\n flex-basis: 20%;\n line-height: 1.5;\n align-content: center;\n\n &:hover {\n transform: scale(1.25);\n }\n }\n }\n\n .popover-trigger {\n padding: 10px;\n margin: -10px;\n\n &:hover .svg-inline--fa {\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n\n @include unfocused-style {\n .focus-marker {\n visibility: hidden;\n }\n }\n\n @include focused-style {\n .focus-marker {\n visibility: visible;\n }\n }\n }\n}\n\n</style>\n","import Popover from '../popover/popover.vue'\nimport EmojiPicker from '../emoji_picker/emoji_picker.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faPlus, faTimes } from '@fortawesome/free-solid-svg-icons'\nimport { faSmileBeam } from '@fortawesome/free-regular-svg-icons'\n\nlibrary.add(\n faPlus,\n faTimes,\n faSmileBeam\n)\n\nconst ReactButton = {\n props: ['status'],\n data () {\n return {\n filterWord: '',\n expanded: false\n }\n },\n components: {\n Popover,\n EmojiPicker\n },\n methods: {\n addReaction (event) {\n const emoji = event.insertion\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 },\n show () {\n if (!this.expanded) {\n this.$refs.picker.showPicker()\n }\n },\n onShow () {\n this.expanded = true\n },\n onClose () {\n this.expanded = false\n }\n },\n computed: {\n hideCustomEmoji () {\n return !this.$store.state.instance.pleromaCustomEmojiReactionsAvailable\n }\n }\n}\n\nexport default ReactButton\n","import { render } from \"./react_button.vue?vue&type=template&id=7d5cd4d4\"\nimport script from \"./react_button.js?vue&type=script&lang=js\"\nexport * from \"./react_button.js?vue&type=script&lang=js\"\n\nimport \"./react_button.vue?vue&type=style&index=0&id=7d5cd4d4&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"RetweetButton\">\n <button\n v-if=\"visibility !== 'private' && visibility !== 'direct' && loggedIn\"\n class=\"button-unstyled interactive\"\n :class=\"status.repeated && '-repeated'\"\n :title=\"$t('tool_tip.repeat')\"\n @click.prevent=\"retweet()\"\n >\n <FALayers class=\"fa-old-padding-layer\">\n <FAIcon\n class=\"fa-scale-110\"\n icon=\"retweet\"\n :spin=\"animated\"\n />\n <FAIcon\n v-if=\"status.repeated\"\n class=\"active-marker\"\n transform=\"shrink-6 up-9 right-12\"\n icon=\"check\"\n />\n <FAIcon\n v-if=\"!status.repeated\"\n class=\"focus-marker\"\n transform=\"shrink-6 up-9 right-12\"\n icon=\"plus\"\n />\n <FAIcon\n v-else\n class=\"focus-marker\"\n transform=\"shrink-6 up-9 right-12\"\n icon=\"minus\"\n />\n </FALayers>\n </button>\n <span v-else-if=\"loggedIn\">\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"lock\"\n :title=\"$t('timeline.no_retweet_hint')\"\n />\n </span>\n <a\n v-else\n class=\"button-unstyled interactive\"\n target=\"_blank\"\n role=\"button\"\n :title=\"$t('tool_tip.repeat')\"\n :href=\"remoteInteractionLink\"\n >\n <FALayers class=\"fa-old-padding-layer\">\n <FAIcon\n class=\"fa-scale-110\"\n icon=\"retweet\"\n />\n <FAIcon\n class=\"focus-marker\"\n transform=\"shrink-6 up-9 right-12\"\n icon=\"plus\"\n />\n </FALayers>\n </a>\n <span\n v-if=\"!mergedConfig.hidePostStats && status.repeat_num > 0\"\n class=\"no-event\"\n >\n {{ status.repeat_num }}\n </span>\n <teleport to=\"#modal\">\n <confirm-modal\n v-if=\"showingConfirmDialog\"\n :title=\"$t('status.repeat_confirm_title')\"\n :confirm-text=\"$t('status.repeat_confirm_accept_button')\"\n :cancel-text=\"$t('status.repeat_confirm_cancel_button')\"\n @accepted=\"doRetweet\"\n @cancelled=\"hideConfirmDialog\"\n >\n {{ $t('status.repeat_confirm') }}\n </confirm-modal>\n </teleport>\n </div>\n</template>\n\n<script src=\"./retweet_button.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n@import \"../../mixins\";\n\n.RetweetButton {\n display: flex;\n\n > :first-child {\n padding: 10px;\n margin: -10px -8px -10px -10px;\n }\n\n .action-counter {\n pointer-events: none;\n user-select: none;\n }\n\n .interactive {\n .svg-inline--fa {\n animation-duration: 0.6s;\n }\n\n &:hover .svg-inline--fa,\n &.-repeated .svg-inline--fa {\n color: $fallback--cGreen;\n color: var(--cGreen, $fallback--cGreen);\n }\n\n @include unfocused-style {\n .focus-marker {\n visibility: hidden;\n }\n\n .active-marker {\n visibility: visible;\n }\n }\n\n @include focused-style {\n .focus-marker {\n visibility: visible;\n }\n\n .active-marker {\n visibility: hidden;\n }\n }\n }\n}\n</style>\n","import ConfirmModal from '../confirm_modal/confirm_modal.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faRetweet,\n faPlus,\n faMinus,\n faCheck\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faRetweet,\n faPlus,\n faMinus,\n faCheck\n)\n\nconst RetweetButton = {\n props: ['status', 'loggedIn', 'visibility'],\n components: {\n ConfirmModal\n },\n data () {\n return {\n animated: false,\n showingConfirmDialog: false\n }\n },\n methods: {\n retweet () {\n if (!this.status.repeated && this.shouldConfirmRepeat) {\n this.showConfirmDialog()\n } else {\n this.doRetweet()\n }\n },\n doRetweet () {\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 this.hideConfirmDialog()\n },\n showConfirmDialog () {\n this.showingConfirmDialog = true\n },\n hideConfirmDialog () {\n this.showingConfirmDialog = false\n }\n },\n computed: {\n mergedConfig () {\n return this.$store.getters.mergedConfig\n },\n remoteInteractionLink () {\n return this.$store.getters.remoteInteractionLink({ statusId: this.status.id })\n },\n shouldConfirmRepeat () {\n return this.mergedConfig.modalOnRepeat\n }\n }\n}\n\nexport default RetweetButton\n","import { render } from \"./retweet_button.vue?vue&type=template&id=3a6122b4\"\nimport script from \"./retweet_button.js?vue&type=script&lang=js\"\nexport * from \"./retweet_button.js?vue&type=script&lang=js\"\n\nimport \"./retweet_button.vue?vue&type=style&index=0&id=3a6122b4&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Popover\n class=\"ExtraButtons\"\n trigger=\"click\"\n placement=\"top\"\n :offset=\"{ y: 5 }\"\n :bound-to=\"{ x: 'container' }\"\n remove-padding\n @show=\"onShow\"\n @close=\"onClose\"\n >\n <template #content=\"{close}\">\n <div class=\"dropdown-menu\">\n <button\n v-if=\"canMute && !status.thread_muted\"\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click.prevent=\"muteConversation\"\n >\n <FAIcon\n fixed-width\n icon=\"eye-slash\"\n /><span>{{ $t(\"status.mute_conversation\") }}</span>\n </button>\n <button\n v-if=\"canMute && status.thread_muted\"\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click.prevent=\"unmuteConversation\"\n >\n <FAIcon\n fixed-width\n icon=\"eye-slash\"\n /><span>{{ $t(\"status.unmute_conversation\") }}</span>\n </button>\n <button\n v-if=\"!status.pinned && canPin\"\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click.prevent=\"pinStatus\"\n @click=\"close\"\n >\n <FAIcon\n fixed-width\n icon=\"thumbtack\"\n /><span>{{ $t(\"status.pin\") }}</span>\n </button>\n <button\n v-if=\"status.pinned && canPin\"\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click.prevent=\"unpinStatus\"\n @click=\"close\"\n >\n <FAIcon\n fixed-width\n icon=\"thumbtack\"\n /><span>{{ $t(\"status.unpin\") }}</span>\n </button>\n <template v-if=\"canBookmark\">\n <button\n v-if=\"!status.bookmarked\"\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click.prevent=\"bookmarkStatus\"\n @click=\"close\"\n >\n <FAIcon\n fixed-width\n :icon=\"['far', 'bookmark']\"\n /><span>{{ $t(\"status.bookmark\") }}</span>\n </button>\n <button\n v-if=\"status.bookmarked\"\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click.prevent=\"unbookmarkStatus\"\n @click=\"close\"\n >\n <FAIcon\n fixed-width\n icon=\"bookmark\"\n /><span>{{ $t(\"status.unbookmark\") }}</span>\n </button>\n </template>\n <button\n v-if=\"ownStatus && editingAvailable\"\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click.prevent=\"editStatus\"\n @click=\"close\"\n >\n <FAIcon\n fixed-width\n icon=\"pen\"\n /><span>{{ $t(\"status.edit\") }}</span>\n </button>\n <button\n v-if=\"isEdited && editingAvailable\"\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click.prevent=\"showStatusHistory\"\n @click=\"close\"\n >\n <FAIcon\n fixed-width\n icon=\"history\"\n /><span>{{ $t(\"status.status_history\") }}</span>\n </button>\n <button\n v-if=\"canDelete\"\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click.prevent=\"deleteStatus\"\n @click=\"close\"\n >\n <FAIcon\n fixed-width\n icon=\"times\"\n /><span>{{ $t(\"status.delete\") }}</span>\n </button>\n <button\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click.prevent=\"copyLink\"\n @click=\"close\"\n >\n <FAIcon\n fixed-width\n icon=\"share-alt\"\n /><span>{{ $t(\"status.copy_link\") }}</span>\n </button>\n <a\n v-if=\"!status.is_local\"\n class=\"button-default dropdown-item dropdown-item-icon\"\n title=\"Source\"\n :href=\"status.external_url\"\n target=\"_blank\"\n >\n <FAIcon\n fixed-width\n icon=\"external-link-alt\"\n /><span>{{ $t(\"status.external_source\") }}</span>\n </a>\n <button\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click.prevent=\"reportStatus\"\n @click=\"close\"\n >\n <FAIcon\n fixed-width\n :icon=\"['far', 'flag']\"\n /><span>{{ $t(\"user_card.report\") }}</span>\n </button>\n </div>\n </template>\n <template #trigger>\n <span class=\"button-unstyled popover-trigger\">\n <FALayers class=\"fa-old-padding-layer\">\n <FAIcon\n class=\"fa-scale-110 \"\n icon=\"ellipsis-h\"\n />\n <FAIcon\n v-show=\"!expanded\"\n class=\"focus-marker\"\n transform=\"shrink-6 up-8 right-16\"\n icon=\"plus\"\n />\n <FAIcon\n v-show=\"expanded\"\n class=\"focus-marker\"\n transform=\"shrink-6 up-8 right-16\"\n icon=\"times\"\n />\n </FALayers>\n </span>\n <teleport to=\"#modal\">\n <ConfirmModal\n v-if=\"showingDeleteDialog\"\n :title=\"$t('status.delete_confirm_title')\"\n :cancel-text=\"$t('status.delete_confirm_cancel_button')\"\n :confirm-text=\"$t('status.delete_confirm_accept_button')\"\n @cancelled=\"hideDeleteStatusConfirmDialog\"\n @accepted=\"doDeleteStatus\"\n >\n {{ $t('status.delete_confirm') }}\n </ConfirmModal>\n </teleport>\n </template>\n </Popover>\n</template>\n\n<script src=\"./extra_buttons.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n@import \"../../mixins\";\n\n.ExtraButtons {\n .popover-trigger {\n position: static;\n padding: 10px;\n margin: -10px;\n\n &:hover .svg-inline--fa {\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n }\n\n .popover-trigger-button {\n /* override of popover internal stuff */\n width: auto;\n\n @include unfocused-style {\n .focus-marker {\n visibility: hidden;\n }\n }\n\n @include focused-style {\n .focus-marker {\n visibility: visible;\n }\n }\n }\n}\n</style>\n","import Popover from '../popover/popover.vue'\nimport ConfirmModal from '../confirm_modal/confirm_modal.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faEllipsisH,\n faBookmark,\n faEyeSlash,\n faThumbtack,\n faShareAlt,\n faExternalLinkAlt,\n faHistory,\n faPlus,\n faTimes\n} from '@fortawesome/free-solid-svg-icons'\nimport {\n faBookmark as faBookmarkReg,\n faFlag\n} from '@fortawesome/free-regular-svg-icons'\n\nlibrary.add(\n faEllipsisH,\n faBookmark,\n faBookmarkReg,\n faEyeSlash,\n faThumbtack,\n faShareAlt,\n faExternalLinkAlt,\n faFlag,\n faHistory,\n faPlus,\n faTimes\n)\n\nconst ExtraButtons = {\n props: ['status'],\n components: {\n Popover,\n ConfirmModal\n },\n data () {\n return {\n expanded: false,\n showingDeleteDialog: false\n }\n },\n methods: {\n onShow () {\n this.expanded = true\n },\n onClose () {\n this.expanded = false\n },\n deleteStatus () {\n if (this.shouldConfirmDelete) {\n this.showDeleteStatusConfirmDialog()\n } else {\n this.doDeleteStatus()\n }\n },\n doDeleteStatus () {\n this.$store.dispatch('deleteStatus', { id: this.status.id })\n this.hideDeleteStatusConfirmDialog()\n },\n showDeleteStatusConfirmDialog () {\n this.showingDeleteDialog = true\n },\n hideDeleteStatusConfirmDialog () {\n this.showingDeleteDialog = false\n },\n pinStatus () {\n this.$store.dispatch('pinStatus', this.status.id)\n .then(() => this.$emit('onSuccess'))\n .catch(err => this.$emit('onError', err.error.error))\n },\n unpinStatus () {\n this.$store.dispatch('unpinStatus', this.status.id)\n .then(() => this.$emit('onSuccess'))\n .catch(err => this.$emit('onError', err.error.error))\n },\n muteConversation () {\n this.$store.dispatch('muteConversation', this.status.id)\n .then(() => this.$emit('onSuccess'))\n .catch(err => this.$emit('onError', err.error.error))\n },\n unmuteConversation () {\n this.$store.dispatch('unmuteConversation', this.status.id)\n .then(() => this.$emit('onSuccess'))\n .catch(err => this.$emit('onError', err.error.error))\n },\n copyLink () {\n navigator.clipboard.writeText(this.statusLink)\n .then(() => this.$emit('onSuccess'))\n .catch(err => this.$emit('onError', err.error.error))\n },\n bookmarkStatus () {\n this.$store.dispatch('bookmark', { id: this.status.id })\n .then(() => this.$emit('onSuccess'))\n .catch(err => this.$emit('onError', err.error.error))\n },\n unbookmarkStatus () {\n this.$store.dispatch('unbookmark', { id: this.status.id })\n .then(() => this.$emit('onSuccess'))\n .catch(err => this.$emit('onError', err.error.error))\n },\n reportStatus () {\n this.$store.dispatch('openUserReportingModal', { userId: this.status.user.id, statusIds: [this.status.id] })\n },\n editStatus () {\n this.$store.dispatch('fetchStatusSource', { id: this.status.id })\n .then(data => this.$store.dispatch('openEditStatusModal', {\n statusId: this.status.id,\n subject: data.spoiler_text,\n statusText: data.text,\n statusIsSensitive: this.status.nsfw,\n statusPoll: this.status.poll,\n statusFiles: [...this.status.attachments],\n visibility: this.status.visibility,\n statusContentType: data.content_type\n }))\n },\n showStatusHistory () {\n const originalStatus = { ...this.status }\n const stripFieldsList = ['attachments', 'created_at', 'emojis', 'text', 'raw_html', 'nsfw', 'poll', 'summary', 'summary_raw_html']\n stripFieldsList.forEach(p => delete originalStatus[p])\n this.$store.dispatch('openStatusHistoryModal', originalStatus)\n }\n },\n computed: {\n currentUser () { return this.$store.state.users.currentUser },\n canDelete () {\n if (!this.currentUser) { return }\n return this.currentUser.privileges.includes('messages_delete') || 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 canBookmark () {\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 isEdited () {\n return this.status.edited_at !== null\n },\n editingAvailable () { return this.$store.state.instance.editingAvailable },\n shouldConfirmDelete () {\n return this.$store.getters.mergedConfig.modalOnDelete\n }\n }\n}\n\nexport default ExtraButtons\n","import { render } from \"./extra_buttons.vue?vue&type=template&id=6fcf5bb3\"\nimport script from \"./extra_buttons.js?vue&type=script&lang=js\"\nexport * from \"./extra_buttons.js?vue&type=script&lang=js\"\n\nimport \"./extra_buttons.vue?vue&type=style&index=0&id=6fcf5bb3&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Popover\n ref=\"popover\"\n trigger=\"hover\"\n :stay-on-click=\"true\"\n popover-class=\"popover-default status-popover\"\n :bound-to=\"{ x: 'container' }\"\n @show=\"enter\"\n >\n <template #trigger>\n <slot />\n </template>\n <template #content>\n <Status\n v-if=\"status\"\n :is-preview=\"true\"\n :statusoid=\"status\"\n :compact=\"true\"\n />\n <div\n v-else-if=\"error\"\n class=\"status-preview-no-content faint\"\n >\n {{ $t('status.status_unavailable') }}\n </div>\n <div\n v-else\n class=\"status-preview-no-content\"\n >\n <FAIcon\n icon=\"circle-notch\"\n spin\n size=\"2x\"\n />\n </div>\n </template>\n </Popover>\n</template>\n\n<script src=\"./status_popover.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n/* popover styles load on-demand, so we need to override */\n.status-popover.popover {\n font-size: 1rem;\n min-width: 15em;\n max-width: 95%;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n border-style: solid;\n border-width: 1px;\n border-radius: $fallback--tooltipRadius;\n border-radius: var(--tooltipRadius, $fallback--tooltipRadius);\n\n /* TODO cleanup this */\n .Status.Status {\n border: none;\n }\n\n .status-preview-no-content {\n padding: 1em;\n text-align: center;\n\n i {\n font-size: 2em;\n }\n }\n}\n\n</style>\n","import { find } from 'lodash'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faCircleNotch } from '@fortawesome/free-solid-svg-icons'\nimport { defineAsyncComponent } from 'vue'\n\nlibrary.add(\n faCircleNotch\n)\n\nconst StatusPopover = {\n name: 'StatusPopover',\n props: [\n 'statusId'\n ],\n data () {\n return {\n error: false\n }\n },\n computed: {\n status () {\n return find(this.$store.state.statuses.allStatuses, { id: this.statusId })\n }\n },\n components: {\n Status: defineAsyncComponent(() => import('../status/status.vue')),\n Popover: defineAsyncComponent(() => import('../popover/popover.vue'))\n },\n methods: {\n enter () {\n if (!this.status) {\n if (!this.statusId) {\n this.error = true\n return\n }\n this.$store.dispatch('fetchStatus', this.statusId)\n .then(data => (this.error = false))\n .catch(e => (this.error = true))\n }\n }\n },\n watch: {\n status (newStatus, oldStatus) {\n if (newStatus !== oldStatus) {\n this.$nextTick(() => this.$refs.popover.updateStyles())\n }\n }\n }\n}\n\nexport default StatusPopover\n","import { render } from \"./status_popover.vue?vue&type=template&id=0c237860\"\nimport script from \"./status_popover.js?vue&type=script&lang=js\"\nexport * from \"./status_popover.js?vue&type=script&lang=js\"\n\nimport \"./status_popover.vue?vue&type=style&index=0&id=0c237860&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Popover\n trigger=\"hover\"\n placement=\"top\"\n :offset=\"{ y: 5 }\"\n >\n <template #trigger>\n <slot />\n </template>\n <template #content>\n <div class=\"user-list-popover\">\n <template v-if=\"users.length\">\n <div\n v-for=\"(user) in usersCapped\"\n :key=\"user.id\"\n class=\"user-list-row\"\n >\n <UserAvatar\n :user=\"user\"\n class=\"avatar-small\"\n :compact=\"true\"\n />\n <div class=\"user-list-names\">\n <!-- eslint-disable vue/no-v-html -->\n <RichContent\n class=\"username\"\n :title=\"'@'+user.screen_name_ui\"\n :html=\"user.name_html\"\n :emoji=\"user.emoji\"\n />\n <!-- eslint-enable vue/no-v-html -->\n <span class=\"user-list-screen-name\">{{ user.screen_name_ui }}</span><UnicodeDomainIndicator :user=\"user\" />\n </div>\n </div>\n </template>\n <template v-else>\n <FAIcon\n icon=\"circle-notch\"\n spin\n size=\"3x\"\n />\n </template>\n </div>\n </template>\n </Popover>\n</template>\n\n<script src=\"./user_list_popover.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.user-list-popover {\n padding: 0.5em;\n\n --emoji-size: 16px;\n\n .user-list-row {\n padding: 0.25em;\n display: flex;\n flex-direction: row;\n\n .user-list-names {\n display: flex;\n flex-direction: column;\n margin-left: 0.5em;\n min-width: 5em;\n\n img {\n width: 1em;\n height: 1em;\n }\n }\n\n .user-list-screen-name {\n font-size: 0.65em;\n }\n }\n}\n\n</style>\n","import { defineAsyncComponent } from 'vue'\nimport RichContent from 'src/components/rich_content/rich_content.jsx'\nimport UnicodeDomainIndicator from '../unicode_domain_indicator/unicode_domain_indicator.vue'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faCircleNotch } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCircleNotch\n)\n\nconst UserListPopover = {\n name: 'UserListPopover',\n props: [\n 'users'\n ],\n components: {\n RichContent,\n UnicodeDomainIndicator,\n Popover: defineAsyncComponent(() => import('../popover/popover.vue')),\n UserAvatar: defineAsyncComponent(() => import('../user_avatar/user_avatar.vue'))\n },\n computed: {\n usersCapped () {\n return this.users.slice(0, 16)\n }\n }\n}\n\nexport default UserListPopover\n","import { render } from \"./user_list_popover.vue?vue&type=template&id=6fc1c392\"\nimport script from \"./user_list_popover.js?vue&type=script&lang=js\"\nexport * from \"./user_list_popover.js?vue&type=script&lang=js\"\n\nimport \"./user_list_popover.vue?vue&type=style&index=0&id=6fc1c392&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"EmojiReactions\">\n <span\n v-for=\"(reaction) in emojiReactions\"\n :key=\"reaction.url || reaction.name\"\n class=\"emoji-reaction-container btn-group\"\n >\n <component\n :is=\"loggedIn ? 'button' : 'a'\"\n v-bind=\"!loggedIn ? { href: remoteInteractionLink } : {}\"\n role=\"button\"\n class=\"emoji-reaction btn button-default\"\n :class=\"{ '-picked-reaction': reactedWith(reaction.name) }\"\n :title=\"reaction.url ? reaction.name : undefined\"\n :aria-pressed=\"reactedWith(reaction.name)\"\n @click=\"emojiOnClick(reaction.name, $event)\"\n >\n <span\n class=\"reaction-emoji\"\n >\n <img\n v-if=\"reaction.url\"\n :src=\"reaction.url\"\n class=\"reaction-emoji-content\"\n width=\"1em\"\n >\n <span\n v-else\n class=\"reaction-emoji reaction-emoji-content\"\n >{{ reaction.name }}</span>\n </span>\n <FALayers>\n <FAIcon\n v-if=\"reactedWith(reaction.name)\"\n class=\"active-marker\"\n transform=\"shrink-6 up-9\"\n icon=\"check\"\n />\n <FAIcon\n v-if=\"!reactedWith(reaction.name)\"\n class=\"focus-marker\"\n transform=\"shrink-6 up-9\"\n icon=\"plus\"\n />\n <FAIcon\n v-else\n class=\"focus-marker\"\n transform=\"shrink-6 up-9\"\n icon=\"minus\"\n />\n </FALayers>\n </component>\n <UserListPopover\n :users=\"accountsForEmoji[reaction.name]\"\n class=\"emoji-reaction-popover\"\n :trigger-attrs=\"counterTriggerAttrs(reaction)\"\n @show=\"fetchEmojiReactionsByIfMissing()\"\n >\n <span class=\"emoji-reaction-counts\">{{ reaction.count }}</span>\n </UserListPopover>\n </span>\n <a\n v-if=\"tooManyReactions\"\n class=\"emoji-reaction-expand faint\"\n href=\"javascript:void(0)\"\n @click=\"toggleShowAll\"\n >\n {{ showAll ? $t('general.show_less') : showMoreString }}\n </a>\n </div>\n</template>\n\n<script src=\"./emoji_reactions.js\"></script>\n<style lang=\"scss\">\n@import \"../../variables\";\n@import \"../../mixins\";\n\n.EmojiReactions {\n display: flex;\n margin-top: 0.25em;\n flex-wrap: wrap;\n\n --emoji-size: calc(1.25em * var(--emojiReactionsScale, 1));\n\n .emoji-reaction-container {\n display: flex;\n align-items: stretch;\n margin-top: 0.5em;\n margin-right: 0.5em;\n\n .emoji-reaction-popover {\n padding: 0;\n\n .emoji-reaction-count-button {\n background-color: var(--btn);\n margin: 0;\n height: 100%;\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n box-sizing: border-box;\n min-width: 2em;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n color: $fallback--text;\n color: var(--btnText, $fallback--text);\n\n &.-picked-reaction {\n border: 1px solid var(--accent, $fallback--link);\n margin-right: -1px;\n }\n }\n }\n }\n\n .emoji-reaction {\n padding-left: 0.5em;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n margin: 0;\n\n .reaction-emoji {\n width: var(--emoji-size);\n height: var(--emoji-size);\n margin-right: 0.25em;\n line-height: var(--emoji-size);\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n .reaction-emoji-content {\n max-width: 100%;\n max-height: 100%;\n width: auto;\n height: auto;\n line-height: inherit;\n overflow: hidden;\n font-size: calc(var(--emoji-size) * 0.8);\n margin: 0;\n }\n\n &:focus {\n outline: none;\n }\n\n .svg-inline--fa {\n color: $fallback--text;\n color: var(--btnText, $fallback--text);\n }\n\n &.-picked-reaction {\n border: 1px solid var(--accent, $fallback--link);\n margin-left: -1px; // offset the border, can't use inset shadows either\n margin-right: -1px;\n\n .svg-inline--fa {\n color: $fallback--link;\n color: var(--accent, $fallback--link);\n }\n }\n\n @include unfocused-style {\n .focus-marker {\n visibility: hidden;\n }\n\n .active-marker {\n visibility: visible;\n }\n }\n\n @include focused-style {\n .svg-inline--fa {\n color: $fallback--link;\n color: var(--accent, $fallback--link);\n }\n\n .focus-marker {\n visibility: visible;\n }\n\n .active-marker {\n visibility: hidden;\n }\n }\n }\n\n .emoji-reaction-expand {\n padding: 0 0.5em;\n margin-right: 0.5em;\n margin-top: 0.5em;\n display: flex;\n align-items: center;\n justify-content: center;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n</style>\n","import UserAvatar from '../user_avatar/user_avatar.vue'\nimport UserListPopover from '../user_list_popover/user_list_popover.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faPlus,\n faMinus,\n faCheck\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faPlus,\n faMinus,\n faCheck\n)\n\nconst EMOJI_REACTION_COUNT_CUTOFF = 12\n\nconst EmojiReactions = {\n name: 'EmojiReactions',\n components: {\n UserAvatar,\n UserListPopover\n },\n props: ['status'],\n data: () => ({\n showAll: false\n }),\n computed: {\n tooManyReactions () {\n return this.status.emoji_reactions.length > EMOJI_REACTION_COUNT_CUTOFF\n },\n emojiReactions () {\n return this.showAll\n ? this.status.emoji_reactions\n : this.status.emoji_reactions.slice(0, EMOJI_REACTION_COUNT_CUTOFF)\n },\n showMoreString () {\n return `+${this.status.emoji_reactions.length - EMOJI_REACTION_COUNT_CUTOFF}`\n },\n accountsForEmoji () {\n return this.status.emoji_reactions.reduce((acc, reaction) => {\n acc[reaction.name] = reaction.accounts || []\n return acc\n }, {})\n },\n loggedIn () {\n return !!this.$store.state.users.currentUser\n },\n remoteInteractionLink () {\n return this.$store.getters.remoteInteractionLink({ statusId: this.status.id })\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 async fetchEmojiReactionsByIfMissing () {\n const hasNoAccounts = this.status.emoji_reactions.find(r => !r.accounts)\n if (hasNoAccounts) {\n return await 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 async emojiOnClick (emoji, event) {\n if (!this.loggedIn) return\n\n await this.fetchEmojiReactionsByIfMissing()\n if (this.reactedWith(emoji)) {\n this.unreact(emoji)\n } else {\n this.reactWith(emoji)\n }\n },\n counterTriggerAttrs (reaction) {\n return {\n class: [\n 'btn',\n 'button-default',\n 'emoji-reaction-count-button',\n { '-picked-reaction': this.reactedWith(reaction.name) }\n ],\n 'aria-label': this.$tc('status.reaction_count_label', reaction.count, { num: reaction.count })\n }\n }\n }\n}\n\nexport default EmojiReactions\n","import { render } from \"./emoji_reactions.vue?vue&type=template&id=4be841f8\"\nimport script from \"./emoji_reactions.js?vue&type=script&lang=js\"\nexport * from \"./emoji_reactions.js?vue&type=script&lang=js\"\n\nimport \"./emoji_reactions.vue?vue&type=style&index=0&id=4be841f8&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import ReplyButton from '../reply_button/reply_button.vue'\nimport FavoriteButton from '../favorite_button/favorite_button.vue'\nimport ReactButton from '../react_button/react_button.vue'\nimport RetweetButton from '../retweet_button/retweet_button.vue'\nimport ExtraButtons from '../extra_buttons/extra_buttons.vue'\nimport PostStatusForm from '../post_status_form/post_status_form.vue'\nimport UserAvatar from '../user_avatar/user_avatar.vue'\nimport AvatarList from '../avatar_list/avatar_list.vue'\nimport Timeago from '../timeago/timeago.vue'\nimport StatusContent from '../status_content/status_content.vue'\nimport RichContent from 'src/components/rich_content/rich_content.jsx'\nimport StatusPopover from '../status_popover/status_popover.vue'\nimport UserPopover from '../user_popover/user_popover.vue'\nimport UserListPopover from '../user_list_popover/user_list_popover.vue'\nimport EmojiReactions from '../emoji_reactions/emoji_reactions.vue'\nimport UserLink from '../user_link/user_link.vue'\nimport MentionsLine from 'src/components/mentions_line/mentions_line.vue'\nimport MentionLink from 'src/components/mention_link/mention_link.vue'\nimport generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\nimport { highlightClass, highlightStyle } from '../../services/user_highlighter/user_highlighter.js'\nimport { muteWordHits } from '../../services/status_parser/status_parser.js'\nimport { unescape, uniqBy } from 'lodash'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faEnvelope,\n faLock,\n faLockOpen,\n faGlobe,\n faTimes,\n faRetweet,\n faReply,\n faPlusSquare,\n faSmileBeam,\n faEllipsisH,\n faStar,\n faEyeSlash,\n faEye,\n faThumbtack,\n faChevronUp,\n faChevronDown,\n faAngleDoubleRight\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faEnvelope,\n faGlobe,\n faLock,\n faLockOpen,\n faTimes,\n faRetweet,\n faReply,\n faPlusSquare,\n faStar,\n faSmileBeam,\n faEllipsisH,\n faEyeSlash,\n faEye,\n faThumbtack,\n faChevronUp,\n faChevronDown,\n faAngleDoubleRight\n)\n\nconst camelCase = name => name.charAt(0).toUpperCase() + name.slice(1)\n\nconst controlledOrUncontrolledGetters = list => list.reduce((res, name) => {\n const camelized = camelCase(name)\n const toggle = `controlledToggle${camelized}`\n const controlledName = `controlled${camelized}`\n const uncontrolledName = `uncontrolled${camelized}`\n res[name] = function () {\n return ((this.$data[toggle] !== undefined || this.$props[toggle] !== undefined) && this[toggle]) ? this[controlledName] : this[uncontrolledName]\n }\n return res\n}, {})\n\nconst controlledOrUncontrolledToggle = (obj, name) => {\n const camelized = camelCase(name)\n const toggle = `controlledToggle${camelized}`\n const uncontrolledName = `uncontrolled${camelized}`\n if (obj[toggle]) {\n obj[toggle]()\n } else {\n obj[uncontrolledName] = !obj[uncontrolledName]\n }\n}\n\nconst controlledOrUncontrolledSet = (obj, name, val) => {\n const camelized = camelCase(name)\n const set = `controlledSet${camelized}`\n const uncontrolledName = `uncontrolled${camelized}`\n if (obj[set]) {\n obj[set](val)\n } else {\n obj[uncontrolledName] = val\n }\n}\n\nconst Status = {\n name: 'Status',\n components: {\n ReplyButton,\n FavoriteButton,\n ReactButton,\n RetweetButton,\n ExtraButtons,\n PostStatusForm,\n UserAvatar,\n AvatarList,\n Timeago,\n StatusPopover,\n UserListPopover,\n EmojiReactions,\n StatusContent,\n RichContent,\n MentionLink,\n MentionsLine,\n UserPopover,\n UserLink\n },\n props: [\n 'statusoid',\n 'expandable',\n 'inConversation',\n 'focused',\n 'highlight',\n 'compact',\n 'replies',\n 'isPreview',\n 'noHeading',\n 'inlineExpanded',\n 'showPinned',\n 'inProfile',\n 'profileUserId',\n 'inQuote',\n\n 'simpleTree',\n 'controlledThreadDisplayStatus',\n 'controlledToggleThreadDisplay',\n 'showOtherRepliesAsButton',\n\n 'controlledShowingTall',\n 'controlledToggleShowingTall',\n 'controlledExpandingSubject',\n 'controlledToggleExpandingSubject',\n 'controlledShowingLongSubject',\n 'controlledToggleShowingLongSubject',\n 'controlledReplying',\n 'controlledToggleReplying',\n 'controlledMediaPlaying',\n 'controlledSetMediaPlaying',\n 'dive'\n ],\n data () {\n return {\n uncontrolledReplying: false,\n unmuted: false,\n userExpanded: false,\n uncontrolledMediaPlaying: [],\n suspendable: true,\n error: null,\n headTailLinks: null,\n displayQuote: !this.inQuote\n }\n },\n computed: {\n ...controlledOrUncontrolledGetters(['replying', 'mediaPlaying']),\n muteWords () {\n return this.mergedConfig.muteWords\n },\n showReasonMutedThread () {\n return (\n this.status.thread_muted ||\n (this.status.reblog && this.status.reblog.thread_muted)\n ) && !this.inConversation\n },\n repeaterClass () {\n const user = this.statusoid.user\n return highlightClass(user)\n },\n userClass () {\n const user = this.retweet ? (this.statusoid.retweeted_status.user) : this.statusoid.user\n return highlightClass(user)\n },\n deleted () {\n return this.statusoid.deleted\n },\n repeaterStyle () {\n const user = this.statusoid.user\n const highlight = this.mergedConfig.highlight\n return highlightStyle(highlight[user.screen_name])\n },\n userStyle () {\n if (this.noHeading) return\n const user = this.retweet ? (this.statusoid.retweeted_status.user) : this.statusoid.user\n const highlight = this.mergedConfig.highlight\n return highlightStyle(highlight[user.screen_name])\n },\n userProfileLink () {\n return this.generateUserProfileLink(this.status.user.id, this.status.user.screen_name)\n },\n replyProfileLink () {\n if (this.isReply) {\n const user = this.$store.getters.findUser(this.status.in_reply_to_user_id)\n // FIXME Why user not found sometimes???\n return user ? user.statusnet_profile_url : 'NOT_FOUND'\n }\n },\n retweet () { return !!this.statusoid.retweeted_status },\n retweeterUser () { return this.statusoid.user },\n retweeter () { return this.statusoid.user.name || this.statusoid.user.screen_name_ui },\n retweeterHtml () { return this.statusoid.user.name },\n retweeterProfileLink () { return this.generateUserProfileLink(this.statusoid.user.id, this.statusoid.user.screen_name) },\n status () {\n if (this.retweet) {\n return this.statusoid.retweeted_status\n } else {\n return this.statusoid\n }\n },\n statusFromGlobalRepository () {\n // NOTE: Consider to replace status with statusFromGlobalRepository\n return this.$store.state.statuses.allStatusesObject[this.status.id]\n },\n loggedIn () {\n return !!this.currentUser\n },\n muteWordHits () {\n return muteWordHits(this.status, this.muteWords)\n },\n rtBotStatus () {\n return this.statusoid.user.bot\n },\n botStatus () {\n return this.status.user.bot\n },\n botIndicator () {\n return this.botStatus && !this.hideBotIndication\n },\n rtBotIndicator () {\n return this.rtBotStatus && !this.hideBotIndication\n },\n mentionsLine () {\n if (!this.headTailLinks) return []\n const writtenSet = new Set(this.headTailLinks.writtenMentions.map(_ => _.url))\n return this.status.attentions.filter(attn => {\n // no reply user\n return attn.id !== this.status.in_reply_to_user_id &&\n // no self-replies\n attn.statusnet_profile_url !== this.status.user.statusnet_profile_url &&\n // don't include if mentions is written\n !writtenSet.has(attn.statusnet_profile_url)\n }).map(attn => ({\n url: attn.statusnet_profile_url,\n content: attn.screen_name,\n userId: attn.id\n }))\n },\n hasMentionsLine () {\n return this.mentionsLine.length > 0\n },\n muted () {\n if (this.statusoid.user.id === this.currentUser.id) return false\n const reasonsToMute = this.userIsMuted ||\n // Thread is muted\n status.thread_muted ||\n // Wordfiltered\n this.muteWordHits.length > 0 ||\n // bot status\n (this.muteBotStatuses && this.botStatus && !this.compact)\n return !this.unmuted && !this.shouldNotMute && reasonsToMute\n },\n userIsMuted () {\n if (this.statusoid.user.id === this.currentUser.id) return false\n const { status } = this\n const { reblog } = status\n const relationship = this.$store.getters.relationship(status.user.id)\n const relationshipReblog = reblog && this.$store.getters.relationship(reblog.user.id)\n return status.muted ||\n // Reprööt of a muted post according to BE\n (reblog && reblog.muted) ||\n // Muted user\n relationship.muting ||\n // Muted user of a reprööt\n (relationshipReblog && relationshipReblog.muting)\n },\n shouldNotMute () {\n const { status } = this\n const { reblog } = status\n return (\n (\n this.inProfile && (\n // Don't mute user's posts on user timeline (except reblogs)\n (!reblog && status.user.id === this.profileUserId) ||\n // Same as above but also allow self-reblogs\n (reblog && reblog.user.id === this.profileUserId)\n )\n ) ||\n // Don't mute statuses in muted conversation when said conversation is opened\n (this.inConversation && status.thread_muted)\n // No excuses if post has muted words\n ) && !this.muteWordHits.length > 0\n },\n hideMutedUsers () {\n return this.mergedConfig.hideMutedPosts\n },\n hideMutedThreads () {\n return this.mergedConfig.hideMutedThreads\n },\n hideFilteredStatuses () {\n return this.mergedConfig.hideFilteredStatuses\n },\n hideWordFilteredPosts () {\n return this.mergedConfig.hideWordFilteredPosts\n },\n hideStatus () {\n return (!this.shouldNotMute) && (\n (this.muted && this.hideFilteredStatuses) ||\n (this.userIsMuted && this.hideMutedUsers) ||\n (this.status.thread_muted && this.hideMutedThreads) ||\n (this.muteWordHits.length > 0 && this.hideWordFilteredPosts)\n )\n },\n isFocused () {\n // retweet or root of an expanded conversation\n if (this.focused) {\n return true\n } else if (!this.inConversation) {\n return false\n }\n // use conversation highlight only when in conversation\n return this.status.id === this.highlight\n },\n isReply () {\n return !!(this.status.in_reply_to_status_id && this.status.in_reply_to_user_id)\n },\n replyToName () {\n if (this.status.in_reply_to_screen_name) {\n return this.status.in_reply_to_screen_name\n } else {\n const user = this.$store.getters.findUser(this.status.in_reply_to_user_id)\n return user && user.screen_name_ui\n }\n },\n replySubject () {\n if (!this.status.summary) return ''\n const decodedSummary = unescape(this.status.summary)\n const behavior = this.mergedConfig.subjectLineBehavior\n const startsWithRe = decodedSummary.match(/^re[: ]/i)\n if ((behavior !== 'noop' && startsWithRe) || behavior === 'masto') {\n return decodedSummary\n } else if (behavior === 'email') {\n return 're: '.concat(decodedSummary)\n } else if (behavior === 'noop') {\n return ''\n }\n },\n combinedFavsAndRepeatsUsers () {\n // Use the status from the global status repository since favs and repeats are saved in it\n const combinedUsers = [].concat(\n this.statusFromGlobalRepository.favoritedBy,\n this.statusFromGlobalRepository.rebloggedBy\n )\n return uniqBy(combinedUsers, 'id')\n },\n tags () {\n // eslint-disable-next-line no-prototype-builtins\n return this.status.tags.filter(tagObj => tagObj.hasOwnProperty('name')).map(tagObj => tagObj.name).join(' ')\n },\n hidePostStats () {\n return this.mergedConfig.hidePostStats\n },\n muteBotStatuses () {\n return this.mergedConfig.muteBotStatuses\n },\n hideBotIndication () {\n return this.mergedConfig.hideBotIndication\n },\n currentUser () {\n return this.$store.state.users.currentUser\n },\n betterShadow () {\n return this.$store.state.interface.browserSupport.cssFilter\n },\n mergedConfig () {\n return this.$store.getters.mergedConfig\n },\n isSuspendable () {\n return !this.replying && this.mediaPlaying.length === 0\n },\n inThreadForest () {\n return !!this.controlledThreadDisplayStatus\n },\n threadShowing () {\n return this.controlledThreadDisplayStatus === 'showing'\n },\n visibilityLocalized () {\n return this.$i18n.t('general.scope_in_timeline.' + this.status.visibility)\n },\n isEdited () {\n return this.status.edited_at !== null\n },\n editingAvailable () {\n return this.$store.state.instance.editingAvailable\n },\n hasVisibleQuote () {\n return this.status.quote_url && this.status.quote_visible\n },\n hasInvisibleQuote () {\n return this.status.quote_url && !this.status.quote_visible\n },\n quotedStatus () {\n return this.status.quote_id ? this.$store.state.statuses.allStatusesObject[this.status.quote_id] : undefined\n },\n shouldDisplayQuote () {\n return this.quotedStatus && this.displayQuote\n }\n },\n methods: {\n visibilityIcon (visibility) {\n switch (visibility) {\n case 'private':\n return 'lock'\n case 'unlisted':\n return 'lock-open'\n case 'direct':\n return 'envelope'\n default:\n return 'globe'\n }\n },\n showError (error) {\n this.error = error\n },\n clearError () {\n this.error = undefined\n },\n toggleReplying () {\n controlledOrUncontrolledToggle(this, 'replying')\n },\n gotoOriginal (id) {\n if (this.inConversation) {\n this.$emit('goto', id)\n }\n },\n toggleExpanded () {\n this.$emit('toggleExpanded')\n },\n toggleMute () {\n this.unmuted = !this.unmuted\n },\n toggleUserExpanded () {\n this.userExpanded = !this.userExpanded\n },\n generateUserProfileLink (id, name) {\n return generateProfileLink(id, name, this.$store.state.instance.restrictedNicknames)\n },\n addMediaPlaying (id) {\n controlledOrUncontrolledSet(this, 'mediaPlaying', this.mediaPlaying.concat(id))\n },\n removeMediaPlaying (id) {\n controlledOrUncontrolledSet(this, 'mediaPlaying', this.mediaPlaying.filter(mediaId => mediaId !== id))\n },\n setHeadTailLinks (headTailLinks) {\n this.headTailLinks = headTailLinks\n },\n toggleThreadDisplay () {\n this.controlledToggleThreadDisplay()\n },\n scrollIfHighlighted (highlightId) {\n const id = highlightId\n if (this.status.id === id) {\n const 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 toggleDisplayQuote () {\n if (this.shouldDisplayQuote) {\n this.displayQuote = false\n } else if (!this.quotedStatus) {\n this.$store.dispatch('fetchStatus', this.status.quote_id)\n .then(() => {\n this.displayQuote = true\n })\n } else {\n this.displayQuote = true\n }\n }\n },\n watch: {\n highlight: function (id) {\n this.scrollIfHighlighted(id)\n },\n 'status.repeat_num': function (num) {\n // refetch repeats when repeat_num is changed in any way\n if (this.isFocused && this.statusFromGlobalRepository.rebloggedBy && this.statusFromGlobalRepository.rebloggedBy.length !== num) {\n this.$store.dispatch('fetchRepeats', this.status.id)\n }\n },\n 'status.fave_num': function (num) {\n // refetch favs when fave_num is changed in any way\n if (this.isFocused && this.statusFromGlobalRepository.favoritedBy && this.statusFromGlobalRepository.favoritedBy.length !== num) {\n this.$store.dispatch('fetchFavs', this.status.id)\n }\n },\n isSuspendable: function (val) {\n this.suspendable = val\n }\n }\n}\n\nexport default Status\n","import { render } from \"./status.vue?vue&type=template&id=0f15101e\"\nimport script from \"./status.js?vue&type=script&lang=js\"\nexport * from \"./status.js?vue&type=script&lang=js\"\n\nimport \"./status.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n class=\"StatusContent\"\n :class=\"{ '-compact': compact }\"\n >\n <slot name=\"header\" />\n <StatusBody\n :status=\"status\"\n :compact=\"compact\"\n :single-line=\"singleLine\"\n :showing-tall=\"showingTall\"\n :expanding-subject=\"expandingSubject\"\n :showing-long-subject=\"showingLongSubject\"\n :toggle-showing-tall=\"toggleShowingTall\"\n :toggle-expanding-subject=\"toggleExpandingSubject\"\n :toggle-showing-long-subject=\"toggleShowingLongSubject\"\n @parseReady=\"$emit('parseReady', $event)\"\n >\n <div v-if=\"status.poll && status.poll.options && !compact\">\n <Poll\n :base-poll=\"status.poll\"\n :emoji=\"status.emojis\"\n />\n </div>\n\n <div v-else-if=\"status.poll && status.poll.options && compact\">\n <FAIcon\n icon=\"poll-h\"\n size=\"2x\"\n />\n </div>\n\n <gallery\n v-if=\"status.attachments.length !== 0\"\n class=\"attachments media-body\"\n :compact=\"compact\"\n :nsfw=\"nsfwClickthrough\"\n :attachments=\"status.attachments\"\n :limit=\"compact ? 1 : 0\"\n :size=\"attachmentSize\"\n @play=\"$emit('mediaplay', attachment.id)\"\n @pause=\"$emit('mediapause', attachment.id)\"\n />\n\n <div\n v-if=\"statusCard && !noHeading && !compact\"\n class=\"link-preview media-body\"\n >\n <link-preview\n :card=\"status.card\"\n :size=\"attachmentSize\"\n :nsfw=\"nsfwClickthrough\"\n />\n </div>\n </StatusBody>\n <slot name=\"footer\" />\n </div>\n</template>\n\n<script src=\"./status_content.js\"></script>\n<style lang=\"scss\">\n.StatusContent {\n flex: 1;\n min-width: 0;\n}\n</style>\n","<template>\n <div\n class=\"poll\"\n :class=\"containerClass\"\n >\n <div\n :role=\"showResults ? 'section' : (poll.multiple ? 'group' : 'radiogroup')\"\n >\n <div\n v-for=\"(option, index) in options\"\n :key=\"index\"\n class=\"poll-option\"\n >\n <div\n v-if=\"showResults\"\n :title=\"resultTitle(option)\"\n class=\"option-result\"\n >\n <div class=\"option-result-label\">\n <span class=\"result-percentage\">\n {{ percentageForOption(option.votes_count) }}%\n </span>\n <RichContent\n :html=\"option.title_html\"\n :handle-links=\"false\"\n :emoji=\"emoji\"\n />\n </div>\n <div\n class=\"result-fill\"\n :style=\"{ 'width': `${percentageForOption(option.votes_count)}%` }\"\n />\n </div>\n <div\n v-else\n tabindex=\"0\"\n :role=\"poll.multiple ? 'checkbox' : 'radio'\"\n :aria-labelledby=\"`option-vote-${randomSeed}-${index}`\"\n :aria-checked=\"choices[index]\"\n @click=\"activateOption(index)\"\n >\n <input\n v-if=\"poll.multiple\"\n type=\"checkbox\"\n class=\"poll-checkbox\"\n :disabled=\"loading\"\n :value=\"index\"\n >\n <input\n v-else\n type=\"radio\"\n :disabled=\"loading\"\n :value=\"index\"\n >\n <label class=\"option-vote\">\n <RichContent\n :id=\"`option-vote-${randomSeed}-${index}`\"\n :html=\"option.title_html\"\n :handle-links=\"false\"\n :emoji=\"emoji\"\n />\n </label>\n </div>\n </div>\n </div>\n <div class=\"footer faint\">\n <button\n v-if=\"!showResults\"\n class=\"btn button-default poll-vote-button\"\n type=\"button\"\n :disabled=\"isDisabled\"\n @click=\"vote\"\n >\n {{ $t('polls.vote') }}\n </button>\n <div class=\"total\">\n <template v-if=\"typeof poll.voters_count === 'number'\">\n {{ $tc(\"polls.people_voted_count\", poll.voters_count, { count: poll.voters_count }) }}&nbsp;·&nbsp;\n </template>\n <template v-else>\n {{ $tc(\"polls.votes_count\", poll.votes_count, { count: poll.votes_count }) }}&nbsp;·&nbsp;\n </template>\n </div>\n <span>\n <i18n-t\n scope=\"global\"\n :keypath=\"expired ? 'polls.expired' : 'polls.expires_in'\"\n >\n <Timeago\n :time=\"expiresAt\"\n :auto-update=\"60\"\n :now-threshold=\"0\"\n />\n </i18n-t>\n </span>\n </div>\n </div>\n</template>\n\n<script src=\"./poll.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.poll {\n .votes {\n display: flex;\n flex-direction: column;\n margin: 0 0 0.5em;\n }\n\n .poll-option {\n margin: 0.75em 0.5em;\n }\n\n .option-result {\n height: 100%;\n display: flex;\n flex-direction: row;\n position: relative;\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n }\n\n .option-result-label {\n display: flex;\n align-items: center;\n padding: 0.1em 0.25em;\n z-index: 1;\n word-break: break-word;\n }\n\n .result-percentage {\n width: 3.5em;\n flex-shrink: 0;\n }\n\n .result-fill {\n height: 100%;\n position: absolute;\n color: $fallback--text;\n color: var(--pollText, $fallback--text);\n background-color: $fallback--lightBg;\n background-color: var(--poll, $fallback--lightBg);\n border-radius: $fallback--panelRadius;\n border-radius: var(--panelRadius, $fallback--panelRadius);\n top: 0;\n left: 0;\n transition: width 0.5s;\n }\n\n .option-vote {\n display: flex;\n align-items: center;\n }\n\n input {\n width: 3.5em;\n }\n\n .footer {\n display: flex;\n align-items: center;\n }\n\n &.loading * {\n cursor: progress;\n }\n\n .poll-vote-button {\n padding: 0 0.5em;\n margin-right: 0.5em;\n }\n\n .poll-checkbox {\n display: none;\n }\n}\n</style>\n","import Timeago from 'components/timeago/timeago.vue'\nimport RichContent from 'components/rich_content/rich_content.jsx'\nimport { forEach, map } from 'lodash'\n\nexport default {\n name: 'Poll',\n props: ['basePoll', 'emoji'],\n components: {\n Timeago,\n RichContent\n },\n data () {\n return {\n loading: false,\n choices: [],\n randomSeed: `${Math.random()}`.replace('.', '-')\n }\n },\n created () {\n if (!this.$store.state.polls.pollsObject[this.pollId]) {\n this.$store.dispatch('mergeOrAddPoll', this.basePoll)\n }\n this.$store.dispatch('trackPoll', this.pollId)\n },\n unmounted () {\n this.$store.dispatch('untrackPoll', this.pollId)\n },\n computed: {\n pollId () {\n return this.basePoll.id\n },\n poll () {\n const storePoll = this.$store.state.polls.pollsObject[this.pollId]\n return storePoll || {}\n },\n options () {\n return (this.poll && this.poll.options) || []\n },\n expiresAt () {\n return (this.poll && this.poll.expires_at) || 0\n },\n expired () {\n return (this.poll && this.poll.expired) || false\n },\n loggedIn () {\n return this.$store.state.users.currentUser\n },\n showResults () {\n return this.poll.voted || this.expired || !this.loggedIn\n },\n totalVotesCount () {\n return this.poll.votes_count\n },\n containerClass () {\n return {\n loading: this.loading\n }\n },\n choiceIndices () {\n // Convert array of booleans into an array of indices of the\n // items that were 'true', so [true, false, false, true] becomes\n // [0, 3].\n return this.choices\n .map((entry, index) => entry && index)\n .filter(value => typeof value === 'number')\n },\n isDisabled () {\n const noChoice = this.choiceIndices.length === 0\n return this.loading || noChoice\n }\n },\n methods: {\n percentageForOption (count) {\n return this.totalVotesCount === 0 ? 0 : Math.round(count / this.totalVotesCount * 100)\n },\n resultTitle (option) {\n return `${option.votes_count}/${this.totalVotesCount} ${this.$t('polls.votes')}`\n },\n fetchPoll () {\n this.$store.dispatch('refreshPoll', { id: this.statusId, pollId: this.poll.id })\n },\n activateOption (index) {\n // forgive me father: doing checking the radio/checkboxes\n // in code because of customized input elements need either\n // a) an extra element for the actual graphic, or b) use a\n // pseudo element for the label. We use b) which mandates\n // using \"for\" and \"id\" matching which isn't nice when the\n // same poll appears multiple times on the site (notifs and\n // timeline for example). With code we can make sure it just\n // works without altering the pseudo element implementation.\n const allElements = this.$el.querySelectorAll('input')\n const clickedElement = this.$el.querySelector(`input[value=\"${index}\"]`)\n if (this.poll.multiple) {\n // Checkboxes, toggle only the clicked one\n clickedElement.checked = !clickedElement.checked\n } else {\n // Radio button, uncheck everything and check the clicked one\n forEach(allElements, element => { element.checked = false })\n clickedElement.checked = true\n }\n this.choices = map(allElements, e => e.checked)\n },\n optionId (index) {\n return `poll${this.poll.id}-${index}`\n },\n vote () {\n if (this.choiceIndices.length === 0) return\n this.loading = true\n this.$store.dispatch(\n 'votePoll',\n { id: this.statusId, pollId: this.poll.id, choices: this.choiceIndices }\n ).then(poll => {\n this.loading = false\n })\n }\n }\n}\n","import { render } from \"./poll.vue?vue&type=template&id=02c7de4c\"\nimport script from \"./poll.js?vue&type=script&lang=js\"\nexport * from \"./poll.js?vue&type=script&lang=js\"\n\nimport \"./poll.vue?vue&type=style&index=0&id=02c7de4c&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n class=\"StatusBody\"\n :class=\"{ '-compact': compact }\"\n >\n <div class=\"body\">\n <div\n v-if=\"status.summary_raw_html\"\n class=\"summary-wrapper\"\n :class=\"{ '-tall': (longSubject && !showingLongSubject) }\"\n >\n <RichContent\n class=\"media-body summary\"\n :html=\"status.summary_raw_html\"\n :emoji=\"status.emojis\"\n />\n <button\n v-show=\"longSubject && showingLongSubject\"\n class=\"button-unstyled -link tall-subject-hider\"\n @click.prevent=\"toggleShowingLongSubject\"\n >\n {{ $t(\"status.hide_full_subject\") }}\n </button>\n <button\n v-show=\"longSubject && !showingLongSubject\"\n class=\"button-unstyled -link tall-subject-hider\"\n @click.prevent=\"toggleShowingLongSubject\"\n >\n {{ $t(\"status.show_full_subject\") }}\n </button>\n </div>\n <div\n :class=\"{'-tall-status': hideTallStatus}\"\n class=\"text-wrapper\"\n >\n <button\n v-show=\"hideTallStatus\"\n class=\"button-unstyled -link tall-status-hider\"\n :class=\"{ '-focused': focused }\"\n @click.prevent=\"toggleShowMore\"\n >\n {{ $t(\"general.show_more\") }}\n </button>\n <RichContent\n v-if=\"!hideSubjectStatus && !(singleLine && status.summary_raw_html)\"\n :class=\"{ '-single-line': singleLine }\"\n class=\"text media-body\"\n :html=\"status.raw_html\"\n :emoji=\"status.emojis\"\n :handle-links=\"true\"\n :greentext=\"mergedConfig.greentext\"\n :attentions=\"status.attentions\"\n @parseReady=\"onParseReady\"\n />\n\n <button\n v-show=\"hideSubjectStatus\"\n class=\"button-unstyled -link cw-status-hider\"\n @click.prevent=\"toggleShowMore\"\n >\n {{ $t(\"status.show_content\") }}\n <FAIcon\n v-if=\"attachmentTypes.includes('image')\"\n icon=\"image\"\n />\n <FAIcon\n v-if=\"attachmentTypes.includes('video')\"\n icon=\"video\"\n />\n <FAIcon\n v-if=\"attachmentTypes.includes('audio')\"\n icon=\"music\"\n />\n <FAIcon\n v-if=\"attachmentTypes.includes('unknown')\"\n icon=\"file\"\n />\n <FAIcon\n v-if=\"status.poll && status.poll.options\"\n icon=\"poll-h\"\n />\n <FAIcon\n v-if=\"status.card\"\n icon=\"link\"\n />\n </button>\n <button\n v-show=\"showingMore && !fullContent\"\n class=\"button-unstyled -link status-unhider\"\n @click.prevent=\"toggleShowMore\"\n >\n {{ tallStatus ? $t(\"general.show_less\") : $t(\"status.hide_content\") }}\n </button>\n </div>\n </div>\n <slot v-if=\"!hideSubjectStatus\" />\n </div>\n</template>\n<script src=\"./status_body.js\"></script>\n<style lang=\"scss\" src=\"./status_body.scss\" />\n","import fileType from 'src/services/file_type/file_type.service'\nimport RichContent from 'src/components/rich_content/rich_content.jsx'\nimport { mapGetters } from 'vuex'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faFile,\n faMusic,\n faImage,\n faLink,\n faPollH\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faFile,\n faMusic,\n faImage,\n faLink,\n faPollH\n)\n\nconst StatusContent = {\n name: 'StatusContent',\n props: [\n 'compact',\n 'status',\n 'focused',\n 'noHeading',\n 'fullContent',\n 'singleLine',\n 'showingTall',\n 'expandingSubject',\n 'showingLongSubject',\n 'toggleShowingTall',\n 'toggleExpandingSubject',\n 'toggleShowingLongSubject'\n ],\n data () {\n return {\n postLength: this.status.text.length,\n parseReadyDone: false\n }\n },\n computed: {\n localCollapseSubjectDefault () {\n return this.mergedConfig.collapseMessageWithSubject\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 if (this.singleLine || this.compact) return false\n const lengthScore = this.status.raw_html.split(/<p|<br/).length + this.postLength / 80\n return lengthScore > 20\n },\n longSubject () {\n return this.status.summary.length > 240\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.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 attachmentTypes () {\n return this.status.attachments.map(file => fileType.fileType(file.mimetype))\n },\n ...mapGetters(['mergedConfig'])\n },\n components: {\n RichContent\n },\n mounted () {\n this.status.attentions && this.status.attentions.forEach(attn => {\n const { id } = attn\n this.$store.dispatch('fetchUserIfMissing', id)\n })\n },\n methods: {\n onParseReady (event) {\n if (this.parseReadyDone) return\n this.parseReadyDone = true\n this.$emit('parseReady', event)\n const { writtenMentions, invisibleMentions } = event\n writtenMentions\n .filter(mention => !mention.notifying)\n .forEach(mention => {\n const { content, url } = mention\n const cleanedString = content.replace(/<[^>]+?>/gi, '') // remove all tags\n if (!cleanedString.startsWith('@')) return\n const handle = cleanedString.slice(1)\n const host = url.replace(/^https?:\\/\\//, '').replace(/\\/.+?$/, '')\n this.$store.dispatch('fetchUserIfMissing', `${handle}@${host}`)\n })\n /* This is a bit of a hack to make current tall status detector work\n * with rich mentions. Invisible mentions are detected at RichContent level\n * and also we generate plaintext version of mentions by stripping tags\n * so here we subtract from post length by each mention that became invisible\n * via MentionsLine\n */\n this.postLength = invisibleMentions.reduce((acc, mention) => {\n return acc - mention.textContent.length - 1\n }, this.postLength)\n },\n toggleShowMore () {\n if (this.mightHideBecauseTall) {\n this.toggleShowingTall()\n } else if (this.mightHideBecauseSubject) {\n this.toggleExpandingSubject()\n }\n },\n generateTagLink (tag) {\n return `/tag/${tag}`\n }\n }\n}\n\nexport default StatusContent\n","import { render } from \"./status_body.vue?vue&type=template&id=7a590a2c\"\nimport script from \"./status_body.js?vue&type=script&lang=js\"\nexport * from \"./status_body.js?vue&type=script&lang=js\"\n\nimport \"./status_body.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import Attachment from '../attachment/attachment.vue'\nimport Poll from '../poll/poll.vue'\nimport Gallery from '../gallery/gallery.vue'\nimport StatusBody from 'src/components/status_body/status_body.vue'\nimport LinkPreview from '../link-preview/link-preview.vue'\nimport { mapGetters, mapState } from 'vuex'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faCircleNotch,\n faFile,\n faMusic,\n faImage,\n faLink,\n faPollH\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCircleNotch,\n faFile,\n faMusic,\n faImage,\n faLink,\n faPollH\n)\n\nconst camelCase = name => name.charAt(0).toUpperCase() + name.slice(1)\n\nconst controlledOrUncontrolledGetters = list => list.reduce((res, name) => {\n const camelized = camelCase(name)\n const toggle = `controlledToggle${camelized}`\n const controlledName = `controlled${camelized}`\n const uncontrolledName = `uncontrolled${camelized}`\n res[name] = function () {\n return ((this.$data[toggle] !== undefined || this.$props[toggle] !== undefined) && this[toggle]) ? this[controlledName] : this[uncontrolledName]\n }\n return res\n}, {})\n\nconst controlledOrUncontrolledToggle = (obj, name) => {\n const camelized = camelCase(name)\n const toggle = `controlledToggle${camelized}`\n const uncontrolledName = `uncontrolled${camelized}`\n if (obj[toggle]) {\n obj[toggle]()\n } else {\n obj[uncontrolledName] = !obj[uncontrolledName]\n }\n}\n\nconst StatusContent = {\n name: 'StatusContent',\n props: [\n 'status',\n 'compact',\n 'focused',\n 'noHeading',\n 'fullContent',\n 'singleLine',\n 'controlledShowingTall',\n 'controlledExpandingSubject',\n 'controlledToggleShowingTall',\n 'controlledToggleExpandingSubject',\n 'controlledShowingLongSubject',\n 'controlledToggleShowingLongSubject'\n ],\n data () {\n return {\n uncontrolledShowingTall: this.fullContent || (this.inConversation && this.focused),\n uncontrolledShowingLongSubject: false,\n // not as computed because it sets the initial state which will be changed later\n uncontrolledExpandingSubject: !this.$store.getters.mergedConfig.collapseMessageWithSubject\n }\n },\n computed: {\n ...controlledOrUncontrolledGetters(['showingTall', 'expandingSubject', 'showingLongSubject']),\n statusCard () {\n if (!this.status.card) return null\n return this.status.card.url === this.status.quote_url ? null : this.status.card\n },\n hideAttachments () {\n return (this.mergedConfig.hideAttachments && !this.inConversation) ||\n (this.mergedConfig.hideAttachmentsInConv && this.inConversation)\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.compact) {\n return 'small'\n } else if ((this.mergedConfig.hideAttachments && !this.inConversation) ||\n (this.mergedConfig.hideAttachmentsInConv && this.inConversation) ||\n (this.status.attachments.length > this.maxThumbnails)) {\n return 'hide'\n }\n return 'normal'\n },\n maxThumbnails () {\n return this.mergedConfig.maxThumbnails\n },\n ...mapGetters(['mergedConfig']),\n ...mapState({\n currentUser: state => state.users.currentUser\n })\n },\n components: {\n Attachment,\n Poll,\n Gallery,\n LinkPreview,\n StatusBody\n },\n methods: {\n toggleShowingTall () {\n controlledOrUncontrolledToggle(this, 'showingTall')\n },\n toggleExpandingSubject () {\n controlledOrUncontrolledToggle(this, 'expandingSubject')\n },\n toggleShowingLongSubject () {\n controlledOrUncontrolledToggle(this, 'showingLongSubject')\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","import { render } from \"./status_content.vue?vue&type=template&id=79c8e5d6\"\nimport script from \"./status_content.js?vue&type=script&lang=js\"\nexport * from \"./status_content.js?vue&type=script&lang=js\"\n\nimport \"./status_content.vue?vue&type=style&index=0&id=79c8e5d6&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n class=\"still-image\"\n :class=\"{ animated: animated }\"\n :style=\"style\"\n >\n <canvas\n v-if=\"animated\"\n ref=\"canvas\"\n />\n <!-- NOTE: key is required to force to re-render img tag when src is changed -->\n <img\n ref=\"src\"\n :key=\"realSrc\"\n :alt=\"alt\"\n :title=\"alt\"\n :data-src=\"dataSrc\"\n :src=\"realSrc\"\n :referrerpolicy=\"referrerpolicy\"\n :loading=\"loading\"\n @load=\"onLoad\"\n @error=\"onError\"\n >\n <slot />\n </div>\n</template>\n\n<script src=\"./still-image.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.still-image {\n position: relative;\n line-height: 0;\n overflow: hidden;\n display: inline-flex;\n align-items: center;\n\n canvas {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n width: 100%;\n height: 100%;\n object-fit: contain;\n visibility: var(--_still-image-canvas-visibility, visible);\n }\n\n img {\n width: 100%;\n height: 100%;\n object-fit: contain;\n }\n\n &.animated {\n &::before {\n zoom: var(--_still_image-label-scale, 1);\n content: \"gif\";\n position: absolute;\n line-height: 1;\n font-size: 0.7em;\n top: 0.5em;\n left: 0.5em;\n background: rgb(127 127 127 / 50%);\n color: #fff;\n display: block;\n padding: 2px 4px;\n border-radius: $fallback--tooltipRadius;\n border-radius: var(--tooltipRadius, $fallback--tooltipRadius);\n z-index: 2;\n visibility: var(--_still-image-label-visibility, visible);\n }\n\n &:hover canvas {\n display: none;\n }\n\n &:hover::before {\n visibility: var(--_still-image-label-visibility, hidden);\n }\n\n img {\n visibility: var(--_still-image-img-visibility, hidden);\n }\n\n &:hover img {\n visibility: visible;\n }\n }\n}\n</style>\n","const StillImage = {\n props: [\n 'src',\n 'referrerpolicy',\n 'mimetype',\n 'imageLoadError',\n 'imageLoadHandler',\n 'alt',\n 'height',\n 'width',\n 'dataSrc',\n 'loading'\n ],\n data () {\n return {\n // for lazy loading, see loadLazy()\n realSrc: this.src,\n stopGifs: this.$store.getters.mergedConfig.stopGifs\n }\n },\n computed: {\n animated () {\n if (!this.realSrc) {\n return false\n }\n\n return this.stopGifs && (this.mimetype === 'image/gif' || this.realSrc.endsWith('.gif'))\n },\n style () {\n const appendPx = (str) => /\\d$/.test(str) ? str + 'px' : str\n return {\n height: this.height ? appendPx(this.height) : null,\n width: this.width ? appendPx(this.width) : null\n }\n }\n },\n methods: {\n loadLazy () {\n if (this.dataSrc) {\n this.realSrc = this.dataSrc\n }\n },\n onLoad () {\n if (!this.realSrc) {\n return\n }\n const image = this.$refs.src\n if (!image) return\n this.imageLoadHandler && this.imageLoadHandler(image)\n const canvas = this.$refs.canvas\n if (!canvas) return\n const width = image.naturalWidth\n const height = image.naturalHeight\n canvas.width = width\n canvas.height = height\n canvas.getContext('2d').drawImage(image, 0, 0, width, height)\n },\n onError () {\n this.imageLoadError && this.imageLoadError()\n }\n },\n watch: {\n src () {\n this.realSrc = this.src\n },\n dataSrc () {\n this.$el.removeAttribute('data-loaded')\n }\n }\n}\n\nexport default StillImage\n","import { render } from \"./still-image.vue?vue&type=template&id=75385b10\"\nimport script from \"./still-image.js?vue&type=script&lang=js\"\nexport * from \"./still-image.js?vue&type=script&lang=js\"\n\nimport \"./still-image.vue?vue&type=style&index=0&id=75385b10&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <time\n :datetime=\"time\"\n :title=\"localeDateString\"\n >\n {{ relativeTimeString }}\n </time>\n</template>\n\n<script>\nimport * as DateUtils from 'src/services/date_utils/date_utils.js'\nimport localeService from 'src/services/locale/locale.service.js'\n\nexport default {\n name: 'Timeago',\n props: ['time', 'autoUpdate', 'longFormat', 'nowThreshold', 'templateKey'],\n data () {\n return {\n relativeTime: { key: 'time.now', num: 0 },\n interval: null\n }\n },\n computed: {\n localeDateString () {\n const browserLocale = localeService.internalToBrowserLocale(this.$i18n.locale)\n return typeof this.time === 'string'\n ? new Date(Date.parse(this.time)).toLocaleString(browserLocale)\n : this.time.toLocaleString(browserLocale)\n },\n relativeTimeString () {\n const timeString = this.$i18n.tc(this.relativeTime.key, this.relativeTime.num, [this.relativeTime.num])\n\n if (typeof this.templateKey === 'string' && this.relativeTime.key !== 'time.now') {\n return this.$i18n.t(this.templateKey, [timeString])\n }\n\n return timeString\n }\n },\n watch: {\n time (newVal, oldVal) {\n if (oldVal !== newVal) {\n clearTimeout(this.interval)\n this.refreshRelativeTimeObject()\n }\n }\n },\n created () {\n this.refreshRelativeTimeObject()\n },\n unmounted () {\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","import { render } from \"./timeago.vue?vue&type=template&id=3269671b\"\nimport script from \"./timeago.vue?vue&type=script&lang=js\"\nexport * from \"./timeago.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <FAIcon\n v-if=\"user && user.screen_name_ui_contains_non_ascii\"\n icon=\"code\"\n :title=\"$t('unicode_domain_indicator.tooltip')\"\n />\n</template>\n\n<script>\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faCode\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCode\n)\n\nconst UnicodeDomainIndicator = {\n props: {\n user: Object\n }\n}\n\nexport default UnicodeDomainIndicator\n</script>\n","import { render } from \"./unicode_domain_indicator.vue?vue&type=template&id=3e044e46\"\nimport script from \"./unicode_domain_indicator.vue?vue&type=script&lang=js\"\nexport * from \"./unicode_domain_indicator.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import StillImage from '../still-image/still-image.vue'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\n\nimport {\n faRobot\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faRobot\n)\n\nconst UserAvatar = {\n props: [\n 'user',\n 'betterShadow',\n 'compact',\n 'bot'\n ],\n data () {\n return {\n showPlaceholder: false,\n defaultAvatar: `${this.$store.state.instance.server + this.$store.state.instance.defaultAvatar}`\n }\n },\n components: {\n StillImage\n },\n methods: {\n imgSrc (src) {\n return (!src || this.showPlaceholder) ? this.defaultAvatar : src\n },\n imageLoadError () {\n this.showPlaceholder = true\n }\n }\n}\n\nexport default UserAvatar\n","import { render } from \"./user_avatar.vue?vue&type=template&id=9c4bf79e\"\nimport script from \"./user_avatar.js?vue&type=script&lang=js\"\nexport * from \"./user_avatar.js?vue&type=script&lang=js\"\n\nimport \"./user_avatar.vue?vue&type=style&index=0&id=9c4bf79e&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <span\n class=\"Avatar\"\n :class=\"{ '-compact': compact }\"\n >\n <StillImage\n v-if=\"user\"\n class=\"avatar\"\n :alt=\"user.screen_name_ui\"\n :title=\"user.screen_name_ui\"\n :src=\"imgSrc(user.profile_image_url_original)\"\n :image-load-error=\"imageLoadError\"\n :class=\"{ '-compact': compact, '-better-shadow': betterShadow }\"\n />\n <div\n v-else\n class=\"avatar -placeholder\"\n :class=\"{ '-compact': compact }\"\n />\n <FAIcon\n v-if=\"bot\"\n icon=\"robot\"\n class=\"bot-indicator\"\n />\n </span>\n</template>\n\n<script src=\"./user_avatar.js\"></script>\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.Avatar {\n --_avatarShadowBox: var(--avatarStatusShadow);\n --_avatarShadowFilter: var(--avatarStatusShadowFilter);\n --_avatarShadowInset: var(--avatarStatusShadowInset);\n --_still-image-label-visibility: hidden;\n\n display: inline-block;\n position: relative;\n width: 48px;\n height: 48px;\n\n &.-compact {\n width: 32px;\n height: 32px;\n border-radius: $fallback--avatarAltRadius;\n border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);\n }\n\n .avatar {\n width: 100%;\n height: 100%;\n box-shadow: var(--_avatarShadowBox);\n border-radius: $fallback--avatarRadius;\n border-radius: var(--avatarRadius, $fallback--avatarRadius);\n\n &.-better-shadow {\n box-shadow: var(--_avatarShadowInset);\n filter: var(--_avatarShadowFilter);\n }\n\n &.-animated::before {\n display: none;\n }\n\n &.-compact {\n border-radius: $fallback--avatarAltRadius;\n border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);\n }\n\n &.-placeholder {\n background-color: $fallback--fg;\n background-color: var(--fg, $fallback--fg);\n }\n }\n\n img {\n width: 100%;\n height: 100%;\n }\n\n .bot-indicator {\n position: absolute;\n bottom: 0;\n right: 0;\n margin: -0.2em;\n padding: 0.2em;\n background: rgb(127 127 127 / 50%);\n color: #fff;\n border-radius: var(--tooltipRadius);\n }\n}\n</style>\n","<template>\n <div\n class=\"user-card\"\n :class=\"classes\"\n >\n <div\n :class=\"{ 'hide-bio': hideBio }\"\n :style=\"style\"\n class=\"background-image\"\n />\n <div :class=\"onClose ? '' : panel-heading -flexible-height\">\n <div class=\"user-info\">\n <div class=\"container\">\n <a\n v-if=\"avatarAction === 'zoom'\"\n class=\"user-info-avatar -link\"\n @click=\"zoomAvatar\"\n >\n <UserAvatar\n :better-shadow=\"betterShadow\"\n :user=\"user\"\n />\n <div class=\"user-info-avatar -link -overlay\">\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"search-plus\"\n />\n </div>\n </a>\n <UserAvatar\n v-else-if=\"typeof avatarAction === 'function'\"\n class=\"user-info-avatar\"\n :better-shadow=\"betterShadow\"\n :user=\"user\"\n @click=\"avatarAction\"\n />\n <router-link\n v-else\n :to=\"userProfileLink(user)\"\n >\n <UserAvatar\n :better-shadow=\"betterShadow\"\n :user=\"user\"\n />\n </router-link>\n <div class=\"user-summary\">\n <div class=\"top-line\">\n <router-link\n :to=\"userProfileLink(user)\"\n class=\"user-name\"\n >\n <RichContent\n :title=\"user.name\"\n :html=\"user.name\"\n :emoji=\"user.emoji\"\n />\n </router-link>\n <button\n v-if=\"!isOtherUser && user.is_local\"\n class=\"button-unstyled edit-profile-button\"\n @click.stop=\"openProfileTab\"\n >\n <FAIcon\n fixed-width\n class=\"icon\"\n icon=\"edit\"\n :title=\"$t('user_card.edit_profile')\"\n />\n </button>\n <a\n v-if=\"isOtherUser && !user.is_local\"\n :href=\"user.statusnet_profile_url\"\n target=\"_blank\"\n class=\"button-unstyled external-link-button\"\n >\n <FAIcon\n class=\"icon\"\n icon=\"external-link-alt\"\n />\n </a>\n <AccountActions\n v-if=\"isOtherUser && loggedIn\"\n :user=\"user\"\n :relationship=\"relationship\"\n />\n <router-link\n v-if=\"onClose\"\n :to=\"userProfileLink(user)\"\n class=\"button-unstyled external-link-button\"\n @click=\"onClose\"\n >\n <FAIcon\n class=\"icon\"\n icon=\"expand-alt\"\n />\n </router-link>\n <button\n v-if=\"onClose\"\n class=\"button-unstyled external-link-button\"\n @click=\"onClose\"\n >\n <FAIcon\n class=\"icon\"\n icon=\"times\"\n />\n </button>\n </div>\n <div class=\"bottom-line\">\n <user-link\n class=\"user-screen-name\"\n :user=\"user\"\n />\n <template v-if=\"!hideBio\">\n <span\n v-if=\"user.deactivated\"\n class=\"alert user-role\"\n >\n {{ $t('user_card.deactivated') }}\n </span>\n <span\n v-if=\"!!visibleRole\"\n class=\"alert user-role\"\n >\n {{ $t(`general.role.${visibleRole}`) }}\n </span>\n <span\n v-if=\"user.bot\"\n class=\"alert user-role\"\n >\n {{ $t('user_card.bot') }}\n </span>\n </template>\n <span v-if=\"user.locked\">\n <FAIcon\n class=\"lock-icon\"\n icon=\"lock\"\n size=\"sm\"\n />\n </span>\n <span\n v-if=\"!mergedConfig.hideUserStats && !hideBio\"\n class=\"dailyAvg\"\n >{{ dailyAvg }} {{ $t('user_card.per_day') }}</span>\n </div>\n </div>\n </div>\n <div class=\"user-meta\">\n <div\n v-if=\"relationship.followed_by && loggedIn && isOtherUser\"\n class=\"following\"\n >\n {{ $t('user_card.follows_you') }}\n </div>\n <div\n v-if=\"isOtherUser && (loggedIn || !switcher)\"\n class=\"highlighter\"\n >\n <!-- id's need to be unique, otherwise vue confuses which user-card checkbox belongs to -->\n <input\n v-if=\"userHighlightType !== 'disabled'\"\n :id=\"'userHighlightColorTx'+user.id\"\n v-model=\"userHighlightColor\"\n class=\"userHighlightText\"\n type=\"text\"\n >\n <input\n v-if=\"userHighlightType !== 'disabled'\"\n :id=\"'userHighlightColor'+user.id\"\n v-model=\"userHighlightColor\"\n class=\"userHighlightCl\"\n type=\"color\"\n >\n {{ ' ' }}\n <Select\n :id=\"'userHighlightSel'+user.id\"\n v-model=\"userHighlightType\"\n class=\"userHighlightSel\"\n >\n <option value=\"disabled\">\n {{ $t('user_card.highlight.disabled') }}\n </option>\n <option value=\"solid\">\n {{ $t('user_card.highlight.solid') }}\n </option>\n <option value=\"striped\">\n {{ $t('user_card.highlight.striped') }}\n </option>\n <option value=\"side\">\n {{ $t('user_card.highlight.side') }}\n </option>\n </Select>\n </div>\n </div>\n <div\n v-if=\"loggedIn && isOtherUser\"\n class=\"user-interactions\"\n >\n <div class=\"btn-group\">\n <FollowButton\n :relationship=\"relationship\"\n :user=\"user\"\n />\n <template v-if=\"relationship.following\">\n <ProgressButton\n v-if=\"!relationship.subscribing\"\n class=\"btn button-default\"\n :click=\"subscribeUser\"\n :title=\"$t('user_card.subscribe')\"\n >\n <FAIcon icon=\"bell\" />\n </ProgressButton>\n <ProgressButton\n v-else\n class=\"btn button-default toggled\"\n :click=\"unsubscribeUser\"\n :title=\"$t('user_card.unsubscribe')\"\n >\n <FALayers>\n <FAIcon\n icon=\"rss\"\n transform=\"left-5 shrink-6 up-3 rotate-20\"\n flip=\"horizontal\"\n />\n <FAIcon\n icon=\"rss\"\n transform=\"right-5 shrink-6 up-3 rotate-20\"\n />\n <FAIcon icon=\"bell\" />\n </FALayers>\n </ProgressButton>\n </template>\n </div>\n <div>\n <button\n v-if=\"relationship.muting\"\n class=\"btn button-default btn-block toggled\"\n :disabled=\"user.deactivated\"\n @click=\"unmuteUser\"\n >\n {{ $t('user_card.muted') }}\n </button>\n <button\n v-else\n class=\"btn button-default btn-block\"\n :disabled=\"user.deactivated\"\n @click=\"muteUser\"\n >\n {{ $t('user_card.mute') }}\n </button>\n </div>\n <div>\n <button\n class=\"btn button-default btn-block\"\n :disabled=\"user.deactivated\"\n @click=\"mentionUser\"\n >\n {{ $t('user_card.mention') }}\n </button>\n </div>\n <ModerationTools\n v-if=\"showModerationMenu\"\n :user=\"user\"\n />\n </div>\n <div\n v-if=\"!loggedIn && user.is_local\"\n class=\"user-interactions\"\n >\n <RemoteFollow :user=\"user\" />\n </div>\n <UserNote\n v-if=\"loggedIn && isOtherUser && (hasNote || (hasNoteEditor && supportsNote))\"\n :user=\"user\"\n :relationship=\"relationship\"\n :editable=\"hasNoteEditor\"\n />\n </div>\n </div>\n <div\n v-if=\"!hideBio\"\n class=\"panel-body\"\n >\n <div\n v-if=\"!mergedConfig.hideUserStats && switcher\"\n class=\"user-counts\"\n >\n <div\n class=\"user-count\"\n @click.prevent=\"setProfileView('statuses')\"\n >\n <h5>{{ $t('user_card.statuses') }}</h5>\n <span>{{ user.statuses_count }} <br></span>\n </div>\n <div\n class=\"user-count\"\n @click.prevent=\"setProfileView('friends')\"\n >\n <h5>{{ $t('user_card.followees') }}</h5>\n <span>{{ hideFollowsCount ? $t('user_card.hidden') : user.friends_count }}</span>\n </div>\n <div\n class=\"user-count\"\n @click.prevent=\"setProfileView('followers')\"\n >\n <h5>{{ $t('user_card.followers') }}</h5>\n <span>{{ hideFollowersCount ? $t('user_card.hidden') : user.followers_count }}</span>\n </div>\n </div>\n <RichContent\n v-if=\"!hideBio\"\n class=\"user-card-bio\"\n :html=\"user.description_html\"\n :emoji=\"user.emoji\"\n :handle-links=\"true\"\n />\n </div>\n <teleport to=\"#modal\">\n <confirm-modal\n v-if=\"showingConfirmMute\"\n :title=\"$t('user_card.mute_confirm_title')\"\n :confirm-text=\"$t('user_card.mute_confirm_accept_button')\"\n :cancel-text=\"$t('user_card.mute_confirm_cancel_button')\"\n @accepted=\"doMuteUser\"\n @cancelled=\"hideConfirmMute\"\n >\n <i18n-t\n keypath=\"user_card.mute_confirm\"\n tag=\"div\"\n >\n <template #user>\n <span\n v-text=\"user.screen_name_ui\"\n />\n </template>\n </i18n-t>\n <div\n class=\"mute-expiry\"\n >\n <label>\n {{ $t('user_card.mute_duration_prompt') }}\n </label>\n <input\n v-model=\"muteExpiryAmount\"\n type=\"number\"\n class=\"expiry-amount hide-number-spinner\"\n :min=\"0\"\n >\n <Select\n v-model=\"muteExpiryUnit\"\n unstyled=\"true\"\n class=\"expiry-unit\"\n >\n <option\n v-for=\"unit in muteExpiryUnits\"\n :key=\"unit\"\n :value=\"unit\"\n >\n {{ $t(`time.${unit}_short`, ['']) }}\n </option>\n </Select>\n </div>\n </confirm-modal>\n </teleport>\n </div>\n</template>\n\n<script src=\"./user_card.js\"></script>\n\n<style lang=\"scss\" src=\"./user_card.scss\" />\n","<template>\n <div>\n <Popover\n trigger=\"click\"\n class=\"moderation-tools-popover\"\n placement=\"bottom\"\n :offset=\"{ y: 5 }\"\n @show=\"setToggled(true)\"\n @close=\"setToggled(false)\"\n >\n <template #content>\n <div class=\"dropdown-menu\">\n <span v-if=\"canGrantRole\">\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleRight(&quot;admin&quot;)\"\n >\n {{ $t(!!user.rights.admin ? 'user_card.admin_menu.revoke_admin' : 'user_card.admin_menu.grant_admin') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleRight(&quot;moderator&quot;)\"\n >\n {{ $t(!!user.rights.moderator ? 'user_card.admin_menu.revoke_moderator' : 'user_card.admin_menu.grant_moderator') }}\n </button>\n <div\n v-if=\"canChangeActivationState || canDeleteAccount\"\n role=\"separator\"\n class=\"dropdown-divider\"\n />\n </span>\n <button\n v-if=\"canChangeActivationState\"\n class=\"button-default dropdown-item\"\n @click=\"toggleActivationStatus()\"\n >\n {{ $t(!!user.deactivated ? 'user_card.admin_menu.activate_account' : 'user_card.admin_menu.deactivate_account') }}\n </button>\n <button\n v-if=\"canDeleteAccount\"\n class=\"button-default dropdown-item\"\n @click=\"deleteUserDialog(true)\"\n >\n {{ $t('user_card.admin_menu.delete_account') }}\n </button>\n <div\n v-if=\"canUseTagPolicy\"\n role=\"separator\"\n class=\"dropdown-divider\"\n />\n <span v-if=\"canUseTagPolicy\">\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleTag(tags.FORCE_NSFW)\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': hasTag(tags.FORCE_NSFW) }\"\n />\n {{ $t('user_card.admin_menu.force_nsfw') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleTag(tags.STRIP_MEDIA)\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': hasTag(tags.STRIP_MEDIA) }\"\n />\n {{ $t('user_card.admin_menu.strip_media') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleTag(tags.FORCE_UNLISTED)\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': hasTag(tags.FORCE_UNLISTED) }\"\n />\n {{ $t('user_card.admin_menu.force_unlisted') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleTag(tags.SANDBOX)\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': hasTag(tags.SANDBOX) }\"\n />\n {{ $t('user_card.admin_menu.sandbox') }}\n </button>\n <button\n v-if=\"user.is_local\"\n class=\"button-default dropdown-item\"\n @click=\"toggleTag(tags.DISABLE_REMOTE_SUBSCRIPTION)\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': hasTag(tags.DISABLE_REMOTE_SUBSCRIPTION) }\"\n />\n {{ $t('user_card.admin_menu.disable_remote_subscription') }}\n </button>\n <button\n v-if=\"user.is_local\"\n class=\"button-default dropdown-item\"\n @click=\"toggleTag(tags.DISABLE_ANY_SUBSCRIPTION)\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': hasTag(tags.DISABLE_ANY_SUBSCRIPTION) }\"\n />\n {{ $t('user_card.admin_menu.disable_any_subscription') }}\n </button>\n <button\n v-if=\"user.is_local\"\n class=\"button-default dropdown-item\"\n @click=\"toggleTag(tags.QUARANTINE)\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': hasTag(tags.QUARANTINE) }\"\n />\n {{ $t('user_card.admin_menu.quarantine') }}\n </button>\n </span>\n </div>\n </template>\n <template #trigger>\n <button\n class=\"btn button-default btn-block moderation-tools-button\"\n :class=\"{ toggled }\"\n >\n {{ $t('user_card.admin_menu.moderation') }}\n <FAIcon icon=\"chevron-down\" />\n </button>\n </template>\n </Popover>\n <teleport to=\"#modal\">\n <DialogModal\n v-if=\"showDeleteUserDialog\"\n :on-cancel=\"deleteUserDialog.bind(this, false)\"\n >\n <template #header>\n {{ $t('user_card.admin_menu.delete_user') }}\n </template>\n <p>{{ $t('user_card.admin_menu.delete_user_confirmation') }}</p>\n <template #footer>\n <button\n class=\"btn button-default\"\n @click=\"deleteUserDialog(false)\"\n >\n {{ $t('general.cancel') }}\n </button>\n <button\n class=\"btn button-default danger\"\n @click=\"deleteUser()\"\n >\n {{ $t('user_card.admin_menu.delete_user') }}\n </button>\n </template>\n </DialogModal>\n </teleport>\n </div>\n</template>\n\n<script src=\"./moderation_tools.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.moderation-tools-popover {\n height: 100%;\n\n .trigger {\n /* stylelint-disable-next-line declaration-no-important */\n display: flex !important;\n height: 100%;\n }\n}\n\n.moderation-tools-button {\n svg,\n i {\n font-size: 0.8em;\n }\n}\n</style>\n","import { library } from '@fortawesome/fontawesome-svg-core'\nimport { faChevronDown } from '@fortawesome/free-solid-svg-icons'\n\nimport DialogModal from '../dialog_modal/dialog_modal.vue'\nimport Popover from '../popover/popover.vue'\n\nlibrary.add(faChevronDown)\n\nconst FORCE_NSFW = 'mrf_tag:media-force-nsfw'\nconst STRIP_MEDIA = 'mrf_tag:media-strip'\nconst FORCE_UNLISTED = 'mrf_tag:force-unlisted'\nconst DISABLE_REMOTE_SUBSCRIPTION = 'mrf_tag:disable-remote-subscription'\nconst DISABLE_ANY_SUBSCRIPTION = 'mrf_tag:disable-any-subscription'\nconst SANDBOX = 'mrf_tag:sandbox'\nconst QUARANTINE = 'mrf_tag:quarantine'\n\nconst ModerationTools = {\n props: [\n 'user'\n ],\n data () {\n return {\n tags: {\n FORCE_NSFW,\n STRIP_MEDIA,\n FORCE_UNLISTED,\n DISABLE_REMOTE_SUBSCRIPTION,\n DISABLE_ANY_SUBSCRIPTION,\n SANDBOX,\n QUARANTINE\n },\n showDeleteUserDialog: false,\n toggled: false\n }\n },\n components: {\n DialogModal,\n Popover\n },\n computed: {\n tagsSet () {\n return new Set(this.user.tags)\n },\n canGrantRole () {\n return this.user.is_local && !this.user.deactivated && this.$store.state.users.currentUser.role === 'admin'\n },\n canChangeActivationState () {\n return this.privileged('users_manage_activation_state')\n },\n canDeleteAccount () {\n return this.privileged('users_delete')\n },\n canUseTagPolicy () {\n return this.$store.state.instance.tagPolicyAvailable && this.privileged('users_manage_tags')\n }\n },\n methods: {\n hasTag (tagName) {\n return this.tagsSet.has(tagName)\n },\n privileged (privilege) {\n return this.$store.state.users.currentUser.privileges.includes(privilege)\n },\n toggleTag (tag) {\n const store = this.$store\n if (this.tagsSet.has(tag)) {\n store.state.api.backendInteractor.untagUser({ user: this.user, tag }).then(response => {\n if (!response.ok) { return }\n store.commit('untagUser', { user: this.user, tag })\n })\n } else {\n store.state.api.backendInteractor.tagUser({ user: this.user, tag }).then(response => {\n if (!response.ok) { return }\n store.commit('tagUser', { user: this.user, tag })\n })\n }\n },\n toggleRight (right) {\n const store = this.$store\n if (this.user.rights[right]) {\n store.state.api.backendInteractor.deleteRight({ user: this.user, right }).then(response => {\n if (!response.ok) { return }\n store.commit('updateRight', { user: this.user, right, value: false })\n })\n } else {\n store.state.api.backendInteractor.addRight({ user: this.user, right }).then(response => {\n if (!response.ok) { return }\n store.commit('updateRight', { user: this.user, right, value: true })\n })\n }\n },\n toggleActivationStatus () {\n this.$store.dispatch('toggleActivationStatus', { user: this.user })\n },\n deleteUserDialog (show) {\n this.showDeleteUserDialog = show\n },\n deleteUser () {\n const store = this.$store\n const user = this.user\n const { id, name } = user\n store.state.api.backendInteractor.deleteUser({ user })\n .then(e => {\n this.$store.dispatch('markStatusesAsDeleted', status => user.id === status.user.id)\n const isProfile = this.$route.name === 'external-user-profile' || this.$route.name === 'user-profile'\n const isTargetUser = this.$route.params.name === name || this.$route.params.id === id\n if (isProfile && isTargetUser) {\n window.history.back()\n }\n })\n },\n setToggled (value) {\n this.toggled = value\n }\n }\n}\n\nexport default ModerationTools\n","import { render } from \"./moderation_tools.vue?vue&type=template&id=352f537c\"\nimport script from \"./moderation_tools.js?vue&type=script&lang=js\"\nexport * from \"./moderation_tools.js?vue&type=script&lang=js\"\n\nimport \"./moderation_tools.vue?vue&type=style&index=0&id=352f537c&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"AccountActions\">\n <Popover\n trigger=\"click\"\n placement=\"bottom\"\n :bound-to=\"{ x: 'container' }\"\n remove-padding\n >\n <template #content>\n <div class=\"dropdown-menu\">\n <template v-if=\"relationship.following\">\n <button\n v-if=\"relationship.showing_reblogs\"\n class=\"btn button-default dropdown-item\"\n @click=\"hideRepeats\"\n >\n {{ $t('user_card.hide_repeats') }}\n </button>\n <button\n v-if=\"!relationship.showing_reblogs\"\n class=\"btn button-default dropdown-item\"\n @click=\"showRepeats\"\n >\n {{ $t('user_card.show_repeats') }}\n </button>\n <div\n role=\"separator\"\n class=\"dropdown-divider\"\n />\n </template>\n <UserListMenu :user=\"user\" />\n <button\n v-if=\"relationship.followed_by\"\n class=\"btn button-default btn-block dropdown-item\"\n @click=\"removeUserFromFollowers\"\n >\n {{ $t('user_card.remove_follower') }}\n </button>\n <button\n v-if=\"relationship.blocking\"\n class=\"btn button-default btn-block dropdown-item\"\n @click=\"unblockUser\"\n >\n {{ $t('user_card.unblock') }}\n </button>\n <button\n v-else\n class=\"btn button-default btn-block dropdown-item\"\n @click=\"blockUser\"\n >\n {{ $t('user_card.block') }}\n </button>\n <button\n class=\"btn button-default btn-block dropdown-item\"\n @click=\"reportUser\"\n >\n {{ $t('user_card.report') }}\n </button>\n <button\n v-if=\"pleromaChatMessagesAvailable\"\n class=\"btn button-default btn-block dropdown-item\"\n @click=\"openChat\"\n >\n {{ $t('user_card.message') }}\n </button>\n </div>\n </template>\n <template #trigger>\n <button class=\"button-unstyled ellipsis-button\">\n <FAIcon\n class=\"icon\"\n icon=\"ellipsis-v\"\n />\n </button>\n </template>\n </Popover>\n <teleport to=\"#modal\">\n <confirm-modal\n v-if=\"showingConfirmBlock\"\n :title=\"$t('user_card.block_confirm_title')\"\n :confirm-text=\"$t('user_card.block_confirm_accept_button')\"\n :cancel-text=\"$t('user_card.block_confirm_cancel_button')\"\n @accepted=\"doBlockUser\"\n @cancelled=\"hideConfirmBlock\"\n >\n <i18n-t\n keypath=\"user_card.block_confirm\"\n tag=\"span\"\n >\n <template #user>\n <span\n v-text=\"user.screen_name_ui\"\n />\n </template>\n </i18n-t>\n </confirm-modal>\n </teleport>\n <teleport to=\"#modal\">\n <confirm-modal\n v-if=\"showingConfirmRemoveFollower\"\n :title=\"$t('user_card.remove_follower_confirm_title')\"\n :confirm-text=\"$t('user_card.remove_follower_confirm_accept_button')\"\n :cancel-text=\"$t('user_card.remove_follower_confirm_cancel_button')\"\n @accepted=\"doRemoveUserFromFollowers\"\n @cancelled=\"hideConfirmRemoveUserFromFollowers\"\n >\n <i18n-t\n keypath=\"user_card.remove_follower_confirm\"\n tag=\"span\"\n >\n <template #user>\n <span\n v-text=\"user.screen_name_ui\"\n />\n </template>\n </i18n-t>\n </confirm-modal>\n </teleport>\n </div>\n</template>\n\n<script src=\"./account_actions.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.AccountActions {\n .ellipsis-button {\n width: 2.5em;\n margin: -0.5em 0;\n padding: 0.5em 0;\n text-align: center;\n\n &:not(:hover) .icon {\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n }\n }\n}\n</style>\n","<template>\n <div class=\"UserListMenu\">\n <Popover\n trigger=\"hover\"\n placement=\"left\"\n remove-padding\n >\n <template #content>\n <div class=\"dropdown-menu\">\n <button\n v-for=\"list in lists\"\n :key=\"list.id\"\n class=\"button-default dropdown-item\"\n @click=\"toggleList(list.id)\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': list.inList }\"\n />\n {{ list.title }}\n </button>\n </div>\n </template>\n <template #trigger>\n <button class=\"btn button-default dropdown-item -has-submenu\">\n {{ $t('lists.manage_lists') }}\n <FAIcon\n class=\"chevron-icon\"\n size=\"lg\"\n icon=\"chevron-right\"\n />\n </button>\n </template>\n </Popover>\n </div>\n</template>\n\n<script src=\"./user_list_menu.js\"></script>\n","import { library } from '@fortawesome/fontawesome-svg-core'\nimport { faChevronRight } from '@fortawesome/free-solid-svg-icons'\nimport { mapState } from 'vuex'\n\nimport DialogModal from '../dialog_modal/dialog_modal.vue'\nimport Popover from '../popover/popover.vue'\n\nlibrary.add(faChevronRight)\n\nconst UserListMenu = {\n props: [\n 'user'\n ],\n data () {\n return {}\n },\n components: {\n DialogModal,\n Popover\n },\n created () {\n this.$store.dispatch('fetchUserInLists', this.user.id)\n },\n computed: {\n ...mapState({\n allLists: state => state.lists.allLists\n }),\n inListsSet () {\n return new Set(this.user.inLists.map(x => x.id))\n },\n lists () {\n if (!this.user.inLists) return []\n return this.allLists.map(list => ({\n ...list,\n inList: this.inListsSet.has(list.id)\n }))\n }\n },\n methods: {\n toggleList (listId) {\n if (this.inListsSet.has(listId)) {\n this.$store.dispatch('removeListAccount', { accountId: this.user.id, listId }).then((response) => {\n if (!response.ok) { return }\n this.$store.dispatch('fetchUserInLists', this.user.id)\n })\n } else {\n this.$store.dispatch('addListAccount', { accountId: this.user.id, listId }).then((response) => {\n if (!response.ok) { return }\n this.$store.dispatch('fetchUserInLists', this.user.id)\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 UserListMenu\n","import { render } from \"./user_list_menu.vue?vue&type=template&id=aeea2640\"\nimport script from \"./user_list_menu.js?vue&type=script&lang=js\"\nexport * from \"./user_list_menu.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { mapState } from 'vuex'\nimport ProgressButton from '../progress_button/progress_button.vue'\nimport Popover from '../popover/popover.vue'\nimport UserListMenu from 'src/components/user_list_menu/user_list_menu.vue'\nimport ConfirmModal from '../confirm_modal/confirm_modal.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faEllipsisV\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faEllipsisV\n)\n\nconst AccountActions = {\n props: [\n 'user', 'relationship'\n ],\n data () {\n return {\n showingConfirmBlock: false,\n showingConfirmRemoveFollower: false\n }\n },\n components: {\n ProgressButton,\n Popover,\n UserListMenu,\n ConfirmModal\n },\n methods: {\n showConfirmBlock () {\n this.showingConfirmBlock = true\n },\n hideConfirmBlock () {\n this.showingConfirmBlock = false\n },\n showConfirmRemoveUserFromFollowers () {\n this.showingConfirmRemoveFollower = true\n },\n hideConfirmRemoveUserFromFollowers () {\n this.showingConfirmRemoveFollower = false\n },\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 if (!this.shouldConfirmBlock) {\n this.doBlockUser()\n } else {\n this.showConfirmBlock()\n }\n },\n doBlockUser () {\n this.$store.dispatch('blockUser', this.user.id)\n this.hideConfirmBlock()\n },\n unblockUser () {\n this.$store.dispatch('unblockUser', this.user.id)\n },\n removeUserFromFollowers () {\n if (!this.shouldConfirmRemoveUserFromFollowers) {\n this.doRemoveUserFromFollowers()\n } else {\n this.showConfirmRemoveUserFromFollowers()\n }\n },\n doRemoveUserFromFollowers () {\n this.$store.dispatch('removeUserFromFollowers', this.user.id)\n this.hideConfirmRemoveUserFromFollowers()\n },\n reportUser () {\n this.$store.dispatch('openUserReportingModal', { userId: this.user.id })\n },\n openChat () {\n this.$router.push({\n name: 'chat',\n params: { username: this.$store.state.users.currentUser.screen_name, recipient_id: this.user.id }\n })\n }\n },\n computed: {\n shouldConfirmBlock () {\n return this.$store.getters.mergedConfig.modalOnBlock\n },\n shouldConfirmRemoveUserFromFollowers () {\n return this.$store.getters.mergedConfig.modalOnRemoveUserFromFollowers\n },\n ...mapState({\n pleromaChatMessagesAvailable: state => state.instance.pleromaChatMessagesAvailable\n })\n }\n}\n\nexport default AccountActions\n","import { render } from \"./account_actions.vue?vue&type=template&id=2d1f537d\"\nimport script from \"./account_actions.js?vue&type=script&lang=js\"\nexport * from \"./account_actions.js?vue&type=script&lang=js\"\n\nimport \"./account_actions.vue?vue&type=style&index=0&id=2d1f537d&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n class=\"user-note\"\n >\n <div class=\"heading\">\n <span>{{ $t('user_card.note') }}</span>\n <div class=\"buttons\">\n <button\n v-show=\"!editing && editable\"\n class=\"button-default btn\"\n @click=\"startEditing\"\n >\n {{ $t('user_card.edit_note') }}\n </button>\n <button\n v-show=\"editing\"\n class=\"button-default btn\"\n :disabled=\"frozen\"\n @click=\"finalizeEditing\"\n >\n {{ $t('user_card.edit_note_apply') }}\n </button>\n <button\n v-show=\"editing\"\n class=\"button-default btn\"\n :disabled=\"frozen\"\n @click=\"cancelEditing\"\n >\n {{ $t('user_card.edit_note_cancel') }}\n </button>\n </div>\n </div>\n <textarea\n v-show=\"editing\"\n v-model=\"localNote\"\n class=\"note-text\"\n />\n <span\n v-show=\"!editing\"\n class=\"note-text\"\n :class=\"{ '-blank': !relationship.note }\"\n >\n {{ relationship.note || $t('user_card.note_blank') }}\n </span>\n </div>\n</template>\n\n<script src=\"./user_note.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.user-note {\n display: flex;\n flex-direction: column;\n\n .heading {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 0.75em;\n\n .btn {\n min-width: 95px;\n }\n\n .buttons {\n display: flex;\n flex-direction: row;\n justify-content: right;\n\n .btn {\n margin-left: 0.5em;\n }\n }\n }\n\n .note-text {\n align-self: stretch;\n }\n\n .note-text.-blank {\n font-style: italic;\n color: var(--faint, $fallback--faint);\n }\n}\n</style>\n","const UserNote = {\n props: {\n user: Object,\n relationship: Object,\n editable: Boolean\n },\n data () {\n return {\n localNote: '',\n editing: false,\n frozen: false\n }\n },\n computed: {\n shouldShow () {\n return this.relationship.note || this.editing\n }\n },\n methods: {\n startEditing () {\n this.localNote = this.relationship.note\n this.editing = true\n },\n cancelEditing () {\n this.editing = false\n },\n finalizeEditing () {\n this.frozen = true\n\n this.$store.dispatch('editUserNote', {\n id: this.user.id,\n comment: this.localNote\n })\n .then(() => {\n this.frozen = false\n this.editing = false\n })\n .catch(() => {\n this.frozen = false\n })\n }\n }\n}\n\nexport default UserNote\n","import { render } from \"./user_note.vue?vue&type=template&id=3c543a1e\"\nimport script from \"./user_note.js?vue&type=script&lang=js\"\nexport * from \"./user_note.js?vue&type=script&lang=js\"\n\nimport \"./user_note.vue?vue&type=style&index=0&id=3c543a1e&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { unitToSeconds } from 'src/services/date_utils/date_utils.js'\nimport 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 UserNote from '../user_note/user_note.vue'\nimport Select from '../select/select.vue'\nimport UserLink from '../user_link/user_link.vue'\nimport RichContent from 'src/components/rich_content/rich_content.jsx'\nimport ConfirmModal from '../confirm_modal/confirm_modal.vue'\nimport generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\nimport { mapGetters } from 'vuex'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faBell,\n faRss,\n faSearchPlus,\n faExternalLinkAlt,\n faEdit,\n faTimes,\n faExpandAlt\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faRss,\n faBell,\n faSearchPlus,\n faExternalLinkAlt,\n faEdit,\n faTimes,\n faExpandAlt\n)\n\nexport default {\n props: [\n 'userId',\n 'switcher',\n 'selected',\n 'hideBio',\n 'rounded',\n 'bordered',\n 'avatarAction', // default - open profile, 'zoom' - zoom, function - call function\n 'onClose',\n 'hasNoteEditor'\n ],\n data () {\n return {\n followRequestInProgress: false,\n betterShadow: this.$store.state.interface.browserSupport.cssFilter,\n showingConfirmMute: false,\n muteExpiryAmount: 0,\n muteExpiryUnit: 'minutes'\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 '-rounded-t': this.rounded === 'top', // set border-top-left-radius and border-top-right-radius\n '-rounded': this.rounded === true, // set border-radius for all sides\n '-bordered': this.bordered === true, // set border for all sides\n '-popover': !!this.onClose // set popover rounding\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 showModerationMenu () {\n const privileges = this.loggedIn.privileges\n return this.loggedIn.role === 'admin' || privileges.includes('users_manage_activation_state') || privileges.includes('users_delete') || privileges.includes('users_manage_tags')\n },\n hasNote () {\n return this.relationship.note\n },\n supportsNote () {\n return 'note' in this.relationship\n },\n shouldConfirmMute () {\n return this.mergedConfig.modalOnMute\n },\n muteExpiryUnits () {\n return ['minutes', 'hours', 'days']\n },\n ...mapGetters(['mergedConfig'])\n },\n components: {\n UserAvatar,\n RemoteFollow,\n ModerationTools,\n AccountActions,\n ProgressButton,\n FollowButton,\n Select,\n RichContent,\n UserLink,\n UserNote,\n ConfirmModal\n },\n methods: {\n showConfirmMute () {\n this.showingConfirmMute = true\n },\n hideConfirmMute () {\n this.showingConfirmMute = false\n },\n muteUser () {\n if (!this.shouldConfirmMute) {\n this.doMuteUser()\n } else {\n this.showConfirmMute()\n }\n },\n doMuteUser () {\n this.$store.dispatch('muteUser', {\n id: this.user.id,\n expiresIn: this.shouldConfirmMute ? unitToSeconds(this.muteExpiryUnit, this.muteExpiryAmount) : 0\n })\n this.hideConfirmMute()\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 openProfileTab () {\n this.$store.dispatch('openSettingsModalTab', 'profile')\n },\n zoomAvatar () {\n const attachment = {\n url: this.user.profile_image_url_original,\n mimetype: 'image'\n }\n this.$store.dispatch('setMedia', [attachment])\n this.$store.dispatch('setCurrentMedia', attachment)\n },\n mentionUser () {\n this.$store.dispatch('openPostStatusModal', { replyTo: true, repliedUser: this.user })\n },\n onAvatarClickHandler (e) {\n if (this.onAvatarClick) {\n e.preventDefault()\n this.onAvatarClick()\n }\n }\n }\n}\n","import { render } from \"./user_card.vue?vue&type=template&id=bc098958\"\nimport script from \"./user_card.js?vue&type=script&lang=js\"\nexport * from \"./user_card.js?vue&type=script&lang=js\"\n\nimport \"./user_card.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <router-link\n :title=\"user.screen_name_ui\"\n :to=\"userProfileLink(user)\"\n >\n {{ at ? '@' : '' }}{{ user.screen_name_ui }}<UnicodeDomainIndicator\n :user=\"user\"\n />\n </router-link>\n</template>\n\n<script>\nimport UnicodeDomainIndicator from '../unicode_domain_indicator/unicode_domain_indicator.vue'\nimport generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\n\nconst UserLink = {\n props: {\n user: Object,\n at: {\n type: Boolean,\n default: true\n }\n },\n components: {\n UnicodeDomainIndicator\n },\n methods: {\n userProfileLink (user) {\n return generateProfileLink(\n user.id, user.screen_name,\n this.$store.state.instance.restrictedNicknames\n )\n }\n }\n}\n\nexport default UserLink\n</script>\n","import { render } from \"./user_link.vue?vue&type=template&id=2cae9070\"\nimport script from \"./user_link.vue?vue&type=script&lang=js\"\nexport * from \"./user_link.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import UserCard from '../user_card/user_card.vue'\nimport { defineAsyncComponent } from 'vue'\n\nconst UserPopover = {\n name: 'UserPopover',\n props: [\n 'userId', 'overlayCenters', 'disabled', 'overlayCentersSelector'\n ],\n components: {\n UserCard,\n Popover: defineAsyncComponent(() => import('../popover/popover.vue'))\n },\n computed: {\n userPopoverAvatarAction () {\n return this.$store.getters.mergedConfig.userPopoverAvatarAction\n },\n userPopoverOverlay () {\n return this.$store.getters.mergedConfig.userPopoverOverlay\n }\n }\n}\n\nexport default UserPopover\n","import { render } from \"./user_popover.vue?vue&type=template&id=6d5beeb8\"\nimport script from \"./user_popover.js?vue&type=script&lang=js\"\nexport * from \"./user_popover.js?vue&type=script&lang=js\"\n\nimport \"./user_popover.vue?vue&type=style&index=0&id=6d5beeb8&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Popover\n trigger=\"click\"\n popover-class=\"popover-default user-popover\"\n :overlay-centers-selector=\"overlayCentersSelector || '.user-info .Avatar'\"\n :overlay-centers=\"overlayCenters && userPopoverOverlay\"\n :disabled=\"disabled\"\n >\n <template #trigger>\n <slot />\n </template>\n <template #content=\"{close}\">\n <UserCard\n class=\"user-popover\"\n :user-id=\"userId\"\n :hide-bio=\"true\"\n :avatar-action=\"userPopoverAvatarAction == 'close' ? close : userPopoverAvatarAction\"\n :on-close=\"close\"\n />\n </template>\n </Popover>\n</template>\n\n<script src=\"./user_popover.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n/* popover styles load on-demand, so we need to override */\n/* stylelint-disable block-no-empty */\n.user-popover.popover {\n}\n/* stylelint-enable block-no-empty */\n\n</style>\n","\nconst VideoAttachment = {\n props: ['attachment', 'controls'],\n data () {\n return {\n blocksSuspend: false,\n // Start from true because removing \"loop\" property seems buggy in Vue\n hasAudio: true\n }\n },\n computed: {\n loopVideo () {\n if (this.$store.getters.mergedConfig.loopVideoSilentOnly) {\n return !this.hasAudio\n }\n return this.$store.getters.mergedConfig.loopVideo\n }\n },\n methods: {\n onPlaying (e) {\n this.setHasAudio(e)\n if (this.loopVideo) {\n this.$emit('play', { looping: true })\n return\n }\n this.$emit('play')\n },\n onPaused (e) {\n this.$emit('pause')\n },\n setHasAudio (e) {\n const target = e.srcElement || e.target\n // If hasAudio is false, we've already marked this video to not have audio,\n // a video can't gain audio out of nowhere so don't bother checking again.\n if (!this.hasAudio) return\n if (typeof target.webkitAudioDecodedByteCount !== 'undefined') {\n // non-zero if video has audio track\n if (target.webkitAudioDecodedByteCount > 0) return\n }\n if (typeof target.mozHasAudio !== 'undefined') {\n // true if video has audio track\n if (target.mozHasAudio) return\n }\n if (typeof target.audioTracks !== 'undefined') {\n if (target.audioTracks.length > 0) return\n }\n this.hasAudio = false\n }\n }\n}\n\nexport default VideoAttachment\n","import { render } from \"./video_attachment.vue?vue&type=template&id=dda2841a\"\nimport script from \"./video_attachment.js?vue&type=script&lang=js\"\nexport * from \"./video_attachment.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <video\n class=\"video\"\n preload=\"metadata\"\n :src=\"attachment.url\"\n :loop=\"loopVideo\"\n :controls=\"controls\"\n :alt=\"attachment.description\"\n :title=\"attachment.description\"\n playsinline\n @playing=\"onPlaying\"\n @pause=\"onPaused\"\n />\n</template>\n\n<script src=\"./video_attachment.js\"></script>\n","var map = {\n\t\"./ar.json\": [\n\t\t36224,\n\t\t7808\n\t],\n\t\"./ca.json\": [\n\t\t49394,\n\t\t6234\n\t],\n\t\"./cs.json\": [\n\t\t87436,\n\t\t7433\n\t],\n\t\"./de.json\": [\n\t\t25195,\n\t\t9459\n\t],\n\t\"./en.json\": [\n\t\t88797\n\t],\n\t\"./eo.json\": [\n\t\t97898,\n\t\t4646\n\t],\n\t\"./es.json\": [\n\t\t98559,\n\t\t3968\n\t],\n\t\"./et.json\": [\n\t\t13230,\n\t\t4451\n\t],\n\t\"./eu.json\": [\n\t\t84826,\n\t\t4542\n\t],\n\t\"./fa.json\": [\n\t\t52006,\n\t\t2953\n\t],\n\t\"./fi.json\": [\n\t\t70823,\n\t\t9738\n\t],\n\t\"./fr.json\": [\n\t\t61341,\n\t\t3746\n\t],\n\t\"./ga.json\": [\n\t\t41647,\n\t\t830\n\t],\n\t\"./he.json\": [\n\t\t92215,\n\t\t379\n\t],\n\t\"./hu.json\": [\n\t\t95028,\n\t\t5494\n\t],\n\t\"./id.json\": [\n\t\t62263,\n\t\t2513\n\t],\n\t\"./it.json\": [\n\t\t2533,\n\t\t1159\n\t],\n\t\"./ja_easy.json\": [\n\t\t8439,\n\t\t8714\n\t],\n\t\"./ja_pedantic.json\": [\n\t\t22838,\n\t\t325\n\t],\n\t\"./ko.json\": [\n\t\t10707,\n\t\t9670\n\t],\n\t\"./nan-TW.json\": [\n\t\t42101,\n\t\t9862\n\t],\n\t\"./nb.json\": [\n\t\t72358,\n\t\t7845\n\t],\n\t\"./nl.json\": [\n\t\t49922,\n\t\t6256\n\t],\n\t\"./oc.json\": [\n\t\t47297,\n\t\t617\n\t],\n\t\"./pl.json\": [\n\t\t82098,\n\t\t5571\n\t],\n\t\"./pt.json\": [\n\t\t94465,\n\t\t4047\n\t],\n\t\"./ro.json\": [\n\t\t64367,\n\t\t6342\n\t],\n\t\"./ru.json\": [\n\t\t73289,\n\t\t5964\n\t],\n\t\"./sk.json\": [\n\t\t31478,\n\t\t1547\n\t],\n\t\"./te.json\": [\n\t\t32781,\n\t\t2044\n\t],\n\t\"./uk.json\": [\n\t\t8411,\n\t\t5253\n\t],\n\t\"./vi.json\": [\n\t\t6294,\n\t\t4975\n\t],\n\t\"./zh.json\": [\n\t\t4425,\n\t\t5929\n\t],\n\t\"./zh_Hant.json\": [\n\t\t37644,\n\t\t6544\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(() => {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 27650;\nmodule.exports = webpackAsyncContext;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + ({\"50\":\"emoji-annotations/en_GB-json\",\"227\":\"emoji-annotations/ha-json\",\"278\":\"emoji-annotations/kn-json\",\"313\":\"emoji-annotations/tg-json\",\"325\":\"i18n/ja_pedantic-json\",\"346\":\"emoji-annotations/rw-json\",\"379\":\"i18n/he-json\",\"420\":\"emoji-annotations/fi-json\",\"457\":\"emoji-annotations/zh-json\",\"577\":\"emoji-annotations/en_001-json\",\"617\":\"i18n/oc-json\",\"625\":\"emoji-annotations/so-json\",\"678\":\"emoji-annotations/ps-json\",\"786\":\"emoji-annotations/xh-json\",\"830\":\"i18n/ga-json\",\"1012\":\"emoji-annotations/or-json\",\"1044\":\"emoji-annotations/zh_Hant_HK-json\",\"1056\":\"emoji-annotations/uz-json\",\"1095\":\"emoji-annotations/pl-json\",\"1159\":\"i18n/it-json\",\"1162\":\"emoji-annotations/ccp-json\",\"1236\":\"emoji-annotations/fil-json\",\"1290\":\"emoji-annotations/ja-json\",\"1404\":\"emoji-annotations/km-json\",\"1452\":\"emoji-annotations/yue-json\",\"1546\":\"emoji-annotations/pt_PT-json\",\"1547\":\"i18n/sk-json\",\"1553\":\"emoji-annotations/sl-json\",\"1584\":\"emoji-annotations/to-json\",\"1596\":\"emoji-annotations/da-json\",\"1613\":\"emoji-annotations/mai-json\",\"1780\":\"emoji-annotations/tk-json\",\"1790\":\"emoji-annotations/dsb-json\",\"1821\":\"emoji-annotations/fr_CA-json\",\"1911\":\"emoji-annotations/mr-json\",\"1959\":\"emoji-annotations/su-json\",\"2044\":\"i18n/te-json\",\"2223\":\"emoji-annotations/fr-json\",\"2243\":\"emoji-annotations/sa-json\",\"2342\":\"emoji-annotations/az-json\",\"2350\":\"emoji-annotations/sk-json\",\"2397\":\"emoji-annotations/kl-json\",\"2479\":\"emoji-annotations/jv-json\",\"2513\":\"i18n/id-json\",\"2569\":\"emoji-annotations/tt-json\",\"2599\":\"emoji-annotations/kok-json\",\"2656\":\"emoji-annotations/ckb-json\",\"2685\":\"emoji-annotations/ml-json\",\"2699\":\"emoji-annotations/es_MX-json\",\"2767\":\"emoji-annotations/zh_Hant-json\",\"2861\":\"emoji-annotations/hr-json\",\"2873\":\"emoji-annotations/kk-json\",\"2874\":\"emoji-annotations/sc-json\",\"2883\":\"emoji-annotations/ku-json\",\"2953\":\"i18n/fa-json\",\"2966\":\"emoji-annotations/ko-json\",\"2992\":\"emoji-annotations/eu-json\",\"3056\":\"emoji-annotations/hi_Latn-json\",\"3241\":\"emoji-annotations/sv-json\",\"3276\":\"emoji-annotations/et-json\",\"3313\":\"emoji-annotations/es_US-json\",\"3377\":\"emoji-annotations/as-json\",\"3568\":\"emoji-annotations/ti-json\",\"3687\":\"emoji\",\"3746\":\"i18n/fr-json\",\"3887\":\"emoji-annotations/sr-json\",\"3951\":\"emoji-annotations/th-json\",\"3968\":\"i18n/es-json\",\"3974\":\"emoji-annotations/bg-json\",\"3994\":\"emoji-annotations/sw_KE-json\",\"4047\":\"i18n/pt-json\",\"4209\":\"emoji-annotations/doi-json\",\"4354\":\"emoji-annotations/si-json\",\"4368\":\"emoji-annotations/sq-json\",\"4424\":\"emoji-annotations/yue_Hans-json\",\"4451\":\"i18n/et-json\",\"4542\":\"i18n/eu-json\",\"4571\":\"emoji-annotations/ga-json\",\"4646\":\"i18n/eo-json\",\"4691\":\"emoji-annotations/ca-json\",\"4710\":\"emoji-annotations/cs-json\",\"4718\":\"emoji-annotations/mn-json\",\"4770\":\"emoji-annotations/lb-json\",\"4785\":\"emoji-annotations/ky-json\",\"4786\":\"emoji-annotations/te-json\",\"4879\":\"emoji-annotations/en_CA-json\",\"4902\":\"emoji-annotations/hu-json\",\"4975\":\"i18n/vi-json\",\"5041\":\"emoji-annotations/pt-json\",\"5104\":\"emoji-annotations/pcm-json\",\"5115\":\"emoji-annotations/sr_Latn_BA-json\",\"5119\":\"emoji-annotations/am-json\",\"5224\":\"emoji-annotations/vi-json\",\"5253\":\"i18n/uk-json\",\"5304\":\"emoji-annotations/ha_NE-json\",\"5401\":\"emoji-annotations/mni-json\",\"5494\":\"i18n/hu-json\",\"5521\":\"emoji-annotations/fa-json\",\"5548\":\"emoji-annotations/he-json\",\"5571\":\"i18n/pl-json\",\"5728\":\"emoji-annotations/en-json\",\"5887\":\"emoji-annotations/rm-json\",\"5929\":\"i18n/zh-json\",\"5964\":\"i18n/ru-json\",\"5968\":\"emoji-annotations/hi-json\",\"6060\":\"emoji-annotations/sr_Cyrl_BA-json\",\"6068\":\"emoji-annotations/ka-json\",\"6116\":\"emoji-annotations/gd-json\",\"6126\":\"emoji-annotations/gl-json\",\"6148\":\"emoji-annotations/br-json\",\"6226\":\"emoji-annotations/de-json\",\"6234\":\"i18n/ca-json\",\"6256\":\"i18n/nl-json\",\"6272\":\"emoji-annotations/cy-json\",\"6342\":\"i18n/ro-json\",\"6344\":\"emoji-annotations/hy-json\",\"6355\":\"emoji-annotations/af-json\",\"6544\":\"i18n/zh_Hant-json\",\"6701\":\"emoji-annotations/mi-json\",\"6773\":\"emoji-annotations/nl-json\",\"6790\":\"emoji-annotations/my-json\",\"6797\":\"emoji-annotations/ur-json\",\"6826\":\"emoji-annotations/sd-json\",\"6831\":\"emoji-annotations/es-json\",\"6869\":\"emoji-annotations/chr-json\",\"6936\":\"emoji-annotations/ia-json\",\"6946\":\"emoji-annotations/pa-json\",\"7164\":\"emoji-annotations/de_CH-json\",\"7169\":\"emoji-annotations/lt-json\",\"7261\":\"emoji-annotations/gu-json\",\"7300\":\"emoji-annotations/is-json\",\"7303\":\"emoji-annotations/wo-json\",\"7304\":\"emoji-annotations/be-json\",\"7360\":\"emoji-annotations/ar_SA-json\",\"7433\":\"i18n/cs-json\",\"7464\":\"emoji-annotations/lo-json\",\"7569\":\"emoji-annotations/ast-json\",\"7585\":\"emoji-annotations/sw-json\",\"7808\":\"i18n/ar-json\",\"7845\":\"i18n/nb-json\",\"7855\":\"emoji-annotations/sat-json\",\"7879\":\"emoji-annotations/el-json\",\"7897\":\"emoji-annotations/ta-json\",\"8015\":\"emoji-annotations/hsb-json\",\"8031\":\"emoji-annotations/qu-json\",\"8134\":\"emoji-annotations/bs-json\",\"8395\":\"emoji-annotations/ru-json\",\"8681\":\"emoji-annotations/sr_Latn-json\",\"8714\":\"i18n/ja_easy-json\",\"8732\":\"emoji-annotations/yo-json\",\"8873\":\"emoji-annotations/es_419-json\",\"8898\":\"emoji-annotations/lv-json\",\"8970\":\"emoji-annotations/it-json\",\"8988\":\"emoji-annotations/en_IN-json\",\"8995\":\"emoji-annotations/fo-json\",\"9064\":\"emoji-annotations/bn-json\",\"9319\":\"emoji-annotations/zu-json\",\"9360\":\"emoji-annotations/en_AU-json\",\"9377\":\"emoji-annotations/ne-json\",\"9399\":\"emoji-annotations/mt-json\",\"9414\":\"emoji-annotations/nn-json\",\"9459\":\"i18n/de-json\",\"9465\":\"emoji-annotations/id-json\",\"9670\":\"i18n/ko-json\",\"9738\":\"i18n/fi-json\",\"9757\":\"emoji-annotations/ug-json\",\"9780\":\"emoji-annotations/kab-json\",\"9790\":\"emoji-annotations/ceb-json\",\"9862\":\"i18n/nan-TW-json\",\"9864\":\"emoji-annotations/ro-json\",\"9871\":\"emoji-annotations/uk-json\",\"9873\":\"emoji-annotations/ar-json\",\"9895\":\"emoji-annotations/ig-json\",\"9921\":\"emoji-annotations/mk-json\",\"9924\":\"emoji-annotations/ms-json\",\"9926\":\"emoji-annotations/yo_BJ-json\",\"9978\":\"emoji-annotations/tr-json\",\"9979\":\"emoji-annotations/no-json\",\"9994\":\"emoji-annotations/pa_Arab-json\"}[chunkId] || chunkId) + \".\" + {\"48\":\"b5ecdbc517423af07ca4\",\"50\":\"bd687f904492facc81d1\",\"159\":\"903e90c9de8ef6c67077\",\"227\":\"2a08912b38925c10f970\",\"278\":\"efdac8ac0cb00991ba1e\",\"313\":\"9647f559a4477d7d8e96\",\"325\":\"b52fa70f0bf89ae01cfb\",\"346\":\"031838c5374676191131\",\"379\":\"03c5d271a4034de06e6f\",\"420\":\"0f254bb4b0faaba4abcc\",\"457\":\"e42a28127d5c1aff6c85\",\"577\":\"72d8c47269350f59aa9f\",\"617\":\"4f52bf1b6e3213acc33c\",\"625\":\"f75abd16637c8924c075\",\"678\":\"a0d9eea5b81bcad11e64\",\"786\":\"21e88c05ad3113dfc7f2\",\"830\":\"3f1981817977a16f1d7e\",\"1012\":\"b007c2f6f92dcc95efac\",\"1044\":\"7eee03c705347a21c612\",\"1056\":\"ac43f4c54d4587324a20\",\"1095\":\"e9e8f1ed84dc6c169516\",\"1159\":\"99a21d5c98376af17141\",\"1162\":\"02836537ffe2b02291cb\",\"1236\":\"4fca833f178d1b889b69\",\"1290\":\"0bd51f8c40c106355b0e\",\"1404\":\"9bc922b2e0faa64b4c53\",\"1452\":\"15102c0ddfdf19bdfb4c\",\"1546\":\"c381b13e323f91b0e6b3\",\"1547\":\"d8d0eba80f94e6f55145\",\"1553\":\"a40c5548da34fce6f1d0\",\"1584\":\"50ac37d101caaf592c94\",\"1596\":\"8d074e27df71edafc543\",\"1613\":\"302386b3358f4d34f9c8\",\"1780\":\"23a9a6229829921704ad\",\"1790\":\"7635686ffd8d62264466\",\"1821\":\"59ed6b59e2ca68707292\",\"1911\":\"cb0a87d9aabf8a52161d\",\"1959\":\"daff15251020cbecea7d\",\"2044\":\"ce6db28261b2f824064f\",\"2223\":\"da49ed0d1a6622fe1c67\",\"2243\":\"21b06234a08c7469ccb4\",\"2342\":\"9a32f2941d9c4d1f834c\",\"2350\":\"5d96bdb4da82655d0314\",\"2397\":\"87ab8661b4bdecd09faf\",\"2479\":\"1c8d5ffcff22b46b6214\",\"2513\":\"e5c9ee768155f88128b9\",\"2569\":\"4c089389ba9983ec8ef7\",\"2599\":\"116e4f72db3bfb846233\",\"2656\":\"13dc83db1e15aa76051a\",\"2685\":\"3f2902a84240faff1b48\",\"2699\":\"ee359d4b611fdb1aeb33\",\"2767\":\"9cbb765c181d443828a9\",\"2861\":\"fe847ade1f18a60e513c\",\"2873\":\"a20b59d47bdfe99786ad\",\"2874\":\"c84c9c47d2e104c43e4c\",\"2883\":\"2173ed87f8d7372ee209\",\"2953\":\"a19100f6a5a9431e2adb\",\"2966\":\"d175900fe48f48ce87c8\",\"2992\":\"931b429f5fcc141549a5\",\"3056\":\"3cb73c456f31261f1908\",\"3241\":\"8b0374cbca3a77519876\",\"3276\":\"c42e3f186a55ecb061cd\",\"3313\":\"280bdb036dfd651d079a\",\"3377\":\"34cf67edc1cecd195738\",\"3568\":\"5b173bd33bb960be805b\",\"3687\":\"33eab91b64f59431137d\",\"3746\":\"36ef21ccb1203d3e65ae\",\"3887\":\"e29a20e59a708df0c6a8\",\"3951\":\"34709bae223bb9d2587c\",\"3968\":\"4a302899a65e1f67d8a2\",\"3974\":\"7c69c52572a7bf87e1db\",\"3994\":\"f3563cbeac1c158563d5\",\"4047\":\"3fc5593e030268bcd291\",\"4209\":\"7841c3f3ceb4e3da0bd1\",\"4354\":\"841b356da03623c10dbf\",\"4368\":\"bcf154ed8a6138aa089c\",\"4424\":\"cc60bb10d32fab3d8207\",\"4451\":\"580b101d6bb83a8aee75\",\"4542\":\"d2eab39b0427995fc314\",\"4571\":\"cb3f9e613a8c445aea23\",\"4646\":\"6c62eef99e850912498b\",\"4691\":\"ce029e860b10b242c6a5\",\"4710\":\"48d8bba230dc9fe6b3dc\",\"4718\":\"764169f1168d0432640f\",\"4770\":\"499c526f3a653618ea9b\",\"4785\":\"310bda579c819eda9472\",\"4786\":\"8a69a10f62cdf626244e\",\"4879\":\"5de965778a6b8a5a4bb4\",\"4902\":\"1faf52040deda872b416\",\"4975\":\"703c1e731be6e857bbf3\",\"5041\":\"2b2512ee44291bdb2ae7\",\"5104\":\"eac3a5ad0b4b5b33289d\",\"5115\":\"72933405032b81344754\",\"5119\":\"94388548f7c18233fec3\",\"5224\":\"f6a364b2add7f8c8bc67\",\"5253\":\"003908af9b15becdd382\",\"5304\":\"e4855d92aaccfdd6ba57\",\"5401\":\"7db7f76ab1ce34e3683d\",\"5494\":\"0487899ca7a7a8505ed8\",\"5521\":\"819c7f263c8594ccf4fa\",\"5548\":\"a3d7631f32182b0955a2\",\"5571\":\"c963247822381b05579b\",\"5728\":\"6c3947f7c49c3952084d\",\"5887\":\"985d4934f386fd05a75c\",\"5929\":\"5831b903c3e6d281f122\",\"5964\":\"b913eb7f7e9f0c642438\",\"5968\":\"04bc5f73dc2169def97e\",\"6060\":\"83c7c64b9696ae2339f2\",\"6068\":\"567e7b051d90a37003f3\",\"6116\":\"e3d0aea3725be774ad81\",\"6126\":\"ce89036f0ae72224c994\",\"6148\":\"c7175423d8965ed10bae\",\"6226\":\"e1443c01a191af1665e1\",\"6234\":\"1eb24bc001efa3c0627f\",\"6256\":\"3fb9758b10c29434b613\",\"6272\":\"e09dd13da5ad56530ead\",\"6342\":\"3fd9977ed1c1413059ae\",\"6344\":\"2d819f7faabfeba8457f\",\"6355\":\"96c988285a6a2cce6246\",\"6464\":\"eb9c90a1c948cde554e9\",\"6544\":\"f7e1d0f4b873c60d6396\",\"6701\":\"9efe6f146ecd8987f80a\",\"6773\":\"52f4b93b8fa5e22cb585\",\"6790\":\"8e7dd1485813d15bba7e\",\"6797\":\"983c02109444c883a18f\",\"6826\":\"8f2a6a06dc3cf185f79d\",\"6831\":\"f593b0dc2367a9d7fb30\",\"6869\":\"e7e542ab5a74167dec10\",\"6936\":\"8e8365e2bf41779e2beb\",\"6946\":\"7d60d69762a108270669\",\"7164\":\"b4a5891ea2f38d616ec0\",\"7169\":\"ced4d5e70edc60127df6\",\"7261\":\"8a899f364cf260376905\",\"7300\":\"62e220c65215b034533d\",\"7303\":\"e0d689e22cda0dd77e9a\",\"7304\":\"f92f80669873a4100c69\",\"7360\":\"4a6f4402931a867070f0\",\"7433\":\"5eedbe9f7084c349fbe8\",\"7464\":\"ecb06d61465a355b8157\",\"7569\":\"7e4da8cb7e539c19a9b9\",\"7585\":\"d5f350641b9cbcc0e126\",\"7586\":\"981b2305a0019f6042a5\",\"7808\":\"4916f840147303aa65fe\",\"7845\":\"a54af3b1f47d576ad4aa\",\"7855\":\"71e92700b2aaca8e021c\",\"7879\":\"b36610f2ea16d56c2314\",\"7897\":\"675cc6c7607449d4a91b\",\"7962\":\"e25d40b042f8ee7389c3\",\"8015\":\"438721731b4171bc6fc3\",\"8031\":\"55f4df57e71076dbad9f\",\"8134\":\"48ef42da1c7976cf083c\",\"8395\":\"a81d0df34460837ccacc\",\"8681\":\"ff27d1f455bf2afb8d70\",\"8714\":\"1d5ea7e755b066ac2cdd\",\"8732\":\"ea1150d6bc360dd86f2e\",\"8873\":\"d81991295392b6ed83bb\",\"8898\":\"5600c2eb6d59fa0aa2e2\",\"8970\":\"9c1758f4fd3391f7f61a\",\"8988\":\"002faa48c09121928fca\",\"8995\":\"9b060e8009b3a8be4597\",\"9060\":\"24271e167e0471a1a732\",\"9064\":\"657aac057f36ad06c58d\",\"9319\":\"e0cb7cd3890583fd0f6d\",\"9360\":\"33aac9bbd887273a34b1\",\"9377\":\"a0118dca2096a101b8e8\",\"9399\":\"3ddf7dbc114adf90c500\",\"9414\":\"7293cd5d7205681cf48c\",\"9459\":\"bfa48615ac92f87ff37a\",\"9465\":\"55f83c46d753b0b69330\",\"9670\":\"9029d09084bb22d8b705\",\"9738\":\"d1934c18f12d80493ab1\",\"9757\":\"bf768bd32e9ff02b0a8a\",\"9780\":\"1a2de4774f4ddc2b51dd\",\"9790\":\"9db0336f168aa77ee395\",\"9801\":\"99ace6b5dc657bf1a65b\",\"9862\":\"7f2789d8a461e86d1734\",\"9864\":\"cb62f86ce78c94d1e813\",\"9871\":\"af110c8eef232638fc4d\",\"9873\":\"5527466d349f2954d49b\",\"9895\":\"f19fa5fe3582463ba73c\",\"9921\":\"a254cabb8570419cc426\",\"9924\":\"272ee4735aabc37015dd\",\"9926\":\"650318c25fe4da92bad8\",\"9978\":\"6462e8cfd5006cf5b6cf\",\"9979\":\"22bdbbc77cc3c14ada58\",\"9994\":\"5ae021308b1c5f6dd8a7\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/css/\" + chunkId + \".\" + {\"159\":\"1d523a00378ebd68c5b3\",\"6464\":\"169260b661120cc50815\",\"7586\":\"0d43f70bc6240422f179\",\"7962\":\"76663e78ad5ea0bb0b90\",\"9801\":\"cfe503d4c949ae0c3813\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","if (typeof document === \"undefined\") return;\nvar createStylesheet = (chunkId, fullhref, oldTag, resolve, reject) => {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = (event) => {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tif (linkTag.parentNode) linkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tif (oldTag) {\n\t\toldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling);\n\t} else {\n\t\tdocument.head.appendChild(linkTag);\n\t}\n\treturn linkTag;\n};\nvar findStylesheet = (href, fullhref) => {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = (chunkId) => {\n\treturn new Promise((resolve, reject) => {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, null, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t2143: 0\n};\n\n__webpack_require__.f.miniCss = (chunkId, promises) => {\n\tvar cssChunks = {\"159\":1,\"6464\":1,\"7586\":1,\"7962\":1,\"9801\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(() => {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, (e) => {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t2143: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\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\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkpleroma_fe\"] = self[\"webpackChunkpleroma_fe\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [3733], () => (__webpack_require__(2514)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","leafPrototypes","getProto","inProgress","dataWebpackPrefix","ctx","normalize","_normalize","interpolate","_interpolate","named","_named","list","_list","plural","_plural","map","webpackAsyncContext","req","__webpack_require__","o","Promise","resolve","then","e","Error","code","ids","id","t","keys","Object","module","exports","data","emojiCurry","suggestEmoji","emoji","usersCurry","store","suggestUsers","input","nameKeywordLocalizer","firstChar","emojis","noPrefix","toLowerCase","substr","_objectSpread","filter","names","concat","keywords","kw","match","length","k","score","Math","max","apply","_toConsumableArray","name","imageUrl","startsWith","displayText","sort","a","b","alphabetically","_ref","dispatch","state","suggestions","previousQuery","timeout","cancelUserSearch","debounceUserSearch","query","reject","setTimeout","userSearch","clearTimeout","_ref2","_asyncToGenerator","_regeneratorRuntime","_callee","newSuggestions","_context","prev","next","abrupt","includes","users","user","screen_name","slice","aScore","bScore","screen_name_ui","detailText","profile_image_url_original","replacement","stop","_x","arguments","getTagName","tag","result","exec","getAttrs","innertag","substring","replace","RegExp","trim","attrs","Array","from","matchAll","_slicedToArray","_ref3","_ref4","v","fromEntries","_ref5","_ref6","attrKey","processTextForEmoji","text","processor","buffer","textBuffer","i","char","_step","found","_iterator","_createForOfIteratorHelper","s","n","done","value","shortcode","err","f","push","class","props","url","required","type","String","content","default","methods","onClick","decoded","this","decodeURI","link","generateTagLink","$router","window","open","_createElementBlock","_hoisted_1","_createElementVNode","href","_ctx","target","_cache","_withModifiers","innerHTML","MAYBE_LINE_BREAKING_ELEMENTS","components","MentionsLine","HashtagLink","html","attentions","handleLinks","Boolean","greentext","render","_this","preProcessPerLine","newHtml","currentMentions","lastSpacing","lastTags","writtenMentions","invisibleMentions","writtenTags","mentionIndex","tagsIndex","encounteredTextReverse","pass1","undefined","emptyElements","Set","levels","tagBuffer","getCurrentBuffer","flushText","handleSelfClosing","handleOpen","curBuf","newLevel","_unescape","handleClose","currentTag","pop","tagFull","tagName","has","convertHtmlToTree","processItem","item","index","array","what","emptyText","_createVNode","StillImage","isArray","_item","_item2","opener","children","closer","Tag","fullAttrs","mentionsLinePadding","_mergeProps","linkData","getLinkData","notifying","some","statusnet_profile_url","MENTIONS_LIMIT","renderMention","pass2","reverse","processItemReverse","_item3","rel","_getLinkData","_objectWithoutProperties","_excluded","renderHashtag","newChildren","prototype","toString","call","_isVNode","event","$emit","textContent","stripTags","join","_flattenDeep","greentextHandle","lines","blockElements","linebreakElements","visualLineElements","values","nonEmptyElements","elem","allElements","level","flush","handleBr","unshift","shift","convertHtmlToLines","string","every","l","cleanedString","findFirstUsable","slots","findIndex","_","renderOnlyFocused","onSwitch","Function","activeTab","scrollableTabs","sideTabBar","bodyScrollLock","active","computed","activeIndex","slot","key","isActive","_this2","tabName","$slots","beforeUpdate","clickTab","_this3","preventDefault","setTab","Fragment","$refs","contents","scrollTop","_this4","tabs","classesTab","classesWrapper","image","disabled","label","icon","FAIcon","classes","fullHeight","renderSlot","_withDirectives","_resolveDirective","library","faCircleNotch","fetch","select","unmounted","_ref$childPropName","childPropName","_ref$additionalPropNa","additionalPropNames","WrappedComponent","getComponentProps","loading","bottomedOut","error","entries","created","addEventListener","scrollLoad","fetchEntries","removeEventListener","$props","$store","updateEntries","newEntries","isEmpty","bodyBRect","document","body","getBoundingClientRect","height","y","$el","offsetHeight","innerHeight","pageYOffset","_defineProperty","$t","specialJsonName","ja","languages","langCodeToJsonName","langCodeToCldrName","ensureFinalFallback","codes","codeList","allowArrayLike","it","Symbol","iterator","minLen","_arrayLikeToArray","constructor","test","_unsupportedIterableToArray","F","_e","TypeError","normalCompletion","didErr","step","_e2","arr","len","arr2","_setLanguage","loadLanguageFile","en","require","setLanguage","i18n","language","_languages","first","rest","lang","_messages","_toArray","locale","_isEqual","fallbackLocale","messages","sent","setLocaleMessage","t0","finish","_x2","EventTarget","EventTargetPolyfill","settingsModalState","settingsModalLoadedUser","settingsModalLoadedAdmin","settingsModalTargetTab","settingsModalMode","settings","currentSaveStateNotice","noticeClearTimeout","notificationPermission","browserSupport","cssFilter","CSS","supports","layoutType","globalNotices","layoutHeight","lastTimeline","mutations","settingsSaved","success","errorData","setNotificationPermission","permission","setLayoutType","closeSettingsModal","togglePeekSettingsModal","openSettingsModal","setSettingsModalTargetTab","pushGlobalNotice","notice","removeGlobalNotice","setLayoutHeight","setLayoutWidth","layoutWidth","setLastTimeline","actions","setPageTitle","rootState","option","title","instance","commit","_ref7","_ref8","clearSettingsModalTargetTab","_ref9","openSettingsModalTab","_ref10","_ref11","_ref12","messageKey","_ref12$messageArgs","messageArgs","_ref12$level","_ref12$timeout","newNotice","_ref13","_ref14","_ref15","rootGetters","width","normalOrMobile","mergedConfig","thirdColumnMode","currentUser","_ref16","SORTED_EMOJI_GROUP_IDS","REGIONAL_INDICATORS","start","A","codePointAt","res","end","letter","fromCodePoint","displayTextI18n","args","loadAnnotations","injectAnnotations","annotations","availableLangs","reduce","acc","cur","registrationOpen","server","textlimit","themeData","vapidPublicKey","alwaysShowSubjectInput","defaultAvatar","defaultBanner","background","collapseMessageWithSubject","useAtIcon","mentionLinkDisplay","mentionLinkShowTooltip","mentionLinkShowAvatar","mentionLinkFadeDomain","mentionLinkShowYous","mentionLinkBoldenYou","hideFilteredStatuses","hideMutedPosts","hideMutedThreads","hideWordFilteredPosts","hidePostStats","hideBotIndication","hideSitename","hideUserStats","muteBotStatuses","modalOnRepeat","modalOnUnfollow","modalOnBlock","modalOnMute","modalOnDelete","modalOnLogout","modalOnApproveFollow","modalOnDenyFollow","modalOnRemoveUserFromFollowers","loginMethod","logo","logoMargin","logoMask","logoLeft","disableUpdateNotification","minimalScopesMode","nsfwCensorImage","postContentType","redirectRootLogin","redirectRootNoLogin","scopeCopy","showFeaturesPanel","showInstanceSpecificPanel","sidebarRight","subjectLineBehavior","theme","virtualScrolling","sensitiveByDefault","conversationDisplay","conversationTreeAdvanced","conversationOtherRepliesButton","conversationTreeFadeAncestors","maxDepthInThread","autocompleteSelect","customEmoji","customEmojiFetched","emojiFetched","unicodeEmojiAnnotations","pleromaBackend","postFormats","restrictedNicknames","safeDM","knownDomains","birthdayRequired","birthdayMinAge","shoutAvailable","pleromaChatMessagesAvailable","pleromaCustomEmojiReactionsAvailable","gopherAvailable","mediaProxyAvailable","suggestionsEnabled","suggestionsWeb","quotingAvailable","instanceSpecificPanelContent","tos","backendVersion","frontendVersion","pollsAvailable","pollLimits","max_options","max_option_chars","min_expiration","max_expiration","setInstanceOption","setKnownDomains","domains","setUnicodeEmojiAnnotations","getters","instanceDefaultConfig","instanceDefaultProperties","groupedCustomEmojis","packs","tags","packName","packsOf","forEach","packId","standardEmojiList","groupId","standardEmojiGroupList","instanceDomain","URL","hostname","remoteInteractionLink","endsWith","statusId","nickname","getStaticEmoji","slug","groups","_groups$symbols","symbols","console","warn","loadUnicodeEmojiData","langList","all","_callee2","_context2","getCustomEmoji","_callee3","caseInsensitiveStrCmp","noPackLast","byPackThenByName","_context3","ok","json","assign","la","lb","aNull","bNull","packOf","packOfA","packOfB","image_url","setTheme","themeName","getPreset","config","customTheme","themeSource","source","themeEngineVersion","CURRENT_VERSION","applyTheme","fetchEmoji","getKnownDomains","_ref17","_callee4","_context4","apiService","credentials","emptyTl","userId","statuses","statusesObject","faves","visibleStatuses","visibleStatusesObject","newStatusCount","maxId","minId","minVisibleId","followers","friends","flushMarker","emptyNotifications","desktopNotificationSilence","Number","POSITIVE_INFINITY","idStore","defaultState","allStatuses","allStatusesObject","conversationsObject","notifications","favorites","timelines","mentions","public","media","publicAndExternal","dms","bookmarks","mergeOrAdd","obj","oldItem","_merge","_omitBy","attachments","splice","new","status","deleted","prepareStatus","sortById","seqA","seqB","isSeqA","isNaN","isSeqB","sortTimeline","timeline","_last","addStatusToGlobalStorage","conversationId","statusnet_conversation_id","updateNotificationsMinMaxId","notification","addNewStatuses","_ref2$showImmediately","showImmediately","_ref2$user","_ref2$noIdUpdate","noIdUpdate","_ref2$pagination","pagination","_isArray","timelineObject","minNew","_minBy","maxNew","_maxBy","newer","older","addStatus","resultForCurrentTimeline","addToTimeline","_find","visibility","quote","processors","edit","retweet","retweetedStatus","retweeted_status","favorite","add","counter","in_reply_to_status_id","favorited","fave_num","favoriteStatus","deletion","uri","_remove","action","removeStatusFromGlobalStorage","follow","unknown","log","_each","addNewNotifications","newNotificationSideEffects","visibleNotificationTypes","isValidNotification","isStatusNotification","report","hasOwnProperty","seen","removeStatus","_first","showNewStatuses","oldTimeline","_slice","resetStatuses","emptyState","clearTimeline","_ref8$excludeUserId","excludeUserId","clearNotifications","setFavorited","newStatus","setFavoritedConfirm","_findIndex","favoritedBy","setMutedStatus","thread_muted","setRetweeted","repeated","repeat_num","setRetweetedConfirm","rebloggedBy","setBookmarked","bookmarked","setBookmarkedConfirm","setDeleted","setManyDeleted","condition","setLoading","setNsfw","nsfw","setNotificationsLoading","_ref18","setNotificationsSilence","_ref19","markNotificationsAsSeen","markSingleNotificationAsSeen","_ref20","dismissNotification","_ref21","dismissNotifications","_ref22","finder","updateNotification","_ref23","updater","queueFlush","_ref24","queueFlushAll","addRepeats","_ref25","rebloggedByUsers","find","_ref26","addFavs","_ref27","favoritedByUsers","_ref28","addEmojiReactionsBy","_ref29","emojiReactions","emoji_reactions","addOwnReaction","_ref30","reactionIndex","reaction","count","accounts","newReaction","me","removeOwnReaction","_ref31","r","updateStatusWithPoll","_ref32","poll","setVirtualHeight","_ref33","virtualHeight","_ref34","_ref35","_ref35$showImmediatel","_ref35$timeline","_ref35$noIdUpdate","_ref36","maybeShowNotification","_ref37","_ref38","_ref39","_ref40","fetchStatus","_ref41","api","backendInteractor","fetchStatusSource","_ref42","fetchStatusHistory","_ref43","deleteStatus","_ref44","message","deleteStatusById","_ref45","markStatusesAsDeleted","_ref46","_ref47","unfavorite","_ref48","fetchPinnedStatuses","_ref49","pinStatus","_ref50","pinOwnStatus","unpinStatus","_ref51","unpinOwnStatus","muteConversation","_ref52","unmuteConversation","_ref53","_ref54","unretweet","_ref55","bookmark","_ref56","bookmarkStatus","unbookmark","_ref57","unbookmarkStatus","_ref58","_ref59","_ref60","_ref61","_ref62","_ref63","single","dismissNotificationLocal","_ref64","_ref65","_ref66","_ref67","_ref68","_ref69","fetchFavsAndRepeats","_ref70","fetchFavoritedByUsers","fetchRebloggedByUsers","_ref71","_ref72","reactWithEmoji","_ref73","_ref74","unreactWithEmoji","_ref75","_ref76","fetchEmojiReactionsBy","_ref77","fetchEmojiReactions","fetchFavs","_ref78","fetchRepeats","_ref79","search","_ref80","q","limit","offset","following","search2","u","_ref81","_ref82","setLists","allLists","setList","listId","allListsObject","accountIds","entry","setListAccounts","addListAccount","accountId","removeListAccount","set","deleteList","lists","createList","fetchList","getList","fetchListAccounts","getListAccounts","updateList","saved","added","removed","addAccountsToList","removeAccountsFromList","findListTitle","findListAccounts","fetchAndUpdate","_ref2$timeline","_ref2$older","_ref2$userId","_ref2$listId","_ref2$tag","until","since","timelineData","_camelCase","_getters$mergedConfig","replyVisibility","loggedIn","withMuted","numStatusesBeforeFetch","response","errors","statusText","ccTimeline","update","timelineFetcher","startFetching","_ref3$timeline","_ref3$userId","_ref3$listId","_ref3$tag","promiseInterval","boundFetchAndUpdate","requests","listsFetcher","startFetchingTimeline","_ref$userId","_ref$listId","fetchTimeline","startFetchingNotifications","notificationsFetcher","fetchNotifications","startFetchingFollowRequests","followRequestFetcher","startFetchingLists","startUserSocket","getMastodonSocketURI","stream","ProcessedWS","func","verifyCredentials","windowWidth","innerWidth","documentElement","clientWidth","windowHeight","clientHeight","REDIRECT_URI","location","origin","getOrCreateApp","clientId","clientSecret","form","FormData","append","___pleromafe_commit_hash","Date","toISOString","method","app","client_id","client_secret","getClientToken","oauth","login","response_type","redirect_uri","scope","dataString","_reduce","encoded","encodeURIComponent","getToken","getTokenWithCredentials","username","password","verifyOTPCode","mfaToken","verifyRecoveryCode","revokeToken","token","isPushSupported","navigator","getOrCreateServiceWorker","runtime","deleteSubscriptionFromBackEnd","headers","Authorization","mergeArrayLength","oldValue","newValue","_mergeWith","blockUser","relationship","unblockUser","muteUser","_typeof","expiresIn","predictedRelationship","relationships","muting","unmuteUser","muteDomain","domain","unmuteDomain","tagUser","usersObject","newTags","untagUser","updateRight","right","newRights","rights","updateActivationStatus","deactivated","setCurrentUser","lastLoginName","clearCurrentUser","beginLogin","loggingIn","endLogin","saveFriendIds","friendIds","_uniq","_concat","saveFollowerIds","followerIds","clearFriends","clearFollowers","addNewUsers","usersByNameObject","updateUserRelationship","updateUserInLists","inLists","saveBlockIds","blockIds","addBlockId","blockId","indexOf","setBlockIdsMaxId","blockIdsMaxId","saveMuteIds","muteIds","setMuteIdsMaxId","muteIdsMaxId","addMuteId","muteId","saveDomainMutes","domainMutes","addDomainMute","removeDomainMute","setPinnedToUser","pinnedStatusIds","pinned","setUserForStatus","setUserForNotification","from_profile","setColor","highlighted","highlight","signUpPending","signUpErrors","signUpSuccess","signUpFailure","findUser","findUserByName","findUserByUrl","fetchUserIfMissing","fetchUser","fetchUserByName","fetchUserRelationship","fetchUserInLists","fetchBlocks","reset","blocks","_map","removeUserFromFollowers","blockUsers","unblockUsers","editUserNote","comment","fetchMutes","mutes","hideReblogs","followUser","reblogs","showReblogs","muteUsers","unmuteUsers","fetchDomainMutes","muteDomains","unmuteDomains","fetchFriends","fetchFollowers","subscribeUser","unsubscribeUser","toggleActivationStatus","activateUser","deactivateUser","is_active","registerPushNotifications","isEnabled","notificationVisibility","registration","base64String","base64","rawData","subscribeOptions","userVisibleOnly","applicationServerKey","repeat","atob","Uint8Array","charCodeAt","pushManager","subscribe","subscribePush","subscription","JSON","stringify","alerts","follows","favourite","likes","mention","reblog","repeats","move","moves","responseData","sendSubscriptionToBackEnd","webPushNotifications","unregisterPushNotifications","getSubscription","subscribtion","unsubscribe","unsubscribePush","unregister","retweetedUsers","_compact","targetUsers","notificationIds","notificationsObject","relevantNotifications","searchUsers","signUp","userInfo","register","params","access_token","getCaptcha","logout","_store$rootState","oauthApi","userToken","backendInteractorService","loginUser","accessToken","Notification","requestPermission","locked","useStreamingApi","latest","maybeShowChatNotification","chat","lastMessage","chats","currentChatId","hidden","account_id","opts","account","profile_image_url","attachment","preview_url","showDesktopNotification","retryMultiplier","fetchers","socket","mastoUserSocket","mastoUserSocketStatus","followRequests","followRequestCount","setBackendInteractor","addFetcher","fetcherName","fetcher","removeFetcher","setWsToken","wsToken","setSocket","setFollowRequests","setMastoUserSocketStatus","incrementRetryMultiplier","resetRetryMultiplier","enableMastoSockets","initial","WebSocket","CLOSED","CLOSING","getState","WSConnectionStatus","disableMastoSockets","startMastoUserSocket","detail","chatId","chatUpdate","closeEvent","ignoreCodes","debug","stopMastoUserSocket","close","_ref7$timeline","_ref7$tag","_ref7$userId","_ref7$listId","stopFetchingTimeline","stopFetchingNotifications","_extends","_objectDestructuringEmpty","stopFetchingFollowRequests","removeFollowRequest","request","stopFetchingLists","initializeSocket","Socket","connect","disconnectFromSocket","disconnect","defaultApi","path","_set","updateProfile","notificationsApi","updateNotificationSettings","settingsMap","defaultScope","defaultNSFW","stripRichContent","get","acceptChatMessages","allowFollowingMove","discoverable","hideFavorites","hideFollowers","hideFollows","hideFollowersCount","hideFollowsCount","webPushHideContents","blockNotificationsFromStrangers","profileConfig","confirmProfileOption","wipeProfileOption","wipeAllProfileOptions","_value$get","_get","_original","setProfileOption","_map$set","_map$api","faTimes","Modal","NEW_USER_DATE","COMMAND_TRIM_FLAGS_AND_RESET","dirty","flagStorage","updateCounter","prefsStorage","_journal","simple","dontShowUpdateNotifs","collapseNav","collections","pinnedNavItems","raw","cache","newUserFlags","_moveItemInArray","movement","oldIndex","newIndex","newArray","_clamp","_wrapData","userName","_user","_timestamp","now","_version","_checkValidity","_verifyPrefs","_mergeJournal","_len","journals","_key","allJournals","_flatten","j","grouped","_groupBy","trimmedGrouped","journal","timestamp","remainder","lastRemoveIndex","_findLastIndex","operation","_uniqWith","_takeRight","clearServerSideStorage","userData","_cloneDeep","setServerSideStorage","live","storage","fqn","_getRecentData2","recent","stale","needUpload","cacheValid","liveValid","_getRecentData","_PLEROMA_HOTPATCH","reverseMigrations","to","_doMigrations","needsUpload","userNew","created_at","flagsTemplate","_recent","recentData","_excluded2","staleData","_excluded3","totalFlags","totalPrefs","allFlagKeys","toRaw","_getAllFlags","flag","recentFlag","staleFlag","_mergeFlags","recentJournal","staleJournal","resultOutput","totalJournal","command","newSet","_args","_mergePrefs","knownKeys","knownKeysSet","_resetFlags","min","setFlag","setPreference","addCollectionPreference","collection","removeCollectionPreference","reorderCollectionPreference","newCollection","updateCache","pushServerSideStorage","_ref16$force","force","needPush","pleroma_settings_store","frontends","loaded","needsReboot","modifiedPaths","descriptions","draft","dbConfigEnabled","adminSettingsStorage","setInstanceAdminNoDbConfig","setAvailableFrontends","refs","ref","updateAdminSettings","updateAdminDescriptions","updateAdminDraft","_path","parent","resetAdminDraft","loadFrontendsStuff","fetchAvailableFrontends","loadAdminStuff","fetchInstanceDBConfig","backendDbConfig","errorJson","fetchInstanceConfigDescriptions","backendDescriptions","setInstanceAdminSettings","configs","c","group","db","x","convert","tuple","setInstanceAdminDescriptions","description","_ref11$key","newPath","d","pushAdminDraft","changed","lv1data","eConfig","eDraft","_differenceWith","pushInstanceDBConfig","payload","pushAdminSetting","split","clone","resetAdminSetting","_path$split","_path$split2","subkey","delete","subkeys","channel","joined","setChannel","addMessage","setMessages","setJoined","initializeShout","joinPush","receive","onClose","onError","on","msg","appToken","setClientData","setAppToken","setToken","clearToken","getUserToken","PASSWORD_STRATEGY","TOKEN_STRATEGY","TOTP_STRATEGY","RECOVERY_STRATEGY","resetState","strategy","initStrategy","namespaced","requiredPassword","requiredToken","requiredTOTP","requiredRecovery","setInitialStrategy","requirePassword","requireToken","requireMFA","requireRecovery","requireTOTP","abortMFA","root","supportedTypes","mediaViewer","currentIndex","activated","setMedia","setCurrentMedia","fileTypeService","mimetype","current","closeMediaViewer","tokens","fetchTokens","fetchOAuthTokens","revokeOAuthToken","swapTokens","reports","reportModal","preTickedIds","openUserReportingModal","closeUserReportingModal","setReportState","reportsState","addReport","_ref4$statusIds","statusIds","preTickedStatuses","oldState","trackedPolls","pollsObject","mergeOrAddPoll","existingPoll","expired","parse","expires_at","trackPoll","pollId","currentValue","untrackPoll","updateTrackedPoll","fetchPoll","polls","votePoll","choices","vote","modalActivated","openPostStatusModal","closePostStatusModal","resetPostStatusModal","openEditStatusModal","closeEditStatusModal","openStatusHistoryModal","closeStatusHistoryModal","ChatService","newMessages","_ref$updateMaxId","updateMaxId","_loop","chat_id","fakeId","fakeMessage","idIndex","pending","idempotency_key","idempotencyKeyIndex","isConfirmation","lastSeenMessageId","newMessageCount","_ret","empty","getView","currentMessageChainId","_orderBy","firstMessage","previousMessage","date","setHours","getTime","afterDate","nextMessage","isTail","object","messageChainId","_uniqueId","isHead","deleteMessage","messageId","m","cullOlderMessages","maxIndex","minIndex","_sortBy","_step2","_iterator2","resetNewMessageCount","clear","failedMessageIds","handleMessageError","isRetry","lastPersistedMessage","oldId","chatList","chatListFetcher","openedChats","reactive","openedChatMessageServices","lastReadMessageId","getChatById","currentChat","currentChatMessageService","findOpenedChatByRecipientId","recipientId","sortedChatList","unreadChatCount","_sumBy","startFetchingChats","stopFetchingChats","fetchChats","addNewChats","newChatMessageSideEffects","updateChat","startFetchingCurrentChat","setCurrentChatFetcher","addOpenedChat","parseChat","addChatMessages","resetChatNewMessageCount","clearCurrentChat","readChat","lastReadId","isNewMessage","deleteChatMessage","resetChats","clearOpenedChats","setChatListFetcher","prevFetcher","_dispatch","chatService","setCurrentChatId","updatedChat","unread","updated_at","_rootGetters","deleteChat","conversation","last_status","setChatsLoading","chatMessageService","parseChatMessage","_value","announcements","supportsAnnouncements","fetchAnnouncementsTimer","setAnnouncements","setAnnouncementRead","read","setFetchAnnouncementsTimer","timer","setSupportsAnnouncements","unreadAnnouncementCount","_getters","announcement","inactive","fetchAnnouncements","isAdmin","privileges","getAnnouncements","visible","visibleObject","getWithinVisible","adminFetchAnnouncements","visibleAnnouncement","statusCode","markAnnouncementAsRead","dismissAnnouncement","startFetchingAnnouncements","interval","setInterval","stopFetchingAnnouncements","clearInterval","postAnnouncement","startsAt","endsAt","allDay","editAnnouncement","deleteAnnouncement","defaultReducer","paths","substate","saveImmedeatelyActions","defaultStorage","localforage","createPersistedState","_ref$key","_ref$paths","_ref$getState","getItem","_ref$setState","setState","setItem","_ref$reducer","reducer","_ref$storage","_ref$subscriber","subscriber","handler","savedState","usersState","replaceState","merge","mutation","webPushNotification","isUserMutation","isVapidMutation","isPermMutation","isUserConfigMutation","isVisibilityMutation","for","isPasswordAuth","isTokenAuth","mapState","mapGetters","mapMutations","mapActions","submit","submitToken","submitPassword","_this$oauth","identifier","passwordResetRequested","focusOnPasswordInput","clearError","passwordInput","focus","setSelectionRange","_hoisted_2","_toDisplayString","_hoisted_3","onSubmit","_Fragment","_hoisted_4","_hoisted_5","$event","placeholder","_hoisted_7","_hoisted_8","_hoisted_10","_component_router_link","_hoisted_11","_hoisted_12","_hoisted_13","_createBlock","_hoisted_14","_hoisted_15","_hoisted_16","_component_FAIcon","mfa","authSettings","mfa_token","mfaApi","_hoisted_6","_hoisted_9","size","h","resolveComponent","authForm","MFARecoveryForm","MFATOTPForm","LoginForm","signedIn","AuthForm","PostStatusForm","UserCard","_component_UserCard","rounded","_component_PostStatusForm","_component_auth_form","USERNAME_ROUTES","TIMELINES","home","route","criteria","anon","twkn","routeObject","tab","ROOT_ITEMS","interactions","badgeGetter","friendRequests","about","routeTo","anonRoute","custom","_renderSlot","_normalizeProps","_guardReactiveProps","faThumbtack","OptionalRouterLink","isPinned","pinnedItems","togglePin","serverSideStorage","_component_OptionalRouterLink","ass","navigate","$attrs","_resolveDynamicComponent","iconLetter","labelRaw","showPin","_normalizeClass","transform","filterNavigation","hasChats","hasAnnouncements","isFederating","isPrivate","getListEntries","ListsMenuContent","NavigationEntry","privateMode","federating","_renderList","_component_NavigationEntry","faUsers","faGlobe","faBookmark","faEnvelope","faComments","faBell","faInfoCircle","faStream","faList","getRouteTo","pinnedList","faChevronDown","faChevronUp","faBullhorn","NavigationPins","Checkbox","editMode","showTimelines","showLists","timelinesList","rootList","toggleTimelines","toggleLists","toggleEditMode","toggleCollapse","collapsed","timelinesItems","rootItems","forceExpand","_component_NavigationPins","forceEditMode","_component_ListsMenuContent","shout","pleromaChatMessages","gopher","whoToFollow","mediaProxy","uploadlimit","fileSizeFormatService","num","unit","getWhoToFollow","panel","usersToFollow","toFollow","reply","shuffled","_shuffle","img","avatar","acct","externalUser","showWhoToFollow","userProfileLink","generateProfileLink","watch","oldUser","mounted","fill","src","currentMessage","togglePanel","newVal","scrollEl","querySelector","scrollHeight","$nextTick","floating","author","rows","onKeyup","_withKeys","setTransform","scale","PinchZoom","_toHandlers","$listeners","deltaCoord","oldCoord","newCoord","touchEventCoord","touch","touches","screenX","screenY","pointerEventCoord","clientX","clientY","vectorLength","sqrt","perpendicular","dotProduct","v1","v2","project","scalar","DIRECTION_LEFT","DIRECTION_RIGHT","DIRECTION_UP","DIRECTION_DOWN","swipeGesture","direction","onSwipe","threshold","perpendicularTolerance","_startPos","_swiping","beginSwipe","gesture","updateSwipe","delta","towardsDir","perpendicularDir","towardsPerpendicular","SwipeAndClickGesture","swipePreviewCallback","swipeEndCallback","swipeCancelCallback","swipelessClickCallback","_ref$threshold","_ref$perpendicularTol","_ref$disableClickThre","disableClickThreshold","_classCallCheck","nop","_reset","_createClass","_pointerId","_swiped","_preventNextClick","button","pointerId","coord","sign","isPositive","pointerType","handlePointerDown","$gesture","handlePointerMove","handlePointerUp","handlePointerCancel","cancel","handleNativeClick","click","preview","offsets","GestureService","onPointerdown","onPointermove","onPointerup","onPointercancel","faChevronLeft","faChevronRight","VideoAttachment","SwipeClick","Flash","swipeDirection","swipeThreshold","pinchZoomMinScale","pinchZoomScaleResetLimit","showing","currentMedia","canNavigate","getType","swipeDisableClickThreshold","hide","hideIfNotSwiped","comp","swipeClick","goPrev","prevIndex","newMedia","goNext","nextIndex","onImageLoaded","handleSwipePreview","pinchZoom","handleSwipeEnd","handleKeyupEvent","keyCode","handleKeydownEvent","_component_Modal","onBackdropClicked","_component_SwipeClick","onPreviewRequested","onSwipeFinished","onSwipelessClicked","_component_PinchZoom","selector","alt","onLoad","_component_VideoAttachment","controls","_component_Flash","$tc","total","spin","faSignInAlt","faSignOutAlt","faHome","faUserPlus","faSearch","faTachometerAlt","faCog","faCompass","closed","closeGesture","toggleDrawer","unseenNotifications","unseenNotificationsFromStore","unseenNotificationsCount","sitename","timelinesRoute","doLogout","touchStart","touchMove","openAdminModal","onTouchstart","onTouchmove","style","role","faPen","HIDDEN_FOR_PAGES","scrollingDown","inputActive","oldScrollPos","amountScrolled","autohideFloatingPostButton","activateFloatingPostButtonAutohide","handleOSK","deactivateFloatingPostButtonAutohide","isLoggedIn","isHidden","$route","isPersistent","alwaysShowNewPostButton","handleScrollStart","handleScrollEnd","openPostForm","smallPhone","smallPhoneKbOpen","biggerPhoneKbOpen","_debounce","scrollY","leading","trailing","faBars","faArrowUp","faMinus","SideDrawer","Notifications","ConfirmModal","notificationsCloseGesture","notificationsOpen","notificationsAtTop","showingConfirmLogout","closeMobileNotifications","isChat","chatsPinned","shouldConfirmLogout","toggleMobileSidebar","sideDrawer","openMobileNotifications","markRead","notificationsTouchStart","notificationsTouchMove","scrollToTop","scrollTo","scrollMobileNotificationsToTop","mobileNotifications","showConfirmLogout","hideConfirmLogout","onScroll","_ref$target","fetchOlderNotifications","_component_FALayers","_component_SideDrawer","_Teleport","_component_confirm_modal","onAccepted","onCancelled","searchTerm","searchInput","toggleHidden","SearchBar","searchBarHidden","supportsMask","enableMask","logoStyle","logoMaskStyle","logoBgStyle","margin","opacity","onSearchBarToggled","_normalizeStyle","_component_search_bar","onToggled","Status","List","UserLink","forward","statusIdsToReport","processing","isOpen","remoteInstance","is_local","closeModal","reportUser","isChecked","toggleStatus","checked","resize","Element","_component_i18n_t","keypath","_component_UserLink","onInput","_component_Checkbox","_component_List","items","_withCtx","_component_Status","focused","statusoid","resettingForm","editStatus","isFormVisible","oldVal","val","doEditStatus","spoilerText","sensitive","contentType","statusPosterService","onPosted","postStatus","resetAndClose","statusHistory","historyCount","history","newStatusId","resetHistory","_component_status","notices","closeNotice","UserPanel","NavPanel","defineAsyncComponent","InstanceSpecificPanel","FeaturesPanel","WhoToFollowPanel","ShoutPanel","MediaModal","MobilePostStatusButton","MobileNav","DesktopNav","SettingsModal","UpdateNotification","UserReportingModal","PostStatusModal","EditStatusModal","StatusHistoryModal","GlobalNoticeList","mobileActivePanel","interfaceLanguage","updateMobileState","reverseLayout","noSticky","newPostButtonShown","navClasses","navbarColumnStretch","userBackground","background_image","instanceBackground","hideInstanceWallpaper","bgStyle","hideISP","isChats","isListEdit","editingAvailable","shoutboxPosition","hideShoutbox","_this$$store$getters$","reverseSetting","disableStickyHeaders","showScrollbars","_component_MobileNav","_component_DesktopNav","_component_Notifications","_component_user_panel","_component_nav_panel","_component_instance_specific_panel","_component_features_panel","_component_who_to_follow_panel","_component_router_view","_component_MediaModal","_component_shout_panel","_component_MobilePostStatusButton","_component_UserReportingModal","_component_PostStatusModal","_component_EditStatusModal","_component_StatusHistoryModal","_component_SettingsModal","_component_UpdateNotification","_component_GlobalNoticeList","faAngleDoubleDown","faAngleDoubleRight","depth","inProfile","collapsable","isExpanded","pinnedStatusIdsObject","profileUserId","getReplies","setHighlight","toggleExpanded","toggleThreadDisplay","threadDisplayStatus","showThreadRecursively","totalReplyCount","totalReplyDepth","statusContentProperties","setStatusContentProperty","toggleStatusContentProperty","dive","suspendable","selfSuspendable","statusComponent","childComponent","reverseLookupTable","table","currentReplies","statusById","threadShowing","currentProp","collapseThread","showThread","showAllSubthreads","toggleCurrentProp","setCurrentProp","expandable","replies","showingTall","expandingSubject","showingLongSubject","replying","mediaPlaying","onGoto","onToggleExpanded","replyStatus","_component_thread_tree","numStatus","faFilter","faFont","faWrench","Popover","setReplyVisibility","openTab","replyVisibilitySelf","replyVisibilityFollowing","replyVisibilityAll","hideMedia","hideAttachments","hideAttachmentsInConv","_component_Popover","trigger","faFolderTree","setConversationDisplay","autoUpdate","streaming","collapseWithSubjects","showUserAvatars","faAngleDoubleLeft","idA","idB","expanded","threadDisplayStatusObject","statusContentPropertiesObject","inlineDivePosition","isPage","fetchConversation","maxDepthToShowByDefault","maxDepth","streamingEnabled","displayStyle","isTreeView","isLinearView","treeViewIsSimple","shouldFadeAncestors","otherRepliesButtonPosition","showOtherRepliesButtonBelowStatus","showOtherRepliesButtonInsideStatus","prop","hideStatus","virtualHidden","originalStatusId","getConversationId","_clone","statusIndex","_filter","sortAndFilterConversation","statusMap","threadTree","linearized","walk","forest","topLevel","processed","replyIds","sizes","subTreeSizeFor","cid","depths","subTreeDepthFor","_this5","tl","otherTopLevelCount","showingTopLevel","canDive","diveRoot","parentOf","diveDepth","diveMode","shouldShowAllConversationButton","shouldShowAncestors","ancestorsOf","irid","hiddenStyle","_this6","_this7","def","isReplying","_this8","maybeHighlight","ThreadTree","QuickFilterSettings","QuickViewSettings","newConversationId","oldConversationId","resetDisplayState","_this9","ancestors","descendants","getHighlight","setThreadDisplay","nextStatus","setThreadDisplayRecursively","_this10","leastVisibleAncestor","diveIntoStatus","preventScroll","tryScrollTo","diveToTopLevel","topLevelAncestorOrSelfId","undive","_this11","goToCurrent","parentId","parentOrSelf","_component_QuickFilterSettings","_component_QuickViewSettings","numReplies","useListsMenu","openMenu","blockOpen","stopPropagation","timelineName","i18nkey","onShow","faCirclePlus","faCheck","Timeline","showScrollTop","paused","unfocused","virtualScrollIndex","blockingClicks","Conversation","TimelineMenu","filteredVisibleStatuses","filteredPinnedStatusIds","showLoadButton","loadButtonString","mobileLoadButtonString","rootClasses","embedded","header","footer","_keyBy","statusesToDisplay","amount","statusesPerSide","ceil","nonPinnedIndex","virtualScrollingEnabled","mobileLayout","handleScroll","handleVisibilityChange","handleShortKey","determineVisibleStatuses","top","offsetTop","stopBlockingClicks","blockClicksTemporarily","fetchOlderStatuses","_throttle","cappedScrollIndex","centerOfScreen","approxIndex","floor","virtualScrollIndexY","abs","doc","clientTop","pauseOnUnfocused","_component_TimelineMenu","_component_conversation","footerSlipgate","_component_Timeline","tabModeDict","reactions","allow_following_move","filterMode","canSeeReports","onModeSwitch","TabSwitcher","_component_tab_switcher","UserAvatar","RichContent","UserPopover","htmlTitle","name_html","withAvatar","_component_UserPopover","_component_UserAvatar","_component_RichContent","AvatarList","Timeago","ChatTitle","StatusBody","attachmentInfo","types","file","fileType","messageForStatusContent","messageEmojis","isYou","messagePreview","summary","raw_html","openChat","recipient_id","_component_ChatTitle","_component_Timeago","time","_component_StatusBody","chatNew","BasicUserCard","userIds","availableUsers","goBack","goToChat","addUser","selectedUserIds","removeUser","_component_BasicUserCard","ChatListItem","ChatNew","isNew","cancelNewChat","newChat","_component_ChatNew","onCancel","_component_ChatListItem","compact","displayDate","today","toLocaleDateString","localeService","$i18n","day","month","$options","faEllipsisH","emits","Attachment","StatusContent","Gallery","LinkPreview","ChatMessageDate","createdAt","chatViewItem","toLocaleTimeString","hour","minute","hour12","isCurrentUser","isMessage","hasAttachment","betterShadow","popoverMarginStyle","left","hovered","menuOpened","onHover","bool","isHovered","confirm","hoveredMessageChain","onMouseover","onMouseleave","onMouseenter","placement","_component_StatusContent","_component_ChatMessageDate","getScrollPosition","Chat","ChatMessage","jumpToBottomButtonVisible","hoveredMessageChainId","lastScrollPosition","scrollableContainerHeight","errorLoadingChat","messageRetriers","handleResize","recipient","formPlaceholder","chatViewItems","bottomedOutBeforeUpdate","scrollDown","fetchChat","isFirstFetch","onMessageHover","onFilesDropped","forceRead","_opts$delayed","delayed","_getScrollPosition$of","diff","scrollBy","trunc","options","_options$behavior","behavior","_options$forceRead","isBottomedOut","reachedTop","cullOlderCheck","handleScrollUp","positionBeforeLoading","previousPosition","newPosition","positionAfterLoading","_ref2$isFirstFetch","_ref2$fetchLatest","fetchLatest","fetchOlderMessages","sinceId","chatMessages","positionBeforeUpdate","getOrCreateChat","doStartFetching","handleAttachmentPosting","sendMessage","_this12","idempotencyKey","mediaId","isNormalized","buildFakeMessage","doSendMessage","retriesLeft","_this13","_ref4$retriesLeft","sendChatMessage","pow","_component_ChatMessage","onResize","showingConfirmRemoveFollower","shouldConfirmRemoveUserFromFollowers","showConfirmRemoveUserFromFollowers","hideConfirmRemoveUserFromFollowers","doRemoveUserFromFollowers","toggled","RemoteFollow","FollowButton","RemoveFollowerButton","isMe","_component_basic_user_card","noFollowsYou","followed_by","_component_FollowButton","_component_RemoveFollowerButton","_component_RemoteFollow","faBirthdayCake","FollowerList","withLoadMore","destroy","FriendList","defaultTabKey","footerRef","routeParams","load","stopFetching","isUs","isExternal","followsTabVisible","hide_follows","followersTabVisible","hide_followers","formattedBirthday","browserLocale","birthday","timeZone","year","setFooterRef","el","userNameOrId","loadById","maybeId","maybeName","reason","errorMessage","switchUser","onTabSwitch","linkClicked","parentNode","FollowCard","switcher","selected","viewing","fields_html","field","fields_text","statuses_count","friends_count","_component_FriendList","_component_FollowCard","followers_count","_component_FollowerList","hashtags","currenResultTab","statusesOffset","lastStatusFetchCount","lastQuery","newQuery","searchType","blur","oldLength","_uniqBy","getActiveTab","resultCount","onResultTabSwitch","lastHistoryRecord","hashtag","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","uses","_hoisted_26","setup","v$","useVuelidate","email","fullname","captcha","InterfaceLanguageSwitcher","validations","requiredIf","accountActivationRequired","sameAs","maxValue","birthdayMin","accountApprovalRequired","setCaptcha","bioPlaceholder","replaceNewlines","reasonPlaceholder","minAge","setUTCMilliseconds","setUTCSeconds","setUTCMinutes","setUTCHours","minDate","setTime","DAY","birthdayMinAttr","toJSON","birthdayMinFormatted","isPending","serverValidationErrors","termsOfService","captcha_solution","solution","captcha_token","captcha_answer_data","answer_data","$touch","$invalid","cpt","str","$error","$model","$dirty","bio","_hoisted_27","_hoisted_28","_hoisted_29","_hoisted_30","_hoisted_32","_hoisted_33","_hoisted_34","_component_interface_language_switcher","_hoisted_35","_hoisted_36","_hoisted_38","_hoisted_39","autocomplete","autocorrect","autocapitalize","spellcheck","_hoisted_42","_hoisted_43","_hoisted_44","_hoisted_45","_hoisted_47","_hoisted_48","passwordReset","throttled","mailerEnabled","dismissError","passwordResetApi","showingApproveConfirmDialog","showingDenyConfirmDialog","findFollowRequestNotificationId","notif","notificationsFromStore","showApproveConfirmDialog","hideApproveConfirmDialog","showDenyConfirmDialog","hideDenyConfirmDialog","approveUser","shouldConfirmApprove","doApprove","notifId","denyUser","shouldConfirmDeny","doDeny","FollowRequestCard","_component_FollowRequestCard","_this$$store$state$oa","staffAccounts","groupedStaffAccounts","groupBy","admin","moderator","toInstanceReasonObject","instances","info","federationPolicy","mrfPolicies","quarantineInstances","acceptInstances","rejectInstances","ftlRemovalInstances","mediaNsfwInstances","mediaRemovalInstances","keywordsFtlRemoval","keywordsReject","keywordsReplace","hasInstanceSpecificPolicies","hasKeywordPolicies","TermsOfServicePanel","StaffPanel","MRFTransparencyPanel","policy","keyword","pattern","_component_staff_panel","_component_terms_of_service_panel","_component_MRFTransparencyPanel","redirect","ListsCard","cancelNewList","newList","_component_ListsCard","followingOnly","onChange","ListsNew","ListsUserSearch","PanelLoading","titleDraft","membersUserIds","removedUserIds","searchUserIds","addedUserIds","searchLoading","reallyDelete","membersUsers","toggleRemoveMember","toggleAddFromSearch","isRemoved","isAdded","onSearchLoading","results","onSearchLoadingDone","onSearchResults","updateListTitle","_ctx$$router","back","listTitle","_component_ListsUserSearch","onResults","onLoading","onLoadingDone","_component_PanelLoading","cols","AnnouncementEditor","editing","editedAnnouncement","editError","canEditAnnouncement","isRead","publishedAt","published_at","formatTimeOrDate","starts_at","ends_at","markAsRead","all_day","toLocaleString","enterEditMode","pleroma","raw_content","submitEdit","cancelEdit","Announcement","_component_announcement_editor","_component_rich_content","newAnnouncement","posting","canPostAnnouncement","_component_announcement","validateAuthenticatedRoute","routes","_to","component","PublicAndExternalTimeline","PublicTimeline","FriendsTimeline","beforeEnter","TagTimeline","BookmarkTimeline","ConversationPage","meta","dontScroll","RemoteUserResolver","UserProfile","Interactions","DMs","Registration","PasswordReset","FollowRequests","disableTeleport","OAuthCallback","Search","WhoToFollow","About","AnnouncementsPage","Lists","ListsTimeline","ListsEdit","ChatList","previousNavPaddingRight","previousAppBgWrapperRight","lockerEls","disableBodyScroll","scrollBarGap","reserveScrollBarGap","navEl","getElementById","getComputedStyle","getPropertyValue","paddingRight","appBgWrapperEl","classList","enableBodyScroll","remove","directive","binding","updated","Vue","staticInitialResults","decodeUTF8Base64","TextDecoder","decode","preloadFetch","requestData","getInstanceConfig","max_toot_chars","vapid_public_key","approval_required","metadata","birthday_required","birthday_min_age","getBackendProvidedConfig","pleroma_fe","_x3","getStaticConfig","setSettings","_callee5","apiConfig","staticConfig","overrides","env","copyInstanceOption","_context5","___pleromafe_dev_overrides","___pleromafe_mode","NODE_ENV","staticConfigPreference","_x4","getTOS","_callee6","_context6","_x5","getInstancePanel","_callee7","_context7","_x6","getStickers","_callee9","stickers","_context9","_callee8","resPack","_context8","pack","_x8","localeCompare","_x7","getAppSecret","_callee10","_context10","_x9","resolveStaffAccounts","nicknames","getNodeInfo","_callee11","features","uploadLimits","software","priv","federation","_context11","nodeName","openRegistrations","parseInt","general","banner","fieldsLimits","enabled","web","version","mrf_policies","_x10","setConfig","_callee12","configInfos","_context12","_x11","checkOAuthToken","_callee14","_context14","_callee13","_context13","_x13","_x14","_x12","_callee15","_store$state$config","customThemeSource","router","_context15","FaviconService","applyConfig","createRouter","createWebHistory","scrollBehavior","_from","savedPosition","matched","createApp","App","use","vClickOutside","VBodyScrollLock","VueVirtualScroller","FontAwesomeIcon","FontAwesomeLayers","unwrapInjectedRef","mount","_x15","currentLocale","createI18n","global","persistedStateOptions","storageError","plugins","persistedState","pushNotifications","createStore","modules","interface","interfaceModule","instanceModule","usersModule","statusesModule","listsModule","apiModule","configModule","profileConfigModule","serverSideStorageModule","adminSettings","adminSettingsModule","shoutModule","oauthModule","authFlow","authFlowModule","mediaViewerModule","oauthTokens","oauthTokensModule","reportsModule","pollsModule","postStatusModule","editStatusModule","statusHistoryModule","chatsModule","announcementsModule","strict","afterStoreSetup","process","COMMIT_HASH","DEV_OVERRIDES","expertLevel","colors","padEmoji","maxThumbnails","hideNsfw","preloadImage","loopVideo","loopVideoSilentOnly","emojiReactionsOnTimeline","stopGifs","followRequest","chatMention","muteWords","hideScopeNotice","playVideosInModal","useOneClickNsfw","useContainFit","userPopoverAvatarAction","userPopoverOverlay","sidebarColumnWidth","contentColumnWidth","notifsColumnWidth","emojiReactionsScale","defaultConfig","setOption","color","loadSettings","presentKeys","intersection","setPreset","Cookies","StatusCodeError","captureStackTrace","create","RegistrationError","_Error","_inherits","_super","_assertThisInitialized","errorContents","ap_id","errs","_capitalize","_wrapNativeSuper","ALIASES_URL","TAG_USER_URL","PERMISSION_GROUP_URL","screenName","MASTODON_DISMISS_NOTIFICATION_URL","MASTODON_FAVORITE_URL","MASTODON_UNFAVORITE_URL","MASTODON_RETWEET_URL","MASTODON_UNRETWEET_URL","MASTODON_DELETE_URL","MASTODON_PUBLIC_TIMELINE","MASTODON_STATUS_URL","MASTODON_USER_TIMELINE_URL","MASTODON_LIST_URL","MASTODON_LIST_TIMELINE_URL","MASTODON_LIST_ACCOUNTS_URL","MASTODON_TAG_TIMELINE_URL","MASTODON_MUTE_USER_URL","MASTODON_UNMUTE_USER_URL","MASTODON_SUBSCRIBE_USER","MASTODON_UNSUBSCRIBE_USER","MASTODON_USER_NOTE_URL","MASTODON_BOOKMARK_STATUS_URL","MASTODON_UNBOOKMARK_STATUS_URL","MASTODON_MEDIA_UPLOAD_URL","MASTODON_STATUS_FAVORITEDBY_URL","MASTODON_STATUS_REBLOGGEDBY_URL","MASTODON_PROFILE_UPDATE_URL","MASTODON_PIN_OWN_STATUS","MASTODON_UNPIN_OWN_STATUS","MASTODON_MUTE_CONVERSATION","MASTODON_UNMUTE_CONVERSATION","MASTODON_DOMAIN_BLOCKS_URL","MASTODON_ANNOUNCEMENTS_DISMISS_URL","PLEROMA_EMOJI_REACTIONS_URL","PLEROMA_EMOJI_REACT_URL","PLEROMA_EMOJI_UNREACT_URL","PLEROMA_CHAT_MESSAGES_URL","PLEROMA_CHAT_READ_URL","PLEROMA_DELETE_CHAT_MESSAGE_URL","PLEROMA_BACKUP_URL","PLEROMA_EDIT_ANNOUNCEMENT_URL","PLEROMA_DELETE_ANNOUNCEMENT_URL","PLEROMA_ADMIN_CONFIG_URL","oldfetch","fullUrl","promisedRequest","_ref$headers","Accept","authHeaders","parseUser","_ref24$limit","MASTODON_FOLLOWING_URL","announcementToPayload","_ref109","_ref113","_ref113$args","_ref114","_ref115","MASTODON_STREAMING","MASTODON_STREAMING_EVENTS","PLEROMA_STREAMING_EVENTS","_ref116","_ref116$preprocessor","preprocessor","handleMastoWS","_ref116$id","eventTarget","proxy","original","eventName","eventData","dispatchEvent","CustomEvent","wsEvent","readyState","parsedEvent","parseStatus","parseNotification","freeze","JOINED","ERROR","DISABLED","STARTING","STARTING_INITIAL","_ref50$since","_ref50$until","_ref50$userId","_ref50$listId","_ref50$tag","_ref50$withMuted","_ref50$replyVisibilit","_ref50$includeTypes","includeTypes","isNotifications","queryString","param","parseLinkHeaderPagination","flakeId","urlContext","MASTODON_STATUS_CONTEXT_URL","MASTODON_STATUS_SOURCE_URL","parseSource","originalStatus","exportFriends","more","_ref27$limit","MASTODON_FOLLOWERS_URL","MASTODON_FOLLOW_URL","unfollowUser","MASTODON_UNFOLLOW_URL","MASTODON_BLOCK_USER_URL","MASTODON_UNBLOCK_USER_URL","MASTODON_REMOVE_USER_FROM_FOLLOWERS","_ref59$mediaIds","mediaIds","inReplyToStatusId","quoteId","pollOptions","normalizedPoll","expires_in","multiple","postHeaders","_ref60$mediaIds","putHeaders","uploadMedia","formData","parseAttachment","setMediaDescription","URLSearchParams","with_relationships","_ref83","_ref84","_ref87","_ref88","deleteUser","addRight","deleteRight","agreement","resp","updateProfileImages","_ref5$avatar","_ref5$avatarName","avatarName","_ref5$banner","_ref5$background","importMutes","importBlocks","importFollows","deleteAccount","changeEmail","moveAccount","targetAccount","addAlias","alias","deleteAlias","listAliases","_cacheBooster","changePassword","newPassword","newPasswordConfirmation","settingsMFA","mfaDisableOTP","generateMfaBackupCodes","mfaSetupOTP","mfaConfirmOTP","addBackup","_ref85","listBackups","_ref86","fetchFollowRequests","fetchLists","MASTODON_LISTS_URL","account_ids","MASTODON_APPROVE_USER_URL","MASTODON_DENY_USER_URL","_ref89","_ref90","_ref90$single","_ref105","_ref91","_ref92","_ref93","_ref94","_ref95","_ref96","_ref97","_ref98","status_ids","_ref100","_ref99","fetchKnownDomains","_ref101","_ref102","_ref103","_ref104","_ref117","_ref118","_ref119","_ref119$limit","_ref120","_ref120$mediaId","media_id","_ref121","last_read_id","_ref122","_ref123","MASTODON_USER_IN_LISTS","_ref107","_ref108","_ref110","_ref111","_ref112","_ref106","_ref124","_ref125","_ref126","_ref127","installFrontend","_ref128","propsToNative","_kebabCase","rgb2hex","g","_r","_map2","relativeLuminance","srgb","_srgbToLinear","bit","c2linear","srgbToLinear","getContrastRatio","getContrastRatioLayers","layers","bedrock","alphaBlendLayers","alphaBlend","fg","fga","bg","hex2rgb","hex","mixrgb","rgba2css","rgba","getTextColor","preserve","base","invertLightness","rgb","contrastRatio","getCssColor","Component","isFunction","getComponentOptions","SECOND","MINUTE","HOUR","WEEK","MONTH","YEAR","relativeTime","nowThreshold","round","relativeTimeShort","unitToSeconds","secondsToUnit","desktopNotificationOpts","desktopNotification","bind","output","masto","mastoShort","escape","display_name","name_unescaped","note","description_html","fields","unescape","cover_photo","following_count","bot","settings_store","favicon","chat_token","hide_follows_count","hide_followers_count","is_moderator","is_admin","default_scope","privacy","no_rich_text","show_role","show_birthday","delete_others_notice","muted","blocking","statusnet_blocking","follows_you","follow_request_count","notification_settings","unread_chat_count","parts","unicodeDomain","punycode","screen_name_ui_contains_non_ascii","mime_type","large_thumb_url","spoiler_text","content_type","favourited","favourites_count","reblogged","reblogs_count","edited_at","conversation_id","local","in_reply_to_screen_name","in_reply_to_account_acct","parent_visible","quote_id","quote_url","quote_visible","in_reply_to_id","in_reply_to_user_id","in_reply_to_account_id","replies_count","summary_raw_html","external_url","title_html","is_post_verb","qvitter_delete_notice","activity_type","qvitterStatusType","isNsfw","statusnet_html","summary_html","card","media_attachments","parsedNotice","ntype","is_seen","favorited_status","emoji_url","actor","linkHeader","parsedLinkHeader","parseLinkHeader","max_id","min_id","last_message","favicons","faviconWidth","faviconHeight","isImageLoaded","clearFaviconBadge","complete","naturalHeight","initFaviconService","querySelectorAll","favcanvas","createElement","favimg","Image","crossOrigin","favcontext","getContext","clearRect","drawImage","toDataURL","drawFaviconBadge","badgeColor","fillStyle","beginPath","arc","PI","fileSizeFormat","numArg","units","exponent","toFixed","fileTypeExt","fileMatchesSomeType","specialLanguageCodes","ja_easy","zh_Hant","zh","internalToBrowserLocale","internalToBackendLocale","getLanguageName","languageName","ISO6391","charAt","toLocaleUpperCase","languagesObject","internalToBackendLocaleMulti","visibleTypes","statusNotifications","_includes","muteWordHits","isMutedNotification","notificationObject","prepareNotificationObject","filteredNotificationsFromStore","sortedNotifications","i18nString","notifObj","mastoApiNotificationTypes","readNotifsIds","findOffset","child","_ref$top","_ref$left","ignorePadding","offsetLeft","_findPadding","findPadding","topPadding","leftPadding","offsetParent","position","contains","_findPadding2","topPaddingStr","leftPaddingStr","promiseCall","stopped","promise","statusSummary","muteWord","_ref$media","_ref$inReplyToStatusI","_ref$quoteId","_ref$contentType","_ref$preview","_ref$idempotencyKey","_ref2$media","_ref2$contentType","rules","generatePreset","head","styleEl","appendChild","styleSheet","sheet","insertRule","radii","shadows","fonts","configColumns","defaultConfigColumns","columns","getCssShadow","usesDropShadow","inset","shad","spread","alpha","getCssShadowFilter","generateColors","sourceColors","colors2to3","_getColors","getColors","htmlColors","solid","generateRadii","inputRadii","btnRadius","btn","checkbox","avatarAlt","tooltip","chatMessage","generateFonts","family","post","postCode","border","shadow","buttonInsetFakeBorders","inputInsetFakeBorders","hoverGlow","DEFAULT_SHADOWS","topBar","popup","avatarStatus","panelHeader","buttonHover","buttonPressed","generateShadows","hackContextDict","cleanInputShadows","shadowDef","inputShadows","shadows2to3","shadowsAcc","slotName","shadowDefs","slotFirstWord","colorSlotName","mod","newShadow","shadowAcc","computeDynamicColor","variableSlot","composePreset","getThemes","themes","promises","statePositionAcc","_ref48$color","getOpacitySlot","isV1","cRed","cGreen","cBlue","cOrange","LAYERS","undelay","badge","profileTint","popover","selectedMenu","btnPanel","btnTopBar","inputPanel","inputTopBar","alert","alertPanel","chatBg","DEFAULT_OPACITY","faint","underlay","alertPopup","SLOT_INHERITANCE","depends","priority","wallpaper","brightness","layer","accent","faintLink","postFaintLink","profileBg","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","postGreentext","postCyantext","copacity","pollText","inheritsOpacity","fgText","fgLink","panelText","panelFaint","panelLink","topBarText","topBarLink","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","alertSuccess","alertSuccessText","alertSuccessPanelText","alertNeutral","alertNeutralText","alertNeutralPanelText","alertPopupError","alertPopupErrorText","alertPopupWarning","alertPopupWarningText","alertPopupSuccess","alertPopupSuccessText","alertPopupNeutral","alertPopupNeutralText","badgeNotification","badgeNotificationText","badgeNeutral","badgeNeutralText","chatMessageIncomingBg","chatMessageIncomingText","chatMessageIncomingLink","chatMessageIncomingBorder","chatMessageOutgoingBg","chatMessageOutgoingText","chatMessageOutgoingLink","chatMessageOutgoingBorder","getLayersArray","getLayers","opacitySlot","currentLayer","getDependencies","inheritance","layerDeps","expandSlotValue","getDeps","findInheritedOpacity","visited","depSlot","dependency","getLayerSlot","findInheritedLayer","SLOT_ORDERED","allKeys","whites","grays","blacks","unprocessed","node","ai","bi","depsA","depsB","topoSort","aV","bV","OPACITIES","defaultValue","affectedSlots","sourceColor","getColor","targetColor","_sourceColor$split$ma","_sourceColor$split$ma2","variable","modifier","parseFloat","sourceOpacity","backgroundColor","deps","isTextColor","outputColor","colorFunc","dep","ownOpacitySlot","opacityOverriden","dependencySlot","dependencyColor","highlightStyle","prefs","solidColor","tintColor","tintColor2","customProps","backgroundImage","backgroundPosition","highlightClass","complicated","faFile","faMusic","faImage","faVideo","faPlayCircle","faStop","faSearchPlus","faTrashAlt","faPencilAlt","faAlignRight","localDescription","nsfwImage","hideNsfwLocal","modalOpen","showHidden","flashLoaded","showDescription","classNames","usePlaceholder","placeholderName","toUpperCase","placeholderIconClass","referrerpolicy","oembed","useModal","modalTypes","videoTag","onEdit","openModal","openModalForce","onRemove","onShiftUp","shiftUp","onShiftDn","shiftDn","stopFlash","flash","closePlayer","setFlashLoaded","toggleDescription","onload","onImageLoad","naturalWidth","hideDescription","onKeydown","_component_StillImage","onPlay","onPause","thumb_url","oembedHTML","onPlayerOpened","onPlayerClosed","slicedUsers","_component_user_link","vm","indeterminateTransitionFix","indeterminate","onTransitionEnd","modelValue","DialogModal","cancelText","confirmText","onAccept","_component_dialog_modal","darkOverlay","addPositionToWords","words","word","previous","splitByWhitespaceBoundary","currentWord","currentChar","pos","wordsWithPosition","toReplace","ariaLive","defualt","currentText","announce","_textAtCaret","faSmileBeam","suggest","enableEmojiPicker","hideEmojiButton","enableStickerPicker","newlineOnCtrlEnter","randomSeed","random","caretEl","caret","blurTimeout","temporarilyHideSuggestions","disableClickOutside","overlayStyle","pickerShown","EmojiPicker","UnicodeDomainIndicator","ScreenReaderNotice","defaultCandidateIndex","preText","postText","showSuggestions","textAtCaret","_this$wordAtCaret","wordAtCaret","Completion","maybeLocalizedEmojiNamesAndKeywords","_emoji$annotations$la","_emoji$annotations$la2","maybeLocalizedEmojiName","_emoji$annotations$la3","onInputScroll","hiddenOverlay","scrollLeft","suggestionListId","suggestionItemId","_this$$refs","hiddenOverlayCaret","suggestorPopover","setAnchorEl","picker","padding","lineHeight","fontFamily","fontSize","wordWrap","whiteSpace","onBlur","onFocus","onPaste","onKeyUp","onKeyDown","onClickInput","onTransition","showPopover","hidePopover","newWord","firstchar","matchedSuggestions","_take","screenReaderNotice","number","triggerShowPicker","showPicker","scrollIntoView","togglePicker","hidePicker","startEmojiLoad","insert","insertion","keepOpen","_ref2$surroundingSpac","surroundingSpace","before","after","isSpaceRegex","spaceBefore","spaceAfter","replaceText","suggestion","cycleBackward","cycleForward","rootRef","scrollerRef","closest","currentScroll","scrollerBottomBorder","rootBottomBorder","targetScroll","scroll","bottom","onPickerShown","onPickerClosed","setCaret","ctrlKey","shiftKey","onStickerUploaded","onStickerUploadFailed","selectionStart","updateStyles","autoCompleteItemLabel","ariaOwns","ariaAutocomplete","ariaExpanded","ariaActivedescendant","_component_screen_reader_notice","_component_EmojiPicker","onEmoji","_component_UnicodeDomainIndicator","at","faBoxOpen","faStickyNote","faSmile","faUser","faPaw","faIceCream","faBus","faBasketballBall","faLightbulb","faCode","faFlag","UNICODE_EMOJI_GROUP_ICON","activities","objects","flags","maybeLocalizedKeywords","nameLocalizer","hideCustomEmoji","inject","activeGroup","showingStickers","groupsScrolledClass","customEmojiTimeout","contentLoaded","groupRefs","emojiRefs","filteredEmojiGroups","StickerPicker","onShowing","setGroupRef","onPopoverShown","onPopoverClosed","startIndex","endIndex","visibleStartIndex","visibleEndIndex","scrolledGroup","emojiItems","headerId","parentElement","getOffset","scrollHeader","headerRef","offsetWidth","headerCont","currentScrollRight","setScroll","setShowStickers","indexInList","scrollToItem","updateScrolledClass","scrollTopMax","toggleStickers","filterByKeyword","keywordLowercase","orderedEmojiList","indices","indexOfKeyword","flat","oldContentLoaded","recalculateItemPerRow","getFilteredEmojiGroups","defaultGroup","allEmojiGroups","_trim","debouncedHandleKeywordChange","allCustomGroups","minItemSize","emojiHeight","emojiWidth","itemPerRow","activeGroupView","stickersAvailable","unpacked","unicodeEmojiGroups","stickerPickerEnabled","_chunk","isFirstRow","isInModal","popoversZLayer","_component_still_image","composing","_component_DynamicScroller","onUpdate","onVisible","_component_DynamicScrollerItem","_component_sticker_picker","onUploaded","onUploadFailed","ruffleInstance","getRuffle","RufflePlayer","polyfills","publicPath","script","onerror","onabort","oncancel","faExclamationTriangle","player","openPlayer","RuffleService","ruffle","newest","createPlayer","letterbox","container","fetchRelationship","attempt","requested","requestFollow","showingConfirmUnfollow","shouldConfirmUnfollow","isPressed","labelFollowing","showConfirmUnfollow","hideConfirmUnfollow","unfollow","doUnfollow","requestUnfollow","hidingLong","minimal","grid","audio","attachmentsRemaining","currentRow","attachmentsDimensionalScore","row","tooManyAttachments","editable","onNaturalSizeLoad","rowStyle","itemStyle","getAspectRatio","flex","toggleHidingLong","openGallery","onMedia","rowIndex","attachmentIndex","_component_Attachment","removeAttachment","shiftUpAttachment","shiftDnAttachment","editAttachment","onSetMedia","Select","promptText","controlledLanguage","addLanguage","setLanguageAt","removeLanguageAt","_component_Select","imageLoaded","useImage","censored","hideNsfwConfig","useDescription","newImg","provider_name","getKey","faUpload","uploadCount","uploadReady","uploading","uploadFile","self","filesize","allowedsize","filesizeunit","allowedsizeunit","fileData","decreaseUploadCount","clearFile","multiUpload","files","change","dropFiles","normalButton","acceptTypes","fileInfos","accept","faAt","userScreenName","hasSelection","shouldShowTooltip","handleSelection","getSelection","containsNode","full","userNameFullUi","serverName","userNameFull","highlightType","_highlightStyle","classnames","shouldBoldenYou","isRemote","shouldShowFullUserName","conf","shouldShowAvatar","shouldShowYous","shouldFadeDomain","MentionLink","mentionsComputed","extraMentions","manyMentions","toggleShowMore","_component_MentionLink","provide","noBackground","reportId","generateUserProfileLink","_component_status_content","notes","faStar","faRetweet","faEyeSlash","faSuitcaseRolling","faExpandAlt","faCompressAlt","statusExpanded","unmuted","Report","toggleStatusExpanded","getUser","toggleMute","userClass","userStyle","targetUser","targetUserProfileLink","needMute","botIndicator","_component_Report","filters","toggleNotificationFilter","NotificationFilters","minimalMode","seenToDisplayCount","mainClass","filteredNotifications","unseenCount","unseenCountTitle","noHeading","teleportTarget","wide","mobile","notificationsToDisplay","updateScrollPosition","markAsSeen","seenCount","notifs","_component_NotificationFilters","unseen","_component_notification","boundTo","boundToSelector","popoverClass","removePadding","overlayCenters","overlayCentersSelector","stayOnClick","triggerAttrs","anchorEl","teleport","lockReEntry","styles","oldSize","scrollable","graceTimeout","parentPopover","childrenShown","containerBoundingClientRect","anchorHeight","anchorWidth","anchorScreenBox","anchorStyle","paddingTop","bottomPadding","paddingBottom","rightPadding","paddingLeft","overlayCenter","parentScreenBox","xBounds","yBounds","horizOffset","vertOffset","box","overlayCenterScreenBox","leftInnerOffset","topInnerOffset","leftBorder","rightBorder","topBorder","bottomBorder","translateX","translateY","usingTop","topBoundary","bottomBoundary","yOffset","usingRight","rightBoundary","leftBoundary","xOffset","maxWidth","wasHidden","onChildPopoverState","onClickOutside","onMouseenterContent","onMouseleaveContent","childRef","$parent","$","beforeUnmount","_Transition","onClickContent","faPlus","pollType","expiryAmount","expiryUnit","maxOptions","maxLength","expiryUnits","expiry","convertExpiryFromUnit","minExpirationInCurrentUnit","convertExpiryToUnit","maxExpirationInCurrentUnit","nextOption","element","addOption","deleteOption","updatePollToParent","DateUtils","expiryAmountChange","maxlength","unstyled","faPollH","faBan","pxStringToNumber","MediaUpload","EmojiInput","PollForm","ScopeSelector","updateIdempotencyKey","textarea","replyTo","textLength","autoFocus","_ref$attentions","allAttentions","_reject","attention","buildMentionsString","repliedUser","copyMessageScope","statusParams","subject","mediaDescriptions","statusContentType","statusIsSensitive","statusFiles","statusPoll","statusMediaDescriptions","statusScope","quoting","uploadingFiles","pollFormVisible","showDropIcon","dropStopTimeout","previewLoading","emojiInputShown","userDefaultScope","showAllScopes","emojiUserSuggestor","suggestor","emojiSuggestor","statusLength","spoilerTextLength","statusLengthLimit","hasStatusLengthLimit","charactersLeft","isOverLengthLimit","alwaysShowSubject","safeDMEnabled","disablePolls","disableNotice","pollContentError","showPreview","disablePreview","emptyStatus","uploadFileLimitReached","fileLimit","isEdit","quotable","repliedStatus","deep","statusChanged","autoPreview","clearStatus","mediaUpload","clearPollForm","preserveFocus","previewStatus","_arguments","_postingOptions","replyOrQuoteAttr","postingOptions","optimisticPosting","disableSubmit","submitOnEnter","setAllMediaDescriptions","postHandler","statusPoster","_statusPoster$postSta","debouncePreviewStatus","closePreview","togglePreview","addMediaFile","fileInfo","removeMediaFile","newText","shiftUpMediaFile","shiftDnMediaFile","uploadFailed","errString","templateArgs","startedUploadingFiles","finishedUploadingFiles","paste","clipboardData","fileDrop","dataTransfer","fileDragStop","fileDrag","dropEffect","onEmojiInputInput","formRef","bottomRef","bottomBottomPaddingStr","bottomBottomPadding","bottomPaddingStr","vertPadding","oldHeight","scrollerHeight","heightWithoutPadding","newHeight","maxHeight","bottomBottomBorder","isBottomObstructed","isFormBiggerThanScroller","bottomChangeDelta","totalDelta","showEmojiPicker","changeVis","togglePollForm","setPoll","pollForm","dismissScopeNotice","handleEmojiInputShow","openProfileTab","onDragover","disableLockWarning","tabindex","disableSubject","_component_EmojiInput","inputProps","emojiPickerPlacement","onShown","onCompositionupdate","disableScopeSelector","disableVisibilitySelector","_component_scope_selector","postFormat","_component_poll_form","onUpdatePoll","_component_media_upload","onUploading","onAllUploaded","animation","onDragleave","onDrop","_component_gallery","disableSensitivityCheckbox","progress","$data","subscribeUrl","serverUrl","protocol","host","faLock","faLockOpen","currentScope","initialScope","showNothing","showPublic","showUnlisted","showPrivate","showDirect","originalScope","shouldShow","css","unlisted","private","direct","showAll","userDefault","onScopeChange","faReply","faStarRegular","animated","filterWord","addReaction","existingReaction","show","showingConfirmDialog","shouldConfirmRepeat","showConfirmDialog","doRetweet","hideConfirmDialog","faBookmarkReg","faShareAlt","faExternalLinkAlt","faHistory","showingDeleteDialog","shouldConfirmDelete","showDeleteStatusConfirmDialog","doDeleteStatus","hideDeleteStatusConfirmDialog","copyLink","clipboard","writeText","statusLink","reportStatus","showStatusHistory","p","canDelete","ownStatus","canPin","canMute","canBookmark","isEdited","_component_ConfirmModal","enter","oldStatus","usersCapped","UserListPopover","tooManyReactions","showMoreString","accountsForEmoji","toggleShowAll","reactedWith","fetchEmojiReactionsByIfMissing","reactWith","unreact","emojiOnClick","counterTriggerAttrs","_component_UserListPopover","faPlusSquare","faEye","camelCase","controlledOrUncontrolledSet","camelized","uncontrolledName","ReplyButton","FavoriteButton","ReactButton","RetweetButton","ExtraButtons","StatusPopover","EmojiReactions","uncontrolledReplying","userExpanded","uncontrolledMediaPlaying","headTailLinks","displayQuote","inQuote","toggle","controlledName","showReasonMutedThread","inConversation","repeaterClass","repeaterStyle","replyProfileLink","isReply","retweeterUser","retweeter","retweeterHtml","retweeterProfileLink","statusFromGlobalRepository","rtBotStatus","botStatus","rtBotIndicator","mentionsLine","writtenSet","attn","hasMentionsLine","reasonsToMute","userIsMuted","shouldNotMute","relationshipReblog","hideMutedUsers","isFocused","replyToName","replySubject","decodedSummary","startsWithRe","combinedFavsAndRepeatsUsers","combinedUsers","tagObj","isSuspendable","inThreadForest","controlledThreadDisplayStatus","visibilityLocalized","hasVisibleQuote","hasInvisibleQuote","quotedStatus","shouldDisplayQuote","visibilityIcon","showError","toggleReplying","gotoOriginal","toggleUserExpanded","addMediaPlaying","removeMediaPlaying","setHeadTailLinks","controlledToggleThreadDisplay","scrollIfHighlighted","highlightId","rect","toggleDisplayQuote","inlineExpanded","isPreview","showPinned","_hoisted_54","_hoisted_55","_hoisted_56","_hoisted_57","_component_reply_button","onToggle","simpleTree","_hoisted_31","_component_StatusPopover","flip","_component_MentionsLine","controlledShowingTall","controlledExpandingSubject","controlledShowingLongSubject","controlledToggleShowingTall","controlledToggleExpandingSubject","controlledToggleShowingLongSubject","onMediaplay","onMediapause","onParseReady","_hoisted_40","showOtherRepliesAsButton","_hoisted_41","_hoisted_46","_hoisted_49","_hoisted_50","_hoisted_51","_hoisted_52","_component_AvatarList","_component_EmojiReactions","_hoisted_53","_component_retweet_button","_component_favorite_button","_component_ReactButton","_component_extra_buttons","onOnError","onOnSuccess","_hoisted_58","basePoll","expiresAt","showResults","voted","totalVotesCount","votes_count","containerClass","choiceIndices","isDisabled","noChoice","percentageForOption","resultTitle","activateOption","clickedElement","_forEach","optionId","voters_count","faLink","postLength","parseReadyDone","localCollapseSubjectDefault","tallStatus","singleLine","longSubject","mightHideBecauseSubject","mightHideBecauseTall","hideSubjectStatus","hideTallStatus","showingMore","attachmentTypes","handle","toggleShowingTall","toggleExpandingSubject","toggleShowingLongSubject","fullContent","controlledOrUncontrolledToggle","uncontrolledShowingTall","uncontrolledShowingLongSubject","uncontrolledExpandingSubject","statusCard","nsfwClickthrough","attachmentSize","Poll","galleryAttachments","_component_Poll","_component_link_preview","realSrc","appendPx","loadLazy","dataSrc","imageLoadHandler","canvas","imageLoadError","removeAttribute","localeDateString","relativeTimeString","timeString","tc","templateKey","refreshRelativeTimeObject","longFormat","datetime","faRobot","showPlaceholder","imgSrc","FORCE_NSFW","STRIP_MEDIA","FORCE_UNLISTED","DISABLE_REMOTE_SUBSCRIPTION","DISABLE_ANY_SUBSCRIPTION","SANDBOX","QUARANTINE","showDeleteUserDialog","tagsSet","canGrantRole","canChangeActivationState","privileged","canDeleteAccount","canUseTagPolicy","tagPolicyAvailable","hasTag","privilege","toggleTag","toggleRight","deleteUserDialog","isProfile","isTargetUser","setToggled","_component_DialogModal","inListsSet","inList","toggleList","faEllipsisV","showingConfirmBlock","ProgressButton","UserListMenu","showConfirmBlock","hideConfirmBlock","showRepeats","hideRepeats","shouldConfirmBlock","doBlockUser","showing_reblogs","_component_UserListMenu","localNote","frozen","startEditing","cancelEditing","finalizeEditing","faRss","faEdit","followRequestInProgress","showingConfirmMute","muteExpiryAmount","muteExpiryUnit","bordered","isOtherUser","dailyAvg","days","userHighlightType","userHighlightColor","visibleRole","validRole","roleTitle","showModerationMenu","hasNote","supportsNote","shouldConfirmMute","muteExpiryUnits","ModerationTools","AccountActions","UserNote","showConfirmMute","hideConfirmMute","doMuteUser","setProfileView","zoomAvatar","mentionUser","onAvatarClickHandler","onAvatarClick","hideBio","heading","flexible","avatarAction","_component_AccountActions","subscribing","_component_ProgressButton","_component_ModerationTools","hasNoteEditor","_component_UserNote","blocksSuspend","hasAudio","onPlaying","setHasAudio","looping","onPaused","srcElement","webkitAudioDecodedByteCount","mozHasAudio","audioTracks","preload","loop","playsinline","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","O","chunkIds","fn","notFulfilled","Infinity","fulfilled","getter","__esModule","getPrototypeOf","mode","ns","getOwnPropertyNames","definition","defineProperty","enumerable","chunkId","miniCssF","globalThis","needAttach","scripts","getElementsByTagName","getAttribute","charset","nc","setAttribute","onScriptComplete","doneFns","removeChild","toStringTag","nmd","installedCssChunks","miniCss","fullhref","existingLinkTags","dataHref","existingStyleTags","findStylesheet","oldTag","linkTag","errorType","realHref","createStylesheet","loadStylesheet","installedChunks","installedChunkData","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file
diff --git a/priv/static/static/js/app.d42ab31e1d50a3265a82.js b/priv/static/static/js/app.d42ab31e1d50a3265a82.js
new file mode 100644
index 000000000..741e80071
--- /dev/null
+++ b/priv/static/static/js/app.d42ab31e1d50a3265a82.js
@@ -0,0 +1,2 @@
+(()=>{var e,t,n,o,r,i={88797:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});const o={about:{mrf:{federation:e=>{const{normalize:t}=e;return t(["Federation"])},keyword:{keyword_policies:e=>{const{normalize:t}=e;return t(["Keyword policies"])},ftl_removal:e=>{const{normalize:t}=e;return t(['Removal from "The Whole Known Network" Timeline'])},reject:e=>{const{normalize:t}=e;return t(["Reject"])},replace:e=>{const{normalize:t}=e;return t(["Replace"])},is_replaced_by:e=>{const{normalize:t}=e;return t(["→"])}},mrf_policies:e=>{const{normalize:t}=e;return t(["Enabled MRF policies"])},mrf_policies_desc:e=>{const{normalize:t}=e;return t(["MRF policies manipulate the federation behaviour of the instance. The following policies are enabled:"])},simple:{simple_policies:e=>{const{normalize:t}=e;return t(["Instance-specific policies"])},instance:e=>{const{normalize:t}=e;return t(["Instance"])},reason:e=>{const{normalize:t}=e;return t(["Reason"])},not_applicable:e=>{const{normalize:t}=e;return t(["N/A"])},accept:e=>{const{normalize:t}=e;return t(["Accept"])},accept_desc:e=>{const{normalize:t}=e;return t(["This instance only accepts messages from the following instances:"])},reject:e=>{const{normalize:t}=e;return t(["Reject"])},reject_desc:e=>{const{normalize:t}=e;return t(["This instance will not accept messages from the following instances:"])},quarantine:e=>{const{normalize:t}=e;return t(["Quarantine"])},quarantine_desc:e=>{const{normalize:t}=e;return t(["This instance will send only public posts to the following instances:"])},ftl_removal:e=>{const{normalize:t}=e;return t(['Removal from "Known Network" Timeline'])},ftl_removal_desc:e=>{const{normalize:t}=e;return t(['This instance removes these instances from "Known Network" timeline:'])},media_removal:e=>{const{normalize:t}=e;return t(["Media Removal"])},media_removal_desc:e=>{const{normalize:t}=e;return t(["This instance removes media from posts on the following instances:"])},media_nsfw:e=>{const{normalize:t}=e;return t(["Media force-set as sensitive"])},media_nsfw_desc:e=>{const{normalize:t}=e;return t(["This instance forces media to be set sensitive in posts on the following instances:"])}}},staff:e=>{const{normalize:t}=e;return t(["Staff"])}},announcements:{page_header:e=>{const{normalize:t}=e;return t(["Announcements"])},title:e=>{const{normalize:t}=e;return t(["Announcement"])},mark_as_read_action:e=>{const{normalize:t}=e;return t(["Mark as read"])},post_form_header:e=>{const{normalize:t}=e;return t(["Post announcement"])},post_placeholder:e=>{const{normalize:t}=e;return t(["Type your announcement content here..."])},post_action:e=>{const{normalize:t}=e;return t(["Post"])},post_error:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Error: ",n(o("error"))])},close_error:e=>{const{normalize:t}=e;return t(["Close"])},delete_action:e=>{const{normalize:t}=e;return t(["Delete"])},start_time_prompt:e=>{const{normalize:t}=e;return t(["Start time: "])},end_time_prompt:e=>{const{normalize:t}=e;return t(["End time: "])},all_day_prompt:e=>{const{normalize:t}=e;return t(["This is an all-day event"])},published_time_display:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Published at ",n(o("time"))])},start_time_display:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Starts at ",n(o("time"))])},end_time_display:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Ends at ",n(o("time"))])},edit_action:e=>{const{normalize:t}=e;return t(["Edit"])},submit_edit_action:e=>{const{normalize:t}=e;return t(["Submit"])},cancel_edit_action:e=>{const{normalize:t}=e;return t(["Cancel"])},inactive_message:e=>{const{normalize:t}=e;return t(["This announcement is inactive"])}},shoutbox:{title:e=>{const{normalize:t}=e;return t(["Shoutbox"])}},domain_mute_card:{mute:e=>{const{normalize:t}=e;return t(["Mute"])},mute_progress:e=>{const{normalize:t}=e;return t(["Muting…"])},unmute:e=>{const{normalize:t}=e;return t(["Unmute"])},unmute_progress:e=>{const{normalize:t}=e;return t(["Unmuting…"])}},exporter:{export:e=>{const{normalize:t}=e;return t(["Export"])},processing:e=>{const{normalize:t}=e;return t(["Processing, you'll soon be asked to download your file"])}},features_panel:{shout:e=>{const{normalize:t}=e;return t(["Shoutbox"])},pleroma_chat_messages:e=>{const{normalize:t}=e;return t(["Pleroma Chat"])},gopher:e=>{const{normalize:t}=e;return t(["Gopher"])},media_proxy:e=>{const{normalize:t}=e;return t(["Media proxy"])},scope_options:e=>{const{normalize:t}=e;return t(["Scope options"])},text_limit:e=>{const{normalize:t}=e;return t(["Text limit"])},title:e=>{const{normalize:t}=e;return t(["Features"])},who_to_follow:e=>{const{normalize:t}=e;return t(["Who to follow"])},upload_limit:e=>{const{normalize:t}=e;return t(["Upload limit"])}},finder:{error_fetching_user:e=>{const{normalize:t}=e;return t(["Error fetching user"])},find_user:e=>{const{normalize:t}=e;return t(["Find user"])}},general:{apply:e=>{const{normalize:t}=e;return t(["Apply"])},submit:e=>{const{normalize:t}=e;return t(["Submit"])},more:e=>{const{normalize:t}=e;return t(["More"])},loading:e=>{const{normalize:t}=e;return t(["Loading…"])},generic_error:e=>{const{normalize:t}=e;return t(["An error occured"])},generic_error_message:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["An error occured: ",n(o(0))])},error_retry:e=>{const{normalize:t}=e;return t(["Please try again"])},retry:e=>{const{normalize:t}=e;return t(["Try again"])},optional:e=>{const{normalize:t}=e;return t(["optional"])},show_more:e=>{const{normalize:t}=e;return t(["Show more"])},show_less:e=>{const{normalize:t}=e;return t(["Show less"])},never_show_again:e=>{const{normalize:t}=e;return t(["Never show again"])},dismiss:e=>{const{normalize:t}=e;return t(["Dismiss"])},cancel:e=>{const{normalize:t}=e;return t(["Cancel"])},disable:e=>{const{normalize:t}=e;return t(["Disable"])},enable:e=>{const{normalize:t}=e;return t(["Enable"])},confirm:e=>{const{normalize:t}=e;return t(["Confirm"])},verify:e=>{const{normalize:t}=e;return t(["Verify"])},close:e=>{const{normalize:t}=e;return t(["Close"])},undo:e=>{const{normalize:t}=e;return t(["Undo"])},yes:e=>{const{normalize:t}=e;return t(["Yes"])},no:e=>{const{normalize:t}=e;return t(["No"])},peek:e=>{const{normalize:t}=e;return t(["Peek"])},scroll_to_top:e=>{const{normalize:t}=e;return t(["Scroll to top"])},role:{admin:e=>{const{normalize:t}=e;return t(["Admin"])},moderator:e=>{const{normalize:t}=e;return t(["Moderator"])}},unpin:e=>{const{normalize:t}=e;return t(["Unpin item"])},pin:e=>{const{normalize:t}=e;return t(["Pin item"])},flash_content:e=>{const{normalize:t}=e;return t(["Click to show Flash content using Ruffle (Experimental, may not work)."])},flash_security:e=>{const{normalize:t}=e;return t(["Note that this can be potentially dangerous since Flash content is still arbitrary code."])},flash_fail:e=>{const{normalize:t}=e;return t(["Failed to load flash content, see console for details."])},scope_in_timeline:{direct:e=>{const{normalize:t}=e;return t(["Direct"])},private:e=>{const{normalize:t}=e;return t(["Followers-only"])},public:e=>{const{normalize:t}=e;return t(["Public"])},unlisted:e=>{const{normalize:t}=e;return t(["Unlisted"])}}},image_cropper:{crop_picture:e=>{const{normalize:t}=e;return t(["Crop picture"])},save:e=>{const{normalize:t}=e;return t(["Save"])},save_without_cropping:e=>{const{normalize:t}=e;return t(["Save without cropping"])},cancel:e=>{const{normalize:t}=e;return t(["Cancel"])}},importer:{submit:e=>{const{normalize:t}=e;return t(["Submit"])},success:e=>{const{normalize:t}=e;return t(["Imported successfully."])},error:e=>{const{normalize:t}=e;return t(["An error occured while importing this file."])}},login:{login:e=>{const{normalize:t}=e;return t(["Log in"])},description:e=>{const{normalize:t}=e;return t(["Log in with OAuth"])},logout:e=>{const{normalize:t}=e;return t(["Log out"])},logout_confirm_title:e=>{const{normalize:t}=e;return t(["Logout confirmation"])},logout_confirm:e=>{const{normalize:t}=e;return t(["Do you really want to logout?"])},logout_confirm_accept_button:e=>{const{normalize:t}=e;return t(["Logout"])},logout_confirm_cancel_button:e=>{const{normalize:t}=e;return t(["Do not logout"])},password:e=>{const{normalize:t}=e;return t(["Password"])},placeholder:e=>{const{normalize:t}=e;return t(["e.g. lain"])},register:e=>{const{normalize:t}=e;return t(["Register"])},username:e=>{const{normalize:t}=e;return t(["Username"])},hint:e=>{const{normalize:t}=e;return t(["Log in to join the discussion"])},authentication_code:e=>{const{normalize:t}=e;return t(["Authentication code"])},enter_recovery_code:e=>{const{normalize:t}=e;return t(["Enter a recovery code"])},enter_two_factor_code:e=>{const{normalize:t}=e;return t(["Enter a two-factor code"])},recovery_code:e=>{const{normalize:t}=e;return t(["Recovery code"])},heading:{totp:e=>{const{normalize:t}=e;return t(["Two-factor authentication"])},recovery:e=>{const{normalize:t}=e;return t(["Two-factor recovery"])}}},media_modal:{previous:e=>{const{normalize:t}=e;return t(["Previous"])},next:e=>{const{normalize:t}=e;return t(["Next"])},counter:e=>{const{normalize:t,interpolate:n,named:o}=e;return t([n(o("current"))," / ",n(o("total"))])},hide:e=>{const{normalize:t}=e;return t(["Close media viewer"])}},nav:{about:e=>{const{normalize:t}=e;return t(["About"])},administration:e=>{const{normalize:t}=e;return t(["Administration"])},back:e=>{const{normalize:t}=e;return t(["Back"])},friend_requests:e=>{const{normalize:t}=e;return t(["Follow requests"])},mentions:e=>{const{normalize:t}=e;return t(["Mentions"])},interactions:e=>{const{normalize:t}=e;return t(["Interactions"])},dms:e=>{const{normalize:t}=e;return t(["Direct messages"])},public_tl:e=>{const{normalize:t}=e;return t(["Public timeline"])},timeline:e=>{const{normalize:t}=e;return t(["Timeline"])},home_timeline:e=>{const{normalize:t}=e;return t(["Home timeline"])},twkn:e=>{const{normalize:t}=e;return t(["Known Network"])},bookmarks:e=>{const{normalize:t}=e;return t(["Bookmarks"])},user_search:e=>{const{normalize:t}=e;return t(["User Search"])},search:e=>{const{normalize:t}=e;return t(["Search"])},search_close:e=>{const{normalize:t}=e;return t(["Close search bar"])},who_to_follow:e=>{const{normalize:t}=e;return t(["Who to follow"])},preferences:e=>{const{normalize:t}=e;return t(["Preferences"])},timelines:e=>{const{normalize:t}=e;return t(["Timelines"])},chats:e=>{const{normalize:t}=e;return t(["Chats"])},lists:e=>{const{normalize:t}=e;return t(["Lists"])},edit_nav_mobile:e=>{const{normalize:t}=e;return t(["Customize navigation bar"])},edit_pinned:e=>{const{normalize:t}=e;return t(["Edit pinned items"])},edit_finish:e=>{const{normalize:t}=e;return t(["Done editing"])},mobile_sidebar:e=>{const{normalize:t}=e;return t(["Toggle mobile sidebar"])},mobile_notifications:e=>{const{normalize:t}=e;return t(["Open notifications"])},mobile_notifications:e=>{const{normalize:t}=e;return t(["Open notifications (there are unread ones)"])},mobile_notifications_close:e=>{const{normalize:t}=e;return t(["Close notifications"])},announcements:e=>{const{normalize:t}=e;return t(["Announcements"])}},notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Unknown status, searching for it…"])},error:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["Error fetching notifications: ",n(o(0))])},favorited_you:e=>{const{normalize:t}=e;return t(["favorited your status"])},followed_you:e=>{const{normalize:t}=e;return t(["followed you"])},follow_request:e=>{const{normalize:t}=e;return t(["wants to follow you"])},load_older:e=>{const{normalize:t}=e;return t(["Load older notifications"])},notifications:e=>{const{normalize:t}=e;return t(["Notifications"])},read:e=>{const{normalize:t}=e;return t(["Read!"])},repeated_you:e=>{const{normalize:t}=e;return t(["repeated your status"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["No more notifications"])},migrated_to:e=>{const{normalize:t}=e;return t(["migrated to"])},reacted_with:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["reacted with ",n(o(0))])},submitted_report:e=>{const{normalize:t}=e;return t(["submitted a report"])},poll_ended:e=>{const{normalize:t}=e;return t(["poll has ended"])}},polls:{add_poll:e=>{const{normalize:t}=e;return t(["Add poll"])},add_option:e=>{const{normalize:t}=e;return t(["Add option"])},option:e=>{const{normalize:t}=e;return t(["Option"])},votes:e=>{const{normalize:t}=e;return t(["votes"])},people_voted_count:e=>{const{normalize:t,interpolate:n,named:o,plural:r}=e;return r([t([n(o("count"))," person voted"]),t([n(o("count"))," people voted"])])},votes_count:e=>{const{normalize:t,interpolate:n,named:o,plural:r}=e;return r([t([n(o("count"))," vote"]),t([n(o("count"))," votes"])])},vote:e=>{const{normalize:t}=e;return t(["Vote"])},type:e=>{const{normalize:t}=e;return t(["Poll type"])},single_choice:e=>{const{normalize:t}=e;return t(["Single choice"])},multiple_choices:e=>{const{normalize:t}=e;return t(["Multiple choices"])},expiry:e=>{const{normalize:t}=e;return t(["Poll age"])},expires_in:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["Poll ends in ",n(o(0))])},expired:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["Poll ended ",n(o(0))," ago"])},not_enough_options:e=>{const{normalize:t}=e;return t(["Too few unique options in poll"])}},emoji:{stickers:e=>{const{normalize:t}=e;return t(["Stickers"])},emoji:e=>{const{normalize:t}=e;return t(["Emoji"])},keep_open:e=>{const{normalize:t}=e;return t(["Keep picker open"])},search_emoji:e=>{const{normalize:t}=e;return t(["Search for an emoji"])},add_emoji:e=>{const{normalize:t}=e;return t(["Insert emoji"])},custom:e=>{const{normalize:t}=e;return t(["Custom emoji"])},unpacked:e=>{const{normalize:t}=e;return t(["Unpacked emoji"])},unicode:e=>{const{normalize:t}=e;return t(["Unicode emoji"])},unicode_groups:{activities:e=>{const{normalize:t}=e;return t(["Activities"])},"animals-and-nature":e=>{const{normalize:t}=e;return t(["Animals & Nature"])},flags:e=>{const{normalize:t}=e;return t(["Flags"])},"food-and-drink":e=>{const{normalize:t}=e;return t(["Food & Drink"])},objects:e=>{const{normalize:t}=e;return t(["Objects"])},"people-and-body":e=>{const{normalize:t}=e;return t(["People & Body"])},"smileys-and-emotion":e=>{const{normalize:t}=e;return t(["Smileys & Emotion"])},symbols:e=>{const{normalize:t}=e;return t(["Symbols"])},"travel-and-places":e=>{const{normalize:t}=e;return t(["Travel & Places"])}},load_all_hint:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Loaded first ",n(o("saneAmount"))," emoji, loading all emoji may cause performance issues."])},load_all:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Loading all ",n(o("emojiAmount"))," emoji"])},regional_indicator:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Regional indicator ",n(o("letter"))])}},errors:{storage_unavailable:e=>{const{normalize:t}=e;return t(["Pleroma could not access browser storage. Your login or your local settings won't be saved and you might encounter unexpected issues. Try enabling cookies."])}},interactions:{favs_repeats:e=>{const{normalize:t}=e;return t(["Repeats and favorites"])},follows:e=>{const{normalize:t}=e;return t(["New follows"])},emoji_reactions:e=>{const{normalize:t}=e;return t(["Emoji Reactions"])},reports:e=>{const{normalize:t}=e;return t(["Reports"])},moves:e=>{const{normalize:t}=e;return t(["User migrates"])},load_older:e=>{const{normalize:t}=e;return t(["Load older interactions"])}},post_status:{edit_status:e=>{const{normalize:t}=e;return t(["Edit status"])},new_status:e=>{const{normalize:t}=e;return t(["Post new status"])},reply_option:e=>{const{normalize:t}=e;return t(["Reply to this status"])},quote_option:e=>{const{normalize:t}=e;return t(["Quote this status"])},account_not_locked_warning:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["Your account is not ",n(o(0)),". Anyone can follow you to view your follower-only posts."])},account_not_locked_warning_link:e=>{const{normalize:t}=e;return t(["locked"])},attachments_sensitive:e=>{const{normalize:t}=e;return t(["Mark attachments as sensitive"])},media_description:e=>{const{normalize:t}=e;return t(["Media description"])},content_type:{"text/plain":e=>{const{normalize:t}=e;return t(["Plain text"])},"text/html":e=>{const{normalize:t}=e;return t(["HTML"])},"text/markdown":e=>{const{normalize:t}=e;return t(["Markdown"])},"text/bbcode":e=>{const{normalize:t}=e;return t(["BBCode"])}},content_type_selection:e=>{const{normalize:t}=e;return t(["Post format"])},content_warning:e=>{const{normalize:t}=e;return t(["Subject (optional)"])},default:e=>{const{normalize:t}=e;return t(["Just landed in L.A."])},direct_warning_to_all:e=>{const{normalize:t}=e;return t(["This post will be visible to all the mentioned users."])},direct_warning_to_first_only:e=>{const{normalize:t}=e;return t(["This post will only be visible to the mentioned users at the beginning of the message."])},edit_remote_warning:e=>{const{normalize:t}=e;return t(["Other remote instances may not support editing and unable to receive the latest version of your post."])},edit_unsupported_warning:e=>{const{normalize:t}=e;return t(["Pleroma does not support editing mentions or polls."])},posting:e=>{const{normalize:t}=e;return t(["Posting"])},post:e=>{const{normalize:t}=e;return t(["Post"])},preview:e=>{const{normalize:t}=e;return t(["Preview"])},preview_empty:e=>{const{normalize:t}=e;return t(["Empty"])},empty_status_error:e=>{const{normalize:t}=e;return t(["Can't post an empty status with no files"])},media_description_error:e=>{const{normalize:t}=e;return t(["Failed to update media, try again"])},scope_notice:{public:e=>{const{normalize:t}=e;return t(["This post will be visible to everyone"])},private:e=>{const{normalize:t}=e;return t(["This post will be visible to your followers only"])},unlisted:e=>{const{normalize:t}=e;return t(["This post will not be visible in Public Timeline and The Whole Known Network"])}},scope_notice_dismiss:e=>{const{normalize:t}=e;return t(["Close this notice"])},scope:{direct:e=>{const{normalize:t}=e;return t(["Direct - post to mentioned users only"])},private:e=>{const{normalize:t}=e;return t(["Followers-only - post to followers only"])},public:e=>{const{normalize:t}=e;return t(["Public - post to public timelines"])},unlisted:e=>{const{normalize:t}=e;return t(["Unlisted - do not post to public timelines"])}}},registration:{bio_optional:e=>{const{normalize:t}=e;return t(["Bio (optional)"])},email:e=>{const{normalize:t}=e;return t(["Email"])},email_optional:e=>{const{normalize:t}=e;return t(["Email (optional)"])},fullname:e=>{const{normalize:t}=e;return t(["Display name"])},password_confirm:e=>{const{normalize:t}=e;return t(["Password confirmation"])},registration:e=>{const{normalize:t}=e;return t(["Registration"])},token:e=>{const{normalize:t}=e;return t(["Invite token"])},captcha:e=>{const{normalize:t}=e;return t(["CAPTCHA"])},new_captcha:e=>{const{normalize:t}=e;return t(["Click the image to get a new captcha"])},username_placeholder:e=>{const{normalize:t}=e;return t(["e.g. lain"])},fullname_placeholder:e=>{const{normalize:t}=e;return t(["e.g. Lain Iwakura"])},bio_placeholder:e=>{const{normalize:t}=e;return t(["e.g.\nHi, I'm Lain.\nI’m an anime girl living in suburban Japan. You may know me from the Wired."])},reason:e=>{const{normalize:t}=e;return t(["Reason to register"])},reason_placeholder:e=>{const{normalize:t}=e;return t(["This instance approves registrations manually.\nLet the administration know why you want to register."])},register:e=>{const{normalize:t}=e;return t(["Register"])},validations:{username_required:e=>{const{normalize:t}=e;return t(["cannot be left blank"])},fullname_required:e=>{const{normalize:t}=e;return t(["cannot be left blank"])},email_required:e=>{const{normalize:t}=e;return t(["cannot be left blank"])},password_required:e=>{const{normalize:t}=e;return t(["cannot be left blank"])},password_confirmation_required:e=>{const{normalize:t}=e;return t(["cannot be left blank"])},password_confirmation_match:e=>{const{normalize:t}=e;return t(["should be the same as password"])},birthday_required:e=>{const{normalize:t}=e;return t(["cannot be left blank"])},birthday_min_age:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["must be on or before ",n(o("date"))])}},email_language:e=>{const{normalize:t}=e;return t(["In which language do you want to receive emails from the server?"])},birthday:e=>{const{normalize:t}=e;return t(["Birthday:"])},birthday_optional:e=>{const{normalize:t}=e;return t(["Birthday (optional):"])}},remote_user_resolver:{remote_user_resolver:e=>{const{normalize:t}=e;return t(["Remote user resolver"])},searching_for:e=>{const{normalize:t}=e;return t(["Searching for"])},error:e=>{const{normalize:t}=e;return t(["Not found."])}},report:{reporter:e=>{const{normalize:t}=e;return t(["Reporter:"])},reported_user:e=>{const{normalize:t}=e;return t(["Reported user:"])},reported_statuses:e=>{const{normalize:t}=e;return t(["Reported statuses:"])},notes:e=>{const{normalize:t}=e;return t(["Notes:"])},state:e=>{const{normalize:t}=e;return t(["State:"])},state_open:e=>{const{normalize:t}=e;return t(["Open"])},state_closed:e=>{const{normalize:t}=e;return t(["Closed"])},state_resolved:e=>{const{normalize:t}=e;return t(["Resolved"])}},selectable_list:{select_all:e=>{const{normalize:t}=e;return t(["Select all"])}},settings:{add_language:e=>{const{normalize:t}=e;return t(["Add fallback language"])},remove_language:e=>{const{normalize:t}=e;return t(["Remove"])},primary_language:e=>{const{normalize:t}=e;return t(["Primary language:"])},fallback_language:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Fallback language ",n(o("index")),":"])},app_name:e=>{const{normalize:t}=e;return t(["App name"])},expert_mode:e=>{const{normalize:t}=e;return t(["Show advanced"])},save:e=>{const{normalize:t}=e;return t(["Save changes"])},security:e=>{const{normalize:t}=e;return t(["Security"])},setting_changed:e=>{const{normalize:t}=e;return t(["Setting is different from default"])},setting_server_side:e=>{const{normalize:t}=e;return t(["This setting is tied to your profile and affects all sessions and clients"])},enter_current_password_to_confirm:e=>{const{normalize:t}=e;return t(["Enter your current password to confirm your identity"])},post_look_feel:e=>{const{normalize:t}=e;return t(["Posts Look & Feel"])},mention_links:e=>{const{normalize:t}=e;return t(["Mention links"])},mfa:{otp:e=>{const{normalize:t}=e;return t(["OTP"])},setup_otp:e=>{const{normalize:t}=e;return t(["Setup OTP"])},wait_pre_setup_otp:e=>{const{normalize:t}=e;return t(["presetting OTP"])},confirm_and_enable:e=>{const{normalize:t}=e;return t(["Confirm & enable OTP"])},title:e=>{const{normalize:t}=e;return t(["Two-factor Authentication"])},generate_new_recovery_codes:e=>{const{normalize:t}=e;return t(["Generate new recovery codes"])},warning_of_generate_new_codes:e=>{const{normalize:t}=e;return t(["When you generate new recovery codes, your old codes won’t work anymore."])},recovery_codes:e=>{const{normalize:t}=e;return t(["Recovery codes."])},waiting_a_recovery_codes:e=>{const{normalize:t}=e;return t(["Receiving backup codes…"])},recovery_codes_warning:e=>{const{normalize:t}=e;return t(["Write the codes down or save them somewhere secure - otherwise you won't see them again. If you lose access to your 2FA app and recovery codes you'll be locked out of your account."])},authentication_methods:e=>{const{normalize:t}=e;return t(["Authentication methods"])},scan:{title:e=>{const{normalize:t}=e;return t(["Scan"])},desc:e=>{const{normalize:t}=e;return t(["Using your two-factor app, scan this QR code or enter text key:"])},secret_code:e=>{const{normalize:t}=e;return t(["Key"])}},verify:{desc:e=>{const{normalize:t}=e;return t(["To enable two-factor authentication, enter the code from your two-factor app:"])}}},lists_navigation:e=>{const{normalize:t}=e;return t(["Show lists in navigation"])},allow_following_move:e=>{const{normalize:t}=e;return t(["Allow auto-follow when following account moves"])},attachmentRadius:e=>{const{normalize:t}=e;return t(["Attachments"])},attachments:e=>{const{normalize:t}=e;return t(["Attachments"])},avatar:e=>{const{normalize:t}=e;return t(["Avatar"])},avatarAltRadius:e=>{const{normalize:t}=e;return t(["Avatars (notifications)"])},avatarRadius:e=>{const{normalize:t}=e;return t(["Avatars"])},background:e=>{const{normalize:t}=e;return t(["Background"])},bio:e=>{const{normalize:t}=e;return t(["Bio"])},email_language:e=>{const{normalize:t}=e;return t(["Language for receiving emails from the server"])},block_export:e=>{const{normalize:t}=e;return t(["Block export"])},block_export_button:e=>{const{normalize:t}=e;return t(["Export your blocks to a csv file"])},block_import:e=>{const{normalize:t}=e;return t(["Block import"])},block_import_error:e=>{const{normalize:t}=e;return t(["Error importing blocks"])},blocks_imported:e=>{const{normalize:t}=e;return t(["Blocks imported! Processing them will take a while."])},mute_export:e=>{const{normalize:t}=e;return t(["Mute export"])},mute_export_button:e=>{const{normalize:t}=e;return t(["Export your mutes to a csv file"])},mute_import:e=>{const{normalize:t}=e;return t(["Mute import"])},mute_import_error:e=>{const{normalize:t}=e;return t(["Error importing mutes"])},mutes_imported:e=>{const{normalize:t}=e;return t(["Mutes imported! Processing them will take a while."])},import_mutes_from_a_csv_file:e=>{const{normalize:t}=e;return t(["Import mutes from a csv file"])},account_backup:e=>{const{normalize:t}=e;return t(["Account backup"])},account_backup_description:e=>{const{normalize:t}=e;return t(["This allows you to download an archive of your account information and your posts, but they cannot yet be imported into a Pleroma account."])},account_backup_table_head:e=>{const{normalize:t}=e;return t(["Backup"])},download_backup:e=>{const{normalize:t}=e;return t(["Download"])},backup_not_ready:e=>{const{normalize:t}=e;return t(["This backup is not ready yet."])},backup_running:e=>{const{normalize:t,interpolate:n,named:o,plural:r}=e;return r([t(["This backup is in progress, processed ",n(o("number"))," record."]),t(["This backup is in progress, processed ",n(o("number"))," records."])])},backup_failed:e=>{const{normalize:t}=e;return t(["This backup has failed."])},remove_backup:e=>{const{normalize:t}=e;return t(["Remove"])},list_backups_error:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Error fetching backup list: ",n(o("error"))])},add_backup:e=>{const{normalize:t}=e;return t(["Create a new backup"])},added_backup:e=>{const{normalize:t}=e;return t(["Added a new backup."])},add_backup_error:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Error adding a new backup: ",n(o("error"))])},blocks_tab:e=>{const{normalize:t}=e;return t(["Blocks"])},bot:e=>{const{normalize:t}=e;return t(["This is a bot account"])},btnRadius:e=>{const{normalize:t}=e;return t(["Buttons"])},cBlue:e=>{const{normalize:t}=e;return t(["Blue (Reply, follow)"])},cGreen:e=>{const{normalize:t}=e;return t(["Green (Retweet)"])},cOrange:e=>{const{normalize:t}=e;return t(["Orange (Favorite)"])},cRed:e=>{const{normalize:t}=e;return t(["Red (Cancel)"])},change_email:e=>{const{normalize:t}=e;return t(["Change email"])},change_email_error:e=>{const{normalize:t}=e;return t(["There was an issue changing your email."])},changed_email:e=>{const{normalize:t}=e;return t(["Email changed successfully!"])},change_password:e=>{const{normalize:t}=e;return t(["Change password"])},change_password_error:e=>{const{normalize:t}=e;return t(["There was an issue changing your password."])},changed_password:e=>{const{normalize:t}=e;return t(["Password changed successfully!"])},chatMessageRadius:e=>{const{normalize:t}=e;return t(["Chat message"])},collapse_subject:e=>{const{normalize:t}=e;return t(["Collapse posts with subjects"])},composing:e=>{const{normalize:t}=e;return t(["Composing"])},confirm_new_password:e=>{const{normalize:t}=e;return t(["Confirm new password"])},current_password:e=>{const{normalize:t}=e;return t(["Current password"])},confirm_dialogs:e=>{const{normalize:t}=e;return t(["Ask for confirmation when"])},confirm_dialogs_repeat:e=>{const{normalize:t}=e;return t(["repeating a status"])},confirm_dialogs_unfollow:e=>{const{normalize:t}=e;return t(["unfollowing a user"])},confirm_dialogs_block:e=>{const{normalize:t}=e;return t(["blocking a user"])},confirm_dialogs_mute:e=>{const{normalize:t}=e;return t(["muting a user"])},confirm_dialogs_delete:e=>{const{normalize:t}=e;return t(["deleting a status"])},confirm_dialogs_logout:e=>{const{normalize:t}=e;return t(["logging out"])},confirm_dialogs_approve_follow:e=>{const{normalize:t}=e;return t(["approving a follower"])},confirm_dialogs_deny_follow:e=>{const{normalize:t}=e;return t(["denying a follower"])},confirm_dialogs_remove_follower:e=>{const{normalize:t}=e;return t(["removing a follower"])},mutes_and_blocks:e=>{const{normalize:t}=e;return t(["Mutes and Blocks"])},data_import_export_tab:e=>{const{normalize:t}=e;return t(["Data import / export"])},default_vis:e=>{const{normalize:t}=e;return t(["Default visibility scope"])},delete_account:e=>{const{normalize:t}=e;return t(["Delete account"])},delete_account_description:e=>{const{normalize:t}=e;return t(["Permanently delete your data and deactivate your account."])},delete_account_error:e=>{const{normalize:t}=e;return t(["There was an issue deleting your account. If this persists please contact your instance administrator."])},delete_account_instructions:e=>{const{normalize:t}=e;return t(["Type your password in the input below to confirm account deletion."])},account_alias:e=>{const{normalize:t}=e;return t(["Account aliases"])},account_alias_table_head:e=>{const{normalize:t}=e;return t(["Alias"])},list_aliases_error:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Error fetching aliases: ",n(o("error"))])},hide_list_aliases_error_action:e=>{const{normalize:t}=e;return t(["Close"])},remove_alias:e=>{const{normalize:t}=e;return t(["Remove this alias"])},new_alias_target:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Add a new alias (e.g. ",n(o("example")),")"])},added_alias:e=>{const{normalize:t}=e;return t(["Alias is added."])},add_alias_error:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Error adding alias: ",n(o("error"))])},move_account:e=>{const{normalize:t}=e;return t(["Move account"])},move_account_notes:e=>{const{normalize:t}=e;return t(["If you want to move the account somewhere else, you must go to your target account and add an alias pointing here."])},move_account_target:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Target account (e.g. ",n(o("example")),")"])},moved_account:e=>{const{normalize:t}=e;return t(["Account is moved."])},move_account_error:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Error moving account: ",n(o("error"))])},discoverable:e=>{const{normalize:t}=e;return t(["Allow discovery of this account in search results and other services"])},domain_mutes:e=>{const{normalize:t}=e;return t(["Domains"])},avatar_size_instruction:e=>{const{normalize:t}=e;return t(["The recommended minimum size for avatar images is 150x150 pixels."])},pad_emoji:e=>{const{normalize:t}=e;return t(["Pad emoji with spaces when adding from picker"])},autocomplete_select_first:e=>{const{normalize:t}=e;return t(["Automatically select the first candidate when autocomplete results are available"])},emoji_reactions_on_timeline:e=>{const{normalize:t}=e;return t(["Show emoji reactions on timeline"])},emoji_reactions_scale:e=>{const{normalize:t}=e;return t(["Reactions scale factor"])},export_theme:e=>{const{normalize:t}=e;return t(["Save preset"])},filtering:e=>{const{normalize:t}=e;return t(["Filtering"])},wordfilter:e=>{const{normalize:t}=e;return t(["Wordfilter"])},filtering_explanation:e=>{const{normalize:t}=e;return t(["All statuses containing these words will be muted, one per line"])},word_filter_and_more:e=>{const{normalize:t}=e;return t(["Word filter and more..."])},follow_export:e=>{const{normalize:t}=e;return t(["Follow export"])},follow_export_button:e=>{const{normalize:t}=e;return t(["Export your follows to a csv file"])},follow_import:e=>{const{normalize:t}=e;return t(["Follow import"])},follow_import_error:e=>{const{normalize:t}=e;return t(["Error importing followers"])},follows_imported:e=>{const{normalize:t}=e;return t(["Follows imported! Processing them will take a while."])},accent:e=>{const{normalize:t}=e;return t(["Accent"])},foreground:e=>{const{normalize:t}=e;return t(["Foreground"])},general:e=>{const{normalize:t}=e;return t(["General"])},hide_attachments_in_convo:e=>{const{normalize:t}=e;return t(["Hide attachments in conversations"])},hide_attachments_in_tl:e=>{const{normalize:t}=e;return t(["Hide attachments in timeline"])},hide_media_previews:e=>{const{normalize:t}=e;return t(["Hide media previews"])},hide_muted_posts:e=>{const{normalize:t}=e;return t(["Hide posts of muted users"])},mute_bot_posts:e=>{const{normalize:t}=e;return t(["Mute bot posts"])},hide_bot_indication:e=>{const{normalize:t}=e;return t(["Hide bot indication in posts"])},hide_all_muted_posts:e=>{const{normalize:t}=e;return t(["Hide muted posts"])},max_thumbnails:e=>{const{normalize:t}=e;return t(["Maximum amount of thumbnails per post (empty = no limit)"])},hide_isp:e=>{const{normalize:t}=e;return t(["Hide instance-specific panel"])},hide_shoutbox:e=>{const{normalize:t}=e;return t(["Hide instance shoutbox"])},right_sidebar:e=>{const{normalize:t}=e;return t(["Reverse order of columns"])},navbar_column_stretch:e=>{const{normalize:t}=e;return t(["Stretch navbar to columns width"])},always_show_post_button:e=>{const{normalize:t}=e;return t(["Always show floating New Post button"])},hide_wallpaper:e=>{const{normalize:t}=e;return t(["Hide instance wallpaper"])},preload_images:e=>{const{normalize:t}=e;return t(["Preload images"])},use_one_click_nsfw:e=>{const{normalize:t}=e;return t(["Open NSFW attachments with just one click"])},hide_post_stats:e=>{const{normalize:t}=e;return t(["Hide post statistics (e.g. the number of favorites)"])},hide_user_stats:e=>{const{normalize:t}=e;return t(["Hide user statistics (e.g. the number of followers)"])},hide_filtered_statuses:e=>{const{normalize:t}=e;return t(["Hide all filtered posts"])},hide_wordfiltered_statuses:e=>{const{normalize:t}=e;return t(["Hide word-filtered statuses"])},hide_muted_threads:e=>{const{normalize:t}=e;return t(["Hide muted threads"])},import_blocks_from_a_csv_file:e=>{const{normalize:t}=e;return t(["Import blocks from a csv file"])},import_followers_from_a_csv_file:e=>{const{normalize:t}=e;return t(["Import follows from a csv file"])},import_theme:e=>{const{normalize:t}=e;return t(["Load preset"])},inputRadius:e=>{const{normalize:t}=e;return t(["Input fields"])},checkboxRadius:e=>{const{normalize:t}=e;return t(["Checkboxes"])},instance_default:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["(default: ",n(o("value")),")"])},instance_default_simple:e=>{const{normalize:t}=e;return t(["(default)"])},interface:e=>{const{normalize:t}=e;return t(["Interface"])},interfaceLanguage:e=>{const{normalize:t}=e;return t(["Interface language"])},invalid_theme_imported:e=>{const{normalize:t}=e;return t(["The selected file is not a supported Pleroma theme. No changes to your theme were made."])},limited_availability:e=>{const{normalize:t}=e;return t(["Unavailable in your browser"])},links:e=>{const{normalize:t}=e;return t(["Links"])},lock_account_description:e=>{const{normalize:t}=e;return t(["Restrict your account to approved followers only"])},loop_video:e=>{const{normalize:t}=e;return t(["Loop videos"])},loop_video_silent_only:e=>{const{normalize:t}=e;return t(['Loop only videos without sound (i.e. Mastodon\'s "gifs")'])},mutes_tab:e=>{const{normalize:t}=e;return t(["Mutes"])},play_videos_in_modal:e=>{const{normalize:t}=e;return t(["Play videos in a popup frame"])},url:e=>{const{normalize:t}=e;return t(["URL"])},preview:e=>{const{normalize:t}=e;return t(["Preview"])},file_export_import:{backup_restore:e=>{const{normalize:t}=e;return t(["Settings backup"])},backup_settings:e=>{const{normalize:t}=e;return t(["Backup settings to file"])},backup_settings_theme:e=>{const{normalize:t}=e;return t(["Backup settings and theme to file"])},restore_settings:e=>{const{normalize:t}=e;return t(["Restore settings from file"])},errors:{invalid_file:e=>{const{normalize:t}=e;return t(["The selected file is not a supported Pleroma settings backup. No changes were made."])},file_too_new:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Incompatile major version: ",n(o("fileMajor")),", this PleromaFE (settings ver ",n(o("feMajor")),") is too old to handle it"])},file_too_old:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Incompatile major version: ",n(o("fileMajor")),", file version is too old and not supported (min. set. ver. ",n(o("feMajor")),")"])},file_slightly_new:e=>{const{normalize:t}=e;return t(["File minor version is different, some settings might not load"])}}},profile_fields:{label:e=>{const{normalize:t}=e;return t(["Profile metadata"])},add_field:e=>{const{normalize:t}=e;return t(["Add field"])},name:e=>{const{normalize:t}=e;return t(["Label"])},value:e=>{const{normalize:t}=e;return t(["Content"])}},birthday:{label:e=>{const{normalize:t}=e;return t(["Birthday"])},show_birthday:e=>{const{normalize:t}=e;return t(["Show my birthday"])}},account_privacy:e=>{const{normalize:t}=e;return t(["Privacy"])},use_contain_fit:e=>{const{normalize:t}=e;return t(["Don't crop the attachment in thumbnails"])},name:e=>{const{normalize:t}=e;return t(["Name"])},name_bio:e=>{const{normalize:t}=e;return t(["Name & bio"])},new_email:e=>{const{normalize:t}=e;return t(["New email"])},new_password:e=>{const{normalize:t}=e;return t(["New password"])},posts:e=>{const{normalize:t}=e;return t(["Posts"])},user_profiles:e=>{const{normalize:t}=e;return t(["User Profiles"])},notification_visibility:e=>{const{normalize:t}=e;return t(["Types of notifications to show"])},notification_visibility_follows:e=>{const{normalize:t}=e;return t(["Follows"])},notification_visibility_likes:e=>{const{normalize:t}=e;return t(["Favorites"])},notification_visibility_mentions:e=>{const{normalize:t}=e;return t(["Mentions"])},notification_visibility_repeats:e=>{const{normalize:t}=e;return t(["Repeats"])},notification_visibility_moves:e=>{const{normalize:t}=e;return t(["User Migrates"])},notification_visibility_emoji_reactions:e=>{const{normalize:t}=e;return t(["Reactions"])},notification_visibility_polls:e=>{const{normalize:t}=e;return t(["Ends of polls you voted in"])},no_rich_text_description:e=>{const{normalize:t}=e;return t(["Strip rich text formatting from all posts"])},no_blocks:e=>{const{normalize:t}=e;return t(["No blocks"])},no_mutes:e=>{const{normalize:t}=e;return t(["No mutes"])},hide_favorites_description:e=>{const{normalize:t}=e;return t(["Don't show list of my favorites (people still get notified)"])},hide_follows_description:e=>{const{normalize:t}=e;return t(["Don't show who I'm following"])},hide_followers_description:e=>{const{normalize:t}=e;return t(["Don't show who's following me"])},hide_follows_count_description:e=>{const{normalize:t}=e;return t(["Don't show follow count"])},hide_followers_count_description:e=>{const{normalize:t}=e;return t(["Don't show follower count"])},show_admin_badge:e=>{const{normalize:t}=e;return t(['Show "Admin" badge in my profile'])},show_moderator_badge:e=>{const{normalize:t}=e;return t(['Show "Moderator" badge in my profile'])},nsfw_clickthrough:e=>{const{normalize:t}=e;return t(["Hide sensitive/NSFW media"])},oauth_tokens:e=>{const{normalize:t}=e;return t(["OAuth tokens"])},token:e=>{const{normalize:t}=e;return t(["Token"])},refresh_token:e=>{const{normalize:t}=e;return t(["Refresh token"])},valid_until:e=>{const{normalize:t}=e;return t(["Valid until"])},revoke_token:e=>{const{normalize:t}=e;return t(["Revoke"])},panelRadius:e=>{const{normalize:t}=e;return t(["Panels"])},pause_on_unfocused:e=>{const{normalize:t}=e;return t(["Pause when tab is not focused"])},presets:e=>{const{normalize:t}=e;return t(["Presets"])},profile_background:e=>{const{normalize:t}=e;return t(["Profile background"])},profile_banner:e=>{const{normalize:t}=e;return t(["Profile banner"])},profile_tab:e=>{const{normalize:t}=e;return t(["Profile"])},radii_help:e=>{const{normalize:t}=e;return t(["Set up interface edge rounding (in pixels)"])},replies_in_timeline:e=>{const{normalize:t}=e;return t(["Replies in timeline"])},reply_visibility_all:e=>{const{normalize:t}=e;return t(["Show all replies"])},reply_visibility_following:e=>{const{normalize:t}=e;return t(["Only show replies directed at me or users I'm following"])},reply_visibility_self:e=>{const{normalize:t}=e;return t(["Only show replies directed at me"])},reply_visibility_following_short:e=>{const{normalize:t}=e;return t(["Show replies to my follows"])},reply_visibility_self_short:e=>{const{normalize:t}=e;return t(["Show replies to self only"])},autohide_floating_post_button:e=>{const{normalize:t}=e;return t(["Automatically hide New Post button (mobile)"])},saving_err:e=>{const{normalize:t}=e;return t(["Error saving settings"])},saving_ok:e=>{const{normalize:t}=e;return t(["Settings saved"])},search_user_to_block:e=>{const{normalize:t}=e;return t(["Search whom you want to block"])},search_user_to_mute:e=>{const{normalize:t}=e;return t(["Search whom you want to mute"])},security_tab:e=>{const{normalize:t}=e;return t(["Security"])},scope_copy:e=>{const{normalize:t}=e;return t(["Copy scope when replying (DMs are always copied)"])},minimal_scopes_mode:e=>{const{normalize:t}=e;return t(["Minimize post scope selection options"])},set_new_avatar:e=>{const{normalize:t}=e;return t(["Set new avatar"])},set_new_profile_background:e=>{const{normalize:t}=e;return t(["Set new profile background"])},set_new_profile_banner:e=>{const{normalize:t}=e;return t(["Set new profile banner"])},reset_avatar:e=>{const{normalize:t}=e;return t(["Reset avatar"])},reset_profile_background:e=>{const{normalize:t}=e;return t(["Reset profile background"])},reset_profile_banner:e=>{const{normalize:t}=e;return t(["Reset profile banner"])},reset_avatar_confirm:e=>{const{normalize:t}=e;return t(["Do you really want to reset the avatar?"])},reset_banner_confirm:e=>{const{normalize:t}=e;return t(["Do you really want to reset the banner?"])},reset_background_confirm:e=>{const{normalize:t}=e;return t(["Do you really want to reset the background?"])},settings:e=>{const{normalize:t}=e;return t(["Settings"])},subject_input_always_show:e=>{const{normalize:t}=e;return t(["Always show subject field"])},subject_line_behavior:e=>{const{normalize:t}=e;return t(["Copy subject when replying"])},subject_line_email:e=>{const{normalize:t}=e;return t(['Like email: "re: subject"'])},subject_line_mastodon:e=>{const{normalize:t}=e;return t(["Like mastodon: copy as is"])},subject_line_noop:e=>{const{normalize:t}=e;return t(["Do not copy"])},conversation_display:e=>{const{normalize:t}=e;return t(["Conversation display style"])},conversation_display_tree:e=>{const{normalize:t}=e;return t(["Tree-style"])},conversation_display_tree_quick:e=>{const{normalize:t}=e;return t(["Tree view"])},disable_sticky_headers:e=>{const{normalize:t}=e;return t(["Don't stick column headers to top of the screen"])},show_scrollbars:e=>{const{normalize:t}=e;return t(["Show side column's scrollbars"])},third_column_mode:e=>{const{normalize:t}=e;return t(["When there's enough space, show third column containing"])},third_column_mode_none:e=>{const{normalize:t}=e;return t(["Don't show third column at all"])},third_column_mode_notifications:e=>{const{normalize:t}=e;return t(["Notifications column"])},third_column_mode_postform:e=>{const{normalize:t}=e;return t(["Main post form and navigation"])},columns:e=>{const{normalize:t}=e;return t(["Columns"])},column_sizes:e=>{const{normalize:t}=e;return t(["Column sizes"])},column_sizes_sidebar:e=>{const{normalize:t}=e;return t(["Sidebar"])},column_sizes_content:e=>{const{normalize:t}=e;return t(["Content"])},column_sizes_notifs:e=>{const{normalize:t}=e;return t(["Notifications"])},tree_advanced:e=>{const{normalize:t}=e;return t(["Allow more flexible navigation in tree view"])},tree_fade_ancestors:e=>{const{normalize:t}=e;return t(["Display ancestors of the current status in faint text"])},conversation_display_linear:e=>{const{normalize:t}=e;return t(["Linear-style"])},conversation_display_linear_quick:e=>{const{normalize:t}=e;return t(["Linear view"])},conversation_other_replies_button:e=>{const{normalize:t}=e;return t(['Show the "other replies" button'])},conversation_other_replies_button_below:e=>{const{normalize:t}=e;return t(["Below statuses"])},conversation_other_replies_button_inside:e=>{const{normalize:t}=e;return t(["Inside statuses"])},max_depth_in_thread:e=>{const{normalize:t}=e;return t(["Maximum number of levels in thread to display by default"])},post_status_content_type:e=>{const{normalize:t}=e;return t(["Post status content type"])},sensitive_by_default:e=>{const{normalize:t}=e;return t(["Mark posts as sensitive by default"])},stop_gifs:e=>{const{normalize:t}=e;return t(["Pause animated images until you hover on them"])},streaming:e=>{const{normalize:t}=e;return t(["Automatically show new posts when scrolled to the top"])},auto_update:e=>{const{normalize:t}=e;return t(["Show new posts automatically"])},user_mutes:e=>{const{normalize:t}=e;return t(["Users"])},useStreamingApi:e=>{const{normalize:t}=e;return t(["Receive posts and notifications real-time"])},use_websockets:e=>{const{normalize:t}=e;return t(["Use websockets (Realtime updates)"])},text:e=>{const{normalize:t}=e;return t(["Text"])},theme:e=>{const{normalize:t}=e;return t(["Theme"])},theme_help:e=>{const{normalize:t}=e;return t(["Use hex color codes (#rrggbb) to customize your color theme."])},theme_help_v2_1:e=>{const{normalize:t}=e;return t(['You can also override certain component\'s colors and opacity by toggling the checkbox, use "Clear all" button to clear all overrides.'])},theme_help_v2_2:e=>{const{normalize:t}=e;return t(["Icons underneath some entries are background/text contrast indicators, hover over for detailed info. Please keep in mind that when using transparency contrast indicators show the worst possible case."])},tooltipRadius:e=>{const{normalize:t}=e;return t(["Tooltips/alerts"])},type_domains_to_mute:e=>{const{normalize:t}=e;return t(["Search domains to mute"])},upload_a_photo:e=>{const{normalize:t}=e;return t(["Upload a photo"])},user_settings:e=>{const{normalize:t}=e;return t(["User Settings"])},values:{false:e=>{const{normalize:t}=e;return t(["no"])},true:e=>{const{normalize:t}=e;return t(["yes"])}},virtual_scrolling:e=>{const{normalize:t}=e;return t(["Optimize timeline rendering"])},use_at_icon:e=>{const{normalize:t}=e;return t(["Display ","@"," symbol as an icon instead of text"])},mention_link_display:e=>{const{normalize:t}=e;return t(["Display mention links"])},mention_link_display_short:e=>{const{normalize:t}=e;return t(["always as short names (e.g. ","@","foo)"])},mention_link_display_full_for_remote:e=>{const{normalize:t}=e;return t(["as full names only for remote users (e.g. ","@","foo","@","example.org)"])},mention_link_display_full:e=>{const{normalize:t}=e;return t(["always as full names (e.g. ","@","foo","@","example.org)"])},mention_link_use_tooltip:e=>{const{normalize:t}=e;return t(["Show user card when clicking mention links"])},mention_link_show_avatar:e=>{const{normalize:t}=e;return t(["Show user avatar beside the link"])},mention_link_show_avatar_quick:e=>{const{normalize:t}=e;return t(["Show user avatar next to mentions"])},mention_link_fade_domain:e=>{const{normalize:t}=e;return t(["Fade domains (e.g. ","@","example.org in ","@","foo","@","example.org)"])},mention_link_bolden_you:e=>{const{normalize:t}=e;return t(["Highlight mention of you when you are mentioned"])},user_popover_avatar_action:e=>{const{normalize:t}=e;return t(["Popover avatar click action"])},user_popover_avatar_action_zoom:e=>{const{normalize:t}=e;return t(["Zoom the avatar"])},user_popover_avatar_action_close:e=>{const{normalize:t}=e;return t(["Close the popover"])},user_popover_avatar_action_open:e=>{const{normalize:t}=e;return t(["Open profile"])},user_popover_avatar_overlay:e=>{const{normalize:t}=e;return t(["Show user popover over user avatar"])},fun:e=>{const{normalize:t}=e;return t(["Fun"])},greentext:e=>{const{normalize:t}=e;return t(["Meme arrows"])},show_yous:e=>{const{normalize:t}=e;return t(["Show (You)s"])},notifications:e=>{const{normalize:t}=e;return t(["Notifications"])},notification_setting_filters:e=>{const{normalize:t}=e;return t(["Filters"])},notification_setting_block_from_strangers:e=>{const{normalize:t}=e;return t(["Block notifications from users who you do not follow"])},notification_setting_privacy:e=>{const{normalize:t}=e;return t(["Privacy"])},notification_setting_hide_notification_contents:e=>{const{normalize:t}=e;return t(["Hide the sender and contents of push notifications"])},notification_mutes:e=>{const{normalize:t}=e;return t(["To stop receiving notifications from a specific user, use a mute."])},notification_blocks:e=>{const{normalize:t}=e;return t(["Blocking a user stops all notifications as well as unsubscribes them."])},enable_web_push_notifications:e=>{const{normalize:t}=e;return t(["Enable web push notifications"])},more_settings:e=>{const{normalize:t}=e;return t(["More settings"])},style:{switcher:{keep_color:e=>{const{normalize:t}=e;return t(["Keep colors"])},keep_shadows:e=>{const{normalize:t}=e;return t(["Keep shadows"])},keep_opacity:e=>{const{normalize:t}=e;return t(["Keep opacity"])},keep_roundness:e=>{const{normalize:t}=e;return t(["Keep roundness"])},keep_fonts:e=>{const{normalize:t}=e;return t(["Keep fonts"])},save_load_hint:e=>{const{normalize:t}=e;return t(['"Keep" options preserve currently set options when selecting or loading themes, it also stores said options when exporting a theme. When all checkboxes unset, exporting theme will save everything.'])},reset:e=>{const{normalize:t}=e;return t(["Reset"])},clear_all:e=>{const{normalize:t}=e;return t(["Clear all"])},clear_opacity:e=>{const{normalize:t}=e;return t(["Clear opacity"])},load_theme:e=>{const{normalize:t}=e;return t(["Load theme"])},keep_as_is:e=>{const{normalize:t}=e;return t(["Keep as is"])},use_snapshot:e=>{const{normalize:t}=e;return t(["Old version"])},use_source:e=>{const{normalize:t}=e;return t(["New version"])},help:{upgraded_from_v2:e=>{const{normalize:t}=e;return t(["PleromaFE has been upgraded, theme could look a little bit different than you remember."])},v2_imported:e=>{const{normalize:t}=e;return t(["File you imported was made for older FE. We try to maximize compatibility but there still could be inconsistencies."])},future_version_imported:e=>{const{normalize:t}=e;return t(["File you imported was made in newer version of FE."])},older_version_imported:e=>{const{normalize:t}=e;return t(["File you imported was made in older version of FE."])},snapshot_present:e=>{const{normalize:t}=e;return t(["Theme snapshot is loaded, so all values are overriden. You can load theme's actual data instead."])},snapshot_missing:e=>{const{normalize:t}=e;return t(["No theme snapshot was in the file so it could look different than originally envisioned."])},fe_upgraded:e=>{const{normalize:t}=e;return t(["PleromaFE's theme engine upgraded after version update."])},fe_downgraded:e=>{const{normalize:t}=e;return t(["PleromaFE's version rolled back."])},migration_snapshot_ok:e=>{const{normalize:t}=e;return t(["Just to be safe, theme snapshot loaded. You can try loading theme data."])},migration_napshot_gone:e=>{const{normalize:t}=e;return t(["For whatever reason snapshot was missing, some stuff could look different than you remember."])},snapshot_source_mismatch:e=>{const{normalize:t}=e;return t(["Versions conflict: most likely FE was rolled back and updated again, if you changed theme using older version of FE you most likely want to use old version, otherwise use new version."])}}},common:{color:e=>{const{normalize:t}=e;return t(["Color"])},opacity:e=>{const{normalize:t}=e;return t(["Opacity"])},contrast:{hint:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Contrast ratio is ",n(o("ratio")),", it ",n(o("level"))," ",n(o("context"))])},level:{aa:e=>{const{normalize:t}=e;return t(["meets Level AA guideline (minimal)"])},aaa:e=>{const{normalize:t}=e;return t(["meets Level AAA guideline (recommended)"])},bad:e=>{const{normalize:t}=e;return t(["doesn't meet any accessibility guidelines"])}},context:{"18pt":e=>{const{normalize:t}=e;return t(["for large (18pt+) text"])},text:e=>{const{normalize:t}=e;return t(["for text"])}}}},common_colors:{_tab_label:e=>{const{normalize:t}=e;return t(["Common"])},main:e=>{const{normalize:t}=e;return t(["Common colors"])},foreground_hint:e=>{const{normalize:t}=e;return t(['See "Advanced" tab for more detailed control'])},rgbo:e=>{const{normalize:t}=e;return t(["Icons, accents, badges"])}},advanced_colors:{_tab_label:e=>{const{normalize:t}=e;return t(["Advanced"])},alert:e=>{const{normalize:t}=e;return t(["Alert background"])},alert_error:e=>{const{normalize:t}=e;return t(["Error"])},alert_warning:e=>{const{normalize:t}=e;return t(["Warning"])},alert_neutral:e=>{const{normalize:t}=e;return t(["Neutral"])},post:e=>{const{normalize:t}=e;return t(["Posts/User bios"])},badge:e=>{const{normalize:t}=e;return t(["Badge background"])},popover:e=>{const{normalize:t}=e;return t(["Tooltips, menus, popovers"])},badge_notification:e=>{const{normalize:t}=e;return t(["Notification"])},panel_header:e=>{const{normalize:t}=e;return t(["Panel header"])},top_bar:e=>{const{normalize:t}=e;return t(["Top bar"])},borders:e=>{const{normalize:t}=e;return t(["Borders"])},buttons:e=>{const{normalize:t}=e;return t(["Buttons"])},inputs:e=>{const{normalize:t}=e;return t(["Input fields"])},faint_text:e=>{const{normalize:t}=e;return t(["Faded text"])},underlay:e=>{const{normalize:t}=e;return t(["Underlay"])},wallpaper:e=>{const{normalize:t}=e;return t(["Wallpaper"])},poll:e=>{const{normalize:t}=e;return t(["Poll graph"])},icons:e=>{const{normalize:t}=e;return t(["Icons"])},highlight:e=>{const{normalize:t}=e;return t(["Highlighted elements"])},pressed:e=>{const{normalize:t}=e;return t(["Pressed"])},selectedPost:e=>{const{normalize:t}=e;return t(["Selected post"])},selectedMenu:e=>{const{normalize:t}=e;return t(["Selected menu item"])},disabled:e=>{const{normalize:t}=e;return t(["Disabled"])},toggled:e=>{const{normalize:t}=e;return t(["Toggled"])},tabs:e=>{const{normalize:t}=e;return t(["Tabs"])},chat:{incoming:e=>{const{normalize:t}=e;return t(["Incoming"])},outgoing:e=>{const{normalize:t}=e;return t(["Outgoing"])},border:e=>{const{normalize:t}=e;return t(["Border"])}}},radii:{_tab_label:e=>{const{normalize:t}=e;return t(["Roundness"])}},shadows:{_tab_label:e=>{const{normalize:t}=e;return t(["Shadow and lighting"])},component:e=>{const{normalize:t}=e;return t(["Component"])},override:e=>{const{normalize:t}=e;return t(["Override"])},shadow_id:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Shadow #",n(o("value"))])},blur:e=>{const{normalize:t}=e;return t(["Blur"])},spread:e=>{const{normalize:t}=e;return t(["Spread"])},inset:e=>{const{normalize:t}=e;return t(["Inset"])},hintV3:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["For shadows you can also use the ",n(o(0))," notation to use other color slot."])},filter_hint:{always_drop_shadow:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["Warning, this shadow always uses ",n(o(0))," when browser supports it."])},drop_shadow_syntax:e=>{const{normalize:t,interpolate:n,list:o}=e;return t([n(o(0))," does not support ",n(o(1))," parameter and ",n(o(2))," keyword."])},avatar_inset:e=>{const{normalize:t}=e;return t(["Please note that combining both inset and non-inset shadows on avatars might give unexpected results with transparent avatars."])},spread_zero:e=>{const{normalize:t}=e;return t(["Shadows with spread > 0 will appear as if it was set to zero"])},inset_classic:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["Inset shadows will be using ",n(o(0))])}},components:{panel:e=>{const{normalize:t}=e;return t(["Panel"])},panelHeader:e=>{const{normalize:t}=e;return t(["Panel header"])},topBar:e=>{const{normalize:t}=e;return t(["Top bar"])},avatar:e=>{const{normalize:t}=e;return t(["User avatar (in profile view)"])},avatarStatus:e=>{const{normalize:t}=e;return t(["User avatar (in post display)"])},popup:e=>{const{normalize:t}=e;return t(["Popups and tooltips"])},button:e=>{const{normalize:t}=e;return t(["Button"])},buttonHover:e=>{const{normalize:t}=e;return t(["Button (hover)"])},buttonPressed:e=>{const{normalize:t}=e;return t(["Button (pressed)"])},buttonPressedHover:e=>{const{normalize:t}=e;return t(["Button (pressed+hover)"])},input:e=>{const{normalize:t}=e;return t(["Input field"])}}},fonts:{_tab_label:e=>{const{normalize:t}=e;return t(["Fonts"])},help:e=>{const{normalize:t}=e;return t(['Select font to use for elements of UI. For "custom" you have to enter exact font name as it appears in system.'])},components:{interface:e=>{const{normalize:t}=e;return t(["Interface"])},input:e=>{const{normalize:t}=e;return t(["Input fields"])},post:e=>{const{normalize:t}=e;return t(["Post text"])},postCode:e=>{const{normalize:t}=e;return t(["Monospaced text in a post (rich text)"])}},family:e=>{const{normalize:t}=e;return t(["Font name"])},size:e=>{const{normalize:t}=e;return t(["Size (in px)"])},weight:e=>{const{normalize:t}=e;return t(["Weight (boldness)"])},custom:e=>{const{normalize:t}=e;return t(["Custom"])}},preview:{header:e=>{const{normalize:t}=e;return t(["Preview"])},content:e=>{const{normalize:t}=e;return t(["Content"])},error:e=>{const{normalize:t}=e;return t(["Example error"])},button:e=>{const{normalize:t}=e;return t(["Button"])},text:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["A bunch of more ",n(o(0))," and ",n(o(1))])},mono:e=>{const{normalize:t}=e;return t(["content"])},input:e=>{const{normalize:t}=e;return t(["Just landed in L.A."])},faint_link:e=>{const{normalize:t}=e;return t(["helpful manual"])},fine_print:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["Read our ",n(o(0))," to learn nothing useful!"])},header_faint:e=>{const{normalize:t}=e;return t(["This is fine"])},checkbox:e=>{const{normalize:t}=e;return t(["I have skimmed over terms and conditions"])},link:e=>{const{normalize:t}=e;return t(["a nice lil' link"])}}},version:{title:e=>{const{normalize:t}=e;return t(["Version"])},backend_version:e=>{const{normalize:t}=e;return t(["Backend version"])},frontend_version:e=>{const{normalize:t}=e;return t(["Frontend version"])}},commit_value:e=>{const{normalize:t}=e;return t(["Save"])},commit_value_tooltip:e=>{const{normalize:t}=e;return t(["Value is not saved, press this button to commit your changes"])},reset_value:e=>{const{normalize:t}=e;return t(["Reset"])},reset_value_tooltip:e=>{const{normalize:t}=e;return t(["Reset draft"])},hard_reset_value:e=>{const{normalize:t}=e;return t(["Hard reset"])},hard_reset_value_tooltip:e=>{const{normalize:t}=e;return t(["Remove setting from storage, forcing use of default value"])}},admin_dash:{window_title:e=>{const{normalize:t}=e;return t(["Administration"])},wip_notice:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["This admin dashboard is experimental and WIP, ",n(o("adminFeLink")),"."])},old_ui_link:e=>{const{normalize:t}=e;return t(["old admin UI available here"])},reset_all:e=>{const{normalize:t}=e;return t(["Reset all"])},commit_all:e=>{const{normalize:t}=e;return t(["Save all"])},tabs:{nodb:e=>{const{normalize:t}=e;return t(["No DB Config"])},instance:e=>{const{normalize:t}=e;return t(["Instance"])},limits:e=>{const{normalize:t}=e;return t(["Limits"])},frontends:e=>{const{normalize:t}=e;return t(["Front-ends"])}},nodb:{heading:e=>{const{normalize:t}=e;return t(["Database config is disabled"])},text:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["You need to change backend config files so that ",n(o("property"))," is set to ",n(o("value")),", see more in ",n(o("documentation")),"."])},documentation:e=>{const{normalize:t}=e;return t(["documentation"])},text2:e=>{const{normalize:t}=e;return t(["Most configuration options will be unavailable."])}},captcha:{native:e=>{const{normalize:t}=e;return t(["Native"])},kocaptcha:e=>{const{normalize:t}=e;return t(["KoCaptcha"])}},instance:{instance:e=>{const{normalize:t}=e;return t(["Instance information"])},registrations:e=>{const{normalize:t}=e;return t(["User sign-ups"])},captcha_header:e=>{const{normalize:t}=e;return t(["CAPTCHA"])},kocaptcha:e=>{const{normalize:t}=e;return t(["KoCaptcha settings"])},access:e=>{const{normalize:t}=e;return t(["Instance access"])},restrict:{header:e=>{const{normalize:t}=e;return t(["Restrict access for anonymous visitors"])},description:e=>{const{normalize:t}=e;return t(["Detailed setting for allowing/disallowing access to certain aspects of API. By default (indeterminate state) it will disallow if instance is not public, ticked checkbox means disallow access even if instance is public, unticked means allow access even if instance is private. Please note that unexpected behavior might happen if some settings are set, i.e. if profile access is disabled posts will show without profile information."])},timelines:e=>{const{normalize:t}=e;return t(["Timelines access"])},profiles:e=>{const{normalize:t}=e;return t(["User profiles access"])},activities:e=>{const{normalize:t}=e;return t(["Statues/activities access"])}}},limits:{arbitrary_limits:e=>{const{normalize:t}=e;return t(["Arbitrary limits"])},posts:e=>{const{normalize:t}=e;return t(["Post limits"])},uploads:e=>{const{normalize:t}=e;return t(["Attachments limits"])},users:e=>{const{normalize:t}=e;return t(["User profile limits"])},profile_fields:e=>{const{normalize:t}=e;return t(["Profile fields limits"])},user_uploads:e=>{const{normalize:t}=e;return t(["Profile media limits"])}},frontend:{repository:e=>{const{normalize:t}=e;return t(["Repository link"])},versions:e=>{const{normalize:t}=e;return t(["Available versions"])},build_url:e=>{const{normalize:t}=e;return t(["Build URL"])},reinstall:e=>{const{normalize:t}=e;return t(["Reinstall"])},is_default:e=>{const{normalize:t}=e;return t(["(Default)"])},is_default_custom:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["(Default, version: ",n(o("version")),")"])},install:e=>{const{normalize:t}=e;return t(["Install"])},install_version:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Install version ",n(o("version"))])},more_install_options:e=>{const{normalize:t}=e;return t(["More install options"])},more_default_options:e=>{const{normalize:t}=e;return t(["More default setting options"])},set_default:e=>{const{normalize:t}=e;return t(["Set default"])},set_default_version:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Set version ",n(o("version"))," as default"])},wip_notice:e=>{const{normalize:t}=e;return t(["Please note that this section is a WIP and lacks certain features as backend implementation of front-end management is incomplete."])},default_frontend:e=>{const{normalize:t}=e;return t(["Default front-end"])},default_frontend_tip:e=>{const{normalize:t}=e;return t(["Default front-end will be shown to all users. Currently there's no way to for a user to select personal front-end. If you switch away from PleromaFE you'll most likely have to use old and buggy AdminFE to do instance configuration until we replace it."])},available_frontends:e=>{const{normalize:t}=e;return t(["Available for install"])},failure_installing_frontend:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Failed to install frontend ",n(o("version")),": ",n(o("reason"))])},success_installing_frontend:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Frontend ",n(o("version"))," successfully installed"])}},temp_overrides:{":pleroma":{":instance":{":public":{label:e=>{const{normalize:t}=e;return t(["Instance is public"])},description:e=>{const{normalize:t}=e;return t(["Disabling this will make all API accessible only for logged-in users, this will make Public and Federated timelines inaccessible to anonymous visitors."])}},":limit_to_local_content":{label:e=>{const{normalize:t}=e;return t(["Limit search to local content"])},description:e=>{const{normalize:t}=e;return t(["Disables global network search for unauthenticated (default), all users or none"])}},":description_limit":{label:e=>{const{normalize:t}=e;return t(["Limit"])},description:e=>{const{normalize:t}=e;return t(["Character limit for attachment descriptions"])}},":background_image":{label:e=>{const{normalize:t}=e;return t(["Background image"])},description:e=>{const{normalize:t}=e;return t(["Background image (primarily used by PleromaFE)"])}}}}}},time:{unit:{days:e=>{const{normalize:t,interpolate:n,list:o,plural:r}=e;return r([t([n(o(0))," day"]),t([n(o(0))," days"])])},days_short:e=>{const{normalize:t,interpolate:n,list:o}=e;return t([n(o(0)),"d"])},hours:e=>{const{normalize:t,interpolate:n,list:o,plural:r}=e;return r([t([n(o(0))," hour"]),t([n(o(0))," hours"])])},hours_short:e=>{const{normalize:t,interpolate:n,list:o}=e;return t([n(o(0)),"h"])},minutes:e=>{const{normalize:t,interpolate:n,list:o,plural:r}=e;return r([t([n(o(0))," minute"]),t([n(o(0))," minutes"])])},minutes_short:e=>{const{normalize:t,interpolate:n,list:o}=e;return t([n(o(0)),"min"])},months:e=>{const{normalize:t,interpolate:n,list:o,plural:r}=e;return r([t([n(o(0))," month"]),t([n(o(0))," months"])])},months_short:e=>{const{normalize:t,interpolate:n,list:o}=e;return t([n(o(0)),"mo"])},seconds:e=>{const{normalize:t,interpolate:n,list:o,plural:r}=e;return r([t([n(o(0))," second"]),t([n(o(0))," seconds"])])},seconds_short:e=>{const{normalize:t,interpolate:n,list:o}=e;return t([n(o(0)),"s"])},weeks:e=>{const{normalize:t,interpolate:n,list:o,plural:r}=e;return r([t([n(o(0))," week"]),t([n(o(0))," weeks"])])},weeks_short:e=>{const{normalize:t,interpolate:n,list:o}=e;return t([n(o(0)),"w"])},years:e=>{const{normalize:t,interpolate:n,list:o,plural:r}=e;return r([t([n(o(0))," year"]),t([n(o(0))," years"])])},years_short:e=>{const{normalize:t,interpolate:n,list:o}=e;return t([n(o(0)),"y"])}},in_future:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["in ",n(o(0))])},in_past:e=>{const{normalize:t,interpolate:n,list:o}=e;return t([n(o(0))," ago"])},now:e=>{const{normalize:t}=e;return t(["just now"])},now_short:e=>{const{normalize:t}=e;return t(["now"])}},timeline:{collapse:e=>{const{normalize:t}=e;return t(["Collapse"])},conversation:e=>{const{normalize:t}=e;return t(["Conversation"])},error:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["Error fetching timeline: ",n(o(0))])},load_older:e=>{const{normalize:t}=e;return t(["Load older statuses"])},no_retweet_hint:e=>{const{normalize:t}=e;return t(["Post is marked as followers-only or direct and cannot be repeated"])},repeated:e=>{const{normalize:t}=e;return t(["repeated"])},show_new:e=>{const{normalize:t}=e;return t(["Show new"])},reload:e=>{const{normalize:t}=e;return t(["Reload"])},up_to_date:e=>{const{normalize:t}=e;return t(["Up-to-date"])},no_more_statuses:e=>{const{normalize:t}=e;return t(["No more statuses"])},no_statuses:e=>{const{normalize:t}=e;return t(["No statuses"])},socket_reconnected:e=>{const{normalize:t}=e;return t(["Realtime connection established"])},socket_broke:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["Realtime connection lost: CloseEvent code ",n(o(0))])},quick_view_settings:e=>{const{normalize:t}=e;return t(["Quick view settings"])},quick_filter_settings:e=>{const{normalize:t}=e;return t(["Quick filter settings"])}},status:{favorites:e=>{const{normalize:t}=e;return t(["Favorites"])},repeats:e=>{const{normalize:t}=e;return t(["Repeats"])},repeat_confirm:e=>{const{normalize:t}=e;return t(["Do you really want to repeat this status?"])},repeat_confirm_title:e=>{const{normalize:t}=e;return t(["Repeat confirmation"])},repeat_confirm_accept_button:e=>{const{normalize:t}=e;return t(["Repeat"])},repeat_confirm_cancel_button:e=>{const{normalize:t}=e;return t(["Do not repeat"])},delete:e=>{const{normalize:t}=e;return t(["Delete status"])},delete_error:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["Error deleting status: ",n(o(0))])},edit:e=>{const{normalize:t}=e;return t(["Edit status"])},edited_at:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["(last edited ",n(o("time")),")"])},pin:e=>{const{normalize:t}=e;return t(["Pin on profile"])},unpin:e=>{const{normalize:t}=e;return t(["Unpin from profile"])},pinned:e=>{const{normalize:t}=e;return t(["Pinned"])},bookmark:e=>{const{normalize:t}=e;return t(["Bookmark"])},unbookmark:e=>{const{normalize:t}=e;return t(["Unbookmark"])},delete_confirm:e=>{const{normalize:t}=e;return t(["Do you really want to delete this status?"])},delete_confirm_title:e=>{const{normalize:t}=e;return t(["Delete confirmation"])},delete_confirm_accept_button:e=>{const{normalize:t}=e;return t(["Delete"])},delete_confirm_cancel_button:e=>{const{normalize:t}=e;return t(["Keep"])},reply_to:e=>{const{normalize:t}=e;return t(["Reply to"])},mentions:e=>{const{normalize:t}=e;return t(["Mentions"])},replies_list:e=>{const{normalize:t}=e;return t(["Replies:"])},replies_list_with_others:e=>{const{normalize:t,interpolate:n,named:o,plural:r}=e;return r([t(["Replies (+",n(o("numReplies"))," other):"]),t(["Replies (+",n(o("numReplies"))," others):"])])},mute_conversation:e=>{const{normalize:t}=e;return t(["Mute conversation"])},unmute_conversation:e=>{const{normalize:t}=e;return t(["Unmute conversation"])},status_unavailable:e=>{const{normalize:t}=e;return t(["Status unavailable"])},copy_link:e=>{const{normalize:t}=e;return t(["Copy link to status"])},external_source:e=>{const{normalize:t}=e;return t(["External source"])},thread_muted:e=>{const{normalize:t}=e;return t(["Thread muted"])},thread_muted_and_words:e=>{const{normalize:t}=e;return t([", has words:"])},show_full_subject:e=>{const{normalize:t}=e;return t(["Show full subject"])},hide_full_subject:e=>{const{normalize:t}=e;return t(["Hide full subject"])},show_content:e=>{const{normalize:t}=e;return t(["Show content"])},hide_content:e=>{const{normalize:t}=e;return t(["Hide content"])},status_deleted:e=>{const{normalize:t}=e;return t(["This post was deleted"])},nsfw:e=>{const{normalize:t}=e;return t(["NSFW"])},expand:e=>{const{normalize:t}=e;return t(["Expand"])},you:e=>{const{normalize:t}=e;return t(["(You)"])},plus_more:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["+",n(o("number"))," more"])},many_attachments:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Post has ",n(o("number"))," attachment(s)"])},collapse_attachments:e=>{const{normalize:t}=e;return t(["Collapse attachments"])},show_all_attachments:e=>{const{normalize:t}=e;return t(["Show all attachments"])},show_attachment_in_modal:e=>{const{normalize:t}=e;return t(["Show in media modal"])},show_attachment_description:e=>{const{normalize:t}=e;return t(["Preview description (open attachment for full description)"])},hide_attachment:e=>{const{normalize:t}=e;return t(["Hide attachment"])},remove_attachment:e=>{const{normalize:t}=e;return t(["Remove attachment"])},attachment_stop_flash:e=>{const{normalize:t}=e;return t(["Stop Flash player"])},move_up:e=>{const{normalize:t}=e;return t(["Shift attachment left"])},move_down:e=>{const{normalize:t}=e;return t(["Shift attachment right"])},open_gallery:e=>{const{normalize:t}=e;return t(["Open gallery"])},thread_hide:e=>{const{normalize:t}=e;return t(["Hide this thread"])},thread_show:e=>{const{normalize:t}=e;return t(["Show this thread"])},thread_show_full:e=>{const{normalize:t,interpolate:n,named:o,plural:r}=e;return r([t(["Show everything under this thread (",n(o("numStatus"))," status in total, max depth ",n(o("depth")),")"]),t(["Show everything under this thread (",n(o("numStatus"))," statuses in total, max depth ",n(o("depth")),")"])])},thread_show_full_with_icon:e=>{const{normalize:t,interpolate:n,named:o}=e;return t([n(o("icon"))," ",n(o("text"))])},thread_follow:e=>{const{normalize:t,interpolate:n,named:o,plural:r}=e;return r([t(["See the remaining part of this thread (",n(o("numStatus"))," status in total)"]),t(["See the remaining part of this thread (",n(o("numStatus"))," statuses in total)"])])},thread_follow_with_icon:e=>{const{normalize:t,interpolate:n,named:o}=e;return t([n(o("icon"))," ",n(o("text"))])},ancestor_follow:e=>{const{normalize:t,interpolate:n,named:o,plural:r}=e;return r([t(["See ",n(o("numReplies"))," other reply under this status"]),t(["See ",n(o("numReplies"))," other replies under this status"])])},ancestor_follow_with_icon:e=>{const{normalize:t,interpolate:n,named:o}=e;return t([n(o("icon"))," ",n(o("text"))])},show_all_conversation_with_icon:e=>{const{normalize:t,interpolate:n,named:o}=e;return t([n(o("icon"))," ",n(o("text"))])},show_all_conversation:e=>{const{normalize:t,interpolate:n,named:o,plural:r}=e;return r([t(["Show full conversation (",n(o("numStatus"))," other status)"]),t(["Show full conversation (",n(o("numStatus"))," other statuses)"])])},show_only_conversation_under_this:e=>{const{normalize:t}=e;return t(["Only show replies to this status"])},status_history:e=>{const{normalize:t}=e;return t(["Status history"])},reaction_count_label:e=>{const{normalize:t,interpolate:n,named:o,plural:r}=e;return r([t([n(o("num"))," person reacted"]),t([n(o("num"))," people reacted"])])},hide_quote:e=>{const{normalize:t}=e;return t(["Hide the quoted status"])},display_quote:e=>{const{normalize:t}=e;return t(["Display the quoted status"])},invisible_quote:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Quoted status unavailable: ",n(o("link"))])},more_actions:e=>{const{normalize:t}=e;return t(["More actions on this status"])}},user_card:{approve:e=>{const{normalize:t}=e;return t(["Approve"])},approve_confirm_title:e=>{const{normalize:t}=e;return t(["Approve confirmation"])},approve_confirm_accept_button:e=>{const{normalize:t}=e;return t(["Approve"])},approve_confirm_cancel_button:e=>{const{normalize:t}=e;return t(["Do not approve"])},approve_confirm:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Do you want to approve ",n(o("user")),"'s follow request?"])},block:e=>{const{normalize:t}=e;return t(["Block"])},blocked:e=>{const{normalize:t}=e;return t(["Blocked!"])},block_confirm_title:e=>{const{normalize:t}=e;return t(["Block confirmation"])},block_confirm:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Do you really want to block ",n(o("user")),"?"])},block_confirm_accept_button:e=>{const{normalize:t}=e;return t(["Block"])},block_confirm_cancel_button:e=>{const{normalize:t}=e;return t(["Do not block"])},deactivated:e=>{const{normalize:t}=e;return t(["Deactivated"])},deny:e=>{const{normalize:t}=e;return t(["Deny"])},deny_confirm_title:e=>{const{normalize:t}=e;return t(["Deny confirmation"])},deny_confirm_accept_button:e=>{const{normalize:t}=e;return t(["Deny"])},deny_confirm_cancel_button:e=>{const{normalize:t}=e;return t(["Do not deny"])},deny_confirm:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Do you want to deny ",n(o("user")),"'s follow request?"])},edit_profile:e=>{const{normalize:t}=e;return t(["Edit profile"])},favorites:e=>{const{normalize:t}=e;return t(["Favorites"])},follow:e=>{const{normalize:t}=e;return t(["Follow"])},follow_cancel:e=>{const{normalize:t}=e;return t(["Cancel request"])},follow_sent:e=>{const{normalize:t}=e;return t(["Request sent!"])},follow_progress:e=>{const{normalize:t}=e;return t(["Requesting…"])},follow_unfollow:e=>{const{normalize:t}=e;return t(["Unfollow"])},unfollow_confirm_title:e=>{const{normalize:t}=e;return t(["Unfollow confirmation"])},unfollow_confirm:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Do you really want to unfollow ",n(o("user")),"?"])},unfollow_confirm_accept_button:e=>{const{normalize:t}=e;return t(["Unfollow"])},unfollow_confirm_cancel_button:e=>{const{normalize:t}=e;return t(["Do not unfollow"])},followees:e=>{const{normalize:t}=e;return t(["Following"])},followers:e=>{const{normalize:t}=e;return t(["Followers"])},following:e=>{const{normalize:t}=e;return t(["Following!"])},follows_you:e=>{const{normalize:t}=e;return t(["Follows you!"])},hidden:e=>{const{normalize:t}=e;return t(["Hidden"])},its_you:e=>{const{normalize:t}=e;return t(["It's you!"])},media:e=>{const{normalize:t}=e;return t(["Media"])},mention:e=>{const{normalize:t}=e;return t(["Mention"])},message:e=>{const{normalize:t}=e;return t(["Message"])},mute:e=>{const{normalize:t}=e;return t(["Mute"])},muted:e=>{const{normalize:t}=e;return t(["Muted"])},mute_confirm_title:e=>{const{normalize:t}=e;return t(["Mute confirmation"])},mute_confirm:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Do you really want to mute ",n(o("user")),"?"])},mute_confirm_accept_button:e=>{const{normalize:t}=e;return t(["Mute"])},mute_confirm_cancel_button:e=>{const{normalize:t}=e;return t(["Do not mute"])},mute_duration_prompt:e=>{const{normalize:t}=e;return t(["Mute this user for (0 for indefinite time):"])},per_day:e=>{const{normalize:t}=e;return t(["per day"])},remote_follow:e=>{const{normalize:t}=e;return t(["Remote follow"])},remove_follower:e=>{const{normalize:t}=e;return t(["Remove follower"])},remove_follower_confirm_title:e=>{const{normalize:t}=e;return t(["Remove follower confirmation"])},remove_follower_confirm_accept_button:e=>{const{normalize:t}=e;return t(["Remove"])},remove_follower_confirm_cancel_button:e=>{const{normalize:t}=e;return t(["Keep"])},remove_follower_confirm:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Do you really want to remove ",n(o("user"))," from your followers?"])},report:e=>{const{normalize:t}=e;return t(["Report"])},statuses:e=>{const{normalize:t}=e;return t(["Statuses"])},subscribe:e=>{const{normalize:t}=e;return t(["Subscribe"])},unsubscribe:e=>{const{normalize:t}=e;return t(["Unsubscribe"])},unblock:e=>{const{normalize:t}=e;return t(["Unblock"])},unblock_progress:e=>{const{normalize:t}=e;return t(["Unblocking…"])},block_progress:e=>{const{normalize:t}=e;return t(["Blocking…"])},unmute:e=>{const{normalize:t}=e;return t(["Unmute"])},unmute_progress:e=>{const{normalize:t}=e;return t(["Unmuting…"])},mute_progress:e=>{const{normalize:t}=e;return t(["Muting…"])},hide_repeats:e=>{const{normalize:t}=e;return t(["Hide repeats"])},show_repeats:e=>{const{normalize:t}=e;return t(["Show repeats"])},bot:e=>{const{normalize:t}=e;return t(["Bot"])},birthday:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Born ",n(o("birthday"))])},admin_menu:{moderation:e=>{const{normalize:t}=e;return t(["Moderation"])},grant_admin:e=>{const{normalize:t}=e;return t(["Grant Admin"])},revoke_admin:e=>{const{normalize:t}=e;return t(["Revoke Admin"])},grant_moderator:e=>{const{normalize:t}=e;return t(["Grant Moderator"])},revoke_moderator:e=>{const{normalize:t}=e;return t(["Revoke Moderator"])},activate_account:e=>{const{normalize:t}=e;return t(["Activate account"])},deactivate_account:e=>{const{normalize:t}=e;return t(["Deactivate account"])},delete_account:e=>{const{normalize:t}=e;return t(["Delete account"])},force_nsfw:e=>{const{normalize:t}=e;return t(["Mark all posts as NSFW"])},strip_media:e=>{const{normalize:t}=e;return t(["Remove media from posts"])},force_unlisted:e=>{const{normalize:t}=e;return t(["Force posts to be unlisted"])},sandbox:e=>{const{normalize:t}=e;return t(["Force posts to be followers-only"])},disable_remote_subscription:e=>{const{normalize:t}=e;return t(["Disallow following user from remote instances"])},disable_any_subscription:e=>{const{normalize:t}=e;return t(["Disallow following user at all"])},quarantine:e=>{const{normalize:t}=e;return t(["Disallow user posts from federating"])},delete_user:e=>{const{normalize:t}=e;return t(["Delete user"])},delete_user_data_and_deactivate_confirmation:e=>{const{normalize:t}=e;return t(["This will permanently delete the data from this account and deactivate it. Are you absolutely sure?"])}},highlight:{disabled:e=>{const{normalize:t}=e;return t(["No highlight"])},solid:e=>{const{normalize:t}=e;return t(["Solid bg"])},striped:e=>{const{normalize:t}=e;return t(["Striped bg"])},side:e=>{const{normalize:t}=e;return t(["Side stripe"])}},note:e=>{const{normalize:t}=e;return t(["Note"])},note_blank:e=>{const{normalize:t}=e;return t(["(None)"])},edit_note:e=>{const{normalize:t}=e;return t(["Edit note"])},edit_note_apply:e=>{const{normalize:t}=e;return t(["Apply"])},edit_note_cancel:e=>{const{normalize:t}=e;return t(["Cancel"])}},user_profile:{timeline_title:e=>{const{normalize:t}=e;return t(["User timeline"])},profile_does_not_exist:e=>{const{normalize:t}=e;return t(["Sorry, this profile does not exist."])},profile_loading_error:e=>{const{normalize:t}=e;return t(["Sorry, there was an error loading this profile."])}},user_reporting:{title:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["Reporting ",n(o(0))])},add_comment_description:e=>{const{normalize:t}=e;return t(["The report will be sent to your instance moderators. You can provide an explanation of why you are reporting this account below:"])},additional_comments:e=>{const{normalize:t}=e;return t(["Additional comments"])},forward_description:e=>{const{normalize:t}=e;return t(["The account is from another server. Send a copy of the report there as well?"])},forward_to:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["Forward to ",n(o(0))])},submit:e=>{const{normalize:t}=e;return t(["Submit"])},generic_error:e=>{const{normalize:t}=e;return t(["An error occurred while processing your request."])}},who_to_follow:{more:e=>{const{normalize:t}=e;return t(["More"])},who_to_follow:e=>{const{normalize:t}=e;return t(["Who to follow"])}},tool_tip:{media_upload:e=>{const{normalize:t}=e;return t(["Upload media"])},repeat:e=>{const{normalize:t}=e;return t(["Repeat"])},reply:e=>{const{normalize:t}=e;return t(["Reply"])},favorite:e=>{const{normalize:t}=e;return t(["Favorite"])},add_reaction:e=>{const{normalize:t}=e;return t(["Add Reaction"])},user_settings:e=>{const{normalize:t}=e;return t(["User Settings"])},accept_follow_request:e=>{const{normalize:t}=e;return t(["Accept follow request"])},reject_follow_request:e=>{const{normalize:t}=e;return t(["Reject follow request"])},bookmark:e=>{const{normalize:t}=e;return t(["Bookmark"])},toggle_expand:e=>{const{normalize:t}=e;return t(["Expand or collapse notification to show post in full"])},toggle_mute:e=>{const{normalize:t}=e;return t(["Expand or collapse notification to reveal muted content"])},autocomplete_available:e=>{const{normalize:t,interpolate:n,named:o,plural:r}=e;return r([t([n(o("number"))," result is available. Use up and down keys to navigate through them."]),t([n(o("number"))," results are available. Use up and down keys to navigate through them."])])}},upload:{error:{base:e=>{const{normalize:t}=e;return t(["Upload failed."])},message:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["Upload failed: ",n(o(0))])},file_too_big:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["File too big [",n(o("filesize")),n(o("filesizeunit"))," / ",n(o("allowedsize")),n(o("allowedsizeunit")),"]"])},default:e=>{const{normalize:t}=e;return t(["Try again later"])}},file_size_units:{B:e=>{const{normalize:t}=e;return t(["B"])},KiB:e=>{const{normalize:t}=e;return t(["KiB"])},MiB:e=>{const{normalize:t}=e;return t(["MiB"])},GiB:e=>{const{normalize:t}=e;return t(["GiB"])},TiB:e=>{const{normalize:t}=e;return t(["TiB"])}}},search:{people:e=>{const{normalize:t}=e;return t(["People"])},hashtags:e=>{const{normalize:t}=e;return t(["Hashtags"])},person_talking:e=>{const{normalize:t,interpolate:n,named:o}=e;return t([n(o("count"))," person talking"])},people_talking:e=>{const{normalize:t,interpolate:n,named:o}=e;return t([n(o("count"))," people talking"])},no_results:e=>{const{normalize:t}=e;return t(["No results"])},no_more_results:e=>{const{normalize:t}=e;return t(["No more results"])},load_more:e=>{const{normalize:t}=e;return t(["Load more results"])}},password_reset:{forgot_password:e=>{const{normalize:t}=e;return t(["Forgot password?"])},password_reset:e=>{const{normalize:t}=e;return t(["Password reset"])},instruction:e=>{const{normalize:t}=e;return t(["Enter your email address or username. We will send you a link to reset your password."])},placeholder:e=>{const{normalize:t}=e;return t(["Your email or username"])},check_email:e=>{const{normalize:t}=e;return t(["Check your email for a link to reset your password."])},return_home:e=>{const{normalize:t}=e;return t(["Return to the home page"])},too_many_requests:e=>{const{normalize:t}=e;return t(["You have reached the limit of attempts, try again later."])},password_reset_disabled:e=>{const{normalize:t}=e;return t(["Password reset is disabled. Please contact your instance administrator."])},password_reset_required:e=>{const{normalize:t}=e;return t(["You must reset your password to log in."])},password_reset_required_but_mailer_is_disabled:e=>{const{normalize:t}=e;return t(["You must reset your password, but password reset is disabled. Please contact your instance administrator."])}},chats:{you:e=>{const{normalize:t}=e;return t(["You:"])},message_user:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Message ",n(o("nickname"))])},delete:e=>{const{normalize:t}=e;return t(["Delete"])},chats:e=>{const{normalize:t}=e;return t(["Chats"])},new:e=>{const{normalize:t}=e;return t(["New Chat"])},empty_message_error:e=>{const{normalize:t}=e;return t(["Cannot post empty message"])},more:e=>{const{normalize:t}=e;return t(["More"])},delete_confirm:e=>{const{normalize:t}=e;return t(["Do you really want to delete this message?"])},error_loading_chat:e=>{const{normalize:t}=e;return t(["Something went wrong when loading the chat."])},error_sending_message:e=>{const{normalize:t}=e;return t(["Something went wrong when sending the message."])},empty_chat_list_placeholder:e=>{const{normalize:t}=e;return t(["You don't have any chats yet. Start a new chat!"])}},lists:{lists:e=>{const{normalize:t}=e;return t(["Lists"])},new:e=>{const{normalize:t}=e;return t(["New List"])},title:e=>{const{normalize:t}=e;return t(["List title"])},search:e=>{const{normalize:t}=e;return t(["Search users"])},create:e=>{const{normalize:t}=e;return t(["Create"])},save:e=>{const{normalize:t}=e;return t(["Save changes"])},delete:e=>{const{normalize:t}=e;return t(["Delete list"])},following_only:e=>{const{normalize:t}=e;return t(["Limit to Following"])},manage_lists:e=>{const{normalize:t}=e;return t(["Manage lists"])},manage_members:e=>{const{normalize:t}=e;return t(["Manage list members"])},add_members:e=>{const{normalize:t}=e;return t(["Search for more users"])},remove_from_list:e=>{const{normalize:t}=e;return t(["Remove from list"])},add_to_list:e=>{const{normalize:t}=e;return t(["Add to list"])},is_in_list:e=>{const{normalize:t}=e;return t(["Already in list"])},editing_list:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Editing list ",n(o("listTitle"))])},creating_list:e=>{const{normalize:t}=e;return t(["Creating new list"])},update_title:e=>{const{normalize:t}=e;return t(["Save Title"])},really_delete:e=>{const{normalize:t}=e;return t(["Really delete list?"])},error:e=>{const{normalize:t,interpolate:n,list:o}=e;return t(["Error manipulating lists: ",n(o(0))])}},file_type:{audio:e=>{const{normalize:t}=e;return t(["Audio"])},video:e=>{const{normalize:t}=e;return t(["Video"])},image:e=>{const{normalize:t}=e;return t(["Image"])},file:e=>{const{normalize:t}=e;return t(["File"])}},display_date:{today:e=>{const{normalize:t}=e;return t(["Today"])}},update:{big_update_title:e=>{const{normalize:t}=e;return t(["Please bear with us"])},big_update_content:e=>{const{normalize:t}=e;return t(["We haven't had a release in a while, so things might look and feel different than what you're used to."])},update_bugs:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Please report any issues and bugs on ",n(o("pleromaGitlab")),", as we have changed a lot, and although we test thoroughly and use development versions ourselves, we may have missed some things. We welcome your feedback and suggestions on issues you might encounter, or how to improve Pleroma and Pleroma-FE."])},update_bugs_gitlab:e=>{const{normalize:t}=e;return t(["Pleroma GitLab"])},update_changelog:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["For more details on what's changed, see ",n(o("theFullChangelog")),"."])},update_changelog_here:e=>{const{normalize:t}=e;return t(["the full changelog"])},art_by:e=>{const{normalize:t,interpolate:n,named:o}=e;return t(["Art by ",n(o("linkToArtist"))])}},unicode_domain_indicator:{tooltip:e=>{const{normalize:t}=e;return t(["This domain contains non-ascii characters."])}}}},1395:(e,t,n)=>{var o={"./af.json":[44919,6355],"./am.json":[53139,5119],"./ar.json":[44557,9873],"./ar_SA.json":[23450,7360],"./as.json":[44359,3377],"./ast.json":[13764,7569],"./az.json":[86459,2342],"./be.json":[50866,7304],"./bg.json":[26219,3974],"./bn.json":[69178,9064],"./br.json":[67871,6148],"./bs.json":[75340,8134],"./ca.json":[86914,4691],"./ccp.json":[73872,1162],"./ceb.json":[64478,9790],"./chr.json":[61017,6869],"./ckb.json":[56412,2656],"./cs.json":[8888,4710],"./cy.json":[25392,6272],"./da.json":[35042,1596],"./de.json":[35169,6226],"./de_CH.json":[28246,7164],"./doi.json":[59784,4209],"./dsb.json":[60634,1790],"./el.json":[98338,7879],"./en.json":[74990,5728],"./en_001.json":[62736,577],"./en_AU.json":[2597,9360],"./en_CA.json":[1516,4879],"./en_GB.json":[84830,50],"./en_IN.json":[71809,8988],"./es.json":[61148,6831],"./es_419.json":[25696,8873],"./es_MX.json":[11915,2699],"./es_US.json":[87826,3313],"./et.json":[66641,3276],"./eu.json":[6541,2992],"./fa.json":[43305,5521],"./fi.json":[40752,420],"./fil.json":[26843,1236],"./fo.json":[43032,8995],"./fr.json":[80898,2223],"./fr_CA.json":[54515,1821],"./ga.json":[66572,4571],"./gd.json":[9185,6116],"./gl.json":[23840,6126],"./gu.json":[85811,7261],"./ha.json":[91566,227],"./ha_NE.json":[3400,5304],"./he.json":[26260,5548],"./hi.json":[18136,5968],"./hi_Latn.json":[95638,3056],"./hr.json":[77435,2861],"./hsb.json":[15758,8015],"./hu.json":[2727,4902],"./hy.json":[8397,6344],"./ia.json":[49796,6936],"./id.json":[56635,9465],"./ig.json":[26406,9895],"./is.json":[51391,7300],"./it.json":[54879,8970],"./ja.json":[2971,1290],"./jv.json":[18644,2479],"./ka.json":[71255,6068],"./kab.json":[92892,9780],"./kk.json":[46419,2873],"./kl.json":[2227,2397],"./km.json":[65729,1404],"./kn.json":[65611,278],"./ko.json":[67080,2966],"./kok.json":[47209,2599],"./ku.json":[18738,2883],"./ky.json":[89690,4785],"./lb.json":[3929,4770],"./lo.json":[19778,7464],"./lt.json":[41683,7169],"./lv.json":[54873,8898],"./mai.json":[11781,1613],"./mi.json":[11569,6701],"./mk.json":[67589,9921],"./ml.json":[24415,2685],"./mn.json":[50512,4718],"./mni.json":[81597,5401],"./mr.json":[97747,1911],"./ms.json":[81588,9924],"./mt.json":[25081,9399],"./my.json":[8608,6790],"./ne.json":[8572,9377],"./nl.json":[52355,6773],"./nn.json":[52874,9414],"./no.json":[48005,9979],"./or.json":[26728,1012],"./pa.json":[15042,6946],"./pa_Arab.json":[43578,9994],"./pcm.json":[91163,5104],"./pl.json":[61335,1095],"./ps.json":[51828,678],"./pt.json":[38543,5041],"./pt_PT.json":[8063,1546],"./qu.json":[15821,8031],"./rm.json":[5014,5887],"./ro.json":[34064,9864],"./ru.json":[95222,8395],"./rw.json":[12710,346],"./sa.json":[69343,2243],"./sat.json":[51243,7855],"./sc.json":[1319,2874],"./sd.json":[67728,6826],"./si.json":[5044,4354],"./sk.json":[45626,2350],"./sl.json":[76091,1553],"./so.json":[93761,625],"./sq.json":[1230,4368],"./sr.json":[60445,3887],"./sr_Cyrl_BA.json":[38940,6060],"./sr_Latn.json":[21650,8681],"./sr_Latn_BA.json":[78328,5115],"./su.json":[54395,1959],"./sv.json":[3418,3241],"./sw.json":[11958,7585],"./sw_KE.json":[35001,3994],"./ta.json":[92930,7897],"./te.json":[8748,4786],"./tg.json":[20999,313],"./th.json":[23900,3951],"./ti.json":[368,3568],"./tk.json":[88770,1780],"./to.json":[95781,1584],"./tr.json":[92619,9978],"./tt.json":[87782,2569],"./ug.json":[19005,9757],"./uk.json":[82057,9871],"./ur.json":[13889,6797],"./uz.json":[45108,1056],"./vi.json":[97099,5224],"./wo.json":[9923,7303],"./xh.json":[29064,786],"./yo.json":[11971,8732],"./yo_BJ.json":[64533,9926],"./yue.json":[40648,1452],"./yue_Hans.json":[24800,4424],"./zh.json":[34626,457],"./zh_Hant.json":[82560,2767],"./zh_Hant_HK.json":[47677,1044],"./zu.json":[73784,9319]};function r(e){if(!n.o(o,e))return Promise.resolve().then((()=>{var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=o[e],r=t[0];return n.e(t[1]).then((()=>n.t(r,19)))}r.keys=()=>Object.keys(o),r.id=1395,e.exports=r},19003:(e,t,n)=>{"use strict";n.d(t,{ZP:()=>l});var o=n(15861),r=n(93433),i=n(4942),s=n(64687),a=n.n(s);function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function c(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?u(Object(n),!0).forEach((function(t){(0,i.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}const l=function(e){var t=d(e.emoji),n=e.store&&p(e.store);return function(o,r){var i=o[0];return":"===i&&e.emoji?t(o,r):"@"===i&&n?n(o):[]}};var d=function(e){return function(t,n){var o=t.toLowerCase().substr(1);return e.map((function(e){return c(c({},e),n(e))})).filter((function(e){return e.names.concat(e.keywords).filter((function(e){return e.toLowerCase().match(o)})).length})).map((function(e){var t=0;return t+=Math.max.apply(Math,(0,r.Z)(e.names.map((function(e){return e.toLowerCase()===o?200:0}))).concat([0])),t+=e.imageUrl?100:0,t+=Math.max.apply(Math,(0,r.Z)(e.names.map((function(e){return e.toLowerCase().startsWith(o)?10:0}))).concat([0])),t-=e.displayText.length,e.score=t,e})).sort((function(e,t){var n=e.displayText>t.displayText?.5:-.5;return t.score-e.score+n}))}},p=function(e){var t=e.dispatch,n=e.state,r=[],i="",s=null,u=null,c=function(e){return u&&u(),new Promise((function(n,o){s=setTimeout((function(){(function(e){return t("searchUsers",{query:e})})(e).then(n).catch(o)}),300),u=function(){clearTimeout(s),n([])}}))};return function(){var e=(0,o.Z)(a().mark((function e(t){var o,s;return a().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=t.toLowerCase().substr(1),i!==o){e.next=3;break}return e.abrupt("return",r);case 3:if(r=[],i=o,o.includes("@")){e.next=8;break}return e.next=8,c(o);case 8:return s=n.users.users.filter((function(e){return e.screen_name&&e.name&&(e.screen_name.toLowerCase().startsWith(o)||e.name.toLowerCase().startsWith(o))})).slice(0,20).sort((function(e,t){var n=0,r=0;return n+=e.screen_name.toLowerCase().startsWith(o)?2:0,r+=t.screen_name.toLowerCase().startsWith(o)?2:0,n+=e.name.toLowerCase().startsWith(o)?1:0,10*((r+=t.name.toLowerCase().startsWith(o)?1:0)-n)+(e.name>t.name?1:-1)+(e.screen_name>t.screen_name?1:-1)})).map((function(e){return{user:e,displayText:e.screen_name_ui,detailText:e.name,imageUrl:e.profile_image_url_original,replacement:"@"+e.screen_name+" "}})),r=s||[],e.abrupt("return",r);case 11:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()}},92820:(e,t,n)=>{"use strict";n.d(t,{Z:()=>F});var o=n(93433),r=n(29439),i=n(44925),s=n(42348),a=n.n(s),u=n(27955),c=n.n(u),l=n(66252);function d(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return p(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?p(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0,r=function(){};return{s:r,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,i=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw i}}}}function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}var m=function(e){var t=/(?:<\/(\w+)>|<(\w+)\s?[\s\S]*?\/?>)/gi.exec(e);return t&&(t[1]||t[2])},h=function(e,t){var n=e.substring(1,e.length-1).replace(new RegExp("^"+m(e)),"").replace(/\/?$/,"").trim(),o=Array.from(n.matchAll(/([a-z]+[a-z0-9-]*)(?:=("[^"]+?"|'[^']+?'))?/gi)).map((function(e){var t=(0,r.Z)(e,3);return t[0],[t[1],t[2]]})).map((function(e){var t=(0,r.Z)(e,2),n=t[0],o=t[1];return o?[n,o.substring(1,o.length-1)]:[n,!0]}));return Object.fromEntries(o.filter(t||function(e){var t=(0,r.Z)(e,2),n=t[0],o=t[1],i=n.toLowerCase();return"style"!==i&&("class"!==i||"greentext"===o||"cyantext"===o)}))},f=function(e,t,n){for(var o=[],r="",i=0;i<e.length;i++){var s=e[i];if(":"===s){var a,u=e.slice(i+1),c=!1,l=d(t);try{for(l.s();!(a=l.n()).done;){var p=a.value;if(u.slice(0,p.shortcode.length+1)===p.shortcode+":"){c=p;break}}}catch(e){l.e(e)}finally{l.f()}c?(o.push(r),r="",o.push(n(c)),i+=c.shortcode.length+1):r+=s}else r+=s}return r&&o.push(r),o};function g(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return v(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?v(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0,r=function(){};return{s:r,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,i=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw i}}}}function v(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}var w=n(32140),b=n(21268),y=n(49963),D={class:"HashtagLink"},_=["href","innerHTML"];const k={name:"HashtagLink",props:{url:{required:!0,type:String},content:{required:!0,type:String},tag:{required:!1,type:String,default:""}},methods:{onClick:function(){var e,t,n,o=this.tag||(e=this.url,t=decodeURI(e),!!(n=/tags*\/((?:[0-9A-Z_a-z\xAA\xB2\xB3\xB5\xB9\xBA\xBC-\xBE\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u0660-\u0669\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07C0-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0966-\u096F\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09E6-\u09F1\u09F4-\u09F9\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A66-\u0A6F\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AE6-\u0AEF\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B66-\u0B6F\u0B71-\u0B77\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0BE6-\u0BF2\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C66-\u0C6F\u0C78-\u0C7E\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CE6-\u0CEF\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D58-\u0D61\u0D66-\u0D78\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DE6-\u0DEF\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F20-\u0F33\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F-\u1049\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u1090-\u1099\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1369-\u137C\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A16\u1A20-\u1A54\u1A80-\u1A89\u1A90-\u1A99\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B50-\u1B59\u1B83-\u1BA0\u1BAE-\u1BE5\u1C00-\u1C23\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2070\u2071\u2074-\u2079\u207F-\u2089\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2150-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2CFD\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u3192-\u3195\u31A0-\u31BF\u31F0-\u31FF\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA830-\uA835\uA840-\uA873\uA882-\uA8B3\uA8D0-\uA8D9\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA900-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF-\uA9D9\uA9E0-\uA9E4\uA9E6-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDE80-\uDE9C\uDEA0-\uDED0\uDEE1-\uDEFB\uDF00-\uDF23\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC58-\uDC76\uDC79-\uDC9E\uDCA7-\uDCAF\uDCE0-\uDCF2\uDCF4\uDCF5\uDCFB-\uDD1B\uDD20-\uDD39\uDD80-\uDDB7\uDDBC-\uDDCF\uDDD2-\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE40-\uDE48\uDE60-\uDE7E\uDE80-\uDE9F\uDEC0-\uDEC7\uDEC9-\uDEE4\uDEEB-\uDEEF\uDF00-\uDF35\uDF40-\uDF55\uDF58-\uDF72\uDF78-\uDF91\uDFA9-\uDFAF]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDCFA-\uDD23\uDD30-\uDD39\uDE60-\uDE7E\uDE80-\uDEA9\uDEB0\uDEB1\uDF00-\uDF27\uDF30-\uDF45\uDF51-\uDF54\uDF70-\uDF81\uDFB0-\uDFCB\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC52-\uDC6F\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD03-\uDD26\uDD36-\uDD3F\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDD0-\uDDDA\uDDDC\uDDE1-\uDDF4\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDEF0-\uDEF9\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC50-\uDC59\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE50-\uDE59\uDE80-\uDEAA\uDEB8\uDEC0-\uDEC9\uDF00-\uDF1A\uDF30-\uDF3B\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCF2\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDD50-\uDD59\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC50-\uDC6C\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDDA0-\uDDA9\uDEE0-\uDEF2\uDFB0\uDFC0-\uDFD4]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDE70-\uDEBE\uDEC0-\uDEC9\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF50-\uDF59\uDF5B-\uDF61\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE96\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD834[\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD837[\uDF00-\uDF1E]|\uD838[\uDD00-\uDD2C\uDD37-\uDD3D\uDD40-\uDD49\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB\uDEF0-\uDEF9]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDCC7-\uDCCF\uDD00-\uDD43\uDD4B\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])*(?:[A-Z_a-z\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0345\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05B0-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05EF-\u05F2\u0610-\u061A\u0620-\u0657\u0659-\u065F\u066E-\u06D3\u06D5-\u06DC\u06E1-\u06E8\u06ED-\u06EF\u06FA-\u06FC\u06FF\u0710-\u073F\u074D-\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0817\u081A-\u082C\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u08D4-\u08DF\u08E3-\u08E9\u08F0-\u093B\u093D-\u094C\u094E-\u0950\u0955-\u0963\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD-\u09C4\u09C7\u09C8\u09CB\u09CC\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09F0\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3E-\u0A42\u0A47\u0A48\u0A4B\u0A4C\u0A51\u0A59-\u0A5C\u0A5E\u0A70-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD-\u0AC5\u0AC7-\u0AC9\u0ACB\u0ACC\u0AD0\u0AE0-\u0AE3\u0AF9-\u0AFC\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D-\u0B44\u0B47\u0B48\u0B4B\u0B4C\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCC\u0BD0\u0BD7\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4C\u0C55\u0C56\u0C58-\u0C5A\u0C5D\u0C60-\u0C63\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCC\u0CD5\u0CD6\u0CDD\u0CDE\u0CE0-\u0CE3\u0CF1\u0CF2\u0D00-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4C\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D7A-\u0D7F\u0D81-\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E46\u0E4D\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0ECD\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F71-\u0F81\u0F88-\u0F97\u0F99-\u0FBC\u1000-\u1036\u1038\u103B-\u103F\u1050-\u108F\u109A-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1713\u171F-\u1733\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17B3\u17B6-\u17C8\u17D7\u17DC\u1820-\u1878\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u1938\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A1B\u1A20-\u1A5E\u1A61-\u1A74\u1AA7\u1ABF\u1AC0\u1ACC-\u1ACE\u1B00-\u1B33\u1B35-\u1B43\u1B45-\u1B4C\u1B80-\u1BA9\u1BAC-\u1BAF\u1BBA-\u1BE5\u1BE7-\u1BF1\u1C00-\u1C36\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1DE7-\u1DF4\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u24B6-\u24E9\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA674-\uA67B\uA67F-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA805\uA807-\uA827\uA840-\uA873\uA880-\uA8C3\uA8C5\uA8F2-\uA8F7\uA8FB\uA8FD-\uA8FF\uA90A-\uA92A\uA930-\uA952\uA960-\uA97C\uA980-\uA9B2\uA9B4-\uA9BF\uA9CF\uA9E0-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA60-\uAA76\uAA7A-\uAABE\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF5\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABEA\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD27\uDE80-\uDEA9\uDEAB\uDEAC\uDEB0\uDEB1\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC00-\uDC45\uDC71-\uDC75\uDC82-\uDCB8\uDCC2\uDCD0-\uDCE8\uDD00-\uDD32\uDD44-\uDD47\uDD50-\uDD72\uDD76\uDD80-\uDDBF\uDDC1-\uDDC4\uDDCE\uDDCF\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE34\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEE8\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D-\uDF44\uDF47\uDF48\uDF4B\uDF4C\uDF50\uDF57\uDF5D-\uDF63]|\uD805[\uDC00-\uDC41\uDC43-\uDC45\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCC1\uDCC4\uDCC5\uDCC7\uDD80-\uDDB5\uDDB8-\uDDBE\uDDD8-\uDDDD\uDE00-\uDE3E\uDE40\uDE44\uDE80-\uDEB5\uDEB8\uDF00-\uDF1A\uDF1D-\uDF2A\uDF40-\uDF46]|\uD806[\uDC00-\uDC38\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD35\uDD37\uDD38\uDD3B\uDD3C\uDD3F-\uDD42\uDDA0-\uDDA7\uDDAA-\uDDD7\uDDDA-\uDDDF\uDDE1\uDDE3\uDDE4\uDE00-\uDE32\uDE35-\uDE3E\uDE50-\uDE97\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC3E\uDC40\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD41\uDD43\uDD46\uDD47\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD8E\uDD90\uDD91\uDD93-\uDD96\uDD98\uDEE0-\uDEF6\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF4A\uDF4F-\uDF87\uDF8F-\uDF9F\uDFE0\uDFE1\uDFE3\uDFF0\uDFF1]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9E]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD47\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83C[\uDD30-\uDD49\uDD50-\uDD69\uDD70-\uDD89]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A])(?:[0-9A-Z_a-z\xAA\xB2\xB3\xB5\xB7\xB9\xBA\xBC-\xBE\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u052F\u0531-\u0556\u0559\u0560-\u0588\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05EF-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u07FD\u0800-\u082D\u0840-\u085B\u0860-\u086A\u0870-\u0887\u0889-\u088E\u0898-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09F4-\u09F9\u09FC\u09FE\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71-\u0B77\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BF2\u0C00-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3C-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C5D\u0C60-\u0C63\u0C66-\u0C6F\u0C78-\u0C7E\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDD\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D63\u0D66-\u0D78\u0D7A-\u0D7F\u0D81-\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F33\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u137C\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1715\u171F-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u17F0-\u17F9\u180B-\u180D\u180F-\u1819\u1820-\u1878\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ACE\u1B00-\u1B4C\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CD0-\u1CD2\u1CD4-\u1CFA\u1D00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u2070\u2071\u2074-\u2079\u207F-\u2089\u2090-\u209C\u20D0-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2150-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2C00-\u2CE4\u2CEB-\u2CF3\u2CFD\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u3192-\u3195\u31A0-\u31BF\u31F0-\u31FF\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA672\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CA\uA7D0\uA7D1\uA7D3\uA7D5-\uA7D9\uA7F2-\uA827\uA82C\uA830-\uA835\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0-\uDEFB\uDF00-\uDF23\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC58-\uDC76\uDC79-\uDC9E\uDCA7-\uDCAF\uDCE0-\uDCF2\uDCF4\uDCF5\uDCFB-\uDD1B\uDD20-\uDD39\uDD80-\uDDB7\uDDBC-\uDDCF\uDDD2-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE38-\uDE3A\uDE3F-\uDE48\uDE60-\uDE7E\uDE80-\uDE9F\uDEC0-\uDEC7\uDEC9-\uDEE6\uDEEB-\uDEEF\uDF00-\uDF35\uDF40-\uDF55\uDF58-\uDF72\uDF78-\uDF91\uDFA9-\uDFAF]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDCFA-\uDD27\uDD30-\uDD39\uDE60-\uDE7E\uDE80-\uDEA9\uDEAB\uDEAC\uDEB0\uDEB1\uDF00-\uDF27\uDF30-\uDF54\uDF70-\uDF85\uDFB0-\uDFCB\uDFE0-\uDFF6]|\uD804[\uDC00-\uDC46\uDC52-\uDC75\uDC7F-\uDCBA\uDCC2\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD44-\uDD47\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDC9-\uDDCC\uDDCE-\uDDDA\uDDDC\uDDE1-\uDDF4\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3B-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC5E-\uDC61\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB8\uDEC0-\uDEC9\uDF00-\uDF1A\uDF1D-\uDF2B\uDF30-\uDF3B\uDF40-\uDF46]|\uD806[\uDC00-\uDC3A\uDCA0-\uDCF2\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD35\uDD37\uDD38\uDD3B-\uDD43\uDD50-\uDD59\uDDA0-\uDDA7\uDDAA-\uDDD7\uDDDA-\uDDE1\uDDE3\uDDE4\uDE00-\uDE3E\uDE47\uDE50-\uDE99\uDE9D\uDEB0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC6C\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD8E\uDD90\uDD91\uDD93-\uDD98\uDDA0-\uDDA9\uDEE0-\uDEF6\uDFB0\uDFC0-\uDFD4]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDE70-\uDEBE\uDEC0-\uDEC9\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF5B-\uDF61\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE96\uDF00-\uDF4A\uDF4F-\uDF87\uDF8F-\uDF9F\uDFE0\uDFE1\uDFE3\uDFE4\uDFF0\uDFF1]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDD00-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD50-\uDD52\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD833[\uDF00-\uDF2D\uDF30-\uDF46]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44\uDEE0-\uDEF3\uDF60-\uDF78]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD837[\uDF00-\uDF1E]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDD00-\uDD2C\uDD30-\uDD3D\uDD40-\uDD49\uDD4E\uDE90-\uDEAE\uDEC0-\uDEF9]|\uD839[\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDCC7-\uDCD6\uDD00-\uDD4B\uDD50-\uDD59]|\uD83B[\uDC71-\uDCAB\uDCAD-\uDCAF\uDCB1-\uDCB4\uDD01-\uDD2D\uDD2F-\uDD3D\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83C[\uDD00-\uDD0C]|\uD83E[\uDFF0-\uDFF9]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF38\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A]|\uDB40[\uDD00-\uDDEF])*)$/g.exec(t))&&n[1]);if(o){var r=this.generateTagLink(o);this.$router.push(r)}else window.open(this.url,"_blank")},generateTagLink:function(e){return"/tag/".concat(e)}}},C=(0,n(83744).Z)(k,[["render",function(e,t,n,o,r,i){return(0,l.wg)(),(0,l.iD)("span",D,[(0,l._)("a",{href:e.url,class:"original",target:"_blank",onClick:t[0]||(t[0]=(0,y.iM)((function(){return e.onClick&&e.onClick.apply(e,arguments)}),["prevent"])),innerHTML:e.content},null,8,_)])}]]);var S=["index"],j=["blockquote","br","hr","ul","ol","li","p","table","tbody","td","th","thead","tr","h1","h2","h3","h4","h5"];const F={name:"RichContent",components:{MentionsLine:b.Z,HashtagLink:C},props:{html:{required:!0,type:String},attentions:{required:!1,default:function(){return[]}},emoji:{required:!0,type:Array},handleLinks:{required:!1,type:Boolean,default:!1},greentext:{required:!1,type:Boolean,default:!1}},render:function(){var e=this,t=O(this.html,this.greentext).newHtml,n=null,s="",a=[],u=[],d=[],p=[],g=0,v=0,y=!1,D=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=new Set(["area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"]),n=[],o=[["",n]],r="",i=null,s=function(){return o[o.length-1][1]},a=function(){""!==r&&(s().push(r),r="")},u=function(e){s().push([e])},l=function(e){var t=s(),n=[c()(e),[]];o.push(n),t.push(n)},d=function(e){var t=o[o.length-1];m(o[o.length-1][0])===m(e)?(t.push(e),o.pop()):s().push(e)},p=0;p<e.length;p++){var h=e[p];if("<"===h&&null===i)a(),i=h;else if(">"!==h&&null!==i)i+=h;else if(">"===h&&null!==i){var f=i+=h;i=null;var g=m(f);"/"===f[1]?d(f):t.has(g)||"/"===f[f.length-2]?u(f):l(f)}else r+=h}return i&&(r+=i),a(),n}(t).map((function t(o,i,a,c){if("string"==typeof o){var p=""===o.trim();return o.includes("\n")&&(n=null),p?(s=o,i!==a.length-1&&null!==n?o.trim():o):(n=null,o.includes(":")&&(o=["",f(o,e.emoji,(function(e){var t=e.shortcode,n=e.url;return(0,l.Wm)(w.Z,{class:"emoji img",src:n,title:":".concat(t,":"),alt:":".concat(t,":")},null)}))]),o)}if(Array.isArray(o)){var v=o,y=(0,r.Z)(v,3),D=y[0],_=y[1],k=y[2],C=m(D);"script"===C.toLowerCase()&&(C="js-exploit"),"style"===C.toLowerCase()&&(C="css-exploit");var S=h(D,(function(){return!0})),F=h(D),O=null===n||_&&"string"==typeof _[0]&&_[0].match(/^\s/)?"":s;if(j.includes(C))n=null;else{if("img"===C)return["",[O,(E=D,(0,l.Wm)(w.Z,(0,l.dG)(h(E),{class:"img"}),null))],""];if("a"===C&&e.handleLinks){if(S.class&&S.class.includes("mention"))return function(t,o){var r=A(t,o,g++);return r.notifying=e.attentions.some((function(e){return e.statusnet_profile_url===r.url})),u.push(r),null===n&&(n=[]),n.push(r),n.length>b.d&&d.push(r),1===n.length?(0,l.Wm)(b.Z,{mentions:n},null):""}(F,_);n=null}else if("span"===C&&e.handleLinks&&S.class&&S.class.includes("h-card"))return["",_.map(t),""]}return void 0!==_?["",[O,[D,_.map(t),k]],""]:["",[O,o],""]}var E})),_=(0,o.Z)(D).reverse().map((function t(n,s,u,d){var f;if("string"==typeof n)return""===n.trim()?n:(y||(y=!0),c()(n));if(Array.isArray(n)){var g=(0,r.Z)(n,2),w=g[0],b=g[1],D=""===w?"":m(w);switch(D){case"a":if(!e.handleLinks)break;var _=h(w,(function(){return!0})),k=h(w,(function(){return!0}));if(_.class&&_.class.includes("hashtag")||"tag"===_.rel)return function(e,t,n){var o=A(e,t,v++),r=(o.index,(0,i.Z)(o,S));p.push(r),n||a.push(r);var s=r.url,u=r.tag,c=r.content;return(0,l.Wm)(C,{url:s,tag:u,content:c},null)}(k,b,y);k.target="_blank";var j=(0,o.Z)(b).reverse().map(t).reverse();return(0,l.Wm)("a",k,[j]);case"":return(0,o.Z)(b).reverse().map(t).reverse()}if(void 0!==b){var F=Array.isArray(b)?(0,o.Z)(b).reverse().map(t).reverse():b;return(0,l.Wm)(D,h(w),"function"==typeof(f=F)||"[object Object]"===Object.prototype.toString.call(f)&&!(0,l.lA)(f)?F:{default:function(){return[F]}})}return(0,l.Wm)(D,null,null)}return n})).reverse(),k=(0,l.Wm)("span",{class:"RichContent"},[_]),F={lastTags:a,writtenMentions:u,writtenTags:p,invisibleMentions:d};return this.$emit("parseReady",F),k}};var A=function(e,t,n){var o=t.map((function e(t){return"string"==typeof t?t:t[1].map(e).join("")})).join("");return{index:n,url:e.href,tag:e["data-tag"],content:a()(t).join(""),textContent:o}},O=function(e,t){var n=new Set(["p","div"]),r=function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",n=new Set(["area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"]),r=new Set(["address","article","aside","blockquote","details","dialog","dd","div","dl","dt","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","hr","li","main","nav","ol","p","pre","section","table","ul"]),i=new Set(["br"]),s=new Set([].concat((0,o.Z)(r.values()),(0,o.Z)(i.values()))),a=new Set(s),u=g(n);try{for(u.s();!(e=u.n()).done;){var c=e.value;a.delete(c)}}catch(e){u.e(e)}finally{u.f()}for(var l=new Set([].concat((0,o.Z)(a.values()),(0,o.Z)(n.values()))),d=[],p=[],h="",f=null,v=function(){h.trim().length>0?d.push({level:[].concat(p),text:h}):d.push(h),h=""},w=function(e){v(),d.push(e)},b=function(e){v(),d.push(e),p.unshift(m(e))},y=function(e){p[0]===m(e)?(v(),d.push(e),p.shift()):h+=e},D=0;D<t.length;D++){var _=t[D];if("<"===_&&null===f)f=_;else if(">"!==_&&null!==f)f+=_;else if(">"===_&&null!==f){var k=f+=_;f=null;var C=m(k);l.has(C)?i.has(C)?w(k):a.has(C)?"/"===k[1]?y(k):"/"===k[k.length-2]?w(k):b(k):h+=k:h+=k}else"\n"===_?w(_):h+=_}return f&&(h+=f),v(),d}(e);return{newHtml:r.reverse().map((function(e,o,r){if(!e.text)return e;var i=e.text;if(t&&e.level.every((function(e){return n.has(e)}))&&(i.includes("&gt;")||i.includes("&lt;"))){var s=i.replace(/<[^>]+?>/gi,"").replace(/@\w+/gi,"").trim();if(s.startsWith("&gt;"))return"<span class='greentext'>".concat(i,"</span>");if(s.startsWith("&lt;"))return"<span class='cyantext'>".concat(i,"</span>")}return i})).reverse().join("")}}},79354:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var o=n(66252),r=n(57810),i=function(e){return e.findIndex((function(e){return e.props}))};const s={name:"TabSwitcher",props:{renderOnlyFocused:{required:!1,type:Boolean,default:!1},onSwitch:{required:!1,type:Function,default:void 0},activeTab:{required:!1,type:String,default:void 0},scrollableTabs:{required:!1,type:Boolean,default:!1},sideTabBar:{required:!1,type:Boolean,default:!1},bodyScrollLock:{required:!1,type:Boolean,default:!1}},data:function(){return{active:i(this.slots())}},computed:{activeIndex:function(){var e=this;return this.activeTab?this.slots().findIndex((function(t){return t&&t.props&&e.activeTab===t.props.key})):this.active},isActive:function(){var e=this;return function(t){return e.$slots.default().findIndex((function(e){return e.props&&e.props["data-tab-name"]===t}))===e.activeIndex}}},beforeUpdate:function(){this.slots()[this.active].props||(this.active=i(this.slots()))},methods:{clickTab:function(e){var t=this;return function(n){n.preventDefault(),t.setTab(e)}},slots:function(){return this.$slots.default()[0].type===o.HY?this.$slots.default()[0].children:this.$slots.default()},setTab:function(e){"function"==typeof this.onSwitch&&this.onSwitch.call(null,this.slots()[e].key),this.active=e,this.scrollableTabs&&(this.$refs.contents.scrollTop=0)}},render:function(){var e=this,t=this.slots().map((function(t,n){var i=t.props;if(i){var s=["tab","button-default"],a=["tab-wrapper"];return e.activeIndex===n&&(s.push("active"),a.push("active")),i.image?(0,o.Wm)("div",{class:a.join(" ")},[(0,o.Wm)("button",{disabled:i.disabled,onClick:e.clickTab(n),class:s.join(" "),type:"button",role:"tab"},[(0,o.Wm)("img",{src:i.image,title:i["image-tooltip"]},null),i.label?"":i.label])]):(0,o.Wm)("div",{class:a.join(" ")},[(0,o.Wm)("button",{disabled:i.disabled,onClick:e.clickTab(n),class:s.join(" "),type:"button",role:"tab"},[i.icon?(0,o.Wm)(r.GN,{class:"tab-icon",size:"2x","fixed-width":!0,icon:i.icon},null):"",(0,o.Wm)("span",{class:"text"},[i.label])])])}})),n=this.slots().map((function(t,n){var r=t.props;if(r){var i=e.activeIndex===n,s=[i?"active":"hidden"];r.fullHeight&&s.push("full-height");var a=!e.renderOnlyFocused||i?t:"";return(0,o.Wm)("div",{class:s},[e.sideTabBar?(0,o.Wm)("h1",{class:"mobile-label"},[r.label]):"",a])}}));return(0,o.Wm)("div",{class:"tab-switcher "+(this.sideTabBar?"side-tabs":"top-tabs")},[(0,o.Wm)("div",{class:"tabs",role:"tablist"},[t]),(0,o.wy)((0,o.Wm)("div",{ref:"contents",role:"tabpanel",class:"contents"+(this.scrollableTabs?" scrollable-tabs":"")},[n]),[[(0,o.Q2)("body-scroll-lock"),this.bodyScrollLock]])])}}},98027:(e,t,n)=>{"use strict";n.d(t,{Z:()=>m});var o=n(4942),r=n(66252),i=n(41609),s=n.n(i),a=n(13562),u=n(57810),c=n(9382),l=n(84131);function d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function p(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?d(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):d(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}c.vI.add(l.IJ7);const m=function(e){var t=e.fetch,n=e.select,i=e.unmounted,c=e.childPropName,l=void 0===c?"entries":c,d=e.additionalPropNames,m=void 0===d?[]:d;return function(e){return{props:Object.keys((0,a.g)(e)).filter((function(e){return e!==l})).concat(m),data:function(){return{loading:!1,bottomedOut:!1,error:!1,entries:[]}},created:function(){window.addEventListener("scroll",this.scrollLoad),0===this.entries.length&&this.fetchEntries()},unmounted:function(){window.removeEventListener("scroll",this.scrollLoad),i&&i(this.$props,this.$store)},methods:{updateEntries:function(){this.entries=n(this.$props,this.$store)||[]},fetchEntries:function(){var e=this;this.loading||(this.loading=!0,this.error=!1,t(this.$props,this.$store).then((function(t){e.loading=!1,e.bottomedOut=s()(t)})).catch((function(){e.loading=!1,e.error=!0})).finally((function(){e.updateEntries()})))},scrollLoad:function(e){var t=document.body.getBoundingClientRect(),n=Math.max(t.height,-t.y);!1===this.loading&&!1===this.bottomedOut&&this.$el.offsetHeight>0&&window.innerHeight+window.pageYOffset>=n-750&&this.fetchEntries()}},render:function(){var t,n=p(p({},this.$props),{},(0,o.Z)({},l,this.entries)),i=this.$slots;return(0,r.Wm)("div",{class:"with-load-more"},[(0,r.Wm)(e,n,(t=i,"function"==typeof t||"[object Object]"===Object.prototype.toString.call(t)&&!(0,r.lA)(t)?i:{default:function(){return[i]}})),(0,r.Wm)("div",{class:"with-load-more-footer"},[this.error&&(0,r.Wm)("button",{onClick:this.fetchEntries,class:"button-unstyled -link -fullwidth alert error"},[this.$t("general.generic_error")]),!this.error&&this.loading&&(0,r.Wm)(u.GN,{spin:!0,icon:"circle-notch"},null),!this.error&&!this.loading&&!this.bottomedOut&&(0,r.Wm)("a",{onClick:this.fetchEntries,role:"button",tabindex:"0"},[this.$t("general.more")])])])}}}}},8312:e=>{var t={ja:"ja_pedantic"};e.exports={languages:["ar","ca","cs","de","eo","en","es","et","eu","fi","fr","ga","he","hu","it","ja","ja_easy","ko","nan-TW","nb","nl","oc","pl","pt","ro","ru","sk","te","uk","zh","zh_Hant"],langCodeToJsonName:function(e){return t[e]||e},langCodeToCldrName:function(e){return e},ensureFinalFallback:function(e){var t=Array.isArray(e)?e:[e];return t.includes("en")?t:t.concat(["en"])}}},72617:(e,t,n)=>{"use strict";n.d(t,{Z:()=>h});var o=n(84506),r=n(15861),i=n(18446),s=n.n(i),a=n(64687),u=n.n(a),c=n(8312);function l(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return d(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?d(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0,r=function(){};return{s:r,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,i=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw i}}}}function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}var p,m=function(e){return n(27650)("./".concat((0,c.langCodeToJsonName)(e),".json"))};const h={languages:c.languages,default:{en:n(88797).default},setLanguage:(p=(0,r.Z)(u().mark((function e(t,n){var r,i,a,d,p,h,f,g;return u().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if((r=(Array.isArray(n)?n:[n]).filter((function(e){return e}))).includes("en")||r.push("en"),i=(0,o.Z)(r),a=i[0],d=i.slice(1),a!==t.locale||!s()(d,t.fallbackLocale)){e.next=5;break}return e.abrupt("return");case 5:p=l(r),e.prev=6,p.s();case 8:if((h=p.n()).done){e.next=17;break}if(u=f=h.value,!c.languages.includes(u)){e.next=15;break}return e.next=13,m(f);case 13:g=e.sent,t.setLocaleMessage(f,g.default);case 15:e.next=8;break;case 17:e.next=22;break;case 19:e.prev=19,e.t0=e.catch(6),p.e(e.t0);case 22:return e.prev=22,p.f(),e.finish(22);case 25:t.fallbackLocale=d,t.locale=a;case 27:case"end":return e.stop()}var u}),e,null,[[6,19,22,25]])}))),function(e,t){return p.apply(this,arguments)})}},35930:(e,t,n)=>{"use strict";var o=n(15861),r=n(64687),i=n.n(r),s=n(989),a=(n(67810),n(73152));try{new EventTarget}catch(e){window.EventTarget=a.Z}const u={state:{settingsModalState:"hidden",settingsModalLoadedUser:!1,settingsModalLoadedAdmin:!1,settingsModalTargetTab:null,settingsModalMode:"user",settings:{currentSaveStateNotice:null,noticeClearTimeout:null,notificationPermission:null},browserSupport:{cssFilter:window.CSS&&window.CSS.supports&&(window.CSS.supports("filter","drop-shadow(0 0)")||window.CSS.supports("-webkit-filter","drop-shadow(0 0)"))},layoutType:"normal",globalNotices:[],layoutHeight:0,lastTimeline:null},mutations:{settingsSaved:function(e,t){var n=t.success,o=t.error;n?(e.noticeClearTimeout&&clearTimeout(e.noticeClearTimeout),e.settings.currentSaveStateNotice={error:!1,data:n},e.settings.noticeClearTimeout=setTimeout((function(){return delete e.settings.currentSaveStateNotice}),2e3)):e.settings.currentSaveStateNotice={error:!0,errorData:o}},setNotificationPermission:function(e,t){e.notificationPermission=t},setLayoutType:function(e,t){e.layoutType=t},closeSettingsModal:function(e){e.settingsModalState="hidden"},togglePeekSettingsModal:function(e){switch(e.settingsModalState){case"minimized":return void(e.settingsModalState="visible");case"visible":return void(e.settingsModalState="minimized");default:throw new Error("Illegal minimization state of settings modal")}},openSettingsModal:function(e,t){e.settingsModalMode=t,e.settingsModalState="visible","user"===t?e.settingsModalLoadedUser||(e.settingsModalLoadedUser=!0):"admin"===t&&(e.settingsModalLoadedAdmin||(e.settingsModalLoadedAdmin=!0))},setSettingsModalTargetTab:function(e,t){e.settingsModalTargetTab=t},pushGlobalNotice:function(e,t){e.globalNotices.push(t)},removeGlobalNotice:function(e,t){e.globalNotices=e.globalNotices.filter((function(e){return e!==t}))},setLayoutHeight:function(e,t){e.layoutHeight=t},setLayoutWidth:function(e,t){e.layoutWidth=t},setLastTimeline:function(e,t){e.lastTimeline=t}},actions:{setPageTitle:function(e){var t=e.rootState,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";document.title="".concat(n," ").concat(t.instance.name)},settingsSaved:function(e,t){var n=e.commit;e.dispatch,n("settingsSaved",{success:t.success,error:t.error})},setNotificationPermission:function(e,t){(0,e.commit)("setNotificationPermission",t)},closeSettingsModal:function(e){(0,e.commit)("closeSettingsModal")},openSettingsModal:function(e){var t=e.commit,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"user";t("openSettingsModal",n)},togglePeekSettingsModal:function(e){(0,e.commit)("togglePeekSettingsModal")},clearSettingsModalTargetTab:function(e){(0,e.commit)("setSettingsModalTargetTab",null)},openSettingsModalTab:function(e,t){var n=e.commit;n("setSettingsModalTargetTab",t),n("openSettingsModal","user")},pushGlobalNotice:function(e,t){var n=e.commit,o=e.dispatch,r=e.state,i=t.messageKey,s=t.messageArgs,a=void 0===s?{}:s,u=t.level,c=void 0===u?"error":u,l=t.timeout,d=void 0===l?0:l;n("pushGlobalNotice",{messageKey:i,messageArgs:a,level:c});var p=r.globalNotices[r.globalNotices.length-1];return d&&setTimeout((function(){return o("removeGlobalNotice",p)}),d),p},removeGlobalNotice:function(e,t){(0,e.commit)("removeGlobalNotice",t)},setLayoutHeight:function(e,t){(0,e.commit)("setLayoutHeight",t)},setLayoutWidth:function(e,t){var n=e.commit,o=e.state,r=e.rootGetters,i=e.rootState,s=t;void 0!==t?n("setLayoutWidth",t):s=o.layoutWidth;var a=s<=800?"mobile":"normal";"none"!==r.mergedConfig.thirdColumnMode&&i.users.currentUser?n("setLayoutType",s>=1300?"wide":a):n("setLayoutType",a)},setLastTimeline:function(e,t){(0,e.commit)("setLastTimeline",t)}}};var c=n(29439),l=n(93433),d=n(4942),p=n(77394),m=n(40454),h=n(77776),f=n(85565),g=n(8312);function v(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function w(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?v(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):v(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var b=["smileys-and-emotion","people-and-body","animals-and-nature","food-and-drink","travel-and-places","activities","objects","symbols","flags"],y=function(){for(var e=127462,t="A".codePointAt(0),n=new Array(26),o=e;o<=127487;++o){var r=String.fromCodePoint(t+o-e);n[o-e]={replacement:String.fromCodePoint(o),imageUrl:!1,displayText:"regional_indicator_"+r,displayTextI18n:{key:"emoji.regional_indicator",args:{letter:r}}}}return n}(),D=function(e){return n(1395)("./".concat((0,g.langCodeToCldrName)(e),".json")).then((function(e){return e.default}))},_=function(e,t){var n=Object.keys(t);return w(w({},e),{},{annotations:n.reduce((function(n,o){return n[o]=t[o][e.replacement],n}),{})})};const k={state:{name:"Pleroma FE",registrationOpen:!0,server:"http://localhost:4040/",textlimit:5e3,themeData:void 0,vapidPublicKey:void 0,alwaysShowSubjectInput:!0,defaultAvatar:"/images/avi.png",defaultBanner:"/images/banner.png",background:"/static/aurora_borealis.jpg",collapseMessageWithSubject:!1,greentext:!1,useAtIcon:!1,mentionLinkDisplay:"short",mentionLinkShowTooltip:!0,mentionLinkShowAvatar:!1,mentionLinkFadeDomain:!0,mentionLinkShowYous:!1,mentionLinkBoldenYou:!0,hideFilteredStatuses:!1,hideMutedPosts:!1,hideMutedThreads:!0,hideWordFilteredPosts:!1,hidePostStats:!1,hideBotIndication:!1,hideSitename:!1,hideUserStats:!1,muteBotStatuses:!1,modalOnRepeat:!1,modalOnUnfollow:!1,modalOnBlock:!0,modalOnMute:!1,modalOnDelete:!0,modalOnLogout:!0,modalOnApproveFollow:!1,modalOnDenyFollow:!1,modalOnRemoveUserFromFollowers:!1,loginMethod:"password",logo:"/static/logo.svg",logoMargin:".2em",logoMask:!0,logoLeft:!1,disableUpdateNotification:!1,minimalScopesMode:!1,nsfwCensorImage:void 0,postContentType:"text/plain",redirectRootLogin:"/main/friends",redirectRootNoLogin:"/main/all",scopeCopy:!0,showFeaturesPanel:!0,showInstanceSpecificPanel:!1,sidebarRight:!1,subjectLineBehavior:"email",theme:"pleroma-dark",virtualScrolling:!0,sensitiveByDefault:!1,conversationDisplay:"linear",conversationTreeAdvanced:!1,conversationOtherRepliesButton:"below",conversationTreeFadeAncestors:!1,maxDepthInThread:6,autocompleteSelect:!1,customEmoji:[],customEmojiFetched:!1,emoji:{},emojiFetched:!1,unicodeEmojiAnnotations:{},pleromaBackend:!0,postFormats:[],restrictedNicknames:[],safeDM:!0,knownDomains:[],birthdayRequired:!1,birthdayMinAge:0,shoutAvailable:!1,pleromaChatMessagesAvailable:!1,pleromaCustomEmojiReactionsAvailable:!1,gopherAvailable:!1,mediaProxyAvailable:!1,suggestionsEnabled:!1,suggestionsWeb:"",quotingAvailable:!1,instanceSpecificPanelContent:"",tos:"",backendVersion:"",frontendVersion:"",pollsAvailable:!1,pollLimits:{max_options:4,max_option_chars:255,min_expiration:60,max_expiration:86400}},mutations:{setInstanceOption:function(e,t){var n=t.name,o=t.value;void 0!==o&&(e[n]=o)},setKnownDomains:function(e,t){e.knownDomains=t},setUnicodeEmojiAnnotations:function(e,t){var n=t.lang,o=t.annotations;e.unicodeEmojiAnnotations[n]=o}},getters:{instanceDefaultConfig:function(e){return f.Oi.map((function(t){return[t,e[t]]})).reduce((function(e,t){var n=(0,c.Z)(t,2),o=n[0],r=n[1];return w(w({},e),{},(0,d.Z)({},o,r))}),{})},groupedCustomEmojis:function(e){return e.customEmoji.reduce((function(e,t){return function(e){var t=e.tags.filter((function(e){return e.startsWith("pack:")})).map((function(e){var t=e.slice(5);return{id:"custom-".concat(t),text:t}}));return t.length?t:[{id:"unpacked"}]}(t).forEach((function(n){var o=n.id,r=n.text;e[o]||(e[o]={id:o,text:r,image:t.imageUrl,emojis:[]}),e[o].emojis.push(t)})),e}),{})},standardEmojiList:function(e){return b.map((function(t){return(e.emoji[t]||[]).map((function(t){return _(t,e.unicodeEmojiAnnotations)}))})).reduce((function(e,t){return e.concat(t)}),[])},standardEmojiGroupList:function(e){return b.map((function(t){return{id:t,emojis:(e.emoji[t]||[]).map((function(t){return _(t,e.unicodeEmojiAnnotations)}))}}))},instanceDomain:function(e){return new URL(e.server).hostname},remoteInteractionLink:function(e){var t=(e.server.endsWith("/")?e.server.slice(0,-1):e.server)+"/main/ostatus";return function(e){var n=e.statusId,o=e.nickname;return n?"".concat(t,"?status_id=").concat(n):"".concat(t,"?nickname=").concat(o)}}},actions:{setInstanceOption:function(e,t){var n=e.commit,o=e.dispatch,r=t.name,i=t.value;switch(n("setInstanceOption",{name:r,value:i}),r){case"name":o("setPageTitle");break;case"shoutAvailable":i&&o("initializeSocket");break;case"theme":o("setTheme",i)}},getStaticEmoji:function(e){return(0,o.Z)(i().mark((function t(){var o,r,s;return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return o=e.commit,t.prev=1,t.next=4,n.e(3687).then(n.t.bind(n,13315,19));case 4:r=t.sent.default,s=Object.keys(r).reduce((function(e,t){return e[t]=r[t].map((function(e){return{displayText:e.slug,imageUrl:!1,replacement:e.emoji}})),e}),{}),o("setInstanceOption",{name:"emoji",value:(i=s,a=void 0,(a=i.symbols).push.apply(a,(0,l.Z)(y)),i)}),t.next=13;break;case 9:t.prev=9,t.t0=t.catch(1),console.warn("Can't load static emoji"),console.warn(t.t0);case 13:case"end":return t.stop()}var i,a}),t,null,[[1,9]])})))()},loadUnicodeEmojiData:function(e,t){var n=e.commit,r=e.state,s=(0,g.ensureFinalFallback)(t);return Promise.all(s.map(function(){var e=(0,o.Z)(i().mark((function e(t){var o;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r.unicodeEmojiAnnotations[t]){e.next=11;break}return e.prev=1,e.next=4,D(t);case 4:o=e.sent,n("setUnicodeEmojiAnnotations",{lang:t,annotations:o}),e.next=11;break;case 8:e.prev=8,e.t0=e.catch(1),console.warn("Error loading unicode emoji annotations for ".concat(t,": "),e.t0);case 11:case"end":return e.stop()}}),e,null,[[1,8]])})));return function(t){return e.apply(this,arguments)}}()))},getCustomEmoji:function(e){return(0,o.Z)(i().mark((function t(){var n,o,r,s,a,u,d,p,m;return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=e.commit,o=e.state,t.prev=1,t.next=4,window.fetch("/api/pleroma/emoji.json");case 4:if(!(r=t.sent).ok){t.next=17;break}return t.next=8,r.json();case 8:s=t.sent,a=Array.isArray(s)?Object.assign.apply(Object,[{}].concat((0,l.Z)(s))):s,u=function(e,t){var n=e.toLowerCase(),o=t.toLowerCase();return n>o?1:n<o?-1:0},d=function(e,t){var n=""===e,o=""===t;return n===o?0:n&&!o?1:-1},p=function(e,t){var n=function(e){return(e.tags.filter((function(e){return e.startsWith("pack:")}))[0]||"").slice(5)},o=n(e),r=n(t);return d(o,r)||u(o,r)||u(e.displayText,t.displayText)},m=Object.entries(a).map((function(e){var t=(0,c.Z)(e,2),n=t[0],r=t[1],i=r.image_url;return{displayText:n,imageUrl:i?o.server+i:r,tags:i?r.tags.sort((function(e,t){return e>t?1:0})):["utf"],replacement:":".concat(n,": ")}})).sort(p),n("setInstanceOption",{name:"customEmoji",value:m}),t.next=18;break;case 17:throw r;case 18:t.next=24;break;case 20:t.prev=20,t.t0=t.catch(1),console.warn("Can't load custom emojis"),console.warn(t.t0);case 24:case"end":return t.stop()}}),t,null,[[1,20]])})))()},setTheme:function(e,t){var n=e.commit,o=e.rootState;n("setInstanceOption",{name:"theme",value:t}),(0,p.I3)(t).then((function(e){if(n("setInstanceOption",{name:"themeData",value:e}),!o.config.customTheme){var t=e.source;!e.theme||t&&t.themeEngineVersion===m.we?(0,p._v)(t):(0,p._v)(e.theme)}}))},fetchEmoji:function(e){var t=e.dispatch,n=e.state;n.customEmojiFetched||(n.customEmojiFetched=!0,t("getCustomEmoji")),n.emojiFetched||(n.emojiFetched=!0,t("getStaticEmoji"))},getKnownDomains:function(e){return(0,o.Z)(i().mark((function t(){var n,o,r;return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n=e.commit,o=e.rootState,t.prev=1,t.next=4,h.ZP.fetchKnownDomains({credentials:o.users.currentUser.credentials});case 4:r=t.sent,n("setKnownDomains",r),t.next=12;break;case 8:t.prev=8,t.t0=t.catch(1),console.warn("Can't load known domains"),console.warn(t.t0);case 12:case"end":return t.stop()}}),t,null,[[1,8]])})))()}}};var C=n(14176),S=n.n(C),j=n(1469),F=n.n(j),A=n(10928),O=n.n(A),E=n(8804),z=n.n(E),P=n(82492),I=n.n(P),x=n(22762),T=n.n(x),$=n(84753),B=n.n($),U=n(13311),M=n.n(U),L=n(30998),R=n.n(L),q=n(66073),N=n.n(q),Z=n(12571),W=n.n(Z),H=n(82729),V=n.n(H),K=n(52230);function G(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Y(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?G(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):G(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var J=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return{statuses:[],statusesObject:{},faves:[],visibleStatuses:[],visibleStatusesObject:{},newStatusCount:0,maxId:0,minId:0,minVisibleId:0,loading:!1,followers:[],friends:[],userId:e,flushMarker:0}},Q=function(){return{desktopNotificationSilence:!0,maxId:0,minId:Number.POSITIVE_INFINITY,data:[],idStore:{},loading:!1}},X=function(){return{allStatuses:[],allStatusesObject:{},conversationsObject:{},maxId:0,notifications:Q(),favorites:new Set,timelines:{mentions:J(),public:J(),user:J(),favorites:J(),media:J(),publicAndExternal:J(),friends:J(),tag:J(),dms:J(),bookmarks:J(),list:J()}}},ee=function(e,t,n){var o=t[n.id];return o?(I()(o,S()(n,(function(e,t){return null===e||"user"===t}))),o.attachments.splice(o.attachments.length),{item:o,new:!1}):(function(e){e.deleted=!1,e.attachments=e.attachments||[]}(n),e.push(n),t[n.id]=n,{item:n,new:!0})},te=function(e,t){var n=Number(e.id),o=Number(t.id),r=!Number.isNaN(n),i=!Number.isNaN(o);return r&&i?n>o?-1:1:r&&!i?1:!r&&i||e.id>t.id?-1:1},ne=function(e){return e.visibleStatuses=e.visibleStatuses.sort(te),e.statuses=e.statuses.sort(te),e.minVisibleId=(O()(e.visibleStatuses)||{}).id,e},oe=function(e,t){var n=ee(e.allStatuses,e.allStatusesObject,t);if(n.new){var o=n.item,r=e.conversationsObject,i=o.statusnet_conversation_id;r[i]?r[i].push(o):r[i]=[o]}return n},re=function(e,t){e.notifications.maxId=t.id>e.notifications.maxId?t.id:e.notifications.maxId,e.notifications.minId=t.id<e.notifications.minId?t.id:e.notifications.minId},ie={addNewStatuses:function(e,t){var n=t.statuses,o=t.showImmediately,r=void 0!==o&&o,i=t.timeline,s=t.user,a=void 0===s?{}:s,u=t.noIdUpdate,c=void 0!==u&&u,l=t.userId,d=t.pagination,p=void 0===d?{}:d;if(!F()(n))return!1;var m=e.allStatuses,h=e.timelines[i],f=p.maxId||(n.length>0?T()(n,"id").id:0),g=p.minId||(n.length>0?B()(n,"id").id:0),v=i&&(g>h.maxId||0===h.maxId)&&n.length>0,w=i&&(f<h.minId||0===h.minId)&&n.length>0;if(!c&&v&&(h.maxId=g),!c&&w&&(h.minId=f),"user"!==i&&"media"!==i||h.userId===l){var b=function t(n,o){var r,s=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],u=oe(e,n),c=u.item;if(u.new){if("status"===c.type&&M()(c.attentions,{id:a.id})){var l=e.timelines.mentions;h!==l&&(ee(l.statuses,l.statusesObject,c),l.newStatusCount+=1,ne(l))}if("direct"===c.visibility){var d=e.timelines.dms;ee(d.statuses,d.statusesObject,c),d.newStatusCount+=1,ne(d)}}return i&&s&&(r=ee(h.statuses,h.statusesObject,c)),i&&o?ee(h.visibleStatuses,h.visibleStatusesObject,c):i&&s&&r.new&&(h.newStatusCount+=1),c.quote&&t(c.quote,!1,!1),c},y={status:function(e){b(e,r)},edit:function(e){b(e,r)},retweet:function(e){var t=b(e.retweeted_status,!1,!1);(i&&M()(h.statuses,(function(e){return e.retweeted_status?e.id===t.id||e.retweeted_status.id===t.id:e.id===t.id}))?b(e,!1,!1):b(e,r)).retweeted_status=t},favorite:function(t){e.favorites.has(t.id)||(e.favorites.add(t.id),function(e,t){var n=M()(m,{id:e.in_reply_to_status_id});n&&(e.user.id===a.id?n.favorited=!0:n.fave_num+=1)}(t))},deletion:function(t){var n=t.uri,o=M()(m,{uri:n});o&&(function(e,t){V()(e.allStatuses,{id:t.id}),V()(e.notifications.data,(function(e){return e.action.id===t.id}));var n=t.statusnet_conversation_id;e.conversationsObject[n]&&V()(e.conversationsObject[n],{id:t.id})}(e,o),i&&(V()(h.statuses,{uri:n}),V()(h.visibleStatuses,{uri:n})))},follow:function(e){},default:function(e){console.log("unknown status type"),console.log(e)}};N()(n,(function(e){var t=e.type;(y[t]||y.default)(e)})),i&&"bookmarks"!==i&&ne(h)}},addNewNotifications:function(e,t){var n=t.dispatch,o=t.notifications,r=(t.older,t.visibleNotificationTypes,t.rootGetters,t.newNotificationSideEffects);N()(o,(function(t){if(!(0,K.nU)(t))return console.error("Invalid notification:",t),void re(e,t);(0,K.Gr)(t.type)&&(t.action=oe(e,t.action).item,t.status=t.status&&oe(e,t.status).item),"pleroma:report"===t.type&&n("addReport",t.report),"pleroma:emoji_reaction"===t.type&&n("fetchEmojiReactionsBy",t.status.id),e.notifications.idStore.hasOwnProperty(t.id)?t.seen&&(e.notifications.idStore[t.id].seen=!0):(re(e,t),e.notifications.data.push(t),e.notifications.idStore[t.id]=t,r(t))}))},removeStatus:function(e,t){var n=t.timeline,o=t.userId,r=e.timelines[n];o&&(V()(r.statuses,{user:{id:o}}),V()(r.visibleStatuses,{user:{id:o}}),r.minVisibleId=r.visibleStatuses.length>0?O()(r.visibleStatuses).id:0,r.maxId=r.statuses.length>0?z()(r.statuses).id:0)},showNewStatuses:function(e,t){var n=t.timeline,o=e.timelines[n];o.newStatusCount=0,o.visibleStatuses=W()(o.statuses,0,50),o.minVisibleId=O()(o.visibleStatuses).id,o.minId=o.minVisibleId,o.visibleStatusesObject={},N()(o.visibleStatuses,(function(e){o.visibleStatusesObject[e.id]=e}))},resetStatuses:function(e){var t=X();Object.entries(t).forEach((function(t){var n=(0,c.Z)(t,2),o=n[0],r=n[1];e[o]=r}))},clearTimeline:function(e,t){var n=t.timeline,o=t.excludeUserId,r=void 0!==o&&o?e.timelines[n].userId:void 0;e.timelines[n]=J(r)},clearNotifications:function(e){e.notifications=Q()},setFavorited:function(e,t){var n=t.status,o=t.value,r=e.allStatusesObject[n.id];r.favorited!==o&&(o?r.fave_num++:r.fave_num--),r.favorited=o},setFavoritedConfirm:function(e,t){var n=t.status,o=t.user,r=e.allStatusesObject[n.id];r.favorited=n.favorited,r.fave_num=n.fave_num;var i=R()(r.favoritedBy,{id:o.id});-1===i||r.favorited?-1===i&&r.favorited&&r.favoritedBy.push(o):r.favoritedBy.splice(i,1)},setMutedStatus:function(e,t){var n=e.allStatusesObject[t.id];n.thread_muted=t.thread_muted,void 0!==n.thread_muted&&e.conversationsObject[n.statusnet_conversation_id].forEach((function(e){e.thread_muted=n.thread_muted}))},setRetweeted:function(e,t){var n=t.status,o=t.value,r=e.allStatusesObject[n.id];r.repeated!==o&&(o?r.repeat_num++:r.repeat_num--),r.repeated=o},setRetweetedConfirm:function(e,t){var n=t.status,o=t.user,r=e.allStatusesObject[n.id];r.repeated=n.repeated,r.repeat_num=n.repeat_num;var i=R()(r.rebloggedBy,{id:o.id});-1===i||r.repeated?-1===i&&r.repeated&&r.rebloggedBy.push(o):r.rebloggedBy.splice(i,1)},setBookmarked:function(e,t){var n=t.status,o=t.value;e.allStatusesObject[n.id].bookmarked=o},setBookmarkedConfirm:function(e,t){var n=t.status;e.allStatusesObject[n.id].bookmarked=n.bookmarked},setDeleted:function(e,t){var n=t.status,o=e.allStatusesObject[n.id];o&&(o.deleted=!0)},setManyDeleted:function(e,t){Object.values(e.allStatusesObject).forEach((function(e){t(e)&&(e.deleted=!0)}))},setLoading:function(e,t){var n=t.timeline,o=t.value;e.timelines[n].loading=o},setNsfw:function(e,t){var n=t.id,o=t.nsfw;e.allStatusesObject[n].nsfw=o},setNotificationsLoading:function(e,t){var n=t.value;e.notifications.loading=n},setNotificationsSilence:function(e,t){var n=t.value;e.notifications.desktopNotificationSilence=n},markNotificationsAsSeen:function(e){N()(e.notifications.data,(function(e){e.seen=!0}))},markSingleNotificationAsSeen:function(e,t){var n=t.id,o=M()(e.notifications.data,(function(e){return e.id===n}));o&&(o.seen=!0)},dismissNotification:function(e,t){var n=t.id;e.notifications.data=e.notifications.data.filter((function(e){return e.id!==n}))},dismissNotifications:function(e,t){var n=t.finder;e.notifications.data=e.notifications.data.filter((function(e){return n}))},updateNotification:function(e,t){var n=t.id,o=t.updater,r=M()(e.notifications.data,(function(e){return e.id===n}));r&&o(r)},queueFlush:function(e,t){var n=t.timeline,o=t.id;e.timelines[n].flushMarker=o},queueFlushAll:function(e){Object.keys(e.timelines).forEach((function(t){e.timelines[t].flushMarker=e.timelines[t].maxId}))},addRepeats:function(e,t){var n=t.id,o=t.rebloggedByUsers,r=t.currentUser,i=e.allStatusesObject[n];i.rebloggedBy=o.filter((function(e){return e})),i.repeat_num=i.rebloggedBy.length,i.repeated=!!i.rebloggedBy.find((function(e){var t=e.id;return r.id===t}))},addFavs:function(e,t){var n=t.id,o=t.favoritedByUsers,r=t.currentUser,i=e.allStatusesObject[n];i.favoritedBy=o.filter((function(e){return e})),i.fave_num=i.favoritedBy.length,i.favorited=!!i.favoritedBy.find((function(e){var t=e.id;return r.id===t}))},addEmojiReactionsBy:function(e,t){var n=t.id,o=t.emojiReactions;t.currentUser,e.allStatusesObject[n].emoji_reactions=o},addOwnReaction:function(e,t){var n=t.id,o=t.emoji,r=t.currentUser,i=e.allStatusesObject[n],s=R()(i.emoji_reactions,{name:o}),a=i.emoji_reactions[s]||{name:o,count:0,accounts:[]},u=Y(Y({},a),{},{count:a.count+1,me:!0,accounts:[].concat((0,l.Z)(a.accounts),[r])});s>=0?i.emoji_reactions[s]=u:i.emoji_reactions=[].concat((0,l.Z)(i.emoji_reactions),[u])},removeOwnReaction:function(e,t){var n=t.id,o=t.emoji,r=t.currentUser,i=e.allStatusesObject[n],s=R()(i.emoji_reactions,{name:o});if(!(s<0)){var a=i.emoji_reactions[s],u=a.accounts||[],c=Y(Y({},a),{},{count:a.count-1,me:!1,accounts:u.filter((function(e){return e.id!==r.id}))});c.count>0?i.emoji_reactions[s]=c:i.emoji_reactions=i.emoji_reactions.filter((function(e){return e.name!==o}))}},updateStatusWithPoll:function(e,t){var n=t.id,o=t.poll;e.allStatusesObject[n].poll=o},setVirtualHeight:function(e,t){var n=t.statusId,o=t.height;e.allStatusesObject[n].virtualHeight=o}},se={state:X(),actions:{addNewStatuses:function(e,t){var n=e.rootState,o=e.commit,r=t.statuses,i=t.showImmediately,s=void 0!==i&&i,a=t.timeline,u=void 0!==a&&a,c=t.noIdUpdate,l=void 0!==c&&c,d=t.userId,p=t.pagination;o("addNewStatuses",{statuses:r,showImmediately:s,timeline:u,noIdUpdate:l,user:n.users.currentUser,userId:d,pagination:p})},addNewNotifications:function(e,t){var n=t.notifications,o=t.older;(0,e.commit)("addNewNotifications",{dispatch:e.dispatch,notifications:n,older:o,rootGetters:e.rootGetters,newNotificationSideEffects:function(t){(0,K.nJ)(e,t)}})},setNotificationsLoading:function(e,t){e.rootState,(0,e.commit)("setNotificationsLoading",{value:t.value})},setNotificationsSilence:function(e,t){e.rootState,(0,e.commit)("setNotificationsSilence",{value:t.value})},fetchStatus:function(e,t){var n=e.rootState,o=e.dispatch;return n.api.backendInteractor.fetchStatus({id:t}).then((function(e){return o("addNewStatuses",{statuses:[e]})}))},fetchStatusSource:function(e,t){var n=e.rootState;return e.dispatch,h.ZP.fetchStatusSource({id:t.id,credentials:n.users.currentUser.credentials})},fetchStatusHistory:function(e,t){return e.rootState,e.dispatch,h.ZP.fetchStatusHistory({status:t})},deleteStatus:function(e,t){var n=e.rootState,o=e.commit,r=e.dispatch;h.ZP.deleteStatus({id:t.id,credentials:n.users.currentUser.credentials}).then((function(e){o("setDeleted",{status:t})})).catch((function(e){r("pushGlobalNotice",{level:"error",messageKey:"status.delete_error",messageArgs:[e.message],timeout:5e3})}))},deleteStatusById:function(e,t){var n=e.rootState;(0,e.commit)("setDeleted",{status:n.statuses.allStatusesObject[t]})},markStatusesAsDeleted:function(e,t){(0,e.commit)("setManyDeleted",t)},favorite:function(e,t){var n=e.rootState,o=e.commit;o("setFavorited",{status:t,value:!0}),n.api.backendInteractor.favorite({id:t.id}).then((function(e){return o("setFavoritedConfirm",{status:e,user:n.users.currentUser})}))},unfavorite:function(e,t){var n=e.rootState,o=e.commit;o("setFavorited",{status:t,value:!1}),n.api.backendInteractor.unfavorite({id:t.id}).then((function(e){return o("setFavoritedConfirm",{status:e,user:n.users.currentUser})}))},fetchPinnedStatuses:function(e,t){var n=e.rootState,o=e.dispatch;n.api.backendInteractor.fetchPinnedStatuses({id:t}).then((function(e){return o("addNewStatuses",{statuses:e,timeline:"user",userId:t,showImmediately:!0,noIdUpdate:!0})}))},pinStatus:function(e,t){var n=e.rootState,o=e.dispatch;return n.api.backendInteractor.pinOwnStatus({id:t}).then((function(e){return o("addNewStatuses",{statuses:[e]})}))},unpinStatus:function(e,t){var n=e.rootState,o=e.dispatch;n.api.backendInteractor.unpinOwnStatus({id:t}).then((function(e){return o("addNewStatuses",{statuses:[e]})}))},muteConversation:function(e,t){var n=e.rootState,o=e.commit;return n.api.backendInteractor.muteConversation({id:t}).then((function(e){return o("setMutedStatus",e)}))},unmuteConversation:function(e,t){var n=e.rootState,o=e.commit;return n.api.backendInteractor.unmuteConversation({id:t}).then((function(e){return o("setMutedStatus",e)}))},retweet:function(e,t){var n=e.rootState,o=e.commit;o("setRetweeted",{status:t,value:!0}),n.api.backendInteractor.retweet({id:t.id}).then((function(e){return o("setRetweetedConfirm",{status:e.retweeted_status,user:n.users.currentUser})}))},unretweet:function(e,t){var n=e.rootState,o=e.commit;o("setRetweeted",{status:t,value:!1}),n.api.backendInteractor.unretweet({id:t.id}).then((function(e){return o("setRetweetedConfirm",{status:e,user:n.users.currentUser})}))},bookmark:function(e,t){var n=e.rootState,o=e.commit;o("setBookmarked",{status:t,value:!0}),n.api.backendInteractor.bookmarkStatus({id:t.id}).then((function(e){o("setBookmarkedConfirm",{status:e})}))},unbookmark:function(e,t){var n=e.rootState,o=e.commit;o("setBookmarked",{status:t,value:!1}),n.api.backendInteractor.unbookmarkStatus({id:t.id}).then((function(e){o("setBookmarkedConfirm",{status:e})}))},queueFlush:function(e,t){e.rootState,(0,e.commit)("queueFlush",{timeline:t.timeline,id:t.id})},queueFlushAll:function(e){e.rootState,(0,e.commit)("queueFlushAll")},markNotificationsAsSeen:function(e){var t=e.rootState;(0,e.commit)("markNotificationsAsSeen"),h.ZP.markNotificationsAsSeen({id:t.statuses.notifications.maxId,credentials:t.users.currentUser.credentials})},markSingleNotificationAsSeen:function(e,t){var n=e.rootState,o=e.commit,r=t.id;o("markSingleNotificationAsSeen",{id:r}),h.ZP.markNotificationsAsSeen({single:!0,id:r,credentials:n.users.currentUser.credentials})},dismissNotificationLocal:function(e,t){e.rootState,(0,e.commit)("dismissNotification",{id:t.id})},dismissNotification:function(e,t){var n=e.rootState,o=e.commit,r=t.id;o("dismissNotification",{id:r}),n.api.backendInteractor.dismissNotification({id:r})},updateNotification:function(e,t){e.rootState,(0,e.commit)("updateNotification",{id:t.id,updater:t.updater})},fetchFavsAndRepeats:function(e,t){var n=e.rootState,o=e.commit;Promise.all([n.api.backendInteractor.fetchFavoritedByUsers({id:t}),n.api.backendInteractor.fetchRebloggedByUsers({id:t})]).then((function(e){var r=(0,c.Z)(e,2),i=r[0],s=r[1];o("addFavs",{id:t,favoritedByUsers:i,currentUser:n.users.currentUser}),o("addRepeats",{id:t,rebloggedByUsers:s,currentUser:n.users.currentUser})}))},reactWithEmoji:function(e,t){var n=e.rootState,o=e.dispatch,r=e.commit,i=t.id,s=t.emoji,a=n.users.currentUser;a&&(r("addOwnReaction",{id:i,emoji:s,currentUser:a}),n.api.backendInteractor.reactWithEmoji({id:i,emoji:s}).then((function(e){o("fetchEmojiReactionsBy",i)})))},unreactWithEmoji:function(e,t){var n=e.rootState,o=e.dispatch,r=e.commit,i=t.id,s=t.emoji,a=n.users.currentUser;a&&(r("removeOwnReaction",{id:i,emoji:s,currentUser:a}),n.api.backendInteractor.unreactWithEmoji({id:i,emoji:s}).then((function(e){o("fetchEmojiReactionsBy",i)})))},fetchEmojiReactionsBy:function(e,t){var n=e.rootState,o=e.commit;return n.api.backendInteractor.fetchEmojiReactions({id:t}).then((function(e){o("addEmojiReactionsBy",{id:t,emojiReactions:e,currentUser:n.users.currentUser})}))},fetchFavs:function(e,t){var n=e.rootState,o=e.commit;n.api.backendInteractor.fetchFavoritedByUsers({id:t}).then((function(e){return o("addFavs",{id:t,favoritedByUsers:e,currentUser:n.users.currentUser})}))},fetchRepeats:function(e,t){var n=e.rootState,o=e.commit;n.api.backendInteractor.fetchRebloggedByUsers({id:t}).then((function(e){return o("addRepeats",{id:t,rebloggedByUsers:e,currentUser:n.users.currentUser})}))},search:function(e,t){var n=t.q,o=t.resolve,r=t.limit,i=t.offset,s=t.following,a=t.type;return e.rootState.api.backendInteractor.search2({q:n,resolve:o,limit:r,offset:i,following:s,type:a}).then((function(t){return e.commit("addNewUsers",t.accounts),e.commit("addNewUsers",t.statuses.map((function(e){return e.user})).filter((function(e){return e}))),e.commit("addNewStatuses",{statuses:t.statuses}),t}))},setVirtualHeight:function(e,t){(0,e.commit)("setVirtualHeight",{statusId:t.statusId,height:t.height})}},mutations:ie};const ae=se;var ue={setLists:function(e,t){e.allLists=t},setList:function(e,t){var n=t.listId,o=t.title;e.allListsObject[n]||(e.allListsObject[n]={accountIds:[]}),e.allListsObject[n].title=o;var r=M()(e.allLists,{id:n});r?r.title=o:e.allLists.push({id:n,title:o})},setListAccounts:function(e,t){var n=t.listId,o=t.accountIds;e.allListsObject[n]||(e.allListsObject[n]={accountIds:[]}),e.allListsObject[n].accountIds=o},addListAccount:function(e,t){var n=t.listId,o=t.accountId;e.allListsObject[n]||(e.allListsObject[n]={accountIds:[]}),e.allListsObject[n].accountIds.push(o)},removeListAccount:function(e,t){var n=t.listId,o=t.accountId;e.allListsObject[n]||(e.allListsObject[n]={accountIds:[]});var r=e.allListsObject[n].accountIds,i=new Set(r);i.delete(o),e.allListsObject[n].accountIds=(0,l.Z)(i)},deleteList:function(e,t){var n=t.listId;delete e.allListsObject[n],V()(e.allLists,(function(e){return e.id===n}))}},ce={state:{allLists:[],allListsObject:{}},mutations:ue,actions:{setLists:function(e,t){(0,e.commit)("setLists",t)},createList:function(e,t){var n=e.rootState,o=e.commit,r=t.title;return n.api.backendInteractor.createList({title:r}).then((function(e){return o("setList",{listId:e.id,title:r}),e}))},fetchList:function(e,t){var n=e.rootState,o=e.commit,r=t.listId;return n.api.backendInteractor.getList({listId:r}).then((function(e){return o("setList",{listId:e.id,title:e.title})}))},fetchListAccounts:function(e,t){var n=e.rootState,o=e.commit,r=t.listId;return n.api.backendInteractor.getListAccounts({listId:r}).then((function(e){return o("setListAccounts",{listId:r,accountIds:e})}))},setList:function(e,t){var n=e.rootState,o=e.commit,r=t.listId,i=t.title;n.api.backendInteractor.updateList({listId:r,title:i}),o("setList",{listId:r,title:i})},setListAccounts:function(e,t){var n=e.rootState,o=e.commit,r=t.listId,i=t.accountIds,s=n.lists.allListsObject[r].accountIds||[],a=i.filter((function(e){return!s.includes(e)})),u=s.filter((function(e){return!i.includes(e)}));o("setListAccounts",{listId:r,accountIds:i}),a.length>0&&n.api.backendInteractor.addAccountsToList({listId:r,accountIds:a}),u.length>0&&n.api.backendInteractor.removeAccountsFromList({listId:r,accountIds:u})},addListAccount:function(e,t){var n=e.rootState,o=e.commit,r=t.listId,i=t.accountId;return n.api.backendInteractor.addAccountsToList({listId:r,accountIds:[i]}).then((function(e){return o("addListAccount",{listId:r,accountId:i}),e}))},removeListAccount:function(e,t){var n=e.rootState,o=e.commit,r=t.listId,i=t.accountId;return n.api.backendInteractor.removeAccountsFromList({listId:r,accountIds:[i]}).then((function(e){return o("removeListAccount",{listId:r,accountId:i}),e}))},deleteList:function(e,t){var n=e.rootState,o=e.commit,r=t.listId;n.api.backendInteractor.deleteList({listId:r}),o("deleteList",{listId:r})}},getters:{findListTitle:function(e){return function(t){if(e.allListsObject[t])return e.allListsObject[t].title}},findListAccounts:function(e){return function(t){return(0,l.Z)(e.allListsObject[t].accountIds)}}}};const le=ce;var de=n(71002),pe=n(44908),me=n.n(pe),he=n(57043),fe=n.n(he),ge=n(30236),ve=n.n(ge),we=n(35161),be=n.n(we),ye=n(39693),De=n.n(ye),_e=n(68929),ke=n.n(_e),Ce=n(22626),Se=function(e){var t=e.store,n=e.credentials,o=e.timeline,r=void 0===o?"friends":o,i=e.older,s=void 0!==i&&i,a=e.showImmediately,u=void 0!==a&&a,c=e.userId,l=void 0!==c&&c,d=e.listId,p=void 0!==d&&d,m=e.tag,f=void 0!==m&&m,g=e.until,v=e.since,w={timeline:r,credentials:n},b=t.rootState||t.state,y=t.getters,D=b.statuses.timelines[ke()(r)],_=y.mergedConfig,k=_.hideMutedPosts,C=_.replyVisibility,S=!!b.users.currentUser;s?w.until=g||D.minId:void 0===v?w.since=D.maxId:null!==v&&(w.since=v),w.userId=l,w.listId=p,w.tag=f,w.withMuted=!k,S&&["friends","public","publicAndExternal"].includes(r)&&(w.replyVisibility=C);var j=D.statuses.length;return h.ZP.fetchTimeline(w).then((function(e){if(e.errors)throw new Error("".concat(e.status," ").concat(e.statusText));var n=e.data,o=e.pagination;return!s&&n.length>=20&&!D.loading&&j>0&&t.dispatch("queueFlush",{timeline:r,id:D.maxId}),function(e){var t=e.store,n=e.statuses,o=e.timeline,r=e.showImmediately,i=e.userId,s=e.listId,a=e.pagination,u=ke()(o);t.dispatch("addNewStatuses",{timeline:u,userId:i,listId:s,statuses:n,showImmediately:r,pagination:a})}({store:t,statuses:n,timeline:r,showImmediately:u,userId:l,listId:p,pagination:o}),{statuses:n,pagination:o}})).catch((function(e){t.dispatch("pushGlobalNotice",{level:"error",messageKey:"timeline.error",messageArgs:[e.message],timeout:5e3})}))},je={fetchAndUpdate:Se,startFetching:function(e){var t=e.timeline,n=void 0===t?"friends":t,o=e.credentials,r=e.store,i=e.userId,s=void 0!==i&&i,a=e.listId,u=void 0!==a&&a,c=e.tag,l=void 0!==c&&c,d=(r.rootState||r.state).statuses.timelines[ke()(n)],p=0===d.visibleStatuses.length;return d.userId=s,d.listId=u,Se({timeline:n,credentials:o,store:r,showImmediately:p,userId:s,listId:u,tag:l}),(0,Ce.F)((function(){return Se({timeline:n,credentials:o,store:r,userId:s,listId:u,tag:l})}),1e4)}};const Fe=je;var Ae=n(15568);const Oe=function(e){var t=e.credentials,n=e.store,o=function(){return function(e){var t=e.store,n=e.credentials;return h.ZP.fetchFollowRequests({credentials:n}).then((function(e){t.commit("setFollowRequests",e),t.commit("addNewUsers",e)}),(function(){})).catch((function(){}))}({credentials:t,store:n})};return o(),(0,Ce.F)(o,1e4)};var Ee={startFetching:function(e){var t=e.credentials,n=e.store,o=function(){return function(e){var t=e.store,n=e.credentials;return h.ZP.fetchLists({credentials:n}).then((function(e){t.commit("setLists",e)}),(function(){})).catch((function(){}))}({credentials:t,store:n})};return o(),(0,Ce.F)(o,24e4)}};const ze=Ee;function Pe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Ie(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Pe(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Pe(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}const xe=function(e){return Ie(Ie({startFetchingTimeline:function(t){var n=t.timeline,o=t.store,r=t.userId,i=void 0!==r&&r,s=t.listId,a=void 0!==s&&s,u=t.tag;return Fe.startFetching({timeline:n,store:o,credentials:e,userId:i,listId:a,tag:u})},fetchTimeline:function(t){return Fe.fetchAndUpdate(Ie(Ie({},t),{},{credentials:e}))},startFetchingNotifications:function(t){var n=t.store;return Ae.Z.startFetching({store:n,credentials:e})},fetchNotifications:function(t){return Ae.Z.fetchAndUpdate(Ie(Ie({},t),{},{credentials:e}))},startFetchingFollowRequests:function(t){var n=t.store;return Oe({store:n,credentials:e})},startFetchingLists:function(t){var n=t.store;return ze.startFetching({store:n,credentials:e})},startUserSocket:function(t){var n=t.store.rootState.instance.server.replace("http","ws")+(0,h.pR)({credentials:e,stream:"user"});return(0,h.ro)({url:n,id:"User"})}},Object.entries(h.ZP).reduce((function(t,n){var o=(0,c.Z)(n,2),r=o[0],i=o[1];return Ie(Ie({},t),{},(0,d.Z)({},r,(function(t){return i(Ie({credentials:e},t))})))}),{})),{},{verifyCredentials:h.ZP.verifyCredentials})};var Te=function(){return window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth},$e=function(){return window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight},Be=n(54061),Ue=n.n(Be),Me="".concat(window.location.origin,"/oauth-callback"),Le=function(e){var t=e.clientId,n=e.clientSecret,o=e.instance,r=e.commit;if(t&&n)return Promise.resolve({clientId:t,clientSecret:n});var i="".concat(o,"/api/v1/apps"),s=new window.FormData;return s.append("client_name","PleromaFE_".concat(window.___pleromafe_commit_hash,"_").concat((new Date).toISOString())),s.append("redirect_uris",Me),s.append("scopes","read write follow push admin"),window.fetch(i,{method:"POST",body:s}).then((function(e){return e.json()})).then((function(e){return{clientId:e.client_id,clientSecret:e.client_secret}})).then((function(e){return r("setClientData",e)||e}))},Re=function(e){var t=e.clientId,n=e.clientSecret,o=e.instance,r="".concat(o,"/oauth/token"),i=new window.FormData;return i.append("client_id",t),i.append("client_secret",n),i.append("grant_type","client_credentials"),i.append("redirect_uri","".concat(window.location.origin,"/oauth-callback")),window.fetch(r,{method:"POST",body:i}).then((function(e){return e.json()}))},qe={login:function(e){var t=e.instance,n={response_type:"code",client_id:e.clientId,redirect_uri:Me,scope:"read write follow push admin"},o=Ue()(n,(function(e,t,n){var o="".concat(n,"=").concat(encodeURIComponent(t));return e?"".concat(e,"&").concat(o):o}),!1),r="".concat(t,"/oauth/authorize?").concat(o);window.location.href=r},getToken:function(e){var t=e.clientId,n=e.clientSecret,o=e.instance,r=e.code,i="".concat(o,"/oauth/token"),s=new window.FormData;return s.append("client_id",t),s.append("client_secret",n),s.append("grant_type","authorization_code"),s.append("code",r),s.append("redirect_uri","".concat(window.location.origin,"/oauth-callback")),window.fetch(i,{method:"POST",body:s}).then((function(e){return e.json()}))},getTokenWithCredentials:function(e){var t=e.clientId,n=e.clientSecret,o=e.instance,r=e.username,i=e.password,s="".concat(o,"/oauth/token"),a=new window.FormData;return a.append("client_id",t),a.append("client_secret",n),a.append("grant_type","password"),a.append("username",r),a.append("password",i),window.fetch(s,{method:"POST",body:a}).then((function(e){return e.json()}))},getOrCreateApp:Le,verifyOTPCode:function(e){var t=e.app,n=e.instance,o=e.mfaToken,r=e.code,i="".concat(n,"/oauth/mfa/challenge"),s=new window.FormData;return s.append("client_id",t.client_id),s.append("client_secret",t.client_secret),s.append("mfa_token",o),s.append("code",r),s.append("challenge_type","totp"),window.fetch(i,{method:"POST",body:s}).then((function(e){return e.json()}))},verifyRecoveryCode:function(e){var t=e.app,n=e.instance,o=e.mfaToken,r=e.code,i="".concat(n,"/oauth/mfa/challenge"),s=new window.FormData;return s.append("client_id",t.client_id),s.append("client_secret",t.client_secret),s.append("mfa_token",o),s.append("code",r),s.append("challenge_type","recovery"),window.fetch(i,{method:"POST",body:s}).then((function(e){return e.json()}))},revokeToken:function(e){var t=e.app,n=e.instance,o=e.token,r="".concat(n,"/oauth/revoke"),i=new window.FormData;return i.append("client_id",t.clientId),i.append("client_secret",t.clientSecret),i.append("token",o),window.fetch(r,{method:"POST",body:i}).then((function(e){return e.json()}))}};const Ne=qe;var Ze=n(56012),We=n.n(Ze);function He(){return"serviceWorker"in navigator&&"PushManager"in window}function Ve(){return We().register().catch((function(e){return console.error("Unable to get or create a service worker.",e)}))}function Ke(e){return window.fetch("/api/v1/push/subscription/",{method:"DELETE",headers:{"Content-Type":"application/json",Authorization:"Bearer ".concat(e)}}).then((function(e){if(!e.ok)throw new Error("Bad status code from server.");return e}))}function Ge(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Ye(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ge(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ge(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Je=function e(t,n){if(F()(t)&&F()(n))return t.length=n.length,ve()(t,n,e)},Qe=function(e,t){return e.rootState.api.backendInteractor.blockUser({id:t}).then((function(n){e.commit("updateUserRelationship",[n]),e.commit("addBlockId",t),e.commit("removeStatus",{timeline:"friends",userId:t}),e.commit("removeStatus",{timeline:"public",userId:t}),e.commit("removeStatus",{timeline:"publicAndExternal",userId:t})}))},Xe=function(e,t){return e.rootState.api.backendInteractor.unblockUser({id:t}).then((function(t){return e.commit("updateUserRelationship",[t])}))},et=function(e,t){var n="object"===(0,de.Z)(t)?t.id:t,o="object"===(0,de.Z)(t)?t.expiresIn:0,r=e.state.relationships[n]||{id:n};return r.muting=!0,e.commit("updateUserRelationship",[r]),e.commit("addMuteId",n),e.rootState.api.backendInteractor.muteUser({id:n,expiresIn:o}).then((function(t){e.commit("updateUserRelationship",[t]),e.commit("addMuteId",n)}))},tt=function(e,t){var n=e.state.relationships[t]||{id:t};return n.muting=!1,e.commit("updateUserRelationship",[n]),e.rootState.api.backendInteractor.unmuteUser({id:t}).then((function(t){return e.commit("updateUserRelationship",[t])}))},nt=function(e,t){return e.rootState.api.backendInteractor.muteDomain({domain:t}).then((function(){return e.commit("addDomainMute",t)}))},ot=function(e,t){return e.rootState.api.backendInteractor.unmuteDomain({domain:t}).then((function(){return e.commit("removeDomainMute",t)}))},rt={tagUser:function(e,t){var n=t.user.id,o=t.tag,r=e.usersObject[n],i=(r.tags||[]).concat([o]);r.tags=i},untagUser:function(e,t){var n=t.user.id,o=t.tag,r=e.usersObject[n],i=(r.tags||[]).filter((function(e){return e!==o}));r.tags=i},updateRight:function(e,t){var n=t.user.id,o=t.right,r=t.value,i=e.usersObject[n],s=i.rights;s[o]=r,i.rights=s},updateActivationStatus:function(e,t){var n=t.user.id,o=t.deactivated;e.usersObject[n].deactivated=o},setCurrentUser:function(e,t){e.lastLoginName=t.screen_name,e.currentUser=ve()(e.currentUser||{},t,Je)},clearCurrentUser:function(e){e.currentUser=!1,e.lastLoginName=!1},beginLogin:function(e){e.loggingIn=!0},endLogin:function(e){e.loggingIn=!1},saveFriendIds:function(e,t){var n=t.id,o=t.friendIds,r=e.usersObject[n];r.friendIds=me()(fe()(r.friendIds||[],o))},saveFollowerIds:function(e,t){var n=t.id,o=t.followerIds,r=e.usersObject[n];r.followerIds=me()(fe()(r.followerIds||[],o))},clearFriends:function(e,t){var n=e.usersObject[t];n&&(n.friendIds=[])},clearFollowers:function(e,t){var n=e.usersObject[t];n&&(n.followerIds=[])},addNewUsers:function(e,t){N()(t,(function(t){t.relationship&&(e.relationships[t.relationship.id]=t.relationship);var n=function(e,t,n){if(!n)return!1;var o=t[n.id];return o?(ve()(o,n,Je),{item:o,new:!1}):(e.push(n),t[n.id]=n,{item:n,new:!0})}(e.users,e.usersObject,t),o=n.item;n.new&&o.screen_name&&!o.screen_name.includes("@")&&(e.usersByNameObject[o.screen_name.toLowerCase()]=o)}))},updateUserRelationship:function(e,t){t.forEach((function(t){e.relationships[t.id]=t}))},updateUserInLists:function(e,t){var n=t.id,o=t.inLists;e.usersObject[n].inLists=o},saveBlockIds:function(e,t){e.currentUser.blockIds=t},addBlockId:function(e,t){-1===e.currentUser.blockIds.indexOf(t)&&e.currentUser.blockIds.push(t)},setBlockIdsMaxId:function(e,t){e.currentUser.blockIdsMaxId=t},saveMuteIds:function(e,t){e.currentUser.muteIds=t},setMuteIdsMaxId:function(e,t){e.currentUser.muteIdsMaxId=t},addMuteId:function(e,t){-1===e.currentUser.muteIds.indexOf(t)&&e.currentUser.muteIds.push(t)},saveDomainMutes:function(e,t){e.currentUser.domainMutes=t},addDomainMute:function(e,t){-1===e.currentUser.domainMutes.indexOf(t)&&e.currentUser.domainMutes.push(t)},removeDomainMute:function(e,t){var n=e.currentUser.domainMutes.indexOf(t);-1!==n&&e.currentUser.domainMutes.splice(n,1)},setPinnedToUser:function(e,t){var n=e.usersObject[t.user.id];n.pinnedStatusIds=n.pinnedStatusIds||[];var o=n.pinnedStatusIds.indexOf(t.id);t.pinned&&-1===o?n.pinnedStatusIds.push(t.id):t.pinned||-1===o||n.pinnedStatusIds.splice(o,1)},setUserForStatus:function(e,t){t.user=e.usersObject[t.user.id]},setUserForNotification:function(e,t){"follow"!==t.type&&(t.action.user=e.usersObject[t.action.user.id]),t.from_profile=e.usersObject[t.from_profile.id]},setColor:function(e,t){var n=t.user.id,o=t.highlighted;e.usersObject[n].highlight=o},signUpPending:function(e){e.signUpPending=!0,e.signUpErrors=[]},signUpSuccess:function(e){e.signUpPending=!1},signUpFailure:function(e,t){e.signUpPending=!1,e.signUpErrors=t}},it={state:{loggingIn:!1,lastLoginName:!1,currentUser:!1,users:[],usersObject:{},usersByNameObject:{},signUpPending:!1,signUpErrors:[],relationships:{}},mutations:rt,getters:{findUser:function(e){return function(t){return e.usersObject[t]}},findUserByName:function(e){return function(t){return e.usersByNameObject[t.toLowerCase()]}},findUserByUrl:function(e){return function(t){return e.users.find((function(e){return e.statusnet_profile_url&&e.statusnet_profile_url.toLowerCase()===t.toLowerCase()}))}},relationship:function(e){return function(t){return t&&e.relationships[t]||{id:t,loading:!0}}}},actions:{fetchUserIfMissing:function(e,t){e.getters.findUser(t)||e.dispatch("fetchUser",t)},fetchUser:function(e,t){return e.rootState.api.backendInteractor.fetchUser({id:t}).then((function(t){return e.commit("addNewUsers",[t]),t}))},fetchUserByName:function(e,t){return e.rootState.api.backendInteractor.fetchUserByName({name:t}).then((function(t){return e.commit("addNewUsers",[t]),t}))},fetchUserRelationship:function(e,t){e.state.currentUser&&e.rootState.api.backendInteractor.fetchUserRelationship({id:t}).then((function(t){return e.commit("updateUserRelationship",t)}))},fetchUserInLists:function(e,t){e.state.currentUser&&e.rootState.api.backendInteractor.fetchUserInLists({id:t}).then((function(n){return e.commit("updateUserInLists",{id:t,inLists:n})}))},fetchBlocks:function(e,t){var n=(t||{}).reset,o=e.state.currentUser.blockIdsMaxId;return e.rootState.api.backendInteractor.fetchBlocks({maxId:o}).then((function(t){return n?e.commit("saveBlockIds",be()(t,"id")):be()(t,"id").map((function(t){return e.commit("addBlockId",t)})),t.length&&e.commit("setBlockIdsMaxId",O()(t).id),e.commit("addNewUsers",t),t}))},blockUser:function(e,t){return Qe(e,t)},unblockUser:function(e,t){return Xe(e,t)},removeUserFromFollowers:function(e,t){return function(e,t){return e.rootState.api.backendInteractor.removeUserFromFollowers({id:t}).then((function(t){return e.commit("updateUserRelationship",[t])}))}(e,t)},blockUsers:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Promise.all(t.map((function(t){return Qe(e,t)})))},unblockUsers:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Promise.all(t.map((function(t){return Xe(e,t)})))},editUserNote:function(e,t){return function(e,t){var n=t.id,o=t.comment;return e.rootState.api.backendInteractor.editUserNote({id:n,comment:o}).then((function(t){return e.commit("updateUserRelationship",[t])}))}(e,t)},fetchMutes:function(e,t){var n=(t||{}).reset,o=e.state.currentUser.muteIdsMaxId;return e.rootState.api.backendInteractor.fetchMutes({maxId:o}).then((function(t){return n?e.commit("saveMuteIds",be()(t,"id")):be()(t,"id").map((function(t){return e.commit("addMuteId",t)})),t.length&&e.commit("setMuteIdsMaxId",O()(t).id),e.commit("addNewUsers",t),t}))},muteUser:function(e,t){return et(e,t)},unmuteUser:function(e,t){return tt(e,t)},hideReblogs:function(e,t){return function(e,t){return e.rootState.api.backendInteractor.followUser({id:t,reblogs:!1}).then((function(t){e.commit("updateUserRelationship",[t])}))}(e,t)},showReblogs:function(e,t){return function(e,t){return e.rootState.api.backendInteractor.followUser({id:t,reblogs:!0}).then((function(t){return e.commit("updateUserRelationship",[t])}))}(e,t)},muteUsers:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Promise.all(t.map((function(t){return et(e,t)})))},unmuteUsers:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Promise.all(t.map((function(t){return tt(e,t)})))},fetchDomainMutes:function(e){return e.rootState.api.backendInteractor.fetchDomainMutes().then((function(t){return e.commit("saveDomainMutes",t),t}))},muteDomain:function(e,t){return nt(e,t)},unmuteDomain:function(e,t){return ot(e,t)},muteDomains:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Promise.all(t.map((function(t){return nt(e,t)})))},unmuteDomains:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return Promise.all(t.map((function(t){return ot(e,t)})))},fetchFriends:function(e,t){var n=e.rootState,o=e.commit,r=n.users.usersObject[t],i=O()(r.friendIds);return n.api.backendInteractor.fetchFriends({id:t,maxId:i}).then((function(e){return o("addNewUsers",e),o("saveFriendIds",{id:t,friendIds:be()(e,"id")}),e}))},fetchFollowers:function(e,t){var n=e.rootState,o=e.commit,r=n.users.usersObject[t],i=O()(r.followerIds);return n.api.backendInteractor.fetchFollowers({id:t,maxId:i}).then((function(e){return o("addNewUsers",e),o("saveFollowerIds",{id:t,followerIds:be()(e,"id")}),e}))},clearFriends:function(e,t){(0,e.commit)("clearFriends",t)},clearFollowers:function(e,t){(0,e.commit)("clearFollowers",t)},subscribeUser:function(e,t){var n=e.rootState,o=e.commit;return n.api.backendInteractor.subscribeUser({id:t}).then((function(e){return o("updateUserRelationship",[e])}))},unsubscribeUser:function(e,t){var n=e.rootState,o=e.commit;return n.api.backendInteractor.unsubscribeUser({id:t}).then((function(e){return o("updateUserRelationship",[e])}))},toggleActivationStatus:function(e,t){var n=e.rootState,o=e.commit,r=t.user;(r.deactivated?n.api.backendInteractor.activateUser:n.api.backendInteractor.deactivateUser)({user:r}).then((function(e){var t=!e.is_active;o("updateActivationStatus",{user:e,deactivated:t})}))},registerPushNotifications:function(e){var t=e.state.currentUser.credentials,n=e.rootState.instance.vapidPublicKey;!function(e,t,n,o){He()&&Ve().then((function(n){return function(e,t,n){if(!t)return Promise.reject(new Error("Web Push is disabled in config"));if(!n)return Promise.reject(new Error("VAPID public key is not found"));var o,r,i,s={userVisibleOnly:!0,applicationServerKey:(o=n,r=(o+"=".repeat((4-o.length%4)%4)).replace(/-/g,"+").replace(/_/g,"/"),i=window.atob(r),Uint8Array.from((0,l.Z)(i).map((function(e){return e.charCodeAt(0)}))))};return e.pushManager.subscribe(s)}(n,e,t)})).then((function(e){return function(e,t,n){return window.fetch("/api/v1/push/subscription/",{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer ".concat(t)},body:JSON.stringify({subscription:e,data:{alerts:{follow:n.follows,favourite:n.likes,mention:n.mentions,reblog:n.repeats,move:n.moves}}})}).then((function(e){if(!e.ok)throw new Error("Bad status code from server.");return e.json()})).then((function(e){if(!e.id)throw new Error("Bad response from server.");return e}))}(e,n,o)})).catch((function(e){return console.warn("Failed to setup Web Push Notifications: ".concat(e.message))}))}(e.rootState.config.webPushNotifications,n,t,e.rootState.config.notificationVisibility)},unregisterPushNotifications:function(e){var t;t=e.state.currentUser.credentials,He()&&Promise.all([Ke(t),Ve().then((function(e){return function(e){return e.pushManager.getSubscription().then((function(e){if(null!==e)return e.unsubscribe()}))}(e).then((function(t){return[e,t]}))})).then((function(e){var t=(0,c.Z)(e,2),n=t[0];return t[1]||console.warn("Push subscription cancellation wasn't successful, killing SW anyway..."),n.unregister().then((function(e){e||console.warn("Failed to kill SW")}))}))]).catch((function(e){return console.warn("Failed to disable Web Push Notifications: ".concat(e.message))}))},addNewUsers:function(e,t){(0,e.commit)("addNewUsers",t)},addNewStatuses:function(e,t){var n=t.statuses,o=be()(n,"user"),r=De()(be()(n,"retweeted_status.user"));e.commit("addNewUsers",o),e.commit("addNewUsers",r),N()(n,(function(t){e.commit("setUserForStatus",t),e.commit("setPinnedToUser",t)})),N()(De()(be()(n,"retweeted_status")),(function(t){e.commit("setUserForStatus",t),e.commit("setPinnedToUser",t)}))},addNewNotifications:function(e,t){var n=t.notifications,o=be()(n,"from_profile"),r=be()(n,"target").filter((function(e){return e})),i=n.map((function(e){return e.id}));e.commit("addNewUsers",o),e.commit("addNewUsers",r);var s=e.rootState.statuses.notifications.idStore,a=Object.entries(s).filter((function(e){var t=(0,c.Z)(e,2),n=t[0];return t[1],i.includes(n)})).map((function(e){var t=(0,c.Z)(e,2);return t[0],t[1]}));N()(a,(function(t){e.commit("setUserForNotification",t)}))},searchUsers:function(e,t){var n=e.rootState,o=e.commit,r=t.query;return n.api.backendInteractor.searchUsers({query:r}).then((function(e){return o("addNewUsers",e),e}))},signUp:function(e,t){return(0,o.Z)(i().mark((function n(){var o,r,s;return i().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return e.commit("signUpPending"),o=e.rootState,n.prev=2,n.next=5,o.api.backendInteractor.register({params:Ye({},t)});case 5:r=n.sent,e.commit("signUpSuccess"),e.commit("setToken",r.access_token),e.dispatch("loginUser",r.access_token),n.next=16;break;case 11:throw n.prev=11,n.t0=n.catch(2),s=n.t0.message,e.commit("signUpFailure",s),n.t0;case 16:case"end":return n.stop()}}),n,null,[[2,11]])})))()},getCaptcha:function(e){return(0,o.Z)(i().mark((function t(){return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",e.rootState.api.backendInteractor.getCaptcha());case 1:case"end":return t.stop()}}),t)})))()},logout:function(e){var t=e.rootState,n=t.oauth,o=t.instance,r=Ye(Ye({},n),{},{commit:e.commit,instance:o.server});return Ne.getOrCreateApp(r).then((function(e){var t={app:e,instance:r.instance,token:n.userToken};return Ne.revokeToken(t)})).then((function(){e.commit("clearCurrentUser"),e.dispatch("disconnectFromSocket"),e.commit("clearToken"),e.dispatch("stopFetchingTimeline","friends"),e.commit("setBackendInteractor",xe(e.getters.getToken())),e.dispatch("stopFetchingNotifications"),e.dispatch("stopFetchingLists"),e.dispatch("stopFetchingFollowRequests"),e.commit("clearNotifications"),e.commit("resetStatuses"),e.dispatch("resetChats"),e.dispatch("setLastTimeline","public-timeline"),e.dispatch("setLayoutWidth",Te()),e.dispatch("setLayoutHeight",$e()),e.commit("clearServerSideStorage")}))},loginUser:function(e,t){return new Promise((function(n,o){var r=e.commit,i=e.dispatch;r("beginLogin"),e.rootState.api.backendInteractor.verifyCredentials(t).then((function(s){if(s.error){var a=s.error;r("endLogin"),[400,401,403,422].includes(a.status)&&r("clearToken"),401===a.status?o(new Error("Wrong username or password")):o(new Error("An error occurred, please try again"))}else{var u=s;u.credentials=t,u.blockIds=[],u.muteIds=[],u.domainMutes=[],r("setCurrentUser",u),r("setServerSideStorage",u),r("addNewUsers",[u]),i("fetchEmoji"),(c=window.Notification,c?"default"===c.permission?c.requestPermission():Promise.resolve(c.permission):Promise.resolve(null)).then((function(e){return r("setNotificationPermission",e)})),r("setBackendInteractor",xe(t)),i("pushServerSideStorage"),u.token&&(i("setWsToken",u.token),i("initializeSocket")),i("startFetchingLists"),u.locked&&i("startFetchingFollowRequests"),e.getters.mergedConfig.useStreamingApi?(i("fetchTimeline",{timeline:"friends",since:null}),i("fetchNotifications",{since:null}),i("enableMastoSockets",!0).catch((function(e){console.error("Failed initializing MastoAPI Streaming socket",e)})).then((function(){i("fetchChats",{latest:!0}),setTimeout((function(){return i("setNotificationsSilence",!1)}),1e4)}))):(i("startFetchingTimeline",{timeline:"friends"}),i("startFetchingNotifications"),i("startFetchingChats")),i("fetchMutes"),i("setLayoutWidth",Te()),i("setLayoutHeight",$e()),e.rootState.api.backendInteractor.fetchFriends({id:u.id}).then((function(e){return r("addNewUsers",e)}))}var c;r("endLogin"),n()})).catch((function(e){console.log(e),r("endLogin"),o(new Error("Failed to connect to server, try again"))}))}))}}};const st=it;var at=n(36459),ut=n(87462),ct=n(44925),lt=n(64689),dt=function(e,t){if(t.lastMessage&&(e.rootState.chats.currentChatId!==t.id||document.hidden)&&e.rootState.users.currentUser.id!==t.lastMessage.account_id){var n={tag:t.lastMessage.id,title:t.account.name,icon:t.account.profile_image_url,body:t.lastMessage.content};t.lastMessage.attachment&&"image"===t.lastMessage.attachment.type&&(n.image=t.lastMessage.attachment.preview_url),(0,lt.w)(e.rootState,n)}},pt=n(61796),mt=["timeline"];function ht(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function ft(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ht(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ht(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var gt={state:{retryMultiplier:1,backendInteractor:xe(),fetchers:{},socket:null,mastoUserSocket:null,mastoUserSocketStatus:null,followRequests:[]},getters:{followRequestCount:function(e){return e.followRequests.length}},mutations:{setBackendInteractor:function(e,t){e.backendInteractor=t},addFetcher:function(e,t){var n=t.fetcherName,o=t.fetcher;e.fetchers[n]=o},removeFetcher:function(e,t){var n=t.fetcherName;t.fetcher,e.fetchers[n].stop(),delete e.fetchers[n]},setWsToken:function(e,t){e.wsToken=t},setSocket:function(e,t){e.socket=t},setFollowRequests:function(e,t){e.followRequests=t},setMastoUserSocketStatus:function(e,t){e.mastoUserSocketStatus=t},incrementRetryMultiplier:function(e){e.retryMultiplier=Math.max(++e.retryMultiplier,3)},resetRetryMultiplier:function(e){e.retryMultiplier=1}},actions:{enableMastoSockets:function(e,t){var n=e.state,o=e.dispatch,r=e.commit;if(!n.mastoUserSocket||[WebSocket.CLOSED,WebSocket.CLOSING].includes(n.mastoUserSocket.getState()))return r("setMastoUserSocketStatus",t?h._z.STARTING_INITIAL:h._z.STARTING),o("startMastoUserSocket")},disableMastoSockets:function(e){var t=e.state,n=e.dispatch,o=e.commit;if(t.mastoUserSocket)return o("setMastoUserSocketStatus",h._z.DISABLED),n("stopMastoUserSocket")},startMastoUserSocket:function(e){return new Promise((function(t,n){try{var o=e.state,r=e.commit,i=e.dispatch,s=e.rootState.statuses.timelines.friends;o.mastoUserSocket=o.backendInteractor.startUserSocket({store:e}),o.mastoUserSocket.addEventListener("message",(function(t){var n=t.detail;n&&("notification"===n.event?i("addNewNotifications",{notifications:[n.notification],older:!1}):"update"===n.event?i("addNewStatuses",{statuses:[n.status],userId:!1,showImmediately:0===s.visibleStatuses.length,timeline:"friends"}):"status.update"===n.event?i("addNewStatuses",{statuses:[n.status],userId:!1,showImmediately:n.status.id in s.visibleStatusesObject,timeline:"friends"}):"delete"===n.event?i("deleteStatusById",n.id):"pleroma:chat_update"===n.event&&setTimeout((function(){i("addChatMessages",{chatId:n.chatUpdate.id,messages:[n.chatUpdate.lastMessage]}),i("updateChat",{chat:n.chatUpdate}),dt(e,n.chatUpdate)}),100))})),o.mastoUserSocket.addEventListener("open",(function(){o.mastoUserSocketStatus!==h._z.STARTING_INITIAL&&i("pushGlobalNotice",{level:"success",messageKey:"timeline.socket_reconnected",timeout:5e3}),new Set([h._z.ERROR,h._z.DISABLED]).has(o.mastoUserSocketStatus)&&(i("stopFetchingTimeline",{timeline:"friends"}),i("stopFetchingNotifications"),i("stopFetchingChats")),r("resetRetryMultiplier"),r("setMastoUserSocketStatus",h._z.JOINED)})),o.mastoUserSocket.addEventListener("error",(function(e){var t=e.detail;console.error("Error in MastoAPI websocket:",t),i("clearOpenedChats")})),o.mastoUserSocket.addEventListener("close",(function(e){var t=e.detail,n=new Set([1e3,1001]),s=t.code;n.has(s)?(console.debug("Not restarting socket becasue of closure code ".concat(s," is in ignore list")),r("setMastoUserSocketStatus",h._z.CLOSED)):(console.warn("MastoAPI websocket disconnected, restarting. CloseEvent code: ".concat(s)),setTimeout((function(){i("startMastoUserSocket")}),1e3*o.retryMultiplier),r("incrementRetryMultiplier"),o.mastoUserSocketStatus!==h._z.ERROR&&(i("startFetchingTimeline",{timeline:"friends"}),i("startFetchingNotifications"),i("startFetchingChats"),i("pushGlobalNotice",{level:"error",messageKey:"timeline.socket_broke",messageArgs:[s],timeout:5e3})),r("setMastoUserSocketStatus",h._z.ERROR)),i("clearOpenedChats")})),t()}catch(e){n(e)}}))},stopMastoUserSocket:function(e){var t=e.state,n=e.dispatch;n("startFetchingTimeline",{timeline:"friends"}),n("startFetchingNotifications"),n("startFetchingChats"),t.mastoUserSocket.close()},startFetchingTimeline:function(e,t){var n=t.timeline,o=void 0===n?"friends":n,r=t.tag,i=void 0!==r&&r,s=t.userId,a=void 0!==s&&s,u=t.listId,c=void 0!==u&&u;if(!e.state.fetchers[o]){var l=e.state.backendInteractor.startFetchingTimeline({timeline:o,store:e,userId:a,listId:c,tag:i});e.commit("addFetcher",{fetcherName:o,fetcher:l})}},stopFetchingTimeline:function(e,t){var n=e.state.fetchers[t];n&&e.commit("removeFetcher",{fetcherName:t,fetcher:n})},fetchTimeline:function(e,t){var n=t.timeline,o=(0,ct.Z)(t,mt);e.state.backendInteractor.fetchTimeline(ft({store:e,timeline:n},o))},startFetchingNotifications:function(e){if(!e.state.fetchers.notifications){var t=e.state.backendInteractor.startFetchingNotifications({store:e});e.commit("addFetcher",{fetcherName:"notifications",fetcher:t})}},stopFetchingNotifications:function(e){var t=e.state.fetchers.notifications;t&&e.commit("removeFetcher",{fetcherName:"notifications",fetcher:t})},fetchNotifications:function(e,t){var n=(0,ut.Z)({},((0,at.Z)(t),t));e.state.backendInteractor.fetchNotifications(ft({store:e},n))},startFetchingFollowRequests:function(e){if(!e.state.fetchers.followRequests){var t=e.state.backendInteractor.startFetchingFollowRequests({store:e});e.commit("addFetcher",{fetcherName:"followRequests",fetcher:t})}},stopFetchingFollowRequests:function(e){var t=e.state.fetchers.followRequests;t&&e.commit("removeFetcher",{fetcherName:"followRequests",fetcher:t})},removeFollowRequest:function(e,t){var n=e.state.followRequests.filter((function(e){return e!==t}));e.commit("setFollowRequests",n)},startFetchingLists:function(e){if(!e.state.fetchers.lists){var t=e.state.backendInteractor.startFetchingLists({store:e});e.commit("addFetcher",{fetcherName:"lists",fetcher:t})}},stopFetchingLists:function(e){var t=e.state.fetchers.lists;t&&e.commit("removeFetcher",{fetcherName:"lists",fetcher:t})},setWsToken:function(e,t){e.commit("setWsToken",t)},initializeSocket:function(e){var t=e.dispatch,n=e.commit,o=e.state,r=e.rootState,i=o.wsToken;if(r.instance.shoutAvailable&&void 0!==i&&null===o.socket){var s=new pt.sk("/socket",{params:{token:i}});s.connect(),n("setSocket",s),t("initializeShout",s)}},disconnectFromSocket:function(e){var t=e.commit,n=e.state;n.socket&&n.socket.disconnect(),t("setSocket",null)}}};const vt=gt;var wt=n(36968),bt=n.n(wt),yt=n(27361),Dt=n.n(yt);function _t(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}var kt=function(e,t){var n=e.rootState,o=e.commit,r=t.path,i=t.value,s={};return bt()(s,r,i),n.api.backendInteractor.updateProfile({params:s}).then((function(e){o("addNewUsers",[e]),o("setCurrentUser",e)}))},Ct=function(e,t){var n=e.rootState,o=e.commit,r=t.path,i=t.value,s=t.oldValue,a={};return bt()(a,r,i),n.api.backendInteractor.updateNotificationSettings({settings:a}).then((function(e){"success"===e.status?o("confirmProfileOption",{name,value:i}):o("confirmProfileOption",{name,value:s})}))},St={defaultScope:"source.privacy",defaultNSFW:"source.sensitive",stripRichContent:{get:"source.pleroma.no_rich_text",set:"no_rich_text"},locked:"locked",acceptChatMessages:{get:"pleroma.accepts_chat_messages",set:"accepts_chat_messages"},allowFollowingMove:{get:"pleroma.allow_following_move",set:"allow_following_move"},discoverable:{get:"source.pleroma.discoverable",set:"discoverable"},hideFavorites:{get:"pleroma.hide_favorites",set:"hide_favorites"},hideFollowers:{get:"pleroma.hide_followers",set:"hide_followers"},hideFollows:{get:"pleroma.hide_follows",set:"hide_follows"},hideFollowersCount:{get:"pleroma.hide_followers_count",set:"hide_followers_count"},hideFollowsCount:{get:"pleroma.hide_follows_count",set:"hide_follows_count"},webPushHideContents:{get:"pleroma.notification_settings.hide_notification_contents",set:"hide_notification_contents",api:Ct},blockNotificationsFromStrangers:{get:"pleroma.notification_settings.block_from_strangers",set:"block_from_strangers",api:Ct}},jt={state:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?_t(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):_t(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},Object.fromEntries(Object.keys(St).map((function(e){return[e,null]})))),mutations:{confirmProfileOption:function(e,t){var n=t.name,o=t.value;bt()(e,n,o)},wipeProfileOption:function(e,t){var n=t.name;bt()(e,n,null)},wipeAllProfileOptions:function(e){Object.keys(St).forEach((function(t){bt()(e,t,null)}))},setCurrentUser:function(e,t){Object.entries(St).forEach((function(n){var o=(0,c.Z)(n,2),r=o[0],i=o[1],s=i.get,a=void 0===s?i:s;bt()(e,r,Dt()(t._original,a))}))}},actions:{setProfileOption:function(e,t){var n=e.rootState,o=e.state,r=e.commit,i=(e.dispatch,t.name),s=t.value,a=Dt()(o,i),u=St[i];if(!u)throw new Error("Invalid server-side setting");var c=u.set,l=void 0===c?u:c,d=u.api,p=void 0===d?kt:d;r("wipeProfileOption",{name:i}),p({rootState:n,commit:r},{path:l,value:s,oldValue:a}).catch((function(e){console.warn("Error setting server-side option:",e),r("confirmProfileOption",{name:i,value:a})}))},logout:function(e){(0,e.commit)("wipeAllProfileOptions")}}};const Ft=jt;var At=n(87185),Ot=n.n(At),Et=n(69579),zt=n.n(Et),Pt=n(7436),It=n.n(Pt),xt=n(7739),Tt=n.n(xt),$t=n(85564),Bt=n.n($t),Ut=n(74691),Mt=n.n(Ut),Lt=n(50361),Rt=n.n(Lt),qt=n(18446),Nt=n.n(qt),Zt=n(2262),Wt=n(48328),Ht=n(9382),Vt=(n(31934),n(95326),n(43011),n(68789),n(84131));Ht.vI.add(Vt.NBC),Wt.Z;var Kt=["_journal"],Gt=["_timestamp","_version"],Yt=["_timestamp","_version"];function Jt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Qt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Jt(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Jt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Xt=new Date("2022-08-04"),en=1001,tn={dirty:!1,flagStorage:{updateCounter:0,reset:0},prefsStorage:{_journal:[],simple:{dontShowUpdateNotifs:!1,collapseNav:!1},collections:{pinnedNavItems:["home","dms","chats"]}},raw:null,cache:null},nn=Qt(Qt({},tn.flagStorage),{},{updateCounter:1}),on=function(e,t,n){var o=e.indexOf(t),r=o+n,i=(0,l.Z)(e);return i.splice(o,1),i.splice(Mt()(r,0,i.length+1),0,t),i},rn=function(e,t){return Qt(Qt({},e),{},{_user:t,_timestamp:Date.now(),_version:1})},sn=function(e){return e._timestamp>0&&e._version>0},an=function(e){e.prefsStorage=e.prefsStorage||{simple:{},collections:{}},Object.entries(tn.prefsStorage.simple).forEach((function(t){var n=(0,c.Z)(t,2),o=n[0],r=n[1];"number"!=typeof r&&"boolean"!=typeof r&&(console.warn("Preference simple.".concat(o," as invalid type, reinitializing")),bt()(e.prefsStorage.simple,o,tn.prefsStorage.simple[o]))})),Object.entries(tn.prefsStorage.collections).forEach((function(t){var n=(0,c.Z)(t,2),o=n[0],r=n[1];Array.isArray(r)||(console.warn("Preference collections.".concat(o," as invalid type, reinitializing")),bt()(e.prefsStorage.collections,o,tn.prefsStorage.collections[o]))}))},un=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var o=Bt()(t.map((function(e){return Array.isArray(e)?e:[]}))).filter((function(e){return Object.prototype.hasOwnProperty.call(e,"path")&&Object.prototype.hasOwnProperty.call(e,"operation")&&Object.prototype.hasOwnProperty.call(e,"args")&&Object.prototype.hasOwnProperty.call(e,"timestamp")})),r=Tt()(o,"path"),i=Object.entries(r).map((function(e){var t=(0,c.Z)(e,2),n=t[0],o=t[1];if(o.sort((function(e,t){return e.timestamp>t.timestamp?1:-1})),n.startsWith("collections")){var r,i=It()(o,(function(e){return"removeFromCollection"===e.operation}));return r=i>0?o.slice(i):o,Ot()(r,(function(e,t){return e.path===t.path&&e.operation===t.operation&&"addToCollection"===e.operation&&e.args[0]===t.args[0]}))}return n.startsWith("simple")?zt()(o):o}));return Bt()(i).sort((function(e,t){return e.timestamp>t.timestamp?1:-1}))},cn={clearServerSideStorage:function(e,t){Qt({},Rt()(tn))},setServerSideStorage:function(e,t){var n=t.storage;e.raw=n;var o=e.cache;o&&o._user!==t.fqn&&(console.warn("cache belongs to another user! reinitializing local cache!"),o=null);var r=function(e,t){var n={recent:null,stale:null,needUpload:!1},o=sn(e||{}),r=sn(t||{});return!r&&o?(n.needUpload=!0,console.debug("Nothing valid stored on server, assuming cache to be source of truth"),n.recent=e,n.stale=t):!o&&r?(console.debug("Valid storage on server found, no local cache found, using live as source of truth"),n.recent=t,n.stale=e):o&&r?(console.debug("Both sources have valid data, figuring things out..."),t._timestamp===e._timestamp&&t._version===e._version?(console.debug("Same version/timestamp on both source, source of truth irrelevant"),n.recent=e,n.stale=t):(console.debug("Different timestamp, figuring out which one is more recent"),t._timestamp<e._timestamp?(n.recent=e,n.stale=t):(n.recent=t,n.stale=e))):(console.debug("Both sources are invalid, start from scratch"),n.needUpload=!0),n}(o=function(e){return e?(e._version<1&&(console.debug("Local cached data has older version, seeing if there any migrations that can be applied"),console.debug("No migrations found")),e._version>1&&(console.debug("Local cached data has newer version, seeing if there any reverse migrations that can be applied"),window._PLEROMA_HOTPATCH&&window._PLEROMA_HOTPATCH.reverseMigrations)?(console.debug("Found hotpatch migration, applying"),window._PLEROMA_HOTPATCH.reverseMigrations.call({},"serverSideStorage",{from:e._version,to:1},e)):e):e}(o),n),i=r.recent,s=r.stale,a=r.needsUpload,u=t.created_at>Xt,d=u?nn:tn.flagStorage,p=!1;if(null===i&&(console.debug("Data is empty, initializing for ".concat(u?"new":"existing"," user")),i=rn({flagStorage:Qt({},d),prefsStorage:Qt({},tn.prefsStorage)})),!a&&i&&s){console.debug("Checking if data needs merging...");var m=i,h=(m._timestamp,m._version,(0,ct.Z)(m,Gt)),f=(s._timestamp,s._version,(0,ct.Z)(s,Yt));p=!Nt()(h,f),console.debug("Data ".concat(p?"needs":"doesn't need"," merging"))}var g,v,w=function(e,t){return Array.from(new Set([].concat((0,l.Z)(Object.keys((0,Zt.IU)((e||{}).flagStorage||{}))),(0,l.Z)(Object.keys((0,Zt.IU)((t||{}).flagStorage||{}))))))}(i,s);p?(console.debug("Merging the data..."),g=function(e,t,n){return t.flagStorage?e.flagStorage?Object.fromEntries(n.map((function(n){var o=e.flagStorage[n],r=t.flagStorage[n];return[n,Number((o>r?o:r)||0)]}))):t.flagStorage:e.flagStorage}(i,s,w),an(i),an(s),v=function(e,t,n){if(!t)return e;if(!e)return t;var o=e._journal,r=(0,ct.Z)(e,Kt),i=t._journal,s=Qt({},r),a=un(i,o);return a.forEach((function(e){var t=e.path,n=(e.timestamp,e.operation),o=(e.command,e.args);if(t.startsWith("_"))console.error("journal contains entry to edit internal (starts with _) field '".concat(t,"', something is incorrect here, ignoring."));else switch(n){case"set":bt()(s,t,o[0]);break;case"addToCollection":bt()(s,t,Array.from(new Set(Dt()(s,t)).add(o[0])));break;case"removeFromCollection":var r=new Set(Dt()(s,t));r.delete(o[0]),bt()(s,t,Array.from(r));break;case"reorderCollection":var i=(0,c.Z)(o,2),a=i[0],u=i[1];bt()(s,t,on(Dt()(s,t),a,u));break;default:console.error("Unknown journal operation: '".concat(n,"', did we forget to run reverse migrations beforehand?"))}})),Qt(Qt({},s),{},{_journal:a})}(i.prefsStorage,s.prefsStorage)):(g=i.flagStorage,v=i.prefsStorage),g=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:tn.flagStorage,n=Qt({},e),o=Object.keys(e);if(e.reset>=1e3&&e.reset<=en){console.debug("Received command to trim the flags");var r=new Set(Object.keys(t));n={},o.forEach((function(t){r.has(t)&&(n[t]=e[t])})),e.reset===en&&(console.debug("Received command to reset the flags"),Object.keys(t).forEach((function(e){n[e]=0})))}else e.reset>0&&e.reset<9e3&&(console.debug("Received command to reset the flags"),o.forEach((function(e){n[e]=0})));return n.reset=0,n}(g),i.flagStorage=Qt(Qt({},d),g),i.prefsStorage=Qt(Qt({},tn.prefsStorage),v),e.dirty=p||a,e.cache=i,s&&i&&!e.dirty&&(e.cache._timestamp=Math.min(s._timestamp,i._timestamp)),e.flagStorage=e.cache.flagStorage,e.prefsStorage=e.cache.prefsStorage},setFlag:function(e,t){var n=t.flag,o=t.value;e.flagStorage[n]=o,e.dirty=!0},setPreference:function(e,t){var n=t.path,o=t.value;n.startsWith("_")?console.error("tried to edit internal (starts with _) field '".concat(n,"', ignoring.")):(bt()(e.prefsStorage,n,o),e.prefsStorage._journal=[].concat((0,l.Z)(e.prefsStorage._journal),[{operation:"set",path:n,args:[o],timestamp:Date.now()}]),e.dirty=!0)},addCollectionPreference:function(e,t){var n=t.path,o=t.value;if(n.startsWith("_"))console.error("tried to edit internal (starts with _) field '".concat(n,"', ignoring."));else{var r=new Set(Dt()(e.prefsStorage,n));r.add(o),bt()(e.prefsStorage,n,(0,l.Z)(r)),e.prefsStorage._journal=[].concat((0,l.Z)(e.prefsStorage._journal),[{operation:"addToCollection",path:n,args:[o],timestamp:Date.now()}]),e.dirty=!0}},removeCollectionPreference:function(e,t){var n=t.path,o=t.value;if(n.startsWith("_"))console.error("tried to edit internal (starts with _) field '".concat(n,"', ignoring."));else{var r=new Set(Dt()(e.prefsStorage,n));r.delete(o),bt()(e.prefsStorage,n,(0,l.Z)(r)),e.prefsStorage._journal=[].concat((0,l.Z)(e.prefsStorage._journal),[{operation:"removeFromCollection",path:n,args:[o],timestamp:Date.now()}]),e.dirty=!0}},reorderCollectionPreference:function(e,t){var n=t.path,o=t.value,r=t.movement;if(n.startsWith("_"))console.error("tried to edit internal (starts with _) field '".concat(n,"', ignoring."));else{var i=Dt()(e.prefsStorage,n),s=on(i,o,r);bt()(e.prefsStorage,n,s),e.prefsStorage._journal=[].concat((0,l.Z)(e.prefsStorage._journal),[{operation:"arrangeCollection",path:n,args:[o],timestamp:Date.now()}]),e.dirty=!0}},updateCache:function(e,t){var n=t.username;e.prefsStorage._journal=un(e.prefsStorage._journal),e.cache=rn({flagStorage:(0,Zt.IU)(e.flagStorage),prefsStorage:(0,Zt.IU)(e.prefsStorage)},n)}};const ln={state:Qt({},Rt()(tn)),mutations:cn,actions:{pushServerSideStorage:function(e){var t=e.state,n=e.rootState,o=e.commit,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=r.force,s=void 0!==i&&i,a=t.dirty||s;if(console.log(a),a){o("updateCache",{username:n.users.currentUser.fqn});var u={pleroma_settings_store:{"pleroma-fe":t.cache}};n.api.backendInteractor.updateProfile({params:u}).then((function(e){o("setServerSideStorage",e),t.dirty=!1}))}}}};var dn=n(84506),pn=n(29521),mn=n.n(pn);function hn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function fn(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?hn(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):hn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var gn={frontends:[],loaded:!1,needsReboot:null,config:null,modifiedPaths:null,descriptions:null,draft:null,dbConfigEnabled:null},vn=(fn({},gn.flagStorage),{state:fn({},Rt()(gn)),mutations:{setInstanceAdminNoDbConfig:function(e){e.loaded=!1,e.dbConfigEnabled=!1},setAvailableFrontends:function(e,t){var n=t.frontends;e.frontends=n.map((function(e){return e.installedRefs=e.installed_refs,"pleroma-fe"===e.name?e.refs=["master","develop"]:e.refs=[e.ref],e}))},updateAdminSettings:function(e,t){var n=t.config,o=t.modifiedPaths;e.loaded=!0,e.dbConfigEnabled=!0,e.config=n,e.modifiedPaths=o},updateAdminDescriptions:function(e,t){var n=t.descriptions;e.descriptions=n},updateAdminDraft:function(e,t){var n=t.path,o=t.value,r=(0,c.Z)(n,3),i=[r[0],r[1],r[2]];bt()(e.draft,n,o),n.length>i.length&&bt()(e.draft,i,Rt()(Dt()(e.draft,i)))},resetAdminDraft:function(e){e.draft=Rt()(e.config)}},actions:{loadFrontendsStuff:function(e){e.state;var t=e.rootState,n=(e.dispatch,e.commit);t.api.backendInteractor.fetchAvailableFrontends().then((function(e){return n("setAvailableFrontends",{frontends:e})}))},loadAdminStuff:function(e){var t=e.state,n=e.rootState,o=e.dispatch,r=e.commit;n.api.backendInteractor.fetchInstanceDBConfig().then((function(e){e.error?400===e.error.status&&e.error.json().then((function(e){/configurable_from_database/.test(e.error)&&r("setInstanceAdminNoDbConfig")})):o("setInstanceAdminSettings",{backendDbConfig:e})})),null===t.descriptions&&n.api.backendInteractor.fetchInstanceConfigDescriptions().then((function(e){return o("setInstanceAdminDescriptions",{backendDescriptions:e})}))},setInstanceAdminSettings:function(e,t){var n=e.state,o=e.commit,r=(e.dispatch,t.backendDbConfig),i=n.config||{},s=new Set;r.configs.forEach((function(e){var t=[e.group,e.key];e.db&&e.db.forEach((function(e){return s.add([].concat(t,[e]).join(" -> "))})),bt()(i,t,function e(t){return Array.isArray(t)&&t.length>0&&t[0].tuple?t.reduce((function(t,n){return fn(fn({},t),{},(0,d.Z)({},n.tuple[0],e(n.tuple[1])))}),{}):t}(e.value))})),console.log(i[":pleroma"]),o("updateAdminSettings",{config:i,modifiedPaths:s}),o("resetAdminDraft")},setInstanceAdminDescriptions:function(e,t){e.state;var n=e.commit,o=(e.dispatch,t.backendDescriptions),r=function e(t,n,o){var r=t.children,i=t.description,s=t.label,a=t.key,u=void 0===a?"<ROOT>":a,c=t.group,l=t.suggestions,d=c?[c,u]:[u],p={description:i,label:s,suggestions:l};Array.isArray(r)&&r.forEach((function(t){e(t,0,p)})),bt()(o,d,p)},i={};o.forEach((function(e){return r(e,0,i)})),console.log(i[":pleroma"]["Pleroma.Captcha"]),n("updateAdminDescriptions",{descriptions:i})},pushAdminDraft:function(e){var t=e.rootState,n=e.state,o=(e.commit,e.dispatch),r=function e(t){return"object"!==(0,de.Z)(t)?t:Array.isArray(t)?t.map(e):Object.entries(t).map((function(e){var t=(0,c.Z)(e,2);return{tuple:[t[0],t[1]]}}))},i=Bt()(Object.entries(n.config).map((function(e){var t=(0,c.Z)(e,2),n=t[0],o=t[1];return Object.keys(o).map((function(e){return{group:n,key:e}}))}))).filter((function(e){var t=e.group,o=e.key;return!Nt()(n.config[t][o],n.draft[t][o])})).map((function(e){var t=e.group,o=e.key,i=n.config[t][o],s=n.draft[t][o],a=Object.entries(i),u=Object.entries(s);return{group:t,key:o,value:r(Object.fromEntries(mn()(u,a,Nt())))}}));t.api.backendInteractor.pushInstanceDBConfig({payload:{configs:i}}).then((function(){return t.api.backendInteractor.fetchInstanceDBConfig()})).then((function(e){return o("setInstanceAdminSettings",{backendDbConfig:e})}))},pushAdminSetting:function(e,t){var n=e.rootState,o=(e.state,e.commit,e.dispatch),r=t.path,i=t.value,s=Array.isArray(r)?r:r.split(/\./g),a=(0,dn.Z)(s),u=a[0],l=a[1],d=a.slice(2),p={};bt()(p,d,i),n.api.backendInteractor.pushInstanceDBConfig({payload:{configs:[{group:u,key:l,value:function e(t){return"object"!==(0,de.Z)(t)?t:Array.isArray(t)?t.map(e):Object.entries(t).map((function(e){var t=(0,c.Z)(e,2);return{tuple:[t[0],t[1]]}}))}(p)}]}}).then((function(){return n.api.backendInteractor.fetchInstanceDBConfig()})).then((function(e){return o("setInstanceAdminSettings",{backendDbConfig:e})}))},resetAdminSetting:function(e,t){var n=e.rootState,o=e.state,r=(e.commit,e.dispatch),i=t.path,s=i.split(/\./g),a=(0,c.Z)(s,3),u=a[0],l=a[1],d=a[2];return o.modifiedPaths.delete(i),n.api.backendInteractor.pushInstanceDBConfig({payload:{configs:[{group:u,key:l,delete:!0,subkeys:[d]}]}}).then((function(){return n.api.backendInteractor.fetchInstanceDBConfig()})).then((function(e){return r("setInstanceAdminSettings",{backendDbConfig:e})}))}}});const wn=vn,bn={state:{messages:[],channel:{state:""},joined:!1},mutations:{setChannel:function(e,t){e.channel=t},addMessage:function(e,t){e.messages.push(t),e.messages=e.messages.slice(-19,20)},setMessages:function(e,t){e.messages=t.slice(-19,20)},setJoined:function(e,t){e.joined=t}},actions:{initializeShout:function(e,t){var n=t.channel("chat:public");n.joinPush.receive("ok",(function(){e.commit("setJoined",!0)})),n.onClose((function(){e.commit("setJoined",!1)})),n.onError((function(){e.commit("setJoined",!1)})),n.on("new_msg",(function(t){e.commit("addMessage",t)})),n.on("messages",(function(t){var n=t.messages;e.commit("setMessages",n)})),n.join(),e.commit("setChannel",n)}}},yn={state:{clientId:!1,clientSecret:!1,appToken:!1,userToken:!1},mutations:{setClientData:function(e,t){var n=t.clientId,o=t.clientSecret;e.clientId=n,e.clientSecret=o},setAppToken:function(e,t){e.appToken=t},setToken:function(e,t){e.userToken=t},clearToken:function(e){e.userToken=!1,delete e.token}},getters:{getToken:function(e){return function(){return e.userToken||e.token||e.appToken}},getUserToken:function(e){return function(){return e.userToken||e.token}}}};var Dn="password",_n="token",kn="totp",Cn="recovery",Sn=function(e){e.strategy=e.initStrategy,e.settings={}};const jn={namespaced:!0,state:{settings:{},strategy:Dn,initStrategy:Dn},getters:{settings:function(e,t){return e.settings},requiredPassword:function(e,t,n){return e.strategy===Dn},requiredToken:function(e,t,n){return e.strategy===_n},requiredTOTP:function(e,t,n){return e.strategy===kn},requiredRecovery:function(e,t,n){return e.strategy===Cn}},mutations:{setInitialStrategy:function(e,t){t&&(e.initStrategy=t,e.strategy=t)},requirePassword:function(e){e.strategy=Dn},requireToken:function(e){e.strategy=_n},requireMFA:function(e,t){var n=t.settings;e.settings=n,e.strategy=kn},requireRecovery:function(e){e.strategy=Cn},requireTOTP:function(e){e.strategy=kn},abortMFA:function(e){Sn(e)}},actions:{login:function(e,t){return(0,o.Z)(i().mark((function n(){var o,r,s,a;return i().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return o=e.state,r=e.dispatch,s=e.commit,a=t.access_token,s("setToken",a,{root:!0}),n.next=5,r("loginUser",a,{root:!0});case 5:Sn(o);case 6:case"end":return n.stop()}}),n)})))()}}};var Fn=n(58394),An=new Set(["image","video","audio","flash"]),On={state:{media:[],currentIndex:0,activated:!1},mutations:{setMedia:function(e,t){e.media=t},setCurrentMedia:function(e,t){e.activated=!0,e.currentIndex=t},close:function(e){e.activated=!1}},actions:{setMedia:function(e,t){var n=e.commit,o=t.filter((function(e){var t=Fn.ZP.fileType(e.mimetype);return An.has(t)}));n("setMedia",o)},setCurrentMedia:function(e,t){(0,e.commit)("setCurrentMedia",e.state.media.indexOf(t)||0)},closeMediaViewer:function(e){(0,e.commit)("close")}}};const En=On,zn={state:{tokens:[]},actions:{fetchTokens:function(e){var t=e.rootState,n=e.commit;t.api.backendInteractor.fetchOAuthTokens().then((function(e){n("swapTokens",e)}))},revokeToken:function(e,t){var n=e.rootState,o=e.commit,r=e.state;n.api.backendInteractor.revokeOAuthToken({id:t}).then((function(e){201===e.status&&o("swapTokens",r.tokens.filter((function(e){return e.id!==t})))}))}},mutations:{swapTokens:function(e,t){e.tokens=t}}};var Pn=n(63105),In=n.n(Pn),xn={state:{reportModal:{userId:null,statuses:[],preTickedIds:[],activated:!1},reports:{}},mutations:{openUserReportingModal:function(e,t){var n=t.userId,o=t.statuses,r=t.preTickedIds;e.reportModal.userId=n,e.reportModal.statuses=o,e.reportModal.preTickedIds=r,e.reportModal.activated=!0},closeUserReportingModal:function(e){e.reportModal.activated=!1},setReportState:function(e,t){var n=t.id,o=t.state;e.reports[n].state=o},addReport:function(e,t){e.reports[t.id]=t}},actions:{openUserReportingModal:function(e,t){var n=e.rootState,o=e.commit,r=t.userId,i=t.statusIds,s=void 0===i?[]:i,a=s.map((function(e){return n.statuses.allStatusesObject[e]})),u=s,c=a.concat(In()(n.statuses.allStatuses,(function(e){return e.user.id===r&&!u.includes(e.id)})));o("openUserReportingModal",{userId:r,statuses:c,preTickedIds:u})},closeUserReportingModal:function(e){(0,e.commit)("closeUserReportingModal")},setReportState:function(e,t){var n=e.commit,o=e.dispatch,r=e.rootState,i=t.id,s=t.state,a=r.reports.reports[i].state;n("setReportState",{id:i,state:s}),r.api.backendInteractor.setReportState({id:i,state:s}).catch((function(e){console.error("Failed to set report state",e),o("pushGlobalNotice",{level:"error",messageKey:"general.generic_error_message",messageArgs:[e.message],timeout:5e3}),n("setReportState",{id:i,state:a})}))},addReport:function(e,t){(0,e.commit)("addReport",t)}}};const Tn=xn;const $n={state:{trackedPolls:{},pollsObject:{}},mutations:{mergeOrAddPoll:function(e,t){var n=e.pollsObject[t.id];t.expired=Date.now()>Date.parse(t.expires_at),e.pollsObject[t.id]=n?I()(n,t):t},trackPoll:function(e,t){var n=e.trackedPolls[t];e.trackedPolls[t]=n?n+1:1},untrackPoll:function(e,t){var n=e.trackedPolls[t];e.trackedPolls[t]=n?n-1:0}},actions:{mergeOrAddPoll:function(e,t){(0,e.commit)("mergeOrAddPoll",t)},updateTrackedPoll:function(e,t){var n=e.rootState,o=e.dispatch,r=e.commit;n.api.backendInteractor.fetchPoll({pollId:t}).then((function(e){setTimeout((function(){n.polls.trackedPolls[t]&&o("updateTrackedPoll",t)}),3e4),r("mergeOrAddPoll",e)}))},trackPoll:function(e,t){var n=e.rootState,o=e.commit,r=e.dispatch;n.polls.trackedPolls[t]||setTimeout((function(){return r("updateTrackedPoll",t)}),3e4),o("trackPoll",t)},untrackPoll:function(e,t){(0,e.commit)("untrackPoll",t)},votePoll:function(e,t){var n=e.rootState,o=e.commit,r=(t.id,t.pollId),i=t.choices;return n.api.backendInteractor.vote({pollId:r,choices:i}).then((function(e){return o("mergeOrAddPoll",e),e}))}}},Bn={state:{params:null,modalActivated:!1},mutations:{openPostStatusModal:function(e,t){e.params=t,e.modalActivated=!0},closePostStatusModal:function(e){e.modalActivated=!1},resetPostStatusModal:function(e){e.params=null}},actions:{openPostStatusModal:function(e,t){(0,e.commit)("openPostStatusModal",t)},closePostStatusModal:function(e){(0,e.commit)("closePostStatusModal")},resetPostStatusModal:function(e){(0,e.commit)("resetPostStatusModal")}}},Un={state:{params:null,modalActivated:!1},mutations:{openEditStatusModal:function(e,t){e.params=t,e.modalActivated=!0},closeEditStatusModal:function(e){e.modalActivated=!1}},actions:{openEditStatusModal:function(e,t){(0,e.commit)("openEditStatusModal",t)},closeEditStatusModal:function(e){(0,e.commit)("closeEditStatusModal")}}},Mn={state:{params:{},modalActivated:!1},mutations:{openStatusHistoryModal:function(e,t){e.params=t,e.modalActivated=!0},closeStatusHistoryModal:function(e){e.modalActivated=!1}},actions:{openStatusHistoryModal:function(e,t){(0,e.commit)("openStatusHistoryModal",t)},closeStatusHistoryModal:function(e){(0,e.commit)("closeStatusHistoryModal")}}};var Ln=n(73303),Rn=n.n(Ln),qn=n(75472),Nn=n.n(qn),Zn=n(73955),Wn=n.n(Zn),Hn=n(89734),Vn=n.n(Hn);function Kn(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return Gn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Gn(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0,r=function(){};return{s:r,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,i=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw i}}}}function Gn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}var Yn={add:function(e,t){var n=t.messages,o=t.updateMaxId,r=void 0===o||o;if(e)for(var i=function(){var t=n[s];if(t.chat_id!==e.chatId)return{v:void 0};if(t.fakeId){var o=e.idIndex[t.fakeId];if(o)return e.idIndex[t.id]&&(delete e.idIndex[t.id],e.messages=e.messages.filter((function(e){return e.id!==t.id}))),Object.assign(o,t,{error:!1}),delete o.fakeId,e.idIndex[o.id]=o,delete e.idIndex[t.fakeId],{v:void 0}}(!e.minId||!t.pending&&t.id<e.minId)&&(e.minId=t.id),(!e.maxId||t.id>e.maxId)&&r&&(e.maxId=t.id),e.idIndex[t.id]||function(e,t){if(t.idempotency_key)return e.idempotencyKeyIndex[t.idempotency_key]}(e,t)||(e.lastSeenMessageId<t.id&&e.newMessageCount++,e.idIndex[t.id]=t,e.messages.push(e.idIndex[t.id]),e.idempotencyKeyIndex[t.idempotency_key]=!0)},s=0;s<n.length;s++){var a=i();if("object"===(0,de.Z)(a))return a.v}},empty:function(e){return{idIndex:{},idempotencyKeyIndex:{},messages:[],newMessageCount:0,lastSeenMessageId:"0",chatId:e,minId:void 0,maxId:void 0}},getView:function(e){if(!e)return[];var t,n=[],o=Nn()(e.messages,["pending","id"],["asc","asc"]),r=o[0],i=o[o.length-1];if(r){var s=new Date(r.created_at);s.setHours(0,0,0,0),n.push({type:"date",date:s,id:s.getTime().toString()})}for(var a=!1,u=0;u<o.length;u++){var c=o[u],l=o[u+1],d=new Date(c.created_at);d.setHours(0,0,0,0),i&&i.date<d&&(n.push({type:"date",date:d,id:d.getTime().toString()}),i.isTail=!0,t=void 0,a=!0);var p={type:"message",data:c,date:d,id:c.id,messageChainId:t};(l&&l.account_id)!==c.account_id&&(p.isTail=!0,t=void 0),((i&&i.data&&i.data.account_id)!==c.account_id||a)&&(t=Wn()(),p.isHead=!0,p.messageChainId=t),n.push(p),i=p,a=!1}return n},deleteMessage:function(e,t){if(e){if(e.messages=e.messages.filter((function(e){return e.id!==t})),delete e.idIndex[t],e.maxId===t){var n=B()(e.messages,"id");e.maxId=n.id}if(e.minId===t){var o=T()(e.messages,"id");e.minId=o.id}}},cullOlderMessages:function(e){var t=e.messages.length,n=t-50;if(!(t<=50)){e.messages=Vn()(e.messages,["id"]),e.minId=e.messages[n].id;var o,r=Kn(e.messages);try{for(r.s();!(o=r.n()).done;){var i=o.value;i.id<e.minId&&(delete e.idIndex[i.id],delete e.idempotencyKeyIndex[i.idempotency_key])}}catch(e){r.e(e)}finally{r.f()}e.messages=e.messages.slice(n,t)}},resetNewMessageCount:function(e){e&&(e.newMessageCount=0,e.lastSeenMessageId=e.maxId)},clear:function(e){var t,n=[],o=Kn(e.messages);try{for(o.s();!(t=o.n()).done;){var r=t.value;r.error?n.push(r.id):(delete e.idIndex[r.id],delete e.idempotencyKeyIndex[r.idempotency_key])}}catch(e){o.e(e)}finally{o.f()}e.messages=e.messages.filter((function(e){return n.includes(e.id)})),e.newMessageCount=0,e.lastSeenMessageId="0",e.minId=void 0,e.maxId=void 0},handleMessageError:function(e,t,n){if(e){var o=e.idIndex[t];if(o&&(o.error=!0,o.pending=!1,!n)){var r=Nn()(e.messages,["pending","id"],["asc","desc"])[0];if(r){var i=o.id;o.id="".concat(r.id,"-").concat((new Date).getTime()),e.idIndex[o.id]=o,delete e.idIndex[i]}}}}};const Jn=Yn;var Qn=n(27742);function Xn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function eo(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Xn(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Xn(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var to={chatList:{data:[],idStore:{}},chatListFetcher:null,openedChats:(0,Zt.qj)({}),openedChatMessageServices:(0,Zt.qj)({}),fetcher:void 0,currentChatId:null,lastReadMessageId:null},no=function(e,t){return M()(e.chatList.data,{id:t})},oo={state:eo({},to),getters:{currentChat:function(e){return e.openedChats[e.currentChatId]},currentChatMessageService:function(e){return e.openedChatMessageServices[e.currentChatId]},findOpenedChatByRecipientId:function(e){return function(t){return M()(e.openedChats,(function(e){return e.account.id===t}))}},sortedChatList:function(e){return Nn()(e.chatList.data,["updated_at"],["desc"])},unreadChatCount:function(e){return Rn()(e.chatList.data,"unread")}},actions:{startFetchingChats:function(e){var t=e.dispatch,n=e.commit,o=function(){return t("fetchChats",{latest:!0})};o(),n("setChatListFetcher",{fetcher:function(){return(0,Ce.F)(o,5e3)}})},stopFetchingChats:function(e){(0,e.commit)("setChatListFetcher",{fetcher:void 0})},fetchChats:function(e){var t=e.dispatch,n=e.rootState;return e.commit,n.api.backendInteractor.chats().then((function(e){var n=e.chats;return t("addNewChats",{chats:n}),n}))},addNewChats:function(e,t){var n=t.chats,o=e.commit,r=e.dispatch,i=e.rootGetters;o("addNewUsers",n.map((function(e){return e.account})).filter((function(e){return e}))),o("addNewChats",{dispatch:r,chats:n,rootGetters:i,newChatMessageSideEffects:function(t){dt(e,t)}})},updateChat:function(e,t){(0,e.commit)("updateChat",{chat:t.chat})},startFetchingCurrentChat:function(e,t){e.commit,(0,e.dispatch)("setCurrentChatFetcher",{fetcher:t.fetcher})},setCurrentChatFetcher:function(e,t){e.rootState,(0,e.commit)("setCurrentChatFetcher",{fetcher:t.fetcher})},addOpenedChat:function(e,t){e.rootState;var n=e.commit,o=e.dispatch,r=t.chat;n("addOpenedChat",{dispatch:o,chat:(0,Qn._J)(r)}),o("addNewUsers",[r.account])},addChatMessages:function(e,t){var n=e.commit;n("addChatMessages",eo({commit:n},t))},resetChatNewMessageCount:function(e,t){(0,e.commit)("resetChatNewMessageCount",t)},clearCurrentChat:function(e,t){e.rootState;var n=e.commit;e.dispatch,n("setCurrentChatId",{chatId:void 0}),n("setCurrentChatFetcher",{fetcher:void 0})},readChat:function(e,t){var n=e.rootState,o=e.commit,r=e.dispatch,i=t.id,s=t.lastReadId,a=n.chats.lastReadMessageId!==s;r("resetChatNewMessageCount"),o("readChat",{id:i,lastReadId:s}),a&&n.api.backendInteractor.readChat({id:i,lastReadId:s})},deleteChatMessage:function(e,t){var n=e.rootState,o=e.commit;n.api.backendInteractor.deleteChatMessage(t),o("deleteChatMessage",eo({commit:o},t))},resetChats:function(e){var t=e.commit;(0,e.dispatch)("clearCurrentChat"),t("resetChats",{commit:t})},clearOpenedChats:function(e){e.rootState;var t=e.commit;e.dispatch,e.rootGetters,t("clearOpenedChats",{commit:t})},handleMessageError:function(e,t){var n=e.commit;n("handleMessageError",eo({commit:n},t))},cullOlderMessages:function(e,t){(0,e.commit)("cullOlderMessages",t)}},mutations:{setChatListFetcher:function(e,t){t.commit;var n=t.fetcher,o=e.chatListFetcher;o&&o.stop(),e.chatListFetcher=n&&n()},setCurrentChatFetcher:function(e,t){var n=t.fetcher,o=e.fetcher;o&&o.stop(),e.fetcher=n&&n()},addOpenedChat:function(e,t){t._dispatch;var n=t.chat;e.currentChatId=n.id,e.openedChats[n.id]=n,e.openedChatMessageServices[n.id]||(e.openedChatMessageServices[n.id]=Jn.empty(n.id))},setCurrentChatId:function(e,t){var n=t.chatId;e.currentChatId=n},addNewChats:function(e,t){var n=t.chats,o=t.newChatMessageSideEffects;n.forEach((function(t){var n=no(e,t.id);if(n){var r=(n.lastMessage&&n.lastMessage.id)!==(t.lastMessage&&t.lastMessage.id);n.lastMessage=t.lastMessage,n.unread=t.unread,n.updated_at=t.updated_at,r&&n.unread&&o(t)}else e.chatList.data.push(t),e.chatList.idStore[t.id]=t}))},updateChat:function(e,t){t._dispatch;var n=t.chat,o=(t._rootGetters,no(e,n.id));o&&(o.lastMessage=n.lastMessage,o.unread=n.unread,o.updated_at=n.updated_at),o||e.chatList.data.unshift(n),e.chatList.idStore[n.id]=n},deleteChat:function(e,t){t._dispatch;var n=t.id;t._rootGetters,e.chats.data=e.chats.data.filter((function(e){return e.last_status.id!==n})),e.chats.idStore=S()(e.chats.idStore,(function(e){return e.last_status.id===n}))},resetChats:function(e,t){var n=t.commit;for(var o in e.chatList={data:[],idStore:{}},e.currentChatId=null,n("setChatListFetcher",{fetcher:void 0}),e.openedChats)Jn.clear(e.openedChatMessageServices[o]),delete e.openedChats[o],delete e.openedChatMessageServices[o]},setChatsLoading:function(e,t){var n=t.value;e.chats.loading=n},addChatMessages:function(e,t){var n=t.chatId,o=t.messages,r=t.updateMaxId,i=e.openedChatMessageServices[n];i&&Jn.add(i,{messages:o.map(Qn.UB),updateMaxId:r})},deleteChatMessage:function(e,t){var n=t.chatId,o=t.messageId,r=e.openedChatMessageServices[n];r&&Jn.deleteMessage(r,o)},resetChatNewMessageCount:function(e,t){var n=e.openedChatMessageServices[e.currentChatId];Jn.resetNewMessageCount(n)},clearOpenedChats:function(e){var t=e.currentChatId;for(var n in e.openedChats)t!==n&&(Jn.clear(e.openedChatMessageServices[n]),delete e.openedChats[n],delete e.openedChatMessageServices[n])},readChat:function(e,t){var n=t.id,o=t.lastReadId;e.lastReadMessageId=o;var r=no(e,n);r&&(r.unread=0)},handleMessageError:function(e,t){var n=t.chatId,o=t.fakeId,r=t.isRetry,i=e.openedChatMessageServices[n];Jn.handleMessageError(i,o,r)},cullOlderMessages:function(e,t){Jn.cullOlderMessages(e.openedChatMessageServices[t])}}};const ro=oo;const io={state:{announcements:[],supportsAnnouncements:!0,fetchAnnouncementsTimer:void 0},mutations:{setAnnouncements:function(e,t){e.announcements=t},setAnnouncementRead:function(e,t){var n=t.id,o=t.read,r=e.announcements.findIndex((function(e){return e.id===n}));r<0||(e.announcements[r].read=o)},setFetchAnnouncementsTimer:function(e,t){e.fetchAnnouncementsTimer=t},setSupportsAnnouncements:function(e,t){e.supportsAnnouncements=t}},getters:{unreadAnnouncementCount:function(e,t,n){return n.users.currentUser?e.announcements.filter((function(e){return!(e.inactive||e.read)})).length:0}},actions:{fetchAnnouncements:function(e){if(!e.state.supportsAnnouncements)return Promise.resolve();var t=e.rootState.users.currentUser,n=t&&t.privileges.includes("announcements_manage_announcements"),r=function(){var t=(0,o.Z)(i().mark((function t(){var o,r,s,a;return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n){t.next=2;break}return t.abrupt("return",e.rootState.api.backendInteractor.fetchAnnouncements());case 2:return t.next=4,e.rootState.api.backendInteractor.adminFetchAnnouncements();case 4:return o=t.sent,t.next=7,e.rootState.api.backendInteractor.fetchAnnouncements();case 7:return r=t.sent,s=r.reduce((function(e,t){return e[t.id]=t,e}),{}),a=function(e){return s[e.id]},o.forEach((function(e){var t=a(e);t?e.read=t.read:e.inactive=!0})),t.abrupt("return",o);case 12:case"end":return t.stop()}}),t)})));return function(){return t.apply(this,arguments)}}();return r().then((function(t){e.commit("setAnnouncements",t)})).catch((function(t){if(!t||404!==t.statusCode)throw t;e.commit("setSupportsAnnouncements",!1)}))},markAnnouncementAsRead:function(e,t){return e.rootState.api.backendInteractor.dismissAnnouncement({id:t}).then((function(){e.commit("setAnnouncementRead",{id:t,read:!0})}))},startFetchingAnnouncements:function(e){if(!e.state.fetchAnnouncementsTimer){var t=setInterval((function(){return e.dispatch("fetchAnnouncements")}),3e5);return e.commit("setFetchAnnouncementsTimer",t),e.dispatch("fetchAnnouncements")}},stopFetchingAnnouncements:function(e){var t=e.state.fetchAnnouncementsTimer;e.commit("setFetchAnnouncementsTimer",void 0),clearInterval(t)},postAnnouncement:function(e,t){var n=t.content,o=t.startsAt,r=t.endsAt,i=t.allDay;return e.rootState.api.backendInteractor.postAnnouncement({content:n,startsAt:o,endsAt:r,allDay:i}).then((function(){return e.dispatch("fetchAnnouncements")}))},editAnnouncement:function(e,t){var n=t.id,o=t.content,r=t.startsAt,i=t.endsAt,s=t.allDay;return e.rootState.api.backendInteractor.editAnnouncement({id:n,content:o,startsAt:r,endsAt:i,allDay:s}).then((function(){return e.dispatch("fetchAnnouncements")}))},deleteAnnouncement:function(e,t){return e.rootState.api.backendInteractor.deleteAnnouncement({id:t}).then((function(){return e.dispatch("fetchAnnouncements")}))}}};var so=n(90308),ao=n(72378),uo=n.n(ao),co=n(69483),lo=!1,po=function(e,t){return 0===t.length?e:t.reduce((function(t,n){return bt()(t,n,Dt()(e,n)),t}),{})},mo=["markNotificationsAsSeen","clearCurrentUser","setCurrentUser","setServerSideStorage","setHighlight","setOption","setClientData","setToken","clearToken"],ho=n.n(co)();function fo(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.key,n=void 0===t?"vuex-lz":t,o=e.paths,r=void 0===o?[]:o,i=e.getState,s=void 0===i?function(e,t){return t.getItem(e)}:i,a=e.setState,u=void 0===a?function(e,t,n){return lo?n.setItem(e,t):(console.log("waiting for old state to be loaded..."),Promise.resolve())}:a,c=e.reducer,l=void 0===c?po:c,d=e.storage,p=void 0===d?ho:d,m=e.subscriber,h=void 0===m?function(e){return function(t){return e.subscribe(t)}}:m;return s(n,p).then((function(e){return function(t){try{if(null!==e&&"object"===(0,de.Z)(e)){var o=e.users||{};o.usersObject={};var i=o.users||[];N()(i,(function(e){o.usersObject[e.id]=e})),e.users=o,t.replaceState(uo()({},t.state,e))}lo=!0}catch(e){console.log("Couldn't load state"),console.error(e),lo=!0}h(t)((function(e,o){try{mo.includes(e.type)&&u(n,l(Rt()(o),r),p).then((function(n){void 0!==n&&("setOption"!==e.type&&"setCurrentUser"!==e.type||t.dispatch("settingsSaved",{success:n}))}),(function(n){"setOption"!==e.type&&"setCurrentUser"!==e.type||t.dispatch("settingsSaved",{error:n})}))}catch(e){console.log("Couldn't persist state:"),console.log(e)}}))}}))}const go=function(e){e.subscribe((function(t,n){var o=n.instance.vapidPublicKey,r=n.config.webPushNotifications,i="granted"===n.interface.notificationPermission,s=n.users.currentUser,a="setCurrentUser"===t.type,u="setInstanceOption"===t.type&&"vapidPublicKey"===t.payload.name,c="setNotificationPermission"===t.type&&"granted"===t.payload,l="setOption"===t.type&&"webPushNotifications"===t.payload.name,d="setOption"===t.type&&"notificationVisibility"===t.payload.name;if(a||u||c||l||d){if(s&&o&&i&&r)return e.dispatch("registerPushNotifications");if(l&&!r)return e.dispatch("unregisterPushNotifications")}}))};var vo=n(72617),wo=n(49963),bo=n(28339),yo=n(20425),Do=n.n(yo),_o=n(42570),ko=n(57810),Co=n(66252),So=n(3577),jo=(0,Co._)("div",{id:"app_bg_wrapper",class:"app-bg-wrapper"},null,-1),Fo=(0,Co._)("div",{class:"underlay"},null,-1),Ao=(0,Co._)("div",{id:"notifs-sidebar"},null,-1),Oo={key:0,class:"login-hint panel panel-default"},Eo={class:"user-panel"},zo={key:"user-panel-signed",class:"panel panel-default signed-in"},Po={class:"login panel panel-default"},Io={class:"panel-heading"},xo={class:"panel-body"},To={class:"form-group"},$o={for:"username"},Bo=["disabled","placeholder"],Uo={class:"form-group"},Mo={for:"password"},Lo=["disabled"],Ro={class:"form-group"},qo={key:1,class:"form-group"},No={class:"form-group"},Zo={class:"login-bottom"},Wo=["disabled"],Ho={key:0,class:"form-group"},Vo={class:"alert error"};function Ko(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Go(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ko(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ko(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Ht.vI.add(Vt.NBC);const Yo={data:function(){return{user:{},error:!1}},computed:Go(Go({isPasswordAuth:function(){return this.requiredPassword},isTokenAuth:function(){return this.requiredToken}},(0,s.rn)({registrationOpen:function(e){return e.instance.registrationOpen},instance:function(e){return e.instance},loggingIn:function(e){return e.users.loggingIn},oauth:function(e){return e.oauth}})),(0,s.Se)("authFlow",["requiredPassword","requiredToken","requiredMFA"])),methods:Go(Go(Go({},(0,s.OI)("authFlow",["requireMFA"])),(0,s.nv)({login:"authFlow/login"})),{},{submit:function(){this.isTokenAuth?this.submitToken():this.submitPassword()},submitToken:function(){var e=this.oauth,t={clientId:e.clientId,clientSecret:e.clientSecret,instance:this.instance.server,commit:this.$store.commit};Ne.getOrCreateApp(t).then((function(e){Ne.login(Go(Go({},e),t))}))},submitPassword:function(){var e=this,t={clientId:this.oauth.clientId,oauth:this.oauth,instance:this.instance.server,commit:this.$store.commit};this.error=!1,Ne.getOrCreateApp(t).then((function(n){Ne.getTokenWithCredentials(Go(Go({},n),{},{instance:t.instance,username:e.user.username,password:e.user.password})).then((function(t){t.error?"mfa_required"===t.error?e.requireMFA({settings:t}):"password_reset_required"===t.identifier?e.$router.push({name:"password-reset",params:{passwordResetRequested:!0}}):(e.error=t.error,e.focusOnPasswordInput()):e.login(t).then((function(){e.$router.push({name:"friends"})}))}))}))},clearError:function(){this.error=!1},focusOnPasswordInput:function(){var e=this.$refs.passwordInput;e.focus(),e.setSelectionRange(0,e.value.length)}})};var Jo=n(83744);const Qo=(0,Jo.Z)(Yo,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("router-link"),a=(0,Co.up)("FAIcon");return(0,Co.wg)(),(0,Co.iD)("div",Po,[(0,Co._)("div",Io,(0,So.zw)(e.$t("login.login")),1),(0,Co._)("div",xo,[(0,Co._)("form",{class:"login-form",onSubmit:t[2]||(t[2]=(0,wo.iM)((function(){return e.submit&&e.submit.apply(e,arguments)}),["prevent"]))},[e.isPasswordAuth?((0,Co.wg)(),(0,Co.iD)(Co.HY,{key:0},[(0,Co._)("div",To,[(0,Co._)("label",$o,(0,So.zw)(e.$t("login.username")),1),(0,Co.wy)((0,Co._)("input",{id:"username","onUpdate:modelValue":t[0]||(t[0]=function(t){return e.user.username=t}),disabled:e.loggingIn,class:"form-control",placeholder:e.$t("login.placeholder")},null,8,Bo),[[wo.nr,e.user.username]])]),(0,Co._)("div",Uo,[(0,Co._)("label",Mo,(0,So.zw)(e.$t("login.password")),1),(0,Co.wy)((0,Co._)("input",{id:"password",ref:"passwordInput","onUpdate:modelValue":t[1]||(t[1]=function(t){return e.user.password=t}),disabled:e.loggingIn,class:"form-control",type:"password"},null,8,Lo),[[wo.nr,e.user.password]])]),(0,Co._)("div",Ro,[(0,Co.Wm)(s,{to:{name:"password-reset"}},{default:(0,Co.w5)((function(){return[(0,Co.Uk)((0,So.zw)(e.$t("password_reset.forgot_password")),1)]})),_:1})])],64)):(0,Co.kq)("",!0),e.isTokenAuth?((0,Co.wg)(),(0,Co.iD)("div",qo,[(0,Co._)("p",null,(0,So.zw)(e.$t("login.description")),1)])):(0,Co.kq)("",!0),(0,Co._)("div",No,[(0,Co._)("div",Zo,[(0,Co._)("div",null,[e.registrationOpen?((0,Co.wg)(),(0,Co.j4)(s,{key:0,to:{name:"registration"},class:"register"},{default:(0,Co.w5)((function(){return[(0,Co.Uk)((0,So.zw)(e.$t("login.register")),1)]})),_:1})):(0,Co.kq)("",!0)]),(0,Co._)("button",{disabled:e.loggingIn,type:"submit",class:"btn button-default"},(0,So.zw)(e.$t("login.login")),9,Wo)])])],32)]),e.error?((0,Co.wg)(),(0,Co.iD)("div",Ho,[(0,Co._)("div",Vo,[(0,Co.Uk)((0,So.zw)(e.error)+" ",1),(0,Co._)("button",{class:"button-unstyled",onClick:t[3]||(t[3]=function(){return e.clearError&&e.clearError.apply(e,arguments)})},[(0,Co.Wm)(a,{class:"fa-scale-110 fa-old-padding",icon:"times"})])])])):(0,Co.kq)("",!0)])}]]);var Xo={class:"login panel panel-default"},er={class:"panel-heading"},tr={class:"panel-body"},nr={class:"form-group"},or={for:"code"},rr={class:"form-group"},ir={class:"login-bottom"},sr=(0,Co._)("br",null,null,-1),ar={type:"submit",class:"btn button-default"},ur={key:0,class:"form-group"},cr={class:"alert error"},lr={verifyOTPCode:function(e){var t=e.clientId,n=e.clientSecret,o=e.instance,r=e.mfaToken,i=e.code,s="".concat(o,"/oauth/mfa/challenge"),a=new window.FormData;return a.append("client_id",t),a.append("client_secret",n),a.append("mfa_token",r),a.append("code",i),a.append("challenge_type","totp"),window.fetch(s,{method:"POST",body:a}).then((function(e){return e.json()}))},verifyRecoveryCode:function(e){var t=e.clientId,n=e.clientSecret,o=e.instance,r=e.mfaToken,i=e.code,s="".concat(o,"/oauth/mfa/challenge"),a=new window.FormData;return a.append("client_id",t),a.append("client_secret",n),a.append("mfa_token",r),a.append("code",i),a.append("challenge_type","recovery"),window.fetch(s,{method:"POST",body:a}).then((function(e){return e.json()}))}};const dr=lr;function pr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function mr(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?pr(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):pr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Ht.vI.add(Vt.NBC);const hr={data:function(){return{code:null,error:!1}},computed:mr(mr({},(0,s.Se)({authSettings:"authFlow/settings"})),(0,s.rn)({instance:"instance",oauth:"oauth"})),methods:mr(mr(mr({},(0,s.OI)("authFlow",["requireTOTP","abortMFA"])),(0,s.nv)({login:"authFlow/login"})),{},{clearError:function(){this.error=!1},submit:function(){var e=this,t=this.oauth,n={clientId:t.clientId,clientSecret:t.clientSecret,instance:this.instance.server,mfaToken:this.authSettings.mfa_token,code:this.code};dr.verifyRecoveryCode(n).then((function(t){if(t.error)return e.error=t.error,void(e.code=null);e.login(t).then((function(){e.$router.push({name:"friends"})}))}))}})},fr=(0,Jo.Z)(hr,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("FAIcon");return(0,Co.wg)(),(0,Co.iD)("div",Xo,[(0,Co._)("div",er,(0,So.zw)(e.$t("login.heading.recovery")),1),(0,Co._)("div",tr,[(0,Co._)("form",{class:"login-form",onSubmit:t[3]||(t[3]=(0,wo.iM)((function(){return e.submit&&e.submit.apply(e,arguments)}),["prevent"]))},[(0,Co._)("div",nr,[(0,Co._)("label",or,(0,So.zw)(e.$t("login.recovery_code")),1),(0,Co.wy)((0,Co._)("input",{id:"code","onUpdate:modelValue":t[0]||(t[0]=function(t){return e.code=t}),class:"form-control"},null,512),[[wo.nr,e.code]])]),(0,Co._)("div",rr,[(0,Co._)("div",ir,[(0,Co._)("div",null,[(0,Co._)("button",{class:"button-unstyled -link",type:"button",onClick:t[1]||(t[1]=(0,wo.iM)((function(){return e.requireTOTP&&e.requireTOTP.apply(e,arguments)}),["prevent"]))},(0,So.zw)(e.$t("login.enter_two_factor_code")),1),sr,(0,Co._)("button",{class:"button-unstyled -link",type:"button",onClick:t[2]||(t[2]=(0,wo.iM)((function(){return e.abortMFA&&e.abortMFA.apply(e,arguments)}),["prevent"]))},(0,So.zw)(e.$t("general.cancel")),1)]),(0,Co._)("button",ar,(0,So.zw)(e.$t("general.verify")),1)])])],32)]),e.error?((0,Co.wg)(),(0,Co.iD)("div",ur,[(0,Co._)("div",cr,[(0,Co.Uk)((0,So.zw)(e.error)+" ",1),(0,Co._)("button",{class:"button-unstyled",onClick:t[4]||(t[4]=function(){return e.clearError&&e.clearError.apply(e,arguments)})},[(0,Co.Wm)(s,{class:"fa-scale-110 fa-old-padding",icon:"times"})])])])):(0,Co.kq)("",!0)])}]]);var gr={class:"login panel panel-default"},vr={class:"panel-heading"},wr={class:"panel-body"},br={class:"form-group"},yr={for:"code"},Dr={class:"form-group"},_r={class:"login-bottom"},kr=(0,Co._)("br",null,null,-1),Cr={type:"submit",class:"btn button-default"},Sr={key:0,class:"form-group"},jr={class:"alert error"};function Fr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Ar(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Fr(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Fr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Ht.vI.add(Vt.NBC);const Or={data:function(){return{code:null,error:!1}},computed:Ar(Ar({},(0,s.Se)({authSettings:"authFlow/settings"})),(0,s.rn)({instance:"instance",oauth:"oauth"})),methods:Ar(Ar(Ar({},(0,s.OI)("authFlow",["requireRecovery","abortMFA"])),(0,s.nv)({login:"authFlow/login"})),{},{clearError:function(){this.error=!1},submit:function(){var e=this,t=this.oauth,n={clientId:t.clientId,clientSecret:t.clientSecret,instance:this.instance.server,mfaToken:this.authSettings.mfa_token,code:this.code};dr.verifyOTPCode(n).then((function(t){if(t.error)return e.error=t.error,void(e.code=null);e.login(t).then((function(){e.$router.push({name:"friends"})}))}))}})},Er=(0,Jo.Z)(Or,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("FAIcon");return(0,Co.wg)(),(0,Co.iD)("div",gr,[(0,Co._)("div",vr,(0,So.zw)(e.$t("login.heading.totp")),1),(0,Co._)("div",wr,[(0,Co._)("form",{class:"login-form",onSubmit:t[3]||(t[3]=(0,wo.iM)((function(){return e.submit&&e.submit.apply(e,arguments)}),["prevent"]))},[(0,Co._)("div",br,[(0,Co._)("label",yr,(0,So.zw)(e.$t("login.authentication_code")),1),(0,Co.wy)((0,Co._)("input",{id:"code","onUpdate:modelValue":t[0]||(t[0]=function(t){return e.code=t}),class:"form-control"},null,512),[[wo.nr,e.code]])]),(0,Co._)("div",Dr,[(0,Co._)("div",_r,[(0,Co._)("div",null,[(0,Co._)("button",{class:"button-unstyled -link",type:"button",onClick:t[1]||(t[1]=(0,wo.iM)((function(){return e.requireRecovery&&e.requireRecovery.apply(e,arguments)}),["prevent"]))},(0,So.zw)(e.$t("login.enter_recovery_code")),1),kr,(0,Co._)("button",{class:"button-unstyled -link",type:"button",onClick:t[2]||(t[2]=(0,wo.iM)((function(){return e.abortMFA&&e.abortMFA.apply(e,arguments)}),["prevent"]))},(0,So.zw)(e.$t("general.cancel")),1)]),(0,Co._)("button",Cr,(0,So.zw)(e.$t("general.verify")),1)])])],32)]),e.error?((0,Co.wg)(),(0,Co.iD)("div",Sr,[(0,Co._)("div",jr,[(0,Co.Uk)((0,So.zw)(e.error)+" ",1),(0,Co._)("button",{class:"button-unstyled",onClick:t[4]||(t[4]=function(){return e.clearError&&e.clearError.apply(e,arguments)})},[(0,Co.Wm)(s,{size:"lg",class:"fa-scale-110 fa-old-padding",icon:"times"})])])])):(0,Co.kq)("",!0)])}]]);function zr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}const Pr={name:"AuthForm",render:function(){return(0,Co.h)((0,Co.up)(this.authForm))},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?zr(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):zr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({authForm:function(){return this.requiredTOTP?"MFATOTPForm":this.requiredRecovery?"MFARecoveryForm":"LoginForm"}},(0,s.Se)("authFlow",["requiredTOTP","requiredRecovery"])),components:{MFARecoveryForm:fr,MFATOTPForm:Er,LoginForm:Qo}};var Ir=n(45333),xr=n(20392);function Tr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}const $r={computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Tr(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Tr(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({signedIn:function(){return this.user}},(0,s.rn)({user:function(e){return e.users.currentUser}})),components:{AuthForm:Pr,PostStatusForm:Ir.Z,UserCard:xr.Z}},Br=(0,Jo.Z)($r,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("UserCard"),a=(0,Co.up)("PostStatusForm"),u=(0,Co.up)("auth-form");return(0,Co.wg)(),(0,Co.iD)("aside",Eo,[e.signedIn?((0,Co.wg)(),(0,Co.iD)("div",zo,[(0,Co.Wm)(s,{"user-id":e.user.id,"hide-bio":!0,rounded:"top"},null,8,["user-id"]),(0,Co.Wm)(a)])):((0,Co.wg)(),(0,Co.j4)(u,{key:"user-panel"}))])}]]);var Ur={class:"NavPanel"},Mr={class:"panel panel-default"},Lr={key:0,class:"panel-heading nav-panel-heading"},Rr=(0,Co._)("div",{class:"spacer"},null,-1),qr={key:1,class:"panel-body"},Nr={class:"timelines-background"},Zr={class:"timelines"},Wr={class:"timelines-background"},Hr={key:0,class:"icon iconLetter fa-scale-110 menu-icon"},Vr={class:"label"},Kr={key:0,class:"badge badge-notification"},Gr=["title","aria-pressed"],Yr=new Set(["bookmarks","dms","interactions","notifications","chat","chats","user-profile"]),Jr={home:{route:"friends",icon:"home",label:"nav.home_timeline",criteria:["!private"]},public:{route:"public-timeline",anon:!0,icon:"users",label:"nav.public_tl",criteria:["!private"]},twkn:{route:"public-external-timeline",anon:!0,icon:"globe",label:"nav.twkn",criteria:["!private","federating"]},bookmarks:{route:"bookmarks",icon:"bookmark",label:"nav.bookmarks"},favorites:{routeObject:{name:"user-profile",query:{tab:"favorites"}},icon:"star",label:"user_card.favorites"},dms:{route:"dms",icon:"envelope",label:"nav.dms"}},Qr={interactions:{route:"interactions",icon:"bell",label:"nav.interactions"},chats:{route:"chats",icon:"comments",label:"nav.chats",badgeGetter:"unreadChatCount",criteria:["chats"]},friendRequests:{route:"friend-requests",icon:"user-plus",label:"nav.friend_requests",criteria:["lockedUser"],badgeGetter:"followRequestCount"},about:{route:"about",anon:!0,icon:"info-circle",label:"nav.about"},announcements:{route:"announcements",icon:"bullhorn",label:"nav.announcements",badgeGetter:"unreadAnnouncementCount",criteria:["announcements"]}};function Xr(e,t){return e.route||e.routeObject?(n=e.routeObject?e.routeObject:{name:e.anon||t?e.route:e.anonRoute},Yr.has(n.name)&&(n.params={username:t.screen_name,name:t.screen_name}),n):null;var n}const ei={props:["to"]},ti=(0,Jo.Z)(ei,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("router-link");return n.to?((0,Co.wg)(),(0,Co.j4)(s,{key:0,to:n.to,custom:""},{default:(0,Co.w5)((function(t){return[(0,Co.WI)(e.$slots,"default",(0,So.vs)((0,Co.F4)(t)))]})),_:3},8,["to"])):(0,Co.WI)(e.$slots,"default",(0,So.vs)((0,Co.dG)({key:1},{})))}]]);function ni(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}Ht.vI.add(Vt.RP7);const oi={props:["item","showPin"],components:{OptionalRouterLink:ti},methods:{isPinned:function(e){return this.pinnedItems.has(e)},togglePin:function(e){this.isPinned(e)?this.$store.commit("removeCollectionPreference",{path:"collections.pinnedNavItems",value:e}):this.$store.commit("addCollectionPreference",{path:"collections.pinnedNavItems",value:e}),this.$store.dispatch("pushServerSideStorage")}},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ni(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ni(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({routeTo:function(){return Xr(this.item,this.currentUser)},getters:function(){return this.$store.getters}},(0,s.rn)({currentUser:function(e){return e.users.currentUser},pinnedItems:function(e){return new Set(e.serverSideStorage.prefsStorage.collections.pinnedNavItems)}}))},ri=(0,Jo.Z)(oi,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("FAIcon"),a=(0,Co.up)("OptionalRouterLink");return(0,Co.wg)(),(0,Co.j4)(a,{ass:"ass",to:e.routeTo},{default:(0,Co.w5)((function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=n.isActive,r=n.href,i=n.navigate;return[(0,Co._)("li",(0,Co.dG)({class:["NavigationEntry menu-item",{"-active":o}]},e.$attrs),[((0,Co.wg)(),(0,Co.j4)((0,Co.LL)(e.routeTo?"a":"button"),{class:"main-link button-unstyled",href:r,onClick:i},{default:(0,Co.w5)((function(){return[(0,Co._)("span",null,[e.item.icon?((0,Co.wg)(),(0,Co.j4)(s,{key:0,"fixed-width":"",class:"fa-scale-110 menu-icon",icon:e.item.icon},null,8,["icon"])):(0,Co.kq)("",!0)]),e.item.iconLetter?((0,Co.wg)(),(0,Co.iD)("span",Hr,(0,So.zw)(e.item.iconLetter),1)):(0,Co.kq)("",!0),(0,Co._)("span",Vr,(0,So.zw)(e.item.labelRaw||e.$t(e.item.label)),1)]})),_:2},1032,["href","onClick"])),(0,Co.WI)(e.$slots,"default"),e.item.badgeGetter&&e.getters[e.item.badgeGetter]?((0,Co.wg)(),(0,Co.iD)("div",Kr,(0,So.zw)(e.getters[e.item.badgeGetter]),1)):(0,Co.kq)("",!0),e.showPin&&e.currentUser?((0,Co.wg)(),(0,Co.iD)("button",{key:1,type:"button",class:"button-unstyled extra-button",title:e.$t(e.isPinned?"general.unpin":"general.pin"),"aria-pressed":!!e.isPinned,onClick:t[0]||(t[0]=(0,wo.iM)((function(t){return e.togglePin(e.item.name)}),["stop","prevent"]))},[e.showPin&&e.currentUser?((0,Co.wg)(),(0,Co.j4)(s,{key:0,"fixed-width":"",class:(0,So.C_)(["fa-scale-110",{veryfaint:!e.isPinned(e.item.name)}]),transform:e.isPinned(e.item.name)?"":"rotate-45",icon:"thumbtack"},null,8,["class","transform"])):(0,Co.kq)("",!0)],8,Gr)):(0,Co.kq)("",!0)],16)]})),_:3},8,["to"])}]]);var ii=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0,n=t.hasChats,o=t.hasAnnouncements,r=t.isFederating,i=t.isPrivate,s=t.currentUser;return e.filter((function(e){var t=e.criteria,a=e.anon,u=e.anonRoute,c=new Set(t||[]);return!(!r&&c.has("federating")||!s&&i&&c.has("!private")||!(s||a||u)||!(s&&s.locked||!c.has("lockedUser"))||!n&&c.has("chats")||!o&&c.has("announcements"))}))},si=function(e){return e.lists.allLists.map((function(e){return{name:"list-"+e.id,routeObject:{name:"lists-timeline",params:{id:e.id}},labelRaw:e.title,iconLetter:e.title[0]}}))};function ai(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}var ui={props:["showPin"],components:{NavigationEntry:ri},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ai(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ai(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},(0,s.rn)({lists:si,currentUser:function(e){return e.users.currentUser},privateMode:function(e){return e.instance.private},federating:function(e){return e.instance.federating}}))};const ci=ui,li=(0,Jo.Z)(ci,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("NavigationEntry");return(0,Co.wg)(),(0,Co.iD)("ul",null,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.lists,(function(t){return(0,Co.wg)(),(0,Co.j4)(s,{key:t.name,"show-pin":e.showPin,item:t},null,8,["show-pin","item"])})),128))])}]]);var di={class:"NavigationPins"},pi={key:1,class:"iconLetter fa-scale-110 fa-old-padding"},mi={key:2,class:"alert-dot"};function hi(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function fi(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?hi(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):hi(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Ht.vI.add(Vt.FVb,Vt.g4A,Vt.xVw,Vt.FU$,Vt.lXL,Vt.qmU,Vt.sqG,Vt.aC2,Vt.Zrf);const gi={props:["limit"],methods:{getRouteTo:function(e){return Xr(e,this.currentUser)}},computed:fi(fi({getters:function(){return this.$store.getters}},(0,s.rn)({lists:si,currentUser:function(e){return e.users.currentUser},followRequestCount:function(e){return e.api.followRequests.length},privateMode:function(e){return e.instance.private},federating:function(e){return e.instance.federating},pleromaChatMessagesAvailable:function(e){return e.instance.pleromaChatMessagesAvailable},supportsAnnouncements:function(e){return e.announcements.supportsAnnouncements},pinnedItems:function(e){return new Set(e.serverSideStorage.prefsStorage.collections.pinnedNavItems)}})),{},{pinnedList:function(){var e=this;return this.currentUser?ii([].concat((0,l.Z)(Object.entries(fi({},Jr)).filter((function(t){var n=(0,c.Z)(t,1)[0];return e.pinnedItems.has(n)})).map((function(e){var t=(0,c.Z)(e,2),n=t[0];return fi(fi({},t[1]),{},{name:n})}))),(0,l.Z)(this.lists.filter((function(t){return e.pinnedItems.has(t.name)}))),(0,l.Z)(Object.entries(fi({},Qr)).filter((function(t){var n=(0,c.Z)(t,1)[0];return e.pinnedItems.has(n)})).map((function(e){var t=(0,c.Z)(e,2),n=t[0];return fi(fi({},t[1]),{},{name:n})})))),{hasChats:this.pleromaChatMessagesAvailable,hasAnnouncements:this.supportsAnnouncements,isFederating:this.federating,isPrivate:this.privateMode,currentUser:this.currentUser}).slice(0,this.limit):ii([fi(fi({},Jr.public),{},{name:"public"}),fi(fi({},Jr.twkn),{},{name:"twkn"}),fi(fi({},Qr.about),{},{name:"about"})],{hasChats:this.pleromaChatMessagesAvailable,hasAnnouncements:this.supportsAnnouncements,isFederating:this.federating,isPrivate:this.privateMode,currentUser:this.currentUser})}})},vi=(0,Jo.Z)(gi,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("FAIcon"),a=(0,Co.up)("router-link");return(0,Co.wg)(),(0,Co.iD)("span",di,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.pinnedList,(function(t){return(0,Co.wg)(),(0,Co.j4)(a,{key:t.name,class:"pinned-item",to:e.getRouteTo(t),title:t.labelRaw||e.$t(t.label)},{default:(0,Co.w5)((function(){return[t.icon?((0,Co.wg)(),(0,Co.j4)(s,{key:0,"fixed-width":"",icon:t.icon},null,8,["icon"])):(0,Co.kq)("",!0),t.iconLetter?((0,Co.wg)(),(0,Co.iD)("span",pi,(0,So.zw)(t.iconLetter),1)):(0,Co.kq)("",!0),t.badgeGetter&&e.getters[t.badgeGetter]?((0,Co.wg)(),(0,Co.iD)("div",mi)):(0,Co.kq)("",!0)]})),_:2},1032,["to","title"])})),128))])}]]);var wi=n(66141);function bi(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function yi(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?bi(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):bi(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Ht.vI.add(Vt.FVb,Vt.g4A,Vt.xVw,Vt.FU$,Vt.ptq,Vt.mTx,Vt.lXL,Vt.qmU,Vt.sqG,Vt.aC2,Vt.Zrf,Vt.Acd);const Di={props:["forceExpand","forceEditMode"],created:function(){},components:{ListsMenuContent:li,NavigationEntry:ri,NavigationPins:vi,Checkbox:wi.Z},data:function(){return{editMode:!1,showTimelines:!1,showLists:!1,timelinesList:Object.entries(Jr).map((function(e){var t=(0,c.Z)(e,2),n=t[0];return yi(yi({},t[1]),{},{name:n})})),rootList:Object.entries(Qr).map((function(e){var t=(0,c.Z)(e,2),n=t[0];return yi(yi({},t[1]),{},{name:n})}))}},methods:{toggleTimelines:function(){this.showTimelines=!this.showTimelines},toggleLists:function(){this.showLists=!this.showLists},toggleEditMode:function(){this.editMode=!this.editMode},toggleCollapse:function(){this.$store.commit("setPreference",{path:"simple.collapseNav",value:!this.collapsed}),this.$store.dispatch("pushServerSideStorage")},isPinned:function(e){return this.pinnedItems.has(e)},togglePin:function(e){this.isPinned(e)?this.$store.commit("removeCollectionPreference",{path:"collections.pinnedNavItems",value:e}):this.$store.commit("addCollectionPreference",{path:"collections.pinnedNavItems",value:e}),this.$store.dispatch("pushServerSideStorage")}},computed:yi(yi({},(0,s.rn)({currentUser:function(e){return e.users.currentUser},followRequestCount:function(e){return e.api.followRequests.length},privateMode:function(e){return e.instance.private},federating:function(e){return e.instance.federating},pleromaChatMessagesAvailable:function(e){return e.instance.pleromaChatMessagesAvailable},supportsAnnouncements:function(e){return e.announcements.supportsAnnouncements},pinnedItems:function(e){return new Set(e.serverSideStorage.prefsStorage.collections.pinnedNavItems)},collapsed:function(e){return e.serverSideStorage.prefsStorage.simple.collapseNav}})),{},{timelinesItems:function(){return ii(Object.entries(yi({},Jr)).map((function(e){var t=(0,c.Z)(e,2),n=t[0];return yi(yi({},t[1]),{},{name:n})})),{hasChats:this.pleromaChatMessagesAvailable,hasAnnouncements:this.supportsAnnouncements,isFederating:this.federating,isPrivate:this.privateMode,currentUser:this.currentUser})},rootItems:function(){return ii(Object.entries(yi({},Qr)).map((function(e){var t=(0,c.Z)(e,2),n=t[0];return yi(yi({},t[1]),{},{name:n})})),{hasChats:this.pleromaChatMessagesAvailable,hasAnnouncements:this.supportsAnnouncements,isFederating:this.federating,isPrivate:this.privateMode,currentUser:this.currentUser})}},(0,s.Se)(["unreadChatCount","unreadAnnouncementCount"]))},_i=(0,Jo.Z)(Di,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("NavigationPins"),a=(0,Co.up)("FAIcon"),u=(0,Co.up)("NavigationEntry"),c=(0,Co.up)("router-link"),l=(0,Co.up)("ListsMenuContent");return(0,Co.wg)(),(0,Co.iD)("div",Ur,[(0,Co._)("div",Mr,[e.forceExpand?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.iD)("div",Lr,[(0,Co.Wm)(s,{limit:6}),Rr,(0,Co._)("button",{class:"button-unstyled",onClick:t[0]||(t[0]=function(){return e.toggleCollapse&&e.toggleCollapse.apply(e,arguments)})},[(0,Co.Wm)(a,{class:"navigation-chevron","fixed-width":"",icon:e.collapsed?"chevron-down":"chevron-up"},null,8,["icon"])])])),!e.collapsed||e.forceExpand?((0,Co.wg)(),(0,Co.iD)("ul",qr,[e.currentUser||!e.privateMode?((0,Co.wg)(),(0,Co.j4)(u,{key:0,"show-pin":!1,item:{icon:"stream",label:"nav.timelines"},"aria-expanded":e.showTimelines?"true":"false",onClick:e.toggleTimelines},{default:(0,Co.w5)((function(){return[(0,Co.Wm)(a,{class:"timelines-chevron","fixed-width":"",icon:e.showTimelines?"chevron-up":"chevron-down"},null,8,["icon"])]})),_:1},8,["item","aria-expanded","onClick"])):(0,Co.kq)("",!0),(0,Co.wy)((0,Co._)("div",Nr,[(0,Co._)("div",Zr,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.timelinesItems,(function(t){return(0,Co.wg)(),(0,Co.j4)(u,{key:t.name,"show-pin":e.editMode||e.forceEditMode,item:t},null,8,["show-pin","item"])})),128))])],512),[[wo.F8,e.showTimelines]]),e.currentUser?((0,Co.wg)(),(0,Co.j4)(u,{key:1,"show-pin":!1,item:{icon:"list",label:"nav.lists"},"aria-expanded":e.showLists?"true":"false",onClick:e.toggleLists},{default:(0,Co.w5)((function(){return[(0,Co.Wm)(c,{title:e.$t("lists.manage_lists"),class:"extra-button",to:{name:"lists"},onClick:t[1]||(t[1]=(0,wo.iM)((function(){}),["stop"]))},{default:(0,Co.w5)((function(){return[(0,Co.Wm)(a,{class:"extra-button","fixed-width":"",icon:"wrench"})]})),_:1},8,["title"]),(0,Co.Wm)(a,{class:"timelines-chevron","fixed-width":"",icon:e.showLists?"chevron-up":"chevron-down"},null,8,["icon"])]})),_:1},8,["item","aria-expanded","onClick"])):(0,Co.kq)("",!0),(0,Co.wy)((0,Co._)("div",Wr,[(0,Co.Wm)(l,{"show-pin":e.editMode||e.forceEditMode,class:"timelines"},null,8,["show-pin"])],512),[[wo.F8,e.showLists]]),((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.rootItems,(function(t){return(0,Co.wg)(),(0,Co.j4)(u,{key:t.name,"show-pin":e.editMode||e.forceEditMode,item:t},null,8,["show-pin","item"])})),128)),!e.forceEditMode&&e.currentUser?((0,Co.wg)(),(0,Co.j4)(u,{key:2,"show-pin":!1,item:{label:e.editMode?e.$t("nav.edit_finish"):e.$t("nav.edit_pinned"),icon:e.editMode?"check":"wrench"},onClick:e.toggleEditMode},null,8,["item","onClick"])):(0,Co.kq)("",!0)])):(0,Co.kq)("",!0)])])}]]);var ki={class:"instance-specific-panel"},Ci={class:"panel panel-default"},Si={class:"panel-body"},ji=["innerHTML"];const Fi={computed:{instanceSpecificPanelContent:function(){return this.$store.state.instance.instanceSpecificPanelContent}}},Ai=(0,Jo.Z)(Fi,[["render",function(e,t,n,o,r,i){return(0,Co.wg)(),(0,Co.iD)("div",ki,[(0,Co._)("div",Ci,[(0,Co._)("div",Si,[(0,Co._)("div",{innerHTML:e.instanceSpecificPanelContent},null,8,ji)])])])}]]);var Oi={class:"features-panel"},Ei={class:"panel panel-default base01-background"},zi={class:"panel-heading timeline-heading base02-background base04"},Pi={class:"title"},Ii={class:"panel-body features-panel"},xi={key:0},Ti={key:1},$i={key:2},Bi={key:3},Ui={key:4},Mi=n(65079);const Li={computed:{shout:function(){return this.$store.state.instance.shoutAvailable},pleromaChatMessages:function(){return this.$store.state.instance.pleromaChatMessagesAvailable},gopher:function(){return this.$store.state.instance.gopherAvailable},whoToFollow:function(){return this.$store.state.instance.suggestionsEnabled},mediaProxy:function(){return this.$store.state.instance.mediaProxyAvailable},minimalScopesMode:function(){return this.$store.state.instance.minimalScopesMode},textlimit:function(){return this.$store.state.instance.textlimit},uploadlimit:function(){return Mi.Z.fileSizeFormat(this.$store.state.instance.uploadlimit)}}},Ri=(0,Jo.Z)(Li,[["render",function(e,t,n,o,r,i){return(0,Co.wg)(),(0,Co.iD)("div",Oi,[(0,Co._)("div",Ei,[(0,Co._)("div",zi,[(0,Co._)("div",Pi,(0,So.zw)(e.$t("features_panel.title")),1)]),(0,Co._)("div",Ii,[(0,Co._)("ul",null,[e.shout?((0,Co.wg)(),(0,Co.iD)("li",xi,(0,So.zw)(e.$t("features_panel.shout")),1)):(0,Co.kq)("",!0),e.pleromaChatMessages?((0,Co.wg)(),(0,Co.iD)("li",Ti,(0,So.zw)(e.$t("features_panel.pleroma_chat_messages")),1)):(0,Co.kq)("",!0),e.gopher?((0,Co.wg)(),(0,Co.iD)("li",$i,(0,So.zw)(e.$t("features_panel.gopher")),1)):(0,Co.kq)("",!0),e.whoToFollow?((0,Co.wg)(),(0,Co.iD)("li",Bi,(0,So.zw)(e.$t("features_panel.who_to_follow")),1)):(0,Co.kq)("",!0),e.mediaProxy?((0,Co.wg)(),(0,Co.iD)("li",Ui,(0,So.zw)(e.$t("features_panel.media_proxy")),1)):(0,Co.kq)("",!0),(0,Co._)("li",null,(0,So.zw)(e.$t("features_panel.scope_options")),1),(0,Co._)("li",null,(0,So.zw)(e.$t("features_panel.text_limit"))+" = "+(0,So.zw)(e.textlimit),1),(0,Co._)("li",null,(0,So.zw)(e.$t("features_panel.upload_limit"))+" = "+(0,So.zw)(e.uploadlimit.num)+" "+(0,So.zw)(e.$t("upload.file_size_units."+e.uploadlimit.unit)),1)])])])])}]]);var qi={class:"who-to-follow-panel"},Ni={class:"panel panel-default base01-background"},Zi={class:"panel-heading timeline-heading base02-background base04"},Wi={class:"title"},Hi={class:"who-to-follow"},Vi=["src"],Ki=(0,Co._)("br",null,null,-1),Gi={class:"who-to-follow-more"},Yi=n(69983),Ji=n.n(Yi),Qi=n(4493);function Xi(e){var t=e.$store.state.users.currentUser.credentials;t&&(e.usersToFollow.forEach((function(e){e.name="Loading..."})),h.ZP.suggestions({credentials:t}).then((function(t){!function(e,t){var n=this,o=Ji()(t);e.usersToFollow.forEach((function(t,r){var i=o[r],s=i.avatar||n.$store.state.instance.defaultAvatar,a=i.acct;t.img=s,t.name=a,e.$store.state.api.backendInteractor.fetchUser({id:a}).then((function(n){n.error||(e.$store.commit("addNewUsers",[n]),t.id=n.id)}))}))}(e,t)})))}const es={data:function(){return{usersToFollow:[]}},computed:{user:function(){return this.$store.state.users.currentUser.screen_name},suggestionsEnabled:function(){return this.$store.state.instance.suggestionsEnabled}},methods:{userProfileLink:function(e,t){return(0,Qi.Z)(e,t,this.$store.state.instance.restrictedNicknames)}},watch:{user:function(e,t){this.suggestionsEnabled&&Xi(this)}},mounted:function(){var e=this;this.usersToFollow=new Array(3).fill().map((function(t){return{img:e.$store.state.instance.defaultAvatar,name:"",id:0}})),this.suggestionsEnabled&&Xi(this)}},ts=(0,Jo.Z)(es,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("router-link");return(0,Co.wg)(),(0,Co.iD)("div",qi,[(0,Co._)("div",Ni,[(0,Co._)("div",Zi,[(0,Co._)("div",Wi,(0,So.zw)(e.$t("who_to_follow.who_to_follow")),1)]),(0,Co._)("div",Hi,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.usersToFollow,(function(t){return(0,Co.wg)(),(0,Co.iD)("p",{key:t.id,class:"who-to-follow-items"},[(0,Co._)("img",{src:t.img},null,8,Vi),(0,Co.Wm)(s,{to:e.userProfileLink(t.id,t.name)},{default:(0,Co.w5)((function(){return[(0,Co.Uk)((0,So.zw)(t.name),1)]})),_:2},1032,["to"]),Ki])})),128)),(0,Co._)("p",Gi,[(0,Co.Wm)(s,{to:{name:"who-to-follow"}},{default:(0,Co.w5)((function(){return[(0,Co.Uk)((0,So.zw)(e.$t("who_to_follow.more")),1)]})),_:1})])])])])}]]);var ns={key:0,class:"shout-panel"},os={class:"panel panel-default"},rs={class:"title"},is={class:"shout-window"},ss={class:"shout-avatar"},as=["src"],us={class:"shout-content"},cs=(0,Co._)("br",null,null,-1),ls={class:"shout-text"},ds={class:"shout-input"},ps={key:1,class:"shout-panel"},ms={class:"panel panel-default"},hs={class:"title"};Ht.vI.add(Vt.Acd,Vt.NBC);const fs={props:["floating"],data:function(){return{currentMessage:"",channel:null,collapsed:!0}},computed:{messages:function(){return this.$store.state.shout.messages}},methods:{submit:function(e){this.$store.state.shout.channel.push("new_msg",{text:e},1e4),this.currentMessage=""},togglePanel:function(){this.collapsed=!this.collapsed},userProfileLink:function(e){return(0,Qi.Z)(e.id,e.username,this.$store.state.instance.restrictedNicknames)}},watch:{messages:function(e){var t=this.$el.querySelector(".chat-window");t&&t.scrollTop+t.offsetHeight+20>t.scrollHeight&&this.$nextTick((function(){t&&(t.scrollTop=t.scrollHeight-t.offsetHeight)}))}}},gs=(0,Jo.Z)(fs,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("FAIcon"),a=(0,Co.up)("router-link");return e.collapsed&&e.floating?((0,Co.wg)(),(0,Co.iD)("div",ps,[(0,Co._)("div",ms,[(0,Co._)("div",{class:"panel-heading -stub timeline-heading shout-heading",onClick:t[3]||(t[3]=(0,wo.iM)((function(){return e.togglePanel&&e.togglePanel.apply(e,arguments)}),["stop","prevent"]))},[(0,Co._)("div",hs,[(0,Co.Wm)(s,{class:"icon",icon:"bullhorn"}),(0,Co.Uk)(" "+(0,So.zw)(e.$t("shoutbox.title")),1)])])])])):((0,Co.wg)(),(0,Co.iD)("div",ns,[(0,Co._)("div",os,[(0,Co._)("div",{class:(0,So.C_)(["panel-heading timeline-heading",{"shout-heading":e.floating}]),onClick:t[0]||(t[0]=(0,wo.iM)((function(){return e.togglePanel&&e.togglePanel.apply(e,arguments)}),["stop","prevent"]))},[(0,Co._)("div",rs,[(0,Co.Uk)((0,So.zw)(e.$t("shoutbox.title"))+" ",1),e.floating?((0,Co.wg)(),(0,Co.j4)(s,{key:0,icon:"times",class:"close-icon"})):(0,Co.kq)("",!0)])],2),(0,Co._)("div",is,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.messages,(function(t){return(0,Co.wg)(),(0,Co.iD)("div",{key:t.id,class:"shout-message"},[(0,Co._)("span",ss,[(0,Co._)("img",{src:t.author.avatar},null,8,as)]),(0,Co._)("div",us,[(0,Co.Wm)(a,{class:"shout-name",to:e.userProfileLink(t.author)},{default:(0,Co.w5)((function(){return[(0,Co.Uk)((0,So.zw)(t.author.username),1)]})),_:2},1032,["to"]),cs,(0,Co._)("span",ls,(0,So.zw)(t.text),1)])])})),128))]),(0,Co._)("div",ds,[(0,Co.wy)((0,Co._)("textarea",{"onUpdate:modelValue":t[1]||(t[1]=function(t){return e.currentMessage=t}),class:"shout-input-textarea",rows:"1",onKeyup:t[2]||(t[2]=(0,wo.D2)((function(t){return e.submit(e.currentMessage)}),["enter"]))},null,544),[[wo.nr,e.currentMessage]])])])]))}]]);var vs=["src","alt","title"],ws=["src","alt","title"],bs=["title"],ys=["title"],Ds=["title"],_s={key:6,class:"description"},ks={class:"counter"},Cs={key:7,class:"loading-spinner"},Ss=n(32140),js=n(34133),Fs=n(782);const As={methods:{setTransform:function(e){var t=e.scale,n=e.x,o=e.y;this.$el.setTransform({scale:t,x:n,y:o})}},created:function(){Fs.Z}},Os=(0,Jo.Z)(As,[["render",function(e,t,n,o,r,i){return(0,Co.wg)(),(0,Co.iD)("pinch-zoom",(0,Co.dG)({class:"pinch-zoom-parent"},e.$attrs,(0,Co.mx)(e.$listeners,!0)),[(0,Co.WI)(e.$slots,"default")],16)}]]);var Es=n(15671),zs=n(43144),Ps=function(e,t){return[t[0]-e[0],t[1]-e[1]]},Is=function(e){return[(t=e.touches[0]).screenX,t.screenY];var t},xs=function(e){return[e.clientX,e.clientY]},Ts=function(e){return Math.sqrt(e[0]*e[0]+e[1]*e[1])},$s=function(e){return[e[1],-e[0]]},Bs=function(e,t){return e[0]*t[0]+e[1]*t[1]},Us=function(e,t){var n=Bs(e,t)/Bs(t,t);return[n*t[0],n*t[1]]};const Ms={DIRECTION_LEFT:[-1,0],DIRECTION_RIGHT:[1,0],DIRECTION_UP:[0,-1],DIRECTION_DOWN:[0,1],swipeGesture:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:30,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;return{direction:e,onSwipe:t,threshold:n,perpendicularTolerance:o,_startPos:[0,0],_swiping:!1}},beginSwipe:function(e,t){t._startPos=Is(e),t._swiping=!0},updateSwipe:function(e,t){if(t._swiping){var n=Ps(t._startPos,Is(e));if(!(Ts(n)<t.threshold||Bs(n,t.direction)<0)){var o=Us(n,t.direction),r=$s(t.direction),i=Us(n,r);Ts(o)*t.perpendicularTolerance<Ts(i)||(t.onSwipe(),t._swiping=!1)}}},SwipeAndClickGesture:function(){function e(t){var n=t.direction,o=t.swipePreviewCallback,r=t.swipeEndCallback,i=t.swipeCancelCallback,s=t.swipelessClickCallback,a=t.threshold,u=void 0===a?30:a,c=t.perpendicularTolerance,l=void 0===c?1:c,d=t.disableClickThreshold,p=void 0===d?1:d;(0,Es.Z)(this,e);var m=function(){};this.direction=n,this.swipePreviewCallback=o||m,this.swipeEndCallback=r||m,this.swipeCancelCallback=i||m,this.swipelessClickCallback=s||m,this.threshold="function"==typeof u?u:function(){return u},this.disableClickThreshold="function"==typeof p?p:function(){return p},this.perpendicularTolerance=l,this._reset()}return(0,zs.Z)(e,[{key:"_reset",value:function(){this._startPos=[0,0],this._pointerId=-1,this._swiping=!1,this._swiped=!1,this._preventNextClick=!1}},{key:"start",value:function(e){0===e.button&&(this._startPos=xs(e),this._pointerId=e.pointerId,this._swiping=!0,this._swiped=!1)}},{key:"move",value:function(e){if(this._swiping&&this._pointerId===e.pointerId){this._swiped=!0;var t=xs(e),n=Ps(this._startPos,t);this.swipePreviewCallback(n)}}},{key:"cancel",value:function(e){this._swiping&&this._pointerId===e.pointerId&&this.swipeCancelCallback()}},{key:"end",value:function(e){var t=this;if(this._swiping&&this._pointerId===e.pointerId){this._swiping=!1;var n=xs(e),o=Ps(this._startPos,n),r=function(){if(Ts(o)<t.threshold())return 0;var e=Bs(o,t.direction)>0,n=Us(o,t.direction),r=$s(t.direction),i=Us(o,r);return Ts(n)*t.perpendicularTolerance<Ts(i)?0:e?1:-1}();this._swiped&&this.swipeEndCallback(r),this._reset(),Ts(o)>=this.disableClickThreshold()&&"mouse"===e.pointerType&&(this._preventNextClick=!0)}}},{key:"click",value:function(e){this._preventNextClick||this.swipelessClickCallback(),this._reset()}}]),e}()},Ls={props:{direction:{type:Array},threshold:{type:Function,default:function(){return 30}},disableClickThreshold:{type:Function,default:function(){return 1}},perpendicularTolerance:{type:Number,default:1}},methods:{handlePointerDown:function(e){this.$gesture.start(e)},handlePointerMove:function(e){this.$gesture.move(e)},handlePointerUp:function(e){this.$gesture.end(e)},handlePointerCancel:function(e){this.$gesture.cancel(e)},handleNativeClick:function(e){this.$gesture.click(e)},preview:function(e){this.$emit("preview-requested",e)},end:function(e){this.$emit("swipe-finished",e)},click:function(){this.$emit("swipeless-clicked")},cancel:function(){this.$emit("swipe-canceled")}},created:function(){this.$gesture=new Ms.SwipeAndClickGesture({direction:this.direction,threshold:this.threshold,disableClickThreshold:this.disableClickThreshold,perpendicularTolerance:this.perpendicularTolerance,swipePreviewCallback:this.preview,swipeEndCallback:this.end,swipeCancelCallback:this.cancel,swipelessClickCallback:this.click})}},Rs=(0,Jo.Z)(Ls,[["render",function(e,t,n,o,r,i){return(0,Co.wg)(),(0,Co.iD)("div",(0,Co.dG)(e.$attrs,{onPointerdown:t[0]||(t[0]=function(){return e.handlePointerDown&&e.handlePointerDown.apply(e,arguments)}),onPointermove:t[1]||(t[1]=function(){return e.handlePointerMove&&e.handlePointerMove.apply(e,arguments)}),onPointerup:t[2]||(t[2]=function(){return e.handlePointerUp&&e.handlePointerUp.apply(e,arguments)}),onPointercancel:t[3]||(t[3]=function(){return e.handlePointerCancel&&e.handlePointerCancel.apply(e,arguments)}),onClick:t[4]||(t[4]=function(){return e.handleNativeClick&&e.handleNativeClick.apply(e,arguments)})}),[(0,Co.WI)(e.$slots,"default")],16)}]]);var qs=n(72884);Ht.vI.add(Vt.A35,Vt._tD,Vt.IJ7,Vt.NBC);const Ns={components:{StillImage:Ss.Z,VideoAttachment:js.Z,PinchZoom:Os,SwipeClick:Rs,Modal:Wt.Z,Flash:qs.Z},data:function(){return{loading:!1,swipeDirection:Ms.DIRECTION_LEFT,swipeThreshold:function(){return window.innerWidth*(1/4)},pinchZoomMinScale:1,pinchZoomScaleResetLimit:1.2}},computed:{showing:function(){return this.$store.state.mediaViewer.activated},media:function(){return this.$store.state.mediaViewer.media},description:function(){return this.currentMedia.description},currentIndex:function(){return this.$store.state.mediaViewer.currentIndex},currentMedia:function(){return this.media[this.currentIndex]},canNavigate:function(){return this.media.length>1},type:function(){return this.currentMedia?this.getType(this.currentMedia):null},swipeDisableClickThreshold:function(){var e=this;return function(){return e.canNavigate?1:30}}},methods:{getType:function(e){return Fn.ZP.fileType(e.mimetype)},hide:function(){var e=this;setTimeout((function(){e.$store.dispatch("closeMediaViewer")}),100)},hideIfNotSwiped:function(e){var t=this.$refs.swipeClick;t?t.$gesture.click(e):this.hide()},goPrev:function(){if(this.canNavigate){var e=0===this.currentIndex?this.media.length-1:this.currentIndex-1,t=this.media[e];"image"===this.getType(t)&&(this.loading=!0),this.$store.dispatch("setCurrentMedia",t)}},goNext:function(){if(this.canNavigate){var e=this.currentIndex===this.media.length-1?0:this.currentIndex+1,t=this.media[e];"image"===this.getType(t)&&(this.loading=!0),this.$store.dispatch("setCurrentMedia",t)}},onImageLoaded:function(){this.loading=!1},handleSwipePreview:function(e){this.$refs.pinchZoom.setTransform({scale:1,x:e[0],y:0})},handleSwipeEnd:function(e){this.$refs.pinchZoom.setTransform({scale:1,x:0,y:0}),e>0?this.goNext():e<0&&this.goPrev()},handleKeyupEvent:function(e){this.showing&&27===e.keyCode&&this.hide()},handleKeydownEvent:function(e){this.showing&&(39===e.keyCode?this.goNext():37===e.keyCode&&this.goPrev())}},mounted:function(){window.addEventListener("popstate",this.hide),document.addEventListener("keyup",this.handleKeyupEvent),document.addEventListener("keydown",this.handleKeydownEvent)},unmounted:function(){window.removeEventListener("popstate",this.hide),document.removeEventListener("keyup",this.handleKeyupEvent),document.removeEventListener("keydown",this.handleKeydownEvent)}},Zs=(0,Jo.Z)(Ns,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("PinchZoom"),a=(0,Co.up)("SwipeClick"),u=(0,Co.up)("VideoAttachment"),c=(0,Co.up)("Flash"),l=(0,Co.up)("FAIcon"),d=(0,Co.up)("Modal");return e.showing?((0,Co.wg)(),(0,Co.j4)(d,{key:0,class:"media-modal-view",onBackdropClicked:e.hideIfNotSwiped},{default:(0,Co.w5)((function(){return["image"===e.type?((0,Co.wg)(),(0,Co.j4)(a,{key:0,ref:"swipeClick",class:"modal-image-container",direction:e.swipeDirection,threshold:e.swipeThreshold,"disable-click-threshold":e.swipeDisableClickThreshold,onPreviewRequested:e.handleSwipePreview,onSwipeFinished:e.handleSwipeEnd,onSwipelessClicked:e.hide},{default:(0,Co.w5)((function(){return[(0,Co.Wm)(s,{ref:"pinchZoom",class:"modal-image-container-inner",selector:".modal-image","reach-min-scale-strategy":"reset","stop-propagate-handled":"stop-propgate-handled","allow-pan-min-scale":e.pinchZoomMinScale,"min-scale":e.pinchZoomMinScale,"reset-to-min-scale-limit":e.pinchZoomScaleResetLimit},{default:(0,Co.w5)((function(){return[(0,Co._)("img",{class:(0,So.C_)([{loading:e.loading},"modal-image"]),src:e.currentMedia.url,alt:e.currentMedia.description,title:e.currentMedia.description,onLoad:t[0]||(t[0]=function(){return e.onImageLoaded&&e.onImageLoaded.apply(e,arguments)})},null,42,vs)]})),_:1},8,["allow-pan-min-scale","min-scale","reset-to-min-scale-limit"])]})),_:1},8,["direction","threshold","disable-click-threshold","onPreviewRequested","onSwipeFinished","onSwipelessClicked"])):(0,Co.kq)("",!0),"video"===e.type?((0,Co.wg)(),(0,Co.j4)(u,{key:1,class:"modal-image",attachment:e.currentMedia,controls:!0},null,8,["attachment"])):(0,Co.kq)("",!0),"audio"===e.type?((0,Co.wg)(),(0,Co.iD)("audio",{key:2,class:"modal-image",src:e.currentMedia.url,alt:e.currentMedia.description,title:e.currentMedia.description,controls:""},null,8,ws)):(0,Co.kq)("",!0),"flash"===e.type?((0,Co.wg)(),(0,Co.j4)(c,{key:3,class:"modal-image",src:e.currentMedia.url,alt:e.currentMedia.description,title:e.currentMedia.description},null,8,["src","alt","title"])):(0,Co.kq)("",!0),e.canNavigate?((0,Co.wg)(),(0,Co.iD)("button",{key:4,title:e.$t("media_modal.previous"),class:"modal-view-button modal-view-button-arrow modal-view-button-arrow--prev",onClick:t[1]||(t[1]=(0,wo.iM)((function(){return e.goPrev&&e.goPrev.apply(e,arguments)}),["stop","prevent"]))},[(0,Co.Wm)(l,{class:"button-icon arrow-icon",icon:"chevron-left"})],8,bs)):(0,Co.kq)("",!0),e.canNavigate?((0,Co.wg)(),(0,Co.iD)("button",{key:5,title:e.$t("media_modal.next"),class:"modal-view-button modal-view-button-arrow modal-view-button-arrow--next",onClick:t[2]||(t[2]=(0,wo.iM)((function(){return e.goNext&&e.goNext.apply(e,arguments)}),["stop","prevent"]))},[(0,Co.Wm)(l,{class:"button-icon arrow-icon",icon:"chevron-right"})],8,ys)):(0,Co.kq)("",!0),(0,Co._)("button",{class:"modal-view-button modal-view-button-hide",title:e.$t("media_modal.hide"),onClick:t[3]||(t[3]=(0,wo.iM)((function(){return e.hide&&e.hide.apply(e,arguments)}),["stop","prevent"]))},[(0,Co.Wm)(l,{class:"button-icon",icon:"times"})],8,Ds),e.description?((0,Co.wg)(),(0,Co.iD)("span",_s,(0,So.zw)(e.description),1)):(0,Co.kq)("",!0),(0,Co._)("span",ks,(0,So.zw)(e.$tc("media_modal.counter",e.currentIndex+1,{current:e.currentIndex+1,total:e.media.length})),1),e.loading?((0,Co.wg)(),(0,Co.iD)("span",Cs,[(0,Co.Wm)(l,{spin:"",icon:"circle-notch",size:"5x"})])):(0,Co.kq)("",!0)]})),_:1},8,["onBackdropClicked"])):(0,Co.kq)("",!0)}]]);var Ws={key:1,class:"side-drawer-logo-wrapper"},Hs=["src"],Vs={key:0},Ks={key:0,class:"badge badge-notification"},Gs={key:0},Ys={key:0,class:"badge badge-notification"},Js={key:0,class:"badge badge-notification"};function Qs(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Xs(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Qs(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Qs(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Ht.vI.add(Vt.$Wj,Vt.jLD,Vt.J9Y,Vt.lXL,Vt.qmU,Vt.FKd,Vt.Acd,Vt.wn1,Vt.HLz,Vt.b7W,Vt.sqG,Vt.GTN,Vt.Zrf);const ea={props:["logout"],data:function(){return{closed:!0,closeGesture:void 0}},created:function(){this.closeGesture=Ms.swipeGesture(Ms.DIRECTION_LEFT,this.toggleDrawer),this.currentUser&&this.currentUser.locked&&this.$store.dispatch("startFetchingFollowRequests")},components:{UserCard:xr.Z},computed:Xs(Xs({currentUser:function(){return this.$store.state.users.currentUser},shout:function(){return this.$store.state.shout.joined},unseenNotifications:function(){return(0,K.Km)(this.$store)},unseenNotificationsCount:function(){return this.unseenNotifications.length},suggestionsEnabled:function(){return this.$store.state.instance.suggestionsEnabled},logo:function(){return this.$store.state.instance.logo},hideSitename:function(){return this.$store.state.instance.hideSitename},sitename:function(){return this.$store.state.instance.name},followRequestCount:function(){return this.$store.state.api.followRequests.length},privateMode:function(){return this.$store.state.instance.private},federating:function(){return this.$store.state.instance.federating},timelinesRoute:function(){var e;return this.$store.state.interface.lastTimeline&&(e=this.$store.state.interface.lastTimeline),e=this.currentUser?"friends":"public-timeline",Yr.has(e)?{name:e,params:{username:this.currentUser.screen_name}}:{name:e}}},(0,s.rn)({pleromaChatMessagesAvailable:function(e){return e.instance.pleromaChatMessagesAvailable},supportsAnnouncements:function(e){return e.announcements.supportsAnnouncements}})),(0,s.Se)(["unreadChatCount","unreadAnnouncementCount"])),methods:{toggleDrawer:function(){this.closed=!this.closed},doLogout:function(){this.logout(),this.toggleDrawer()},touchStart:function(e){Ms.beginSwipe(e,this.closeGesture)},touchMove:function(e){Ms.updateSwipe(e,this.closeGesture)},openSettingsModal:function(){this.$store.dispatch("openSettingsModal","user")},openAdminModal:function(){this.$store.dispatch("openSettingsModal","admin")}}},ta=(0,Jo.Z)(ea,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("UserCard"),a=(0,Co.up)("FAIcon"),u=(0,Co.up)("router-link");return(0,Co.wg)(),(0,Co.iD)("div",{class:(0,So.C_)(["side-drawer-container",{"side-drawer-container-closed":e.closed,"side-drawer-container-open":!e.closed}])},[(0,Co._)("div",{class:(0,So.C_)(["side-drawer-darken",{"side-drawer-darken-closed":e.closed}])},null,2),(0,Co._)("div",{class:(0,So.C_)(["side-drawer",{"side-drawer-closed":e.closed}]),onTouchstart:t[19]||(t[19]=function(){return e.touchStart&&e.touchStart.apply(e,arguments)}),onTouchmove:t[20]||(t[20]=function(){return e.touchMove&&e.touchMove.apply(e,arguments)})},[(0,Co._)("div",{class:"side-drawer-heading",onClick:t[0]||(t[0]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[e.currentUser?((0,Co.wg)(),(0,Co.j4)(s,{key:0,"user-id":e.currentUser.id,"hide-bio":!0},null,8,["user-id"])):((0,Co.wg)(),(0,Co.iD)("div",Ws,[(0,Co._)("img",{src:e.logo},null,8,Hs),e.hideSitename?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.iD)("span",Vs,(0,So.zw)(e.sitename),1))]))]),(0,Co._)("ul",null,[e.currentUser?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.iD)("li",{key:0,onClick:t[1]||(t[1]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,Co.Wm)(u,{to:{name:"login"}},{default:(0,Co.w5)((function(){return[(0,Co.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"sign-in-alt"}),(0,Co.Uk)(" "+(0,So.zw)(e.$t("login.login")),1)]})),_:1})])),e.currentUser||!e.privateMode?((0,Co.wg)(),(0,Co.iD)("li",{key:1,onClick:t[2]||(t[2]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,Co.Wm)(u,{to:e.timelinesRoute},{default:(0,Co.w5)((function(){return[(0,Co.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"home"}),(0,Co.Uk)(" "+(0,So.zw)(e.$t("nav.timelines")),1)]})),_:1},8,["to"])])):(0,Co.kq)("",!0),e.currentUser?((0,Co.wg)(),(0,Co.iD)("li",{key:2,onClick:t[3]||(t[3]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,Co.Wm)(u,{to:{name:"lists"}},{default:(0,Co.w5)((function(){return[(0,Co.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"list"}),(0,Co.Uk)(" "+(0,So.zw)(e.$t("nav.lists")),1)]})),_:1})])):(0,Co.kq)("",!0),e.currentUser&&e.pleromaChatMessagesAvailable?((0,Co.wg)(),(0,Co.iD)("li",{key:3,onClick:t[4]||(t[4]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,Co.Wm)(u,{to:{name:"chats",params:{username:e.currentUser.screen_name}},style:{position:"relative"}},{default:(0,Co.w5)((function(){return[(0,Co.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"comments"}),(0,Co.Uk)(" "+(0,So.zw)(e.$t("nav.chats"))+" ",1),e.unreadChatCount?((0,Co.wg)(),(0,Co.iD)("span",Ks,(0,So.zw)(e.unreadChatCount),1)):(0,Co.kq)("",!0)]})),_:1},8,["to"])])):(0,Co.kq)("",!0)]),e.currentUser?((0,Co.wg)(),(0,Co.iD)("ul",Gs,[(0,Co._)("li",{onClick:t[5]||(t[5]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,Co.Wm)(u,{to:{name:"interactions",params:{username:e.currentUser.screen_name}}},{default:(0,Co.w5)((function(){return[(0,Co.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"bell"}),(0,Co.Uk)(" "+(0,So.zw)(e.$t("nav.interactions")),1)]})),_:1},8,["to"])]),e.currentUser.locked?((0,Co.wg)(),(0,Co.iD)("li",{key:0,onClick:t[6]||(t[6]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,Co.Wm)(u,{to:"/friend-requests"},{default:(0,Co.w5)((function(){return[(0,Co.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"user-plus"}),(0,Co.Uk)(" "+(0,So.zw)(e.$t("nav.friend_requests"))+" ",1),e.followRequestCount>0?((0,Co.wg)(),(0,Co.iD)("span",Ys,(0,So.zw)(e.followRequestCount),1)):(0,Co.kq)("",!0)]})),_:1})])):(0,Co.kq)("",!0),e.shout?((0,Co.wg)(),(0,Co.iD)("li",{key:1,onClick:t[7]||(t[7]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,Co.Wm)(u,{to:{name:"shout-panel"}},{default:(0,Co.w5)((function(){return[(0,Co.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"bullhorn"}),(0,Co.Uk)(" "+(0,So.zw)(e.$t("shoutbox.title")),1)]})),_:1})])):(0,Co.kq)("",!0)])):(0,Co.kq)("",!0),(0,Co._)("ul",null,[e.currentUser||!e.privateMode?((0,Co.wg)(),(0,Co.iD)("li",{key:0,onClick:t[8]||(t[8]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,Co.Wm)(u,{to:{name:"search"}},{default:(0,Co.w5)((function(){return[(0,Co.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"search"}),(0,Co.Uk)(" "+(0,So.zw)(e.$t("nav.search")),1)]})),_:1})])):(0,Co.kq)("",!0),e.currentUser&&e.suggestionsEnabled?((0,Co.wg)(),(0,Co.iD)("li",{key:1,onClick:t[9]||(t[9]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,Co.Wm)(u,{to:{name:"who-to-follow"}},{default:(0,Co.w5)((function(){return[(0,Co.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"user-plus"}),(0,Co.Uk)(" "+(0,So.zw)(e.$t("nav.who_to_follow")),1)]})),_:1})])):(0,Co.kq)("",!0),(0,Co._)("li",{onClick:t[11]||(t[11]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,Co._)("button",{class:"button-unstyled -link -fullwidth",onClick:t[10]||(t[10]=function(){return e.openSettingsModal&&e.openSettingsModal.apply(e,arguments)})},[(0,Co.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"cog"}),(0,Co.Uk)(" "+(0,So.zw)(e.$t("settings.settings")),1)])]),(0,Co._)("li",{onClick:t[12]||(t[12]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,Co.Wm)(u,{to:{name:"about"}},{default:(0,Co.w5)((function(){return[(0,Co.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"info-circle"}),(0,Co.Uk)(" "+(0,So.zw)(e.$t("nav.about")),1)]})),_:1})]),e.currentUser&&"admin"===e.currentUser.role?((0,Co.wg)(),(0,Co.iD)("li",{key:2,onClick:t[14]||(t[14]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,Co._)("button",{class:"button-unstyled -link -fullwidth",onClick:t[13]||(t[13]=(0,wo.iM)((function(){return e.openAdminModal&&e.openAdminModal.apply(e,arguments)}),["stop"]))},[(0,Co.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"tachometer-alt"}),(0,Co.Uk)(" "+(0,So.zw)(e.$t("nav.administration")),1)])])):(0,Co.kq)("",!0),e.currentUser&&e.supportsAnnouncements?((0,Co.wg)(),(0,Co.iD)("li",{key:3,onClick:t[15]||(t[15]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,Co.Wm)(u,{to:{name:"announcements"}},{default:(0,Co.w5)((function(){return[(0,Co.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"bullhorn"}),(0,Co.Uk)(" "+(0,So.zw)(e.$t("nav.announcements"))+" ",1),e.unreadAnnouncementCount?((0,Co.wg)(),(0,Co.iD)("span",Js,(0,So.zw)(e.unreadAnnouncementCount),1)):(0,Co.kq)("",!0)]})),_:1})])):(0,Co.kq)("",!0),e.currentUser?((0,Co.wg)(),(0,Co.iD)("li",{key:4,onClick:t[16]||(t[16]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,Co.Wm)(u,{to:{name:"edit-navigation"}},{default:(0,Co.w5)((function(){return[(0,Co.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"compass"}),(0,Co.Uk)(" "+(0,So.zw)(e.$t("nav.edit_nav_mobile")),1)]})),_:1})])):(0,Co.kq)("",!0),e.currentUser?((0,Co.wg)(),(0,Co.iD)("li",{key:5,onClick:t[18]||(t[18]=function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)})},[(0,Co._)("button",{class:"button-unstyled -link -fullwidth",onClick:t[17]||(t[17]=function(){return e.doLogout&&e.doLogout.apply(e,arguments)})},[(0,Co.Wm)(a,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"sign-out-alt"}),(0,Co.Uk)(" "+(0,So.zw)(e.$t("login.logout")),1)])])):(0,Co.kq)("",!0)])],34),(0,Co._)("div",{class:(0,So.C_)(["side-drawer-click-outside",{"side-drawer-click-outside-closed":e.closed}]),onClick:t[21]||(t[21]=(0,wo.iM)((function(){return e.toggleDrawer&&e.toggleDrawer.apply(e,arguments)}),["stop","prevent"]))},null,2)],2)}]]);var na=["title"],oa=n(23279),ra=n.n(oa);Ht.vI.add(Vt.IwR);var ia=new Set(["chats","chat","lists-edit"]);const sa={data:function(){return{hidden:!1,scrollingDown:!1,inputActive:!1,oldScrollPos:0,amountScrolled:0}},created:function(){this.autohideFloatingPostButton&&this.activateFloatingPostButtonAutohide(),window.addEventListener("resize",this.handleOSK)},unmounted:function(){this.autohideFloatingPostButton&&this.deactivateFloatingPostButtonAutohide(),window.removeEventListener("resize",this.handleOSK)},computed:{isLoggedIn:function(){return!!this.$store.state.users.currentUser},isHidden:function(){return!!ia.has(this.$route.name)||this.autohideFloatingPostButton&&(this.hidden||this.inputActive)},isPersistent:function(){return!!this.$store.getters.mergedConfig.alwaysShowNewPostButton},autohideFloatingPostButton:function(){return!!this.$store.getters.mergedConfig.autohideFloatingPostButton}},watch:{autohideFloatingPostButton:function(e){e?this.activateFloatingPostButtonAutohide():this.deactivateFloatingPostButtonAutohide()}},methods:{activateFloatingPostButtonAutohide:function(){window.addEventListener("scroll",this.handleScrollStart),window.addEventListener("scroll",this.handleScrollEnd)},deactivateFloatingPostButtonAutohide:function(){window.removeEventListener("scroll",this.handleScrollStart),window.removeEventListener("scroll",this.handleScrollEnd)},openPostForm:function(){this.$store.dispatch("openPostStatusModal")},handleOSK:function(){var e=window.innerWidth<350,t=e&&window.innerHeight<345,n=!e&&window.innerWidth<450&&window.innerHeight<560;this.inputActive=!(!t&&!n)},handleScrollStart:ra()((function(){window.scrollY>this.oldScrollPos?this.hidden=!0:this.hidden=!1,this.oldScrollPos=window.scrollY}),100,{leading:!0,trailing:!1}),handleScrollEnd:ra()((function(){this.hidden=!1,this.oldScrollPos=window.scrollY}),100,{leading:!1,trailing:!0})}},aa=(0,Jo.Z)(sa,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("FAIcon");return e.isLoggedIn?((0,Co.wg)(),(0,Co.iD)("button",{key:0,class:(0,So.C_)(["MobilePostButton button-default new-status-button",{hidden:e.isHidden,"always-show":e.isPersistent}]),title:e.$t("post_status.new_status"),onClick:t[0]||(t[0]=function(){return e.openPostForm&&e.openPostForm.apply(e,arguments)})},[(0,Co.Wm)(s,{icon:"pen"})],10,na)):(0,Co.kq)("",!0)}]]);var ua={class:"MobileNav"},ca={class:"item"},la=["title","aria-expanaded"],da={key:0,class:"alert-dot"},pa={class:"item right"},ma=["title"],ha={key:0,class:"alert-dot"},fa={class:"mobile-notifications-header"},ga={class:"title"},va=(0,Co._)("span",{class:"spacer"},null,-1),wa=["title"],ba=["title"],ya=n(93737),Da=n(1447);function _a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function ka(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?_a(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):_a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Ht.vI.add(Vt.NBC,Vt.qmU,Vt.xiG,Vt.FPD,Vt.Kl4);const Ca={components:{SideDrawer:ta,Notifications:ya.default,NavigationPins:vi,ConfirmModal:Da.Z},data:function(){return{notificationsCloseGesture:void 0,notificationsOpen:!1,notificationsAtTop:!0,showingConfirmLogout:!1}},created:function(){var e=this;this.notificationsCloseGesture=Ms.swipeGesture(Ms.DIRECTION_RIGHT,(function(){return e.closeMobileNotifications(!0)}),50)},computed:ka(ka({currentUser:function(){return this.$store.state.users.currentUser},unseenNotifications:function(){return(0,K.Km)(this.$store)},unseenNotificationsCount:function(){return this.unseenNotifications.length},hideSitename:function(){return this.$store.state.instance.hideSitename},sitename:function(){return this.$store.state.instance.name},isChat:function(){return"chat"===this.$route.name}},(0,s.Se)(["unreadChatCount","unreadAnnouncementCount"])),{},{chatsPinned:function(){return new Set(this.$store.state.serverSideStorage.prefsStorage.collections.pinnedNavItems).has("chats")},shouldConfirmLogout:function(){return this.$store.getters.mergedConfig.modalOnLogout}},(0,s.Se)(["unreadChatCount"])),methods:{toggleMobileSidebar:function(){this.$refs.sideDrawer.toggleDrawer()},openMobileNotifications:function(){this.notificationsOpen=!0},closeMobileNotifications:function(e){this.notificationsOpen&&(this.notificationsOpen=!1,e&&this.markNotificationsAsSeen())},notificationsTouchStart:function(e){Ms.beginSwipe(e,this.notificationsCloseGesture)},notificationsTouchMove:function(e){Ms.updateSwipe(e,this.notificationsCloseGesture)},scrollToTop:function(){window.scrollTo(0,0)},scrollMobileNotificationsToTop:function(){this.$refs.mobileNotifications.scrollTo(0,0)},showConfirmLogout:function(){this.showingConfirmLogout=!0},hideConfirmLogout:function(){this.showingConfirmLogout=!1},logout:function(){this.shouldConfirmLogout?this.showConfirmLogout():this.doLogout()},doLogout:function(){this.$router.replace("/main/public"),this.$store.dispatch("logout"),this.hideConfirmLogout()},markNotificationsAsSeen:function(){this.$store.dispatch("markNotificationsAsSeen")},onScroll:function(e){var t=e.target,n=t.scrollTop,o=t.clientHeight,r=t.scrollHeight;this.notificationsAtTop=n>0,n+o>=r&&this.$refs.notifications.fetchOlderNotifications()}},watch:{$route:function(){this.closeMobileNotifications()}}},Sa=(0,Jo.Z)(Ca,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("FAIcon"),a=(0,Co.up)("NavigationPins"),u=(0,Co.up)("FALayers"),c=(0,Co.up)("SideDrawer"),l=(0,Co.up)("confirm-modal");return(0,Co.wg)(),(0,Co.iD)("div",ua,[(0,Co._)("nav",{id:"nav",class:"mobile-nav",onClick:t[2]||(t[2]=function(t){return e.scrollToTop()})},[(0,Co._)("div",ca,[(0,Co._)("button",{class:"button-unstyled mobile-nav-button",title:e.$t("nav.mobile_sidebar"),"aria-expanaded":e.$refs.sideDrawer&&!e.$refs.sideDrawer.closed,onClick:t[0]||(t[0]=(0,wo.iM)((function(t){return e.toggleMobileSidebar()}),["stop","prevent"]))},[(0,Co.Wm)(s,{class:"fa-scale-110 fa-old-padding",icon:"bars"}),e.unreadChatCount&&!e.chatsPinned||e.unreadAnnouncementCount?((0,Co.wg)(),(0,Co.iD)("div",da)):(0,Co.kq)("",!0)],8,la),(0,Co.Wm)(a,{class:"pins"})]),(0,Co.Uk)(),(0,Co._)("div",pa,[e.currentUser?((0,Co.wg)(),(0,Co.iD)("button",{key:0,class:"button-unstyled mobile-nav-button",title:e.unseenNotificationsCount?e.$t("nav.mobile_notifications_unread_active"):e.$t("nav.mobile_notifications"),onClick:t[1]||(t[1]=(0,wo.iM)((function(t){return e.openMobileNotifications()}),["stop","prevent"]))},[(0,Co.Wm)(s,{class:"fa-scale-110 fa-old-padding",icon:"bell"}),e.unseenNotificationsCount?((0,Co.wg)(),(0,Co.iD)("div",ha)):(0,Co.kq)("",!0)],8,ma)):(0,Co.kq)("",!0)])]),e.currentUser?((0,Co.wg)(),(0,Co.iD)("aside",{key:0,class:(0,So.C_)(["mobile-notifications-drawer",{"-closed":!e.notificationsOpen}]),onTouchstart:t[6]||(t[6]=(0,wo.iM)((function(){return e.notificationsTouchStart&&e.notificationsTouchStart.apply(e,arguments)}),["stop"])),onTouchmove:t[7]||(t[7]=(0,wo.iM)((function(){return e.notificationsTouchMove&&e.notificationsTouchMove.apply(e,arguments)}),["stop"]))},[(0,Co._)("div",fa,[(0,Co._)("span",ga,(0,So.zw)(e.$t("notifications.notifications")),1),va,e.notificationsAtTop?((0,Co.wg)(),(0,Co.iD)("button",{key:0,class:"button-unstyled mobile-nav-button",title:e.$t("general.scroll_to_top"),onClick:t[3]||(t[3]=(0,wo.iM)((function(){return e.scrollMobileNotificationsToTop&&e.scrollMobileNotificationsToTop.apply(e,arguments)}),["stop","prevent"]))},[(0,Co.Wm)(u,{class:"fa-scale-110 fa-old-padding-layer"},{default:(0,Co.w5)((function(){return[(0,Co.Wm)(s,{icon:"arrow-up"}),(0,Co.Wm)(s,{icon:"minus",transform:"up-7"})]})),_:1})],8,wa)):(0,Co.kq)("",!0),(0,Co._)("button",{class:"button-unstyled mobile-nav-button",title:e.$t("nav.mobile_notifications_close"),onClick:t[4]||(t[4]=(0,wo.iM)((function(t){return e.closeMobileNotifications(!0)}),["stop","prevent"]))},[(0,Co.Wm)(s,{class:"fa-scale-110 fa-old-padding",icon:"times"})],8,ba)]),(0,Co._)("div",{id:"mobile-notifications",ref:"mobileNotifications",class:"mobile-notifications",onScroll:t[5]||(t[5]=function(){return e.onScroll&&e.onScroll.apply(e,arguments)})},null,544)],34)):(0,Co.kq)("",!0),(0,Co.Wm)(c,{ref:"sideDrawer",logout:e.logout},null,8,["logout"]),((0,Co.wg)(),(0,Co.j4)(Co.lR,{to:"#modal"},[e.showingConfirmLogout?((0,Co.wg)(),(0,Co.j4)(l,{key:0,title:e.$t("login.logout_confirm_title"),"confirm-text":e.$t("login.logout_confirm_accept_button"),"cancel-text":e.$t("login.logout_confirm_cancel_button"),onAccepted:e.doLogout,onCancelled:e.hideConfirmLogout},{default:(0,Co.w5)((function(){return[(0,Co.Uk)((0,So.zw)(e.$t("login.logout_confirm")),1)]})),_:1},8,["title","confirm-text","cancel-text","onAccepted","onCancelled"])):(0,Co.kq)("",!0)]))])}]]);var ja={class:"inner-nav"},Fa={class:"item sitename"},Aa=["src"],Oa={class:"item right actions"},Ea=["title"],za=["title"],Pa=(0,Co._)("span",{class:"spacer"},null,-1),Ia=["title"],xa=["title","aria-expanded"],Ta=["placeholder"],$a=["title"],Ba=["title","aria-expanded"],Ua=(0,Co._)("span",{class:"spacer"},null,-1),Ma=(0,Co._)("span",{class:"spacer"},null,-1);Ht.vI.add(Vt.NBC,Vt.wn1);const La={data:function(){return{searchTerm:void 0,hidden:!0,error:!1}},watch:{$route:function(e){"search"===e.name&&(this.searchTerm=e.query.query)}},methods:{find:function(e){this.$router.push({name:"search",query:{query:e}}),this.$refs.searchInput.focus()},toggleHidden:function(){var e=this;this.hidden=!this.hidden,this.$emit("toggled",this.hidden),this.$nextTick((function(){e.hidden||e.$refs.searchInput.focus()}))}}},Ra=(0,Jo.Z)(La,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("FAIcon");return(0,Co.wg)(),(0,Co.iD)("div",{class:(0,So.C_)(["SearchBar",{"-expanded":!e.hidden}])},[e.hidden?((0,Co.wg)(),(0,Co.iD)("button",{key:0,class:"button-unstyled nav-icon",title:e.$t("nav.search"),type:"button","aria-expanded":!e.hidden,onClick:t[0]||(t[0]=(0,wo.iM)((function(){return e.toggleHidden&&e.toggleHidden.apply(e,arguments)}),["prevent","stop"]))},[(0,Co.Wm)(s,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"search"})],8,xa)):((0,Co.wg)(),(0,Co.iD)(Co.HY,{key:1},[(0,Co.wy)((0,Co._)("input",{id:"search-bar-input",ref:"searchInput","onUpdate:modelValue":t[1]||(t[1]=function(t){return e.searchTerm=t}),class:"search-bar-input",placeholder:e.$t("nav.search"),type:"text",onKeyup:t[2]||(t[2]=(0,wo.D2)((function(t){return e.find(e.searchTerm)}),["enter"]))},null,40,Ta),[[wo.nr,e.searchTerm]]),(0,Co._)("button",{class:"button-default search-button",type:"submit",title:e.$t("nav.search"),onClick:t[3]||(t[3]=function(t){return e.find(e.searchTerm)})},[(0,Co.Wm)(s,{"fixed-width":"",icon:"search"})],8,$a),(0,Co._)("button",{class:"button-unstyled cancel-search",type:"button",title:e.$t("nav.search_close"),"aria-expanded":!e.hidden,onClick:t[4]||(t[4]=(0,wo.iM)((function(){return e.toggleHidden&&e.toggleHidden.apply(e,arguments)}),["prevent","stop"]))},[(0,Co.Wm)(s,{"fixed-width":"",icon:"times",class:"cancel-icon fa-scale-110 fa-old-padding"})],8,Ba),Ua,Ma],64))],2)}]]);Ht.vI.add(Vt.$Wj,Vt.jLD,Vt.J9Y,Vt.lXL,Vt.qmU,Vt.FKd,Vt.Acd,Vt.wn1,Vt.HLz,Vt.b7W,Vt.sqG);const qa={components:{SearchBar:Ra,ConfirmModal:Da.Z},data:function(){return{searchBarHidden:!0,supportsMask:window.CSS&&window.CSS.supports&&(window.CSS.supports("mask-size","contain")||window.CSS.supports("-webkit-mask-size","contain")||window.CSS.supports("-moz-mask-size","contain")||window.CSS.supports("-ms-mask-size","contain")||window.CSS.supports("-o-mask-size","contain")),showingConfirmLogout:!1}},computed:{enableMask:function(){return this.supportsMask&&this.$store.state.instance.logoMask},logoStyle:function(){return{visibility:this.enableMask?"hidden":"visible"}},logoMaskStyle:function(){return this.enableMask?{"mask-image":"url(".concat(this.$store.state.instance.logo,")")}:{"background-color":this.enableMask?"":"transparent"}},logoBgStyle:function(){return Object.assign({margin:"".concat(this.$store.state.instance.logoMargin," 0"),opacity:this.searchBarHidden?1:0},this.enableMask?{}:{"background-color":this.enableMask?"":"transparent"})},logo:function(){return this.$store.state.instance.logo},sitename:function(){return this.$store.state.instance.name},hideSitename:function(){return this.$store.state.instance.hideSitename},logoLeft:function(){return this.$store.state.instance.logoLeft},currentUser:function(){return this.$store.state.users.currentUser},privateMode:function(){return this.$store.state.instance.private},shouldConfirmLogout:function(){return this.$store.getters.mergedConfig.modalOnLogout}},methods:{scrollToTop:function(){window.scrollTo(0,0)},showConfirmLogout:function(){this.showingConfirmLogout=!0},hideConfirmLogout:function(){this.showingConfirmLogout=!1},logout:function(){this.shouldConfirmLogout?this.showConfirmLogout():this.doLogout()},doLogout:function(){this.$router.replace("/main/public"),this.$store.dispatch("logout"),this.hideConfirmLogout()},onSearchBarToggled:function(e){this.searchBarHidden=e},openSettingsModal:function(){this.$store.dispatch("openSettingsModal","user")},openAdminModal:function(){this.$store.dispatch("openSettingsModal","admin")}}},Na=(0,Jo.Z)(qa,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("router-link"),a=(0,Co.up)("search-bar"),u=(0,Co.up)("FAIcon"),c=(0,Co.up)("confirm-modal");return(0,Co.wg)(),(0,Co.iD)("nav",{id:"nav",class:(0,So.C_)(["DesktopNav",{"-logoLeft":e.logoLeft}]),onClick:t[4]||(t[4]=function(t){return e.scrollToTop()})},[(0,Co._)("div",ja,[(0,Co._)("div",Fa,[e.hideSitename?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.j4)(s,{key:0,class:"site-name",to:{name:"root"},"active-class":"home"},{default:(0,Co.w5)((function(){return[(0,Co.Uk)((0,So.zw)(e.sitename),1)]})),_:1}))]),(0,Co.Wm)(s,{class:"logo",to:{name:"root"},style:(0,So.j5)(e.logoBgStyle),title:e.sitename},{default:(0,Co.w5)((function(){return[(0,Co._)("div",{class:"mask",style:(0,So.j5)(e.logoMaskStyle)},null,4),(0,Co._)("img",{src:e.logo,style:(0,So.j5)(e.logoStyle)},null,12,Aa)]})),_:1},8,["style","title"]),(0,Co._)("div",Oa,[e.currentUser||!e.privateMode?((0,Co.wg)(),(0,Co.j4)(a,{key:0,onToggled:e.onSearchBarToggled,onClick:t[0]||(t[0]=(0,wo.iM)((function(){}),["stop"]))},null,8,["onToggled"])):(0,Co.kq)("",!0),(0,Co._)("button",{class:"button-unstyled nav-icon",title:e.$t("nav.preferences"),onClick:t[1]||(t[1]=(0,wo.iM)((function(){return e.openSettingsModal&&e.openSettingsModal.apply(e,arguments)}),["stop"]))},[(0,Co.Wm)(u,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"cog"})],8,Ea),e.currentUser&&"admin"===e.currentUser.role?((0,Co.wg)(),(0,Co.iD)("button",{key:1,class:"button-unstyled nav-icon",target:"_blank",title:e.$t("nav.administration"),onClick:t[2]||(t[2]=(0,wo.iM)((function(){return e.openAdminModal&&e.openAdminModal.apply(e,arguments)}),["stop"]))},[(0,Co.Wm)(u,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"tachometer-alt"})],8,za)):(0,Co.kq)("",!0),Pa,e.currentUser?((0,Co.wg)(),(0,Co.iD)("button",{key:2,class:"button-unstyled nav-icon",title:e.$t("login.logout"),onClick:t[3]||(t[3]=(0,wo.iM)((function(){return e.logout&&e.logout.apply(e,arguments)}),["stop","prevent"]))},[(0,Co.Wm)(u,{"fixed-width":"",class:"fa-scale-110 fa-old-padding",icon:"sign-out-alt"})],8,Ia)):(0,Co.kq)("",!0)])]),((0,Co.wg)(),(0,Co.j4)(Co.lR,{to:"#modal"},[e.showingConfirmLogout?((0,Co.wg)(),(0,Co.j4)(c,{key:0,title:e.$t("login.logout_confirm_title"),"confirm-text":e.$t("login.logout_confirm_accept_button"),"cancel-text":e.$t("login.logout_confirm_cancel_button"),onAccepted:e.doLogout,onCancelled:e.hideConfirmLogout},{default:(0,Co.w5)((function(){return[(0,Co.Uk)((0,So.zw)(e.$t("login.logout_confirm")),1)]})),_:1},8,["title","confirm-text","cancel-text","onAccepted","onCancelled"])):(0,Co.kq)("",!0)]))],2)}]]);var Za={class:"user-reporting-panel panel"},Wa={class:"panel-heading"},Ha={class:"panel-body"},Va={class:"user-reporting-panel-left"},Ka=["placeholder"],Ga={key:0},Ya=["disabled"],Ja={key:0,class:"alert error"},Qa={class:"user-reporting-panel-right"},Xa={class:"status-fadein user-reporting-panel-sitem"},eu=n(24049),tu=n(88369),nu=n(12061);function ou(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}const ru={components:{Status:eu.default,List:tu.Z,Checkbox:wi.Z,Modal:Wt.Z,UserLink:nu.Z},data:function(){return{comment:"",forward:!1,statusIdsToReport:[],processing:!1,error:!1}},computed:{reportModal:function(){return this.$store.state.reports.reportModal},isLoggedIn:function(){return!!this.$store.state.users.currentUser},isOpen:function(){return this.isLoggedIn&&this.reportModal.activated},userId:function(){return this.reportModal.userId},user:function(){return this.$store.getters.findUser(this.userId)},remoteInstance:function(){return!this.user.is_local&&this.user.screen_name.substr(this.user.screen_name.indexOf("@")+1)},statuses:function(){return this.reportModal.statuses},preTickedIds:function(){return this.reportModal.preTickedIds}},watch:{userId:"resetState",preTickedIds:function(e){this.statusIdsToReport=e}},methods:{resetState:function(){this.comment="",this.forward=!1,this.statusIdsToReport=this.preTickedIds,this.processing=!1,this.error=!1},closeModal:function(){this.$store.dispatch("closeUserReportingModal")},reportUser:function(){var e=this;this.processing=!0,this.error=!1;var t={userId:this.userId,comment:this.comment,forward:this.forward,statusIds:this.statusIdsToReport};this.$store.state.api.backendInteractor.reportUser(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ou(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ou(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},t)).then((function(){e.processing=!1,e.resetState(),e.closeModal()})).catch((function(){e.processing=!1,e.error=!0}))},clearError:function(){this.error=!1},isChecked:function(e){return-1!==this.statusIdsToReport.indexOf(e)},toggleStatus:function(e,t){e!==this.isChecked(t)&&(e?this.statusIdsToReport.push(t):this.statusIdsToReport.splice(this.statusIdsToReport.indexOf(t),1))},resize:function(e){var t=e.target||e;t instanceof window.Element&&(t.style.height="auto",t.style.height="".concat(t.scrollHeight,"px"),""===t.value&&(t.style.height=null))}}},iu=(0,Jo.Z)(ru,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("UserLink"),a=(0,Co.up)("i18n-t"),u=(0,Co.up)("Checkbox"),c=(0,Co.up)("Status"),l=(0,Co.up)("List"),d=(0,Co.up)("Modal");return e.isOpen?((0,Co.wg)(),(0,Co.j4)(d,{key:0,onBackdropClicked:e.closeModal},{default:(0,Co.w5)((function(){return[(0,Co._)("div",Za,[(0,Co._)("div",Wa,[(0,Co.Wm)(a,{tag:"div",keypath:"user_reporting.title",class:"title"},{default:(0,Co.w5)((function(){return[(0,Co.Wm)(s,{user:e.user},null,8,["user"])]})),_:1})]),(0,Co._)("div",Ha,[(0,Co._)("div",Va,[(0,Co._)("div",null,[(0,Co._)("p",null,(0,So.zw)(e.$t("user_reporting.add_comment_description")),1),(0,Co.wy)((0,Co._)("textarea",{"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.comment=t}),class:"form-control",placeholder:e.$t("user_reporting.additional_comments"),rows:"1",onInput:t[1]||(t[1]=function(){return e.resize&&e.resize.apply(e,arguments)})},null,40,Ka),[[wo.nr,e.comment]])]),e.user.is_local?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.iD)("div",Ga,[(0,Co._)("p",null,(0,So.zw)(e.$t("user_reporting.forward_description")),1),(0,Co.Wm)(u,{modelValue:e.forward,"onUpdate:modelValue":t[2]||(t[2]=function(t){return e.forward=t})},{default:(0,Co.w5)((function(){return[(0,Co.Uk)((0,So.zw)(e.$t("user_reporting.forward_to",[e.remoteInstance])),1)]})),_:1},8,["modelValue"])])),(0,Co._)("div",null,[(0,Co._)("button",{class:"btn button-default",disabled:e.processing,onClick:t[3]||(t[3]=function(){return e.reportUser&&e.reportUser.apply(e,arguments)})},(0,So.zw)(e.$t("user_reporting.submit")),9,Ya),e.error?((0,Co.wg)(),(0,Co.iD)("div",Ja,(0,So.zw)(e.$t("user_reporting.generic_error")),1)):(0,Co.kq)("",!0)])]),(0,Co._)("div",Qa,[(0,Co.Wm)(l,{items:e.statuses},{item:(0,Co.w5)((function(t){var n=t.item;return[(0,Co._)("div",Xa,[(0,Co.Wm)(c,{"in-conversation":!1,focused:!1,statusoid:n},null,8,["statusoid"]),(0,Co.Wm)(u,{"model-value":e.isChecked(n.id),"onUpdate:modelValue":function(t){return e.toggleStatus(t,n.id)}},null,8,["model-value","onUpdate:modelValue"])])]})),_:1},8,["items"])])])])]})),_:1},8,["onBackdropClicked"])):(0,Co.kq)("",!0)}]]);var su={class:"edit-form-modal-panel panel"},au={class:"panel-heading"},uu=n(7257);const cu={components:{PostStatusForm:Ir.Z,Modal:Wt.Z},data:function(){return{resettingForm:!1}},computed:{isLoggedIn:function(){return!!this.$store.state.users.currentUser},modalActivated:function(){return this.$store.state.editStatus.modalActivated},isFormVisible:function(){return this.isLoggedIn&&!this.resettingForm&&this.modalActivated},params:function(){return this.$store.state.editStatus.params||{}}},watch:{params:function(e,t){var n=this;Dt()(e,"statusId")!==Dt()(t,"statusId")&&(this.resettingForm=!0,this.$nextTick((function(){n.resettingForm=!1})))},isFormVisible:function(e){var t=this;e&&this.$nextTick((function(){return t.$el&&t.$el.querySelector("textarea").focus()}))}},methods:{doEditStatus:function(e){var t=e.status,n=e.spoilerText,o=e.sensitive,r=e.media,i=e.contentType,s=e.poll,a={store:this.$store,statusId:this.$store.state.editStatus.params.statusId,status:t,spoilerText:n,sensitive:o,poll:s,media:r,contentType:i};return uu.Z.editStatus(a).then((function(e){return e})).catch((function(e){return console.error("Error editing status",e),{error:e.message}}))},closeModal:function(){this.$store.dispatch("closeEditStatusModal")}}},lu=(0,Jo.Z)(cu,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("PostStatusForm"),a=(0,Co.up)("Modal");return e.isFormVisible?((0,Co.wg)(),(0,Co.j4)(a,{key:0,class:"edit-form-modal-view",onBackdropClicked:e.closeModal},{default:(0,Co.w5)((function(){return[(0,Co._)("div",su,[(0,Co._)("div",au,(0,So.zw)(e.$t("post_status.edit_status")),1),(0,Co.Wm)(s,(0,Co.dG)({class:"panel-body"},e.params,{"post-handler":e.doEditStatus,"disable-polls":!0,"disable-visibility-selector":!0,onPosted:e.closeModal}),null,16,["post-handler","onPosted"])])]})),_:1},8,["onBackdropClicked"])):(0,Co.kq)("",!0)}]]);var du={class:"post-form-modal-panel panel"},pu={class:"panel-heading"};const mu={components:{PostStatusForm:Ir.Z,Modal:Wt.Z},data:function(){return{resettingForm:!1}},computed:{isLoggedIn:function(){return!!this.$store.state.users.currentUser},modalActivated:function(){return this.$store.state.postStatus.modalActivated},isFormVisible:function(){return this.isLoggedIn&&!this.resettingForm&&this.modalActivated},params:function(){return this.$store.state.postStatus.params||{}}},watch:{params:function(e,t){var n=this;Dt()(e,"repliedUser.id")!==Dt()(t,"repliedUser.id")&&(this.resettingForm=!0,this.$nextTick((function(){n.resettingForm=!1})))},isFormVisible:function(e){var t=this;e&&this.$nextTick((function(){return t.$el&&t.$el.querySelector("textarea").focus()}))}},methods:{closeModal:function(){this.$store.dispatch("closePostStatusModal")},resetAndClose:function(){this.$store.dispatch("resetPostStatusModal"),this.$store.dispatch("closePostStatusModal")}}},hu=(0,Jo.Z)(mu,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("PostStatusForm"),a=(0,Co.up)("Modal");return e.isLoggedIn&&!e.resettingForm?((0,Co.wg)(),(0,Co.j4)(a,{key:0,"is-open":e.modalActivated,class:"post-form-modal-view",onBackdropClicked:e.closeModal},{default:(0,Co.w5)((function(){return[(0,Co._)("div",du,[(0,Co._)("div",pu,(0,So.zw)(e.$t("post_status.new_status")),1),(0,Co.Wm)(s,(0,Co.dG)({class:"panel-body"},e.params,{onPosted:e.resetAndClose}),null,16,["onPosted"])])]})),_:1},8,["is-open","onBackdropClicked"])):(0,Co.kq)("",!0)}]]);var fu={class:"status-history-modal-panel panel"},gu={class:"panel-heading"},vu={class:"panel-body"},wu={key:0,class:"history-body"};const bu={components:{Modal:Wt.Z,Status:eu.default},data:function(){return{statuses:[]}},computed:{modalActivated:function(){return this.$store.state.statusHistory.modalActivated},params:function(){return this.$store.state.statusHistory.params},statusId:function(){return this.params.id},historyCount:function(){return this.statuses.length},history:function(){return this.statuses}},watch:{params:function(e,t){var n=Dt()(e,"id")!==Dt()(t,"id");n&&this.resetHistory(),(n||Dt()(e,"edited_at")!==Dt()(t,"edited_at"))&&this.fetchStatusHistory()}},methods:{resetHistory:function(){this.statuses=[]},fetchStatusHistory:function(){var e=this;this.$store.dispatch("fetchStatusHistory",this.params).then((function(t){e.statuses=t}))},closeModal:function(){this.$store.dispatch("closeStatusHistoryModal")}}},yu=(0,Jo.Z)(bu,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("status"),a=(0,Co.up)("Modal");return e.modalActivated?((0,Co.wg)(),(0,Co.j4)(a,{key:0,class:"status-history-modal-view",onBackdropClicked:e.closeModal},{default:(0,Co.w5)((function(){return[(0,Co._)("div",fu,[(0,Co._)("div",gu,(0,So.zw)(e.$t("status.status_history"))+" ("+(0,So.zw)(e.historyCount)+") ",1),(0,Co._)("div",vu,[e.historyCount>0?((0,Co.wg)(),(0,Co.iD)("div",wu,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.history,(function(e){return(0,Co.wg)(),(0,Co.j4)(s,{key:e.id,statusoid:e,"is-preview":!0,class:"conversation-status status-fadein panel-body"},null,8,["statusoid"])})),128))])):(0,Co.kq)("",!0)])])]})),_:1},8,["onBackdropClicked"])):(0,Co.kq)("",!0)}]]);var Du={class:"global-notice-list"},_u={class:"notice-message"},ku=["onClick"];Ht.vI.add(Vt.NBC);const Cu={computed:{notices:function(){return this.$store.state.interface.globalNotices}},methods:{closeNotice:function(e){this.$store.dispatch("removeGlobalNotice",e)}}},Su=(0,Jo.Z)(Cu,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("FAIcon");return(0,Co.wg)(),(0,Co.iD)("div",Du,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.notices,(function(t,n){return(0,Co.wg)(),(0,Co.iD)("div",{key:n,class:(0,So.C_)(["alert global-notice",(0,d.Z)({},"global-"+t.level,!0)])},[(0,Co._)("div",_u,(0,So.zw)(e.$t(t.messageKey,t.messageArgs)),1),(0,Co._)("button",{class:"button-unstyled close-notice",onClick:function(n){return e.closeNotice(t)}},[(0,Co.Wm)(s,{class:"fa-scale-110 fa-old-padding",icon:"times"})],8,ku)],2)})),128))])}]]);function ju(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}const Fu={name:"app",components:{UserPanel:Br,NavPanel:_i,Notifications:(0,Co.RC)((function(){return Promise.resolve().then(n.bind(n,93737))})),InstanceSpecificPanel:Ai,FeaturesPanel:Ri,WhoToFollowPanel:ts,ShoutPanel:gs,MediaModal:Zs,SideDrawer:ta,MobilePostStatusButton:aa,MobileNav:Sa,DesktopNav:Na,SettingsModal:(0,Co.RC)((function(){return n.e(7586).then(n.bind(n,27586))})),UpdateNotification:(0,Co.RC)((function(){return n.e(6464).then(n.bind(n,16464))})),UserReportingModal:iu,PostStatusModal:hu,EditStatusModal:lu,StatusHistoryModal:yu,GlobalNoticeList:Su},data:function(){return{mobileActivePanel:"timeline"}},created:function(){var e=this.$store.getters.mergedConfig.interfaceLanguage;this.$store.dispatch("setOption",{name:"interfaceLanguage",value:e}),window.addEventListener("resize",this.updateMobileState)},unmounted:function(){window.removeEventListener("resize",this.updateMobileState)},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ju(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ju(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({classes:function(){return[{"-reverse":this.reverseLayout,"-no-sticky-headers":this.noSticky,"-has-new-post-button":this.newPostButtonShown},"-"+this.layoutType]},navClasses:function(){var e=this.$store.getters.mergedConfig.navbarColumnStretch;return["-"+this.layoutType].concat((0,l.Z)(e?["-column-stretch"]:[]))},currentUser:function(){return this.$store.state.users.currentUser},userBackground:function(){return this.currentUser.background_image},instanceBackground:function(){return this.mergedConfig.hideInstanceWallpaper?null:this.$store.state.instance.background},background:function(){return this.userBackground||this.instanceBackground},bgStyle:function(){if(this.background)return{"--body-background-image":"url(".concat(this.background,")")}},shout:function(){return this.$store.state.shout.joined},suggestionsEnabled:function(){return this.$store.state.instance.suggestionsEnabled},showInstanceSpecificPanel:function(){return this.$store.state.instance.showInstanceSpecificPanel&&!this.$store.getters.mergedConfig.hideISP&&this.$store.state.instance.instanceSpecificPanelContent},isChats:function(){return"chat"===this.$route.name||"chats"===this.$route.name},isListEdit:function(){return"lists-edit"===this.$route.name},newPostButtonShown:function(){return!this.isChats&&!this.isListEdit&&(this.$store.getters.mergedConfig.alwaysShowNewPostButton||"mobile"===this.layoutType)},showFeaturesPanel:function(){return this.$store.state.instance.showFeaturesPanel},editingAvailable:function(){return this.$store.state.instance.editingAvailable},shoutboxPosition:function(){return this.$store.getters.mergedConfig.alwaysShowNewPostButton||!1},hideShoutbox:function(){return this.$store.getters.mergedConfig.hideShoutbox},layoutType:function(){return this.$store.state.interface.layoutType},privateMode:function(){return this.$store.state.instance.private},reverseLayout:function(){var e=this.$store.getters.mergedConfig,t=e.thirdColumnMode,n=e.sidebarRight;return"wide"!==this.layoutType||"notifications"===t?n:!n},noSticky:function(){return this.$store.getters.mergedConfig.disableStickyHeaders},showScrollbars:function(){return this.$store.getters.mergedConfig.showScrollbars}},(0,s.Se)(["mergedConfig"])),methods:{updateMobileState:function(){this.$store.dispatch("setLayoutWidth",Te()),this.$store.dispatch("setLayoutHeight",$e())}}},Au=(0,Jo.Z)(Fu,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("MobileNav"),a=(0,Co.up)("DesktopNav"),u=(0,Co.up)("Notifications"),c=(0,Co.up)("user-panel"),l=(0,Co.up)("nav-panel"),d=(0,Co.up)("instance-specific-panel"),p=(0,Co.up)("features-panel"),m=(0,Co.up)("who-to-follow-panel"),h=(0,Co.up)("router-link"),f=(0,Co.up)("router-view"),g=(0,Co.up)("MediaModal"),v=(0,Co.up)("shout-panel"),w=(0,Co.up)("MobilePostStatusButton"),b=(0,Co.up)("UserReportingModal"),y=(0,Co.up)("PostStatusModal"),D=(0,Co.up)("EditStatusModal"),_=(0,Co.up)("StatusHistoryModal"),k=(0,Co.up)("SettingsModal"),C=(0,Co.up)("UpdateNotification"),S=(0,Co.up)("GlobalNoticeList");return(0,Co.wg)(),(0,Co.iD)("div",{id:"app-loaded",style:(0,So.j5)(e.bgStyle)},[jo,"mobile"===e.layoutType?((0,Co.wg)(),(0,Co.j4)(s,{key:0})):((0,Co.wg)(),(0,Co.j4)(a,{key:1,class:(0,So.C_)(e.navClasses)},null,8,["class"])),e.currentUser?((0,Co.wg)(),(0,Co.j4)(u,{key:2})):(0,Co.kq)("",!0),(0,Co._)("div",{id:"content",class:(0,So.C_)(["app-layout container",e.classes])},[Fo,(0,Co._)("div",{id:"sidebar",class:(0,So.C_)(["column -scrollable",{"-show-scrollbar":e.showScrollbars}])},[(0,Co.Wm)(c),"mobile"!==e.layoutType?((0,Co.wg)(),(0,Co.iD)(Co.HY,{key:0},[(0,Co.Wm)(l),e.showInstanceSpecificPanel?((0,Co.wg)(),(0,Co.j4)(d,{key:0})):(0,Co.kq)("",!0),!e.currentUser&&e.showFeaturesPanel?((0,Co.wg)(),(0,Co.j4)(p,{key:1})):(0,Co.kq)("",!0),e.currentUser&&e.suggestionsEnabled?((0,Co.wg)(),(0,Co.j4)(m,{key:2})):(0,Co.kq)("",!0),Ao],64)):(0,Co.kq)("",!0)],2),(0,Co._)("main",{id:"main-scroller",class:(0,So.C_)(["column main",{"-full-height":e.isChats||e.isListEdit}])},[e.currentUser?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.iD)("div",Oo,[(0,Co.Wm)(h,{to:{name:"login"},class:"panel-body"},{default:(0,Co.w5)((function(){return[(0,Co.Uk)((0,So.zw)(e.$t("login.hint")),1)]})),_:1})])),(0,Co.Wm)(f)],2),(0,Co._)("div",{id:"notifs-column",class:(0,So.C_)(["column -scrollable",{"-show-scrollbar":e.showScrollbars}])},null,2)],2),(0,Co.Wm)(g),e.currentUser&&e.shout&&!e.hideShoutbox?((0,Co.wg)(),(0,Co.j4)(v,{key:3,floating:!0,class:(0,So.C_)(["floating-shout mobile-hidden",{"-left":e.shoutboxPosition}])},null,8,["class"])):(0,Co.kq)("",!0),(0,Co.Wm)(w),(0,Co.Wm)(b),(0,Co.Wm)(y),e.editingAvailable?((0,Co.wg)(),(0,Co.j4)(D,{key:4})):(0,Co.kq)("",!0),e.editingAvailable?((0,Co.wg)(),(0,Co.j4)(_,{key:5})):(0,Co.kq)("",!0),(0,Co.Wm)(k),(0,Co.Wm)(C),(0,Co.Wm)(S)],4)}]]);var Ou={key:1,class:"rightside-button"},Eu=["title"],zu={key:0,class:"rightside-button"},Pu=["title"],Iu={class:"alert-badge"},xu=["title"],Tu={ref:"timeline",class:"timeline",role:"feed"},$u={key:0,class:"new-status-notification text-center faint"},Bu={key:1,class:"new-status-notification text-center faint"},Uu={class:"new-status-notification text-center"},Mu={key:3,class:"new-status-notification text-center"},Lu=n(24350),Ru=n.n(Lu),qu=n(23493),Nu=n.n(qu),Zu={key:0,class:"panel-heading conversation-heading -sticky"},Wu={class:"title"},Hu={class:"conversation-body panel-body"},Vu={key:0,class:"thread-body"},Ku={key:0,class:"conversation-dive-to-top-level-box"},Gu={key:1,class:"thread-ancestors"},Yu={key:0,class:"thread-ancestor-dive-box"},Ju={class:"thread-ancestor-dive-box-inner"},Qu={key:1,class:"thread-body"},Xu=n(66678),ec=n.n(Xu),tc={class:"thread-tree"},nc={key:0,class:"thread-tree-replies"},oc={key:1,class:"thread-tree-replies thread-tree-replies-hidden"};Ht.vI.add(Vt.Sbq,Vt.cLY);const rc={components:{Status:eu.default},name:"ThreadTree",props:{depth:Number,status:Object,inProfile:Boolean,conversation:Array,collapsable:Boolean,isExpanded:Boolean,pinnedStatusIdsObject:Object,profileUserId:String,focused:Function,highlight:String,getReplies:Function,setHighlight:Function,toggleExpanded:Function,simple:Boolean,toggleThreadDisplay:Function,threadDisplayStatus:Object,showThreadRecursively:Function,totalReplyCount:Object,totalReplyDepth:Object,statusContentProperties:Object,setStatusContentProperty:Function,toggleStatusContentProperty:Function,dive:Function},computed:{suspendable:function(){var e=!this.$refs.statusComponent||this.$refs.statusComponent.suspendable;return this.$refs.childComponent?e&&this.$refs.childComponent.every((function(e){return e.suspendable})):e},reverseLookupTable:function(){return this.conversation.reduce((function(e,t,n){return e[t.id]=n,e}),{})},currentReplies:function(){var e=this;return this.getReplies(this.status.id).map((function(t){var n=t.id;return e.statusById(n)}))},threadShowing:function(){return"showing"===this.threadDisplayStatus[this.status.id]},currentProp:function(){return this.statusContentProperties[this.status.id]}},methods:{statusById:function(e){return this.conversation[this.reverseLookupTable[e]]},collapseThread:function(){},showThread:function(){},showAllSubthreads:function(){},toggleCurrentProp:function(e){this.toggleStatusContentProperty(this.status.id,e)},setCurrentProp:function(e,t){this.setStatusContentProperty(this.status.id,e)}}},ic=(0,Jo.Z)(rc,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("status"),a=(0,Co.up)("thread-tree"),u=(0,Co.up)("FAIcon"),c=(0,Co.up)("i18n-t");return(0,Co.wg)(),(0,Co.iD)("article",tc,[((0,Co.wg)(),(0,Co.j4)(s,{key:e.status.id,ref:"statusComponent","inline-expanded":e.collapsable&&e.isExpanded,statusoid:e.status,expandable:!e.isExpanded,"show-pinned":e.pinnedStatusIdsObject&&e.pinnedStatusIdsObject[e.status.id],focused:e.focused(e.status.id),"in-conversation":e.isExpanded,highlight:e.highlight,replies:e.getReplies(e.status.id),"in-profile":e.inProfile,"profile-user-id":e.profileUserId,class:"conversation-status conversation-status-treeview status-fadein panel-body","simple-tree":e.simple,"controlled-thread-display-status":e.threadDisplayStatus[e.status.id],"controlled-toggle-thread-display":function(){return e.toggleThreadDisplay(e.status.id)},"controlled-showing-tall":e.currentProp.showingTall,"controlled-expanding-subject":e.currentProp.expandingSubject,"controlled-showing-long-subject":e.currentProp.showingLongSubject,"controlled-replying":e.currentProp.replying,"controlled-media-playing":e.currentProp.mediaPlaying,"controlled-toggle-showing-tall":function(){return e.toggleCurrentProp("showingTall")},"controlled-toggle-expanding-subject":function(){return e.toggleCurrentProp("expandingSubject")},"controlled-toggle-showing-long-subject":function(){return e.toggleCurrentProp("showingLongSubject")},"controlled-toggle-replying":function(){return e.toggleCurrentProp("replying")},"controlled-set-media-playing":function(t){return e.setCurrentProp("mediaPlaying",t)},dive:e.dive?function(){return e.dive(e.status.id)}:void 0,onGoto:e.setHighlight,onToggleExpanded:e.toggleExpanded},null,8,["inline-expanded","statusoid","expandable","show-pinned","focused","in-conversation","highlight","replies","in-profile","profile-user-id","simple-tree","controlled-thread-display-status","controlled-toggle-thread-display","controlled-showing-tall","controlled-expanding-subject","controlled-showing-long-subject","controlled-replying","controlled-media-playing","controlled-toggle-showing-tall","controlled-toggle-expanding-subject","controlled-toggle-showing-long-subject","controlled-toggle-replying","controlled-set-media-playing","dive","onGoto","onToggleExpanded"])),e.currentReplies.length&&e.threadShowing?((0,Co.wg)(),(0,Co.iD)("div",nc,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.currentReplies,(function(t){return(0,Co.wg)(),(0,Co.j4)(a,{key:t.id,ref_for:!0,ref:"childComponent",depth:e.depth+1,status:t,"in-profile":e.inProfile,conversation:e.conversation,collapsable:e.collapsable,"is-expanded":e.isExpanded,"pinned-status-ids-object":e.pinnedStatusIdsObject,"profile-user-id":e.profileUserId,focused:e.focused,"get-replies":e.getReplies,highlight:e.highlight,"set-highlight":e.setHighlight,"toggle-expanded":e.toggleExpanded,simple:e.simple,"toggle-thread-display":e.toggleThreadDisplay,"thread-display-status":e.threadDisplayStatus,"show-thread-recursively":e.showThreadRecursively,"total-reply-count":e.totalReplyCount,"total-reply-depth":e.totalReplyDepth,"status-content-properties":e.statusContentProperties,"set-status-content-property":e.setStatusContentProperty,"toggle-status-content-property":e.toggleStatusContentProperty,dive:e.dive},null,8,["depth","status","in-profile","conversation","collapsable","is-expanded","pinned-status-ids-object","profile-user-id","focused","get-replies","highlight","set-highlight","toggle-expanded","simple","toggle-thread-display","thread-display-status","show-thread-recursively","total-reply-count","total-reply-depth","status-content-properties","set-status-content-property","toggle-status-content-property","dive"])})),128))])):(0,Co.kq)("",!0),e.currentReplies.length&&!e.threadShowing?((0,Co.wg)(),(0,Co.iD)("div",oc,[e.simple?((0,Co.wg)(),(0,Co.j4)(c,{key:0,scope:"global",tag:"button",keypath:"status.thread_follow_with_icon",class:"button-unstyled -link thread-tree-show-replies-button",onClick:t[0]||(t[0]=(0,wo.iM)((function(t){return e.dive(e.status.id)}),["prevent"]))},{icon:(0,Co.w5)((function(){return[(0,Co.Wm)(u,{icon:"angle-double-right"})]})),text:(0,Co.w5)((function(){return[(0,Co._)("span",null,(0,So.zw)(e.$tc("status.thread_follow",e.totalReplyCount[e.status.id],{numStatus:e.totalReplyCount[e.status.id]})),1)]})),_:1})):((0,Co.wg)(),(0,Co.j4)(c,{key:1,scope:"global",tag:"button",keypath:"status.thread_show_full_with_icon",class:"button-unstyled -link thread-tree-show-replies-button",onClick:t[1]||(t[1]=(0,wo.iM)((function(t){return e.showThreadRecursively(e.status.id)}),["prevent"]))},{icon:(0,Co.w5)((function(){return[(0,Co.Wm)(u,{icon:"angle-double-down"})]})),text:(0,Co.w5)((function(){return[(0,Co._)("span",null,(0,So.zw)(e.$tc("status.thread_show_full",e.totalReplyCount[e.status.id],{numStatus:e.totalReplyCount[e.status.id],depth:e.totalReplyDepth[e.status.id]})),1)]})),_:1}))])):(0,Co.kq)("",!0)])}]]);var sc={class:"dropdown-menu",role:"menu"},ac={key:0,role:"group"},uc=["aria-checked"],cc=["aria-checked"],lc=["aria-checked"],dc={key:3,role:"separator",class:"dropdown-divider"},pc=["aria-checked"],mc=["aria-checked"],hc=["aria-checked"],fc=n(84535);function gc(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function vc(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?gc(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):gc(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Ht.vI.add(Vt.G_j,Vt.yGG,Vt.klh);const wc={props:{conversation:Boolean},components:{Popover:fc.default},methods:{setReplyVisibility:function(e){this.$store.dispatch("setOption",{name:"replyVisibility",value:e}),this.$store.dispatch("queueFlushAll")},openTab:function(e){this.$store.dispatch("openSettingsModalTab",e)}},computed:vc(vc({},(0,s.Se)(["mergedConfig"])),{},{loggedIn:function(){return!!this.$store.state.users.currentUser},replyVisibilitySelf:{get:function(){return"self"===this.mergedConfig.replyVisibility},set:function(){this.setReplyVisibility("self")}},replyVisibilityFollowing:{get:function(){return"following"===this.mergedConfig.replyVisibility},set:function(){this.setReplyVisibility("following")}},replyVisibilityAll:{get:function(){return"all"===this.mergedConfig.replyVisibility},set:function(){this.setReplyVisibility("all")}},hideMedia:{get:function(){return this.mergedConfig.hideAttachments||this.mergedConfig.hideAttachmentsInConv},set:function(){var e=!this.hideMedia;this.$store.dispatch("setOption",{name:"hideAttachments",value:e}),this.$store.dispatch("setOption",{name:"hideAttachmentsInConv",value:e})}},hideMutedPosts:{get:function(){return this.mergedConfig.hideFilteredStatuses},set:function(){var e=!this.hideMutedPosts;this.$store.dispatch("setOption",{name:"hideFilteredStatuses",value:e})}},muteBotStatuses:{get:function(){return this.mergedConfig.muteBotStatuses},set:function(){var e=!this.muteBotStatuses;this.$store.dispatch("setOption",{name:"muteBotStatuses",value:e})}}})},bc=(0,Jo.Z)(wc,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("FAIcon"),a=(0,Co.up)("Popover");return(0,Co.wg)(),(0,Co.j4)(a,{trigger:"click",class:"QuickFilterSettings","bound-to":{x:"container"},"trigger-attrs":{title:e.$t("timeline.quick_filter_settings")}},{content:(0,Co.w5)((function(){return[(0,Co._)("div",sc,[e.loggedIn?((0,Co.wg)(),(0,Co.iD)("div",ac,[e.conversation?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.iD)("button",{key:0,class:"button-default dropdown-item","aria-checked":e.replyVisibilityAll,role:"menuitemradio",onClick:t[0]||(t[0]=function(t){return e.replyVisibilityAll=!0})},[(0,Co._)("span",{class:(0,So.C_)(["menu-checkbox -radio",{"menu-checkbox-checked":e.replyVisibilityAll}]),"aria-hidden":!0},null,2),(0,Co.Uk)((0,So.zw)(e.$t("settings.reply_visibility_all")),1)],8,uc)),e.conversation?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.iD)("button",{key:1,class:"button-default dropdown-item","aria-checked":e.replyVisibilityFollowing,role:"menuitemradio",onClick:t[1]||(t[1]=function(t){return e.replyVisibilityFollowing=!0})},[(0,Co._)("span",{class:(0,So.C_)(["menu-checkbox -radio",{"menu-checkbox-checked":e.replyVisibilityFollowing}]),"aria-hidden":!0},null,2),(0,Co.Uk)((0,So.zw)(e.$t("settings.reply_visibility_following_short")),1)],8,cc)),e.conversation?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.iD)("button",{key:2,class:"button-default dropdown-item","aria-checked":e.replyVisibilitySelf,role:"menuitemradio",onClick:t[2]||(t[2]=function(t){return e.replyVisibilitySelf=!0})},[(0,Co._)("span",{class:(0,So.C_)(["menu-checkbox -radio",{"menu-checkbox-checked":e.replyVisibilitySelf}]),"aria-hidden":!0},null,2),(0,Co.Uk)((0,So.zw)(e.$t("settings.reply_visibility_self_short")),1)],8,lc)),e.conversation?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.iD)("div",dc))])):(0,Co.kq)("",!0),(0,Co._)("button",{class:"button-default dropdown-item",role:"menuitemcheckbox","aria-checked":e.muteBotStatuses,onClick:t[3]||(t[3]=function(t){return e.muteBotStatuses=!e.muteBotStatuses})},[(0,Co._)("span",{class:(0,So.C_)(["menu-checkbox",{"menu-checkbox-checked":e.muteBotStatuses}]),"aria-hidden":!0},null,2),(0,Co.Uk)((0,So.zw)(e.$t("settings.mute_bot_posts")),1)],8,pc),(0,Co._)("button",{class:"button-default dropdown-item",role:"menuitemcheckbox","aria-checked":e.hideMedia,onClick:t[4]||(t[4]=function(t){return e.hideMedia=!e.hideMedia})},[(0,Co._)("span",{class:(0,So.C_)(["menu-checkbox",{"menu-checkbox-checked":e.hideMedia}]),"aria-hidden":!0},null,2),(0,Co.Uk)((0,So.zw)(e.$t("settings.hide_media_previews")),1)],8,mc),(0,Co._)("button",{class:"button-default dropdown-item",role:"menuitemcheckbox","aria-checked":e.hideMutedPosts,onClick:t[5]||(t[5]=function(t){return e.hideMutedPosts=!e.hideMutedPosts})},[(0,Co._)("span",{class:(0,So.C_)(["menu-checkbox",{"menu-checkbox-checked":e.hideMutedPosts}]),"aria-hidden":!0},null,2),(0,Co.Uk)((0,So.zw)(e.$t("settings.hide_all_muted_posts")),1)],8,hc),(0,Co._)("button",{class:"button-default dropdown-item dropdown-item-icon",role:"menuitem",onClick:t[6]||(t[6]=function(t){return e.openTab("filtering")})},[(0,Co.Wm)(s,{icon:"font"}),(0,Co.Uk)((0,So.zw)(e.$t("settings.word_filter_and_more")),1)])])]})),trigger:(0,Co.w5)((function(){return[(0,Co.Wm)(s,{icon:"filter"})]})),_:1},8,["trigger-attrs"])}]]);var yc={class:"dropdown-menu",role:"menu"},Dc={role:"group"},_c=["aria-checked"],kc=["aria-checked"],Cc=(0,Co._)("div",{role:"separator",class:"dropdown-divider"},null,-1),Sc=["aria-checked"],jc=["aria-checked"],Fc=["aria-checked"];function Ac(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Oc(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ac(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ac(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Ht.vI.add(Vt.Zrf,Vt.lCn,Vt.xiG,Vt.klh);const Ec={props:{conversation:Boolean},components:{Popover:fc.default},methods:{setConversationDisplay:function(e){this.$store.dispatch("setOption",{name:"conversationDisplay",value:e})},openTab:function(e){this.$store.dispatch("openSettingsModalTab",e)}},computed:Oc(Oc({},(0,s.Se)(["mergedConfig"])),{},{loggedIn:function(){return!!this.$store.state.users.currentUser},conversationDisplay:{get:function(){return this.mergedConfig.conversationDisplay},set:function(e){this.setConversationDisplay(e)}},autoUpdate:{get:function(){return this.mergedConfig.streaming},set:function(){var e=!this.autoUpdate;this.$store.dispatch("setOption",{name:"streaming",value:e})}},collapseWithSubjects:{get:function(){return this.mergedConfig.collapseMessageWithSubject},set:function(){var e=!this.collapseWithSubjects;this.$store.dispatch("setOption",{name:"collapseMessageWithSubject",value:e})}},showUserAvatars:{get:function(){return this.mergedConfig.mentionLinkShowAvatar},set:function(){var e=!this.showUserAvatars;console.log(e),this.$store.dispatch("setOption",{name:"mentionLinkShowAvatar",value:e})}},muteBotStatuses:{get:function(){return this.mergedConfig.muteBotStatuses},set:function(){var e=!this.muteBotStatuses;this.$store.dispatch("setOption",{name:"muteBotStatuses",value:e})}}})},zc=(0,Jo.Z)(Ec,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("FAIcon"),a=(0,Co.up)("Popover");return(0,Co.wg)(),(0,Co.j4)(a,{trigger:"click",class:"QuickViewSettings","bound-to":{x:"container"},"trigger-attrs":{title:e.$t("timeline.quick_view_settings")}},{content:(0,Co.w5)((function(){return[(0,Co._)("div",yc,[(0,Co._)("div",Dc,[(0,Co._)("button",{class:"button-default dropdown-item","aria-checked":"tree"===e.conversationDisplay,role:"menuitemradio",onClick:t[0]||(t[0]=function(t){return e.conversationDisplay="tree"})},[(0,Co._)("span",{class:(0,So.C_)(["menu-checkbox -radio",{"menu-checkbox-checked":"tree"===e.conversationDisplay}]),"aria-hidden":!0},null,2),(0,Co.Wm)(s,{icon:"folder-tree","aria-hidden":!0}),(0,Co.Uk)(" "+(0,So.zw)(e.$t("settings.conversation_display_tree_quick")),1)],8,_c),(0,Co._)("button",{class:"button-default dropdown-item","aria-checked":"linear"===e.conversationDisplay,role:"menuitemradio",onClick:t[1]||(t[1]=function(t){return e.conversationDisplay="linear"})},[(0,Co._)("span",{class:(0,So.C_)(["menu-checkbox -radio",{"menu-checkbox-checked":"linear"===e.conversationDisplay}]),"aria-hidden":!0},null,2),(0,Co.Wm)(s,{icon:"list","aria-hidden":!0}),(0,Co.Uk)(" "+(0,So.zw)(e.$t("settings.conversation_display_linear_quick")),1)],8,kc)]),Cc,(0,Co._)("button",{class:"button-default dropdown-item",role:"menuitemcheckbox","aria-checked":e.showUserAvatars,onClick:t[2]||(t[2]=function(t){return e.showUserAvatars=!e.showUserAvatars})},[(0,Co._)("span",{class:(0,So.C_)(["menu-checkbox",{"menu-checkbox-checked":e.showUserAvatars}]),"aria-hidden":!0},null,2),(0,Co.Uk)((0,So.zw)(e.$t("settings.mention_link_show_avatar_quick")),1)],8,Sc),e.conversation?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.iD)("button",{key:0,class:"button-default dropdown-item",role:"menuitemcheckbox","aria-checked":e.autoUpdate,onClick:t[3]||(t[3]=function(t){return e.autoUpdate=!e.autoUpdate})},[(0,Co._)("span",{class:(0,So.C_)(["menu-checkbox",{"menu-checkbox-checked":e.autoUpdate}]),"aria-hidden":!0},null,2),(0,Co.Uk)((0,So.zw)(e.$t("settings.auto_update")),1)],8,jc)),e.conversation?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.iD)("button",{key:1,class:"button-default dropdown-item",role:"menuitemcheckbox","aria-checked":e.collapseWithSubjects,onClick:t[4]||(t[4]=function(t){return e.collapseWithSubjects=!e.collapseWithSubjects})},[(0,Co._)("span",{class:(0,So.C_)(["menu-checkbox",{"menu-checkbox-checked":e.collapseWithSubjects}]),"aria-hidden":!0},null,2),(0,Co.Uk)((0,So.zw)(e.$t("settings.collapse_subject")),1)],8,Fc)),(0,Co._)("button",{class:"button-default dropdown-item dropdown-item-icon",role:"menuitem",onClick:t[5]||(t[5]=function(t){return e.openTab("general")})},[(0,Co.Wm)(s,{icon:"wrench"}),(0,Co.Uk)((0,So.zw)(e.$t("settings.more_settings")),1)])])]})),trigger:(0,Co.w5)((function(){return[(0,Co.Wm)(s,{icon:"bars"})]})),_:1},8,["trigger-attrs"])}]]);function Pc(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Ic(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Pc(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Pc(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Ht.vI.add(Vt.Sbq,Vt.UXu,Vt.A35);var xc=function(e,t){var n="retweet"===e.type?e.retweeted_status.id:e.id,o="retweet"===t.type?t.retweeted_status.id:t.id,r=Number(n),i=Number(o),s=!Number.isNaN(r),a=!Number.isNaN(i);return s&&a?r<i?-1:1:s&&!a?-1:!s&&a?1:n<o?-1:1};const Tc={data:function(){return{highlight:null,expanded:!1,threadDisplayStatusObject:{},statusContentPropertiesObject:{},inlineDivePosition:null}},props:["statusId","collapsable","isPage","pinnedStatusIdsObject","inProfile","profileUserId","virtualHidden"],created:function(){this.isPage&&this.fetchConversation()},computed:Ic(Ic({maxDepthToShowByDefault:function(){var e=this.$store.getters.mergedConfig.maxDepthInThread-2;return e>=1?e:1},streamingEnabled:function(){return this.mergedConfig.useStreamingApi&&this.mastoUserSocketStatus===h._z.JOINED},displayStyle:function(){return this.$store.getters.mergedConfig.conversationDisplay},isTreeView:function(){return!this.isLinearView},treeViewIsSimple:function(){return!this.$store.getters.mergedConfig.conversationTreeAdvanced},isLinearView:function(){return"linear"===this.displayStyle},shouldFadeAncestors:function(){return this.$store.getters.mergedConfig.conversationTreeFadeAncestors},otherRepliesButtonPosition:function(){return this.$store.getters.mergedConfig.conversationOtherRepliesButton},showOtherRepliesButtonBelowStatus:function(){return"below"===this.otherRepliesButtonPosition},showOtherRepliesButtonInsideStatus:function(){return"inside"===this.otherRepliesButtonPosition},suspendable:function(){return this.isTreeView?Object.entries(this.statusContentProperties).every((function(e){var t=(0,c.Z)(e,2),n=(t[0],t[1]);return!n.replying&&0===n.mediaPlaying.length})):!this.$refs.statusComponent||!this.$refs.statusComponent[0]||this.$refs.statusComponent.every((function(e){return e.suspendable}))},hideStatus:function(){return this.virtualHidden&&this.suspendable},status:function(){return this.$store.state.statuses.allStatusesObject[this.statusId]},originalStatusId:function(){return this.status.retweeted_status?this.status.retweeted_status.id:this.statusId},conversationId:function(){return this.getConversationId(this.statusId)},conversation:function(){if(!this.status)return[];if(!this.isExpanded)return[this.status];var e=ec()(this.$store.state.statuses.conversationsObject[this.conversationId]),t=R()(e,{id:this.originalStatusId});return-1!==t&&(e[t]=this.status),function(e,t){return(e="retweet"===t.type?In()(e,(function(e){return"retweet"===e.type||e.id!==t.retweeted_status.id})):In()(e,(function(e){return"retweet"!==e.type}))).filter((function(e){return e})).sort(xc)}(e,this.status)},statusMap:function(){return this.conversation.reduce((function(e,t){return e[t.id]=t,e}),{})},threadTree:function(){var e=this,t=this.conversation.reduce((function(e,t,n){return e[t.id]=n,e}),{}),n=function n(o,r){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};return r.map((function(r){return s[r]?[]:(s[r]=!0,[{status:e.conversation[t[r]],id:r,depth:i},n(o,o[r],i+1,s)].reduce((function(e,t){return e.concat(t)}),[]))})).reduce((function(e,t){return e.concat(t)}),[])}(this.conversation.reduce((function(t,n){var o=n.id;return t.forest[o]=e.getReplies(o).map((function(e){return e.id})),t}),{forest:{}}).forest,this.topLevel.map((function(e){return e.id})));return n},replyIds:function(){var e=this;return this.conversation.map((function(e){return e.id})).reduce((function(t,n){return t[n]=(e.replies[n]||[]).map((function(e){return e.id})),t}),{})},totalReplyCount:function(){var e=this,t={};return this.conversation.map((function(e){return e.id})).map((function n(o){return t[o]||(t[o]=1+e.replyIds[o].map((function(e){return n(e)})).reduce((function(e,t){return e+t}),0)),t[o]})),Object.keys(t).reduce((function(e,n){return e[n]=t[n]-1,e}),{})},totalReplyDepth:function(){var e=this,t={};return this.conversation.map((function(e){return e.id})).map((function n(o){return t[o]||(t[o]=1+e.replyIds[o].map((function(e){return n(e)})).reduce((function(e,t){return e>t?e:t}),0)),t[o]})),Object.keys(t).reduce((function(e,n){return e[n]=t[n]-1,e}),{})},depths:function(){return this.threadTree.reduce((function(e,t){return e[t.id]=t.depth,e}),{})},topLevel:function(){var e=this;return this.conversation.reduce((function(t,n){return t.filter((function(t){return-1===e.getReplies(n.id).map((function(e){return e.id})).indexOf(t.id)}))}),this.conversation)},otherTopLevelCount:function(){return this.topLevel.length-1},showingTopLevel:function(){return this.canDive&&this.diveRoot?[this.statusMap[this.diveRoot]]:this.topLevel},diveRoot:function(){var e=this.inlineDivePosition||this.statusId;return this.parentOf(e)?e:null},diveDepth:function(){return this.canDive&&this.diveRoot?this.depths[this.diveRoot]:0},diveMode:function(){return this.canDive&&!!this.diveRoot},shouldShowAllConversationButton:function(){return this.isTreeView&&this.isExpanded&&this.diveMode&&this.topLevel.length>1},shouldShowAncestors:function(){return this.isTreeView&&this.isExpanded&&this.ancestorsOf(this.diveRoot).length},replies:function(){var e=1;return Ue()(this.conversation,(function(t,n){var o=n.id,r=n.in_reply_to_status_id;return r&&(t[r]=t[r]||[],t[r].push({name:"#".concat(e),id:o})),e++,t}),{})},isExpanded:function(){return!(!this.expanded&&!this.isPage)},hiddenStyle:function(){var e=this.status&&this.status.virtualHeight||"120px";return this.virtualHidden?{height:e}:{}},threadDisplayStatus:function(){var e=this;return this.conversation.reduce((function(t,n){var o=n.id,r=e.depths[o],i=e.threadDisplayStatusObject[o]?e.threadDisplayStatusObject[o]:r-e.diveDepth<=e.maxDepthToShowByDefault?"showing":"hidden";return t[o]=i,t}),{})},statusContentProperties:function(){var e=this;return this.conversation.reduce((function(t,n){var o,r=n.id,i=(o={showingTall:!1,expandingSubject:!1,showingLongSubject:!1,isReplying:!1,mediaPlaying:[]},e.statusContentPropertiesObject[r]?Ic(Ic({},o),e.statusContentPropertiesObject[r]):o);return t[r]=i,t}),{})},canDive:function(){return this.isTreeView&&this.isExpanded},focused:function(){var e=this;return function(t){return e.isExpanded&&t===e.highlight}},maybeHighlight:function(){return this.isExpanded?this.highlight:null}},(0,s.Se)(["mergedConfig"])),(0,s.rn)({mastoUserSocketStatus:function(e){return e.api.mastoUserSocketStatus}})),components:{Status:eu.default,ThreadTree:ic,QuickFilterSettings:bc,QuickViewSettings:zc},watch:{statusId:function(e,t){var n=this.getConversationId(e),o=this.getConversationId(t);n&&o&&n===o?this.setHighlight(this.originalStatusId):this.fetchConversation()},expanded:function(e){e?this.fetchConversation():this.resetDisplayState()},virtualHidden:function(e){this.$store.dispatch("setVirtualHeight",{statusId:this.statusId,height:"".concat(this.$el.clientHeight,"px")})}},methods:{fetchConversation:function(){var e=this;this.status?this.$store.state.api.backendInteractor.fetchConversation({id:this.statusId}).then((function(t){var n=t.ancestors,o=t.descendants;e.$store.dispatch("addNewStatuses",{statuses:n}),e.$store.dispatch("addNewStatuses",{statuses:o}),e.setHighlight(e.originalStatusId)})):this.$store.state.api.backendInteractor.fetchStatus({id:this.statusId}).then((function(t){e.$store.dispatch("addNewStatuses",{statuses:[t]}),e.fetchConversation()}))},getReplies:function(e){return this.replies[e]||[]},getHighlight:function(){return this.isExpanded?this.highlight:null},setHighlight:function(e){e&&(this.highlight=e,this.streamingEnabled||this.$store.dispatch("fetchStatus",e),this.$store.dispatch("fetchFavsAndRepeats",e),this.$store.dispatch("fetchEmojiReactionsBy",e))},toggleExpanded:function(){this.expanded=!this.expanded},getConversationId:function(e){var t=this.$store.state.statuses.allStatusesObject[e];return Dt()(t,"retweeted_status.statusnet_conversation_id",Dt()(t,"statusnet_conversation_id"))},setThreadDisplay:function(e,t){this.threadDisplayStatusObject=Ic(Ic({},this.threadDisplayStatusObject),{},(0,d.Z)({},e,t))},toggleThreadDisplay:function(e){var t="showing"===this.threadDisplayStatus[e]?"hidden":"showing";this.setThreadDisplay(e,t)},setThreadDisplayRecursively:function(e,t){var n=this;this.setThreadDisplay(e,t),this.getReplies(e).map((function(e){return e.id})).map((function(e){return n.setThreadDisplayRecursively(e,t)}))},showThreadRecursively:function(e){this.setThreadDisplayRecursively(e,"showing")},setStatusContentProperty:function(e,t,n){this.statusContentPropertiesObject=Ic(Ic({},this.statusContentPropertiesObject),{},(0,d.Z)({},e,Ic(Ic({},this.statusContentPropertiesObject[e]),{},(0,d.Z)({},t,n))))},toggleStatusContentProperty:function(e,t){this.setStatusContentProperty(e,t,!this.statusContentProperties[e][t])},leastVisibleAncestor:function(e){for(var t=e,n=this.parentOf(t);t;){if("showing"===this.threadDisplayStatus[n])return t;n=this.parentOf(n),t=this.parentOf(t)}return this.topLevel[0]?this.topLevel[0].id:void 0},diveIntoStatus:function(e,t){this.tryScrollTo(e)},diveToTopLevel:function(){this.tryScrollTo(this.topLevelAncestorOrSelfId(this.diveRoot)||this.topLevel[0].id)},undive:function(){this.inlineDivePosition=null,this.setHighlight(this.statusId)},tryScrollTo:function(e){var t=this;e&&(this.isPage?this.$router.push({name:"conversation",params:{id:e}}):this.inlineDivePosition=e,this.$nextTick((function(){t.setHighlight(e)})))},goToCurrent:function(){this.tryScrollTo(this.diveRoot||this.topLevel[0].id)},statusById:function(e){return this.statusMap[e]},parentOf:function(e){var t=this.statusById(e);if(t){var n=t.in_reply_to_status_id;if(this.statusMap[n])return n}},parentOrSelf:function(e){return this.parentOf(e)||e},ancestorsOf:function(e){for(var t=[],n=this.parentOf(e);n;)t.unshift(this.statusMap[n]),n=this.parentOf(n);return t},topLevelAncestorOrSelfId:function(e){for(var t=e,n=this.parentOf(e);n;)t=this.parentOf(t),n=this.parentOf(n);return t},resetDisplayState:function(){this.undive(),this.threadDisplayStatusObject={}}}},$c=(0,Jo.Z)(Tc,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("QuickFilterSettings"),a=(0,Co.up)("QuickViewSettings"),u=(0,Co.up)("FAIcon"),c=(0,Co.up)("i18n-t"),l=(0,Co.up)("status"),d=(0,Co.up)("thread-tree");return e.hideStatus?((0,Co.wg)(),(0,Co.iD)("div",{key:1,style:(0,So.j5)(e.hiddenStyle)},null,4)):((0,Co.wg)(),(0,Co.iD)("div",{key:0,style:(0,So.j5)(e.hiddenStyle),class:(0,So.C_)(["Conversation",{"-expanded":e.isExpanded,panel:e.isExpanded}])},[e.isExpanded?((0,Co.wg)(),(0,Co.iD)("div",Zu,[(0,Co._)("span",Wu,(0,So.zw)(e.$t("timeline.conversation")),1),e.collapsable?((0,Co.wg)(),(0,Co.iD)("button",{key:0,class:"button-unstyled -link",onClick:t[0]||(t[0]=(0,wo.iM)((function(){return e.toggleExpanded&&e.toggleExpanded.apply(e,arguments)}),["prevent"]))},(0,So.zw)(e.$t("timeline.collapse")),1)):(0,Co.kq)("",!0),e.collapsable?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.j4)(s,{key:1,conversation:!0,class:"rightside-button"})),e.collapsable?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.j4)(a,{key:2,conversation:!0,class:"rightside-button"}))])):(0,Co.kq)("",!0),(0,Co._)("div",Hu,[e.isTreeView?((0,Co.wg)(),(0,Co.iD)("div",Vu,[e.shouldShowAllConversationButton?((0,Co.wg)(),(0,Co.iD)("div",Ku,[(0,Co.Wm)(c,{keypath:"status.show_all_conversation_with_icon",tag:"button",class:"button-unstyled -link",scope:"global",onClick:(0,wo.iM)(e.diveToTopLevel,["prevent"])},{icon:(0,Co.w5)((function(){return[(0,Co.Wm)(u,{icon:"angle-double-left"})]})),text:(0,Co.w5)((function(){return[(0,Co._)("span",null,(0,So.zw)(e.$tc("status.show_all_conversation",e.otherTopLevelCount,{numStatus:e.otherTopLevelCount})),1)]})),_:1},8,["onClick"])])):(0,Co.kq)("",!0),e.shouldShowAncestors?((0,Co.wg)(),(0,Co.iD)("div",Gu,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.ancestorsOf(e.diveRoot),(function(t){return(0,Co.wg)(),(0,Co.iD)("article",{key:t.id,class:(0,So.C_)(["thread-ancestor",{"thread-ancestor-has-other-replies":e.getReplies(t.id).length>1,"-faded":e.shouldFadeAncestors}])},[(0,Co.Wm)(l,{ref_for:!0,ref:"statusComponent","inline-expanded":e.collapsable&&e.isExpanded,statusoid:t,expandable:!e.isExpanded,"show-pinned":e.pinnedStatusIdsObject&&e.pinnedStatusIdsObject[t.id],focused:e.focused(t.id),"in-conversation":e.isExpanded,highlight:e.getHighlight(),replies:e.getReplies(t.id),"in-profile":e.inProfile,"profile-user-id":e.profileUserId,class:"conversation-status status-fadein panel-body","simple-tree":e.treeViewIsSimple,"toggle-thread-display":e.toggleThreadDisplay,"thread-display-status":e.threadDisplayStatus,"show-thread-recursively":e.showThreadRecursively,"total-reply-count":e.totalReplyCount,"total-reply-depth":e.totalReplyDepth,"show-other-replies-as-button":e.showOtherRepliesButtonInsideStatus,dive:function(){return e.diveIntoStatus(t.id)},"controlled-showing-tall":e.statusContentProperties[t.id].showingTall,"controlled-expanding-subject":e.statusContentProperties[t.id].expandingSubject,"controlled-showing-long-subject":e.statusContentProperties[t.id].showingLongSubject,"controlled-replying":e.statusContentProperties[t.id].replying,"controlled-media-playing":e.statusContentProperties[t.id].mediaPlaying,"controlled-toggle-showing-tall":function(){return e.toggleStatusContentProperty(t.id,"showingTall")},"controlled-toggle-expanding-subject":function(){return e.toggleStatusContentProperty(t.id,"expandingSubject")},"controlled-toggle-showing-long-subject":function(){return e.toggleStatusContentProperty(t.id,"showingLongSubject")},"controlled-toggle-replying":function(){return e.toggleStatusContentProperty(t.id,"replying")},"controlled-set-media-playing":function(n){return e.toggleStatusContentProperty(t.id,"mediaPlaying",n)},onGoto:e.setHighlight,onToggleExpanded:e.toggleExpanded},null,8,["inline-expanded","statusoid","expandable","show-pinned","focused","in-conversation","highlight","replies","in-profile","profile-user-id","simple-tree","toggle-thread-display","thread-display-status","show-thread-recursively","total-reply-count","total-reply-depth","show-other-replies-as-button","dive","controlled-showing-tall","controlled-expanding-subject","controlled-showing-long-subject","controlled-replying","controlled-media-playing","controlled-toggle-showing-tall","controlled-toggle-expanding-subject","controlled-toggle-showing-long-subject","controlled-toggle-replying","controlled-set-media-playing","onGoto","onToggleExpanded"]),e.showOtherRepliesButtonBelowStatus&&e.getReplies(t.id).length>1?((0,Co.wg)(),(0,Co.iD)("div",Yu,[(0,Co._)("div",Ju,[(0,Co.Wm)(c,{tag:"button",scope:"global",keypath:"status.ancestor_follow_with_icon",class:"button-unstyled -link thread-tree-show-replies-button",onClick:(0,wo.iM)((function(n){return e.diveIntoStatus(t.id)}),["prevent"])},{icon:(0,Co.w5)((function(){return[(0,Co.Wm)(u,{icon:"angle-double-right"})]})),text:(0,Co.w5)((function(){return[(0,Co._)("span",null,(0,So.zw)(e.$tc("status.ancestor_follow",e.getReplies(t.id).length-1,{numReplies:e.getReplies(t.id).length-1})),1)]})),_:2},1032,["onClick"])])])):(0,Co.kq)("",!0)],2)})),128))])):(0,Co.kq)("",!0),((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.showingTopLevel,(function(t){return(0,Co.wg)(),(0,Co.j4)(d,{key:t.id,ref_for:!0,ref:"statusComponent",depth:0,status:t,"in-profile":e.inProfile,conversation:e.conversation,collapsable:e.collapsable,"is-expanded":e.isExpanded,"pinned-status-ids-object":e.pinnedStatusIdsObject,"profile-user-id":e.profileUserId,focused:e.focused,"get-replies":e.getReplies,highlight:e.maybeHighlight,"set-highlight":e.setHighlight,"toggle-expanded":e.toggleExpanded,simple:e.treeViewIsSimple,"toggle-thread-display":e.toggleThreadDisplay,"thread-display-status":e.threadDisplayStatus,"show-thread-recursively":e.showThreadRecursively,"total-reply-count":e.totalReplyCount,"total-reply-depth":e.totalReplyDepth,"status-content-properties":e.statusContentProperties,"set-status-content-property":e.setStatusContentProperty,"toggle-status-content-property":e.toggleStatusContentProperty,dive:e.canDive?e.diveIntoStatus:void 0},null,8,["status","in-profile","conversation","collapsable","is-expanded","pinned-status-ids-object","profile-user-id","focused","get-replies","highlight","set-highlight","toggle-expanded","simple","toggle-thread-display","thread-display-status","show-thread-recursively","total-reply-count","total-reply-depth","status-content-properties","set-status-content-property","toggle-status-content-property","dive"])})),128))])):(0,Co.kq)("",!0),e.isLinearView?((0,Co.wg)(),(0,Co.iD)("div",Qu,[(0,Co._)("article",null,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.conversation,(function(t){return(0,Co.wg)(),(0,Co.j4)(l,{key:t.id,ref_for:!0,ref:"statusComponent","inline-expanded":e.collapsable&&e.isExpanded,statusoid:t,expandable:!e.isExpanded,"show-pinned":e.pinnedStatusIdsObject&&e.pinnedStatusIdsObject[t.id],focused:e.focused(t.id),"in-conversation":e.isExpanded,highlight:e.getHighlight(),replies:e.getReplies(t.id),"in-profile":e.inProfile,"profile-user-id":e.profileUserId,class:"conversation-status status-fadein panel-body","toggle-thread-display":e.toggleThreadDisplay,"thread-display-status":e.threadDisplayStatus,"show-thread-recursively":e.showThreadRecursively,"total-reply-count":e.totalReplyCount,"total-reply-depth":e.totalReplyDepth,"status-content-properties":e.statusContentProperties,"set-status-content-property":e.setStatusContentProperty,"toggle-status-content-property":e.toggleStatusContentProperty,onGoto:e.setHighlight,onToggleExpanded:e.toggleExpanded},null,8,["inline-expanded","statusoid","expandable","show-pinned","focused","in-conversation","highlight","replies","in-profile","profile-user-id","toggle-thread-display","thread-display-status","show-thread-recursively","total-reply-count","total-reply-depth","status-content-properties","set-status-content-property","toggle-status-content-property","onGoto","onToggleExpanded"])})),128))])])):(0,Co.kq)("",!0)])],6))}]]);var Bc={key:1},Uc={class:"button-unstyled title timeline-menu-title"},Mc={class:"timeline-title"};function Lc(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Rc(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Lc(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Lc(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Ht.vI.add(Vt.ptq);const qc={components:{Popover:fc.default,NavigationEntry:ri,ListsMenuContent:ui},data:function(){return{isOpen:!1}},created:function(){({friends:"nav.home_timeline",bookmarks:"nav.bookmarks",dms:"nav.dms","public-timeline":"nav.public_tl","public-external-timeline":"nav.twkn"})[this.$route.name]&&this.$store.dispatch("setLastTimeline",this.$route.name)},computed:Rc(Rc({useListsMenu:function(){return"lists-timeline"===this.$route.name}},(0,s.rn)({currentUser:function(e){return e.users.currentUser},privateMode:function(e){return e.instance.private},federating:function(e){return e.instance.federating}})),{},{timelinesList:function(){return ii(Object.entries(Jr).map((function(e){var t=(0,c.Z)(e,2),n=t[0];return Rc(Rc({},t[1]),{},{name:n})})),{hasChats:this.pleromaChatMessagesAvailable,isFederating:this.federating,isPrivate:this.privateMode,currentUser:this.currentUser})}}),methods:{openMenu:function(){var e=this;setTimeout((function(){e.isOpen=!0}),25)},blockOpen:function(e){this.isOpen||e.stopPropagation()},timelineName:function(){var e=this.$route.name;if("tag-timeline"===e)return"#"+this.$route.params.tag;if("lists-timeline"===e)return this.$store.getters.findListTitle(this.$route.params.id);var t={friends:"nav.home_timeline",bookmarks:"nav.bookmarks",dms:"nav.dms","public-timeline":"nav.public_tl","public-external-timeline":"nav.twkn"}[this.$route.name];return t?this.$t(t):e}}},Nc=(0,Jo.Z)(qc,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("ListsMenuContent"),a=(0,Co.up)("NavigationEntry"),u=(0,Co.up)("FAIcon"),c=(0,Co.up)("Popover");return(0,Co.wg)(),(0,Co.j4)(c,{trigger:"click",class:(0,So.C_)(["TimelineMenu",{open:e.isOpen}]),"bound-to":{x:"container"},"bound-to-selector":".Timeline","popover-class":"timeline-menu-popover popover-default",onShow:e.openMenu,onClose:t[1]||(t[1]=function(){return e.isOpen=!1})},{content:(0,Co.w5)((function(){return[e.useListsMenu?((0,Co.wg)(),(0,Co.j4)(s,{key:0,"show-pin":!1,class:"timelines"})):((0,Co.wg)(),(0,Co.iD)("ul",Bc,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.timelinesList,(function(e){return(0,Co.wg)(),(0,Co.j4)(a,{key:e.name,"show-pin":!1,item:e},null,8,["item"])})),128))]))]})),trigger:(0,Co.w5)((function(){return[(0,Co._)("span",Uc,[(0,Co._)("span",Mc,(0,So.zw)(e.timelineName()),1),(0,Co._)("span",null,[(0,Co.Wm)(u,{size:"sm",icon:"chevron-down"})]),(0,Co._)("span",{class:"click-blocker",onClick:t[0]||(t[0]=function(){return e.blockOpen&&e.blockOpen.apply(e,arguments)})})])]})),_:1},8,["class","onShow"])}]]);function Zc(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}Ht.vI.add(Vt.IJ7,Vt.b7W,Vt.Kl4,Vt.FPD,Vt.EQ8,Vt.LEp);var Wc={props:["timeline","timelineName","title","userId","listId","tag","embedded","count","pinnedStatusIds","inProfile","footerSlipgate"],data:function(){return{showScrollTop:!1,paused:!1,unfocused:!1,bottomedOut:!1,virtualScrollIndex:0,blockingClicks:!1}},components:{Status:eu.default,Conversation:$c,TimelineMenu:Nc,QuickFilterSettings:bc,QuickViewSettings:zc},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Zc(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Zc(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({filteredVisibleStatuses:function(){var e=this;return this.timeline.visibleStatuses.filter((function(t){return"user"!==e.timelineName||t.id>=e.timeline.minId&&t.id<=e.timeline.maxId}))},filteredPinnedStatusIds:function(){var e=this;return(this.pinnedStatusIds||[]).filter((function(t){return e.timeline.statusesObject[t]}))},newStatusCount:function(){return this.timeline.newStatusCount},showLoadButton:function(){return this.timeline.newStatusCount>0||0!==this.timeline.flushMarker},loadButtonString:function(){return 0!==this.timeline.flushMarker?this.$t("timeline.reload"):"".concat(this.$t("timeline.show_new")," (").concat(this.newStatusCount,")")},mobileLoadButtonString:function(){return 0!==this.timeline.flushMarker?"+":this.newStatusCount>99?"∞":this.newStatusCount},classes:function(){var e=this.embedded?["-nonpanel"]:["panel","panel-default"];return this.blockingClicks&&(e=e.concat(["-blocked","_misclick-prevention"])),{root:e,header:["timeline-heading"].concat(this.embedded?[]:["panel-heading","-sticky"]),body:["timeline-body"].concat(this.embedded?[]:["panel-body"]),footer:["timeline-footer"].concat(this.embedded?[]:["panel-footer"])}},pinnedStatusIdsObject:function(){return Ru()(this.pinnedStatusIds)},statusesToDisplay:function(){var e=this.timeline.visibleStatuses.length,t=Math.ceil(Math.max(3,window.innerHeight/80)),n=this.virtualScrollIndex-this.filteredPinnedStatusIds.length,o=Math.max(0,n-t),r=Math.min(e,n+t);return this.timeline.visibleStatuses.slice(o,r).map((function(e){return e.id}))},virtualScrollingEnabled:function(){return this.$store.getters.mergedConfig.virtualScrolling}},(0,s.rn)({mobileLayout:function(e){return"mobile"===e.interface.layoutType}})),created:function(){var e=this.$store,t=e.state.users.currentUser.credentials,n=0===this.timeline.visibleStatuses.length;if(window.addEventListener("scroll",this.handleScroll),e.state.api.fetchers[this.timelineName])return!1;Fe.fetchAndUpdate({store:e,credentials:t,timeline:this.timelineName,showImmediately:n,userId:this.userId,listId:this.listId,tag:this.tag})},mounted:function(){void 0!==document.hidden&&(document.addEventListener("visibilitychange",this.handleVisibilityChange,!1),this.unfocused=document.hidden),window.addEventListener("keydown",this.handleShortKey),setTimeout(this.determineVisibleStatuses,250)},unmounted:function(){window.removeEventListener("scroll",this.handleScroll),window.removeEventListener("keydown",this.handleShortKey),void 0!==document.hidden&&document.removeEventListener("visibilitychange",this.handleVisibilityChange,!1),this.$store.commit("setLoading",{timeline:this.timelineName,value:!1})},methods:{scrollToTop:function(){window.scrollTo({top:this.$el.offsetTop})},stopBlockingClicks:ra()((function(){this.blockingClicks=!1}),1e3),blockClicksTemporarily:function(){this.blockingClicks||(this.blockingClicks=!0),this.stopBlockingClicks()},handleShortKey:function(e){["textarea","input"].includes(e.target.tagName.toLowerCase())||"."===e.key&&this.showNewStatuses()},showNewStatuses:function(){0!==this.timeline.flushMarker?(this.$store.commit("clearTimeline",{timeline:this.timelineName,excludeUserId:!0}),this.$store.commit("queueFlush",{timeline:this.timelineName,id:0}),"user"===this.timelineName&&this.$store.dispatch("fetchPinnedStatuses",this.userId),this.fetchOlderStatuses()):(this.blockClicksTemporarily(),this.$store.commit("showNewStatuses",{timeline:this.timelineName}),this.paused=!1),window.scrollTo({top:0})},fetchOlderStatuses:Nu()((function(){var e=this,t=this.$store,n=t.state.users.currentUser.credentials;t.commit("setLoading",{timeline:this.timelineName,value:!0}),Fe.fetchAndUpdate({store:t,credentials:n,timeline:this.timelineName,older:!0,showImmediately:!0,userId:this.userId,listId:this.listId,tag:this.tag}).then((function(t){var n=t.statuses;n&&0===n.length&&(e.bottomedOut=!0)})).finally((function(){return t.commit("setLoading",{timeline:e.timelineName,value:!1})}))}),1e3,void 0),determineVisibleStatuses:function(){if(this.$refs.timeline&&this.virtualScrollingEnabled){var e=this.$refs.timeline.children,t=Math.max(0,Math.min(this.virtualScrollIndex,e.length-1));if(0!==e.length){var n=Math.max(document.body.offsetHeight,window.pageYOffset),o=window.pageYOffset+.5*window.innerHeight,r=Math.floor(e.length*(o/n)),i=e[r].getBoundingClientRect().y,s=e[t].getBoundingClientRect().y;for(Math.abs(i)>s&&(r=t,i=s);i<-20&&r<e.length-1;)i+=e[r].offsetHeight,r++;for(;i>window.innerHeight+100&&r>0;)i-=e[--r].offsetHeight;this.virtualScrollIndex=r}}},scrollLoad:function(e){var t=document.body.getBoundingClientRect(),n=Math.max(t.height,-t.y);!1===this.timeline.loading&&this.$el.offsetHeight>0&&window.innerHeight+window.pageYOffset>=n-750&&this.fetchOlderStatuses()},handleScroll:Nu()((function(e){this.showScrollTop=this.$el.offsetTop<window.scrollY,this.determineVisibleStatuses(),this.scrollLoad(e)}),200),handleVisibilityChange:function(){this.unfocused=document.hidden}},watch:{newStatusCount:function(e){if(this.$store.getters.mergedConfig.streaming&&e>0){var t=document.documentElement;!((window.pageYOffset||t.scrollTop)-(t.clientTop||0)<15)||this.paused||this.unfocused&&this.$store.getters.mergedConfig.pauseOnUnfocused?this.paused=!0:this.showNewStatuses()}}}};const Hc=Wc,Vc=(0,Jo.Z)(Hc,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("TimelineMenu"),a=(0,Co.up)("FAIcon"),u=(0,Co.up)("FALayers"),c=(0,Co.up)("QuickFilterSettings"),l=(0,Co.up)("QuickViewSettings"),d=(0,Co.up)("conversation");return(0,Co.wg)(),(0,Co.iD)("div",{class:(0,So.C_)(["Timeline",e.classes.root])},[(0,Co._)("div",{class:(0,So.C_)(e.classes.header)},[e.embedded?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.j4)(s,{key:0,"timeline-name":e.timelineName},null,8,["timeline-name"])),e.showScrollTop&&!e.embedded?((0,Co.wg)(),(0,Co.iD)("div",Ou,[(0,Co._)("button",{class:"button-unstyled scroll-to-top-button",type:"button",title:e.$t("general.scroll_to_top"),onClick:t[0]||(t[0]=function(){return e.scrollToTop&&e.scrollToTop.apply(e,arguments)})},[(0,Co.Wm)(u,{class:"fa-scale-110 fa-old-padding-layer"},{default:(0,Co.w5)((function(){return[(0,Co.Wm)(a,{icon:"arrow-up"}),(0,Co.Wm)(a,{icon:"minus",transform:"up-7"})]})),_:1})],8,Eu)])):(0,Co.kq)("",!0),e.mobileLayout&&!e.embedded?((0,Co.wg)(),(0,Co.iD)(Co.HY,{key:2},[e.showLoadButton?((0,Co.wg)(),(0,Co.iD)("div",zu,[(0,Co._)("button",{class:"button-unstyled loadmore-button",title:e.loadButtonString,onClick:t[1]||(t[1]=(0,wo.iM)((function(){return e.showNewStatuses&&e.showNewStatuses.apply(e,arguments)}),["prevent"]))},[(0,Co.Wm)(a,{"fixed-width":"",icon:"circle-plus"}),(0,Co._)("div",Iu,(0,So.zw)(e.mobileLoadButtonString),1)],8,Pu)])):e.embedded?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.iD)("div",{key:1,class:"loadmore-text faint veryfaint rightside-icon",title:e.$t("timeline.up_to_date"),"aria-disabled":!0,onClick:t[2]||(t[2]=(0,wo.iM)((function(){}),["prevent"]))},[(0,Co.Wm)(a,{"fixed-width":"",icon:"check"})],8,xu))],64)):((0,Co.wg)(),(0,Co.iD)(Co.HY,{key:3},[e.showLoadButton?((0,Co.wg)(),(0,Co.iD)("button",{key:0,class:"button-default loadmore-button",onClick:t[3]||(t[3]=(0,wo.iM)((function(){return e.showNewStatuses&&e.showNewStatuses.apply(e,arguments)}),["prevent"]))},(0,So.zw)(e.loadButtonString),1)):e.embedded?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.iD)("div",{key:1,class:"loadmore-text faint",onClick:t[4]||(t[4]=(0,wo.iM)((function(){}),["prevent"]))},(0,So.zw)(e.$t("timeline.up_to_date")),1))],64)),e.embedded?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.j4)(c,{key:4,class:"rightside-button"})),e.embedded?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.j4)(l,{key:5,class:"rightside-button"}))],2),(0,Co._)("div",{class:(0,So.C_)(e.classes.body)},[(0,Co._)("div",Tu,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.filteredPinnedStatusIds,(function(t){return(0,Co.wg)(),(0,Co.j4)(d,{key:t+"-pinned",role:"listitem",class:"status-fadein","status-id":t,collapsable:!0,"pinned-status-ids-object":e.pinnedStatusIdsObject,"in-profile":e.inProfile,"profile-user-id":e.userId},null,8,["status-id","pinned-status-ids-object","in-profile","profile-user-id"])})),128)),((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.filteredVisibleStatuses,(function(t){return(0,Co.wg)(),(0,Co.j4)(d,{key:t.id,role:"listitem",class:"status-fadein","status-id":t.id,collapsable:!0,"in-profile":e.inProfile,"profile-user-id":e.userId,"virtual-hidden":e.virtualScrollingEnabled&&!e.statusesToDisplay.includes(t.id)},null,8,["status-id","in-profile","profile-user-id","virtual-hidden"])})),128))],512)],2),(0,Co._)("div",{class:(0,So.C_)(e.classes.footer)},[((0,Co.wg)(),(0,Co.j4)(Co.lR,{to:e.footerSlipgate,disabled:!e.embedded||!e.footerSlipgate},[0===e.count?((0,Co.wg)(),(0,Co.iD)("div",$u,(0,So.zw)(e.$t("timeline.no_statuses")),1)):e.bottomedOut?((0,Co.wg)(),(0,Co.iD)("div",Bu,(0,So.zw)(e.$t("timeline.no_more_statuses")),1)):e.timeline.loading?((0,Co.wg)(),(0,Co.iD)("div",Mu,[(0,Co.Wm)(a,{icon:"circle-notch",spin:"",size:"lg"})])):((0,Co.wg)(),(0,Co.iD)("button",{key:2,class:"button-unstyled -link",onClick:t[5]||(t[5]=(0,wo.iM)((function(t){return e.fetchOlderStatuses()}),["prevent"]))},[(0,Co._)("div",Uu,(0,So.zw)(e.$t("timeline.load_older")),1)]))],8,["to","disabled"]))],2)],2)}]]),Kc={components:{Timeline:Vc},computed:{timeline:function(){return this.$store.state.statuses.timelines.public}},created:function(){this.$store.dispatch("startFetchingTimeline",{timeline:"public"})},unmounted:function(){this.$store.dispatch("stopFetchingTimeline","public")}},Gc=(0,Jo.Z)(Kc,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("Timeline");return(0,Co.wg)(),(0,Co.j4)(s,{title:e.$t("nav.public_tl"),timeline:e.timeline,"timeline-name":"public"},null,8,["title","timeline"])}]]),Yc={components:{Timeline:Vc},computed:{timeline:function(){return this.$store.state.statuses.timelines.publicAndExternal}},created:function(){this.$store.dispatch("startFetchingTimeline",{timeline:"publicAndExternal"})},unmounted:function(){this.$store.dispatch("stopFetchingTimeline","publicAndExternal")}},Jc=(0,Jo.Z)(Yc,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("Timeline");return(0,Co.wg)(),(0,Co.j4)(s,{title:e.$t("nav.twkn"),timeline:e.timeline,"timeline-name":"publicAndExternal"},null,8,["title","timeline"])}]]),Qc={components:{Timeline:Vc},computed:{timeline:function(){return this.$store.state.statuses.timelines.friends}}},Xc=(0,Jo.Z)(Qc,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("Timeline");return(0,Co.wg)(),(0,Co.j4)(s,{title:e.$t("nav.timeline"),timeline:e.timeline,"timeline-name":"friends"},null,8,["title","timeline"])}]]),el={created:function(){this.$store.commit("clearTimeline",{timeline:"tag"}),this.$store.dispatch("startFetchingTimeline",{timeline:"tag",tag:this.tag})},components:{Timeline:Vc},computed:{tag:function(){return this.$route.params.tag},timeline:function(){return this.$store.state.statuses.timelines.tag}},watch:{tag:function(){this.$store.commit("clearTimeline",{timeline:"tag"}),this.$store.dispatch("startFetchingTimeline",{timeline:"tag",tag:this.tag})}},unmounted:function(){this.$store.dispatch("stopFetchingTimeline","tag")}},tl=(0,Jo.Z)(el,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("Timeline");return(0,Co.wg)(),(0,Co.j4)(s,{title:e.tag,timeline:e.timeline,"timeline-name":"tag",tag:e.tag},null,8,["title","timeline","tag"])}]]),nl={computed:{timeline:function(){return this.$store.state.statuses.timelines.bookmarks}},components:{Timeline:Vc},unmounted:function(){this.$store.commit("clearTimeline",{timeline:"bookmarks"})}},ol=(0,Jo.Z)(nl,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("Timeline");return(0,Co.wg)(),(0,Co.j4)(s,{title:e.$t("nav.bookmarks"),timeline:e.timeline,"timeline-name":"bookmarks"},null,8,["title","timeline"])}]]),rl={components:{Conversation:$c},computed:{statusId:function(){return this.$route.params.id}}},il=(0,Jo.Z)(rl,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("conversation");return(0,Co.wg)(),(0,Co.j4)(s,{collapsable:!1,"is-page":"true","status-id":e.statusId},null,8,["status-id"])}]]);var sl={class:"panel panel-default"},al={class:"panel-heading"},ul={class:"title"},cl=["label"],ll=["label"],dl=["label"],pl=["label"],ml=["label"],hl=["label"],fl=n(79354),gl={mentions:["mention"],"likes+repeats":["repeat","like"],follows:["follow"],reactions:["pleroma:emoji_reaction"],reports:["pleroma:report"],moves:["move"]};const vl={data:function(){return{allowFollowingMove:this.$store.state.users.currentUser.allow_following_move,filterMode:gl.mentions,canSeeReports:this.$store.state.users.currentUser.privileges.includes("reports_manage_reports")}},methods:{onModeSwitch:function(e){this.filterMode=gl[e]}},components:{Notifications:ya.default,TabSwitcher:fl.Z}},wl=(0,Jo.Z)(vl,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("tab-switcher"),a=(0,Co.up)("Notifications");return(0,Co.wg)(),(0,Co.iD)("div",sl,[(0,Co._)("div",al,[(0,Co._)("div",ul,(0,So.zw)(e.$t("nav.interactions")),1)]),(0,Co.Wm)(s,{ref:"tabSwitcher","on-switch":e.onModeSwitch},{default:(0,Co.w5)((function(){return[(0,Co._)("span",{key:"mentions",label:e.$t("nav.mentions")},null,8,cl),(0,Co._)("span",{key:"likes+repeats",label:e.$t("interactions.favs_repeats")},null,8,ll),(0,Co._)("span",{key:"follows",label:e.$t("interactions.follows")},null,8,dl),(0,Co._)("span",{key:"reactions",label:e.$t("interactions.emoji_reactions")},null,8,pl),e.canSeeReports?((0,Co.wg)(),(0,Co.iD)("span",{key:"reports",label:e.$t("interactions.reports")},null,8,ml)):(0,Co.kq)("",!0),e.allowFollowingMove?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.iD)("span",{key:"moves",label:e.$t("interactions.moves")},null,8,hl))]})),_:1},8,["on-switch"]),(0,Co.Wm)(a,{ref:"notifications","no-heading":!0,"minimal-mode":!0,"filter-mode":e.filterMode},null,8,["filter-mode"])])}]]),bl={computed:{timeline:function(){return this.$store.state.statuses.timelines.dms}},components:{Timeline:Vc}},yl=(0,Jo.Z)(bl,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("Timeline");return(0,Co.wg)(),(0,Co.j4)(s,{title:e.$t("nav.dms"),timeline:e.timeline,"timeline-name":"dms"},null,8,["title","timeline"])}]]);var Dl={key:0},_l={key:1,class:"chat-list panel panel-default"},kl={class:"panel-heading -sticky"},Cl={class:"title"},Sl={class:"panel-body"},jl={key:0,class:"timeline"},Fl={key:1,class:"emtpy-chat-list-alert"},Al={class:"chat-list-item-left"},Ol={class:"chat-list-item-center"},El={class:"heading"},zl={key:0,class:"name-and-account-name"},Pl=(0,Co._)("span",{class:"heading-right"},null,-1),Il={class:"time-wrapper"},xl={class:"chat-preview"},Tl={key:0,class:"badge badge-notification unread-chat-count"},$l=n(10252),Bl=n(48173),Ul=n(19066),Ml=n(1840),Ll=["title"],Rl=n(92820);const ql={name:"ChatTitle",components:{UserAvatar:Bl.default,RichContent:Rl.Z,UserPopover:(0,Co.RC)((function(){return Promise.resolve().then(n.bind(n,22588))}))},props:["user","withAvatar"],computed:{title:function(){return this.user?this.user.screen_name_ui:""},htmlTitle:function(){return this.user?this.user.name_html:""}}},Nl=(0,Jo.Z)(ql,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("UserAvatar"),a=(0,Co.up)("UserPopover"),u=(0,Co.up)("RichContent");return(0,Co.wg)(),(0,Co.iD)("div",{class:"chat-title",title:e.title},[e.withAvatar&&e.user?((0,Co.wg)(),(0,Co.j4)(a,{key:0,class:"avatar-container","user-id":e.user.id},{default:(0,Co.w5)((function(){return[(0,Co.Wm)(s,{class:"titlebar-avatar",user:e.user},null,8,["user"])]})),_:1},8,["user-id"])):(0,Co.kq)("",!0),e.user?((0,Co.wg)(),(0,Co.j4)(u,{key:1,class:"username",title:"@"+(e.user&&e.user.screen_name_ui),html:e.htmlTitle,emoji:e.user.emoji||[]},null,8,["title","html","emoji"])):(0,Co.kq)("",!0)],8,Ll)}]]);function Zl(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Wl(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Zl(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Zl(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}const Hl={name:"ChatListItem",props:["chat"],components:{UserAvatar:Bl.default,AvatarList:Ul.Z,Timeago:Ml.Z,ChatTitle:Nl,StatusBody:$l.Z},computed:Wl(Wl({},(0,s.rn)({currentUser:function(e){return e.users.currentUser}})),{},{attachmentInfo:function(){if(0!==this.chat.lastMessage.attachments.length){var e=this.chat.lastMessage.attachments.map((function(e){return Fn.ZP.fileType(e.mimetype)}));return e.includes("video")?this.$t("file_type.video"):e.includes("audio")?this.$t("file_type.audio"):e.includes("image")?this.$t("file_type.image"):this.$t("file_type.file")}},messageForStatusContent:function(){var e=this.chat.lastMessage,t=e?e.emojis:[],n=e&&e.account_id===this.currentUser.id,o=e?this.attachmentInfo||e.content:"",r=n?"<i>".concat(this.$t("chats.you"),"</i> ").concat(o):o;return{summary:"",emojis:t,raw_html:r,text:r,attachments:[]}}}),methods:{openChat:function(e){this.chat.id&&this.$router.push({name:"chat",params:{username:this.currentUser.screen_name,recipient_id:this.chat.account.id}})}}},Vl=(0,Jo.Z)(Hl,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("UserAvatar"),a=(0,Co.up)("ChatTitle"),u=(0,Co.up)("Timeago"),c=(0,Co.up)("StatusBody");return(0,Co.wg)(),(0,Co.iD)("div",{class:"chat-list-item",onClickCapture:t[0]||(t[0]=(0,wo.iM)((function(){return e.openChat&&e.openChat.apply(e,arguments)}),["prevent"]))},[(0,Co._)("div",Al,[(0,Co.Wm)(s,{user:e.chat.account,height:"48px",width:"48px"},null,8,["user"])]),(0,Co._)("div",Ol,[(0,Co._)("div",El,[e.chat.account?((0,Co.wg)(),(0,Co.iD)("span",zl,[(0,Co.Wm)(a,{user:e.chat.account},null,8,["user"])])):(0,Co.kq)("",!0),Pl,(0,Co._)("div",Il,[(0,Co.Wm)(u,{time:e.chat.updated_at,"auto-update":60},null,8,["time"])])]),(0,Co._)("div",xl,[(0,Co.Wm)(c,{class:"chat-preview-body",status:e.messageForStatusContent,"single-line":!0},null,8,["status"]),e.chat.unread>0?((0,Co.wg)(),(0,Co.iD)("div",Tl,(0,So.zw)(e.chat.unread),1)):(0,Co.kq)("",!0)])])],32)}]]);var Kl={class:"panel-default panel chat-new"},Gl={ref:"header",class:"panel-heading"},Yl={class:"input-wrap"},Jl={class:"input-search"},Ql={class:"member-list"},Xl=["onClickCapture"],ed=n(29076);function td(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function nd(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?td(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):td(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Ht.vI.add(Vt.wn1,Vt.A35);var od={components:{BasicUserCard:ed.Z,UserAvatar:Bl.default},data:function(){return{suggestions:[],userIds:[],loading:!1,query:""}},created:function(){var e=this;return(0,o.Z)(i().mark((function t(){return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,e.backendInteractor.chats();case 2:t.sent.chats.forEach((function(t){return e.suggestions.push(t.account)}));case 5:case"end":return t.stop()}}),t)})))()},computed:nd(nd({users:function(){var e=this;return this.userIds.map((function(t){return e.findUser(t)}))},availableUsers:function(){return 0!==this.query.length?this.users:this.suggestions}},(0,s.rn)({currentUser:function(e){return e.users.currentUser},backendInteractor:function(e){return e.api.backendInteractor}})),(0,s.Se)(["findUser"])),methods:{goBack:function(){this.$emit("cancel")},goToChat:function(e){this.$router.push({name:"chat",params:{recipient_id:e.id}})},onInput:function(){this.search(this.query)},addUser:function(e){this.selectedUserIds.push(e.id),this.query=""},removeUser:function(e){this.selectedUserIds=this.selectedUserIds.filter((function(t){return t!==e}))},search:function(e){var t=this;e?(this.loading=!0,this.userIds=[],this.$store.dispatch("search",{q:e,resolve:!0,type:"accounts"}).then((function(e){t.loading=!1,t.userIds=e.accounts.map((function(e){return e.id}))}))):this.loading=!1}}};const rd=od,id=(0,Jo.Z)(rd,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("FAIcon"),a=(0,Co.up)("BasicUserCard");return(0,Co.wg)(),(0,Co.iD)("div",Kl,[(0,Co._)("div",Gl,[(0,Co._)("button",{class:"button-unstyled go-back-button",onClick:t[0]||(t[0]=function(){return e.goBack&&e.goBack.apply(e,arguments)})},[(0,Co.Wm)(s,{size:"lg",icon:"chevron-left"})])],512),(0,Co._)("div",Yl,[(0,Co._)("div",Jl,[(0,Co.Wm)(s,{class:"search-icon fa-scale-110 fa-old-padding",icon:"search"})]),(0,Co.wy)((0,Co._)("input",{ref:"search","onUpdate:modelValue":t[1]||(t[1]=function(t){return e.query=t}),placeholder:"Search people",onInput:t[2]||(t[2]=function(){return e.onInput&&e.onInput.apply(e,arguments)})},null,544),[[wo.nr,e.query]])]),(0,Co._)("div",Ql,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.availableUsers,(function(t){return(0,Co.wg)(),(0,Co.iD)("div",{key:t.id,class:"member"},[(0,Co._)("div",{onClickCapture:(0,wo.iM)((function(n){return e.goToChat(t)}),["prevent"])},[(0,Co.Wm)(a,{user:t},null,8,["user"])],40,Xl)])})),128))])])}]]);function sd(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function ad(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?sd(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):sd(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}const ud={components:{ChatListItem:Vl,List:tu.Z,ChatNew:id},computed:ad(ad({},(0,s.rn)({currentUser:function(e){return e.users.currentUser}})),(0,s.Se)(["sortedChatList"])),data:function(){return{isNew:!1}},created:function(){this.$store.dispatch("fetchChats",{latest:!0})},methods:{cancelNewChat:function(){this.isNew=!1,this.$store.dispatch("fetchChats",{latest:!0})},newChat:function(){this.isNew=!0}}},cd=(0,Jo.Z)(ud,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("ChatNew"),a=(0,Co.up)("ChatListItem"),u=(0,Co.up)("List");return e.isNew?((0,Co.wg)(),(0,Co.iD)("div",Dl,[(0,Co.Wm)(s,{onCancel:e.cancelNewChat},null,8,["onCancel"])])):((0,Co.wg)(),(0,Co.iD)("div",_l,[(0,Co._)("div",kl,[(0,Co._)("span",Cl,(0,So.zw)(e.$t("chats.chats")),1),(0,Co._)("button",{class:"button-default",onClick:t[0]||(t[0]=function(){return e.newChat&&e.newChat.apply(e,arguments)})},(0,So.zw)(e.$t("chats.new")),1)]),(0,Co._)("div",Sl,[e.sortedChatList.length>0?((0,Co.wg)(),(0,Co.iD)("div",jl,[(0,Co.Wm)(u,{items:e.sortedChatList},{item:(0,Co.w5)((function(e){var t=e.item;return[((0,Co.wg)(),(0,Co.j4)(a,{key:t.id,compact:!1,chat:t},null,8,["chat"]))]})),_:1},8,["items"])])):((0,Co.wg)(),(0,Co.iD)("div",Fl,[(0,Co._)("span",null,(0,So.zw)(e.$t("chats.empty_chat_list_placeholder")),1)]))])]))}]]);var ld={class:"chat-view"},dd={class:"chat-view-inner"},pd={ref:"inner",class:"panel-default panel chat-view-body"},md={ref:"header",class:"panel-heading -sticky chat-view-heading"},hd={class:"title text-center"},fd={key:1,class:"chat-loading-error"},gd={class:"alert error"},vd={ref:"footer",class:"panel-body footer"},wd={key:0,class:"badge badge-notification unread-chat-count unread-message-count"},bd={key:0,class:"avatar-wrapper"},yd={class:"chat-message-inner"},Dd={class:"dropdown-menu"},_d=["title"],kd={class:"created-at"},Cd={key:1,class:"chat-message-date-separator"},Sd=n(66596),jd=n(67671),Fd=n(92798),Ad=n(39776);const Od={name:"Timeago",props:["date"],computed:{displayDate:function(){var e=new Date;return e.setHours(0,0,0,0),this.date.getTime()===e.getTime()?this.$t("display_date.today"):this.date.toLocaleDateString(Ad.Z.internalToBrowserLocale(this.$i18n.locale),{day:"numeric",month:"long"})}}},Ed=(0,Jo.Z)(Od,[["render",function(e,t,n,o,r,i){return(0,Co.wg)(),(0,Co.iD)("time",null,(0,So.zw)(i.displayDate),1)}]]);function zd(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Pd(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?zd(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):zd(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Ht.vI.add(Vt.NBC,Vt.cNd);const Id={name:"ChatMessage",props:["author","edited","noHeading","chatViewItem","hoveredMessageChain"],emits:["hover"],components:{Popover:fc.default,Attachment:Sd.Z,StatusContent:$l.Z,UserAvatar:Bl.default,Gallery:jd.Z,LinkPreview:Fd.Z,ChatMessageDate:Ed,UserPopover:(0,Co.RC)((function(){return Promise.resolve().then(n.bind(n,22588))}))},computed:Pd(Pd({createdAt:function(){return this.chatViewItem.data.created_at.toLocaleTimeString("en",{hour:"2-digit",minute:"2-digit",hour12:!1})},isCurrentUser:function(){return this.message.account_id===this.currentUser.id},message:function(){return this.chatViewItem.data},isMessage:function(){return"message"===this.chatViewItem.type},messageForStatusContent:function(){return{summary:"",emojis:this.message.emojis,raw_html:this.message.content||"",text:this.message.content||"",attachments:this.message.attachments}},hasAttachment:function(){return this.message.attachments.length>0}},(0,s.rn)({betterShadow:function(e){return e.interface.browserSupport.cssFilter},currentUser:function(e){return e.users.currentUser},restrictedNicknames:function(e){return e.instance.restrictedNicknames}})),{},{popoverMarginStyle:function(){return this.isCurrentUser?{}:{left:50}}},(0,s.Se)(["mergedConfig","findUser"])),data:function(){return{hovered:!1,menuOpened:!1}},methods:{onHover:function(e){this.$emit("hover",{isHovered:e,messageChainId:this.chatViewItem.messageChainId})},deleteMessage:function(){var e=this;return(0,o.Z)(i().mark((function t(){return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!window.confirm(e.$t("chats.delete_confirm"))){t.next=4;break}return t.next=4,e.$store.dispatch("deleteChatMessage",{messageId:e.chatViewItem.data.id,chatId:e.chatViewItem.data.chat_id});case 4:e.hovered=!1,e.menuOpened=!1;case 6:case"end":return t.stop()}}),t)})))()}}},xd=(0,Jo.Z)(Id,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("UserAvatar"),a=(0,Co.up)("UserPopover"),u=(0,Co.up)("FAIcon"),c=(0,Co.up)("Popover"),l=(0,Co.up)("StatusContent"),d=(0,Co.up)("ChatMessageDate");return e.isMessage?((0,Co.wg)(),(0,Co.iD)("div",{key:0,class:(0,So.C_)(["chat-message-wrapper",{"hovered-message-chain":e.hoveredMessageChain}]),onMouseover:t[5]||(t[5]=function(t){return e.onHover(!0)}),onMouseleave:t[6]||(t[6]=function(t){return e.onHover(!1)})},[(0,Co._)("div",{class:(0,So.C_)(["chat-message",[{outgoing:e.isCurrentUser,incoming:!e.isCurrentUser}]])},[e.isCurrentUser?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.iD)("div",bd,[e.chatViewItem.isHead?((0,Co.wg)(),(0,Co.j4)(a,{key:0,"user-id":e.author.id},{default:(0,Co.w5)((function(){return[(0,Co.Wm)(s,{compact:!0,"better-shadow":e.betterShadow,user:e.author},null,8,["better-shadow","user"])]})),_:1},8,["user-id"])):(0,Co.kq)("",!0)])),(0,Co._)("div",yd,[(0,Co._)("div",{class:"status-body",style:(0,So.j5)({"min-width":e.message.attachment?"80%":""})},[(0,Co._)("div",{class:(0,So.C_)(["media status",{"without-attachment":!e.hasAttachment,pending:e.chatViewItem.data.pending,error:e.chatViewItem.data.error}]),style:{position:"relative"},onMouseenter:t[3]||(t[3]=function(t){return e.hovered=!0}),onMouseleave:t[4]||(t[4]=function(t){return e.hovered=!1})},[(0,Co._)("div",{class:(0,So.C_)(["chat-message-menu",{visible:e.hovered||e.menuOpened}])},[(0,Co.Wm)(c,{trigger:"click",placement:"top","bound-to-selector":".chat-view-inner","bound-to":{x:"container"},margin:e.popoverMarginStyle,onShow:t[1]||(t[1]=function(t){return e.menuOpened=!0}),onClose:t[2]||(t[2]=function(t){return e.menuOpened=!1})},{content:(0,Co.w5)((function(){return[(0,Co._)("div",Dd,[(0,Co._)("button",{class:"button-default dropdown-item dropdown-item-icon",onClick:t[0]||(t[0]=function(){return e.deleteMessage&&e.deleteMessage.apply(e,arguments)})},[(0,Co.Wm)(u,{icon:"times"}),(0,Co.Uk)(" "+(0,So.zw)(e.$t("chats.delete")),1)])])]})),trigger:(0,Co.w5)((function(){return[(0,Co._)("button",{class:"button-default menu-icon",title:e.$t("chats.more")},[(0,Co.Wm)(u,{icon:"ellipsis-h"})],8,_d)]})),_:1},8,["margin"])],2),(0,Co.Wm)(l,{class:"message-content",status:e.messageForStatusContent,"full-content":!0},{footer:(0,Co.w5)((function(){return[(0,Co._)("span",kd,(0,So.zw)(e.createdAt),1)]})),_:1},8,["status"])],34)],4)])],2)],34)):((0,Co.wg)(),(0,Co.iD)("div",Cd,[(0,Co.Wm)(d,{date:e.chatViewItem.date},null,8,["date"])]))}]]);var Td=function(){return{scrollTop:window.scrollY,scrollHeight:document.documentElement.scrollHeight,offsetHeight:window.innerHeight}};function $d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Bd(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?$d(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):$d(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Ht.vI.add(Vt.ptq,Vt.A35);var Ud={components:{ChatMessage:xd,ChatTitle:Nl,PostStatusForm:Ir.Z},data:function(){return{jumpToBottomButtonVisible:!1,hoveredMessageChainId:void 0,lastScrollPosition:{},scrollableContainerHeight:"100%",errorLoadingChat:!1,messageRetriers:{}}},created:function(){this.startFetching(),window.addEventListener("resize",this.handleResize)},mounted:function(){var e=this;window.addEventListener("scroll",this.handleScroll),void 0!==document.hidden&&document.addEventListener("visibilitychange",this.handleVisibilityChange,!1),this.$nextTick((function(){e.handleResize()}))},unmounted:function(){window.removeEventListener("scroll",this.handleScroll),window.removeEventListener("resize",this.handleResize),void 0!==document.hidden&&document.removeEventListener("visibilitychange",this.handleVisibilityChange,!1),this.$store.dispatch("clearCurrentChat")},computed:Bd(Bd({recipient:function(){return this.currentChat&&this.currentChat.account},recipientId:function(){return this.$route.params.recipient_id},formPlaceholder:function(){return this.recipient?this.$t("chats.message_user",{nickname:this.recipient.screen_name_ui}):""},chatViewItems:function(){return Jn.getView(this.currentChatMessageService)},newMessageCount:function(){return this.currentChatMessageService&&this.currentChatMessageService.newMessageCount},streamingEnabled:function(){return this.mergedConfig.useStreamingApi&&this.mastoUserSocketStatus===h._z.JOINED}},(0,s.Se)(["currentChat","currentChatMessageService","findOpenedChatByRecipientId","mergedConfig"])),(0,s.rn)({backendInteractor:function(e){return e.api.backendInteractor},mastoUserSocketStatus:function(e){return e.api.mastoUserSocketStatus},mobileLayout:function(e){return"mobile"===e.interface.layoutType},currentUser:function(e){return e.users.currentUser}})),watch:{chatViewItems:function(){var e=this,t=this.bottomedOut(10);this.$nextTick((function(){t&&e.scrollDown()}))},$route:function(){this.startFetching()},mastoUserSocketStatus:function(e){e===h._z.JOINED&&this.fetchChat({isFirstFetch:!0})}},methods:{onMessageHover:function(e){var t=e.isHovered,n=e.messageChainId;this.hoveredMessageChainId=t?n:void 0},onFilesDropped:function(){var e=this;this.$nextTick((function(){e.handleResize()}))},handleVisibilityChange:function(){var e=this;this.$nextTick((function(){!document.hidden&&e.bottomedOut(10)&&e.scrollDown({forceRead:!0})}))},handleResize:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=t.delayed,o=void 0!==n&&n;o?setTimeout((function(){e.handleResize(Bd(Bd({},t),{},{delayed:!1}))}),100):this.$nextTick((function(){var t=Td().offsetHeight,n=(void 0===t?void 0:t)-e.lastScrollPosition.offsetHeight;0===n||e.bottomedOut()||e.$nextTick((function(){window.scrollBy({top:-Math.trunc(n)})})),e.lastScrollPosition=Td()}))},scrollDown:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.behavior,n=void 0===t?"auto":t,o=e.forceRead,r=void 0!==o&&o;this.$nextTick((function(){window.scrollTo({top:document.documentElement.scrollHeight,behavior:n})})),r&&this.readChat()},readChat:function(){if(this.currentChatMessageService&&this.currentChatMessageService.maxId&&!document.hidden){var e=this.currentChatMessageService.maxId;this.$store.dispatch("readChat",{id:this.currentChat.id,lastReadId:e})}},bottomedOut:function(e){return function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=window.scrollY+e;return document.documentElement.scrollHeight-window.innerHeight<=t}(e)},reachedTop:function(){return window.scrollY<=0},cullOlderCheck:function(){var e=this;window.setTimeout((function(){e.bottomedOut(10)&&e.$store.dispatch("cullOlderMessages",e.currentChatMessageService.chatId)}),5e3)},handleScroll:Nu()((function(){var e=this;this.lastScrollPosition=Td(),this.currentChat&&(this.reachedTop()?this.fetchChat({maxId:this.currentChatMessageService.minId}):this.bottomedOut(10)?(this.jumpToBottomButtonVisible=!1,this.cullOlderCheck(),this.newMessageCount>0&&window.setTimeout((function(){e.$el&&e.readChat()}),1500)):this.jumpToBottomButtonVisible=!0)}),200),handleScrollUp:function(e){var t,n,o=Td();window.scrollTo({top:(t=e,n=o,t.scrollTop+(n.scrollHeight-t.scrollHeight))})},fetchChat:function(e){var t=this,n=e.isFirstFetch,o=void 0!==n&&n,r=e.fetchLatest,i=void 0!==r&&r,s=e.maxId,a=this.currentChatMessageService;if(a&&(!i||!this.streamingEnabled)){var u=a.chatId,c=!!s,l=i&&a.maxId;return this.backendInteractor.chatMessages({id:u,maxId:s,sinceId:l}).then((function(e){o&&Jn.clear(a);var n=Td();t.$store.dispatch("addChatMessages",{chatId:u,messages:e}).then((function(){t.$nextTick((function(){c&&t.handleScrollUp(n),!(document.documentElement.scrollHeight>window.innerHeight)&&e.length>0&&t.fetchChat({maxId:t.currentChatMessageService.minId})}))}))}))}},startFetching:function(){var e=this;return(0,o.Z)(i().mark((function t(){var n;return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n=e.findOpenedChatByRecipientId(e.recipientId)){t.next=12;break}return t.prev=2,t.next=5,e.backendInteractor.getOrCreateChat({accountId:e.recipientId});case 5:n=t.sent,t.next=12;break;case 8:t.prev=8,t.t0=t.catch(2),console.error("Error creating or getting a chat",t.t0),e.errorLoadingChat=!0;case 12:n&&(e.$nextTick((function(){e.scrollDown({forceRead:!0})})),e.$store.dispatch("addOpenedChat",{chat:n}),e.doStartFetching());case 13:case"end":return t.stop()}}),t,null,[[2,8]])})))()},doStartFetching:function(){var e=this;this.$store.dispatch("startFetchingCurrentChat",{fetcher:function(){return(0,Ce.F)((function(){return e.fetchChat({fetchLatest:!0})}),5e3)}}),this.fetchChat({isFirstFetch:!0})},handleAttachmentPosting:function(){var e=this;this.$nextTick((function(){e.handleResize(),e.scrollDown({forceRead:!0})}))},sendMessage:function(e){var t=this,n=e.status,o=e.media,r=e.idempotencyKey,i={id:this.currentChat.id,content:n,idempotencyKey:r};o[0]&&(i.mediaId=o[0].id);var s=function(e){var t=e.attachments,n=e.userId,o=e.idempotencyKey,r={content:e.content,chat_id:e.chatId,created_at:new Date,id:"".concat((new Date).getTime()),attachments:t,account_id:n,idempotency_key:o,emojis:[],pending:!0,isNormalized:!0};return t[0]&&(r.attachment=t[0]),r}({attachments:o,chatId:this.currentChat.id,content:n,userId:this.currentUser.id,idempotencyKey:r});return this.$store.dispatch("addChatMessages",{chatId:this.currentChat.id,messages:[s]}).then((function(){t.handleAttachmentPosting()})),this.doSendMessage({params:i,fakeMessage:s,retriesLeft:10})},doSendMessage:function(e){var t=this,n=e.params,o=e.fakeMessage,r=e.retriesLeft,i=void 0===r?10:r;if(!(i<=0))return this.backendInteractor.sendChatMessage(n).then((function(e){return t.$store.dispatch("addChatMessages",{chatId:t.currentChat.id,updateMaxId:!1,messages:[Bd(Bd({},e),{},{fakeId:o.id})]}),e})).catch((function(e){return console.error("Error sending message",e),t.$store.dispatch("handleMessageError",{chatId:t.currentChat.id,fakeId:o.id,isRetry:10!==i}),(e.statusCode>=500&&e.statusCode<600||"Failed to fetch"===e.message)&&(t.messageRetriers[o.id]=setTimeout((function(){t.doSendMessage({params:n,fakeMessage:o,retriesLeft:i-1})}),1e3*Math.pow(2,10-i))),{}})),Promise.resolve(o)},goBack:function(){this.$router.push({name:"chats",params:{username:this.currentUser.screen_name}})}}};const Md=Ud,Ld=(0,Jo.Z)(Md,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("FAIcon"),a=(0,Co.up)("ChatTitle"),u=(0,Co.up)("ChatMessage"),c=(0,Co.up)("PostStatusForm");return(0,Co.wg)(),(0,Co.iD)("div",ld,[(0,Co._)("div",dd,[(0,Co._)("div",pd,[(0,Co._)("div",md,[(0,Co._)("button",{class:"button-unstyled go-back-button",onClick:t[0]||(t[0]=function(){return e.goBack&&e.goBack.apply(e,arguments)})},[(0,Co.Wm)(s,{size:"lg",icon:"chevron-left"})]),(0,Co._)("div",hd,[(0,Co.Wm)(a,{user:e.recipient,"with-avatar":!0},null,8,["user"])])],512),(0,Co._)("div",{class:"message-list",style:(0,So.j5)({height:e.scrollableContainerHeight})},[e.errorLoadingChat?((0,Co.wg)(),(0,Co.iD)("div",fd,[(0,Co._)("div",gd,(0,So.zw)(e.$t("chats.error_loading_chat")),1)])):((0,Co.wg)(!0),(0,Co.iD)(Co.HY,{key:0},(0,Co.Ko)(e.chatViewItems,(function(t){return(0,Co.wg)(),(0,Co.j4)(u,{key:t.id,author:e.recipient,"chat-view-item":t,"hovered-message-chain":t.messageChainId===e.hoveredMessageChainId,onHover:e.onMessageHover},null,8,["author","chat-view-item","hovered-message-chain","onHover"])})),128))],4),(0,Co._)("div",vd,[(0,Co._)("div",{class:(0,So.C_)(["jump-to-bottom-button",{visible:e.jumpToBottomButtonVisible}]),onClick:t[1]||(t[1]=function(t){return e.scrollDown({behavior:"smooth"})})},[(0,Co._)("span",null,[(0,Co.Wm)(s,{icon:"chevron-down"}),e.newMessageCount?((0,Co.wg)(),(0,Co.iD)("div",wd,(0,So.zw)(e.newMessageCount),1)):(0,Co.kq)("",!0)])],2),(0,Co.Wm)(c,{"disable-subject":!0,"disable-scope-selector":!0,"disable-notice":!0,"disable-lock-warning":!0,"disable-polls":!0,"disable-sensitivity-checkbox":!0,"disable-submit":e.errorLoadingChat||!e.currentChat,"disable-preview":!0,"optimistic-posting":!0,"post-handler":e.sendMessage,"submit-on-enter":!e.mobileLayout,"preserve-focus":!e.mobileLayout,"auto-focus":!e.mobileLayout,placeholder:e.formPlaceholder,"file-limit":1,"max-height":"160","emoji-picker-placement":"top",onResize:e.handleResize},null,8,["disable-submit","post-handler","submit-on-enter","preserve-focus","auto-focus","placeholder","onResize"])],512)],512)])])}]]);var Rd={key:0,class:"user-profile panel panel-default"},qd={key:0,class:"user-birthday"},Nd={key:1,class:"user-profile-fields"},Zd=["title"],Wd=["title"],Hd=["label","disabled"],Vd=["label","disabled"],Kd={key:1,class:"panel user-profile-placeholder"},Gd={class:"panel-heading"},Yd={class:"title"},Jd={class:"panel-body"},Qd={key:0},Xd={class:"follow-card-content-container"},ep={key:0,class:"faint"},tp={key:0,class:"follow-card-follow-button"},np=n(72895),op=n(34837),rp=["disabled","title"],ip=["textContent"];const sp={props:["user","relationship"],data:function(){return{inProgress:!1,showingConfirmRemoveFollower:!1}},components:{ConfirmModal:Da.Z},computed:{label:function(){return this.inProgress?this.$t("user_card.follow_progress"):this.$t("user_card.remove_follower")},shouldConfirmRemoveUserFromFollowers:function(){return this.$store.getters.mergedConfig.modalOnRemoveUserFromFollowers}},methods:{showConfirmRemoveUserFromFollowers:function(){this.showingConfirmRemoveFollower=!0},hideConfirmRemoveUserFromFollowers:function(){this.showingConfirmRemoveFollower=!1},onClick:function(){this.shouldConfirmRemoveUserFromFollowers?this.showConfirmRemoveUserFromFollowers():this.doRemoveUserFromFollowers()},doRemoveUserFromFollowers:function(){var e=this;this.inProgress=!0,this.$store.dispatch("removeUserFromFollowers",this.relationship.id).then((function(){e.inProgress=!1})),this.hideConfirmRemoveUserFromFollowers()}}},ap=(0,Jo.Z)(sp,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("i18n-t"),a=(0,Co.up)("confirm-modal");return(0,Co.wg)(),(0,Co.iD)("button",{class:(0,So.C_)(["btn button-default follow-button",{toggled:e.inProgress}]),disabled:e.inProgress,title:e.$t("user_card.remove_follower"),onClick:t[0]||(t[0]=function(){return e.onClick&&e.onClick.apply(e,arguments)})},[(0,Co.Uk)((0,So.zw)(e.label)+" ",1),((0,Co.wg)(),(0,Co.j4)(Co.lR,{to:"#modal"},[e.showingConfirmRemoveFollower?((0,Co.wg)(),(0,Co.j4)(a,{key:0,title:e.$t("user_card.remove_follower_confirm_title"),"confirm-text":e.$t("user_card.remove_follower_confirm_accept_button"),"cancel-text":e.$t("user_card.remove_follower_confirm_cancel_button"),onAccepted:e.doRemoveUserFromFollowers,onCancelled:e.hideConfirmRemoveUserFromFollowers},{default:(0,Co.w5)((function(){return[(0,Co.Wm)(s,{keypath:"user_card.remove_follower_confirm",tag:"span"},{user:(0,Co.w5)((function(){return[(0,Co._)("span",{textContent:(0,So.zw)(e.user.screen_name_ui)},null,8,ip)]})),_:1})]})),_:1},8,["title","confirm-text","cancel-text","onAccepted","onCancelled"])):(0,Co.kq)("",!0)]))],10,rp)}]]),up={props:["user","noFollowsYou"],components:{BasicUserCard:ed.Z,RemoteFollow:np.Z,FollowButton:op.Z,RemoveFollowerButton:ap},computed:{isMe:function(){return this.$store.state.users.currentUser.id===this.user.id},loggedIn:function(){return this.$store.state.users.currentUser},relationship:function(){return this.$store.getters.relationship(this.user.id)}}},cp=(0,Jo.Z)(up,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("RemoteFollow"),a=(0,Co.up)("FollowButton"),u=(0,Co.up)("RemoveFollowerButton"),c=(0,Co.up)("basic-user-card");return(0,Co.wg)(),(0,Co.j4)(c,{user:e.user},{default:(0,Co.w5)((function(){return[(0,Co._)("div",Xd,[e.isMe||!e.noFollowsYou&&e.relationship.followed_by?((0,Co.wg)(),(0,Co.iD)("span",ep,(0,So.zw)(e.isMe?e.$t("user_card.its_you"):e.$t("user_card.follows_you")),1)):(0,Co.kq)("",!0),e.loggedIn?e.isMe?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.iD)(Co.HY,{key:2},[(0,Co.Wm)(a,{relationship:e.relationship,"label-following":e.$t("user_card.follow_unfollow"),class:"follow-card-follow-button",user:e.user},null,8,["relationship","label-following","user"]),e.noFollowsYou&&e.relationship.followed_by?((0,Co.wg)(),(0,Co.j4)(u,{key:0,user:e.user,relationship:e.relationship,class:"follow-card-button"},null,8,["user","relationship"])):(0,Co.kq)("",!0)],64)):((0,Co.wg)(),(0,Co.iD)(Co.HY,{key:1},[e.relationship.following?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.iD)("div",tp,[(0,Co.Wm)(s,{user:e.user},null,8,["user"])]))],64))])]})),_:1},8,["user"])}]]);var lp=n(98027);Ht.vI.add(Vt.IJ7,Vt.xiy);var dp=(0,lp.Z)({fetch:function(e,t){return t.dispatch("fetchFollowers",e.userId)},select:function(e,t){return Dt()(t.getters.findUser(e.userId),"followerIds",[]).map((function(e){return t.getters.findUser(e)}))},destroy:function(e,t){return t.dispatch("clearFollowers",e.userId)},childPropName:"items",additionalPropNames:["userId"]})(tu.Z),pp=(0,lp.Z)({fetch:function(e,t){return t.dispatch("fetchFriends",e.userId)},select:function(e,t){return Dt()(t.getters.findUser(e.userId),"friendIds",[]).map((function(e){return t.getters.findUser(e)}))},destroy:function(e,t){return t.dispatch("clearFriends",e.userId)},childPropName:"items",additionalPropNames:["userId"]})(tu.Z),mp="statuses";const hp={data:function(){return{error:!1,userId:null,tab:mp,footerRef:null}},created:function(){var e=this.$route.params;this.load({name:e.name,id:e.id}),this.tab=Dt()(this.$route,"query.tab",mp)},unmounted:function(){this.stopFetching()},computed:{timeline:function(){return this.$store.state.statuses.timelines.user},favorites:function(){return this.$store.state.statuses.timelines.favorites},media:function(){return this.$store.state.statuses.timelines.media},isUs:function(){return this.userId&&this.$store.state.users.currentUser.id&&this.userId===this.$store.state.users.currentUser.id},user:function(){return this.$store.getters.findUser(this.userId)},isExternal:function(){return"external-user-profile"===this.$route.name},followsTabVisible:function(){return this.isUs||!this.user.hide_follows},followersTabVisible:function(){return this.isUs||!this.user.hide_followers},formattedBirthday:function(){var e=Ad.Z.internalToBrowserLocale(this.$i18n.locale);return this.user.birthday&&new Date(Date.parse(this.user.birthday)).toLocaleDateString(e,{timeZone:"UTC",day:"numeric",month:"long",year:"numeric"})}},methods:{setFooterRef:function(e){this.footerRef=e},load:function(e){var t=this,n=function(e,n){n!==t.$store.state.statuses.timelines[e].userId&&t.$store.commit("clearTimeline",{timeline:e}),t.$store.dispatch("startFetchingTimeline",{timeline:e,userId:n})},o=function(e){t.userId=e,n("user",e),n("media",e),t.isUs&&n("favorites",e),t.$store.dispatch("fetchPinnedStatuses",e)};this.userId=null,this.error=!1;var r=e.id,i=e.name,s=r?this.$store.getters.findUser(r):this.$store.getters.findUserByName(i);s?o(s.id):(r?this.$store.dispatch("fetchUser",r):this.$store.dispatch("fetchUserByName",i)).then((function(e){var t=e.id;return o(t)})).catch((function(e){var n=Dt()(e,"error.error");t.error="No user with such user_id"===n?t.$t("user_profile.profile_does_not_exist"):n||t.$t("user_profile.profile_loading_error")}))},stopFetching:function(){this.$store.dispatch("stopFetchingTimeline","user"),this.$store.dispatch("stopFetchingTimeline","favorites"),this.$store.dispatch("stopFetchingTimeline","media")},switchUser:function(e){this.stopFetching(),this.load(e)},onTabSwitch:function(e){this.tab=e,this.$router.replace({query:{tab:e}})},linkClicked:function(e){var t=e.target;"SPAN"===t.tagName&&(t=t.parentNode),"A"===t.tagName&&window.open(t.href,"_blank")}},watch:{"$route.params.id":function(e){e&&this.switchUser({id:e})},"$route.params.name":function(e){e&&this.switchUser({name:e})},"$route.query":function(e){this.tab=e.tab||mp}},components:{UserCard:xr.Z,Timeline:Vc,FollowerList:dp,FriendList:pp,FollowCard:cp,TabSwitcher:fl.Z,Conversation:$c,RichContent:Rl.Z}},fp=(0,Jo.Z)(hp,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("UserCard"),a=(0,Co.up)("FAIcon"),u=(0,Co.up)("RichContent"),c=(0,Co.up)("Timeline"),l=(0,Co.up)("FollowCard"),d=(0,Co.up)("FriendList"),p=(0,Co.up)("FollowerList"),m=(0,Co.up)("tab-switcher");return(0,Co.wg)(),(0,Co.iD)("div",null,[e.user?((0,Co.wg)(),(0,Co.iD)("div",Rd,[(0,Co.Wm)(s,{"user-id":e.userId,switcher:!0,selected:e.timeline.viewing,"avatar-action":"zoom",rounded:"top","has-note-editor":!0},null,8,["user-id","selected"]),e.user.birthday?((0,Co.wg)(),(0,Co.iD)("span",qd,[(0,Co.Wm)(a,{class:"fa-old-padding",icon:"birthday-cake"}),(0,Co.Uk)(" "+(0,So.zw)(e.$t("user_card.birthday",{birthday:e.formattedBirthday})),1)])):(0,Co.kq)("",!0),e.user.fields_html&&e.user.fields_html.length>0?((0,Co.wg)(),(0,Co.iD)("div",Nd,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.user.fields_html,(function(t,n){return(0,Co.wg)(),(0,Co.iD)("dl",{key:n,class:"user-profile-field"},[(0,Co._)("dt",{title:e.user.fields_text[n].name,class:"user-profile-field-name"},[(0,Co.Wm)(u,{html:t.name,emoji:e.user.emoji},null,8,["html","emoji"])],8,Zd),(0,Co._)("dd",{title:e.user.fields_text[n].value,class:"user-profile-field-value"},[(0,Co.Wm)(u,{html:t.value,emoji:e.user.emoji},null,8,["html","emoji"])],8,Wd)])})),128))])):(0,Co.kq)("",!0),(0,Co.Wm)(m,{"active-tab":e.tab,"render-only-focused":!0,"on-switch":e.onTabSwitch},{default:(0,Co.w5)((function(){return[(0,Co.Wm)(c,{key:"statuses",label:e.$t("user_card.statuses"),count:e.user.statuses_count,embedded:!0,title:e.$t("user_profile.timeline_title"),timeline:e.timeline,"timeline-name":"user","user-id":e.userId,"pinned-status-ids":e.user.pinnedStatusIds,"in-profile":!0,"footer-slipgate":e.footerRef},null,8,["label","count","title","timeline","user-id","pinned-status-ids","footer-slipgate"]),e.followsTabVisible?((0,Co.wg)(),(0,Co.iD)("div",{key:"followees",label:e.$t("user_card.followees"),disabled:!e.user.friends_count},[(0,Co.Wm)(d,{"user-id":e.userId},{item:(0,Co.w5)((function(e){var t=e.item;return[(0,Co.Wm)(l,{user:t},null,8,["user"])]})),_:1},8,["user-id"])],8,Hd)):(0,Co.kq)("",!0),e.followersTabVisible?((0,Co.wg)(),(0,Co.iD)("div",{key:"followers",label:e.$t("user_card.followers"),disabled:!e.user.followers_count},[(0,Co.Wm)(p,{"user-id":e.userId},{item:(0,Co.w5)((function(t){var n=t.item;return[(0,Co.Wm)(l,{user:n,"no-follows-you":e.isUs},null,8,["user","no-follows-you"])]})),_:1},8,["user-id"])],8,Vd)):(0,Co.kq)("",!0),(0,Co.Wm)(c,{key:"media",label:e.$t("user_card.media"),disabled:!e.media.visibleStatuses.length,embedded:!0,title:e.$t("user_card.media"),"timeline-name":"media",timeline:e.media,"user-id":e.userId,"in-profile":!0,"footer-slipgate":e.footerRef},null,8,["label","disabled","title","timeline","user-id","footer-slipgate"]),e.isUs?((0,Co.wg)(),(0,Co.j4)(c,{key:"favorites",label:e.$t("user_card.favorites"),disabled:!e.favorites.visibleStatuses.length,embedded:!0,title:e.$t("user_card.favorites"),"timeline-name":"favorites",timeline:e.favorites,"in-profile":!0,"footer-slipgate":e.footerRef},null,8,["label","disabled","title","timeline","footer-slipgate"])):(0,Co.kq)("",!0)]})),_:1},8,["active-tab","on-switch"]),(0,Co._)("div",{ref:e.setFooterRef,class:"panel-footer"},null,512)])):((0,Co.wg)(),(0,Co.iD)("div",Kd,[(0,Co._)("div",Gd,[(0,Co._)("div",Yd,(0,So.zw)(e.$t("settings.profile_tab")),1)]),(0,Co._)("div",Jd,[e.error?((0,Co.wg)(),(0,Co.iD)("span",Qd,(0,So.zw)(e.error),1)):((0,Co.wg)(),(0,Co.j4)(a,{key:1,spin:"",icon:"circle-notch"}))])]))])}]]);var gp={class:"panel panel-default"},vp={class:"panel-heading"},wp={class:"title"},bp={class:"search-input-container"},yp=["placeholder"],Dp={key:0,class:"text-center loading-icon"},_p={key:1},kp={class:"search-nav-heading"},Cp=["label"],Sp=["label"],jp=["label"],Fp={class:"panel-body"},Ap={key:0},Op={class:"new-status-notification text-center"},Ep={key:1,class:"text-center loading-icon"},zp={key:2,class:"search-result-heading"},Pp={key:1},Ip={key:0,class:"search-result-heading"},xp={key:2},Tp={key:0,class:"search-result-heading"},$p={class:"hashtag"},Bp={key:0},Up={key:0},Mp={key:1},Lp={key:0,class:"count"},Rp=(0,Co._)("div",{class:"search-result-footer text-center panel-footer faint"},null,-1),qp=n(45578),Np=n.n(qp);Ht.vI.add(Vt.IJ7,Vt.wn1);const Zp={components:{FollowCard:cp,Conversation:$c,Status:eu.default,TabSwitcher:fl.Z},props:["query"],data:function(){return{loaded:!1,loading:!1,searchTerm:this.query||"",userIds:[],statuses:[],hashtags:[],currenResultTab:"statuses",statusesOffset:0,lastStatusFetchCount:0,lastQuery:""}},computed:{users:function(){var e=this;return this.userIds.map((function(t){return e.$store.getters.findUser(t)}))},visibleStatuses:function(){var e=this.$store.state.statuses.allStatusesObject;return this.statuses.filter((function(t){return e[t.id]&&!e[t.id].deleted}))}},mounted:function(){this.search(this.query)},watch:{query:function(e){this.searchTerm=e,this.search(e)}},methods:{newQuery:function(e){this.$router.push({name:"search",query:{query:e}}),this.$refs.searchInput.focus()},search:function(e){var t=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;e?(this.loading=!0,this.$refs.searchInput.blur(),this.lastQuery!==e&&(this.userIds=[],this.hashtags=[],this.statuses=[],this.statusesOffset=0,this.lastStatusFetchCount=0),this.$store.dispatch("search",{q:e,resolve:!0,offset:this.statusesOffset,type:n}).then((function(n){t.loading=!1;var o=t.statuses.length;t.userIds=t.userIds.concat(be()(n.accounts,"id")),t.statuses=Np()(t.statuses.concat(n.statuses),"id"),t.hashtags=t.hashtags.concat(n.hashtags),t.currenResultTab=t.getActiveTab(),t.loaded=!0,t.statusesOffset=t.statuses.length,t.lastStatusFetchCount=t.statuses.length-o,t.lastQuery=e}))):this.loading=!1},resultCount:function(e){var t=this[e].length;return 0===t?"":" (".concat(t,")")},onResultTabSwitch:function(e){this.currenResultTab=e},getActiveTab:function(){return this.visibleStatuses.length>0?"statuses":this.users.length>0?"people":this.hashtags.length>0?"hashtags":"statuses"},lastHistoryRecord:function(e){return e.history&&e.history[0]}}},Wp=(0,Jo.Z)(Zp,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("FAIcon"),a=(0,Co.up)("tab-switcher"),u=(0,Co.up)("Status"),c=(0,Co.up)("FollowCard"),l=(0,Co.up)("router-link");return(0,Co.wg)(),(0,Co.iD)("div",gp,[(0,Co._)("div",vp,[(0,Co._)("div",wp,(0,So.zw)(e.$t("nav.search")),1)]),(0,Co._)("div",bp,[(0,Co.wy)((0,Co._)("input",{ref:"searchInput","onUpdate:modelValue":t[0]||(t[0]=function(t){return e.searchTerm=t}),class:"search-input",placeholder:e.$t("nav.search"),onKeyup:t[1]||(t[1]=(0,wo.D2)((function(t){return e.newQuery(e.searchTerm)}),["enter"]))},null,40,yp),[[wo.nr,e.searchTerm]]),(0,Co._)("button",{class:"btn button-default search-button",type:"submit",onClick:t[2]||(t[2]=function(t){return e.newQuery(e.searchTerm)})},[(0,Co.Wm)(s,{icon:"search"})])]),e.loading&&0==e.statusesOffset?((0,Co.wg)(),(0,Co.iD)("div",Dp,[(0,Co.Wm)(s,{icon:"circle-notch",spin:"",size:"lg"})])):e.loaded?((0,Co.wg)(),(0,Co.iD)("div",_p,[(0,Co._)("div",kp,[(0,Co.Wm)(a,{ref:"tabSwitcher","on-switch":e.onResultTabSwitch,"active-tab":e.currenResultTab},{default:(0,Co.w5)((function(){return[(0,Co._)("span",{key:"statuses",label:e.$t("user_card.statuses")+e.resultCount("visibleStatuses")},null,8,Cp),(0,Co._)("span",{key:"people",label:e.$t("search.people")+e.resultCount("users")},null,8,Sp),(0,Co._)("span",{key:"hashtags",label:e.$t("search.hashtags")+e.resultCount("hashtags")},null,8,jp)]})),_:1},8,["on-switch","active-tab"])])])):(0,Co.kq)("",!0),(0,Co._)("div",Fp,["statuses"===e.currenResultTab?((0,Co.wg)(),(0,Co.iD)("div",Ap,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.visibleStatuses,(function(e){return(0,Co.wg)(),(0,Co.j4)(u,{key:e.id,collapsable:!1,expandable:!1,compact:!1,class:"search-result",statusoid:e,"no-heading":!1},null,8,["statusoid"])})),128)),!e.loading&&e.loaded&&e.lastStatusFetchCount>0?((0,Co.wg)(),(0,Co.iD)("button",{key:0,class:"more-statuses-button button-unstyled -link -fullwidth",onClick:t[3]||(t[3]=(0,wo.iM)((function(t){return e.search(e.searchTerm,"statuses")}),["prevent"]))},[(0,Co._)("div",Op,(0,So.zw)(e.$t("search.load_more")),1)])):e.loading&&e.statusesOffset>0?((0,Co.wg)(),(0,Co.iD)("div",Ep,[(0,Co.Wm)(s,{icon:"circle-notch",spin:"",size:"lg"})])):(0,Co.kq)("",!0),0!==e.visibleStatuses.length&&0!==e.lastStatusFetchCount||e.loading||!e.loaded?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.iD)("div",zp,[(0,Co._)("h4",null,(0,So.zw)(0===e.visibleStatuses.length?e.$t("search.no_results"):e.$t("search.no_more_results")),1)]))])):"people"===e.currenResultTab?((0,Co.wg)(),(0,Co.iD)("div",Pp,[0===e.users.length&&!e.loading&&e.loaded?((0,Co.wg)(),(0,Co.iD)("div",Ip,[(0,Co._)("h4",null,(0,So.zw)(e.$t("search.no_results")),1)])):(0,Co.kq)("",!0),((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.users,(function(e){return(0,Co.wg)(),(0,Co.j4)(c,{key:e.id,user:e,class:"list-item search-result"},null,8,["user"])})),128))])):"hashtags"===e.currenResultTab?((0,Co.wg)(),(0,Co.iD)("div",xp,[0===e.hashtags.length&&!e.loading&&e.loaded?((0,Co.wg)(),(0,Co.iD)("div",Tp,[(0,Co._)("h4",null,(0,So.zw)(e.$t("search.no_results")),1)])):(0,Co.kq)("",!0),((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.hashtags,(function(t){return(0,Co.wg)(),(0,Co.iD)("div",{key:t.url,class:"status trend search-result"},[(0,Co._)("div",$p,[(0,Co.Wm)(l,{to:{name:"tag-timeline",params:{tag:t.name}}},{default:(0,Co.w5)((function(){return[(0,Co.Uk)(" #"+(0,So.zw)(t.name),1)]})),_:2},1032,["to"]),e.lastHistoryRecord(t)?((0,Co.wg)(),(0,Co.iD)("div",Bp,[1==e.lastHistoryRecord(t).accounts?((0,Co.wg)(),(0,Co.iD)("span",Up,(0,So.zw)(e.$t("search.person_talking",{count:e.lastHistoryRecord(t).accounts})),1)):((0,Co.wg)(),(0,Co.iD)("span",Mp,(0,So.zw)(e.$t("search.people_talking",{count:e.lastHistoryRecord(t).accounts})),1))])):(0,Co.kq)("",!0)]),e.lastHistoryRecord(t)?((0,Co.wg)(),(0,Co.iD)("div",Lp,(0,So.zw)(e.lastHistoryRecord(t).uses),1)):(0,Co.kq)("",!0)])})),128))])):(0,Co.kq)("",!0)]),Rp])}]]);var Hp={class:"settings panel panel-default"},Vp={class:"panel-heading"},Kp={class:"panel-body"},Gp={class:"container"},Yp={class:"text-fields"},Jp={class:"form--label",for:"sign-up-username"},Qp=["disabled","placeholder"],Xp={key:0,class:"form-error"},em={key:0},tm={class:"form--label",for:"sign-up-fullname"},nm=["disabled","placeholder"],om={key:1,class:"form-error"},rm={key:0},im={class:"form--label",for:"email"},sm=["disabled","aria-required"],am={key:2,class:"form-error"},um={key:0},cm={class:"form-group"},lm={class:"form--label",for:"bio"},dm=["disabled","placeholder"],pm={class:"form--label",for:"sign-up-password"},mm=["disabled"],hm={key:3,class:"form-error"},fm={key:0},gm={class:"form--label",for:"sign-up-password-confirmation"},vm=["disabled"],wm={key:4,class:"form-error"},bm={key:0},ym={key:1},Dm={class:"form--label",for:"sign-up-birthday"},_m=["disabled","max","aria-required"],km={key:5,class:"form-error"},Cm={key:0},Sm={key:1},jm={key:6,class:"form-group"},Fm={class:"form--label",for:"reason"},Am=["disabled","placeholder"],Om={key:7,id:"captcha-group",class:"form-group"},Em={class:"form--label",for:"captcha-label"},zm=["src"],Pm=["disabled"],Im={key:8,class:"form-group"},xm={for:"token"},Tm={class:"form-group"},$m=["disabled"],Bm=["innerHTML"],Um={key:0,class:"form-group"},Mm={class:"alert error"},Lm=n(21359),Rm=n(35332),qm=n(86269),Nm=n(27483);function Zm(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Wm(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Zm(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Zm(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}const Hm={setup:function(){return{v$:(0,Lm.ZP)()}},data:function(){return{user:{email:"",fullname:"",username:"",password:"",confirm:"",birthday:"",reason:"",language:[""]},captcha:{}}},components:{InterfaceLanguageSwitcher:qm.Z},validations:function(){var e=this;return{user:{email:{required:(0,Rm.CF)((function(){return e.accountActivationRequired}))},username:{required:Rm.C1},fullname:{required:Rm.C1},password:{required:Rm.C1},confirm:{required:Rm.C1,sameAs:(0,Rm.sH)(this.user.password)},birthday:{required:(0,Rm.CF)((function(){return e.birthdayRequired})),maxValue:function(t){return!e.birthdayRequired||new Date(t).getTime()<=e.birthdayMin.getTime()}},reason:{required:(0,Rm.CF)((function(){return e.accountApprovalRequired}))},language:{}}}},created:function(){(!this.registrationOpen&&!this.token||this.signedIn)&&this.$router.push({name:"root"}),this.setCaptcha()},computed:Wm({token:function(){return this.$route.params.token},bioPlaceholder:function(){return this.replaceNewlines(this.$t("registration.bio_placeholder"))},reasonPlaceholder:function(){return this.replaceNewlines(this.$t("registration.reason_placeholder"))},birthdayMin:function(){var e=this.birthdayMinAge,t=new Date;t.setUTCMilliseconds(0),t.setUTCSeconds(0),t.setUTCMinutes(0),t.setUTCHours(0);var n=new Date;return n.setTime(t.getTime()-e*Nm.x4),n},birthdayMinAttr:function(){return this.birthdayMin.toJSON().replace(/T.+$/,"")},birthdayMinFormatted:function(){var e=Ad.Z.internalToBrowserLocale(this.$i18n.locale);return this.user.birthday&&new Date(Date.parse(this.birthdayMin)).toLocaleDateString(e,{timeZone:"UTC",day:"numeric",month:"long",year:"numeric"})}},(0,s.rn)({registrationOpen:function(e){return e.instance.registrationOpen},signedIn:function(e){return!!e.users.currentUser},isPending:function(e){return e.users.signUpPending},serverValidationErrors:function(e){return e.users.signUpErrors},termsOfService:function(e){return e.instance.tos},accountActivationRequired:function(e){return e.instance.accountActivationRequired},accountApprovalRequired:function(e){return e.instance.accountApprovalRequired},birthdayRequired:function(e){return e.instance.birthdayRequired},birthdayMinAge:function(e){return e.instance.birthdayMinAge}})),methods:Wm(Wm({},(0,s.nv)(["signUp","getCaptcha"])),{},{submit:function(){var e=this;return(0,o.Z)(i().mark((function t(){return i().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(e.user.nickname=e.user.username,e.user.token=e.token,e.user.captcha_solution=e.captcha.solution,e.user.captcha_token=e.captcha.token,e.user.captcha_answer_data=e.captcha.answer_data,e.user.language&&(e.user.language=Ad.Z.internalToBackendLocaleMulti(e.user.language.filter((function(e){return e})))),e.v$.$touch(),e.v$.$invalid){t.next=18;break}return t.prev=8,t.next=11,e.signUp(e.user);case 11:e.$router.push({name:"friends"}),t.next=18;break;case 14:t.prev=14,t.t0=t.catch(8),console.warn("Registration failed: ",t.t0),e.setCaptcha();case 18:case"end":return t.stop()}}),t,null,[[8,14]])})))()},setCaptcha:function(){var e=this;this.getCaptcha().then((function(t){e.captcha=t}))},replaceNewlines:function(e){return e.replace(/\s*\n\s*/g," \n")}})},Vm=(0,Jo.Z)(Hm,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("interface-language-switcher");return(0,Co.wg)(),(0,Co.iD)("div",Hp,[(0,Co._)("div",Vp,(0,So.zw)(e.$t("registration.registration")),1),(0,Co._)("div",Kp,[(0,Co._)("form",{class:"registration-form",onSubmit:t[12]||(t[12]=(0,wo.iM)((function(t){return e.submit(e.user)}),["prevent"]))},[(0,Co._)("div",Gp,[(0,Co._)("div",Yp,[(0,Co._)("div",{class:(0,So.C_)(["form-group",{"form-group--error":e.v$.user.username.$error}])},[(0,Co._)("label",Jp,(0,So.zw)(e.$t("login.username")),1),(0,Co.wy)((0,Co._)("input",{id:"sign-up-username","onUpdate:modelValue":t[0]||(t[0]=function(t){return e.v$.user.username.$model=t}),disabled:e.isPending,class:"form-control","aria-required":!0,placeholder:e.$t("registration.username_placeholder")},null,8,Qp),[[wo.nr,e.v$.user.username.$model,void 0,{trim:!0}]])],2),e.v$.user.username.$dirty?((0,Co.wg)(),(0,Co.iD)("div",Xp,[(0,Co._)("ul",null,[e.v$.user.username.required?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.iD)("li",em,[(0,Co._)("span",null,(0,So.zw)(e.$t("registration.validations.username_required")),1)]))])])):(0,Co.kq)("",!0),(0,Co._)("div",{class:(0,So.C_)(["form-group",{"form-group--error":e.v$.user.fullname.$error}])},[(0,Co._)("label",tm,(0,So.zw)(e.$t("registration.fullname")),1),(0,Co.wy)((0,Co._)("input",{id:"sign-up-fullname","onUpdate:modelValue":t[1]||(t[1]=function(t){return e.v$.user.fullname.$model=t}),disabled:e.isPending,class:"form-control","aria-required":!0,placeholder:e.$t("registration.fullname_placeholder")},null,8,nm),[[wo.nr,e.v$.user.fullname.$model,void 0,{trim:!0}]])],2),e.v$.user.fullname.$dirty?((0,Co.wg)(),(0,Co.iD)("div",om,[(0,Co._)("ul",null,[e.v$.user.fullname.required?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.iD)("li",rm,[(0,Co._)("span",null,(0,So.zw)(e.$t("registration.validations.fullname_required")),1)]))])])):(0,Co.kq)("",!0),(0,Co._)("div",{class:(0,So.C_)(["form-group",{"form-group--error":e.v$.user.email.$error}])},[(0,Co._)("label",im,(0,So.zw)(e.accountActivationRequired?e.$t("registration.email"):e.$t("registration.email_optional")),1),(0,Co.wy)((0,Co._)("input",{id:"email","onUpdate:modelValue":t[2]||(t[2]=function(t){return e.v$.user.email.$model=t}),disabled:e.isPending,class:"form-control",type:"email","aria-required":e.accountActivationRequired},null,8,sm),[[wo.nr,e.v$.user.email.$model]])],2),e.v$.user.email.$dirty?((0,Co.wg)(),(0,Co.iD)("div",am,[(0,Co._)("ul",null,[e.v$.user.email.required?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.iD)("li",um,[(0,Co._)("span",null,(0,So.zw)(e.$t("registration.validations.email_required")),1)]))])])):(0,Co.kq)("",!0),(0,Co._)("div",cm,[(0,Co._)("label",lm,(0,So.zw)(e.$t("registration.bio_optional")),1),(0,Co.wy)((0,Co._)("textarea",{id:"bio","onUpdate:modelValue":t[3]||(t[3]=function(t){return e.user.bio=t}),disabled:e.isPending,class:"form-control",placeholder:e.bioPlaceholder},null,8,dm),[[wo.nr,e.user.bio]])]),(0,Co._)("div",{class:(0,So.C_)(["form-group",{"form-group--error":e.v$.user.password.$error}])},[(0,Co._)("label",pm,(0,So.zw)(e.$t("login.password")),1),(0,Co.wy)((0,Co._)("input",{id:"sign-up-password","onUpdate:modelValue":t[4]||(t[4]=function(t){return e.user.password=t}),disabled:e.isPending,class:"form-control",type:"password","aria-required":!0},null,8,mm),[[wo.nr,e.user.password]])],2),e.v$.user.password.$dirty?((0,Co.wg)(),(0,Co.iD)("div",hm,[(0,Co._)("ul",null,[e.v$.user.password.required?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.iD)("li",fm,[(0,Co._)("span",null,(0,So.zw)(e.$t("registration.validations.password_required")),1)]))])])):(0,Co.kq)("",!0),(0,Co._)("div",{class:(0,So.C_)(["form-group",{"form-group--error":e.v$.user.confirm.$error}])},[(0,Co._)("label",gm,(0,So.zw)(e.$t("registration.password_confirm")),1),(0,Co.wy)((0,Co._)("input",{id:"sign-up-password-confirmation","onUpdate:modelValue":t[5]||(t[5]=function(t){return e.user.confirm=t}),disabled:e.isPending,class:"form-control",type:"password","aria-required":!0},null,8,vm),[[wo.nr,e.user.confirm]])],2),e.v$.user.confirm.$dirty?((0,Co.wg)(),(0,Co.iD)("div",wm,[(0,Co._)("ul",null,[e.v$.user.confirm.required.$invalid?((0,Co.wg)(),(0,Co.iD)("li",bm,[(0,Co._)("span",null,(0,So.zw)(e.$t("registration.validations.password_confirmation_required")),1)])):(0,Co.kq)("",!0),e.v$.user.confirm.sameAs.$invalid?((0,Co.wg)(),(0,Co.iD)("li",ym,[(0,Co._)("span",null,(0,So.zw)(e.$t("registration.validations.password_confirmation_match")),1)])):(0,Co.kq)("",!0)])])):(0,Co.kq)("",!0),(0,Co._)("div",{class:(0,So.C_)(["form-group",{"form-group--error":e.v$.user.birthday.$error}])},[(0,Co._)("label",Dm,(0,So.zw)(e.birthdayRequired?e.$t("registration.birthday"):e.$t("registration.birthday_optional")),1),(0,Co.wy)((0,Co._)("input",{id:"sign-up-birthday","onUpdate:modelValue":t[6]||(t[6]=function(t){return e.user.birthday=t}),disabled:e.isPending,class:"form-control",type:"date",max:e.birthdayRequired?e.birthdayMinAttr:void 0,"aria-required":e.birthdayRequired},null,8,_m),[[wo.nr,e.user.birthday]])],2),e.v$.user.birthday.$dirty?((0,Co.wg)(),(0,Co.iD)("div",km,[(0,Co._)("ul",null,[e.v$.user.birthday.required.$invalid?((0,Co.wg)(),(0,Co.iD)("li",Cm,[(0,Co._)("span",null,(0,So.zw)(e.$t("registration.validations.birthday_required")),1)])):(0,Co.kq)("",!0),e.v$.user.birthday.maxValue.$invalid?((0,Co.wg)(),(0,Co.iD)("li",Sm,[(0,Co._)("span",null,(0,So.zw)(e.$tc("registration.validations.birthday_min_age",{date:e.birthdayMinFormatted})),1)])):(0,Co.kq)("",!0)])])):(0,Co.kq)("",!0),(0,Co._)("div",{class:(0,So.C_)(["form-group",{"form-group--error":e.v$.user.language.$error}])},[(0,Co.Wm)(s,{for:"email-language","prompt-text":e.$t("registration.email_language"),language:e.v$.user.language.$model,"set-language":function(t){return e.v$.user.language.$model=t},onClick:t[7]||(t[7]=(0,wo.iM)((function(){}),["stop","prevent"]))},null,8,["prompt-text","language","set-language"])],2),e.accountApprovalRequired?((0,Co.wg)(),(0,Co.iD)("div",jm,[(0,Co._)("label",Fm,(0,So.zw)(e.$t("registration.reason")),1),(0,Co.wy)((0,Co._)("textarea",{id:"reason","onUpdate:modelValue":t[8]||(t[8]=function(t){return e.user.reason=t}),disabled:e.isPending,class:"form-control",placeholder:e.reasonPlaceholder},null,8,Am),[[wo.nr,e.user.reason]])])):(0,Co.kq)("",!0),"none"!=e.captcha.type?((0,Co.wg)(),(0,Co.iD)("div",Om,[(0,Co._)("label",Em,(0,So.zw)(e.$t("registration.captcha")),1),["kocaptcha","native"].includes(e.captcha.type)?((0,Co.wg)(),(0,Co.iD)(Co.HY,{key:0},[(0,Co._)("img",{src:e.captcha.url,onClick:t[9]||(t[9]=function(){return e.setCaptcha&&e.setCaptcha.apply(e,arguments)})},null,8,zm),(0,Co._)("sub",null,(0,So.zw)(e.$t("registration.new_captcha")),1),(0,Co.wy)((0,Co._)("input",{id:"captcha-answer","onUpdate:modelValue":t[10]||(t[10]=function(t){return e.captcha.solution=t}),disabled:e.isPending,class:"form-control",type:"text",autocomplete:"off",autocorrect:"off",autocapitalize:"off",spellcheck:"false"},null,8,Pm),[[wo.nr,e.captcha.solution]])],64)):(0,Co.kq)("",!0)])):(0,Co.kq)("",!0),e.token?((0,Co.wg)(),(0,Co.iD)("div",Im,[(0,Co._)("label",xm,(0,So.zw)(e.$t("registration.token")),1),(0,Co.wy)((0,Co._)("input",{id:"token","onUpdate:modelValue":t[11]||(t[11]=function(t){return e.token=t}),disabled:"true",class:"form-control",type:"text"},null,512),[[wo.nr,e.token]])])):(0,Co.kq)("",!0),(0,Co._)("div",Tm,[(0,Co._)("button",{disabled:e.isPending,type:"submit",class:"btn button-default"},(0,So.zw)(e.$t("registration.register")),9,$m)])]),(0,Co._)("div",{class:"terms-of-service",innerHTML:e.termsOfService},null,8,Bm)]),e.serverValidationErrors.length?((0,Co.wg)(),(0,Co.iD)("div",Um,[(0,Co._)("div",Mm,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.serverValidationErrors,(function(e){return(0,Co.wg)(),(0,Co.iD)("span",{key:e},(0,So.zw)(e),1)})),128))])])):(0,Co.kq)("",!0)],32)])])}]]);var Km={class:"settings panel panel-default"},Gm={class:"panel-heading"},Ym={class:"panel-body"},Jm={class:"container"},Qm={key:0},Xm={key:0},eh={key:1},th={key:1},nh={key:0},oh={class:"form-group text-center"},rh={key:2},ih={key:0,class:"password-reset-required error"},sh={class:"form-group"},ah=["disabled","placeholder"],uh={class:"form-group"},ch=["disabled"],lh={key:3,class:"alert error notice-dismissible"};function dh(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function ph(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?dh(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):dh(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Ht.vI.add(Vt.NBC);var mh={data:function(){return{user:{email:""},isPending:!1,success:!1,throttled:!1,error:null}},computed:ph(ph({},(0,s.rn)({signedIn:function(e){return!!e.users.currentUser},instance:function(e){return e.instance}})),{},{mailerEnabled:function(){return this.instance.mailerEnabled}}),created:function(){this.signedIn&&this.$router.push({name:"root"})},props:{passwordResetRequested:{default:!1,type:Boolean}},methods:{dismissError:function(){this.error=null},submit:function(){var e=this;this.isPending=!0;var t=this.user.email;(function(e){var t=e.instance,n={email:e.email},o=Ue()(n,(function(e,t,n){var o="".concat(n,"=").concat(encodeURIComponent(t));return"".concat(e,"&").concat(o)}),""),r="".concat(t).concat("/auth/password","?").concat(o);return window.fetch(r,{method:"POST"})})({instance:this.instance.server,email:t}).then((function(t){var n=t.status;e.isPending=!1,e.user.email="",204===n?(e.success=!0,e.error=null):429===n&&(e.throttled=!0,e.error=e.$t("password_reset.too_many_requests"))})).catch((function(){e.isPending=!1,e.user.email="",e.error=e.$t("general.generic_error")}))}}};const hh=mh,fh=(0,Jo.Z)(hh,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("router-link"),a=(0,Co.up)("FAIcon");return(0,Co.wg)(),(0,Co.iD)("div",Km,[(0,Co._)("div",Gm,(0,So.zw)(e.$t("password_reset.password_reset")),1),(0,Co._)("div",Ym,[(0,Co._)("form",{class:"password-reset-form",onSubmit:t[2]||(t[2]=(0,wo.iM)((function(){return e.submit&&e.submit.apply(e,arguments)}),["prevent"]))},[(0,Co._)("div",Jm,[e.mailerEnabled?e.success||e.throttled?((0,Co.wg)(),(0,Co.iD)("div",th,[e.success?((0,Co.wg)(),(0,Co.iD)("p",nh,(0,So.zw)(e.$t("password_reset.check_email")),1)):(0,Co.kq)("",!0),(0,Co._)("div",oh,[(0,Co.Wm)(s,{to:{name:"root"}},{default:(0,Co.w5)((function(){return[(0,Co.Uk)((0,So.zw)(e.$t("password_reset.return_home")),1)]})),_:1})])])):((0,Co.wg)(),(0,Co.iD)("div",rh,[e.passwordResetRequested?((0,Co.wg)(),(0,Co.iD)("p",ih,(0,So.zw)(e.$t("password_reset.password_reset_required")),1)):(0,Co.kq)("",!0),(0,Co._)("p",null,(0,So.zw)(e.$t("password_reset.instruction")),1),(0,Co._)("div",sh,[(0,Co.wy)((0,Co._)("input",{ref:"email","onUpdate:modelValue":t[0]||(t[0]=function(t){return e.user.email=t}),disabled:e.isPending,placeholder:e.$t("password_reset.placeholder"),class:"form-control",type:"input"},null,8,ah),[[wo.nr,e.user.email]])]),(0,Co._)("div",uh,[(0,Co._)("button",{disabled:e.isPending,type:"submit",class:"btn button-default btn-block"},(0,So.zw)(e.$t("settings.save")),9,ch)])])):((0,Co.wg)(),(0,Co.iD)("div",Qm,[e.passwordResetRequested?((0,Co.wg)(),(0,Co.iD)("p",Xm,(0,So.zw)(e.$t("password_reset.password_reset_required_but_mailer_is_disabled")),1)):((0,Co.wg)(),(0,Co.iD)("p",eh,(0,So.zw)(e.$t("password_reset.password_reset_disabled")),1))])),e.error?((0,Co.wg)(),(0,Co.iD)("p",lh,[(0,Co._)("span",null,(0,So.zw)(e.error),1),(0,Co._)("a",{class:"fa-scale-110 fa-old-padding dismiss",onClick:t[1]||(t[1]=(0,wo.iM)((function(t){return e.dismissError()}),["prevent"]))},[(0,Co.Wm)(a,{icon:"times"})])])):(0,Co.kq)("",!0)])],32)])])}]]);var gh={class:"settings panel panel-default"},vh={class:"panel-heading"},wh={class:"title"},bh={class:"panel-body"},yh={class:"follow-request-card-content-container"};const Dh={props:["user"],components:{BasicUserCard:ed.Z,ConfirmModal:Da.Z},data:function(){return{showingApproveConfirmDialog:!1,showingDenyConfirmDialog:!1}},methods:{findFollowRequestNotificationId:function(){var e=this,t=(0,K.Bt)(this.$store).find((function(t){return t.from_profile.id===e.user.id&&"follow_request"===t.type}));return t&&t.id},showApproveConfirmDialog:function(){this.showingApproveConfirmDialog=!0},hideApproveConfirmDialog:function(){this.showingApproveConfirmDialog=!1},showDenyConfirmDialog:function(){this.showingDenyConfirmDialog=!0},hideDenyConfirmDialog:function(){this.showingDenyConfirmDialog=!1},approveUser:function(){this.shouldConfirmApprove?this.showApproveConfirmDialog():this.doApprove()},doApprove:function(){this.$store.state.api.backendInteractor.approveUser({id:this.user.id}),this.$store.dispatch("removeFollowRequest",this.user);var e=this.findFollowRequestNotificationId();this.$store.dispatch("markSingleNotificationAsSeen",{id:e}),this.$store.dispatch("updateNotification",{id:e,updater:function(e){e.type="follow"}}),this.hideApproveConfirmDialog()},denyUser:function(){this.shouldConfirmDeny?this.showDenyConfirmDialog():this.doDeny()},doDeny:function(){var e=this,t=this.findFollowRequestNotificationId();this.$store.state.api.backendInteractor.denyUser({id:this.user.id}).then((function(){e.$store.dispatch("dismissNotificationLocal",{id:t}),e.$store.dispatch("removeFollowRequest",e.user)})),this.hideDenyConfirmDialog()}},computed:{mergedConfig:function(){return this.$store.getters.mergedConfig},shouldConfirmApprove:function(){return this.mergedConfig.modalOnApproveFollow},shouldConfirmDeny:function(){return this.mergedConfig.modalOnDenyFollow}}},_h={components:{FollowRequestCard:(0,Jo.Z)(Dh,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("confirm-modal"),a=(0,Co.up)("basic-user-card");return(0,Co.wg)(),(0,Co.j4)(a,{user:e.user},{default:(0,Co.w5)((function(){return[(0,Co._)("div",yh,[(0,Co._)("button",{class:"btn button-default",onClick:t[0]||(t[0]=function(){return e.approveUser&&e.approveUser.apply(e,arguments)})},(0,So.zw)(e.$t("user_card.approve")),1),(0,Co._)("button",{class:"btn button-default",onClick:t[1]||(t[1]=function(){return e.denyUser&&e.denyUser.apply(e,arguments)})},(0,So.zw)(e.$t("user_card.deny")),1)]),((0,Co.wg)(),(0,Co.j4)(Co.lR,{to:"#modal"},[e.showingApproveConfirmDialog?((0,Co.wg)(),(0,Co.j4)(s,{key:0,title:e.$t("user_card.approve_confirm_title"),"confirm-text":e.$t("user_card.approve_confirm_accept_button"),"cancel-text":e.$t("user_card.approve_confirm_cancel_button"),onAccepted:e.doApprove,onCancelled:e.hideApproveConfirmDialog},{default:(0,Co.w5)((function(){return[(0,Co.Uk)((0,So.zw)(e.$t("user_card.approve_confirm",{user:e.user.screen_name_ui})),1)]})),_:1},8,["title","confirm-text","cancel-text","onAccepted","onCancelled"])):(0,Co.kq)("",!0),e.showingDenyConfirmDialog?((0,Co.wg)(),(0,Co.j4)(s,{key:1,title:e.$t("user_card.deny_confirm_title"),"confirm-text":e.$t("user_card.deny_confirm_accept_button"),"cancel-text":e.$t("user_card.deny_confirm_cancel_button"),onAccepted:e.doDeny,onCancelled:e.hideDenyConfirmDialog},{default:(0,Co.w5)((function(){return[(0,Co.Uk)((0,So.zw)(e.$t("user_card.deny_confirm",{user:e.user.screen_name_ui})),1)]})),_:1},8,["title","confirm-text","cancel-text","onAccepted","onCancelled"])):(0,Co.kq)("",!0)]))]})),_:1},8,["user"])}]])},computed:{requests:function(){return this.$store.state.api.followRequests}}},kh=(0,Jo.Z)(_h,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("FollowRequestCard");return(0,Co.wg)(),(0,Co.iD)("div",gh,[(0,Co._)("div",vh,[(0,Co._)("div",wh,(0,So.zw)(e.$t("nav.friend_requests")),1)]),(0,Co._)("div",bh,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.requests,(function(e){return(0,Co.wg)(),(0,Co.j4)(s,{key:e.id,user:e,class:"list-item"},null,8,["user"])})),128))])])}]]),Ch={props:["code"],mounted:function(){var e=this;if(this.code){var t=this.$store.state.oauth,n=t.clientId,o=t.clientSecret;Ne.getToken({clientId:n,clientSecret:o,instance:this.$store.state.instance.server,code:this.code}).then((function(t){e.$store.commit("setToken",t.access_token),e.$store.dispatch("loginUser",t.access_token),e.$router.push({name:"friends"})}))}}},Sh=(0,Jo.Z)(Ch,[["render",function(e,t,n,o,r,i){return(0,Co.wg)(),(0,Co.iD)("h1",null,"...")}]]);var jh={class:"panel panel-default"},Fh={class:"panel-heading"},Ah={class:"panel-body"};const Oh={components:{FollowCard:cp},data:function(){return{users:[]}},mounted:function(){this.getWhoToFollow()},methods:{showWhoToFollow:function(e){var t=this;e.forEach((function(e,n){t.$store.state.api.backendInteractor.fetchUser({id:e.acct}).then((function(e){e.error||(t.$store.commit("addNewUsers",[e]),t.users.push(e))}))}))},getWhoToFollow:function(){var e=this,t=this.$store.state.users.currentUser.credentials;t&&h.ZP.suggestions({credentials:t}).then((function(t){e.showWhoToFollow(t)}))}}},Eh=(0,Jo.Z)(Oh,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("FollowCard");return(0,Co.wg)(),(0,Co.iD)("div",jh,[(0,Co._)("div",Fh,(0,So.zw)(e.$t("who_to_follow.who_to_follow")),1),(0,Co._)("div",Ah,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.users,(function(e){return(0,Co.wg)(),(0,Co.j4)(s,{key:e.id,user:e,class:"list-item"},null,8,["user"])})),128))])])}]]);var zh={class:"column-inner"},Ph={class:"panel panel-default"},Ih={class:"panel-body"},xh=["innerHTML"];const Th={computed:{content:function(){return this.$store.state.instance.tos}}},$h=(0,Jo.Z)(Th,[["render",function(e,t,n,o,r,i){return(0,Co.wg)(),(0,Co.iD)("div",null,[(0,Co._)("div",Ph,[(0,Co._)("div",Ih,[(0,Co._)("div",{class:"tos-content",innerHTML:e.content},null,8,xh)])])])}]]);var Bh={class:"staff-panel"},Uh={class:"panel panel-default base01-background"},Mh={class:"panel-heading timeline-heading base02-background"},Lh={class:"title"},Rh={class:"panel-body"};function qh(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Nh(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?qh(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):qh(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}const Zh={created:function(){var e=this;this.$store.state.instance.staffAccounts.forEach((function(t){return e.$store.dispatch("fetchUserIfMissing",t)}))},components:{BasicUserCard:ed.Z},computed:Nh(Nh({groupedStaffAccounts:function(){var e=be()(this.staffAccounts,this.findUserByName).filter((function(e){return e})),t=Tt()(e,"role");return[{role:"admin",users:t.admin},{role:"moderator",users:t.moderator}].filter((function(e){return e.users}))}},(0,s.Se)(["findUserByName"])),(0,s.rn)({staffAccounts:function(e){return e.instance.staffAccounts}}))},Wh=(0,Jo.Z)(Zh,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("basic-user-card");return(0,Co.wg)(),(0,Co.iD)("div",Bh,[(0,Co._)("div",Uh,[(0,Co._)("div",Mh,[(0,Co._)("div",Lh,(0,So.zw)(e.$t("about.staff")),1)]),(0,Co._)("div",Rh,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.groupedStaffAccounts,(function(t){return(0,Co.wg)(),(0,Co.iD)("div",{key:t.role,class:"staff-group"},[(0,Co._)("h4",null,(0,So.zw)(e.$t("general.role."+t.role)),1),((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(t.users,(function(e){return(0,Co.wg)(),(0,Co.j4)(s,{key:e.screen_name,user:e},null,8,["user"])})),128))])})),128))])])])}]]);var Hh={key:0,class:"mrf-transparency-panel"},Vh={class:"panel panel-default base01-background"},Kh={class:"panel-heading timeline-heading base02-background"},Gh={class:"title"},Yh={class:"panel-body"},Jh={class:"mrf-section"},Qh=["textContent"],Xh={key:0},ef={key:1},tf={key:0},nf={key:1},of={key:2},rf={key:0},sf={key:1},af={key:3},uf={key:0},cf={key:1},lf={key:4},df={key:0},pf={key:1},mf={key:5},hf={key:0},ff={key:1},gf={key:6},vf={key:0},wf={key:1},bf={key:7},yf={key:8},Df=["textContent"],_f={key:9},kf=["textContent"],Cf={key:10};function Sf(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function jf(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Sf(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Sf(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var Ff=function(e,t,n){return e.map((function(e){return t[n]&&t[n][e]&&t[n][e].reason?{instance:e,reason:t[n][e].reason}:{instance:e,reason:""}}))};const Af={computed:jf(jf({},(0,s.rn)({federationPolicy:function(e){return Dt()(e,"instance.federationPolicy")},mrfPolicies:function(e){return Dt()(e,"instance.federationPolicy.mrf_policies",[])},quarantineInstances:function(e){return Ff(Dt()(e,"instance.federationPolicy.quarantined_instances",[]),Dt()(e,"instance.federationPolicy.quarantined_instances_info",[]),"quarantined_instances")},acceptInstances:function(e){return Ff(Dt()(e,"instance.federationPolicy.mrf_simple.accept",[]),Dt()(e,"instance.federationPolicy.mrf_simple_info",[]),"accept")},rejectInstances:function(e){return Ff(Dt()(e,"instance.federationPolicy.mrf_simple.reject",[]),Dt()(e,"instance.federationPolicy.mrf_simple_info",[]),"reject")},ftlRemovalInstances:function(e){return Ff(Dt()(e,"instance.federationPolicy.mrf_simple.federated_timeline_removal",[]),Dt()(e,"instance.federationPolicy.mrf_simple_info",[]),"federated_timeline_removal")},mediaNsfwInstances:function(e){return Ff(Dt()(e,"instance.federationPolicy.mrf_simple.media_nsfw",[]),Dt()(e,"instance.federationPolicy.mrf_simple_info",[]),"media_nsfw")},mediaRemovalInstances:function(e){return Ff(Dt()(e,"instance.federationPolicy.mrf_simple.media_removal",[]),Dt()(e,"instance.federationPolicy.mrf_simple_info",[]),"media_removal")},keywordsFtlRemoval:function(e){return Dt()(e,"instance.federationPolicy.mrf_keyword.federated_timeline_removal",[])},keywordsReject:function(e){return Dt()(e,"instance.federationPolicy.mrf_keyword.reject",[])},keywordsReplace:function(e){return Dt()(e,"instance.federationPolicy.mrf_keyword.replace",[])}})),{},{hasInstanceSpecificPolicies:function(){return this.quarantineInstances.length||this.acceptInstances.length||this.rejectInstances.length||this.ftlRemovalInstances.length||this.mediaNsfwInstances.length||this.mediaRemovalInstances.length},hasKeywordPolicies:function(){return this.keywordsFtlRemoval.length||this.keywordsReject.length||this.keywordsReplace.length}})},Of={components:{InstanceSpecificPanel:Ai,FeaturesPanel:Ri,TermsOfServicePanel:$h,StaffPanel:Wh,MRFTransparencyPanel:(0,Jo.Z)(Af,[["render",function(e,t,n,o,r,i){return e.federationPolicy?((0,Co.wg)(),(0,Co.iD)("div",Hh,[(0,Co._)("div",Vh,[(0,Co._)("div",Kh,[(0,Co._)("div",Gh,(0,So.zw)(e.$t("about.mrf.federation")),1)]),(0,Co._)("div",Yh,[(0,Co._)("div",Jh,[(0,Co._)("h2",null,(0,So.zw)(e.$t("about.mrf.mrf_policies")),1),(0,Co._)("p",null,(0,So.zw)(e.$t("about.mrf.mrf_policies_desc")),1),(0,Co._)("ul",null,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.mrfPolicies,(function(e){return(0,Co.wg)(),(0,Co.iD)("li",{key:e,textContent:(0,So.zw)(e)},null,8,Qh)})),128))]),e.hasInstanceSpecificPolicies?((0,Co.wg)(),(0,Co.iD)("h2",Xh,(0,So.zw)(e.$t("about.mrf.simple.simple_policies")),1)):(0,Co.kq)("",!0),e.acceptInstances.length?((0,Co.wg)(),(0,Co.iD)("div",ef,[(0,Co._)("h4",null,(0,So.zw)(e.$t("about.mrf.simple.accept")),1),(0,Co._)("p",null,(0,So.zw)(e.$t("about.mrf.simple.accept_desc")),1),(0,Co._)("table",null,[(0,Co._)("tr",null,[(0,Co._)("th",null,(0,So.zw)(e.$t("about.mrf.simple.instance")),1),(0,Co._)("th",null,(0,So.zw)(e.$t("about.mrf.simple.reason")),1)]),((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.acceptInstances,(function(t){return(0,Co.wg)(),(0,Co.iD)("tr",{key:t.instance+"_accept"},[(0,Co._)("td",null,(0,So.zw)(t.instance),1),""===t.reason?((0,Co.wg)(),(0,Co.iD)("td",tf,(0,So.zw)(e.$t("about.mrf.simple.not_applicable")),1)):((0,Co.wg)(),(0,Co.iD)("td",nf,(0,So.zw)(t.reason),1))])})),128))])])):(0,Co.kq)("",!0),e.rejectInstances.length?((0,Co.wg)(),(0,Co.iD)("div",of,[(0,Co._)("h4",null,(0,So.zw)(e.$t("about.mrf.simple.reject")),1),(0,Co._)("p",null,(0,So.zw)(e.$t("about.mrf.simple.reject_desc")),1),(0,Co._)("table",null,[(0,Co._)("tr",null,[(0,Co._)("th",null,(0,So.zw)(e.$t("about.mrf.simple.instance")),1),(0,Co._)("th",null,(0,So.zw)(e.$t("about.mrf.simple.reason")),1)]),((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.rejectInstances,(function(t){return(0,Co.wg)(),(0,Co.iD)("tr",{key:t.instance+"_reject"},[(0,Co._)("td",null,(0,So.zw)(t.instance),1),""===t.reason?((0,Co.wg)(),(0,Co.iD)("td",rf,(0,So.zw)(e.$t("about.mrf.simple.not_applicable")),1)):((0,Co.wg)(),(0,Co.iD)("td",sf,(0,So.zw)(t.reason),1))])})),128))])])):(0,Co.kq)("",!0),e.quarantineInstances.length?((0,Co.wg)(),(0,Co.iD)("div",af,[(0,Co._)("h4",null,(0,So.zw)(e.$t("about.mrf.simple.quarantine")),1),(0,Co._)("p",null,(0,So.zw)(e.$t("about.mrf.simple.quarantine_desc")),1),(0,Co._)("table",null,[(0,Co._)("tr",null,[(0,Co._)("th",null,(0,So.zw)(e.$t("about.mrf.simple.instance")),1),(0,Co._)("th",null,(0,So.zw)(e.$t("about.mrf.simple.reason")),1)]),((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.quarantineInstances,(function(t){return(0,Co.wg)(),(0,Co.iD)("tr",{key:t.instance+"_quarantine"},[(0,Co._)("td",null,(0,So.zw)(t.instance),1),""===t.reason?((0,Co.wg)(),(0,Co.iD)("td",uf,(0,So.zw)(e.$t("about.mrf.simple.not_applicable")),1)):((0,Co.wg)(),(0,Co.iD)("td",cf,(0,So.zw)(t.reason),1))])})),128))])])):(0,Co.kq)("",!0),e.ftlRemovalInstances.length?((0,Co.wg)(),(0,Co.iD)("div",lf,[(0,Co._)("h4",null,(0,So.zw)(e.$t("about.mrf.simple.ftl_removal")),1),(0,Co._)("p",null,(0,So.zw)(e.$t("about.mrf.simple.ftl_removal_desc")),1),(0,Co._)("table",null,[(0,Co._)("tr",null,[(0,Co._)("th",null,(0,So.zw)(e.$t("about.mrf.simple.instance")),1),(0,Co._)("th",null,(0,So.zw)(e.$t("about.mrf.simple.reason")),1)]),((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.ftlRemovalInstances,(function(t){return(0,Co.wg)(),(0,Co.iD)("tr",{key:t.instance+"_ftl_removal"},[(0,Co._)("td",null,(0,So.zw)(t.instance),1),""===t.reason?((0,Co.wg)(),(0,Co.iD)("td",df,(0,So.zw)(e.$t("about.mrf.simple.not_applicable")),1)):((0,Co.wg)(),(0,Co.iD)("td",pf,(0,So.zw)(t.reason),1))])})),128))])])):(0,Co.kq)("",!0),e.mediaNsfwInstances.length?((0,Co.wg)(),(0,Co.iD)("div",mf,[(0,Co._)("h4",null,(0,So.zw)(e.$t("about.mrf.simple.media_nsfw")),1),(0,Co._)("p",null,(0,So.zw)(e.$t("about.mrf.simple.media_nsfw_desc")),1),(0,Co._)("table",null,[(0,Co._)("tr",null,[(0,Co._)("th",null,(0,So.zw)(e.$t("about.mrf.simple.instance")),1),(0,Co._)("th",null,(0,So.zw)(e.$t("about.mrf.simple.reason")),1)]),((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.mediaNsfwInstances,(function(t){return(0,Co.wg)(),(0,Co.iD)("tr",{key:t.instance+"_media_nsfw"},[(0,Co._)("td",null,(0,So.zw)(t.instance),1),""===t.reason?((0,Co.wg)(),(0,Co.iD)("td",hf,(0,So.zw)(e.$t("about.mrf.simple.not_applicable")),1)):((0,Co.wg)(),(0,Co.iD)("td",ff,(0,So.zw)(t.reason),1))])})),128))])])):(0,Co.kq)("",!0),e.mediaRemovalInstances.length?((0,Co.wg)(),(0,Co.iD)("div",gf,[(0,Co._)("h4",null,(0,So.zw)(e.$t("about.mrf.simple.media_removal")),1),(0,Co._)("p",null,(0,So.zw)(e.$t("about.mrf.simple.media_removal_desc")),1),(0,Co._)("table",null,[(0,Co._)("tr",null,[(0,Co._)("th",null,(0,So.zw)(e.$t("about.mrf.simple.instance")),1),(0,Co._)("th",null,(0,So.zw)(e.$t("about.mrf.simple.reason")),1)]),((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.mediaRemovalInstances,(function(t){return(0,Co.wg)(),(0,Co.iD)("tr",{key:t.instance+"_media_removal"},[(0,Co._)("td",null,(0,So.zw)(t.instance),1),""===t.reason?((0,Co.wg)(),(0,Co.iD)("td",vf,(0,So.zw)(e.$t("about.mrf.simple.not_applicable")),1)):((0,Co.wg)(),(0,Co.iD)("td",wf,(0,So.zw)(t.reason),1))])})),128))])])):(0,Co.kq)("",!0),e.hasKeywordPolicies?((0,Co.wg)(),(0,Co.iD)("h2",bf,(0,So.zw)(e.$t("about.mrf.keyword.keyword_policies")),1)):(0,Co.kq)("",!0),e.keywordsFtlRemoval.length?((0,Co.wg)(),(0,Co.iD)("div",yf,[(0,Co._)("h4",null,(0,So.zw)(e.$t("about.mrf.keyword.ftl_removal")),1),(0,Co._)("ul",null,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.keywordsFtlRemoval,(function(e){return(0,Co.wg)(),(0,Co.iD)("li",{key:e,textContent:(0,So.zw)(e)},null,8,Df)})),128))])])):(0,Co.kq)("",!0),e.keywordsReject.length?((0,Co.wg)(),(0,Co.iD)("div",_f,[(0,Co._)("h4",null,(0,So.zw)(e.$t("about.mrf.keyword.reject")),1),(0,Co._)("ul",null,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.keywordsReject,(function(e){return(0,Co.wg)(),(0,Co.iD)("li",{key:e,textContent:(0,So.zw)(e)},null,8,kf)})),128))])])):(0,Co.kq)("",!0),e.keywordsReplace.length?((0,Co.wg)(),(0,Co.iD)("div",Cf,[(0,Co._)("h4",null,(0,So.zw)(e.$t("about.mrf.keyword.replace")),1),(0,Co._)("ul",null,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.keywordsReplace,(function(t){return(0,Co.wg)(),(0,Co.iD)("li",{key:t},(0,So.zw)(t.pattern)+" "+(0,So.zw)(e.$t("about.mrf.keyword.is_replaced_by"))+" "+(0,So.zw)(t.replacement),1)})),128))])])):(0,Co.kq)("",!0)])])])])):(0,Co.kq)("",!0)}]])},computed:{showFeaturesPanel:function(){return this.$store.state.instance.showFeaturesPanel},showInstanceSpecificPanel:function(){return this.$store.state.instance.showInstanceSpecificPanel&&!this.$store.getters.mergedConfig.hideISP&&this.$store.state.instance.instanceSpecificPanelContent}}},Ef=(0,Jo.Z)(Of,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("instance-specific-panel"),a=(0,Co.up)("staff-panel"),u=(0,Co.up)("terms-of-service-panel"),c=(0,Co.up)("MRFTransparencyPanel"),l=(0,Co.up)("features-panel");return(0,Co.wg)(),(0,Co.iD)("div",zh,[e.showInstanceSpecificPanel?((0,Co.wg)(),(0,Co.j4)(s,{key:0})):(0,Co.kq)("",!0),(0,Co.Wm)(a),(0,Co.Wm)(u),(0,Co.Wm)(c),e.showFeaturesPanel?((0,Co.wg)(),(0,Co.j4)(l,{key:1})):(0,Co.kq)("",!0)])}]]);var zf={class:"panel panel-default"},Pf={class:"panel-heading"},If={class:"panel-body"},xf={key:0};const Tf={data:function(){return{error:!1}},mounted:function(){this.redirect()},methods:{redirect:function(){var e=this,t=this.$route.params.username+"@"+this.$route.params.hostname;this.$store.state.api.backendInteractor.fetchUser({id:t}).then((function(t){if(t.error)e.error=!0;else{e.$store.commit("addNewUsers",[t]);var n=t.id;e.$router.replace({name:"external-user-profile",params:{id:n}})}})).catch((function(){e.error=!0}))}}},$f=(0,Jo.Z)(Tf,[["render",function(e,t,n,o,r,i){return(0,Co.wg)(),(0,Co.iD)("div",zf,[(0,Co._)("div",Pf,(0,So.zw)(e.$t("remote_user_resolver.remote_user_resolver")),1),(0,Co._)("div",If,[(0,Co._)("p",null,(0,So.zw)(e.$t("remote_user_resolver.searching_for"))+" @"+(0,So.zw)(e.$route.params.username)+"@"+(0,So.zw)(e.$route.params.hostname),1),e.error?((0,Co.wg)(),(0,Co.iD)("p",xf,(0,So.zw)(e.$t("remote_user_resolver.error")),1)):(0,Co.kq)("",!0)])])}]]);var Bf={class:"Lists panel panel-default"},Uf={class:"panel-heading"},Mf={class:"title"},Lf={class:"panel-body"},Rf={class:"list-card"};Ht.vI.add(Vt.cNd);const qf={props:["list"]},Nf={data:function(){return{isNew:!1}},components:{ListsCard:(0,Jo.Z)(qf,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("router-link"),a=(0,Co.up)("FAIcon");return(0,Co.wg)(),(0,Co.iD)("div",Rf,[(0,Co.Wm)(s,{to:{name:"lists-timeline",params:{id:e.list.id}},class:"list-name"},{default:(0,Co.w5)((function(){return[(0,Co.Uk)((0,So.zw)(e.list.title),1)]})),_:1},8,["to"]),(0,Co.Wm)(s,{to:{name:"lists-edit",params:{id:e.list.id}},class:"button-list-edit"},{default:(0,Co.w5)((function(){return[(0,Co.Wm)(a,{class:"fa-scale-110 fa-old-padding",icon:"ellipsis-h"})]})),_:1},8,["to"])])}]])},computed:{lists:function(){return this.$store.state.lists.allLists}},methods:{cancelNewList:function(){this.isNew=!1},newList:function(){this.isNew=!0}}},Zf=(0,Jo.Z)(Nf,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("router-link"),a=(0,Co.up)("ListsCard");return(0,Co.wg)(),(0,Co.iD)("div",Bf,[(0,Co._)("div",Uf,[(0,Co._)("div",Mf,(0,So.zw)(e.$t("lists.lists")),1),(0,Co.Wm)(s,{to:{name:"lists-new"},class:"button-default btn new-list-button"},{default:(0,Co.w5)((function(){return[(0,Co.Uk)((0,So.zw)(e.$t("lists.new")),1)]})),_:1})]),(0,Co._)("div",Lf,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.lists.slice().reverse(),(function(e){return(0,Co.wg)(),(0,Co.j4)(a,{key:e,list:e,class:"list-item"},null,8,["list"])})),128))])])}]]),Wf=Zf,Hf={data:function(){return{listId:null}},components:{Timeline:Vc},computed:{timeline:function(){return this.$store.state.statuses.timelines.list}},watch:{$route:function(e){"lists-timeline"===e.name&&e.params.id!==this.listId&&(this.listId=e.params.id,this.$store.dispatch("stopFetchingTimeline","list"),this.$store.commit("clearTimeline",{timeline:"list"}),this.$store.dispatch("fetchList",{listId:this.listId}),this.$store.dispatch("startFetchingTimeline",{timeline:"list",listId:this.listId}))}},created:function(){this.listId=this.$route.params.id,this.$store.dispatch("fetchList",{listId:this.listId}),this.$store.dispatch("startFetchingTimeline",{timeline:"list",listId:this.listId})},unmounted:function(){this.$store.dispatch("stopFetchingTimeline","list"),this.$store.commit("clearTimeline",{timeline:"list"})}},Vf=(0,Jo.Z)(Hf,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("Timeline");return(0,Co.wg)(),(0,Co.j4)(s,{title:"list.name",timeline:e.timeline,"list-id":e.listId,"timeline-name":"list"},null,8,["timeline","list-id"])}]]);var Kf={class:"panel-default panel ListEdit"},Gf={ref:"header",class:"panel-heading list-edit-heading"},Yf={class:"title"},Jf={class:"panel-body"},Qf={class:"input-wrap"},Xf={for:"list-edit-title"},eg=["label"],tg={class:"users-list"},ng=["onClick"],og=["label"],rg={key:0,class:"loading"},ig={key:1,class:"users-list"},sg={key:0},ag=["onClick"],ug=["onClick"],cg={class:"panel-footer"},lg=(0,Co._)("span",{class:"spacer"},null,-1),dg={class:"ListsUserSearch"},pg={class:"input-wrap"},mg={class:"input-search"},hg=["placeholder"],fg={class:"input-wrap"};Ht.vI.add(Vt.wn1,Vt.A35);const gg={components:{Checkbox:wi.Z},emits:["loading","loadingDone","results"],data:function(){return{loading:!1,query:"",followingOnly:!0}},methods:{onInput:ra()((function(){this.search(this.query)}),2e3),search:function(e){var t=this;e?(this.loading=!0,this.$emit("loading"),this.userIds=[],this.$store.dispatch("search",{q:e,resolve:!0,type:"accounts",following:this.followingOnly}).then((function(e){t.$emit("results",e.accounts.map((function(e){return e.id})))})).finally((function(){t.loading=!1,t.$emit("loadingDone")}))):this.loading=!1}}},vg=(0,Jo.Z)(gg,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("FAIcon"),a=(0,Co.up)("Checkbox");return(0,Co.wg)(),(0,Co.iD)("div",dg,[(0,Co._)("div",pg,[(0,Co._)("div",mg,[(0,Co.Wm)(s,{class:"search-icon fa-scale-110 fa-old-padding",icon:"search"})]),(0,Co.wy)((0,Co._)("input",{ref:"search","onUpdate:modelValue":t[0]||(t[0]=function(t){return e.query=t}),placeholder:e.$t("lists.search"),onInput:t[1]||(t[1]=function(){return e.onInput&&e.onInput.apply(e,arguments)})},null,40,hg),[[wo.nr,e.query]])]),(0,Co._)("div",fg,[(0,Co.Wm)(a,{modelValue:e.followingOnly,"onUpdate:modelValue":t[2]||(t[2]=function(t){return e.followingOnly=t}),onChange:e.onInput},{default:(0,Co.w5)((function(){return[(0,Co.Uk)((0,So.zw)(e.$t("lists.following_only")),1)]})),_:1},8,["modelValue","onChange"])])])}]]);var wg=n(29187);function bg(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function yg(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?bg(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):bg(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Ht.vI.add(Vt.wn1,Vt.A35);var Dg={components:{BasicUserCard:ed.Z,UserAvatar:Bl.default,ListsUserSearch:vg,TabSwitcher:fl.Z,PanelLoading:wg.Z},data:function(){return{title:"",titleDraft:"",membersUserIds:[],removedUserIds:new Set([]),searchUserIds:[],addedUserIds:new Set([]),searchLoading:!1,reallyDelete:!1}},created:function(){var e=this;this.id&&(this.$store.dispatch("fetchList",{listId:this.id}).then((function(){e.title=e.findListTitle(e.id),e.titleDraft=e.title})),this.$store.dispatch("fetchListAccounts",{listId:this.id}).then((function(){e.membersUserIds=e.findListAccounts(e.id),e.membersUserIds.forEach((function(t){e.$store.dispatch("fetchUserIfMissing",t)}))})))},computed:yg(yg({id:function(){return this.$route.params.id},membersUsers:function(){var e=this;return[].concat((0,l.Z)(this.membersUserIds),(0,l.Z)(this.addedUserIds)).map((function(t){return e.findUser(t)})).filter((function(e){return e}))},searchUsers:function(){var e=this;return this.searchUserIds.map((function(t){return e.findUser(t)})).filter((function(e){return e}))}},(0,s.rn)({currentUser:function(e){return e.users.currentUser}})),(0,s.Se)(["findUser","findListTitle","findListAccounts"])),methods:{onInput:function(){this.search(this.query)},toggleRemoveMember:function(e){this.removedUserIds.has(e.id)?(this.id&&this.addUser(e),this.removedUserIds.delete(e.id)):(this.id&&this.removeUser(e.id),this.removedUserIds.add(e.id))},toggleAddFromSearch:function(e){this.addedUserIds.has(e.id)?(this.id&&this.removeUser(e.id),this.addedUserIds.delete(e.id)):(this.id&&this.addUser(e),this.addedUserIds.add(e.id))},isRemoved:function(e){return this.removedUserIds.has(e.id)},isAdded:function(e){return this.addedUserIds.has(e.id)},addUser:function(e){this.$store.dispatch("addListAccount",{accountId:e.id,listId:this.id})},removeUser:function(e){this.$store.dispatch("removeListAccount",{accountId:e,listId:this.id})},onSearchLoading:function(e){this.searchLoading=!0},onSearchLoadingDone:function(e){this.searchLoading=!1},onSearchResults:function(e){this.searchLoading=!1,this.searchUserIds=e},updateListTitle:function(){var e=this;this.$store.dispatch("setList",{listId:this.id,title:this.titleDraft}).then((function(){e.title=e.findListTitle(e.id)}))},createList:function(){var e=this;this.$store.dispatch("createList",{title:this.titleDraft}).then((function(t){return e.$store.dispatch("setListAccounts",{listId:t.id,accountIds:(0,l.Z)(e.addedUserIds)}).then((function(){return t.id}))})).then((function(t){e.$router.push({name:"lists-timeline",params:{id:t}})})).catch((function(t){e.$store.dispatch("pushGlobalNotice",{messageKey:"lists.error",messageArgs:[t.message],level:"error"})}))},deleteList:function(){this.$store.dispatch("deleteList",{listId:this.id}),this.$router.push({name:"lists"})}}};const _g=Dg,kg=(0,Jo.Z)(_g,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("FAIcon"),a=(0,Co.up)("i18n-t"),u=(0,Co.up)("BasicUserCard"),c=(0,Co.up)("ListsUserSearch"),l=(0,Co.up)("PanelLoading"),d=(0,Co.up)("tab-switcher");return(0,Co.wg)(),(0,Co.iD)("div",Kf,[(0,Co._)("div",Gf,[(0,Co._)("button",{class:"button-unstyled go-back-button",onClick:t[0]||(t[0]=function(){var t;return e.$router.back&&(t=e.$router).back.apply(t,arguments)})},[(0,Co.Wm)(s,{size:"lg",icon:"chevron-left"})]),(0,Co._)("div",Yf,[e.id?((0,Co.wg)(),(0,Co.j4)(a,{key:0,keypath:"lists.editing_list"},{listTitle:(0,Co.w5)((function(){return[(0,Co.Uk)((0,So.zw)(e.title),1)]})),_:1})):((0,Co.wg)(),(0,Co.j4)(a,{key:1,keypath:"lists.creating_list"}))])],512),(0,Co._)("div",Jf,[(0,Co._)("div",Qf,[(0,Co._)("label",Xf,(0,So.zw)(e.$t("lists.title")),1),(0,Co.Uk)(" "+(0,So.zw)(" ")+" "),(0,Co.wy)((0,Co._)("input",{id:"list-edit-title",ref:"title","onUpdate:modelValue":t[1]||(t[1]=function(t){return e.titleDraft=t})},null,512),[[wo.nr,e.titleDraft]]),e.id?((0,Co.wg)(),(0,Co.iD)("button",{key:0,class:"btn button-default follow-button",onClick:t[2]||(t[2]=function(){return e.updateListTitle&&e.updateListTitle.apply(e,arguments)})},(0,So.zw)(e.$t("lists.update_title")),1)):(0,Co.kq)("",!0)]),(0,Co.Wm)(d,{class:"list-member-management","scrollable-tabs":!0},{default:(0,Co.w5)((function(){return[e.id||e.addedUserIds.size>0?((0,Co.wg)(),(0,Co.iD)("div",{key:0,label:e.$t("lists.manage_members"),class:"members-list"},[(0,Co._)("div",tg,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.membersUsers,(function(t){return(0,Co.wg)(),(0,Co.iD)("div",{key:t.id,class:"member"},[(0,Co.Wm)(u,{user:t},{default:(0,Co.w5)((function(){return[(0,Co._)("button",{class:"btn button-default follow-button",onClick:function(n){return e.toggleRemoveMember(t)}},(0,So.zw)(e.isRemoved(t)?e.$t("general.undo"):e.$t("lists.remove_from_list")),9,ng)]})),_:2},1032,["user"])])})),128))])],8,eg)):(0,Co.kq)("",!0),(0,Co._)("div",{class:"search-list",label:e.$t("lists.add_members")},[(0,Co.Wm)(c,{onResults:e.onSearchResults,onLoading:e.onSearchLoading,onLoadingDone:e.onSearchLoadingDone},null,8,["onResults","onLoading","onLoadingDone"]),e.searchLoading?((0,Co.wg)(),(0,Co.iD)("div",rg,[(0,Co.Wm)(l)])):((0,Co.wg)(),(0,Co.iD)("div",ig,[((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.searchUsers,(function(t){return(0,Co.wg)(),(0,Co.iD)("div",{key:t.id,class:"member"},[(0,Co.Wm)(u,{user:t},{default:(0,Co.w5)((function(){return[e.membersUserIds.includes(t.id)?((0,Co.wg)(),(0,Co.iD)("span",sg,(0,So.zw)(e.$t("lists.is_in_list")),1)):(0,Co.kq)("",!0),e.membersUserIds.includes(t.id)?((0,Co.wg)(),(0,Co.iD)("button",{key:2,class:"btn button-default follow-button",onClick:function(n){return e.toggleRemoveMember(t)}},(0,So.zw)(e.isRemoved(t)?e.$t("general.undo"):e.$t("lists.remove_from_list")),9,ug)):((0,Co.wg)(),(0,Co.iD)("button",{key:1,class:"btn button-default follow-button",onClick:function(n){return e.toggleAddFromSearch(t)}},(0,So.zw)(e.isAdded(t)?e.$t("general.undo"):e.$t("lists.add_to_list")),9,ag))]})),_:2},1032,["user"])])})),128))]))],8,og)]})),_:1})]),(0,Co._)("div",cg,[lg,e.id?e.reallyDelete?((0,Co.wg)(),(0,Co.iD)(Co.HY,{key:2},[(0,Co.Uk)((0,So.zw)(e.$t("lists.really_delete"))+" ",1),(0,Co._)("button",{class:"btn button-default footer-button",onClick:t[5]||(t[5]=function(){return e.deleteList&&e.deleteList.apply(e,arguments)})},(0,So.zw)(e.$t("general.yes")),1),(0,Co._)("button",{class:"btn button-default footer-button",onClick:t[6]||(t[6]=function(t){return e.reallyDelete=!1})},(0,So.zw)(e.$t("general.no")),1)],64)):((0,Co.wg)(),(0,Co.iD)("button",{key:1,class:"btn button-default footer-button",onClick:t[4]||(t[4]=function(t){return e.reallyDelete=!0})},(0,So.zw)(e.$t("lists.delete")),1)):((0,Co.wg)(),(0,Co.iD)("button",{key:0,class:"btn button-default footer-button",onClick:t[3]||(t[3]=function(){return e.createList&&e.createList.apply(e,arguments)})},(0,So.zw)(e.$t("lists.create")),1))])])}]]);var Cg={class:"panel panel-default announcements-page"},Sg={class:"panel-heading"},jg={class:"panel-body"},Fg={key:0},Ag={class:"post-form"},Og={class:"heading"},Eg={class:"body"},zg={class:"footer"},Pg=["disabled"],Ig={key:0,class:"alert error"},xg={class:"announcement"},Tg={class:"heading"},$g={class:"body"},Bg={class:"footer"},Ug={key:0,class:"times"},Mg={key:0},Lg={key:1},Rg={key:2},qg={key:1,class:"actions"},Ng=["disabled","title"],Zg={key:2,class:"actions"},Wg={key:0,class:"alert error"},Hg={class:"announcement-editor"},Vg=["placeholder","disabled"],Kg={class:"announcement-metadata"},Gg={for:"announcement-start-time"},Yg=["type","disabled"],Jg={class:"announcement-metadata"},Qg={for:"announcement-end-time"},Xg=["type","disabled"],ev={class:"announcement-metadata"},tv={for:"announcement-all-day"};const nv={components:{Checkbox:wi.Z},props:{announcement:Object,disabled:Boolean}},ov=(0,Jo.Z)(nv,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("Checkbox");return(0,Co.wg)(),(0,Co.iD)("div",Hg,[(0,Co.wy)((0,Co._)("textarea",{ref:"textarea","onUpdate:modelValue":t[0]||(t[0]=function(t){return e.announcement.content=t}),class:"post-textarea",rows:"1",cols:"1",placeholder:e.$t("announcements.post_placeholder"),disabled:e.disabled},null,8,Vg),[[wo.nr,e.announcement.content]]),(0,Co._)("span",Kg,[(0,Co._)("label",Gg,(0,So.zw)(e.$t("announcements.start_time_prompt")),1),(0,Co.wy)((0,Co._)("input",{id:"announcement-start-time","onUpdate:modelValue":t[1]||(t[1]=function(t){return e.announcement.startsAt=t}),type:e.announcement.allDay?"date":"datetime-local",disabled:e.disabled},null,8,Yg),[[wo.YZ,e.announcement.startsAt]])]),(0,Co._)("span",Jg,[(0,Co._)("label",Qg,(0,So.zw)(e.$t("announcements.end_time_prompt")),1),(0,Co.wy)((0,Co._)("input",{id:"announcement-end-time","onUpdate:modelValue":t[2]||(t[2]=function(t){return e.announcement.endsAt=t}),type:e.announcement.allDay?"date":"datetime-local",disabled:e.disabled},null,8,Xg),[[wo.YZ,e.announcement.endsAt]])]),(0,Co._)("span",ev,[(0,Co.Wm)(s,{id:"announcement-all-day",modelValue:e.announcement.allDay,"onUpdate:modelValue":t[3]||(t[3]=function(t){return e.announcement.allDay=t}),disabled:e.disabled},null,8,["modelValue","disabled"]),(0,Co._)("label",tv,(0,So.zw)(e.$t("announcements.all_day_prompt")),1)])])}]]);function rv(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function iv(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?rv(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):rv(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}const sv={components:{AnnouncementEditor:ov,RichContent:Rl.Z},data:function(){return{editing:!1,editedAnnouncement:{content:"",startsAt:void 0,endsAt:void 0,allDay:void 0},editError:""}},props:{announcement:Object},computed:iv(iv({},(0,s.rn)({currentUser:function(e){return e.users.currentUser}})),{},{canEditAnnouncement:function(){return this.currentUser&&this.currentUser.privileges.includes("announcements_manage_announcements")},content:function(){return this.announcement.content},isRead:function(){return this.announcement.read},publishedAt:function(){var e=this.announcement.published_at;if(e)return this.formatTimeOrDate(e,Ad.Z.internalToBrowserLocale(this.$i18n.locale))},startsAt:function(){var e=this.announcement.starts_at;if(e)return this.formatTimeOrDate(e,Ad.Z.internalToBrowserLocale(this.$i18n.locale))},endsAt:function(){var e=this.announcement.ends_at;if(e)return this.formatTimeOrDate(e,Ad.Z.internalToBrowserLocale(this.$i18n.locale))},inactive:function(){return this.announcement.inactive}}),methods:{markAsRead:function(){if(!this.isRead)return this.$store.dispatch("markAnnouncementAsRead",this.announcement.id)},deleteAnnouncement:function(){return this.$store.dispatch("deleteAnnouncement",this.announcement.id)},formatTimeOrDate:function(e,t){var n=new Date(e);return this.announcement.all_day?n.toLocaleDateString(t):n.toLocaleString(t)},enterEditMode:function(){this.editedAnnouncement.content=this.announcement.pleroma.raw_content,this.editedAnnouncement.startsAt=this.announcement.starts_at,this.editedAnnouncement.endsAt=this.announcement.ends_at,this.editedAnnouncement.allDay=this.announcement.all_day,this.editing=!0},submitEdit:function(){var e=this;this.$store.dispatch("editAnnouncement",iv({id:this.announcement.id},this.editedAnnouncement)).then((function(){e.editing=!1})).catch((function(t){e.editError=t.error}))},cancelEdit:function(){this.editing=!1},clearError:function(){this.editError=void 0}}};function av(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function uv(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?av(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):av(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}const cv={components:{Announcement:(0,Jo.Z)(sv,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("rich-content"),a=(0,Co.up)("announcement-editor"),u=(0,Co.up)("FAIcon");return(0,Co.wg)(),(0,Co.iD)("div",xg,[(0,Co._)("div",Tg,[(0,Co._)("h4",null,(0,So.zw)(e.$t("announcements.title")),1)]),(0,Co._)("div",$g,[e.editing?((0,Co.wg)(),(0,Co.j4)(a,{key:1,announcement:e.editedAnnouncement},null,8,["announcement"])):((0,Co.wg)(),(0,Co.j4)(s,{key:0,html:e.content,emoji:e.announcement.emojis,"handle-links":!0},null,8,["html","emoji"]))]),(0,Co._)("div",Bg,[e.editing?(0,Co.kq)("",!0):((0,Co.wg)(),(0,Co.iD)("div",Ug,[e.publishedAt?((0,Co.wg)(),(0,Co.iD)("span",Mg,(0,So.zw)(e.$t("announcements.published_time_display",{time:e.publishedAt})),1)):(0,Co.kq)("",!0),e.startsAt?((0,Co.wg)(),(0,Co.iD)("span",Lg,(0,So.zw)(e.$t("announcements.start_time_display",{time:e.startsAt})),1)):(0,Co.kq)("",!0),e.endsAt?((0,Co.wg)(),(0,Co.iD)("span",Rg,(0,So.zw)(e.$t("announcements.end_time_display",{time:e.endsAt})),1)):(0,Co.kq)("",!0)])),e.editing?((0,Co.wg)(),(0,Co.iD)("div",Zg,[(0,Co._)("button",{class:"btn button-default",onClick:t[3]||(t[3]=function(){return e.submitEdit&&e.submitEdit.apply(e,arguments)})},(0,So.zw)(e.$t("announcements.submit_edit_action")),1),(0,Co._)("button",{class:"btn button-default",onClick:t[4]||(t[4]=function(){return e.cancelEdit&&e.cancelEdit.apply(e,arguments)})},(0,So.zw)(e.$t("announcements.cancel_edit_action")),1),e.editing&&e.editError?((0,Co.wg)(),(0,Co.iD)("div",Wg,[(0,Co.Uk)((0,So.zw)(e.$t("announcements.edit_error",{error:e.error}))+" ",1),(0,Co._)("button",{class:"button-unstyled",onClick:t[5]||(t[5]=function(){return e.clearError&&e.clearError.apply(e,arguments)})},[(0,Co.Wm)(u,{class:"fa-scale-110 fa-old-padding",icon:"times",title:e.$t("announcements.close_error")},null,8,["title"])])])):(0,Co.kq)("",!0)])):((0,Co.wg)(),(0,Co.iD)("div",qg,[e.currentUser?((0,Co.wg)(),(0,Co.iD)("button",{key:0,class:(0,So.C_)(["btn button-default",{toggled:e.isRead}]),disabled:e.inactive,title:e.inactive?e.$t("announcements.inactive_message"):"",onClick:t[0]||(t[0]=function(){return e.markAsRead&&e.markAsRead.apply(e,arguments)})},(0,So.zw)(e.$t("announcements.mark_as_read_action")),11,Ng)):(0,Co.kq)("",!0),e.canEditAnnouncement?((0,Co.wg)(),(0,Co.iD)("button",{key:1,class:"btn button-default",onClick:t[1]||(t[1]=function(){return e.enterEditMode&&e.enterEditMode.apply(e,arguments)})},(0,So.zw)(e.$t("announcements.edit_action")),1)):(0,Co.kq)("",!0),e.canEditAnnouncement?((0,Co.wg)(),(0,Co.iD)("button",{key:2,class:"btn button-default",onClick:t[2]||(t[2]=function(){return e.deleteAnnouncement&&e.deleteAnnouncement.apply(e,arguments)})},(0,So.zw)(e.$t("announcements.delete_action")),1)):(0,Co.kq)("",!0)]))])])}]]),AnnouncementEditor:ov},data:function(){return{newAnnouncement:{content:"",startsAt:void 0,endsAt:void 0,allDay:!1},posting:!1,error:void 0}},mounted:function(){this.$store.dispatch("fetchAnnouncements")},computed:uv(uv({},(0,s.rn)({currentUser:function(e){return e.users.currentUser}})),{},{announcements:function(){return this.$store.state.announcements.announcements},canPostAnnouncement:function(){return this.currentUser&&this.currentUser.privileges.includes("announcements_manage_announcements")}}),methods:{postAnnouncement:function(){var e=this;this.posting=!0,this.$store.dispatch("postAnnouncement",this.newAnnouncement).then((function(){e.newAnnouncement.content="",e.startsAt=void 0,e.endsAt=void 0})).catch((function(t){e.error=t.error})).finally((function(){e.posting=!1}))},clearError:function(){this.error=void 0}}},lv=(0,Jo.Z)(cv,[["render",function(e,t,n,o,r,i){var s=(0,Co.up)("announcement-editor"),a=(0,Co.up)("FAIcon"),u=(0,Co.up)("announcement");return(0,Co.wg)(),(0,Co.iD)("div",Cg,[(0,Co._)("div",Sg,[(0,Co._)("span",null,(0,So.zw)(e.$t("announcements.page_header")),1)]),(0,Co._)("div",jg,[e.canPostAnnouncement?((0,Co.wg)(),(0,Co.iD)("section",Fg,[(0,Co._)("div",Ag,[(0,Co._)("div",Og,[(0,Co._)("h4",null,(0,So.zw)(e.$t("announcements.post_form_header")),1)]),(0,Co._)("div",Eg,[(0,Co.Wm)(s,{announcement:e.newAnnouncement,disabled:e.posting},null,8,["announcement","disabled"])]),(0,Co._)("div",zg,[(0,Co._)("button",{class:"btn button-default post-button",disabled:e.posting,onClick:t[0]||(t[0]=(0,wo.iM)((function(){return e.postAnnouncement&&e.postAnnouncement.apply(e,arguments)}),["prevent"]))},(0,So.zw)(e.$t("announcements.post_action")),9,Pg),e.error?((0,Co.wg)(),(0,Co.iD)("div",Ig,[(0,Co.Uk)((0,So.zw)(e.$t("announcements.post_error",{error:e.error}))+" ",1),(0,Co._)("button",{class:"button-unstyled",onClick:t[1]||(t[1]=function(){return e.clearError&&e.clearError.apply(e,arguments)})},[(0,Co.Wm)(a,{class:"fa-scale-110 fa-old-padding",icon:"times",title:e.$t("announcements.close_error")},null,8,["title"])])])):(0,Co.kq)("",!0)])])])):(0,Co.kq)("",!0),((0,Co.wg)(!0),(0,Co.iD)(Co.HY,null,(0,Co.Ko)(e.announcements,(function(e){return(0,Co.wg)(),(0,Co.iD)("section",{key:e.id},[(0,Co.Wm)(u,{announcement:e},null,8,["announcement"])])})),128))])])}]]),dv=function(e){var t=function(t,n,o){e.state.users.currentUser?o():o(e.state.instance.redirectRootNoLogin||"/main/all")},n=[{name:"root",path:"/",redirect:function(t){return(e.state.users.currentUser?e.state.instance.redirectRootLogin:e.state.instance.redirectRootNoLogin)||"/main/all"}},{name:"public-external-timeline",path:"/main/all",component:Jc},{name:"public-timeline",path:"/main/public",component:Gc},{name:"friends",path:"/main/friends",component:Xc,beforeEnter:t},{name:"tag-timeline",path:"/tag/:tag",component:tl},{name:"bookmarks",path:"/bookmarks",component:ol},{name:"conversation",path:"/notice/:id",component:il,meta:{dontScroll:!0}},{name:"remote-user-profile-acct",path:"/remote-users/:_(@)?:username([^/@]+)@:hostname([^/@]+)",component:$f,beforeEnter:t},{name:"remote-user-profile",path:"/remote-users/:hostname/:username",component:$f,beforeEnter:t},{name:"external-user-profile",path:"/users/$:id",component:fp},{name:"interactions",path:"/users/:username/interactions",component:wl,beforeEnter:t},{name:"dms",path:"/users/:username/dms",component:yl,beforeEnter:t},{name:"registration",path:"/registration",component:Vm},{name:"password-reset",path:"/password-reset",component:fh,props:!0},{name:"registration-token",path:"/registration/:token",component:Vm},{name:"friend-requests",path:"/friend-requests",component:kh,beforeEnter:t},{name:"notifications",path:"/:username/notifications",component:ya.default,props:function(){return{disableTeleport:!0}},beforeEnter:t},{name:"login",path:"/login",component:Pr},{name:"shout-panel",path:"/shout-panel",component:gs,props:function(){return{floating:!1}}},{name:"oauth-callback",path:"/oauth-callback",component:Sh,props:function(e){return{code:e.query.code}}},{name:"search",path:"/search",component:Wp,props:function(e){return{query:e.query.query}}},{name:"who-to-follow",path:"/who-to-follow",component:Eh,beforeEnter:t},{name:"about",path:"/about",component:Ef},{name:"announcements",path:"/announcements",component:lv},{name:"user-profile",path:"/users/:name",component:fp},{name:"legacy-user-profile",path:"/:name",component:fp},{name:"lists",path:"/lists",component:Wf},{name:"lists-timeline",path:"/lists/:id",component:Vf},{name:"lists-edit",path:"/lists/:id/edit",component:kg},{name:"lists-new",path:"/lists/new",component:kg},{name:"edit-navigation",path:"/nav-edit",component:_i,props:function(){return{forceExpand:!0,forceEditMode:!0}},beforeEnter:t}];return e.state.instance.pleromaChatMessagesAvailable&&(n=n.concat([{name:"chat",path:"/users/:username/chats/:recipient_id",component:Ld,meta:{dontScroll:!1},beforeEnter:t},{name:"chats",path:"/users/:username/chats",component:cd,meta:{dontScroll:!1},beforeEnter:t}])),n};var pv,mv,hv=n(58509),fv=new Set([]),gv=function(e){var t=window.innerWidth-document.documentElement.clientWidth;hv.Qp(e,{reserveScrollBarGap:!0}),fv.add(e),setTimeout((function(){if(fv.size<=1){if(void 0===pv){var e=document.getElementById("nav");pv=window.getComputedStyle(e).getPropertyValue("padding-right"),e.style.paddingRight=pv?"calc(".concat(pv," + ").concat(t,"px)"):"".concat(t,"px")}if(void 0===mv){var n=document.getElementById("app_bg_wrapper");mv=window.getComputedStyle(n).getPropertyValue("right"),n.style.right=mv?"calc(".concat(mv," + ").concat(t,"px)"):"".concat(t,"px")}document.body.classList.add("scroll-locked")}}))},vv=function(e){fv.delete(e),setTimeout((function(){0===fv.size&&(void 0!==pv&&(document.getElementById("nav").style.paddingRight=pv,pv=void 0),void 0!==mv&&(document.getElementById("app_bg_wrapper").style.right=mv,mv=void 0),document.body.classList.remove("scroll-locked"))})),hv.tG(e)},wv={mounted:function(e,t){t.value&&gv(e)},updated:function(e,t){t.oldValue!==t.value&&(t.value?gv(e):vv(e))},unmounted:function(e){vv(e)}};const bv=function(e){e.directive("body-scroll-lock",wv)};var yv=n(49753);function Dv(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function _v(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Dv(Object(n),!0).forEach((function(t){(0,d.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Dv(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var kv=null,Cv=function(e){var t=atob(e),n=Uint8Array.from((0,l.Z)(t).map((function(e){return e.charCodeAt(0)})));return(new TextDecoder).decode(n)},Sv=function(){var e=(0,o.Z)(i().mark((function e(t){var n,o,r;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if((n=document.getElementById("initial-results")?(kv||(kv=JSON.parse(document.getElementById("initial-results").textContent)),kv):null)&&n[t]){e.next=3;break}return e.abrupt("return",window.fetch(t));case 3:return o=Cv(n[t]),r=JSON.parse(o),e.abrupt("return",{ok:!0,json:function(){return r},text:function(){return r}});case 6:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),jv=function(){var e=(0,o.Z)(i().mark((function e(t){var n,o,r,s,a;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.store,e.prev=1,e.next=4,Sv("/api/v1/instance");case 4:if(!(o=e.sent).ok){e.next=18;break}return e.next=8,o.json();case 8:r=e.sent,s=r.max_toot_chars,a=r.pleroma.vapid_public_key,n.dispatch("setInstanceOption",{name:"textlimit",value:s}),n.dispatch("setInstanceOption",{name:"accountApprovalRequired",value:r.approval_required}),n.dispatch("setInstanceOption",{name:"birthdayRequired",value:!!r.pleroma.metadata.birthday_required}),n.dispatch("setInstanceOption",{name:"birthdayMinAge",value:r.pleroma.metadata.birthday_min_age||0}),a&&n.dispatch("setInstanceOption",{name:"vapidPublicKey",value:a}),e.next=19;break;case 18:throw o;case 19:e.next=25;break;case 21:e.prev=21,e.t0=e.catch(1),console.error("Could not load instance config, potentially fatal"),console.error(e.t0);case 25:case"end":return e.stop()}}),e,null,[[1,21]])})));return function(t){return e.apply(this,arguments)}}(),Fv=function(){var e=(0,o.Z)(i().mark((function e(t){var n,o;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t.store,e.prev=1,e.next=4,window.fetch("/api/pleroma/frontend_configurations");case 4:if(!(n=e.sent).ok){e.next=12;break}return e.next=8,n.json();case 8:return o=e.sent,e.abrupt("return",o.pleroma_fe);case 12:throw n;case 13:e.next=19;break;case 15:e.prev=15,e.t0=e.catch(1),console.error("Could not load backend-provided frontend config, potentially fatal"),console.error(e.t0);case 19:case"end":return e.stop()}}),e,null,[[1,15]])})));return function(t){return e.apply(this,arguments)}}(),Av=function(){var e=(0,o.Z)(i().mark((function e(){var t;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,window.fetch("/static/config.json");case 3:if(!(t=e.sent).ok){e.next=8;break}return e.abrupt("return",t.json());case 8:throw t;case 9:e.next=16;break;case 11:return e.prev=11,e.t0=e.catch(0),console.warn("Failed to load static/config.json, continuing without it."),console.warn(e.t0),e.abrupt("return",{});case 16:case"end":return e.stop()}}),e,null,[[0,11]])})));return function(){return e.apply(this,arguments)}}(),Ov=function(){var e=(0,o.Z)(i().mark((function e(t){var n,o,r,s,a,u,c;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.apiConfig,o=t.staticConfig,r=t.store,s=window.___pleromafe_dev_overrides||{},a=window.___pleromafe_mode.NODE_ENV,u={},s.staticConfigPreference&&"development"===a?(console.warn("OVERRIDING API CONFIG WITH STATIC CONFIG"),u=Object.assign({},n,o)):u=Object.assign({},o,n),(c=function(e){r.dispatch("setInstanceOption",{name:e,value:u[e]})})("nsfwCensorImage"),c("background"),c("hidePostStats"),c("hideBotIndication"),c("hideUserStats"),c("hideFilteredStatuses"),c("logo"),r.dispatch("setInstanceOption",{name:"logoMask",value:void 0===u.logoMask||u.logoMask}),r.dispatch("setInstanceOption",{name:"logoMargin",value:void 0===u.logoMargin?0:u.logoMargin}),c("logoLeft"),r.commit("authFlow/setInitialStrategy",u.loginMethod),c("redirectRootNoLogin"),c("redirectRootLogin"),c("showInstanceSpecificPanel"),c("minimalScopesMode"),c("hideMutedPosts"),c("collapseMessageWithSubject"),c("scopeCopy"),c("subjectLineBehavior"),c("postContentType"),c("alwaysShowSubjectInput"),c("showFeaturesPanel"),c("hideSitename"),c("sidebarRight"),e.abrupt("return",r.dispatch("setTheme",u.theme));case 31:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),Ev=function(){var e=(0,o.Z)(i().mark((function e(t){var n,o,r;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.store,e.prev=1,e.next=4,window.fetch("/static/terms-of-service.html");case 4:if(!(o=e.sent).ok){e.next=12;break}return e.next=8,o.text();case 8:r=e.sent,n.dispatch("setInstanceOption",{name:"tos",value:r}),e.next=13;break;case 12:throw o;case 13:e.next=19;break;case 15:e.prev=15,e.t0=e.catch(1),console.warn("Can't load TOS"),console.warn(e.t0);case 19:case"end":return e.stop()}}),e,null,[[1,15]])})));return function(t){return e.apply(this,arguments)}}(),zv=function(){var e=(0,o.Z)(i().mark((function e(t){var n,o,r;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.store,e.prev=1,e.next=4,Sv("/instance/panel.html");case 4:if(!(o=e.sent).ok){e.next=12;break}return e.next=8,o.text();case 8:r=e.sent,n.dispatch("setInstanceOption",{name:"instanceSpecificPanelContent",value:r}),e.next=13;break;case 12:throw o;case 13:e.next=19;break;case 15:e.prev=15,e.t0=e.catch(1),console.warn("Can't load instance panel"),console.warn(e.t0);case 19:case"end":return e.stop()}}),e,null,[[1,15]])})));return function(t){return e.apply(this,arguments)}}(),Pv=function(){var e=(0,o.Z)(i().mark((function e(t){var n,r,s,a;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.store,e.prev=1,e.next=4,window.fetch("/static/stickers.json");case 4:if(!(r=e.sent).ok){e.next=15;break}return e.next=8,r.json();case 8:return s=e.sent,e.next=11,Promise.all(Object.entries(s).map(function(){var e=(0,o.Z)(i().mark((function e(t){var n,o,r,s,a;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=(0,c.Z)(t,2),o=n[0],r=n[1],e.next=3,window.fetch(r+"pack.json");case 3:if(s=e.sent,a={},!s.ok){e.next=9;break}return e.next=8,s.json();case 8:a=e.sent;case 9:return e.abrupt("return",{pack:o,path:r,meta:a});case 10:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()));case 11:a=e.sent.sort((function(e,t){return e.meta.title.localeCompare(t.meta.title)})),n.dispatch("setInstanceOption",{name:"stickers",value:a}),e.next=16;break;case 15:throw r;case 16:e.next=22;break;case 18:e.prev=18,e.t0=e.catch(1),console.warn("Can't load stickers"),console.warn(e.t0);case 22:case"end":return e.stop()}}),e,null,[[1,18]])})));return function(t){return e.apply(this,arguments)}}(),Iv=function(){var e=(0,o.Z)(i().mark((function e(t){var n,o,r,s,a;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.store,o=n.state,r=n.commit,s=o.oauth,a=o.instance,e.abrupt("return",Le(_v(_v({},s),{},{instance:a.server,commit:r})).then((function(e){return Re(_v(_v({},e),{},{instance:a.server}))})).then((function(e){r("setAppToken",e.access_token),r("setBackendInteractor",xe(n.getters.getToken()))})));case 4:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),xv=function(e){var t=e.store,n=e.accounts.map((function(e){return e.split("/").pop()}));t.dispatch("setInstanceOption",{name:"staffAccounts",value:n})},Tv=function(){var e=(0,o.Z)(i().mark((function e(t){var n,o,r,s,a,u,c,l,d,p,m,h,f;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.store,e.prev=1,e.next=4,Sv("/nodeinfo/2.0.json");case 4:if(!(o=e.sent).ok){e.next=52;break}return e.next=8,o.json();case 8:r=e.sent,s=r.metadata,a=s.features,n.dispatch("setInstanceOption",{name:"name",value:s.nodeName}),n.dispatch("setInstanceOption",{name:"registrationOpen",value:r.openRegistrations}),n.dispatch("setInstanceOption",{name:"mediaProxyAvailable",value:a.includes("media_proxy")}),n.dispatch("setInstanceOption",{name:"safeDM",value:a.includes("safe_dm_mentions")}),n.dispatch("setInstanceOption",{name:"shoutAvailable",value:a.includes("chat")}),n.dispatch("setInstanceOption",{name:"pleromaChatMessagesAvailable",value:a.includes("pleroma_chat_messages")}),n.dispatch("setInstanceOption",{name:"pleromaCustomEmojiReactionsAvailable",value:a.includes("pleroma_custom_emoji_reactions")}),n.dispatch("setInstanceOption",{name:"gopherAvailable",value:a.includes("gopher")}),n.dispatch("setInstanceOption",{name:"pollsAvailable",value:a.includes("polls")}),n.dispatch("setInstanceOption",{name:"editingAvailable",value:a.includes("editing")}),n.dispatch("setInstanceOption",{name:"pollLimits",value:s.pollLimits}),n.dispatch("setInstanceOption",{name:"mailerEnabled",value:s.mailerEnabled}),n.dispatch("setInstanceOption",{name:"quotingAvailable",value:a.includes("quote_posting")}),u=s.uploadLimits,n.dispatch("setInstanceOption",{name:"uploadlimit",value:parseInt(u.general)}),n.dispatch("setInstanceOption",{name:"avatarlimit",value:parseInt(u.avatar)}),n.dispatch("setInstanceOption",{name:"backgroundlimit",value:parseInt(u.background)}),n.dispatch("setInstanceOption",{name:"bannerlimit",value:parseInt(u.banner)}),n.dispatch("setInstanceOption",{name:"fieldsLimits",value:s.fieldsLimits}),n.dispatch("setInstanceOption",{name:"restrictedNicknames",value:s.restrictedNicknames}),n.dispatch("setInstanceOption",{name:"postFormats",value:s.postFormats}),c=s.suggestions,n.dispatch("setInstanceOption",{name:"suggestionsEnabled",value:c.enabled}),n.dispatch("setInstanceOption",{name:"suggestionsWeb",value:c.web}),l=r.software,n.dispatch("setInstanceOption",{name:"backendVersion",value:l.version}),n.dispatch("setInstanceOption",{name:"pleromaBackend",value:"pleroma"===l.name}),d=s.private,n.dispatch("setInstanceOption",{name:"private",value:d}),p=window.___pleromafe_commit_hash,n.dispatch("setInstanceOption",{name:"frontendVersion",value:p}),m=s.federation,n.dispatch("setInstanceOption",{name:"tagPolicyAvailable",value:void 0!==m.mrf_policies&&s.federation.mrf_policies.includes("TagPolicy")}),n.dispatch("setInstanceOption",{name:"federationPolicy",value:m}),n.dispatch("setInstanceOption",{name:"federating",value:void 0===m.enabled||m.enabled}),h=s.accountActivationRequired,n.dispatch("setInstanceOption",{name:"accountActivationRequired",value:h}),f=s.staffAccounts,xv({store:n,accounts:f}),e.next=53;break;case 52:throw o;case 53:e.next=59;break;case 55:e.prev=55,e.t0=e.catch(1),console.warn("Could not load nodeinfo"),console.warn(e.t0);case 59:case"end":return e.stop()}}),e,null,[[1,55]])})));return function(t){return e.apply(this,arguments)}}(),$v=function(){var e=(0,o.Z)(i().mark((function e(t){var n,o,r,s;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.store,e.next=3,Promise.all([Fv({store:n}),Av()]);case 3:return o=e.sent,r=o[0],s=o[1],e.next=8,Ov({store:n,apiConfig:r,staticConfig:s}).then(Iv({store:n}));case 8:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),Bv=function(){var e=(0,o.Z)(i().mark((function e(t){var n;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.store,e.abrupt("return",new Promise(function(){var e=(0,o.Z)(i().mark((function e(t,o){return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!n.getters.getUserToken()){e.next=9;break}return e.prev=1,e.next=4,n.dispatch("loginUser",n.getters.getUserToken());case 4:e.next=9;break;case 6:e.prev=6,e.t0=e.catch(1),console.error(e.t0);case 9:t();case 10:case"end":return e.stop()}}),e,null,[[1,6]])})));return function(t,n){return e.apply(this,arguments)}}()));case 2:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}();const Uv=function(){var e=(0,o.Z)(i().mark((function e(t){var n,o,r,s,a,u,c,l,d,h;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.store,o=t.i18n,n.dispatch("setLayoutWidth",Te()),n.dispatch("setLayoutHeight",$e()),yv.Z.initFaviconService(),r=window.___pleromafe_dev_overrides||{},s=void 0!==r.target?r.target:window.location.origin,n.dispatch("setInstanceOption",{name:"server",value:s}),e.next=9,$v({store:n});case 9:return a=n.state.config,u=a.customTheme,c=a.customThemeSource,l=n.state.instance.theme,c||u?c&&c.themeEngineVersion===m.we?(0,p._v)(c):(0,p._v)(u):l||console.error("Failed to load any theme!"),(0,p.mg)(n.state.config),e.next=16,Promise.all([Bv({store:n}),zv({store:n}),Tv({store:n}),jv({store:n})]);case 16:return n.dispatch("fetchMutes"),n.dispatch("startFetchingAnnouncements"),Ev({store:n}),Pv({store:n}),d=(0,bo.p7)({history:(0,bo.PO)(),routes:dv(n),scrollBehavior:function(e,t,n){return!e.matched.some((function(e){return e.meta.dontScroll}))&&(n||{left:0,top:0})}}),(h=(0,wo.ri)(Au)).use(d),h.use(n),h.use(o),h.use(Do()),h.use(bv),h.use(_o.ZP),h.component("FAIcon",ko.GN),h.component("FALayers",ko.NH),h.config.unwrapInjectedRef=!0,h.mount("#app"),e.abrupt("return",h);case 33:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}();var Mv=(window.navigator.language||"en").split("-")[0],Lv=(0,so.o)({locale:"en",fallbackLocale:"en",messages:vo.Z.default});vo.Z.setLanguage(Lv.global,Mv);var Rv={paths:["serverSideStorage.cache","config","users.lastLoginName","oauth"]};(0,o.Z)(i().mark((function e(){var t,n,o,r;return i().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=!1,n=[go],e.prev=2,e.next=5,fo(Rv);case 5:o=e.sent,n.push(o),e.next=13;break;case 9:e.prev=9,e.t0=e.catch(2),console.error(e.t0),t=!0;case 13:r=(0,s.MT)({modules:{i18n:{getters:{i18n:function(){return Lv.global}}},interface:u,instance:k,users:st,statuses:ae,lists:le,api:vt,config:f.ZP,profileConfig:Ft,serverSideStorage:ln,adminSettings:wn,shout:bn,oauth:yn,authFlow:jn,mediaViewer:En,oauthTokens:zn,reports:Tn,polls:$n,postStatus:Bn,editStatus:Un,statusHistory:Mn,chats:ro,announcements:io},plugins:n,strict:!1}),t&&r.dispatch("pushGlobalNotice",{messageKey:"errors.storage_unavailable",level:"error"}),Uv({store:r,i18n:Lv});case 16:case"end":return e.stop()}}),e,null,[[2,9]])})))(),window.___pleromafe_mode={NODE_ENV:"production"},window.___pleromafe_commit_hash="6c78b59c\n",window.___pleromafe_dev_overrides=void 0},85565:(e,t,n)=>{"use strict";n.d(t,{Oi:()=>f,W2:()=>h,ZP:()=>g});var o=n(4942),r=n(29439),i=n(36968),s=n.n(i),a=n(6258),u=n(77394),c=n(72617),l=n(39776);function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function m(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?p(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):p(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var h={expertLevel:0,colors:{},theme:void 0,customTheme:void 0,customThemeSource:void 0,hideISP:!1,hideInstanceWallpaper:!1,hideShoutbox:!1,hideMutedPosts:void 0,hideMutedThreads:void 0,hideWordFilteredPosts:void 0,muteBotStatuses:void 0,collapseMessageWithSubject:void 0,padEmoji:!0,hideAttachments:!1,hideAttachmentsInConv:!1,maxThumbnails:16,hideNsfw:!0,preloadImage:!0,loopVideo:!0,loopVideoSilentOnly:!0,streaming:!1,emojiReactionsOnTimeline:!0,alwaysShowNewPostButton:!1,autohideFloatingPostButton:!1,pauseOnUnfocused:!0,stopGifs:!0,replyVisibility:"all",thirdColumnMode:"notifications",notificationVisibility:{follows:!0,mentions:!0,likes:!0,repeats:!0,moves:!0,emojiReactions:!0,followRequest:!0,reports:!0,chatMention:!0,polls:!0},webPushNotifications:!1,muteWords:[],highlight:{},interfaceLanguage:(window.navigator.language||"en").split("-")[0],hideScopeNotice:!1,useStreamingApi:!1,sidebarRight:void 0,scopeCopy:void 0,subjectLineBehavior:void 0,alwaysShowSubjectInput:void 0,postContentType:void 0,minimalScopesMode:void 0,hideFilteredStatuses:void 0,modalOnRepeat:void 0,modalOnUnfollow:void 0,modalOnBlock:void 0,modalOnMute:void 0,modalOnDelete:void 0,modalOnLogout:void 0,modalOnApproveFollow:void 0,modalOnDenyFollow:void 0,modalOnRemoveUserFromFollowers:void 0,playVideosInModal:!1,useOneClickNsfw:!1,useContainFit:!0,disableStickyHeaders:!1,showScrollbars:!1,userPopoverAvatarAction:"open",userPopoverOverlay:!1,sidebarColumnWidth:"25rem",contentColumnWidth:"45rem",notifsColumnWidth:"25rem",emojiReactionsScale:1,navbarColumnStretch:!1,greentext:void 0,useAtIcon:void 0,mentionLinkDisplay:void 0,mentionLinkShowTooltip:void 0,mentionLinkShowAvatar:void 0,mentionLinkFadeDomain:void 0,mentionLinkShowYous:void 0,mentionLinkBoldenYou:void 0,hidePostStats:void 0,hideBotIndication:void 0,hideUserStats:void 0,virtualScrolling:void 0,sensitiveByDefault:void 0,conversationDisplay:void 0,conversationTreeAdvanced:void 0,conversationOtherRepliesButton:void 0,conversationTreeFadeAncestors:void 0,maxDepthInThread:void 0,autocompleteSelect:void 0},f=Object.entries(h).filter((function(e){var t=(0,r.Z)(e,2);return t[0],void 0===t[1]})).map((function(e){var t=(0,r.Z)(e,2),n=t[0];return t[1],n}));const g={state:m({},h),getters:{defaultConfig:function(e,t,n,o){var r=n.instance;return m(m({},h),Object.fromEntries(f.map((function(e){return[e,r[e]]}))))},mergedConfig:function(e,t,n,o){return m(m({},o.defaultConfig),Object.fromEntries(Object.entries(e).filter((function(e){var t=(0,r.Z)(e,2);return t[0],void 0!==t[1]}))))}},mutations:{setOption:function(e,t){var n=t.name,o=t.value;s()(e,n,o)},setHighlight:function(e,t){var n=t.user,o=t.color,r=t.type,i=this.state.config.highlight[n];o||r?e.highlight[n]={color:o||i.color,type:r||i.type}:delete e.highlight[n]}},actions:{loadSettings:function(e,t){var n,o=e.dispatch,r=new Set(Object.keys(h)),i=new Set(Object.keys(t)),s=new Set,a=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return d(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?d(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0,r=function(){};return{s:r,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,i=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw i}}}}(i);try{for(a.s();!(n=a.n()).done;){var u=n.value;r.has(u)&&s.add(u)}}catch(e){a.e(e)}finally{a.f()}s.forEach((function(e){return o("setOption",{name:e,value:t[e]})}))},setHighlight:function(e,t){var n=e.commit;e.dispatch,n("setHighlight",{user:t.user,color:t.color,type:t.type})},setOption:function(e,t){var n=e.commit,o=e.dispatch,r=e.state,i=t.name,s=t.value;if(new Set(["useStreamingApi"]).has(i))"useStreamingApi"===i&&o(s?"enableMastoSockets":"disableMastoSockets").then((function(){n("setOption",{name:"useStreamingApi",value:s})})).catch((function(e){console.error("Failed starting MastoAPI Streaming socket",e),o("disableMastoSockets"),o("setOption",{name:"useStreamingApi",value:!1})}));else switch(n("setOption",{name:i,value:s}),i){case"theme":(0,u.bY)(s);break;case"sidebarColumnWidth":case"contentColumnWidth":case"notifsColumnWidth":case"emojiReactionsScale":(0,u.mg)(r);break;case"customTheme":case"customThemeSource":(0,u._v)(s);break;case"interfaceLanguage":c.Z.setLanguage(this.getters.i18n,s),o("loadUnicodeEmojiData",s),a.Z.set("userLanguage",l.Z.internalToBackendLocaleMulti(s));break;case"thirdColumnMode":o("setLayoutWidth",void 0)}}}}},77776:(e,t,n)=>{"use strict";n.d(t,{ro:()=>$e,_z:()=>Ue,ZP:()=>Me,pR:()=>Ie});var o=n(15861),r=n(44925),i=n(29439),s=n(4942),a=n(27361),u=n.n(a),c=n(10928),l=n.n(c),d=n(57043),p=n.n(d),m=n(35161),h=n.n(m),f=n(66073),g=n.n(f),v=n(64687),w=n.n(v),b=n(27742),y=n(71002),D=n(43144),_=n(15671),k=n(97326),C=n(60136),S=n(82963),j=n(61120),F=n(72407),A=n(93433),O=n(48403),E=n.n(O);function z(e,t,n,o){this.name="StatusCodeError",this.statusCode=e,this.message=e+" - "+(JSON&&JSON.stringify?JSON.stringify(t):t),this.error=t,this.options=n,this.response=o,Error.captureStackTrace&&Error.captureStackTrace(this)}z.prototype=Object.create(Error.prototype),z.prototype.constructor=z;var P=function(e){(0,C.Z)(r,e);var t,n,o=(t=r,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,o=(0,j.Z)(t);if(n){var r=(0,j.Z)(this).constructor;e=Reflect.construct(o,arguments,r)}else e=o.apply(this,arguments);return(0,S.Z)(this,e)});function r(e){var t,n;(0,_.Z)(this,r),t=o.call(this),Error.captureStackTrace&&Error.captureStackTrace((0,k.Z)(t));try{if("string"==typeof e&&(e=JSON.parse(e)).hasOwnProperty("error")&&(e=JSON.parse(e.error)),"object"===(0,y.Z)(e)){var s=JSON.parse(e.error);s.ap_id&&(s.username=s.ap_id,delete s.ap_id),t.message=(n=s,Object.entries(n).reduce((function(e,t){var n=(0,i.Z)(t,2),o=n[0],r=n[1].reduce((function(e,t){return e+[E()(o.replace(/_/g," ")),t].join(" ")+". "}),"");return[].concat((0,A.Z)(e),[r])}),[]))}else t.message=e}catch(n){t.message=e}return t}return(0,D.Z)(r)}((0,F.Z)(Error)),I=["nickname"],x=["id","credentials"];function T(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function $(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?T(Object(n),!0).forEach((function(t){(0,s.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):T(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var B="/api/pleroma/aliases",U="/api/pleroma/admin/users/tag",M=function(e,t){return"/api/pleroma/admin/users/".concat(e,"/permission_group/").concat(t)},L=function(e){return"/api/v1/notifications/".concat(e,"/dismiss")},R=function(e){return"/api/v1/statuses/".concat(e,"/favourite")},q=function(e){return"/api/v1/statuses/".concat(e,"/unfavourite")},N=function(e){return"/api/v1/statuses/".concat(e,"/reblog")},Z=function(e){return"/api/v1/statuses/".concat(e,"/unreblog")},W=function(e){return"/api/v1/statuses/".concat(e)},H="/api/v1/timelines/public",V=function(e){return"/api/v1/statuses/".concat(e)},K=function(e){return"/api/v1/accounts/".concat(e,"/statuses")},G=function(e){return"/api/v1/lists/".concat(e)},Y=function(e){return"/api/v1/timelines/list/".concat(e)},J=function(e){return"/api/v1/lists/".concat(e,"/accounts")},Q=function(e){return"/api/v1/timelines/tag/".concat(e)},X=function(e){return"/api/v1/accounts/".concat(e,"/mute")},ee=function(e){return"/api/v1/accounts/".concat(e,"/unmute")},te=function(e){return"/api/v1/pleroma/accounts/".concat(e,"/subscribe")},ne=function(e){return"/api/v1/pleroma/accounts/".concat(e,"/unsubscribe")},oe=function(e){return"/api/v1/accounts/".concat(e,"/note")},re=function(e){return"/api/v1/statuses/".concat(e,"/bookmark")},ie=function(e){return"/api/v1/statuses/".concat(e,"/unbookmark")},se="/api/v1/media",ae=function(e){return"/api/v1/statuses/".concat(e,"/favourited_by")},ue=function(e){return"/api/v1/statuses/".concat(e,"/reblogged_by")},ce="/api/v1/accounts/update_credentials",le=function(e){return"/api/v1/statuses/".concat(e,"/pin")},de=function(e){return"/api/v1/statuses/".concat(e,"/unpin")},pe=function(e){return"/api/v1/statuses/".concat(e,"/mute")},me=function(e){return"/api/v1/statuses/".concat(e,"/unmute")},he="/api/v1/domain_blocks",fe=function(e){return"/api/v1/announcements/".concat(e,"/dismiss")},ge=function(e){return"/api/v1/pleroma/statuses/".concat(e,"/reactions")},ve=function(e,t){return"/api/v1/pleroma/statuses/".concat(e,"/reactions/").concat(t)},we=function(e,t){return"/api/v1/pleroma/statuses/".concat(e,"/reactions/").concat(t)},be=function(e){return"/api/v1/pleroma/chats/".concat(e,"/messages")},ye=function(e){return"/api/v1/pleroma/chats/".concat(e,"/read")},De=function(e,t){return"/api/v1/pleroma/chats/".concat(e,"/messages/").concat(t)},_e="/api/v1/pleroma/backups",ke=function(e){return"/api/v1/pleroma/admin/announcements/".concat(e)},Ce=function(e){return"/api/v1/pleroma/admin/announcements/".concat(e)},Se="/api/pleroma/admin/config",je=window.fetch,Fe=function(e,t){var n=""+e;return(t=t||{}).credentials="same-origin",je(n,t)},Ae=function(e){var t=e.method,n=e.url,o=e.params,r=e.payload,s=e.credentials,a=e.headers,u={method:t,headers:$({Accept:"application/json","Content-Type":"application/json"},void 0===a?{}:a)};return o&&(n+="?"+Object.entries(o).map((function(e){var t=(0,i.Z)(e,2),n=t[0],o=t[1];return encodeURIComponent(n)+"="+encodeURIComponent(o)})).join("&")),r&&(u.body=JSON.stringify(r)),s&&(u.headers=$($({},u.headers),Oe(s))),Fe(n,u).then((function(e){return new Promise((function(t,o){return e.json().then((function(r){return e.ok?t(r):o(new z(e.status,r,{url:n,options:u},e))})).catch((function(t){return o(new z(e.status,t,{url:n,options:u},e))}))}))}))},Oe=function(e){return e?{Authorization:"Bearer ".concat(e)}:{}},Ee=function(e){var t=e.id,n=e.credentials,o="".concat("/api/v1/accounts","/").concat(t);return Ae({url:o,credentials:n}).then((function(e){return(0,b.nL)(e)}))},ze=function(e){var t=e.id,n=e.maxId,o=e.sinceId,r=e.limit,i=void 0===r?20:r,s=e.credentials,a=function(e){return"/api/v1/accounts/".concat(e,"/following")}(t),u=[n&&"max_id=".concat(n),o&&"since_id=".concat(o),i&&"limit=".concat(i),"with_relationships=true"].filter((function(e){return e})).join("&");return Fe(a+=u?"?"+u:"",{headers:Oe(s)}).then((function(e){return e.json()})).then((function(e){return e.map(b.nL)}))},Pe=function(e){var t=e.content,n=e.startsAt,o=e.endsAt,r=e.allDay,i={content:t};return void 0!==n&&(i.starts_at=n?new Date(n).toISOString():null),void 0!==o&&(i.ends_at=o?new Date(o).toISOString():null),void 0!==r&&(i.all_day=r),i},Ie=function(e){var t=e.credentials,n=e.stream,o=e.args,r=void 0===o?{}:o;return Object.entries($($({},t?{access_token:t}:{}),{},{stream:n},r)).reduce((function(e,t){var n=(0,i.Z)(t,2),o=n[0],r=n[1];return e+"".concat(o,"=").concat(r,"&")}),"/api/v1/streaming?")},xe=new Set(["update","notification","delete","filters_changed","status.update"]),Te=new Set(["pleroma:chat_update"]),$e=function(e){var t=e.url,n=e.preprocessor,o=void 0===n?Be:n,r=e.id,i=void 0===r?"Unknown":r,s=new EventTarget,a=new WebSocket(t);if(!a)throw new Error("Failed to create socket ".concat(i));var u=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(e){return e};e.addEventListener(t,(function(e){s.dispatchEvent(new CustomEvent(t,{detail:n(e)}))}))};return a.addEventListener("open",(function(e){console.debug("[WS][".concat(i,"] Socket connected"),e)})),a.addEventListener("error",(function(e){console.debug("[WS][".concat(i,"] Socket errored"),e)})),a.addEventListener("close",(function(e){console.debug("[WS][".concat(i,"] Socket disconnected with code ").concat(e.code),e)})),u(a,"open"),u(a,"close"),u(a,"message",o),u(a,"error"),s.close=function(){a.close(1e3,"Shutting down socket")},s.getState=function(){return a.readyState},s},Be=function(e){var t=e.data;if(t){var n=JSON.parse(t),o=n.event,r=n.payload;if(!xe.has(o)&&!Te.has(o))return console.warn("Unknown event",e),null;if("delete"===o)return{event:o,id:r};var i=r?JSON.parse(r):null;return"update"===o||"status.update"===o?{event:o,status:(0,b.Wn)(i)}:"notification"===o?{event:o,notification:(0,b.eM)(i)}:"pleroma:chat_update"===o?{event:o,chatUpdate:(0,b._J)(i)}:void 0}},Ue=Object.freeze({JOINED:1,CLOSED:2,ERROR:3,DISABLED:4,STARTING:5,STARTING_INITIAL:6});const Me={verifyCredentials:function(e){return Fe("/api/v1/accounts/verify_credentials",{headers:Oe(e)}).then((function(e){return e.ok?e.json():{error:e}})).then((function(e){return e.error?e:(0,b.nL)(e)}))},fetchTimeline:function(e){var t=e.timeline,n=e.credentials,r=e.since,i=void 0!==r&&r,s=e.until,a=void 0!==s&&s,u=e.userId,c=void 0!==u&&u,l=e.listId,d=void 0!==l&&l,p=e.tag,m=void 0!==p&&p,f=e.withMuted,g=void 0!==f&&f,v=e.replyVisibility,y=void 0===v?"all":v,D=e.includeTypes,_=void 0===D?[]:D,k="notifications"===t,C=[],S={public:H,friends:"/api/v1/timelines/home",dms:"/api/v1/timelines/direct",notifications:"/api/v1/notifications",publicAndExternal:H,user:K,media:K,list:Y,favorites:"/api/v1/favourites",tag:Q,bookmarks:"/api/v1/bookmarks"}[t];"user"!==t&&"media"!==t||(S=S(c)),"list"===t&&(S=S(d)),i&&C.push(["since_id",i]),a&&C.push(["max_id",a]),m&&(S=S(m)),"media"===t&&C.push(["only_media",1]),"public"===t&&C.push(["local",!0]),"public"!==t&&"publicAndExternal"!==t||C.push(["only_media",!1]),"favorites"!==t&&"bookmarks"!==t&&C.push(["with_muted",g]),"all"!==y&&C.push(["reply_visibility",y]),_.length>0&&_.forEach((function(e){C.push(["include_types[]",e])})),C.push(["limit",20]);var j=h()(C,(function(e){return"".concat(e[0],"=").concat(e[1])})).join("&");return S+="?".concat(j),Fe(S,{headers:Oe(n)}).then(function(){var e=(0,o.Z)(w().mark((function e(n){var o,r,i;return w().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=n.ok,e.next=3,n.json();case 3:if(r=e.sent,!o||r.errors){e.next=9;break}return i=(0,b.Nw)(n.headers.get("Link"),{flakeId:"bookmarks"!==t&&"notifications"!==t}),e.abrupt("return",{data:r.map(k?b.eM:b.Wn),pagination:i});case 9:return r.errors||(r.errors=[]),r.status=n.status,r.statusText=n.statusText,e.abrupt("return",r);case 13:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}())},fetchPinnedStatuses:function(e){var t=e.id,n=e.credentials,o=K(t)+"?pinned=true";return Ae({url:o,credentials:n}).then((function(e){return e.map(b.Wn)}))},fetchConversation:function(e){var t=e.id,n=e.credentials,o=function(e){return"/api/v1/statuses/".concat(e,"/context")}(t);return Fe(o,{headers:Oe(n)}).then((function(e){if(e.ok)return e;throw new Error("Error fetching timeline",e)})).then((function(e){return e.json()})).then((function(e){var t=e.ancestors,n=e.descendants;return{ancestors:t.map(b.Wn),descendants:n.map(b.Wn)}}))},fetchStatus:function(e){var t=e.id,n=e.credentials,o=V(t);return Fe(o,{headers:Oe(n)}).then((function(e){if(e.ok)return e;throw new Error("Error fetching timeline",e)})).then((function(e){return e.json()})).then((function(e){return(0,b.Wn)(e)}))},fetchStatusSource:function(e){var t=e.id,n=e.credentials,o=function(e){return"/api/v1/statuses/".concat(e,"/source")}(t);return Fe(o,{headers:Oe(n)}).then((function(e){if(e.ok)return e;throw new Error("Error fetching source",e)})).then((function(e){return e.json()})).then((function(e){return(0,b.P7)(e)}))},fetchStatusHistory:function(e){var t,n=e.status,o=e.credentials,r=(t=n.id,"/api/v1/statuses/".concat(t,"/history"));return Ae({url:r,credentials:o}).then((function(e){return e.reverse(),e.map((function(e){return e.originalStatus=n,(0,b.Wn)(e)}))}))},fetchFriends:ze,exportFriends:function(e){var t=e.id,n=e.credentials;return new Promise(function(){var e=(0,o.Z)(w().mark((function e(o,r){var i,s,a,u;return w().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:e.prev=0,i=[],s=!0;case 3:if(!s){e.next=12;break}return a=i.length>0?l()(i).id:void 0,e.next=7,ze({id:t,maxId:a,credentials:n});case 7:u=e.sent,i=p()(i,u),0===u.length&&(s=!1),e.next=3;break;case 12:o(i),e.next=18;break;case 15:e.prev=15,e.t0=e.catch(0),r(e.t0);case 18:case"end":return e.stop()}}),e,null,[[0,15]])})));return function(t,n){return e.apply(this,arguments)}}())},fetchFollowers:function(e){var t=e.id,n=e.maxId,o=e.sinceId,r=e.limit,i=void 0===r?20:r,s=e.credentials,a=function(e){return"/api/v1/accounts/".concat(e,"/followers")}(t),u=[n&&"max_id=".concat(n),o&&"since_id=".concat(o),i&&"limit=".concat(i),"with_relationships=true"].filter((function(e){return e})).join("&");return Fe(a+=u?"?"+u:"",{headers:Oe(s)}).then((function(e){return e.json()})).then((function(e){return e.map(b.nL)}))},followUser:function(e){var t=e.id,n=e.credentials,o=(0,r.Z)(e,x),i=function(e){return"/api/v1/accounts/".concat(e,"/follow")}(t),s={};return void 0!==o.reblogs&&(s.reblogs=o.reblogs),Fe(i,{body:JSON.stringify(s),headers:$($({},Oe(n)),{},{"Content-Type":"application/json"}),method:"POST"}).then((function(e){return e.json()}))},unfollowUser:function(e){var t=e.id,n=e.credentials,o=function(e){return"/api/v1/accounts/".concat(e,"/unfollow")}(t);return Fe(o,{headers:Oe(n),method:"POST"}).then((function(e){return e.json()}))},pinOwnStatus:function(e){var t=e.id,n=e.credentials;return Ae({url:le(t),credentials:n,method:"POST"}).then((function(e){return(0,b.Wn)(e)}))},unpinOwnStatus:function(e){var t=e.id,n=e.credentials;return Ae({url:de(t),credentials:n,method:"POST"}).then((function(e){return(0,b.Wn)(e)}))},muteConversation:function(e){var t=e.id,n=e.credentials;return Ae({url:pe(t),credentials:n,method:"POST"}).then((function(e){return(0,b.Wn)(e)}))},unmuteConversation:function(e){var t=e.id,n=e.credentials;return Ae({url:me(t),credentials:n,method:"POST"}).then((function(e){return(0,b.Wn)(e)}))},blockUser:function(e){var t=e.id,n=e.credentials;return Fe(function(e){return"/api/v1/accounts/".concat(e,"/block")}(t),{headers:Oe(n),method:"POST"}).then((function(e){return e.json()}))},unblockUser:function(e){var t=e.id,n=e.credentials;return Fe(function(e){return"/api/v1/accounts/".concat(e,"/unblock")}(t),{headers:Oe(n),method:"POST"}).then((function(e){return e.json()}))},removeUserFromFollowers:function(e){var t=e.id,n=e.credentials;return Fe(function(e){return"/api/v1/accounts/".concat(e,"/remove_from_followers")}(t),{headers:Oe(n),method:"POST"}).then((function(e){return e.json()}))},editUserNote:function(e){var t=e.id,n=e.credentials,o=e.comment;return Ae({url:oe(t),credentials:n,payload:{comment:o},method:"POST"})},fetchUser:Ee,fetchUserByName:function(e){var t=e.name,n=e.credentials;return Ae({url:"/api/v1/accounts/lookup",credentials:n,params:{acct:t}}).then((function(e){return e.id})).catch((function(e){if(e&&404===e.statusCode)return t;throw e})).then((function(e){return Ee({id:e,credentials:n})}))},fetchUserRelationship:function(e){var t=e.id,n=e.credentials,o="".concat("/api/v1/accounts/relationships","/?id=").concat(t);return Fe(o,{headers:Oe(n)}).then((function(e){return new Promise((function(t,n){return e.json().then((function(r){return e.ok?t(r):n(new z(e.status,r,{url:o},e))}))}))}))},favorite:function(e){var t=e.id,n=e.credentials;return Ae({url:R(t),method:"POST",credentials:n}).then((function(e){return(0,b.Wn)(e)}))},unfavorite:function(e){var t=e.id,n=e.credentials;return Ae({url:q(t),method:"POST",credentials:n}).then((function(e){return(0,b.Wn)(e)}))},retweet:function(e){var t=e.id,n=e.credentials;return Ae({url:N(t),method:"POST",credentials:n}).then((function(e){return(0,b.Wn)(e)}))},unretweet:function(e){var t=e.id,n=e.credentials;return Ae({url:Z(t),method:"POST",credentials:n}).then((function(e){return(0,b.Wn)(e)}))},bookmarkStatus:function(e){var t=e.id,n=e.credentials;return Ae({url:re(t),headers:Oe(n),method:"POST"})},unbookmarkStatus:function(e){var t=e.id,n=e.credentials;return Ae({url:ie(t),headers:Oe(n),method:"POST"})},postStatus:function(e){var t=e.credentials,n=e.status,o=e.spoilerText,r=e.visibility,i=e.sensitive,s=e.poll,a=e.mediaIds,u=void 0===a?[]:a,c=e.inReplyToStatusId,l=e.quoteId,d=e.contentType,p=e.preview,m=e.idempotencyKey,h=new FormData,f=s.options||[];if(h.append("status",n),h.append("source","Pleroma FE"),o&&h.append("spoiler_text",o),r&&h.append("visibility",r),i&&h.append("sensitive",i),d&&h.append("content_type",d),u.forEach((function(e){h.append("media_ids[]",e)})),f.some((function(e){return""!==e}))){var g={expires_in:parseInt(s.expiresIn,10),multiple:s.multiple};Object.keys(g).forEach((function(e){h.append("poll[".concat(e,"]"),g[e])})),f.forEach((function(e){h.append("poll[options][]",e)}))}c&&h.append("in_reply_to_id",c),l&&h.append("quote_id",l),p&&h.append("preview","true");var v=Oe(t);return m&&(v["idempotency-key"]=m),Fe("/api/v1/statuses",{body:h,method:"POST",headers:v}).then((function(e){return e.json()})).then((function(e){return e.error?e:(0,b.Wn)(e)}))},editStatus:function(e){var t=e.id,n=e.credentials,o=e.status,r=e.spoilerText,i=e.sensitive,s=e.poll,a=e.mediaIds,u=void 0===a?[]:a,c=e.contentType,l=new FormData,d=s.options||[];if(l.append("status",o),r&&l.append("spoiler_text",r),i&&l.append("sensitive",i),c&&l.append("content_type",c),u.forEach((function(e){l.append("media_ids[]",e)})),d.some((function(e){return""!==e}))){var p={expires_in:parseInt(s.expiresIn,10),multiple:s.multiple};Object.keys(p).forEach((function(e){l.append("poll[".concat(e,"]"),p[e])})),d.forEach((function(e){l.append("poll[options][]",e)}))}var m=Oe(n);return Fe(V(t),{body:l,method:"PUT",headers:m}).then((function(e){return e.json()})).then((function(e){return e.error?e:(0,b.Wn)(e)}))},deleteStatus:function(e){var t=e.id,n=e.credentials;return Ae({url:W(t),credentials:n,method:"DELETE"})},uploadMedia:function(e){var t=e.formData,n=e.credentials;return Fe(se,{body:t,method:"POST",headers:Oe(n)}).then((function(e){return e.json()})).then((function(e){return(0,b.cO)(e)}))},setMediaDescription:function(e){var t=e.id,n=e.description,o=e.credentials;return Ae({url:"".concat(se,"/").concat(t),method:"PUT",headers:Oe(o),payload:{description:n}}).then((function(e){return(0,b.cO)(e)}))},fetchMutes:function(e){var t=e.maxId,n=e.credentials,o=new URLSearchParams({with_relationships:!0});return t&&o.append("max_id",t),Ae({url:"".concat("/api/v1/mutes/","?").concat(o.toString()),credentials:n}).then((function(e){return e.map(b.nL)}))},muteUser:function(e){var t=e.id,n=e.expiresIn,o=e.credentials,r={};return n&&(r.expires_in=n),Ae({url:X(t),credentials:o,method:"POST",payload:r})},unmuteUser:function(e){var t=e.id,n=e.credentials;return Ae({url:ee(t),credentials:n,method:"POST"})},subscribeUser:function(e){var t=e.id,n=e.credentials;return Ae({url:te(t),credentials:n,method:"POST"})},unsubscribeUser:function(e){var t=e.id,n=e.credentials;return Ae({url:ne(t),credentials:n,method:"POST"})},fetchBlocks:function(e){var t=e.maxId,n=e.credentials,o=new URLSearchParams({with_relationships:!0});return t&&o.append("max_id",t),Ae({url:"".concat("/api/v1/blocks/","?").concat(o.toString()),credentials:n}).then((function(e){return e.map(b.nL)}))},fetchOAuthTokens:function(e){var t=e.credentials;return Fe("/api/oauth_tokens.json",{headers:Oe(t)}).then((function(e){if(e.ok)return e.json();throw new Error("Error fetching auth tokens",e)}))},revokeOAuthToken:function(e){var t=e.id,n=e.credentials,o="/api/oauth_tokens/".concat(t);return Fe(o,{headers:Oe(n),method:"DELETE"})},tagUser:function(e){var t=e.tag,n=e.credentials,o={nicknames:[e.user.screen_name],tags:[t]},r=Oe(n);return r["Content-Type"]="application/json",Fe(U,{method:"PUT",headers:r,body:JSON.stringify(o)})},untagUser:function(e){var t=e.tag,n=e.credentials,o={nicknames:[e.user.screen_name],tags:[t]},r=Oe(n);return r["Content-Type"]="application/json",Fe(U,{method:"DELETE",headers:r,body:JSON.stringify(o)})},deleteUser:function(e){var t=e.credentials,n=e.user.screen_name,o=Oe(t);return Fe("".concat("/api/pleroma/admin/users","?nickname=").concat(n),{method:"DELETE",headers:o})},addRight:function(e){var t=e.right,n=e.credentials,o=e.user.screen_name;return Fe(M(o,t),{method:"POST",headers:Oe(n),body:{}})},deleteRight:function(e){var t=e.right,n=e.credentials,o=e.user.screen_name;return Fe(M(o,t),{method:"DELETE",headers:Oe(n),body:{}})},activateUser:function(e){var t=e.credentials,n=e.user.screen_name;return Ae({url:"/api/pleroma/admin/users/activate",method:"PATCH",credentials:t,payload:{nicknames:[n]}}).then((function(e){return u()(e,"users.0")}))},deactivateUser:function(e){var t=e.credentials,n=e.user.screen_name;return Ae({url:"/api/pleroma/admin/users/deactivate",method:"PATCH",credentials:t,payload:{nicknames:[n]}}).then((function(e){return u()(e,"users.0")}))},register:function(e){var t=e.params,n=e.credentials,o=t.nickname,i=(0,r.Z)(t,I);return Fe("/api/v1/accounts",{method:"POST",headers:$($({},Oe(n)),{},{"Content-Type":"application/json"}),body:JSON.stringify($({nickname:o,locale:"en_US",agreement:!0},i))}).then((function(e){return e.ok?e.json():e.json().then((function(e){throw new P(e)}))}))},getCaptcha:function(){return Fe("/api/pleroma/captcha").then((function(e){return e.json()}))},updateProfileImages:function(e){var t=e.credentials,n=e.avatar,o=void 0===n?null:n,r=e.avatarName,i=void 0===r?null:r,s=e.banner,a=void 0===s?null:s,u=e.background,c=void 0===u?null:u,l=new FormData;return null!==o&&(null!==i?l.append("avatar",o,i):l.append("avatar",o)),null!==a&&l.append("header",a),null!==c&&l.append("pleroma_background_image",c),Fe(ce,{headers:Oe(t),method:"PATCH",body:l}).then((function(e){return e.json()})).then((function(e){if(e.error)throw new Error(e.error);return(0,b.nL)(e)}))},updateProfile:function(e){var t=e.credentials,n=e.params;return Ae({url:ce,method:"PATCH",payload:n,credentials:t}).then((function(e){return(0,b.nL)(e)}))},importMutes:function(e){var t=e.file,n=e.credentials,o=new FormData;return o.append("list",t),Fe("/api/pleroma/mutes_import",{body:o,method:"POST",headers:Oe(n)}).then((function(e){return e.ok}))},importBlocks:function(e){var t=e.file,n=e.credentials,o=new FormData;return o.append("list",t),Fe("/api/pleroma/blocks_import",{body:o,method:"POST",headers:Oe(n)}).then((function(e){return e.ok}))},importFollows:function(e){var t=e.file,n=e.credentials,o=new FormData;return o.append("list",t),Fe("/api/pleroma/follow_import",{body:o,method:"POST",headers:Oe(n)}).then((function(e){return e.ok}))},deleteAccount:function(e){var t=e.credentials,n=e.password,o=new FormData;return o.append("password",n),Fe("/api/pleroma/delete_account",{body:o,method:"POST",headers:Oe(t)}).then((function(e){return e.json()}))},changeEmail:function(e){var t=e.credentials,n=e.email,o=e.password,r=new FormData;return r.append("email",n),r.append("password",o),Fe("/api/pleroma/change_email",{body:r,method:"POST",headers:Oe(t)}).then((function(e){return e.json()}))},moveAccount:function(e){var t=e.credentials,n=e.password,o=e.targetAccount,r=new FormData;return r.append("password",n),r.append("target_account",o),Fe("/api/pleroma/move_account",{body:r,method:"POST",headers:Oe(t)}).then((function(e){return e.json()}))},addAlias:function(e){var t=e.credentials,n=e.alias;return Ae({url:B,method:"PUT",credentials:t,payload:{alias:n}})},deleteAlias:function(e){var t=e.credentials,n=e.alias;return Ae({url:B,method:"DELETE",credentials:t,payload:{alias:n}})},listAliases:function(e){var t=e.credentials;return Ae({url:B,method:"GET",credentials:t,params:{_cacheBooster:(new Date).getTime()}})},changePassword:function(e){var t=e.credentials,n=e.password,o=e.newPassword,r=e.newPasswordConfirmation,i=new FormData;return i.append("password",n),i.append("new_password",o),i.append("new_password_confirmation",r),Fe("/api/pleroma/change_password",{body:i,method:"POST",headers:Oe(t)}).then((function(e){return e.json()}))},settingsMFA:function(e){var t=e.credentials;return Fe("/api/pleroma/accounts/mfa",{headers:Oe(t),method:"GET"}).then((function(e){return e.json()}))},mfaDisableOTP:function(e){var t=e.credentials,n=e.password,o=new FormData;return o.append("password",n),Fe("/api/pleroma/accounts/mfa/totp",{body:o,method:"DELETE",headers:Oe(t)}).then((function(e){return e.json()}))},generateMfaBackupCodes:function(e){var t=e.credentials;return Fe("/api/pleroma/accounts/mfa/backup_codes",{headers:Oe(t),method:"GET"}).then((function(e){return e.json()}))},mfaSetupOTP:function(e){var t=e.credentials;return Fe("/api/pleroma/accounts/mfa/setup/totp",{headers:Oe(t),method:"GET"}).then((function(e){return e.json()}))},mfaConfirmOTP:function(e){var t=e.credentials,n=e.password,o=e.token,r=new FormData;return r.append("password",n),r.append("code",o),Fe("/api/pleroma/accounts/mfa/confirm/totp",{body:r,headers:Oe(t),method:"POST"}).then((function(e){return e.json()}))},addBackup:function(e){var t=e.credentials;return Ae({url:_e,method:"POST",credentials:t})},listBackups:function(e){var t=e.credentials;return Ae({url:_e,method:"GET",credentials:t,params:{_cacheBooster:(new Date).getTime()}})},fetchFollowRequests:function(e){var t=e.credentials;return Fe("/api/v1/follow_requests",{headers:Oe(t)}).then((function(e){return e.json()})).then((function(e){return e.map(b.nL)}))},fetchLists:function(e){var t=e.credentials;return Fe("/api/v1/lists",{headers:Oe(t)}).then((function(e){return e.json()}))},createList:function(e){var t=e.title,n=e.credentials,o=Oe(n);return o["Content-Type"]="application/json",Fe("/api/v1/lists",{headers:o,method:"POST",body:JSON.stringify({title:t})}).then((function(e){return e.json()}))},getList:function(e){var t=e.listId,n=e.credentials,o=G(t);return Fe(o,{headers:Oe(n)}).then((function(e){return e.json()}))},updateList:function(e){var t=e.listId,n=e.title,o=e.credentials,r=G(t),i=Oe(o);return i["Content-Type"]="application/json",Fe(r,{headers:i,method:"PUT",body:JSON.stringify({title:n})})},getListAccounts:function(e){var t=e.listId,n=e.credentials,o=J(t);return Fe(o,{headers:Oe(n)}).then((function(e){return e.json()})).then((function(e){return e.map((function(e){return e.id}))}))},addAccountsToList:function(e){var t=e.listId,n=e.accountIds,o=e.credentials,r=J(t),i=Oe(o);return i["Content-Type"]="application/json",Fe(r,{headers:i,method:"POST",body:JSON.stringify({account_ids:n})})},removeAccountsFromList:function(e){var t=e.listId,n=e.accountIds,o=e.credentials,r=J(t),i=Oe(o);return i["Content-Type"]="application/json",Fe(r,{headers:i,method:"DELETE",body:JSON.stringify({account_ids:n})})},deleteList:function(e){var t=e.listId,n=e.credentials,o=G(t);return Fe(o,{method:"DELETE",headers:Oe(n)})},approveUser:function(e){var t=e.id,n=e.credentials,o=function(e){return"/api/v1/follow_requests/".concat(e,"/authorize")}(t);return Fe(o,{headers:Oe(n),method:"POST"}).then((function(e){return e.json()}))},denyUser:function(e){var t=e.id,n=e.credentials,o=function(e){return"/api/v1/follow_requests/".concat(e,"/reject")}(t);return Fe(o,{headers:Oe(n),method:"POST"}).then((function(e){return e.json()}))},suggestions:function(e){var t=e.credentials;return Fe("/api/v1/suggestions",{headers:Oe(t)}).then((function(e){return e.json()}))},markNotificationsAsSeen:function(e){var t=e.id,n=e.credentials,o=e.single,r=void 0!==o&&o,i=new FormData;return r?i.append("id",t):i.append("max_id",t),Fe("/api/v1/pleroma/notifications/read",{body:i,headers:Oe(n),method:"POST"}).then((function(e){return e.json()}))},dismissNotification:function(e){var t=e.credentials,n=e.id;return Ae({url:L(n),method:"POST",payload:{id:n},credentials:t})},vote:function(e){var t,n=e.pollId,o=e.choices,r=e.credentials;return(new FormData).append("choices",o),Ae({url:(t=encodeURIComponent(n),"/api/v1/polls/".concat(t,"/votes")),method:"POST",credentials:r,payload:{choices:o}})},fetchPoll:function(e){var t,n=e.pollId,o=e.credentials;return Ae({url:(t=encodeURIComponent(n),"/api/v1/polls/".concat(t)),method:"GET",credentials:o})},fetchFavoritedByUsers:function(e){var t=e.id,n=e.credentials;return Ae({url:ae(t),method:"GET",credentials:n}).then((function(e){return e.map(b.nL)}))},fetchRebloggedByUsers:function(e){var t=e.id,n=e.credentials;return Ae({url:ue(t),method:"GET",credentials:n}).then((function(e){return e.map(b.nL)}))},fetchEmojiReactions:function(e){var t=e.id,n=e.credentials;return Ae({url:ge(t),credentials:n}).then((function(e){return e.map((function(e){return e.accounts=e.accounts.map(b.nL),e}))}))},reactWithEmoji:function(e){var t=e.id,n=e.emoji,o=e.credentials;return Ae({url:ve(t,n),method:"PUT",credentials:o}).then(b.Wn)},unreactWithEmoji:function(e){var t=e.id,n=e.emoji,o=e.credentials;return Ae({url:we(t,n),method:"DELETE",credentials:o}).then(b.Wn)},reportUser:function(e){var t=e.credentials,n=e.userId,o=e.statusIds,r=e.comment,i=e.forward;return Ae({url:"/api/v1/reports",method:"POST",payload:{account_id:n,status_ids:o,comment:r,forward:i},credentials:t})},updateNotificationSettings:function(e){var t=e.credentials,n=e.settings,o=new FormData;return g()(n,(function(e,t){o.append(t,e)})),Fe("".concat("/api/pleroma/notification_settings","?").concat(new URLSearchParams(n)),{headers:Oe(t),method:"PUT",body:o}).then((function(e){return e.json()}))},search2:function(e){var t=e.credentials,n=e.q,o=e.resolve,r=e.limit,i=e.offset,s=e.following,a=e.type,u="/api/v2/search",c=[];n&&c.push(["q",encodeURIComponent(n)]),o&&c.push(["resolve",o]),r&&c.push(["limit",r]),i&&c.push(["offset",i]),s&&c.push(["following",!0]),a&&c.push(["following",a]),c.push(["with_relationships",!0]);var l=h()(c,(function(e){return"".concat(e[0],"=").concat(e[1])})).join("&");return u+="?".concat(l),Fe(u,{headers:Oe(t)}).then((function(e){if(e.ok)return e;throw new Error("Error fetching search result",e)})).then((function(e){return e.json()})).then((function(e){return e.accounts=e.accounts.slice(0,r).map((function(e){return(0,b.nL)(e)})),e.statuses=e.statuses.slice(0,r).map((function(e){return(0,b.Wn)(e)})),e}))},searchUsers:function(e){var t=e.credentials,n=e.query;return Ae({url:"/api/v1/accounts/search",params:{q:n,resolve:!0},credentials:t}).then((function(e){return e.map(b.nL)}))},fetchKnownDomains:function(e){var t=e.credentials;return Ae({url:"/api/v1/instance/peers",credentials:t})},fetchDomainMutes:function(e){var t=e.credentials;return Ae({url:he,credentials:t})},muteDomain:function(e){var t=e.domain,n=e.credentials;return Ae({url:he,method:"POST",payload:{domain:t},credentials:n})},unmuteDomain:function(e){var t=e.domain,n=e.credentials;return Ae({url:he,method:"DELETE",payload:{domain:t},credentials:n})},chats:function(e){var t=e.credentials;return Fe("/api/v1/pleroma/chats",{headers:Oe(t)}).then((function(e){return e.json()})).then((function(e){return{chats:e.map(b._J).filter((function(e){return e}))}}))},getOrCreateChat:function(e){var t,n=e.accountId,o=e.credentials;return Ae({url:(t=n,"/api/v1/pleroma/chats/by-account-id/".concat(t)),method:"POST",credentials:o})},chatMessages:function(e){var t=e.id,n=e.credentials,o=e.maxId,r=e.sinceId,i=e.limit,s=void 0===i?20:i,a=be(t),u=[o&&"max_id=".concat(o),r&&"since_id=".concat(r),s&&"limit=".concat(s)].filter((function(e){return e})).join("&");return Ae({url:a+=u?"?"+u:"",method:"GET",credentials:n})},sendChatMessage:function(e){var t=e.id,n=e.content,o=e.mediaId,r=void 0===o?null:o,i=e.idempotencyKey,s=e.credentials,a={content:n};r&&(a.media_id=r);var u={};return i&&(u["idempotency-key"]=i),Ae({url:be(t),method:"POST",payload:a,credentials:s,headers:u})},readChat:function(e){var t=e.id,n=e.lastReadId,o=e.credentials;return Ae({url:ye(t),method:"POST",payload:{last_read_id:n},credentials:o})},deleteChatMessage:function(e){var t=e.chatId,n=e.messageId,o=e.credentials;return Ae({url:De(t,n),method:"DELETE",credentials:o})},setReportState:function(e){var t=e.id,n=e.state,o=e.credentials;return Fe("/api/pleroma/admin/reports",{headers:$($({},Oe(o)),{},{Accept:"application/json","Content-Type":"application/json"}),method:"PATCH",body:JSON.stringify({reports:[{id:t,state:n}]})}).then((function(e){if(e.status>=500)throw Error(e.statusText);return e.status>=400?e.json():e})).then((function(e){if(e.errors)throw Error(e.errors[0].message)}))},fetchUserInLists:function(e){var t=e.id,n=e.credentials,o=function(e){return"/api/v1/accounts/".concat(e,"/lists")}(t);return Fe(o,{headers:Oe(n)}).then((function(e){return e.json()}))},fetchAnnouncements:function(e){var t=e.credentials;return Ae({url:"/api/v1/announcements",credentials:t})},dismissAnnouncement:function(e){var t=e.id,n=e.credentials;return Ae({url:fe(t),credentials:n,method:"POST"})},postAnnouncement:function(e){var t=e.credentials,n=e.content,o=e.startsAt,r=e.endsAt,i=e.allDay;return Ae({url:"/api/v1/pleroma/admin/announcements",credentials:t,method:"POST",payload:Pe({content:n,startsAt:o,endsAt:r,allDay:i})})},editAnnouncement:function(e){var t=e.id,n=e.credentials,o=e.content,r=e.startsAt,i=e.endsAt,s=e.allDay;return Ae({url:ke(t),credentials:n,method:"PATCH",payload:Pe({content:o,startsAt:r,endsAt:i,allDay:s})})},deleteAnnouncement:function(e){var t=e.id,n=e.credentials;return Ae({url:Ce(t),credentials:n,method:"DELETE"})},adminFetchAnnouncements:function(e){var t=e.credentials;return Ae({url:"/api/v1/pleroma/admin/announcements",credentials:t})},fetchInstanceDBConfig:function(e){var t=e.credentials;return Fe(Se,{headers:Oe(t)}).then((function(e){return e.ok?e.json():{error:e}}))},fetchInstanceConfigDescriptions:function(e){var t=e.credentials;return Fe("/api/pleroma/admin/config/descriptions",{headers:Oe(t)}).then((function(e){return e.ok?e.json():{error:e}}))},fetchAvailableFrontends:function(e){var t=e.credentials;return Fe("/api/pleroma/admin/frontends",{headers:Oe(t)}).then((function(e){return e.ok?e.json():{error:e}}))},pushInstanceDBConfig:function(e){var t=e.credentials,n=e.payload;return Fe(Se,{headers:$({Accept:"application/json","Content-Type":"application/json"},Oe(t)),method:"POST",body:JSON.stringify(n)}).then((function(e){return e.ok?e.json():{error:e}}))},installFrontend:function(e){var t=e.credentials,n=e.payload;return Fe("/api/pleroma/admin/frontends/install",{headers:$({Accept:"application/json","Content-Type":"application/json"},Oe(t)),method:"POST",body:JSON.stringify(n)}).then((function(e){return e.ok?e.json():{error:e}}))}}},37230:(e,t,n)=>{"use strict";n.d(t,{X:()=>i});var o=n(21804),r=n.n(o),i=function(e){return Object.keys(e).reduce((function(t,n){return t[r()(n)]=e[n],t}),{})}},21865:(e,t,n)=>{"use strict";n.d(t,{CO:()=>c,Rx:()=>h,Tj:()=>m,_I:()=>v,a4:()=>g,aj:()=>p,ov:()=>l,pP:()=>b,uu:()=>w,wK:()=>f});var o=n(4942),r=n(29439),i=n(71002),s=n(97332);function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function u(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?a(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var c=function(e,t,n){if(null!=e){if("#"===e[0]||"transparent"===e)return e;if("object"===(0,i.Z)(e)){var o=e;e=o.r,t=o.g,n=o.b}var s=[e,t,n].map((function(e){return(e=(e=Math.ceil(e))<0?0:e)>255?255:e})),a=(0,r.Z)(s,3);return e=a[0],t=a[1],n=a[2],"#".concat(((1<<24)+(e<<16)+(t<<8)+n).toString(16).slice(1))}},l=function(e){var t=function(e){return"rgb".split("").reduce((function(t,n){return t[n]=function(e){var t=e/255;return t<.03928?t/12.92:Math.pow((t+.055)/1.055,2.4)}(e[n]),t}),{})}(e);return.2126*t.r+.7152*t.g+.0722*t.b},d=function(e,t){var n=l(e),o=l(t),i=n>o?[n,o]:[o,n],s=(0,r.Z)(i,2);return(s[0]+.05)/(s[1]+.05)},p=function(e,t,n){return d(h(n,t),e)},m=function(e,t,n){return 1===t||void 0===t?e:"rgb".split("").reduce((function(o,r){return o[r]=e[r]*t+n[r]*(1-t),o}),{})},h=function(e,t){return t.reduce((function(e,t){var n=(0,r.Z)(t,2),o=n[0],i=n[1];return m(o,i,e)}),e)},f=function(e){var t=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);return t?{r:parseInt(t[1],16),g:parseInt(t[2],16),b:parseInt(t[3],16)}:null},g=function(e,t){return"rgb".split("").reduce((function(n,o){return n[o]=(e[o]+t[o])/2,n}),{})},v=function(e){return"rgba(".concat(Math.floor(e.r),", ").concat(Math.floor(e.g),", ").concat(Math.floor(e.b),", ").concat(e.a,")")},w=function(e,t,n){if(d(e,t)<4.5){var o=void 0!==t.a?{a:t.a}:{},r=Object.assign(o,(0,s.Xp)(t).rgb);return!n&&d(e,r)<4.5?(0,s.wo)(e,t).rgb:r}return t},b=function(e,t){var n={};if("object"===(0,i.Z)(e))n=e;else if("string"==typeof e){if(!e.startsWith("#"))return e;n=f(e)}return v(u(u({},n),{},{a:t}))}},13562:(e,t,n)=>{"use strict";n.d(t,{g:()=>i});var o=n(23560),r=n.n(o),i=function(e){return function(e){return r()(e)?e.options:e}(e).props}},27483:(e,t,n)=>{"use strict";n.d(t,{GV:()=>l,_F:()=>d,cC:()=>p,dX:()=>m,x4:()=>s});var o=1e3,r=6e4,i=36e5,s=24*i,a=7*s,u=30*s,c=365.25*s,l=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;"string"==typeof e&&(e=Date.parse(e));var n=Date.now()>e?Math.floor:Math.ceil,l=Math.abs(Date.now()-e),d={num:n(l/c),key:"time.unit.years"};return l<t*o?(d.num=0,d.key="time.now"):l<r?(d.num=n(l/o),d.key="time.unit.seconds"):l<i?(d.num=n(l/r),d.key="time.unit.minutes"):l<s?(d.num=n(l/i),d.key="time.unit.hours"):l<a?(d.num=n(l/s),d.key="time.unit.days"):l<u?(d.num=n(l/a),d.key="time.unit.weeks"):l<c&&(d.num=n(l/u),d.key="time.unit.months"),d},d=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=l(e,t);return n.key+="_short",n},p=function(e,t){switch(e){case"minutes":return.001*t*r;case"hours":return.001*t*i;case"days":return.001*t*s}},m=function(e,t){switch(e){case"minutes":return 1e3*t/r;case"hours":return 1e3*t/i;case"days":return 1e3*t/s}}},64689:(e,t,n)=>{"use strict";n.d(t,{w:()=>o});var o=function(e,t){if("Notification"in window&&"granted"===window.Notification.permission&&!e.statuses.notifications.desktopNotificationSilence){var n=new window.Notification(t.title,t);setTimeout(n.close.bind(n),5e3)}}},27742:(e,t,n)=>{"use strict";n.d(t,{Nw:()=>w,P7:()=>h,UB:()=>y,Wn:()=>f,_J:()=>b,cO:()=>m,eM:()=>g,nL:()=>p});var o=n(4942),r=n(95573),i=n.n(r),s=n(28490),a=n.n(s),u=n(52230),c=n(35748);function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var p=function(e){var t={},n=Object.prototype.hasOwnProperty.call(e,"acct"),o=n&&!Object.prototype.hasOwnProperty.call(e,"avatar");if(t.inLists=null,t.id=String(e.id),t._original=e,n){if(t.screen_name=e.acct,t.fqn=e.fqn,t.statusnet_profile_url=e.url,o)return t;if(t.emoji=e.emojis,t.name=i()(e.display_name),t.name_html=t.name,t.name_unescaped=e.display_name,t.description=e.note,t.description_html=e.note,t.fields=e.fields,t.fields_html=e.fields.map((function(e){return{name:i()(e.name),value:e.value}})),t.fields_text=e.fields.map((function(e){return{name:unescape(e.name.replace(/<[^>]*>/g,"")),value:unescape(e.value.replace(/<[^>]*>/g,""))}})),t.profile_image_url=e.avatar,t.profile_image_url_original=e.avatar,t.cover_photo=e.header,t.friends_count=e.following_count,t.bot=e.bot,e.pleroma){e.pleroma.settings_store&&(t.storage=e.pleroma.settings_store["pleroma-fe"]);var r=e.pleroma.relationship;t.background_image=e.pleroma.background_image,t.favicon=e.pleroma.favicon,t.token=e.pleroma.chat_token,r&&(t.relationship=r),t.allow_following_move=e.pleroma.allow_following_move,t.hide_follows=e.pleroma.hide_follows,t.hide_followers=e.pleroma.hide_followers,t.hide_follows_count=e.pleroma.hide_follows_count,t.hide_followers_count=e.pleroma.hide_followers_count,t.rights={moderator:e.pleroma.is_moderator,admin:e.pleroma.is_admin},t.rights.admin?t.role="admin":t.rights.moderator?t.role="moderator":t.role="member",t.birthday=e.pleroma.birthday,e.pleroma.privileges?t.privileges=e.pleroma.privileges:e.pleroma.is_admin?t.privileges=["users_read","users_manage_invites","users_manage_activation_state","users_manage_tags","users_manage_credentials","users_delete","messages_read","messages_delete","instances_delete","reports_manage_reports","moderation_log_read","announcements_manage_announcements","emoji_manage_emoji","statistics_read"]:e.pleroma.is_moderator?t.privileges=["messages_delete","reports_manage_reports"]:t.privileges=[]}e.source&&(t.description=e.source.note,t.default_scope=e.source.privacy,t.fields=e.source.fields,e.source.pleroma&&(t.no_rich_text=e.source.pleroma.no_rich_text,t.show_role=e.source.pleroma.show_role,t.discoverable=e.source.pleroma.discoverable,t.show_birthday=e.pleroma.show_birthday)),t.is_local=!t.screen_name.includes("@")}else t.screen_name=e.screen_name,t.name=e.name,t.name_html=e.name_html,t.description=e.description,t.description_html=e.description_html,t.profile_image_url=e.profile_image_url,t.profile_image_url_original=e.profile_image_url_original,t.cover_photo=e.cover_photo,t.friends_count=e.friends_count,t.statusnet_profile_url=e.statusnet_profile_url,t.is_local=e.is_local,t.role=e.role,t.show_role=e.show_role,e.rights&&(t.rights={moderator:e.rights.delete_others_notice,admin:e.rights.admin}),t.no_rich_text=e.no_rich_text,t.default_scope=e.default_scope,t.hide_follows=e.hide_follows,t.hide_followers=e.hide_followers,t.hide_follows_count=e.hide_follows_count,t.hide_followers_count=e.hide_followers_count,t.background_image=e.background_image,t.token=e.token,t.relationship={muting:e.muted,blocking:e.statusnet_blocking,followed_by:e.follows_you,following:e.following};if(t.created_at=new Date(e.created_at),t.locked=e.locked,t.followers_count=e.followers_count,t.statuses_count=e.statuses_count,e.pleroma&&(t.follow_request_count=e.pleroma.follow_request_count,t.tags=e.pleroma.tags,t.deactivated=void 0!==e.pleroma.is_active?!e.pleroma.is_active:e.pleroma.deactivated,t.notification_settings=e.pleroma.notification_settings,t.unread_chat_count=e.pleroma.unread_chat_count),t.tags=t.tags||[],t.rights=t.rights||{},t.notification_settings=t.notification_settings||{},t.screen_name_ui=t.screen_name,t.screen_name&&t.screen_name.includes("@")){var s=t.screen_name.split("@"),a=c.ZP.toUnicode(s[1]);a!==s[1]?(t.screen_name_ui_contains_non_ascii=!0,t.screen_name_ui=[s[0],a].join("@")):t.screen_name_ui_contains_non_ascii=!1}return t},m=function(e){var t={};return Object.prototype.hasOwnProperty.call(e,"oembed")?t.mimetype=e.mimetype:(t.mimetype=e.pleroma?e.pleroma.mime_type:e.type,t.meta=e.meta,t.id=e.id),t.url=e.url,t.large_thumb_url=e.preview_url,t.description=e.description,t},h=function(e){var t={};return t.text=e.text,t.spoiler_text=e.spoiler_text,t.content_type=e.content_type,t},f=function e(t){var n={},o=Object.prototype.hasOwnProperty.call(t,"account");if(o){if(n.favorited=t.favourited,n.fave_num=t.favourites_count,n.repeated=t.reblogged,n.repeat_num=t.reblogs_count,n.bookmarked=t.bookmarked,n.type=t.reblog?"retweet":"status",n.nsfw=t.sensitive,n.raw_html=t.content,n.emojis=t.emojis,n.tags=t.tags,n.edited_at=t.edited_at,t.pleroma){var r=t.pleroma;n.text=r.content?t.pleroma.content["text/plain"]:t.content,n.summary=r.spoiler_text?t.pleroma.spoiler_text["text/plain"]:t.spoiler_text,n.statusnet_conversation_id=t.pleroma.conversation_id,n.is_local=r.local,n.in_reply_to_screen_name=t.pleroma.in_reply_to_account_acct,n.thread_muted=r.thread_muted,n.emoji_reactions=r.emoji_reactions,n.parent_visible=void 0===r.parent_visible||r.parent_visible,n.quote=r.quote?e(r.quote):void 0,n.quote_id=r.quote_id?r.quote_id:n.quote?n.quote.id:void 0,n.quote_url=r.quote_url,n.quote_visible=r.quote_visible}else n.text=t.content,n.summary=t.spoiler_text;n.in_reply_to_status_id=t.in_reply_to_id,n.in_reply_to_user_id=t.in_reply_to_account_id,n.replies_count=t.replies_count,"retweet"===n.type&&(n.retweeted_status=e(t.reblog)),n.summary_raw_html=i()(t.spoiler_text),n.external_url=t.url,n.poll=t.poll,n.poll&&(n.poll.options=(n.poll.options||[]).map((function(e){return d(d({},e),{},{title_html:i()(e.title)})}))),n.pinned=t.pinned,n.muted=t.muted}else n.favorited=t.favorited,n.fave_num=t.fave_num,n.repeated=t.repeated,n.repeat_num=t.repeat_num,n.type=function(e){return e.is_post_verb?"status":e.retweeted_status?"retweet":"string"==typeof e.uri&&e.uri.match(/(fave|objectType=Favourite)/)||"string"==typeof e.text&&e.text.match(/favorited/)?"favorite":e.text.match(/deleted notice {{tag/)||e.qvitter_delete_notice?"deletion":e.text.match(/started following/)||"follow"===e.activity_type?"follow":"unknown"}(t),void 0===t.nsfw?(n.nsfw=v(t),t.retweeted_status&&(n.nsfw=t.retweeted_status.nsfw)):n.nsfw=t.nsfw,n.raw_html=t.statusnet_html,n.text=t.text,n.in_reply_to_status_id=t.in_reply_to_status_id,n.in_reply_to_user_id=t.in_reply_to_user_id,n.in_reply_to_screen_name=t.in_reply_to_screen_name,n.statusnet_conversation_id=t.statusnet_conversation_id,"retweet"===n.type&&(n.retweeted_status=e(t.retweeted_status)),n.summary=t.summary,n.summary_html=t.summary_html,n.external_url=t.external_url,n.is_local=t.is_local;n.id=String(t.id),n.visibility=t.visibility,n.card=t.card,n.created_at=new Date(t.created_at),n.in_reply_to_status_id=n.in_reply_to_status_id?String(n.in_reply_to_status_id):null,n.in_reply_to_user_id=n.in_reply_to_user_id?String(n.in_reply_to_user_id):null,n.user=p(o?t.account:t.user),n.attentions=((o?t.mentions:t.attentions)||[]).map(p),n.attachments=((o?t.media_attachments:t.attachments)||[]).map(m);var s=o?t.reblog:t.retweeted_status;return s&&(n.retweeted_status=e(s)),n.favoritedBy=[],n.rebloggedBy=[],Object.prototype.hasOwnProperty.call(t,"originalStatus")&&Object.assign(n,t.originalStatus),n},g=function(e){var t={};if(Object.prototype.hasOwnProperty.call(e,"ntype")){var n=f(e.notice);t.type=e.ntype,t.seen=Boolean(e.is_seen),t.status="like"===t.type?f(e.notice.favorited_status):n,t.action=n,t.from_profile="pleroma:chat_mention"===t.type?p(e.account):p(e.from_profile)}else t.type={favourite:"like",reblog:"repeat"}[e.type]||e.type,t.seen=e.pleroma.is_seen,t.status=(0,u.Gr)(t.type)?f(e.status):null,t.action=t.status,t.target="move"!==t.type?null:p(e.target),t.from_profile=p(e.account),t.emoji=e.emoji,t.emoji_url=e.emoji_url,e.report&&(t.report=e.report,t.report.content=e.report.content,t.report.acct=p(e.report.account),t.report.actor=p(e.report.actor),t.report.statuses=e.report.statuses.map(f));return t.created_at=new Date(e.created_at),t.id=parseInt(e.id),t},v=function(e){return(e.tags||[]).includes("nsfw")||!!(e.text||"").match(/#nsfw/i)},w=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.flakeId,o=a()(e);if(o){var r=o.next.max_id,i=o.prev.min_id;return{maxId:n?r:parseInt(r,10),minId:n?i:parseInt(i,10)}}},b=function(e){var t={};return t.id=e.id,t.account=p(e.account),t.unread=e.unread,t.lastMessage=y(e.last_message),t.updated_at=new Date(e.updated_at),t},y=function(e){if(e){if(e.isNormalized)return e;var t=e;return t.id=e.id,t.created_at=new Date(e.created_at),t.chat_id=e.chat_id,t.emojis=e.emojis,t.content=e.content,e.attachment?t.attachments=[m(e.attachment)]:t.attachments=[],t.pending=!!e.pending,t.error=!1,t.idempotency_key=e.idempotency_key,t.isNormalized=!0,t}}},49753:(e,t,n)=>{"use strict";var o,r,i,s,a;n.d(t,{Z:()=>u});const u=(o=[],r=128,i=128,s=function(e){return e.complete&&0!==e.naturalHeight},{initFaviconService:function(){document.querySelectorAll('link[rel="icon"]').forEach((function(e){if(e){var t=document.createElement("canvas");t.width=r,t.height=i;var n=new Image;n.crossOrigin="anonymous",n.src=e.href;var s=t.getContext("2d");o.push({favcanvas:t,favimg:n,favcontext:s,favicon:e})}}))},clearFaviconBadge:a=function(){0!==o.length&&o.forEach((function(e){var t=e.favimg,n=e.favcanvas,o=e.favcontext,a=e.favicon;t&&o&&a&&(o.clearRect(0,0,r,i),s(t)&&o.drawImage(t,0,0,t.width,t.height,0,0,r,i),a.href=n.toDataURL("image/png"))}))},drawFaviconBadge:function(){0!==o.length&&(a(),o.forEach((function(e){var t=e.favimg,n=e.favcanvas,o=e.favcontext,a=e.favicon;if(t&&o&&o){var u=getComputedStyle(document.body),c="".concat(u.getPropertyValue("--badgeNotification")||"rgb(240, 100, 100)");s(t)&&o.drawImage(t,0,0,t.width,t.height,0,0,r,i),o.fillStyle=c,o.beginPath(),o.arc(96,32,32,0,2*Math.PI,!1),o.fill(),a.href=n.toDataURL("image/png")}})))}})},65079:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});const o={fileSizeFormat:function(e){var t=["B","KiB","MiB","GiB","TiB"],n=e;if(n<1)return n+" "+t[0];var o=Math.min(Math.floor(Math.log(n)/Math.log(1024)),t.length-1);return{num:n=1*(n/Math.pow(1024,o)).toFixed(2),unit:t[o]}}}},58394:(e,t,n)=>{"use strict";n.d(t,{ZP:()=>i,iL:()=>r});var o=function(e){return e.match(/flash/)?"flash":e.match(/text\/html/)?"html":e.match(/image/)?"image":e.match(/video/)?"video":e.match(/audio/)?"audio":"unknown"},r=function(e){return e.match(/\.(png|jpe?g|gif|webp|avif)$/)?"image":e.match(/\.(ogv|mp4|webm|mov)$/)?"video":e.match(/\.(it|s3m|mod|umx|mp3|aac|m4a|flac|alac|ogg|oga|opus|wav|ape|midi?)$/)?"audio":"unknown"};const i={fileType:o,fileTypeExt:r,fileMatchesSomeType:function(e,t){return e.some((function(e){return o(t.mimetype)===e}))}}},39776:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var o=n(35161),r=n.n(o),i=n(72617),s=n(2900),a={ja_easy:"ja",zh_Hant:"zh-HANT",zh:"zh-Hans"},u=function(e){return a[e]||e},c=function(e){return u(e).replace("_","-")},l=function(e){var t={ja_easy:"やさしいにほんご","nan-TW":"臺語(閩南語)",zh:"简体中文",zh_Hant:"繁體中文"}[e]||s.Z.getNativeName(e),n=u(e);return t.charAt(0).toLocaleUpperCase(n)+t.slice(1)},d=r()(i.Z.languages,(function(e){return{code:e,name:l(e)}})).sort((function(e,t){return e.name.localeCompare(t.name)}));const p={internalToBrowserLocale:u,internalToBackendLocale:c,internalToBackendLocaleMulti:function(e){return(Array.isArray(e)?e:[e]).map(c).join(",")},languages:d,getLanguageName:l}},52230:(e,t,n)=>{"use strict";n.d(t,{Bt:()=>d,G2:()=>w,Gr:()=>h,Km:()=>b,nJ:()=>v,nU:()=>f});var o=n(64721),r=n.n(o),i=n(89734),s=n.n(i),a=n(63105),u=n.n(a),c=n(67828),l=n(64689),d=function(e){return e.state.statuses.notifications.data},p=function(e){var t=e.rootState||e.state;return[t.config.notificationVisibility.likes&&"like",t.config.notificationVisibility.mentions&&"mention",t.config.notificationVisibility.repeats&&"repeat",t.config.notificationVisibility.follows&&"follow",t.config.notificationVisibility.followRequest&&"follow_request",t.config.notificationVisibility.moves&&"move",t.config.notificationVisibility.emojiReactions&&"pleroma:emoji_reaction",t.config.notificationVisibility.reports&&"pleroma:report",t.config.notificationVisibility.polls&&"poll"].filter((function(e){return e}))},m=["like","mention","repeat","pleroma:emoji_reaction","poll"],h=function(e){return r()(m,e)},f=function(e){return!(h(e.type)&&!e.status)},g=function(e,t){var n=Number(e.id),o=Number(t.id),r=!Number.isNaN(n),i=!Number.isNaN(o);return r&&i?n>o?-1:1:r&&!i?1:!r&&i||e.id>t.id?-1:1},v=function(e,t){var n=e.rootState||e.state;if(!t.seen&&p(e).includes(t.type)&&("mention"!==t.type||!function(e,t){if(t.status)return t.status.muted||(0,c.u)(t.status,e.rootGetters.mergedConfig.muteWords).length>0}(e,t))){var o=y(t,e.rootGetters.i18n);(0,l.w)(n,o)}},w=function(e,t){var n=d(e).map((function(e){return e})).sort(g);return(n=s()(n,"seen")).filter((function(n){return(t||p(e)).includes(n.type)}))},b=function(e){return u()(w(e),(function(e){return!e.seen}))},y=function(e,t){var n,o={tag:e.id},r=e.status,i=e.from_profile.name;switch(o.title=i,o.icon=e.from_profile.profile_image_url,e.type){case"like":n="favorited_you";break;case"repeat":n="repeated_you";break;case"follow":n="followed_you";break;case"move":n="migrated_to";break;case"follow_request":n="follow_request";break;case"pleroma:report":n="submitted_report";break;case"poll":n="poll_ended"}return"pleroma:emoji_reaction"===e.type?o.body=t.t("notifications.reacted_with",[e.emoji]):n?o.body=t.t("notifications."+n):h(e.type)&&(o.body=e.status.text),r&&r.attachments&&r.attachments.length>0&&!r.nsfw&&r.attachments[0].mimetype.startsWith("image/")&&(o.image=r.attachments[0].url),o}},15568:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});var o=n(93433),r=n(77776),i=n(22626),s=["mention","favourite","reblog","follow","move","pleroma:emoji_reaction","pleroma:report"],a=function(e){var t=e.store,n=e.credentials,r=e.older,i=void 0!==r&&r,a=e.since,c={credentials:n},l=t.getters,d=(t.rootState||t.state).statuses.notifications,p=l.mergedConfig.hideMutedPosts;if(c.includeTypes=s,c.withMuted=!p,c.timeline="notifications",i)return d.minId!==Number.POSITIVE_INFINITY&&(c.until=d.minId),u({store:t,args:c,older:i});void 0===a&&d.maxId!==Number.POSITIVE_INFINITY?c.since=d.maxId:null!==a&&(c.since=a);var m=u({store:t,args:c,older:i}),h=d.data,f=h.filter((function(e){return e.seen})).map((function(e){return e.id}));return h.length-f.length>0&&f.length>0&&(c.since=Math.max.apply(Math,(0,o.Z)(f)),u({store:t,args:c,older:i})),m},u=function(e){var t=e.store,n=e.args,o=e.older;return r.ZP.fetchTimeline(n).then((function(e){if(e.errors)throw new Error("".concat(e.status," ").concat(e.statusText));var n=e.data;return function(e){var t=e.notifications,n=e.older;e.store.dispatch("addNewNotifications",{notifications:t,older:n})}({store:t,notifications:n,older:o}),n})).catch((function(e){t.dispatch("pushGlobalNotice",{level:"error",messageKey:"notifications.error",messageArgs:[e.message],timeout:5e3}),console.error(e)}))};const c={fetchAndUpdate:a,startFetching:function(e){var t=e.credentials,n=e.store;setTimeout((function(){return n.dispatch("setNotificationsSilence",!1)}),1e4);var o=function(){return a({credentials:t,store:n})};return o(),(0,i.F)(o,1e4)}}},67952:(e,t,n)=>{"use strict";n.d(t,{y:()=>o});var o=function e(t,n){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=o.top,s=void 0===i?0:i,a=o.left,u=void 0===a?0:a,c=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],l={top:s+t.offsetTop,left:u+t.offsetLeft};if(!c&&t!==window){var d=r(t),p=d.topPadding,m=d.leftPadding;l.top+=c?0:p,l.left+=c?0:m}if(t.offsetParent&&"sticky"!==window.getComputedStyle(t.offsetParent).position&&(n===window||n.contains(t.offsetParent)||n===t.offsetParent))return e(t.offsetParent,n,l,!1);if(n!==window){var h=r(n),f=h.topPadding,g=h.leftPadding;l.top+=f,l.left+=g}return l},r=function(e){var t=window.getComputedStyle(e)["padding-top"],n=Number(t.substring(0,t.length-2)),o=window.getComputedStyle(e)["padding-left"];return{topPadding:n,leftPadding:Number(o.substring(0,o.length-2))}}},22626:(e,t,n)=>{"use strict";n.d(t,{F:()=>o});var o=function(e,t){var n=!1,o=null;return o=window.setTimeout((function r(){var i=e();i&&i.finally?i.finally((function(){n||(o=window.setTimeout(r,t))})):console.warn("promiseInterval: promise call did not return a promise, stopping interval.")}),t),{stop:function(){n=!0,window.clearTimeout(o)}}}},53599:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});const o=function(){return"".concat(Math.random()).replace(".","-")}},67828:(e,t,n)=>{"use strict";n.d(t,{u:()=>i});var o=n(63105),r=n.n(o),i=function(e,t){var n=e.text.toLowerCase(),o=e.summary.toLowerCase();return r()(t,(function(e){return n.includes(e.toLowerCase())||o.includes(e.toLowerCase())}))}},7257:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var o=n(35161),r=n.n(o),i=n(77776);const s={postStatus:function(e){var t=e.store,n=e.status,o=e.spoilerText,s=e.visibility,a=e.sensitive,u=e.poll,c=e.media,l=void 0===c?[]:c,d=e.inReplyToStatusId,p=void 0===d?void 0:d,m=e.quoteId,h=void 0===m?void 0:m,f=e.contentType,g=void 0===f?"text/plain":f,v=e.preview,w=void 0!==v&&v,b=e.idempotencyKey,y=void 0===b?"":b,D=r()(l,"id");return i.ZP.postStatus({credentials:t.state.users.currentUser.credentials,status:n,spoilerText:o,visibility:s,sensitive:a,mediaIds:D,inReplyToStatusId:p,quoteId:h,contentType:g,poll:u,preview:w,idempotencyKey:y}).then((function(e){return e.error||w||t.dispatch("addNewStatuses",{statuses:[e],timeline:"friends",showImmediately:!0,noIdUpdate:!0}),e})).catch((function(e){return{error:e.message}}))},editStatus:function(e){var t=e.store,n=e.statusId,o=e.status,s=e.spoilerText,a=e.sensitive,u=e.poll,c=e.media,l=void 0===c?[]:c,d=e.contentType,p=void 0===d?"text/plain":d,m=r()(l,"id");return i.ZP.editStatus({id:n,credentials:t.state.users.currentUser.credentials,status:o,spoilerText:s,sensitive:a,poll:u,mediaIds:m,contentType:p}).then((function(e){return e.error||t.dispatch("addNewStatuses",{statuses:[e],timeline:"friends",showImmediately:!0,noIdUpdate:!0}),e})).catch((function(e){return console.error("Error editing status",e),{error:e.message}}))},uploadMedia:function(e){var t=e.store,n=e.formData,o=t.state.users.currentUser.credentials;return i.ZP.uploadMedia({credentials:o,formData:n})},setMediaDescription:function(e){var t=e.store,n=e.id,o=e.description,r=t.state.users.currentUser.credentials;return i.ZP.setMediaDescription({credentials:r,id:n,description:o})}}},77394:(e,t,n)=>{"use strict";n.d(t,{H2:()=>F,I3:()=>I,LP:()=>b,Ot:()=>v,RC:()=>E,_v:()=>m,bY:()=>x,dE:()=>z,gm:()=>A,l9:()=>P,lD:()=>y,m:()=>D,mg:()=>g,vp:()=>j});var o=n(71002),r=n(93433),i=n(4942),s=n(29439),a=n(97332),u=n(21865),c=n(40454),l=n(85565);function d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function p(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?d(Object(n),!0).forEach((function(t){(0,i.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):d(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var m=function(e){var t=O(e).rules,n=document.head,o=document.body;o.classList.add("hidden");var r=document.createElement("style");n.appendChild(r);var i=r.sheet;i.toString(),i.insertRule(":root { ".concat(t.radii," }"),"index-max"),i.insertRule(":root { ".concat(t.colors," }"),"index-max"),i.insertRule(":root { ".concat(t.shadows," }"),"index-max"),i.insertRule(":root { ".concat(t.fonts," }"),"index-max"),o.classList.remove("hidden")},h=function(e){return{sidebarColumnWidth:e.sidebarColumnWidth,contentColumnWidth:e.contentColumnWidth,notifsColumnWidth:e.notifsColumnWidth,emojiReactionsScale:e.emojiReactionsScale}},f=h(l.W2),g=function(e){var t=h(e);if(t!==f){var n=document.head,o=document.body;o.classList.add("hidden");var r=Object.entries(t).filter((function(e){var t=(0,s.Z)(e,2);return t[0],t[1]})).map((function(e){var t=(0,s.Z)(e,2),n=t[0],o=t[1];return"--".concat(n,": ").concat(o)})).join(";"),i=document.createElement("style");n.appendChild(i);var a=i.sheet;a.toString(),a.insertRule(":root { ".concat(r," }"),"index-max"),o.classList.remove("hidden")}},v=function(e,t){return 0===e.length?"none":e.filter((function(e){return t?e.inset:e})).map((function(e){return[e.x,e.y,e.blur,e.spread].map((function(e){return e+"px"})).concat([(0,u.pP)(e.color,e.alpha),e.inset?"inset":""]).join(" ")})).join(", ")},w=function(e){return 0===e.length?"none":e.filter((function(e){return!e.inset&&0===Number(e.spread)})).map((function(e){return[e.x,e.y,e.blur/2].map((function(e){return e+"px"})).concat([(0,u.pP)(e.color,e.alpha)]).join(" ")})).map((function(e){return"drop-shadow(".concat(e,")")})).join(" ")},b=function(e){var t=e.themeEngineVersion?e.colors||e:z(e.colors||e),n=(0,c.EC)(t,e.opacity||{}),o=n.colors,r=n.opacity,i=Object.entries(o).reduce((function(e,t){var n=(0,s.Z)(t,2),o=n[0],r=n[1];return r?(e.solid[o]=(0,u.CO)(r),e.complete[o]=void 0===r.a?(0,u.CO)(r):(0,u._I)(r),e):e}),{complete:{},solid:{}});return{rules:{colors:Object.entries(i.complete).filter((function(e){var t=(0,s.Z)(e,2);return t[0],t[1]})).map((function(e){var t=(0,s.Z)(e,2),n=t[0],o=t[1];return"--".concat(n,": ").concat(o)})).join(";")},theme:{colors:i.solid,opacity:r}}},y=function(e){var t=e.radii||{};void 0!==e.btnRadius&&(t=Object.entries(e).filter((function(e){var t=(0,s.Z)(e,2),n=t[0];return t[1],n.endsWith("Radius")})).reduce((function(e,t){return e[t[0].split("Radius")[0]]=t[1],e}),{}));var n=Object.entries(t).filter((function(e){var t=(0,s.Z)(e,2);return t[0],t[1]})).reduce((function(e,t){var n=(0,s.Z)(t,2),o=n[0],r=n[1];return e[o]=r,e}),{btn:4,input:4,checkbox:2,panel:10,avatar:5,avatarAlt:50,tooltip:2,attachment:5,chatMessage:t.panel});return{rules:{radii:Object.entries(n).filter((function(e){var t=(0,s.Z)(e,2);return t[0],t[1]})).map((function(e){var t=(0,s.Z)(e,2),n=t[0],o=t[1];return"--".concat(n,"Radius: ").concat(o,"px")})).join(";")},theme:{radii:n}}},D=function(e){var t=Object.entries(e.fonts||{}).filter((function(e){var t=(0,s.Z)(e,2);return t[0],t[1]})).reduce((function(e,t){var n=(0,s.Z)(t,2),o=n[0],r=n[1];return e[o]=Object.entries(r).filter((function(e){var t=(0,s.Z)(e,2);return t[0],t[1]})).reduce((function(e,t){var n=(0,s.Z)(t,2),o=n[0],r=n[1];return e[o]=r,e}),e[o]),e}),{interface:{family:"sans-serif"},input:{family:"inherit"},post:{family:"inherit"},postCode:{family:"monospace"}});return{rules:{fonts:Object.entries(t).filter((function(e){var t=(0,s.Z)(e,2);return t[0],t[1]})).map((function(e){var t=(0,s.Z)(e,2),n=t[0],o=t[1];return"--".concat(n,"Font: ").concat(o.family)})).join(";")},theme:{fonts:t}}},_=function(e,t){return{x:0,y:e?1:-1,blur:0,spread:0,color:t?"#000000":"#FFFFFF",alpha:.2,inset:!0}},k=[_(!0,!1),_(!1,!0)],C=[_(!0,!0),_(!1,!1)],S={x:0,y:0,blur:4,spread:0,color:"--faint",alpha:1},j={panel:[{x:1,y:1,blur:4,spread:0,color:"#000000",alpha:.6}],topBar:[{x:0,y:0,blur:4,spread:0,color:"#000000",alpha:.6}],popup:[{x:2,y:2,blur:3,spread:0,color:"#000000",alpha:.5}],avatar:[{x:0,y:1,blur:8,spread:0,color:"#000000",alpha:.7}],avatarStatus:[],panelHeader:[],button:[{x:0,y:0,blur:2,spread:0,color:"#000000",alpha:1}].concat(k),buttonHover:[S].concat(k),buttonPressed:[S].concat(C),input:[].concat(C,[{x:0,y:0,blur:2,inset:!0,spread:0,color:"#000000",alpha:1}])},F=function(e,t){var n={button:"btn",panel:"bg",top:"topBar",popup:"popover",avatar:"bg",panelHeader:"panel",input:"input"},o=Object.fromEntries(Object.entries(e.shadows||{}).map((function(e){var t=(0,s.Z)(e,2);return[t[0],t[1].map((function(e){return p({color:"#000000"},e)}))]}))),l=o&&!e.themeEngineVersion?P(o,e.opacity):o||{},d=Object.entries(p(p({},j),l)).reduce((function(e,o){var l=(0,s.Z)(o,2),d=l[0],m=l[1],h=d.replace(/[A-Z].*$/,""),f=n[h],g=(0,u.ov)((0,a.OQ)(t[f]).rgb)<.5?1:-1,v=m.reduce((function(e,n){return[].concat((0,r.Z)(e),[p(p({},n),{},{color:(0,u.CO)((0,c.NI)(n.color,(function(e){return(0,a.OQ)(t[e]).rgb}),g))})])}),[]);return p(p({},e),{},(0,i.Z)({},d,v))}),{});return{rules:{shadows:Object.entries(d).map((function(e){var t=(0,s.Z)(e,2),n=t[0],o=t[1];return["--".concat(n,"Shadow: ").concat(v(o)),"--".concat(n,"ShadowFilter: ").concat(w(o)),"--".concat(n,"ShadowInset: ").concat(v(o,!0))].join(";")})).join(";")},theme:{shadows:d}}},A=function(e,t,n,o){return{rules:p(p(p(p({},n.rules),e.rules),t.rules),o.rules),theme:p(p(p(p({},n.theme),e.theme),t.theme),o.theme)}},O=function(e){var t=b(e);return A(t,y(e),F(e,t.theme.colors,t.mod),D(e))},E=function(){var e="no-store";return window.fetch("/static/styles.json",{cache:e}).then((function(e){return e.json()})).then((function(t){return Object.entries(t).map((function(t){var n=(0,s.Z)(t,2),r=n[0],i=n[1],a=null;return"object"===(0,o.Z)(i)?a=Promise.resolve(i):"string"==typeof i&&(a=window.fetch(i,{cache:e}).then((function(e){return e.json()})).catch((function(e){return console.error(e),null}))),[r,a]}))})).then((function(e){return e.reduce((function(e,t){var n=(0,s.Z)(t,2),o=n[0],r=n[1];return e[o]=r,e}),{})}))},z=function(e){return Object.entries(e).reduce((function(e,t){var n=(0,s.Z)(t,2),o=n[0],r=n[1];switch(o){case"lightBg":return p(p({},e),{},{highlight:r});case"btnText":return p(p({},e),["","Panel","TopBar"].reduce((function(e,t){return p(p({},e),{},(0,i.Z)({},"btn"+t+"Text",r))}),{}));default:return p(p({},e),{},(0,i.Z)({},o,r))}}),{})},P=function(e,t){return Object.entries(e).reduce((function(e,n){var o=(0,s.Z)(n,2),a=o[0],u=o[1].reduce((function(e,n){return[].concat((0,r.Z)(e),[p(p({},n),{},{alpha:(s=n,a=s.color,(void 0===a?"#000000":a).startsWith("--")?(o=n,i=o.color,t[(0,c.AV)(i.substring(2).split(",")[0])]||1):n.alpha)})]);var o,i,s,a}),[]);return p(p({},e),{},(0,i.Z)({},a,u))}),{})},I=function(e){return E().then((function(t){return t[e]?t[e]:t["pleroma-dark"]})).then((function(e){var t=Array.isArray(e),n=t?{}:e.theme;if(t){var o=(0,u.wK)(e[1]),r=(0,u.wK)(e[2]),i=(0,u.wK)(e[3]),s=(0,u.wK)(e[4]),a=(0,u.wK)(e[5]||"#FF0000"),c=(0,u.wK)(e[6]||"#00FF00"),l=(0,u.wK)(e[7]||"#0000FF"),d=(0,u.wK)(e[8]||"#E3FF00");n.colors={bg:o,fg:r,text:i,link:s,cRed:a,cBlue:l,cGreen:c,cOrange:d}}return{theme:n,source:e.source}}))},x=function(e){return I(e).then((function(e){return m(e.theme)}))}},44551:(e,t,n)=>{"use strict";n.d(t,{em:()=>a,k0:()=>i,wB:()=>s});var o=n(97332),r=n(21865),i={undelay:null,topBar:null,badge:null,profileTint:null,fg:null,bg:"underlay",highlight:"bg",panel:"bg",popover:"bg",selectedMenu:"popover",btn:"bg",btnPanel:"panel",btnTopBar:"topBar",input:"bg",inputPanel:"panel",inputTopBar:"topBar",alert:"bg",alertPanel:"panel",poll:"bg",chatBg:"underlay",chatMessage:"chatBg"},s={profileTint:.5,alert:.5,input:.5,faint:.5,underlay:.15,alertPopup:.95},a={bg:{depends:[],opacity:"bg",priority:1},wallpaper:{depends:["bg"],color:function(e,t){return(0,o.Xu)(-2*e,t).rgb}},fg:{depends:[],priority:1},text:{depends:[],layer:"bg",opacity:null,priority:1},underlay:{default:"#000000",opacity:"underlay"},link:{depends:["accent"],priority:1},accent:{depends:["link"],priority:1},faint:{depends:["text"],opacity:"faint"},faintLink:{depends:["link"],opacity:"faint"},postFaintLink:{depends:["postLink"],opacity:"faint"},cBlue:"#0000ff",cRed:"#FF0000",cGreen:"#00FF00",cOrange:"#E3FF00",profileBg:{depends:["bg"],color:function(e,t){return{r:Math.floor(.53*t.r),g:Math.floor(.56*t.g),b:Math.floor(.59*t.b)}}},profileTint:{depends:["bg"],layer:"profileTint",opacity:"profileTint"},highlight:{depends:["bg"],color:function(e,t){return(0,o.Xu)(5*e,t).rgb}},highlightLightText:{depends:["lightText"],layer:"highlight",textColor:!0},highlightPostLink:{depends:["postLink"],layer:"highlight",textColor:"preserve"},highlightFaintText:{depends:["faint"],layer:"highlight",textColor:!0},highlightFaintLink:{depends:["faintLink"],layer:"highlight",textColor:"preserve"},highlightPostFaintLink:{depends:["postFaintLink"],layer:"highlight",textColor:"preserve"},highlightText:{depends:["text"],layer:"highlight",textColor:!0},highlightLink:{depends:["link"],layer:"highlight",textColor:"preserve"},highlightIcon:{depends:["highlight","highlightText"],color:function(e,t,n){return(0,r.a4)(t,n)}},popover:{depends:["bg"],opacity:"popover"},popoverLightText:{depends:["lightText"],layer:"popover",textColor:!0},popoverPostLink:{depends:["postLink"],layer:"popover",textColor:"preserve"},popoverFaintText:{depends:["faint"],layer:"popover",textColor:!0},popoverFaintLink:{depends:["faintLink"],layer:"popover",textColor:"preserve"},popoverPostFaintLink:{depends:["postFaintLink"],layer:"popover",textColor:"preserve"},popoverText:{depends:["text"],layer:"popover",textColor:!0},popoverLink:{depends:["link"],layer:"popover",textColor:"preserve"},popoverIcon:{depends:["popover","popoverText"],color:function(e,t,n){return(0,r.a4)(t,n)}},selectedPost:"--highlight",selectedPostFaintText:{depends:["highlightFaintText"],layer:"highlight",variant:"selectedPost",textColor:!0},selectedPostLightText:{depends:["highlightLightText"],layer:"highlight",variant:"selectedPost",textColor:!0},selectedPostPostLink:{depends:["highlightPostLink"],layer:"highlight",variant:"selectedPost",textColor:"preserve"},selectedPostFaintLink:{depends:["highlightFaintLink"],layer:"highlight",variant:"selectedPost",textColor:"preserve"},selectedPostText:{depends:["highlightText"],layer:"highlight",variant:"selectedPost",textColor:!0},selectedPostLink:{depends:["highlightLink"],layer:"highlight",variant:"selectedPost",textColor:"preserve"},selectedPostIcon:{depends:["selectedPost","selectedPostText"],color:function(e,t,n){return(0,r.a4)(t,n)}},selectedMenu:{depends:["bg"],color:function(e,t){return(0,o.Xu)(5*e,t).rgb}},selectedMenuLightText:{depends:["highlightLightText"],layer:"selectedMenu",variant:"selectedMenu",textColor:!0},selectedMenuFaintText:{depends:["highlightFaintText"],layer:"selectedMenu",variant:"selectedMenu",textColor:!0},selectedMenuFaintLink:{depends:["highlightFaintLink"],layer:"selectedMenu",variant:"selectedMenu",textColor:"preserve"},selectedMenuText:{depends:["highlightText"],layer:"selectedMenu",variant:"selectedMenu",textColor:!0},selectedMenuLink:{depends:["highlightLink"],layer:"selectedMenu",variant:"selectedMenu",textColor:"preserve"},selectedMenuIcon:{depends:["selectedMenu","selectedMenuText"],color:function(e,t,n){return(0,r.a4)(t,n)}},selectedMenuPopover:{depends:["popover"],color:function(e,t){return(0,o.Xu)(5*e,t).rgb}},selectedMenuPopoverLightText:{depends:["selectedMenuLightText"],layer:"selectedMenuPopover",variant:"selectedMenuPopover",textColor:!0},selectedMenuPopoverFaintText:{depends:["selectedMenuFaintText"],layer:"selectedMenuPopover",variant:"selectedMenuPopover",textColor:!0},selectedMenuPopoverFaintLink:{depends:["selectedMenuFaintLink"],layer:"selectedMenuPopover",variant:"selectedMenuPopover",textColor:"preserve"},selectedMenuPopoverText:{depends:["selectedMenuText"],layer:"selectedMenuPopover",variant:"selectedMenuPopover",textColor:!0},selectedMenuPopoverLink:{depends:["selectedMenuLink"],layer:"selectedMenuPopover",variant:"selectedMenuPopover",textColor:"preserve"},selectedMenuPopoverIcon:{depends:["selectedMenuPopover","selectedMenuText"],color:function(e,t,n){return(0,r.a4)(t,n)}},lightText:{depends:["text"],layer:"bg",textColor:"preserve",color:function(e,t){return(0,o.Xu)(20*e,t).rgb}},postLink:{depends:["link"],layer:"bg",textColor:"preserve"},postGreentext:{depends:["cGreen"],layer:"bg",textColor:"preserve"},postCyantext:{depends:["cBlue"],layer:"bg",textColor:"preserve"},border:{depends:["fg"],opacity:"border",color:function(e,t){return(0,o.Xu)(2*e,t).rgb}},poll:{depends:["accent","bg"],copacity:"poll",color:function(e,t,n){return(0,r.Tj)(t,.4,n)}},pollText:{depends:["text"],layer:"poll",textColor:!0},icon:{depends:["bg","text"],inheritsOpacity:!1,color:function(e,t,n){return(0,r.a4)(t,n)}},fgText:{depends:["text"],layer:"fg",textColor:!0},fgLink:{depends:["link"],layer:"fg",textColor:"preserve"},panel:{depends:["fg"],opacity:"panel"},panelText:{depends:["text"],layer:"panel",textColor:!0},panelFaint:{depends:["fgText"],layer:"panel",opacity:"faint",textColor:!0},panelLink:{depends:["fgLink"],layer:"panel",textColor:"preserve"},topBar:"--fg",topBarText:{depends:["fgText"],layer:"topBar",textColor:!0},topBarLink:{depends:["fgLink"],layer:"topBar",textColor:"preserve"},tab:{depends:["btn"]},tabText:{depends:["btnText"],layer:"btn",textColor:!0},tabActiveText:{depends:["text"],layer:"bg",textColor:!0},btn:{depends:["fg"],variant:"btn",opacity:"btn"},btnText:{depends:["fgText"],layer:"btn",textColor:!0},btnPanelText:{depends:["btnText"],layer:"btnPanel",variant:"btn",textColor:!0},btnTopBarText:{depends:["btnText"],layer:"btnTopBar",variant:"btn",textColor:!0},btnPressed:{depends:["btn"],layer:"btn"},btnPressedText:{depends:["btnText"],layer:"btn",variant:"btnPressed",textColor:!0},btnPressedPanel:{depends:["btnPressed"],layer:"btn"},btnPressedPanelText:{depends:["btnPanelText"],layer:"btnPanel",variant:"btnPressed",textColor:!0},btnPressedTopBar:{depends:["btnPressed"],layer:"btn"},btnPressedTopBarText:{depends:["btnTopBarText"],layer:"btnTopBar",variant:"btnPressed",textColor:!0},btnToggled:{depends:["btn"],layer:"btn",color:function(e,t){return(0,o.Xu)(20*e,t).rgb}},btnToggledText:{depends:["btnText"],layer:"btn",variant:"btnToggled",textColor:!0},btnToggledPanelText:{depends:["btnPanelText"],layer:"btnPanel",variant:"btnToggled",textColor:!0},btnToggledTopBarText:{depends:["btnTopBarText"],layer:"btnTopBar",variant:"btnToggled",textColor:!0},btnDisabled:{depends:["btn","bg"],color:function(e,t,n){return(0,r.Tj)(t,.25,n)}},btnDisabledText:{depends:["btnText","btnDisabled"],layer:"btn",variant:"btnDisabled",color:function(e,t,n){return(0,r.Tj)(t,.25,n)}},btnDisabledPanelText:{depends:["btnPanelText","btnDisabled"],layer:"btnPanel",variant:"btnDisabled",color:function(e,t,n){return(0,r.Tj)(t,.25,n)}},btnDisabledTopBarText:{depends:["btnTopBarText","btnDisabled"],layer:"btnTopBar",variant:"btnDisabled",color:function(e,t,n){return(0,r.Tj)(t,.25,n)}},input:{depends:["fg"],opacity:"input"},inputText:{depends:["text"],layer:"input",textColor:!0},inputPanelText:{depends:["panelText"],layer:"inputPanel",variant:"input",textColor:!0},inputTopbarText:{depends:["topBarText"],layer:"inputTopBar",variant:"input",textColor:!0},alertError:{depends:["cRed"],opacity:"alert"},alertErrorText:{depends:["text"],layer:"alert",variant:"alertError",textColor:!0},alertErrorPanelText:{depends:["panelText"],layer:"alertPanel",variant:"alertError",textColor:!0},alertWarning:{depends:["cOrange"],opacity:"alert"},alertWarningText:{depends:["text"],layer:"alert",variant:"alertWarning",textColor:!0},alertWarningPanelText:{depends:["panelText"],layer:"alertPanel",variant:"alertWarning",textColor:!0},alertSuccess:{depends:["cGreen"],opacity:"alert"},alertSuccessText:{depends:["text"],layer:"alert",variant:"alertSuccess",textColor:!0},alertSuccessPanelText:{depends:["panelText"],layer:"alertPanel",variant:"alertSuccess",textColor:!0},alertNeutral:{depends:["text"],opacity:"alert"},alertNeutralText:{depends:["text"],layer:"alert",variant:"alertNeutral",color:function(e,t){return(0,o.Xp)(t).rgb},textColor:!0},alertNeutralPanelText:{depends:["panelText"],layer:"alertPanel",variant:"alertNeutral",textColor:!0},alertPopupError:{depends:["alertError"],opacity:"alertPopup"},alertPopupErrorText:{depends:["alertErrorText"],layer:"popover",variant:"alertPopupError",textColor:!0},alertPopupWarning:{depends:["alertWarning"],opacity:"alertPopup"},alertPopupWarningText:{depends:["alertWarningText"],layer:"popover",variant:"alertPopupWarning",textColor:!0},alertPopupSuccess:{depends:["alertSuccess"],opacity:"alertPopup"},alertPopupSuccessText:{depends:["alertSuccessText"],layer:"popover",variant:"alertPopupSuccess",textColor:!0},alertPopupNeutral:{depends:["alertNeutral"],opacity:"alertPopup"},alertPopupNeutralText:{depends:["alertNeutralText"],layer:"popover",variant:"alertPopupNeutral",textColor:!0},badgeNotification:"--cRed",badgeNotificationText:{depends:["text","badgeNotification"],layer:"badge",variant:"badgeNotification",textColor:"bw"},badgeNeutral:"--cGreen",badgeNeutralText:{depends:["text","badgeNeutral"],layer:"badge",variant:"badgeNeutral",textColor:"bw"},chatBg:{depends:["bg"]},chatMessageIncomingBg:{depends:["chatBg"]},chatMessageIncomingText:{depends:["text"],layer:"chatMessage",variant:"chatMessageIncomingBg",textColor:!0},chatMessageIncomingLink:{depends:["link"],layer:"chatMessage",variant:"chatMessageIncomingBg",textColor:"preserve"},chatMessageIncomingBorder:{depends:["border"],opacity:"border",color:function(e,t){return(0,o.Xu)(2*e,t).rgb}},chatMessageOutgoingBg:{depends:["chatMessageIncomingBg"],color:function(e,t){return(0,o.Xu)(5*e,t).rgb}},chatMessageOutgoingText:{depends:["text"],layer:"chatMessage",variant:"chatMessageOutgoingBg",textColor:!0},chatMessageOutgoingLink:{depends:["link"],layer:"chatMessage",variant:"chatMessageOutgoingBg",textColor:"preserve"},chatMessageOutgoingBorder:{depends:["chatMessageOutgoingBg"],opacity:"border",color:function(e,t){return(0,o.Xu)(2*e,t).rgb}}}},40454:(e,t,n)=>{"use strict";n.d(t,{AQ:()=>y,AV:()=>v,EC:()=>_,NI:()=>D,we:()=>p,xb:()=>h});var o=n(4942),r=n(29439),i=n(71002),s=n(93433),a=n(97332),u=n(21865),c=n(44551);function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var p=3,m=function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:c.k0,n=[e],o=t[e];o;)n.unshift(o),o=t[o];return n},h=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e,n=arguments.length>2?arguments[2]:void 0,o=arguments.length>3?arguments[3]:void 0,r=arguments.length>4?arguments[4]:void 0;return m(e).map((function(i){return[i===e?o[t]:o[i],i===e?r[n]||1:r[i]]}))},f=function(e,t){var n=t[e];if("string"==typeof n&&n.startsWith("--"))return[n.substring(2)];if(null===n)return[];var o=n.depends,r=n.layer,i=n.variant,a=r?m(r).map((function(e){return e===r?i||r:e})):[];return Array.isArray(o)?[].concat((0,s.Z)(o),(0,s.Z)(a)):(0,s.Z)(a)},g=function(e){return"object"===(0,i.Z)(e)?e:{depends:e.startsWith("--")?[e.substring(2)]:[],default:e.startsWith("#")?e:void 0}},v=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:c.em,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:f,o=g(t[e]);if(null!==o.opacity){if(o.opacity)return o.opacity;var r=function o(r){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[e],a=n(r,t)[0];if(void 0!==a){var u=t[a];if(void 0!==u)return u.opacity||null===u?u.opacity:u.depends&&i.includes(a)?o(a,[].concat((0,s.Z)(i),[a])):null}};return o.depends?r(e):void 0}},w=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:c.em,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:f,o=g(t[e]);if(c.k0[e])return e;if(null!==o.layer){if(o.layer)return o.layer;var r=function o(r){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[e],a=n(r,t)[0];if(void 0!==a){var u=t[a];if(void 0!==u)return u.layer||null===u?u.layer:u.depends?o(u,[].concat((0,s.Z)(i),[a])):null}};return o.depends?r(e):void 0}},b=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:c.em,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:f,n=Object.keys(e),o=new Set(n),r=new Set,i=new Set,s=[].concat(n),a=[],u=function n(s){if(o.has(s))o.delete(s),r.add(s),t(s,e).forEach(n),r.delete(s),i.add(s),a.push(s);else if(r.has(s))console.debug("Cyclic depenency in topoSort, ignoring"),a.push(s);else if(!i.has(s))throw new Error("Unintended condition in topoSort!")};s.length>0;)u(s.pop());return a.map((function(e,t){return{data:e,index:t}})).sort((function(n,o){var r=n.data,i=n.index,s=o.data,a=o.index,u=t(r,e).length,c=t(s,e).length;return u===c||0!==c&&0!==u?i-a:0===u&&0!==c?-1:0===c&&0!==u?1:0})).map((function(e){return e.data}))}(Object.entries(c.em).sort((function(e,t){var n=(0,r.Z)(e,2),o=(n[0],n[1]),i=(0,r.Z)(t,2),s=(i[0],i[1]);return(o&&o.priority||0)-(s&&s.priority||0)})).reduce((function(e,t){var n=(0,r.Z)(t,2),i=n[0],s=n[1];return d(d({},e),{},(0,o.Z)({},i,s))}),{})),y=Object.entries(c.em).reduce((function(e,t){var n=(0,r.Z)(t,2),i=n[0],a=(n[1],v(i,c.em,f));return a?d(d({},e),{},(0,o.Z)({},a,{defaultValue:c.wB[a]||1,affectedSlots:[].concat((0,s.Z)(e[a]&&e[a].affectedSlots||[]),[i])})):e}),{}),D=function(e,t,n){if("string"!=typeof e||!e.startsWith("--"))return e;var o=null,i=e.split(/,/g).map((function(e){return e.trim()})),s=(0,r.Z)(i,2),u=s[0],c=s[1];return o=t(u.substring(2)),c&&(o=(0,a.Xu)(Number.parseFloat(c)*n,o).rgb),o},_=function(e,t){return b.reduce((function(n,r){var i,l=n.colors,p=n.opacity,m=e[r],b=g(c.em[r]),_=f(r,c.em),k=!!b.textColor,C=b.variant||b.layer;i=k?(0,u.Rx)(d({},l[_[0]]||(0,a.OQ)(e[r]||"#FF00FF").rgb),h(w(r)||"bg",C||"bg",v(C),l,p)):C&&C!==r?l[C]||(0,a.OQ)(e[C]).rgb:l.bg||(0,a.OQ)(e.bg);var S=(0,u.ov)(i)<.5?1:-1,j=null;if(m){var F=m;if("transparent"===F){var A=h(w(r),r,v(r)||r,l,p).slice(0,-1);F=d(d({},(0,u.Rx)((0,a.OQ)("#FF00FF").rgb,A)),{},{a:0})}else"string"==typeof m&&m.startsWith("--")?F=D(m,(function(t){return l[t]||e[t]}),S):"string"==typeof m&&m.startsWith("#")&&(F=(0,a.OQ)(F).rgb);j=d({},F)}else if(b.default)j=(0,a.OQ)(b.default).rgb;else{var O=b.color||function(e,t){return d({},t)};if(b.textColor)if("bw"===b.textColor)j=(0,a.wo)(i).rgb;else{var E=d({},l[_[0]]);b.color&&(E=O.apply(void 0,[S].concat((0,s.Z)(_.map((function(e){return d({},l[e])})))))),j=(0,u.uu)(i,d({},E),"preserve"===b.textColor)}else j=O.apply(void 0,[S].concat((0,s.Z)(_.map((function(e){return d({},l[e])})))))}if(!j)throw new Error("Couldn't generate color for "+r);var z=b.opacity||v(r),P=b.opacity;if(null===P)j.a=1;else if("transparent"===m)j.a=0;else{var I=P&&void 0!==t[z],x=_[0],T=x&&l[x];P||!T||b.textColor||null===P?T||z?T&&0===T.a?j.a=0:j.a=Number(I?t[z]:(y[z]||{}).defaultValue):delete j.a:j.a=T.a}return(Number.isNaN(j.a)||void 0===j.a)&&(j.a=1),z?{colors:d(d({},l),{},(0,o.Z)({},r,j)),opacity:d(d({},p),{},(0,o.Z)({},z,j.a))}:{colors:d(d({},l),{},(0,o.Z)({},r,j)),opacity:p}}),{colors:{},opacity:{}})}},95052:(e,t,n)=>{"use strict";n.d(t,{M:()=>u,q:()=>a});var o=n(4942),r=n(21865);function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function s(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?i(Object(n),!0).forEach((function(t){(0,o.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var a=function(e){if(void 0!==e){var t=e.color,n=e.type;if("string"==typeof t){var o=(0,r.wK)(t);if(null!=o){var i="rgb(".concat(Math.floor(o.r),", ").concat(Math.floor(o.g),", ").concat(Math.floor(o.b),")"),a="rgba(".concat(Math.floor(o.r),", ").concat(Math.floor(o.g),", ").concat(Math.floor(o.b),", .1)"),u="rgba(".concat(Math.floor(o.r),", ").concat(Math.floor(o.g),", ").concat(Math.floor(o.b),", .2)"),c={"--____highlight-solidColor":i,"--____highlight-tintColor":a,"--____highlight-tintColor2":u};return"striped"===n?s({backgroundImage:["repeating-linear-gradient(135deg,","".concat(a," ,"),"".concat(a," 20px,"),"".concat(u," 20px,"),"".concat(u," 40px")].join(" "),backgroundPosition:"0 0"},c):"solid"===n?s({backgroundColor:u},c):"side"===n?s({backgroundImage:["linear-gradient(to right,","".concat(i," ,"),"".concat(i," 2px,"),"transparent 6px"].join(" "),backgroundPosition:"0 0"},c):void 0}}}},u=function(e){return"USER____"+e.screen_name.replace(/\./g,"_").replace(/@/g,"_AT_")}},4493:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var o=n(64721),r=n.n(o);const i=function(e,t,n){var o=!t||function(e){return e&&e.includes("@")}(t)||r()(n,t);return{name:o?"external-user-profile":"user-profile",params:o?{id:e}:{name:t}}}},66596:(e,t,n)=>{"use strict";n.d(t,{Z:()=>W});var o=n(66252),r=n(3577),i=n(49963),s=["href","alt","title"],a={key:1,class:"attachment-buttons"},u=["placeholder"],c={key:1},l={class:"attachment-wrapper"},d=["href","alt","title"],p=["src"],m={key:1,class:"attachment-buttons"},h=["title"],f=["title"],g=["title"],v=["title"],w=["title"],b=["title"],y=["title"],D=["href"],_=["href"],k={key:0},C=["href"],S=["src","alt","title"],j={key:0,class:"image"},F=["src"],A={class:"text"},O=["href"],E=["innerHTML"],z=["href"],P=["placeholder"],I={key:1},x=n(4942),T=n(32140),$=n(72884),B=n(34133);const U=n.p+"static/img/nsfw.2958239.png";var M=n(58394),L=n(989),R=n(9382),q=n(84131);function N(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}R.vI.add(q.gMD,q.Xig,q.VmB,q.IyC,q.aQp,q.NBC,q.Bg$,q.N7g,q.I7k,q.UJf,q.S3c);const Z={props:["attachment","compact","description","hideDescription","nsfw","size","setMedia","remove","shiftUp","shiftDn","edit"],data:function(){return{localDescription:this.description||this.attachment.description,nsfwImage:this.$store.state.instance.nsfwCensorImage||U,hideNsfwLocal:this.$store.getters.mergedConfig.hideNsfw,preloadImage:this.$store.getters.mergedConfig.preloadImage,loading:!1,img:"image"===M.ZP.fileType(this.attachment.mimetype)&&document.createElement("img"),modalOpen:!1,showHidden:!1,flashLoaded:!1,showDescription:!1}},components:{Flash:$.Z,StillImage:T.Z,VideoAttachment:B.Z},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?N(Object(n),!0).forEach((function(t){(0,x.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):N(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({classNames:function(){return[{"-loading":this.loading,"-nsfw-placeholder":this.hidden,"-editable":void 0!==this.edit,"-compact":this.compact},"-type-"+this.type,this.size&&"-size-"+this.size,"-".concat(this.useContainFit?"contain":"cover","-fit")]},usePlaceholder:function(){return"hide"===this.size},useContainFit:function(){return this.$store.getters.mergedConfig.useContainFit},placeholderName:function(){return""!==this.attachment.description&&this.attachment.description?this.attachment.description:this.type.toUpperCase()},placeholderIconClass:function(){return"image"===this.type?"image":"video"===this.type?"video":"audio"===this.type?"music":"file"},referrerpolicy:function(){return this.$store.state.instance.mediaProxyAvailable?"":"no-referrer"},type:function(){return M.ZP.fileType(this.attachment.mimetype)},hidden:function(){return this.nsfw&&this.hideNsfwLocal&&!this.showHidden},isEmpty:function(){return"html"===this.type&&!this.attachment.oembed},useModal:function(){var e=[];switch(this.size){case"hide":case"small":e=["image","video","audio","flash"];break;default:e=this.mergedConfig.playVideosInModal?["image","video","flash"]:["image"]}return e.includes(this.type)},videoTag:function(){return this.useModal?"button":"span"}},(0,L.Se)(["mergedConfig"])),watch:{"attachment.description":function(e){this.localDescription=e},localDescription:function(e){this.onEdit(e)}},methods:{linkClicked:function(e){var t=e.target;"A"===t.tagName&&window.open(t.href,"_blank")},openModal:function(e){this.useModal?(this.$emit("setMedia"),this.$store.dispatch("setCurrentMedia",this.attachment)):"unknown"===this.type&&window.open(this.attachment.url)},openModalForce:function(e){this.$emit("setMedia"),this.$store.dispatch("setCurrentMedia",this.attachment)},onEdit:function(e){this.edit&&this.edit(this.attachment,e)},onRemove:function(){this.remove&&this.remove(this.attachment)},onShiftUp:function(){this.shiftUp&&this.shiftUp(this.attachment)},onShiftDn:function(){this.shiftDn&&this.shiftDn(this.attachment)},stopFlash:function(){this.$refs.flash.closePlayer()},setFlashLoaded:function(e){this.flashLoaded=e},toggleDescription:function(){this.showDescription=!this.showDescription},toggleHidden:function(e){var t=this;!this.mergedConfig.useOneClickNsfw||this.showHidden||"video"===this.type&&!this.mergedConfig.playVideosInModal?this.img&&!this.preloadImage?this.img.onload?this.img.onload():(this.loading=!0,this.img.src=this.attachment.url,this.img.onload=function(){t.loading=!1,t.showHidden=!t.showHidden}):this.showHidden=!this.showHidden:this.openModal(e)},onImageLoad:function(e){var t=e.naturalWidth,n=e.naturalHeight;this.$emit("naturalSizeLoad",{id:this.attachment.id,width:t,height:n})}}},W=(0,n(83744).Z)(Z,[["render",function(e,t,n,x,T,$){var B=(0,o.up)("FAIcon"),U=(0,o.up)("StillImage"),M=(0,o.up)("VideoAttachment"),L=(0,o.up)("Flash");return e.usePlaceholder?((0,o.wg)(),(0,o.iD)("button",{key:0,class:(0,r.C_)(["Attachment -placeholder button-unstyled",e.classNames]),onClick:t[4]||(t[4]=function(){return e.openModal&&e.openModal.apply(e,arguments)})},["html"!==e.type?((0,o.wg)(),(0,o.iD)("a",{key:0,class:"placeholder",target:"_blank",href:e.attachment.url,alt:e.attachment.description,title:e.attachment.description,onClick:t[0]||(t[0]=(0,i.iM)((function(){}),["prevent"]))},[(0,o.Wm)(B,{icon:e.placeholderIconClass},null,8,["icon"]),(0,o._)("b",null,(0,r.zw)(e.nsfw?"NSFW / ":""),1),(0,o.Uk)((0,r.zw)(e.edit?"":e.placeholderName),1)],8,s)):(0,o.kq)("",!0),e.edit||e.remove?((0,o.wg)(),(0,o.iD)("div",a,[e.remove?((0,o.wg)(),(0,o.iD)("button",{key:0,class:"button-unstyled attachment-button",onClick:t[1]||(t[1]=(0,i.iM)((function(){return e.onRemove&&e.onRemove.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(B,{icon:"trash-alt"})])):(0,o.kq)("",!0)])):(0,o.kq)("",!0),"hide"!==e.size&&!e.hideDescription&&(e.edit||e.localDescription||e.showDescription)?((0,o.wg)(),(0,o.iD)("div",{key:2,class:(0,r.C_)(["description-container",{"-static":!e.edit}])},[e.edit?(0,o.wy)(((0,o.wg)(),(0,o.iD)("input",{key:0,"onUpdate:modelValue":t[2]||(t[2]=function(t){return e.localDescription=t}),type:"text",class:"description-field",placeholder:e.$t("post_status.media_description"),onKeydown:t[3]||(t[3]=(0,i.D2)((0,i.iM)((function(){}),["prevent"]),["enter"]))},null,40,u)),[[i.nr,e.localDescription]]):((0,o.wg)(),(0,o.iD)("p",c,(0,r.zw)(e.localDescription),1))],2)):(0,o.kq)("",!0)],2)):((0,o.wg)(),(0,o.iD)("div",{key:1,class:(0,r.C_)(["Attachment",e.classNames])},[(0,o.wy)((0,o._)("div",l,[e.hidden?((0,o.wg)(),(0,o.iD)("a",{key:0,class:"image-container",href:e.attachment.url,alt:e.attachment.description,title:e.attachment.description,onClick:t[5]||(t[5]=(0,i.iM)((function(){return e.toggleHidden&&e.toggleHidden.apply(e,arguments)}),["prevent","stop"]))},[((0,o.wg)(),(0,o.iD)("img",{key:e.nsfwImage,class:"nsfw",src:e.nsfwImage},null,8,p)),"video"===e.type?((0,o.wg)(),(0,o.j4)(B,{key:0,class:"play-icon",icon:"play-circle"})):(0,o.kq)("",!0)],8,d)):(0,o.kq)("",!0),e.hidden?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",m,["flash"===e.type&&e.flashLoaded?((0,o.wg)(),(0,o.iD)("button",{key:0,class:"button-unstyled attachment-button",title:e.$t("status.attachment_stop_flash"),onClick:t[6]||(t[6]=(0,i.iM)((function(){return e.stopFlash&&e.stopFlash.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(B,{icon:"stop"})],8,h)):(0,o.kq)("",!0),e.attachment.description&&"small"!==e.size&&!e.edit&&"unknown"!==e.type?((0,o.wg)(),(0,o.iD)("button",{key:1,class:"button-unstyled attachment-button",title:e.$t("status.show_attachment_description"),onClick:t[7]||(t[7]=(0,i.iM)((function(){return e.toggleDescription&&e.toggleDescription.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(B,{icon:"align-right"})],8,f)):(0,o.kq)("",!0),e.useModal||"unknown"===e.type?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("button",{key:2,class:"button-unstyled attachment-button",title:e.$t("status.show_attachment_in_modal"),onClick:t[8]||(t[8]=(0,i.iM)((function(){return e.openModalForce&&e.openModalForce.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(B,{icon:"search-plus"})],8,g)),e.nsfw&&e.hideNsfwLocal?((0,o.wg)(),(0,o.iD)("button",{key:3,class:"button-unstyled attachment-button",title:e.$t("status.hide_attachment"),onClick:t[9]||(t[9]=(0,i.iM)((function(){return e.toggleHidden&&e.toggleHidden.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(B,{icon:"times"})],8,v)):(0,o.kq)("",!0),e.shiftUp?((0,o.wg)(),(0,o.iD)("button",{key:4,class:"button-unstyled attachment-button",title:e.$t("status.move_up"),onClick:t[10]||(t[10]=(0,i.iM)((function(){return e.onShiftUp&&e.onShiftUp.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(B,{icon:"chevron-left"})],8,w)):(0,o.kq)("",!0),e.shiftDn?((0,o.wg)(),(0,o.iD)("button",{key:5,class:"button-unstyled attachment-button",title:e.$t("status.move_down"),onClick:t[11]||(t[11]=(0,i.iM)((function(){return e.onShiftDn&&e.onShiftDn.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(B,{icon:"chevron-right"})],8,b)):(0,o.kq)("",!0),e.remove?((0,o.wg)(),(0,o.iD)("button",{key:6,class:"button-unstyled attachment-button",title:e.$t("status.remove_attachment"),onClick:t[12]||(t[12]=(0,i.iM)((function(){return e.onRemove&&e.onRemove.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(B,{icon:"trash-alt"})],8,y)):(0,o.kq)("",!0)])),"image"!==e.type||e.hidden&&!e.preloadImage?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("a",{key:2,class:(0,r.C_)(["image-container",{"-hidden":e.hidden&&e.preloadImage}]),href:e.attachment.url,target:"_blank",onClick:t[13]||(t[13]=(0,i.iM)((function(){return e.openModal&&e.openModal.apply(e,arguments)}),["stop","prevent"]))},[(0,o.Wm)(U,{class:"image",referrerpolicy:e.referrerpolicy,mimetype:e.attachment.mimetype,src:e.attachment.large_thumb_url||e.attachment.url,"image-load-handler":e.onImageLoad,alt:e.attachment.description},null,8,["referrerpolicy","mimetype","src","image-load-handler","alt"])],10,D)),"unknown"!==e.type||e.hidden?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("a",{key:3,class:"placeholder-container",href:e.attachment.url,target:"_blank"},[(0,o.Wm)(B,{size:e.compact?"2x":"5x",icon:e.placeholderIconClass,title:e.localDescription},null,8,["size","icon","title"]),e.compact?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("p",k,(0,r.zw)(e.localDescription),1))],8,_)),"video"!==e.type||e.hidden?(0,o.kq)("",!0):((0,o.wg)(),(0,o.j4)((0,o.LL)(e.videoTag),{key:4,class:(0,r.C_)(["video-container",{"button-unstyled":"isModal"}]),href:e.attachment.url,onClick:(0,i.iM)(e.openModal,["stop","prevent"])},{default:(0,o.w5)((function(){return[(0,o.Wm)(M,{class:"video",attachment:e.attachment,controls:!e.useModal,onPlay:t[14]||(t[14]=function(t){return e.$emit("play")}),onPause:t[15]||(t[15]=function(t){return e.$emit("pause")})},null,8,["attachment","controls"]),e.useModal?((0,o.wg)(),(0,o.j4)(B,{key:0,class:"play-icon",icon:"play-circle"})):(0,o.kq)("",!0)]})),_:1},8,["href","onClick"])),"audio"!==e.type||e.hidden?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("span",{key:5,class:"audio-container",href:e.attachment.url,onClick:t[18]||(t[18]=(0,i.iM)((function(){return e.openModal&&e.openModal.apply(e,arguments)}),["stop","prevent"]))},["audio"===e.type?((0,o.wg)(),(0,o.iD)("audio",{key:0,src:e.attachment.url,alt:e.attachment.description,title:e.attachment.description,controls:"",onPlay:t[16]||(t[16]=function(t){return e.$emit("play")}),onPause:t[17]||(t[17]=function(t){return e.$emit("pause")})},null,40,S)):(0,o.kq)("",!0)],8,C)),"html"===e.type&&e.attachment.oembed?((0,o.wg)(),(0,o.iD)("div",{key:6,class:"oembed-container",onClick:t[19]||(t[19]=(0,i.iM)((function(){return e.linkClicked&&e.linkClicked.apply(e,arguments)}),["prevent"]))},[e.attachment.thumb_url?((0,o.wg)(),(0,o.iD)("div",j,[(0,o._)("img",{src:e.attachment.thumb_url},null,8,F)])):(0,o.kq)("",!0),(0,o._)("div",A,[(0,o._)("h1",null,[(0,o._)("a",{href:e.attachment.url},(0,r.zw)(e.attachment.oembed.title),9,O)]),(0,o._)("div",{innerHTML:e.attachment.oembed.oembedHTML},null,8,E)])])):(0,o.kq)("",!0),"flash"!==e.type||e.hidden?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("span",{key:7,class:"flash-container",href:e.attachment.url,onClick:t[22]||(t[22]=(0,i.iM)((function(){return e.openModal&&e.openModal.apply(e,arguments)}),["stop","prevent"]))},[(0,o.Wm)(L,{ref:"flash",class:"flash",src:e.attachment.large_thumb_url||e.attachment.url,onPlayerOpened:t[20]||(t[20]=function(t){return e.setFlashLoaded(!0)}),onPlayerClosed:t[21]||(t[21]=function(t){return e.setFlashLoaded(!1)})},null,8,["src"])],8,z))],512),[[i.F8,!e.isEmpty]]),"hide"!==e.size&&!e.hideDescription&&(e.edit||e.localDescription&&e.showDescription)?((0,o.wg)(),(0,o.iD)("div",{key:0,class:(0,r.C_)(["description-container",{"-static":!e.edit}])},[e.edit?(0,o.wy)(((0,o.wg)(),(0,o.iD)("input",{key:0,"onUpdate:modelValue":t[23]||(t[23]=function(t){return e.localDescription=t}),type:"text",class:"description-field",placeholder:e.$t("post_status.media_description"),onKeydown:t[24]||(t[24]=(0,i.D2)((0,i.iM)((function(){}),["prevent"]),["enter"]))},null,40,P)),[[i.nr,e.localDescription]]):((0,o.wg)(),(0,o.iD)("p",I,(0,r.zw)(e.localDescription),1))],2)):(0,o.kq)("",!0)],2))}]])},19066:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var o=n(66252),r={class:"avatars"},i=n(48173),s=n(4493);const a={props:["users"],computed:{slicedUsers:function(){return this.users?this.users.slice(0,15):[]}},components:{UserAvatar:i.default},methods:{userProfileLink:function(e){return(0,s.Z)(e.id,e.screen_name,this.$store.state.instance.restrictedNicknames)}}},u=(0,n(83744).Z)(a,[["render",function(e,t,n,i,s,a){var u=(0,o.up)("UserAvatar"),c=(0,o.up)("router-link");return(0,o.wg)(),(0,o.iD)("div",r,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.slicedUsers,(function(t){return(0,o.wg)(),(0,o.j4)(c,{key:t.id,to:e.userProfileLink(t),class:"avatars-item"},{default:(0,o.w5)((function(){return[(0,o.Wm)(u,{user:t,class:"avatar-small"},null,8,["user"])]})),_:2},1032,["to"])})),128))])}]])},29076:(e,t,n)=>{"use strict";n.d(t,{Z:()=>h});var o=n(66252),r=n(49963),i={class:"basic-user-card"},s={class:"basic-user-card-collapsed-content"},a=["title"],u=n(22588),c=n(48173),l=n(12061),d=n(92820),p=n(4493);const m={props:["user"],components:{UserPopover:u.default,UserAvatar:c.default,RichContent:d.Z,UserLink:l.Z},methods:{userProfileLink:function(e){return(0,p.Z)(e.id,e.screen_name,this.$store.state.instance.restrictedNicknames)}}},h=(0,n(83744).Z)(m,[["render",function(e,t,n,u,c,l){var d=(0,o.up)("UserAvatar"),p=(0,o.up)("UserPopover"),m=(0,o.up)("router-link"),h=(0,o.up)("RichContent"),f=(0,o.up)("user-link");return(0,o.wg)(),(0,o.iD)("div",i,[(0,o.Wm)(m,{to:e.userProfileLink(e.user),onClick:t[1]||(t[1]=(0,r.iM)((function(){}),["prevent"]))},{default:(0,o.w5)((function(){return[(0,o.Wm)(p,{"user-id":e.user.id,"overlay-centers":!0,"overlay-centers-selector":".avatar"},{default:(0,o.w5)((function(){return[(0,o.Wm)(d,{class:"user-avatar avatar",user:e.user,onClick:t[0]||(t[0]=(0,r.iM)((function(){}),["prevent"]))},null,8,["user"])]})),_:1},8,["user-id"])]})),_:1},8,["to"]),(0,o._)("div",s,[(0,o._)("div",{title:e.user.name,class:"basic-user-card-user-name"},[(0,o.Wm)(h,{class:"basic-user-card-user-name-value",html:e.user.name,emoji:e.user.emoji},null,8,["html","emoji"])],8,a),(0,o._)("div",null,[(0,o.Wm)(f,{class:"basic-user-card-screen-name",user:e.user},null,8,["user"])]),(0,o.WI)(e.$slots,"default")])])}]])},66141:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var o=n(66252),r=n(3577),i=["disabled","checked","indeterminate"],s={key:0,class:"label"};const a={props:["modelValue","indeterminate","disabled"],emits:["update:modelValue"],data:function(e){return{indeterminateTransitionFix:e.indeterminate}},watch:{indeterminate:function(e){e&&(this.indeterminateTransitionFix=!0)}},methods:{onTransitionEnd:function(e){this.indeterminate||(this.indeterminateTransitionFix=!1)}}},u=(0,n(83744).Z)(a,[["render",function(e,t,n,a,u,c){return(0,o.wg)(),(0,o.iD)("label",{class:(0,r.C_)(["checkbox",{disabled:n.disabled,indeterminate:n.indeterminate,"indeterminate-fix":e.indeterminateTransitionFix}])},[(0,o._)("input",{type:"checkbox",class:"visible-for-screenreader-only",disabled:n.disabled,checked:n.modelValue,indeterminate:n.indeterminate,onChange:t[0]||(t[0]=function(t){return e.$emit("update:modelValue",t.target.checked)})},null,40,i),(0,o._)("i",{class:"checkbox-indicator","aria-hidden":!0,onTransitionendCapture:t[1]||(t[1]=function(){return c.onTransitionEnd&&c.onTransitionEnd.apply(c,arguments)})},null,32),e.$slots.default?((0,o.wg)(),(0,o.iD)("span",s,[(0,o.WI)(e.$slots,"default")])):(0,o.kq)("",!0)],2)}]])},1447:(e,t,n)=>{"use strict";n.d(t,{Z:()=>l});var o=n(66252),r=n(3577),i=n(49963),s=["textContent"],a=["textContent"],u=["textContent"];const c={components:{DialogModal:n(71113).Z},props:{title:{type:String},cancelText:{type:String},confirmText:{type:String}},computed:{},methods:{onCancel:function(){this.$emit("cancelled")},onAccept:function(){this.$emit("accepted")}}},l=(0,n(83744).Z)(c,[["render",function(e,t,n,c,l,d){var p=(0,o.up)("dialog-modal"),m=(0,o.Q2)("body-scroll-lock");return(0,o.wy)(((0,o.wg)(),(0,o.j4)(p,{class:"confirm-modal","on-cancel":e.onCancel},{header:(0,o.w5)((function(){return[(0,o._)("span",{textContent:(0,r.zw)(e.title)},null,8,s)]})),footer:(0,o.w5)((function(){return[(0,o._)("button",{class:"btn button-default",onClick:t[0]||(t[0]=(0,i.iM)((function(){return e.onAccept&&e.onAccept.apply(e,arguments)}),["prevent"])),textContent:(0,r.zw)(e.confirmText)},null,8,a),(0,o._)("button",{class:"btn button-default",onClick:t[1]||(t[1]=(0,i.iM)((function(){return e.onCancel&&e.onCancel.apply(e,arguments)}),["prevent"])),textContent:(0,r.zw)(e.cancelText)},null,8,u)]})),default:(0,o.w5)((function(){return[(0,o.WI)(e.$slots,"default")]})),_:3},8,["on-cancel"])),[[m,!0]])}]])},71113:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var o=n(66252),r=n(3577),i=n(49963),s={class:"panel-heading dialog-modal-heading"},a={class:"title"},u={class:"dialog-modal-content"},c={class:"dialog-modal-footer user-interactions panel-footer"};const l={props:{darkOverlay:{default:!0,type:Boolean},onCancel:{default:function(){},type:Function}}},d=(0,n(83744).Z)(l,[["render",function(e,t,n,l,d,p){return(0,o.wg)(),(0,o.iD)("span",{class:(0,r.C_)({"dark-overlay":e.darkOverlay}),onClick:t[1]||(t[1]=(0,i.iM)((function(t){return e.onCancel()}),["self","stop"]))},[(0,o._)("div",{class:"dialog-modal panel panel-default",onClick:t[0]||(t[0]=(0,i.iM)((function(){}),["stop"]))},[(0,o._)("div",s,[(0,o._)("div",a,[(0,o.WI)(e.$slots,"header")])]),(0,o._)("div",u,[(0,o.WI)(e.$slots,"default")]),(0,o._)("div",c,[(0,o.WI)(e.$slots,"footer")])])],2)}]])},88671:(e,t,n)=>{"use strict";n.d(t,{Z:()=>J});var o=n(66252),r=n(3577),i=n(49963),s={ref:"hiddenOverlayCaret",class:"caret"},a=["title"],u=["id"],c=["id","aria-label","aria-selected","onClick"],l={class:"image"},d=["src"],p={key:1},m={class:"label"},h={key:0,class:"displayText"},f={key:1,class:"displayText"},g={class:"detailText"},v=n(4942),w=n(44925),b=n(15861),y=n(93433),D=n(69572),_=n.n(D),k=n(64687),C=n.n(k),S=n(13311),j=n.n(S),F=n(54061),A=n.n(F),O=function(e){return A()(e,(function(e,t){var n={word:t,start:0,end:t.length};if(e.length>0){var o=e.pop();n.start+=o.end,n.end+=o.end,e.push(o)}return e.push(n),e}),[])},E=function(e){for(var t=[],n="",o=0;o<e.length;o++){var r=e[o];n?!!r.trim()==!!n.trim()?n+=r:(t.push(n),n=r):n=r}return n&&t.push(n),t};const z=function(e,t){var n=E(e),o=O(n);return j()(o,(function(e){var n=e.start,o=e.end;return n<=t&&o>t}))},P=function(e,t,n){return e.slice(0,t.start)+n+e.slice(t.end)};var I=n(53599),x=n(91300),T=n(84535),$=["aria-live"];const B={props:{ariaLive:{type:String,defualt:"assertive"}},data:function(){return{currentText:""}},methods:{announce:function(e){var t=this;this.currentText=e,setTimeout((function(){t.currentText=""}),1e3)}}};var U=n(83744);const M=(0,U.Z)(B,[["render",function(e,t,n,i,s,a){return(0,o.wg)(),(0,o.iD)("div",{class:"visible-for-screenreader-only","aria-live":e.ariaLive},(0,r.zw)(e.currentText),9,$)}]]);var L,R=n(42262),q=n(67952),N=n(8312),Z=n(9382),W=n(5737),H=["imageUrl"];function V(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function K(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?V(Object(n),!0).forEach((function(t){(0,v.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):V(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function G(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}Z.vI.add(W.RKn);const Y={emits:["update:modelValue","shown"],props:{suggest:{required:!0,type:Function},modelValue:{required:!0,type:String},enableEmojiPicker:{required:!1,type:Boolean,default:!1},hideEmojiButton:{required:!1,type:Boolean,default:!1},enableStickerPicker:{required:!1,type:Boolean,default:!1},placement:{required:!1,type:String,default:"auto"},newlineOnCtrlEnter:{required:!1,type:Boolean,default:!1}},data:function(){return{randomSeed:(0,I.Z)(),input:void 0,caretEl:void 0,highlighted:-1,caret:0,focused:!1,blurTimeout:null,temporarilyHideSuggestions:!1,disableClickOutside:!1,suggestions:[],overlayStyle:{},pickerShown:!1}},components:{Popover:T.default,EmojiPicker:x.Z,UnicodeDomainIndicator:R.Z,ScreenReaderNotice:M},computed:{padEmoji:function(){return this.$store.getters.mergedConfig.padEmoji},defaultCandidateIndex:function(){return this.$store.getters.mergedConfig.autocompleteSelect?0:-1},preText:function(){return this.modelValue.slice(0,this.caret)},postText:function(){return this.modelValue.slice(this.caret)},showSuggestions:function(){return this.focused&&this.suggestions&&this.suggestions.length>0&&!this.pickerShown&&!this.temporarilyHideSuggestions},textAtCaret:function(){var e;return null===(e=this.wordAtCaret)||void 0===e?void 0:e.word},wordAtCaret:function(){if(this.modelValue&&this.caret)return z(this.modelValue,this.caret-1)||{}},languages:function(){return(0,N.ensureFinalFallback)(this.$store.getters.mergedConfig.interfaceLanguage)},maybeLocalizedEmojiNamesAndKeywords:function(){var e=this;return function(t){var n=[t.displayText],o=[];return t.displayTextI18n&&n.push(e.$t(t.displayTextI18n.key,t.displayTextI18n.args)),t.annotations&&e.languages.forEach((function(e){var r,i;n.push(null===(r=t.annotations[e])||void 0===r?void 0:r.name),o.push.apply(o,(0,y.Z)((null===(i=t.annotations[e])||void 0===i?void 0:i.keywords)||[]))})),{names:n.filter((function(e){return e})),keywords:o.filter((function(e){return e}))}}},maybeLocalizedEmojiName:function(){var e=this;return function(t){if(!t.annotations)return t.displayText;if(t.displayTextI18n)return e.$t(t.displayTextI18n.key,t.displayTextI18n.args);var n,o=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return G(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?G(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0,r=function(){};return{s:r,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,i=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw i}}}}(e.languages);try{for(o.s();!(n=o.n()).done;){var r,i=n.value;if(null!==(r=t.annotations[i])&&void 0!==r&&r.name)return t.annotations[i].name}}catch(e){o.e(e)}finally{o.f()}return t.displayText}},onInputScroll:function(){this.$refs.hiddenOverlay.scrollTo({top:this.input.scrollTop,left:this.input.scrollLeft})},suggestionListId:function(){return"suggestions-".concat(this.randomSeed)},suggestionItemId:function(){var e=this;return function(t){return"suggestion-item-".concat(t,"-").concat(e.randomSeed)}}},mounted:function(){var e=this.$refs,t=e.root,n=e.hiddenOverlayCaret,o=e.suggestorPopover,r=t.querySelector(".emoji-input > input")||t.querySelector(".emoji-input > textarea");if(r){this.input=r,this.caretEl=n,o.setAnchorEl?(o.setAnchorEl(this.caretEl),this.$refs.picker.setAnchorEl(this.caretEl)):console.warn("setAnchorEl not found, are we in a unit test?");var i=getComputedStyle(this.input);this.overlayStyle.padding=i.padding,this.overlayStyle.border=i.border,this.overlayStyle.margin=i.margin,this.overlayStyle.lineHeight=i.lineHeight,this.overlayStyle.fontFamily=i.fontFamily,this.overlayStyle.fontSize=i.fontSize,this.overlayStyle.wordWrap=i.wordWrap,this.overlayStyle.whiteSpace=i.whiteSpace,this.resize(),r.addEventListener("blur",this.onBlur),r.addEventListener("focus",this.onFocus),r.addEventListener("paste",this.onPaste),r.addEventListener("keyup",this.onKeyUp),r.addEventListener("keydown",this.onKeyDown),r.addEventListener("click",this.onClickInput),r.addEventListener("transitionend",this.onTransition),r.addEventListener("input",this.onInput),r.addEventListener("scroll",this.onInputScroll)}},unmounted:function(){var e=this.input;e&&(e.removeEventListener("blur",this.onBlur),e.removeEventListener("focus",this.onFocus),e.removeEventListener("paste",this.onPaste),e.removeEventListener("keyup",this.onKeyUp),e.removeEventListener("keydown",this.onKeyDown),e.removeEventListener("click",this.onClickInput),e.removeEventListener("transitionend",this.onTransition),e.removeEventListener("input",this.onInput),e.removeEventListener("scroll",this.onInputScroll))},watch:{showSuggestions:function(e,t){this.$emit("shown",e),e?this.$refs.suggestorPopover.showPopover():this.$refs.suggestorPopover.hidePopover()},textAtCaret:(L=(0,b.Z)(C().mark((function e(t){var n,o;return C().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(void 0!==t){e.next=2;break}return e.abrupt("return");case 2:if(n=t.charAt(0),t!==n){e.next=6;break}return this.suggestions=[],e.abrupt("return");case 6:return e.next=8,this.suggest(t,this.maybeLocalizedEmojiNamesAndKeywords);case 8:if(o=e.sent,!(this.textAtCaret!==t||o.length<=0)){e.next=12;break}return this.suggestions=[],e.abrupt("return");case 12:this.suggestions=_()(o,5).map((function(e){var t=e.imageUrl;return K(K({},(0,w.Z)(e,H)),{},{img:t||""})})),this.highlighted=this.defaultCandidateIndex,this.$refs.screenReaderNotice.announce(this.$tc("tool_tip.autocomplete_available",this.suggestions.length,{number:this.suggestions.length}));case 15:case"end":return e.stop()}}),e,this)}))),function(e){return L.apply(this,arguments)})},methods:{triggerShowPicker:function(){var e=this;this.$nextTick((function(){e.$refs.picker.showPicker(),e.scrollIntoView()})),this.disableClickOutside=!0,setTimeout((function(){e.disableClickOutside=!1}),0)},togglePicker:function(){this.input.focus(),this.pickerShown?this.$refs.picker.hidePicker():(this.scrollIntoView(),this.$refs.picker.showPicker(),this.$refs.picker.startEmojiLoad())},replace:function(e){var t=P(this.modelValue,this.wordAtCaret,e);this.$emit("update:modelValue",t),this.caret=0},insert:function(e){var t=e.insertion,n=e.keepOpen,o=e.surroundingSpace,r=void 0===o||o,i=this.modelValue.substring(0,this.caret)||"",s=this.modelValue.substring(this.caret)||"",a=/\s/,u=r&&!a.exec(i.slice(-1))&&i.length&&this.padEmoji>0?" ":"",c=r&&!a.exec(s[0])&&this.padEmoji?" ":"",l=[i,u,t,c,s].join("");this.$emit("update:modelValue",l);var d=this.caret+(t+c+u).length;n||this.input.focus(),this.$nextTick((function(){this.input.setSelectionRange(d,d),this.caret=d}))},replaceText:function(e,t){var n=this.suggestions.length||0;if(1!==this.textAtCaret.length&&(n>0||t)){var o=(t||this.suggestions[this.highlighted]).replacement,r=P(this.modelValue,this.wordAtCaret,o);this.$emit("update:modelValue",r),this.highlighted=0;var i=this.wordAtCaret.start+o.length;this.$nextTick((function(){this.input.focus(),this.input.setSelectionRange(i,i),this.caret=i})),e.preventDefault()}},cycleBackward:function(e){var t=this.suggestions.length||0;this.highlighted-=1,-1===this.highlighted?this.input.focus():this.highlighted<-1&&(this.highlighted=t-1),t>0&&e.preventDefault()},cycleForward:function(e){var t=this.suggestions.length||0;this.highlighted+=1,this.highlighted>=t&&(this.highlighted=-1,this.input.focus()),t>0&&e.preventDefault()},scrollIntoView:function(){var e=this,t=this.$refs.picker.$el,n=this.$el.closest(".sidebar-scroller")||this.$el.closest(".post-form-modal-view")||window,o=n===window?n.scrollY:n.scrollTop,r=o+(n===window?n.innerHeight:n.offsetHeight),i=t.offsetHeight+(0,q.y)(t,n).top,s=o+Math.max(0,i-r);n===window?n.scroll(0,s):n.scrollTop=s,this.$nextTick((function(){var t=e.input.offsetHeight,n=e.$refs.picker;n.$el.getBoundingClientRect().bottom>window.innerHeight&&(n.$el.style.top="auto",n.$el.style.bottom=t+"px")}))},onPickerShown:function(){this.pickerShown=!0},onPickerClosed:function(){this.pickerShown=!1},onBlur:function(e){var t=this;this.blurTimeout=setTimeout((function(){t.focused=!1,t.setCaret(e)}),200)},onClick:function(e,t){this.replaceText(e,t)},onFocus:function(e){this.blurTimeout&&(clearTimeout(this.blurTimeout),this.blurTimeout=null),this.focused=!0,this.setCaret(e),this.temporarilyHideSuggestions=!1},onKeyUp:function(e){var t=e.key;this.setCaret(e),this.temporarilyHideSuggestions="Escape"===t},onPaste:function(e){this.setCaret(e)},onKeyDown:function(e){var t=this,n=e.ctrlKey,o=e.shiftKey,r=e.key;this.newlineOnCtrlEnter&&n&&"Enter"===r&&(this.insert({insertion:"\n",surroundingSpace:!1}),e.stopPropagation(),e.preventDefault(),this.$nextTick((function(){t.input.blur(),t.input.focus()}))),this.temporarilyHideSuggestions||("Tab"===r&&(o?this.cycleBackward(e):this.cycleForward(e)),"ArrowUp"===r?this.cycleBackward(e):"ArrowDown"===r&&this.cycleForward(e),"Enter"===r&&(n||this.replaceText(e))),"Escape"===r&&(this.temporarilyHideSuggestions||this.input.focus())},onInput:function(e){this.setCaret(e),this.$emit("update:modelValue",e.target.value)},onStickerUploaded:function(e){this.$emit("sticker-uploaded",e)},onStickerUploadFailed:function(e){this.$emit("sticker-upload-Failed",e)},setCaret:function(e){var t=this,n=e.target.selectionStart;this.caret=n,this.$nextTick((function(){t.$refs.suggestorPopover.updateStyles()}))},resize:function(){},autoCompleteItemLabel:function(e){return e.user?e.displayText+" "+e.detailText:this.maybeLocalizedEmojiName(e)}}},J=(0,U.Z)(Y,[["render",function(e,t,n,v,w,b){var y=(0,o.up)("screen-reader-notice"),D=(0,o.up)("FAIcon"),_=(0,o.up)("EmojiPicker"),k=(0,o.up)("UnicodeDomainIndicator"),C=(0,o.up)("Popover");return(0,o.wg)(),(0,o.iD)("div",{ref:"root",class:(0,r.C_)(["emoji-input",{"with-picker":!e.hideEmojiButton}])},[(0,o.WI)(e.$slots,"default",{id:"textbox-"+e.randomSeed,ariaOwns:e.suggestionListId,ariaAutocomplete:"both",ariaExpanded:e.showSuggestions,ariaActivedescendant:e.showSuggestions&&-1!==e.highlighted?e.suggestionItemId(e.highlighted):""}),(0,o._)("div",{ref:"hiddenOverlay",class:"hidden-overlay",style:(0,r.j5)(e.overlayStyle),"aria-hidden":!0},[(0,o._)("span",null,(0,r.zw)(e.preText),1),(0,o._)("span",s,"x",512),(0,o._)("span",null,(0,r.zw)(e.postText),1)],4),(0,o.Wm)(y,{ref:"screenReaderNotice","aria-live":"assertive"},null,512),e.enableEmojiPicker?((0,o.wg)(),(0,o.iD)(o.HY,{key:0},[e.hideEmojiButton?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("button",{key:0,class:"button-unstyled emoji-picker-icon",type:"button",title:e.$t("emoji.add_emoji"),onClick:t[0]||(t[0]=(0,i.iM)((function(){return e.togglePicker&&e.togglePicker.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(D,{icon:["far","smile-beam"]})],8,a)),e.enableEmojiPicker?((0,o.wg)(),(0,o.j4)(_,{key:1,ref:"picker","enable-sticker-picker":e.enableStickerPicker,class:"emoji-picker-panel",onEmoji:e.insert,onStickerUploaded:e.onStickerUploaded,onStickerUploadFailed:e.onStickerUploadFailed,onShow:e.onPickerShown,onClose:e.onPickerClosed},null,8,["enable-sticker-picker","onEmoji","onStickerUploaded","onStickerUploadFailed","onShow","onClose"])):(0,o.kq)("",!0)],64)):(0,o.kq)("",!0),(0,o.Wm)(C,{ref:"suggestorPopover",class:"autocomplete-panel",placement:"bottom","trigger-attrs":{"aria-hidden":!0}},{content:(0,o.w5)((function(){return[(0,o._)("div",{id:e.suggestionListId,ref:"panel-body",class:"autocomplete-panel-body",role:"listbox"},[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.suggestions,(function(t,n){return(0,o.wg)(),(0,o.iD)("div",{id:e.suggestionItemId(n),key:n,class:(0,r.C_)(["autocomplete-item",{highlighted:n===e.highlighted}]),role:"option","aria-label":e.autoCompleteItemLabel(t),"aria-selected":n===e.highlighted,onClick:(0,i.iM)((function(n){return e.onClick(n,t)}),["stop","prevent"])},[(0,o._)("span",l,[t.img?((0,o.wg)(),(0,o.iD)("img",{key:0,src:t.img},null,8,d)):((0,o.wg)(),(0,o.iD)("span",p,(0,r.zw)(t.replacement),1))]),(0,o._)("div",m,[t.user?((0,o.wg)(),(0,o.iD)("span",h,[(0,o.Uk)((0,r.zw)(t.displayText),1),(0,o.Wm)(k,{user:t.user,at:!1},null,8,["user"])])):(0,o.kq)("",!0),t.user?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("span",f,(0,r.zw)(e.maybeLocalizedEmojiName(t)),1)),(0,o._)("span",g,(0,r.zw)(t.detailText),1)])],10,c)})),128))],8,u)]})),_:1},512)],2)}]])},91300:(e,t,n)=>{"use strict";n.d(t,{Z:()=>N});var o=n(66252),r=n(3577),i=n(49963),s={class:"heading"},a={ref:"header",class:"emoji-tabs"},u=["title","onClick"],c={key:0,class:"emoji-picker-header-image"},l={key:0,class:"additional-tabs"},d=["title"],p={key:0,class:"content"},m={class:"emoji-search"},h=["placeholder"],f={class:"emoji-group"},g={key:0,class:"emoji-group-title"},v=["title","onClick"],w={key:0,class:"emoji-picker-emoji -unicode"},b={class:"keep-open"},y={key:0,class:"stickers-content"},D=n(29439),_=n(4942),k=n(93433),C=n(8400),S=n.n(C),j=n(92742),F=n.n(j),A=n(23279),O=n.n(A),E=n(66141),z=n(84535),P=n(32140),I=n(8312),x=n(9382),T=n(84131);function $(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function B(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?$(Object(n),!0).forEach((function(t){(0,_.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):$(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function U(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return M(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?M(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0,r=function(){};return{s:r,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,i=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw i}}}}function M(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}x.vI.add(T.IA$,T.L4e,T.RKn,T.ctA,T.ILF,T.kQp,T.E1P,T.k0d,T.Elv,T.X8G,T.dT$,T.RrC);var L={"smileys-and-emotion":"smile","people-and-body":"user","animals-and-nature":"paw","food-and-drink":"ice-cream","travel-and-places":"bus",activities:"basketball-ball",objects:"lightbulb",symbols:"code",flags:"flag"},R=function(e,t,n){var o=[e.displayText,n(e)];return e.annotations&&t.forEach((function(t){var n,r,i=(null===(n=e.annotations[t])||void 0===n?void 0:n.keywords)||[],s=null===(r=e.annotations[t])||void 0===r?void 0:r.name;o.push.apply(o,(0,k.Z)(i.concat([s]).filter((function(e){return e}))))})),o};const q={props:{enableStickerPicker:{required:!1,type:Boolean,default:!1},hideCustomEmoji:{required:!1,type:Boolean,default:!1}},inject:["popoversZLayer"],data:function(){return{keyword:"",activeGroup:"custom",showingStickers:!1,groupsScrolledClass:"scrolled-top",keepOpen:!1,customEmojiTimeout:null,contentLoaded:!1,groupRefs:{},emojiRefs:{},filteredEmojiGroups:[],width:0}},components:{StickerPicker:(0,o.RC)((function(){return n.e(159).then(n.bind(n,30159))})),Checkbox:E.Z,StillImage:P.Z,Popover:z.default},methods:{showPicker:function(){this.$refs.popover.showPopover(),this.onShowing()},hidePicker:function(){this.$refs.popover.hidePopover()},setAnchorEl:function(e){this.$refs.popover.setAnchorEl(e)},setGroupRef:function(e){var t=this;return function(n){t.groupRefs[e]=n}},onPopoverShown:function(){this.$emit("show")},onPopoverClosed:function(){this.$emit("close")},onStickerUploaded:function(e){this.$emit("sticker-uploaded",e)},onStickerUploadFailed:function(e){this.$emit("sticker-upload-failed",e)},onEmoji:function(e){var t=e.imageUrl?":".concat(e.displayText,":"):e.replacement;this.keepOpen||this.$refs.popover.hidePopover(),this.$emit("emoji",{insertion:t,keepOpen:this.keepOpen})},onScroll:function(e,t,n,o){var r=this.$refs["emoji-groups"].$el;this.scrolledGroup(r,n,o)},scrolledGroup:function(e,t,n){var o=this,r=e.scrollTop+5;this.$nextTick((function(){o.emojiItems.slice(t,n+1).forEach((function(e){var t=e.id.replace(/^row-\d+-/,""),n=o.groupRefs["group-"+e.id];if(n){var i=n.$el.parentElement;i&&i&&function(e){var t=e.style.transform,n=/translateY\((\d+)px\)/.exec(t);return n?n[1]:0}(i)<=r&&(o.activeGroup=t)}})),o.scrollHeader()}))},scrollHeader:function(){var e=this.groupRefs["group-header-"+this.activeGroup],t=e.offsetLeft,n=t+e.offsetWidth,o=this.$refs.header,r=o.scrollLeft,i=r+o.clientWidth,s=function(e){o.scrollLeft=e};t-7<r?s(t-7):n+7>i&&s(n+7-o.clientWidth)},highlight:function(e){this.setShowStickers(!1);var t=this.emojiItems.findIndex((function(t){return t.id===e}));this.$refs["emoji-groups"].scrollToItem(t)},updateScrolledClass:function(e){e.scrollTop<=5?this.groupsScrolledClass="scrolled-top":e.scrollTop>=e.scrollTopMax-5?this.groupsScrolledClass="scrolled-bottom":this.groupsScrolledClass="scrolled-middle"},toggleStickers:function(){this.showingStickers=!this.showingStickers},setShowStickers:function(e){this.showingStickers=e},filterByKeyword:function(e,t){return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2?arguments[2]:void 0,o=arguments.length>3?arguments[3]:void 0;if(""===t)return e;var r,i=t.toLowerCase(),s=[],a=U(e);try{for(a.s();!(r=a.n()).done;){var u=r.value,c=R(u,n,o).map((function(e){return e.toLowerCase().indexOf(i)})).filter((function(e){return e>-1})),l=c.length?Math.min.apply(Math,(0,k.Z)(c)):-1;l>-1&&(Array.isArray(s[l])||(s[l]=[]),s[l].push(u))}}catch(e){a.e(e)}finally{a.f()}return s.flat()}(e,t,this.languages,this.maybeLocalizedEmojiName)},onShowing:function(){var e=this,t=this.contentLoaded;this.recalculateItemPerRow(),this.$nextTick((function(){e.$refs.search.focus()})),this.contentLoaded=!0,this.filteredEmojiGroups=this.getFilteredEmojiGroups(),t||this.$nextTick((function(){e.defaultGroup&&e.highlight(e.defaultGroup)}))},getFilteredEmojiGroups:function(){var e=this;return this.allEmojiGroups.map((function(t){return B(B({},t),{},{emojis:e.filterByKeyword(t.emojis,F()(e.keyword))})})).filter((function(e){return e.emojis.length>0}))},recalculateItemPerRow:function(){var e=this;this.$nextTick((function(){e.$refs["emoji-groups"]&&(e.width=e.$refs["emoji-groups"].$el.clientWidth)}))}},watch:{keyword:function(){this.onScroll(),this.debouncedHandleKeywordChange()},allCustomGroups:function(){this.filteredEmojiGroups=this.getFilteredEmojiGroups()}},computed:{minItemSize:function(){return this.emojiHeight},emojiHeight:function(){return 36},emojiWidth:function(){return 36},itemPerRow:function(){return this.width?Math.floor(this.width/this.emojiWidth-1):6},activeGroupView:function(){return this.showingStickers?"":this.activeGroup},stickersAvailable:function(){return this.$store.state.instance.stickers?this.$store.state.instance.stickers.length>0:0},allCustomGroups:function(){if(this.hideCustomEmoji)return{};var e=this.$store.getters.groupedCustomEmojis;return e.unpacked&&(e.unpacked.text=this.$t("emoji.unpacked")),e},defaultGroup:function(){return Object.keys(this.allCustomGroups)[0]},unicodeEmojiGroups:function(){var e=this;return this.$store.getters.standardEmojiGroupList.map((function(t){return{id:"standard-".concat(t.id),text:e.$t("emoji.unicode_groups.".concat(t.id)),icon:L[t.id],emojis:t.emojis}}))},allEmojiGroups:function(){return Object.entries(this.allCustomGroups).map((function(e){var t=(0,D.Z)(e,2);return t[0],t[1]})).concat(this.unicodeEmojiGroups)},stickerPickerEnabled:function(){return 0!==(this.$store.state.instance.stickers||[]).length},debouncedHandleKeywordChange:function(){var e=this;return O()((function(){e.filteredEmojiGroups=e.getFilteredEmojiGroups()}),500)},emojiItems:function(){var e=this;return this.filteredEmojiGroups.map((function(t){return S()(t.emojis,e.itemPerRow).map((function(e,n){return B(B({},t),{},{id:0===n?t.id:"row-".concat(n,"-").concat(t.id),emojis:e,isFirstRow:0===n})}))})).reduce((function(e,t){return e.concat(t)}),[])},languages:function(){return(0,I.ensureFinalFallback)(this.$store.getters.mergedConfig.interfaceLanguage)},maybeLocalizedEmojiName:function(){var e=this;return function(t){if(!t.annotations)return t.displayText;if(t.displayTextI18n)return e.$t(t.displayTextI18n.key,t.displayTextI18n.args);var n,o=U(e.languages);try{for(o.s();!(n=o.n()).done;){var r,i=n.value;if(null!==(r=t.annotations[i])&&void 0!==r&&r.name)return t.annotations[i].name}}catch(e){o.e(e)}finally{o.f()}return t.displayText}},isInModal:function(){return"modals"===this.popoversZLayer}}},N=(0,n(83744).Z)(q,[["render",function(e,t,n,D,_,k){var C=(0,o.up)("still-image"),S=(0,o.up)("FAIcon"),j=(0,o.up)("DynamicScrollerItem"),F=(0,o.up)("DynamicScroller"),A=(0,o.up)("Checkbox"),O=(0,o.up)("sticker-picker"),E=(0,o.up)("Popover"),z=(0,o.Q2)("body-scroll-lock");return(0,o.wg)(),(0,o.j4)(E,{ref:"popover",trigger:"click","popover-class":"emoji-picker popover-default","trigger-attrs":{"aria-hidden":!0,tabindex:-1},onShow:e.onPopoverShown,onClose:e.onPopoverClosed},{content:(0,o.w5)((function(){return[(0,o._)("div",s,[(0,o.wy)(((0,o.wg)(),(0,o.iD)("span",a,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.filteredEmojiGroups,(function(t){return(0,o.wg)(),(0,o.iD)("span",{ref_for:!0,ref:e.setGroupRef("group-header-"+t.id),key:t.id,class:(0,r.C_)(["emoji-tabs-item",{active:e.activeGroupView===t.id}]),title:t.text,role:"button",onClick:(0,i.iM)((function(n){return e.highlight(t.id)}),["prevent"])},[t.image?((0,o.wg)(),(0,o.iD)("span",c,[(0,o.Wm)(C,{alt:t.text,src:t.image},null,8,["alt","src"])])):((0,o.wg)(),(0,o.j4)(S,{key:1,icon:t.icon,"fixed-width":""},null,8,["icon"]))],10,u)})),128))])),[[z,e.isInModal]]),e.stickerPickerEnabled?((0,o.wg)(),(0,o.iD)("span",l,[(0,o._)("span",{class:(0,r.C_)(["stickers-tab-icon additional-tabs-item",{active:e.showingStickers}]),title:e.$t("emoji.stickers"),onClick:t[0]||(t[0]=(0,i.iM)((function(){return e.toggleStickers&&e.toggleStickers.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(S,{icon:"sticky-note","fixed-width":""})],10,d)])):(0,o.kq)("",!0)]),e.contentLoaded?((0,o.wg)(),(0,o.iD)("div",p,[(0,o._)("div",{class:(0,r.C_)(["emoji-content",{hidden:e.showingStickers}])},[(0,o._)("div",m,[(0,o.wy)((0,o._)("input",{ref:"search","onUpdate:modelValue":t[1]||(t[1]=function(t){return e.keyword=t}),type:"text",class:"form-control",placeholder:e.$t("emoji.search_emoji"),onInput:t[2]||(t[2]=function(e){return e.target.composing=!1})},null,40,h),[[i.nr,e.keyword]])]),(0,o.wy)(((0,o.wg)(),(0,o.j4)(F,{ref:"emoji-groups",class:(0,r.C_)(["emoji-groups",e.groupsScrolledClass]),"min-item-size":e.minItemSize,items:e.emojiItems,"emit-update":!0,onUpdate:e.onScroll,onVisible:e.recalculateItemPerRow,onResize:e.recalculateItemPerRow},{default:(0,o.w5)((function(t){var n=t.item,s=t.index,a=t.active;return[(0,o.Wm)(j,{ref:e.setGroupRef("group-"+n.id),item:n,active:a,"data-index":s,"size-dependencies":[n.emojis.length]},{default:(0,o.w5)((function(){return[(0,o._)("div",f,[n.isFirstRow?((0,o.wg)(),(0,o.iD)("h6",g,(0,r.zw)(n.text),1)):(0,o.kq)("",!0),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(n.emojis,(function(t){return(0,o.wg)(),(0,o.iD)("span",{key:n.id+t.displayText,title:e.maybeLocalizedEmojiName(t),class:"emoji-item",role:"button",onClick:(0,i.iM)((function(n){return e.onEmoji(t)}),["stop","prevent"])},[t.imageUrl?((0,o.wg)(),(0,o.j4)(C,{key:1,class:"emoji-picker-emoji -custom",loading:"lazy",alt:e.maybeLocalizedEmojiName(t),src:t.imageUrl,"data-emoji-name":n.id+t.displayText},null,8,["alt","src","data-emoji-name"])):((0,o.wg)(),(0,o.iD)("span",w,(0,r.zw)(t.replacement),1))],8,v)})),128))])]})),_:2},1032,["item","active","data-index","size-dependencies"])]})),_:1},8,["class","min-item-size","items","onUpdate","onVisible","onResize"])),[[z,e.isInModal]]),(0,o._)("div",b,[(0,o.Wm)(A,{modelValue:e.keepOpen,"onUpdate:modelValue":t[3]||(t[3]=function(t){return e.keepOpen=t})},{default:(0,o.w5)((function(){return[(0,o.Uk)((0,r.zw)(e.$t("emoji.keep_open")),1)]})),_:1},8,["modelValue"])])],2),e.showingStickers?((0,o.wg)(),(0,o.iD)("div",y,[(0,o.Wm)(O,{onUploaded:e.onStickerUploaded,onUploadFailed:e.onStickerUploadFailed},null,8,["onUploaded","onUploadFailed"])])):(0,o.kq)("",!0)])):(0,o.kq)("",!0)]})),_:1},8,["onShow","onClose"])}]])},72884:(e,t,n)=>{"use strict";n.d(t,{Z:()=>h});var o,r=n(66252),i=n(3577),s={class:"Flash"},a={key:0,class:"label"},u={key:1,class:"label"},c={key:2,class:"label"};const l=(o=null,{getRuffle:function(){return new Promise((function(e,t){if(o)e(o);else{window.RufflePlayer={},window.RufflePlayer.config={polyfills:!1,publicPath:"/static/ruffle"};var n=document.createElement("script");n.src="/static/ruffle/ruffle.js",n.type="text/javascript",n.onerror=function(e){t(e)},n.onabort=function(e){t(e)},n.oncancel=function(e){t(e)},n.onload=function(){o=window.RufflePlayer,e(o)},document.body.appendChild(n)}}))}});var d=n(9382),p=n(84131);d.vI.add(p.Bg$,p.eHv);const m={props:["src"],data:function(){return{player:!1,loaded:!1,ruffleInstance:null}},methods:{openPlayer:function(){var e=this;this.player||(this.player="hidden",l.getRuffle().then((function(t){var n=t.newest().createPlayer();n.config={letterbox:"on"},e.$refs.container.appendChild(n),n.style.width="100%",n.style.height="100%",n.load(e.src).then((function(){e.player=!0})).catch((function(t){console.error("Error loading ruffle",t),e.player="error"})),e.ruffleInstance=n,e.$emit("playerOpened")})))},closePlayer:function(){this.ruffleInstance&&this.ruffleInstance.remove(),this.player=!1,this.$emit("playerClosed")}}},h=(0,n(83744).Z)(m,[["render",function(e,t,n,o,l,d){var p=(0,r.up)("FAIcon");return(0,r.wg)(),(0,r.iD)("div",s,[!0===e.player||"hidden"===e.player?((0,r.wg)(),(0,r.iD)("div",{key:0,ref:"container",class:(0,i.C_)(["player",{hidden:"hidden"===e.player}])},null,2)):(0,r.kq)("",!0),!0!==e.player?((0,r.wg)(),(0,r.iD)("button",{key:1,class:"button-unstyled placeholder",onClick:t[0]||(t[0]=function(){return e.openPlayer&&e.openPlayer.apply(e,arguments)})},["hidden"===e.player?((0,r.wg)(),(0,r.iD)("span",a,(0,i.zw)(e.$t("general.loading")),1)):(0,r.kq)("",!0),"error"===e.player?((0,r.wg)(),(0,r.iD)("span",u,(0,i.zw)(e.$t("general.flash_fail")),1)):((0,r.wg)(),(0,r.iD)("span",c,[(0,r._)("p",null,(0,i.zw)(e.$t("general.flash_content")),1),(0,r._)("p",null,[(0,r.Wm)(p,{icon:"exclamation-triangle"}),(0,r.Uk)(" "+(0,i.zw)(e.$t("general.flash_security")),1)])]))])):(0,r.kq)("",!0)])}]])},34837:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var o=n(66252),r=n(3577),i=["disabled","title"],s=["textContent"],a=n(1447),u=n(29439),c=function e(t,n,o){return new Promise((function(e,r){setTimeout((function(){o.state.api.backendInteractor.fetchUserRelationship({id:n}).then((function(e){return o.commit("updateUserRelationship",[e]),e})).then((function(n){return e([n.following,n.requested,n.locked,t])})).catch((function(e){return r(e)}))}),500)})).then((function(t){var r=(0,u.Z)(t,4),i=r[0],s=r[1],a=r[2],c=r[3];i||a&&s||!(c<=3)||e(++c,n,o)}))},l=function(e,t){return new Promise((function(n,o){t.state.api.backendInteractor.followUser({id:e}).then((function(e){if(t.commit("updateUserRelationship",[e]),!(e.following||e.locked&&e.requested))return c(1,e,t).then((function(){n()}));n()}))}))};const d={props:["relationship","user","labelFollowing","buttonClass"],components:{ConfirmModal:a.Z},data:function(){return{inProgress:!1,showingConfirmUnfollow:!1}},computed:{shouldConfirmUnfollow:function(){return this.$store.getters.mergedConfig.modalOnUnfollow},isPressed:function(){return this.inProgress||this.relationship.following},title:function(){return this.inProgress||this.relationship.following?this.$t("user_card.follow_unfollow"):this.relationship.requested?this.$t("user_card.follow_cancel"):this.$t("user_card.follow")},label:function(){return this.inProgress?this.$t("user_card.follow_progress"):this.relationship.following?this.labelFollowing||this.$t("user_card.following"):this.relationship.requested?this.$t("user_card.follow_sent"):this.$t("user_card.follow")},disabled:function(){return this.inProgress||this.user.deactivated}},methods:{showConfirmUnfollow:function(){this.showingConfirmUnfollow=!0},hideConfirmUnfollow:function(){this.showingConfirmUnfollow=!1},onClick:function(){this.relationship.following||this.relationship.requested?this.unfollow():this.follow()},follow:function(){var e=this;this.inProgress=!0,l(this.relationship.id,this.$store).then((function(){e.inProgress=!1}))},unfollow:function(){this.shouldConfirmUnfollow?this.showConfirmUnfollow():this.doUnfollow()},doUnfollow:function(){var e=this,t=this.$store;this.inProgress=!0,function(e,t){return new Promise((function(n,o){t.state.api.backendInteractor.unfollowUser({id:e}).then((function(e){t.commit("updateUserRelationship",[e]),n({updated:e})}))}))}(this.relationship.id,t).then((function(){e.inProgress=!1,t.commit("removeStatus",{timeline:"friends",userId:e.relationship.id})})),this.hideConfirmUnfollow()}}},p=(0,n(83744).Z)(d,[["render",function(e,t,n,a,u,c){var l=(0,o.up)("i18n-t"),d=(0,o.up)("confirm-modal");return(0,o.wg)(),(0,o.iD)("button",{class:(0,r.C_)(["btn button-default follow-button",{toggled:e.isPressed}]),disabled:e.disabled,title:e.title,onClick:t[0]||(t[0]=function(){return e.onClick&&e.onClick.apply(e,arguments)})},[(0,o.Uk)((0,r.zw)(e.label)+" ",1),((0,o.wg)(),(0,o.j4)(o.lR,{to:"#modal"},[e.showingConfirmUnfollow?((0,o.wg)(),(0,o.j4)(d,{key:0,title:e.$t("user_card.unfollow_confirm_title"),"confirm-text":e.$t("user_card.unfollow_confirm_accept_button"),"cancel-text":e.$t("user_card.unfollow_confirm_cancel_button"),onAccepted:e.doUnfollow,onCancelled:e.hideConfirmUnfollow},{default:(0,o.w5)((function(){return[(0,o.Wm)(l,{keypath:"user_card.unfollow_confirm",tag:"span"},{user:(0,o.w5)((function(){return[(0,o._)("span",{textContent:(0,r.zw)(e.user.screen_name_ui)},null,8,s)]})),_:1})]})),_:1},8,["title","confirm-text","cancel-text","onAccepted","onCancelled"])):(0,o.kq)("",!0)]))],10,i)}]])},67671:(e,t,n)=>{"use strict";n.d(t,{Z:()=>w});var o=n(66252),r=n(3577),i={class:"gallery-rows"},s={key:0,class:"many-attachments"},a={class:"many-attachments-text"},u={class:"many-attachments-buttons"},c={key:0,class:"many-attachments-button"},l={key:1,class:"many-attachments-button"},d={key:2,class:"many-attachments-button"},p=n(93433),m=n(36968),h=n.n(m),f=n(73303),g=n.n(f);const v={props:["attachments","compact","limitRows","descriptions","limit","nsfw","setMedia","size","editable","removeAttachment","shiftUpAttachment","shiftDnAttachment","editAttachment","grid"],data:function(){return{sizes:{},hidingLong:!0}},components:{Attachment:n(66596).Z},computed:{rows:function(){var e=this;if(!this.attachments)return[];var t=this.limit>0?this.attachments.slice(0,this.limit):this.attachments;return"hide"===this.size?t.map((function(e){return{minimal:!0,items:[e]}})):this.grid?[{grid:!0,items:t}]:t.reduce((function(t,n,o){if(n.mimetype.includes("audio"))return[].concat((0,p.Z)(t),[{audio:!0,items:[n]},{items:[]}]);if(!(n.mimetype.includes("image")||n.mimetype.includes("video")||n.mimetype.includes("flash")))return[].concat((0,p.Z)(t),[{minimal:!0,items:[n]},{items:[]}]);var r=e.attachments.length-o+1,i=t[t.length-1].items;return i.push(n),i.length>=3&&r>3?[].concat((0,p.Z)(t),[{items:[]}]):t}),[{items:[]}]).filter((function(e){return e.items.length>0}))},attachmentsDimensionalScore:function(){return this.rows.reduce((function(e,t){var n=0;return t.minimal?n+=1/8:t.audio?n+=1/4:n+=1/(t.items.length+.6),e+n}),0)},tooManyAttachments:function(){return!this.editable&&"small"!==this.size&&("hide"===this.size?this.attachments.length>8:this.attachmentsDimensionalScore>1)}},methods:{onNaturalSizeLoad:function(e){var t=e.id,n=e.width,o=e.height;h()(this.sizes,t,{width:n,height:o})},rowStyle:function(e){return e.audio?{"padding-bottom":"25%"}:e.minimal||e.grid?void 0:{"padding-bottom":"".concat(100/(e.items.length+.6),"%")}},itemStyle:function(e,t){var n=this,o=g()(t,(function(e){return n.getAspectRatio(e.id)}));return{flex:"".concat(this.getAspectRatio(e)/o," 1 0%")}},getAspectRatio:function(e){var t=this.sizes[e];return t?t.width/t.height:1},toggleHidingLong:function(e){this.hidingLong=e},openGallery:function(){this.$store.dispatch("setMedia",this.attachments),this.$store.dispatch("setCurrentMedia",this.attachments[0])},onMedia:function(){this.$store.dispatch("setMedia",this.attachments)}}},w=(0,n(83744).Z)(v,[["render",function(e,t,n,p,m,h){var f=(0,o.up)("Attachment");return(0,o.wg)(),(0,o.iD)("div",{ref:"galleryContainer",class:(0,r.C_)(["Gallery",{"-long":e.tooManyAttachments&&e.hidingLong}])},[(0,o._)("div",i,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.rows,(function(t,n){return(0,o.wg)(),(0,o.iD)("div",{key:n,class:(0,r.C_)(["gallery-row",{"-audio":t.audio,"-minimal":t.minimal,"-grid":e.grid}]),style:(0,r.j5)(e.rowStyle(t))},[(0,o._)("div",{class:(0,r.C_)(["gallery-row-inner",{"-grid":e.grid}])},[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(t.items,(function(i,s){return(0,o.wg)(),(0,o.j4)(f,{key:i.id,class:"gallery-item",compact:e.compact,nsfw:e.nsfw,attachment:i,size:e.size,editable:e.editable,remove:e.removeAttachment,"shift-up":!(0===s&&0===n)&&e.shiftUpAttachment,"shift-dn":!(s===t.items.length-1&&n===e.rows.length-1)&&e.shiftDnAttachment,edit:e.editAttachment,description:e.descriptions&&e.descriptions[i.id],"hide-description":"small"===e.size||e.tooManyAttachments&&e.hidingLong,style:(0,r.j5)(e.itemStyle(i.id,t.items)),onSetMedia:e.onMedia,onNaturalSizeLoad:e.onNaturalSizeLoad},null,8,["compact","nsfw","attachment","size","editable","remove","shift-up","shift-dn","edit","description","hide-description","style","onSetMedia","onNaturalSizeLoad"])})),128))],2)],6)})),128))]),e.tooManyAttachments?((0,o.wg)(),(0,o.iD)("div",s,[(0,o._)("div",a,(0,r.zw)(e.$t("status.many_attachments",{number:e.attachments.length})),1),(0,o._)("div",u,[e.hidingLong?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("span",c,[(0,o._)("button",{class:"button-unstyled -link",onClick:t[0]||(t[0]=function(t){return e.toggleHidingLong(!0)})},(0,r.zw)(e.$t("status.collapse_attachments")),1)])),e.hidingLong?((0,o.wg)(),(0,o.iD)("span",l,[(0,o._)("button",{class:"button-unstyled -link",onClick:t[1]||(t[1]=function(t){return e.toggleHidingLong(!1)})},(0,r.zw)(e.$t("status.show_all_attachments")),1)])):(0,o.kq)("",!0),e.hidingLong?((0,o.wg)(),(0,o.iD)("span",d,[(0,o._)("button",{class:"button-unstyled -link",onClick:t[2]||(t[2]=function(){return e.openGallery&&e.openGallery.apply(e,arguments)})},(0,r.zw)(e.$t("status.open_gallery")),1)])):(0,o.kq)("",!0)])])):(0,o.kq)("",!0)],2)}]])},86269:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var o=n(66252),r=n(3577),i={class:"interface-language-switcher"},s={class:"setting-list"},a=["value"],u=["onClick"],c=n(93433),l=n(39776);const d={components:{Select:n(76990).Z},props:{promptText:{type:String,required:!0},language:{type:[Array,String],required:!0},setLanguage:{type:Function,required:!0}},computed:{languages:function(){return l.Z.languages},controlledLanguage:{get:function(){return Array.isArray(this.language)?this.language:[this.language]},set:function(e){this.setLanguage(e)}}},methods:{getLanguageName:function(e){return l.Z.getLanguageName(e)},addLanguage:function(){this.controlledLanguage=[].concat((0,c.Z)(this.controlledLanguage),[""])},setLanguageAt:function(e,t){var n=(0,c.Z)(this.controlledLanguage);n[e]=t,this.controlledLanguage=n},removeLanguageAt:function(e){var t=(0,c.Z)(this.controlledLanguage);t.splice(e,1),this.controlledLanguage=t}}},p=(0,n(83744).Z)(d,[["render",function(e,t,n,c,l,d){var p=(0,o.up)("Select");return(0,o.wg)(),(0,o.iD)("div",i,[(0,o._)("label",null,(0,r.zw)(n.promptText),1),(0,o._)("ul",s,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(d.controlledLanguage.keys(),(function(t){return(0,o.wg)(),(0,o.iD)("li",{key:t},[(0,o._)("label",null,[(0,o.Uk)((0,r.zw)(0===t?e.$t("settings.primary_language"):e.$tc("settings.fallback_language",t,{index:t}))+" ",1),(0,o.Wm)(p,{class:"language-select","model-value":d.controlledLanguage[t],"onUpdate:modelValue":function(e){return d.setLanguageAt(t,e)}},{default:(0,o.w5)((function(){return[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(d.languages,(function(e){return(0,o.wg)(),(0,o.iD)("option",{key:e.code,value:e.code},(0,r.zw)(e.name),9,a)})),128))]})),_:2},1032,["model-value","onUpdate:modelValue"])]),d.controlledLanguage.length>1&&0!==t?((0,o.wg)(),(0,o.iD)("button",{key:0,class:"button-default btn",onClick:function(){return d.removeLanguageAt(t)}},(0,r.zw)(e.$t("settings.remove_language")),9,u)):(0,o.kq)("",!0)])})),128)),(0,o._)("li",null,[(0,o._)("button",{class:"button-default btn",onClick:t[0]||(t[0]=function(){return d.addLanguage&&d.addLanguage.apply(d,arguments)})},(0,r.zw)(e.$t("settings.add_language")),1)])])])}]])},92798:(e,t,n)=>{"use strict";n.d(t,{Z:()=>g});var o=n(66252),r=n(3577),i=["href"],s={key:0,class:"card-image"},a=["src"],u={class:"card-content"},c={class:"card-host faint"},l={key:0,class:"nsfw-alert alert warning"},d={class:"card-title"},p={key:0,class:"card-description"},m=n(4942);function h(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}const f={name:"LinkPreview",props:["card","size","nsfw"],data:function(){return{imageLoaded:!1}},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?h(Object(n),!0).forEach((function(t){(0,m.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):h(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({useImage:function(){return this.card.image&&!this.censored&&"hide"!==this.size},censored:function(){return this.nsfw&&this.hideNsfwConfig},useDescription:function(){return this.card.description&&/\S/.test(this.card.description)},hideNsfwConfig:function(){return this.mergedConfig.hideNsfw}},(0,n(989).Se)(["mergedConfig"])),created:function(){var e=this;if(this.useImage){var t=new Image;t.onload=function(){e.imageLoaded=!0},t.src=this.card.image}}},g=(0,n(83744).Z)(f,[["render",function(e,t,n,m,h,f){return(0,o.wg)(),(0,o.iD)("div",null,[(0,o._)("a",{class:"link-preview-card",href:e.card.url,target:"_blank",rel:"noopener"},[e.useImage&&e.imageLoaded?((0,o.wg)(),(0,o.iD)("div",s,[(0,o._)("img",{src:e.card.image},null,8,a)])):(0,o.kq)("",!0),(0,o._)("div",u,[(0,o._)("span",c,[e.censored?((0,o.wg)(),(0,o.iD)("span",l,(0,r.zw)(e.$t("status.nsfw")),1)):(0,o.kq)("",!0),(0,o.Uk)(" "+(0,r.zw)(e.card.provider_name),1)]),(0,o._)("h4",d,(0,r.zw)(e.card.title),1),e.useDescription?((0,o.wg)(),(0,o.iD)("p",p,(0,r.zw)(e.card.description),1)):(0,o.kq)("",!0)])],8,i)])}]])},88369:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var o=n(66252),r={class:"list",role:"list"},i={key:0,class:"list-empty-content faint"};const s={props:{items:{type:Array,default:function(){return[]}},getKey:{type:Function,default:function(e){return e.id}}}},a=(0,n(83744).Z)(s,[["render",function(e,t,n,s,a,u){return(0,o.wg)(),(0,o.iD)("div",r,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(n.items,(function(t){return(0,o.wg)(),(0,o.iD)("div",{key:n.getKey(t),class:"list-item",role:"listitem"},[(0,o.WI)(e.$slots,"item",{item:t})])})),128)),0===n.items.length&&e.$slots.empty?((0,o.wg)(),(0,o.iD)("div",i,[(0,o.WI)(e.$slots,"empty")])):(0,o.kq)("",!0)])}]])},37804:(e,t,n)=>{"use strict";n.d(t,{Z:()=>m});var o=n(66252),r=n(3577),i=["title"],s=["disabled","accept"],a=n(7257),u=n(65079),c=n(9382),l=n(84131);function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,o=new Array(t);n<t;n++)o[n]=e[n];return o}c.vI.add(l.cf$,l.IJ7);const p={data:function(){return{uploadCount:0,uploadReady:!0}},computed:{uploading:function(){return this.uploadCount>0}},methods:{onClick:function(){this.uploadReady&&this.$refs.input.click()},uploadFile:function(e){var t=this,n=this.$store;if(e.size>n.state.instance.uploadlimit){var o=u.Z.fileSizeFormat(e.size),r=u.Z.fileSizeFormat(n.state.instance.uploadlimit);t.$emit("upload-failed","file_too_big",{filesize:o.num,filesizeunit:o.unit,allowedsize:r.num,allowedsizeunit:r.unit})}else{var i=new FormData;i.append("file",e),t.$emit("uploading"),t.uploadCount++,a.Z.uploadMedia({store:n,formData:i}).then((function(e){t.$emit("uploaded",e),t.decreaseUploadCount()}),(function(e){console.error("Error uploading file",e),t.$emit("upload-failed","default"),t.decreaseUploadCount()}))}},decreaseUploadCount:function(){this.uploadCount--,0===this.uploadCount&&this.$emit("all-uploaded")},clearFile:function(){var e=this;this.uploadReady=!1,this.$nextTick((function(){e.uploadReady=!0}))},multiUpload:function(e){var t,n=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return d(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?d(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var o=0,r=function(){};return{s:r,n:function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,s=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return s=e.done,e},e:function(e){a=!0,i=e},f:function(){try{s||null==n.return||n.return()}finally{if(a)throw i}}}}(e);try{for(n.s();!(t=n.n()).done;){var o=t.value;this.uploadFile(o)}}catch(e){n.e(e)}finally{n.f()}},change:function(e){var t=e.target;this.multiUpload(t.files)}},props:{dropFiles:Object,disabled:Boolean,normalButton:Boolean,acceptTypes:{type:String,default:"*/*"}},watch:{dropFiles:function(e){this.uploading||this.multiUpload(e)}}},m=(0,n(83744).Z)(p,[["render",function(e,t,n,a,u,c){var l=(0,o.up)("FAIcon");return(0,o.wg)(),(0,o.iD)("button",{class:(0,r.C_)(["media-upload",[e.normalButton?"button-default btn":"button-unstyled",{disabled:e.disabled}]]),title:e.$t("tool_tip.media_upload"),onClick:t[1]||(t[1]=function(){return e.onClick&&e.onClick.apply(e,arguments)})},[e.uploading?((0,o.wg)(),(0,o.j4)(l,{key:0,class:"progress-icon",icon:"circle-notch",spin:""})):(0,o.kq)("",!0),e.uploading?(0,o.kq)("",!0):((0,o.wg)(),(0,o.j4)(l,{key:1,class:"new-icon",icon:"upload"})),e.normalButton?((0,o.wg)(),(0,o.iD)(o.HY,{key:2},[(0,o.Uk)((0,r.zw)(" ")+" "+(0,r.zw)(e.uploading?e.$t("general.loading"):e.$t("tool_tip.media_upload")),1)],64)):(0,o.kq)("",!0),e.uploadReady?((0,o.wg)(),(0,o.iD)("input",{key:3,ref:"input",class:"hidden-input-file",disabled:e.disabled,type:"file",multiple:"true",accept:e.acceptTypes,onChange:t[0]||(t[0]=function(){return e.change&&e.change.apply(e,arguments)})},null,40,s)):(0,o.kq)("",!0)],10,i)}]])},20460:(e,t,n)=>{"use strict";n.d(t,{Z:()=>A});var o=n(66252),r=n(3577),i=n(49963),s={class:"MentionLink"},a=["href","innerHTML"],u=["href"],c={class:"shortName"},l=["innerHTML"],d=["innerHTML"],p={ref:"full",class:"full"},m=["innerHTML"],h=["innerHTML"],f=n(44925),g=n(4942),v=n(4493),w=n(989),b=n(95052),y=n(48173),D=n(42262),_=n(9382),k=n(84131),C=["backgroundColor","backgroundPosition","backgroundImage"];function S(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function j(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?S(Object(n),!0).forEach((function(t){(0,g.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):S(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}_.vI.add(k.IBq);const F={name:"MentionLink",components:{UserAvatar:y.default,UnicodeDomainIndicator:D.Z,UserPopover:(0,o.RC)((function(){return Promise.resolve().then(n.bind(n,22588))}))},props:{url:{required:!0,type:String},content:{required:!0,type:String},userId:{required:!1,type:String},userScreenName:{required:!1,type:String}},data:function(){return{hasSelection:!1}},methods:{onClick:function(){if(!this.shouldShowTooltip){var e=(0,v.Z)(this.userId||this.user.id,this.userScreenName||this.user.screen_name);this.$router.push(e)}},handleSelection:function(){this.hasSelection=document.getSelection().containsNode(this.$refs.full,!0)}},mounted:function(){document.addEventListener("selectionchange",this.handleSelection)},unmounted:function(){document.removeEventListener("selectionchange",this.handleSelection)},computed:j(j({user:function(){return this.url&&this.$store&&this.$store.getters.findUserByUrl(this.url)},isYou:function(){return this.user&&this.user.id===this.currentUser.id},userName:function(){return this.user&&this.userNameFullUi.split("@")[0]},serverName:function(){return this.user&&(this.userNameFullUi.split("@")[1]||this.$store.getters.instanceDomain)},userNameFull:function(){return this.user&&this.user.screen_name},userNameFullUi:function(){return this.user&&this.user.screen_name_ui},highlight:function(){return this.user&&this.mergedConfig.highlight[this.user.screen_name]},highlightType:function(){return this.highlight&&"-"+this.highlight.type},highlightClass:function(){if(this.highlight)return(0,b.M)(this.user)},style:function(){if(this.highlight){var e=(0,b.q)(this.highlight);return e.backgroundColor,e.backgroundPosition,e.backgroundImage,(0,f.Z)(e,C)}},classnames:function(){return[{"-you":this.isYou&&this.shouldBoldenYou,"-highlighted":this.highlight,"-has-selection":this.hasSelection},this.highlightType]},useAtIcon:function(){return this.mergedConfig.useAtIcon},isRemote:function(){return this.userName!==this.userNameFull},shouldShowFullUserName:function(){var e=this.mergedConfig.mentionLinkDisplay;return"short"!==e&&("full"===e||this.isRemote)},shouldShowTooltip:function(){return this.mergedConfig.mentionLinkShowTooltip},shouldShowAvatar:function(){return this.mergedConfig.mentionLinkShowAvatar},shouldShowYous:function(){return this.mergedConfig.mentionLinkShowYous},shouldBoldenYou:function(){return this.mergedConfig.mentionLinkBoldenYou},shouldFadeDomain:function(){return this.mergedConfig.mentionLinkFadeDomain}},(0,w.Se)(["mergedConfig"])),(0,w.rn)({currentUser:function(e){return e.users.currentUser}}))},A=(0,n(83744).Z)(F,[["render",function(e,t,n,f,g,v){var w=(0,o.up)("UserAvatar"),b=(0,o.up)("FAIcon"),y=(0,o.up)("UnicodeDomainIndicator"),D=(0,o.up)("UserPopover");return(0,o.wg)(),(0,o.iD)("span",s,[e.user?((0,o.wg)(),(0,o.j4)(D,{key:1,"user-id":e.user.id,disabled:!e.shouldShowTooltip},{default:(0,o.w5)((function(){return[e.user?((0,o.wg)(),(0,o.iD)("span",{key:0,class:(0,r.C_)(["new",e.classnames]),style:(0,r.j5)(e.style)},[(0,o._)("a",{class:(0,r.C_)(["short button-unstyled",{"-with-tooltip":e.shouldShowTooltip}]),href:e.url,onClick:t[0]||(t[0]=(0,i.iM)((function(){return e.onClick&&e.onClick.apply(e,arguments)}),["prevent"]))},[e.shouldShowAvatar?((0,o.wg)(),(0,o.j4)(w,{key:0,class:"mention-avatar",user:e.user},null,8,["user"])):(0,o.kq)("",!0),(0,o._)("span",c,[e.useAtIcon?((0,o.wg)(),(0,o.j4)(b,{key:0,size:"sm",icon:"at",class:"at"})):(0,o.kq)("",!0),(0,o.Uk)((0,r.zw)(e.useAtIcon?"":"@"),1),(0,o._)("span",{class:"userName",innerHTML:e.userName},null,8,l),e.shouldShowFullUserName?((0,o.wg)(),(0,o.iD)("span",{key:1,class:(0,r.C_)(["serverName",{"-faded":e.shouldFadeDomain}]),innerHTML:"@"+e.serverName},null,10,d)):(0,o.kq)("",!0),e.shouldShowFullUserName?((0,o.wg)(),(0,o.j4)(y,{key:2,user:e.user},null,8,["user"])):(0,o.kq)("",!0)]),e.isYou&&e.shouldShowYous?((0,o.wg)(),(0,o.iD)("span",{key:1,class:(0,r.C_)({"-you":e.shouldBoldenYou})},(0,r.zw)(" "+e.$t("status.you")),3)):(0,o.kq)("",!0)],10,u),(0,o._)("span",p,[(0,o.Uk)(" @"),(0,o._)("span",{innerHTML:e.userName},null,8,m),(0,o._)("span",{innerHTML:"@"+e.serverName},null,8,h)],512)],6)):(0,o.kq)("",!0)]})),_:1},8,["user-id","disabled"])):((0,o.wg)(),(0,o.iD)("a",{key:0,href:e.url,class:"original",target:"_blank",innerHTML:e.content},null,8,a))])}]])},21268:(e,t,n)=>{"use strict";n.d(t,{d:()=>p,Z:()=>h});var o=n(66252),r=n(3577),i={class:"MentionsLine"},s={key:0,class:"extraMentions"},a={key:0,class:"fullExtraMentions"},u=n(4942),c=n(20460),l=n(989);function d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}var p=5;const m={name:"MentionsLine",props:{mentions:{required:!0,type:Array}},data:function(){return{expanded:!1}},components:{MentionLink:c.Z},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?d(Object(n),!0).forEach((function(t){(0,u.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):d(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({mentionsComputed:function(){return this.mentions.slice(0,p)},extraMentions:function(){return this.mentions.slice(p)},manyMentions:function(){return this.extraMentions.length>0}},(0,l.Se)(["mergedConfig"])),methods:{toggleShowMore:function(){this.expanded=!this.expanded}}},h=(0,n(83744).Z)(m,[["render",function(e,t,n,u,c,l){var d=(0,o.up)("MentionLink");return(0,o.wg)(),(0,o.iD)("span",i,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.mentionsComputed,(function(e){return(0,o.wg)(),(0,o.j4)(d,{key:e.index,class:"mention-link",content:e.content,url:e.url},null,8,["content","url"])})),128)),e.manyMentions?((0,o.wg)(),(0,o.iD)("span",s,[e.expanded?((0,o.wg)(),(0,o.iD)("span",a,[(0,o.Uk)((0,r.zw)(" ")),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.extraMentions,(function(e){return(0,o.wg)(),(0,o.j4)(d,{key:e.index,class:"mention-link",content:e.content,url:e.url},null,8,["content","url"])})),128))])):(0,o.kq)("",!0),e.expanded?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("button",{key:1,class:"button-unstyled showMoreLess",onClick:t[0]||(t[0]=function(){return e.toggleShowMore&&e.toggleShowMore.apply(e,arguments)})},(0,r.zw)(e.$t("status.plus_more",{number:e.extraMentions.length})),1)),e.expanded?((0,o.wg)(),(0,o.iD)("button",{key:2,class:"button-unstyled showMoreLess",onClick:t[1]||(t[1]=function(){return e.toggleShowMore&&e.toggleShowMore.apply(e,arguments)})},(0,r.zw)(e.$t("general.show_less")),1)):(0,o.kq)("",!0)])):(0,o.kq)("",!0)])}]])},48328:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var o=n(66252),r=n(3577),i=n(49963);const s={provide:{popoversZLayer:"modals"},props:{isOpen:{type:Boolean,default:!0},noBackground:{type:Boolean,default:!1}},computed:{classes:function(){return{"modal-background":!this.noBackground,open:this.isOpen}}}},a=(0,n(83744).Z)(s,[["render",function(e,t,n,s,a,u){var c=(0,o.Q2)("body-scroll-lock");return(0,o.wy)(((0,o.wg)(),(0,o.iD)("div",{class:(0,r.C_)(["modal-view",u.classes]),onClick:t[0]||(t[0]=(0,i.iM)((function(t){return e.$emit("backdropClicked")}),["self"]))},[(0,o.WI)(e.$slots,"default")],2)),[[i.F8,n.isOpen],[c,n.isOpen&&!n.noBackground]])}]])},93737:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>Be});var o=n(66252),r=n(3577),i=n(49963),s={key:0,class:"notifications-heading panel-heading -sticky"},a={class:"title"},u={key:0,class:"badge badge-notification unseen-count"},c={key:0,class:"rightside-button"},l=["title"],d={class:"panel-body",role:"feed"},p=(0,o._)("div",{class:"notification-overlay"},null,-1),m={class:"panel-footer"},h={key:0,class:"new-status-notification text-center faint"},f={class:"new-status-notification text-center"},g={key:2,class:"new-status-notification text-center"},v=n(4942),w=n(989),b={key:0},y={key:1},D={key:0,class:"Notification container -muted"},_=["href"],k={class:"notification-right"},C={class:"notification-details"},S={class:"name-and-action"},j={key:0},F=["title"],A={key:2},O={key:3},E={key:4},z={key:5},P={key:6},I={key:7},x=["src","alt","title"],T={key:1,class:"emoji-reaction-emoji"},$={key:8},B={key:9},U={key:0,class:"timeago"},M=["title","aria-expanded"],L={key:1,class:"timeago"},R={class:"faint"},q=["title","aria-expanded"],N={key:0,class:"follow-text"},Z={key:0,style:{"white-space":"nowrap"}},W=["title"],H=["title"],V={key:1,class:"move-text"},K=n(10252),G=n(24049),Y=n(48173),J=n(20392),Q=n(1840),X={class:"Report"},ee={class:"reported-user"},te={class:"reporter"},ne={class:"report-state"},oe=["value"],re={key:0},ie={class:"reported-status-heading"},se={class:"reported-status-name"},ae={key:1},ue=n(76990),ce=n(92820),le=n(4493);const de={props:["reportId"],components:{Select:ue.Z,StatusContent:K.Z,Timeago:Q.Z,RichContent:ce.Z},computed:{report:function(){return console.log(this.$store.state.reports.reports[this.reportId]||{}),this.$store.state.reports.reports[this.reportId]||{}},state:{get:function(){return this.report.state},set:function(e){this.setReportState(e)}}},methods:{generateUserProfileLink:function(e){return(0,le.Z)(e.id,e.screen_name,this.$store.state.instance.restrictedNicknames)},setReportState:function(e){return this.$store.dispatch("setReportState",{id:this.report.id,state:e})}}};var pe=n(83744);const me=(0,pe.Z)(de,[["render",function(e,t,n,i,s,a){var u=(0,o.up)("router-link"),c=(0,o.up)("Select"),l=(0,o.up)("RichContent"),d=(0,o.up)("Timeago"),p=(0,o.up)("status-content");return(0,o.wg)(),(0,o.iD)("div",X,[(0,o._)("div",ee,[(0,o._)("span",null,(0,r.zw)(e.$t("report.reported_user")),1),(0,o.Wm)(u,{to:e.generateUserProfileLink(e.report.acct)},{default:(0,o.w5)((function(){return[(0,o.Uk)(" @"+(0,r.zw)(e.report.acct.screen_name),1)]})),_:1},8,["to"])]),(0,o._)("div",te,[(0,o._)("span",null,(0,r.zw)(e.$t("report.reporter")),1),(0,o.Wm)(u,{to:e.generateUserProfileLink(e.report.actor)},{default:(0,o.w5)((function(){return[(0,o.Uk)(" @"+(0,r.zw)(e.report.actor.screen_name),1)]})),_:1},8,["to"])]),(0,o._)("div",ne,[(0,o._)("span",null,(0,r.zw)(e.$t("report.state")),1),(0,o.Wm)(c,{id:e.report-e.state,modelValue:e.state,"onUpdate:modelValue":t[0]||(t[0]=function(t){return e.state=t}),class:"form-control"},{default:(0,o.w5)((function(){return[((0,o.wg)(),(0,o.iD)(o.HY,null,(0,o.Ko)(["open","closed","resolved"],(function(t){return(0,o._)("option",{key:t,value:t},(0,r.zw)(e.$t("report.state_"+t)),9,oe)})),64))]})),_:1},8,["id","modelValue"])]),(0,o.Wm)(l,{class:"report-content",html:e.report.content,emoji:[]},null,8,["html"]),e.report.statuses.length?((0,o.wg)(),(0,o.iD)("div",re,[(0,o._)("small",null,(0,r.zw)(e.$t("report.reported_statuses")),1),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.report.statuses,(function(e){return(0,o.wg)(),(0,o.j4)(u,{key:e.id,to:{name:"conversation",params:{id:e.id}},class:"reported-status"},{default:(0,o.w5)((function(){return[(0,o._)("div",ie,[(0,o._)("span",se,(0,r.zw)(e.user.name),1),(0,o.Wm)(d,{time:e.created_at,"auto-update":240,class:"faint"},null,8,["time"])]),(0,o.Wm)(p,{status:e},null,8,["status"])]})),_:2},1032,["to"])})),128))])):(0,o.kq)("",!0),e.report.notes.length?((0,o.wg)(),(0,o.iD)("div",ae,[(0,o._)("small",null,(0,r.zw)(e.$t("report.notes")),1),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.report.notes,(function(e){return(0,o.wg)(),(0,o.iD)("div",{key:e.id,class:"note"},[(0,o._)("span",null,(0,r.zw)(e.content),1),(0,o.Wm)(d,{time:e.created_at,"auto-update":240,class:"faint"},null,8,["time"])])})),128))])):(0,o.kq)("",!0)])}]]);var he=n(12061),fe=n(22588),ge=n(1447),ve=n(52230),we=n(95052),be=n(9382),ye=n(84131);function De(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}be.vI.add(ye.LEp,ye.NBC,ye.Tab,ye.x5v,ye.FKd,ye.ILF,ye.Aq,ye.gmr,ye.TTL,ye.V9$);var _e={data:function(){return{statusExpanded:!1,betterShadow:this.$store.state.interface.browserSupport.cssFilter,unmuted:!1,showingApproveConfirmDialog:!1,showingDenyConfirmDialog:!1}},props:["notification"],components:{StatusContent:K.Z,UserAvatar:Y.default,UserCard:J.Z,Timeago:Q.Z,Status:G.default,Report:me,RichContent:ce.Z,UserPopover:fe.default,UserLink:he.Z,ConfirmModal:ge.Z},methods:{toggleStatusExpanded:function(){this.statusExpanded=!this.statusExpanded},generateUserProfileLink:function(e){return(0,le.Z)(e.id,e.screen_name,this.$store.state.instance.restrictedNicknames)},getUser:function(e){return this.$store.state.users.usersObject[e.from_profile.id]},toggleMute:function(){this.unmuted=!this.unmuted},showApproveConfirmDialog:function(){this.showingApproveConfirmDialog=!0},hideApproveConfirmDialog:function(){this.showingApproveConfirmDialog=!1},showDenyConfirmDialog:function(){this.showingDenyConfirmDialog=!0},hideDenyConfirmDialog:function(){this.showingDenyConfirmDialog=!1},approveUser:function(){this.shouldConfirmApprove?this.showApproveConfirmDialog():this.doApprove()},doApprove:function(){this.$store.state.api.backendInteractor.approveUser({id:this.user.id}),this.$store.dispatch("removeFollowRequest",this.user),this.$store.dispatch("markSingleNotificationAsSeen",{id:this.notification.id}),this.$store.dispatch("updateNotification",{id:this.notification.id,updater:function(e){e.type="follow"}}),this.hideApproveConfirmDialog()},denyUser:function(){this.shouldConfirmDeny?this.showDenyConfirmDialog():this.doDeny()},doDeny:function(){var e=this;this.$store.state.api.backendInteractor.denyUser({id:this.user.id}).then((function(){e.$store.dispatch("dismissNotificationLocal",{id:e.notification.id}),e.$store.dispatch("removeFollowRequest",e.user)})),this.hideDenyConfirmDialog()}},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?De(Object(n),!0).forEach((function(t){(0,v.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):De(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({userClass:function(){return(0,we.M)(this.notification.from_profile)},userStyle:function(){var e=this.$store.getters.mergedConfig.highlight,t=this.notification.from_profile;return(0,we.q)(e[t.screen_name])},user:function(){return this.$store.getters.findUser(this.notification.from_profile.id)},userProfileLink:function(){return this.generateUserProfileLink(this.user)},targetUser:function(){return this.$store.getters.findUser(this.notification.target.id)},targetUserProfileLink:function(){return this.generateUserProfileLink(this.targetUser)},needMute:function(){return this.$store.getters.relationship(this.user.id).muting},isStatusNotification:function(){return(0,ve.Gr)(this.notification.type)},mergedConfig:function(){return this.$store.getters.mergedConfig},shouldConfirmApprove:function(){return this.mergedConfig.modalOnApproveFollow},shouldConfirmDeny:function(){return this.mergedConfig.modalOnDenyFollow}},(0,w.rn)({currentUser:function(e){return e.users.currentUser}}))};const ke=_e,Ce=(0,pe.Z)(ke,[["render",function(e,t,n,s,a,u){var c=(0,o.up)("Status"),l=(0,o.up)("user-link"),d=(0,o.up)("FAIcon"),p=(0,o.up)("UserAvatar"),m=(0,o.up)("UserPopover"),h=(0,o.up)("RichContent"),f=(0,o.up)("i18n-t"),g=(0,o.up)("Timeago"),v=(0,o.up)("router-link"),w=(0,o.up)("Report"),K=(0,o.up)("StatusContent"),G=(0,o.up)("confirm-modal");return"mention"===e.notification.type?((0,o.wg)(),(0,o.iD)("article",b,[(0,o.Wm)(c,{class:"Notification",compact:!0,statusoid:e.notification.status},null,8,["statusoid"])])):((0,o.wg)(),(0,o.iD)("article",y,[e.needMute&&!e.unmuted?((0,o.wg)(),(0,o.iD)("div",D,[(0,o._)("small",null,[(0,o.Wm)(l,{user:e.notification.from_profile,at:!1},null,8,["user"])]),(0,o._)("button",{class:"button-unstyled unmute",onClick:t[0]||(t[0]=(0,i.iM)((function(){return e.toggleMute&&e.toggleMute.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(d,{class:"fa-scale-110 fa-old-padding",icon:"eye-slash"})])])):((0,o.wg)(),(0,o.iD)("div",{key:1,class:(0,r.C_)(["Notification non-mention",[e.userClass,{highlighted:e.userStyle},"-type--"+e.notification.type]]),style:(0,r.j5)([e.userStyle])},[(0,o._)("a",{class:"avatar-container",href:e.$router.resolve(e.userProfileLink).href,onClick:t[1]||(t[1]=(0,i.iM)((function(){}),["prevent"]))},[(0,o.Wm)(m,{"user-id":e.notification.from_profile.id,"overlay-centers":!0},{default:(0,o.w5)((function(){return[(0,o.Wm)(p,{class:"post-avatar",bot:e.botIndicator,compact:!0,"better-shadow":e.betterShadow,user:e.notification.from_profile},null,8,["bot","better-shadow","user"])]})),_:1},8,["user-id"])],8,_),(0,o._)("div",k,[(0,o._)("span",C,[(0,o._)("div",S,[e.notification.from_profile.name_html?((0,o.wg)(),(0,o.iD)("bdi",j,[(0,o.Wm)(h,{class:"username",title:"@"+e.notification.from_profile.screen_name_ui,html:e.notification.from_profile.name_html,emoji:e.notification.from_profile.emoji},null,8,["title","html","emoji"])])):((0,o.wg)(),(0,o.iD)("span",{key:1,class:"username",title:"@"+e.notification.from_profile.screen_name_ui},(0,r.zw)(e.notification.from_profile.name),9,F)),(0,o.Uk)(" "+(0,r.zw)(" ")+" "),"like"===e.notification.type?((0,o.wg)(),(0,o.iD)("span",A,[(0,o.Wm)(d,{class:"type-icon",icon:"star"}),(0,o.Uk)(" "+(0,r.zw)(" ")+" "),(0,o._)("small",null,(0,r.zw)(e.$t("notifications.favorited_you")),1)])):(0,o.kq)("",!0),"repeat"===e.notification.type?((0,o.wg)(),(0,o.iD)("span",O,[(0,o.Wm)(d,{class:"type-icon",icon:"retweet",title:e.$t("tool_tip.repeat")},null,8,["title"]),(0,o.Uk)(" "+(0,r.zw)(" ")+" "),(0,o._)("small",null,(0,r.zw)(e.$t("notifications.repeated_you")),1)])):(0,o.kq)("",!0),"follow"===e.notification.type?((0,o.wg)(),(0,o.iD)("span",E,[(0,o.Wm)(d,{class:"type-icon",icon:"user-plus"}),(0,o.Uk)(" "+(0,r.zw)(" ")+" "),(0,o._)("small",null,(0,r.zw)(e.$t("notifications.followed_you")),1)])):(0,o.kq)("",!0),"follow_request"===e.notification.type?((0,o.wg)(),(0,o.iD)("span",z,[(0,o.Wm)(d,{class:"type-icon",icon:"user"}),(0,o.Uk)(" "+(0,r.zw)(" ")+" "),(0,o._)("small",null,(0,r.zw)(e.$t("notifications.follow_request")),1)])):(0,o.kq)("",!0),"move"===e.notification.type?((0,o.wg)(),(0,o.iD)("span",P,[(0,o.Wm)(d,{class:"type-icon",icon:"suitcase-rolling"}),(0,o.Uk)(" "+(0,r.zw)(" ")+" "),(0,o._)("small",null,(0,r.zw)(e.$t("notifications.migrated_to")),1)])):(0,o.kq)("",!0),"pleroma:emoji_reaction"===e.notification.type?((0,o.wg)(),(0,o.iD)("span",I,[(0,o._)("small",null,[(0,o.Wm)(f,{scope:"global",keypath:"notifications.reacted_with"},{default:(0,o.w5)((function(){return[e.notification.emoji_url?((0,o.wg)(),(0,o.iD)("img",{key:0,class:"emoji-reaction-emoji emoji-reaction-emoji-image",src:e.notification.emoji_url,alt:e.notification.emoji,title:e.notification.emoji},null,8,x)):((0,o.wg)(),(0,o.iD)("span",T,(0,r.zw)(e.notification.emoji),1))]})),_:1})])])):(0,o.kq)("",!0),"pleroma:report"===e.notification.type?((0,o.wg)(),(0,o.iD)("span",$,[(0,o._)("small",null,(0,r.zw)(e.$t("notifications.submitted_report")),1)])):(0,o.kq)("",!0),"poll"===e.notification.type?((0,o.wg)(),(0,o.iD)("span",B,[(0,o.Wm)(d,{class:"type-icon",icon:"poll-h"}),(0,o.Uk)(" "+(0,r.zw)(" ")+" "),(0,o._)("small",null,(0,r.zw)(e.$t("notifications.poll_ended")),1)])):(0,o.kq)("",!0)]),e.isStatusNotification?((0,o.wg)(),(0,o.iD)("div",U,[e.notification.status?((0,o.wg)(),(0,o.j4)(v,{key:0,to:{name:"conversation",params:{id:e.notification.status.id}},class:"timeago-link faint-link"},{default:(0,o.w5)((function(){return[(0,o.Wm)(g,{time:e.notification.created_at,"auto-update":240},null,8,["time"])]})),_:1},8,["to"])):(0,o.kq)("",!0),(0,o._)("button",{class:"button-unstyled expand-icon",title:e.$t("tool_tip.toggle_expand"),"aria-expanded":e.statusExpanded,onClick:t[2]||(t[2]=(0,i.iM)((function(){return e.toggleStatusExpanded&&e.toggleStatusExpanded.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(d,{class:"fa-scale-110","fixed-width":"",icon:e.statusExpanded?"compress-alt":"expand-alt"},null,8,["icon"])],8,M)])):((0,o.wg)(),(0,o.iD)("div",L,[(0,o._)("span",R,[(0,o.Wm)(g,{time:e.notification.created_at,"auto-update":240},null,8,["time"])])])),e.needMute?((0,o.wg)(),(0,o.iD)("button",{key:2,class:"button-unstyled",title:e.$t("tool_tip.toggle_mute"),"aria-expanded":!e.unmuted,onClick:t[3]||(t[3]=(0,i.iM)((function(){return e.toggleMute&&e.toggleMute.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(d,{class:"fa-scale-110 fa-old-padding",icon:"eye-slash"})],8,q)):(0,o.kq)("",!0)]),"follow"===e.notification.type||"follow_request"===e.notification.type?((0,o.wg)(),(0,o.iD)("div",N,[(0,o.Wm)(l,{class:"follow-name",user:e.notification.from_profile},null,8,["user"]),"follow_request"===e.notification.type?((0,o.wg)(),(0,o.iD)("div",Z,[(0,o._)("button",{class:"button-unstyled",title:e.$t("tool_tip.accept_follow_request"),onClick:t[4]||(t[4]=function(t){return e.approveUser()})},[(0,o.Wm)(d,{icon:"check",class:"fa-scale-110 fa-old-padding follow-request-accept"})],8,W),(0,o._)("button",{class:"button-unstyled",title:e.$t("tool_tip.reject_follow_request"),onClick:t[5]||(t[5]=function(t){return e.denyUser()})},[(0,o.Wm)(d,{icon:"times",class:"fa-scale-110 fa-old-padding follow-request-reject"})],8,H)])):(0,o.kq)("",!0)])):"move"===e.notification.type?((0,o.wg)(),(0,o.iD)("div",V,[(0,o.Wm)(l,{user:e.notification.target},null,8,["user"])])):"pleroma:report"===e.notification.type?((0,o.wg)(),(0,o.j4)(w,{key:2,"report-id":e.notification.report.id},null,8,["report-id"])):((0,o.wg)(),(0,o.j4)(K,{key:3,class:(0,r.C_)({faint:!e.statusExpanded}),compact:!e.statusExpanded,status:e.notification.action},null,8,["class","compact","status"]))])],6)),((0,o.wg)(),(0,o.j4)(o.lR,{to:"#modal"},[e.showingApproveConfirmDialog?((0,o.wg)(),(0,o.j4)(G,{key:0,title:e.$t("user_card.approve_confirm_title"),"confirm-text":e.$t("user_card.approve_confirm_accept_button"),"cancel-text":e.$t("user_card.approve_confirm_cancel_button"),onAccepted:e.doApprove,onCancelled:e.hideApproveConfirmDialog},{default:(0,o.w5)((function(){return[(0,o.Uk)((0,r.zw)(e.$t("user_card.approve_confirm",{user:e.user.screen_name_ui})),1)]})),_:1},8,["title","confirm-text","cancel-text","onAccepted","onCancelled"])):(0,o.kq)("",!0),e.showingDenyConfirmDialog?((0,o.wg)(),(0,o.j4)(G,{key:1,title:e.$t("user_card.deny_confirm_title"),"confirm-text":e.$t("user_card.deny_confirm_accept_button"),"cancel-text":e.$t("user_card.deny_confirm_cancel_button"),onAccepted:e.doDeny,onCancelled:e.hideDenyConfirmDialog},{default:(0,o.w5)((function(){return[(0,o.Uk)((0,r.zw)(e.$t("user_card.deny_confirm",{user:e.user.screen_name_ui})),1)]})),_:1},8,["title","confirm-text","cancel-text","onAccepted","onCancelled"])):(0,o.kq)("",!0)]))]))}]]);var Se={class:"dropdown-menu"},je={class:"filter-trigger-button button-unstyled"},Fe=n(84535);function Ae(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Oe(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ae(Object(n),!0).forEach((function(t){(0,v.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ae(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}be.vI.add(ye.G_j);const Ee={components:{Popover:Fe.default},computed:{filters:function(){return this.$store.getters.mergedConfig.notificationVisibility}},methods:{toggleNotificationFilter:function(e){this.$store.dispatch("setOption",{name:"notificationVisibility",value:Oe(Oe({},this.filters),{},(0,v.Z)({},e,!this.filters[e]))})}}},ze=(0,pe.Z)(Ee,[["render",function(e,t,n,i,s,a){var u=(0,o.up)("FAIcon"),c=(0,o.up)("Popover");return(0,o.wg)(),(0,o.j4)(c,{trigger:"click",class:"NotificationFilters",placement:"bottom","bound-to":{x:"container"}},{content:(0,o.w5)((function(){return[(0,o._)("div",Se,[(0,o._)("button",{class:"button-default dropdown-item",onClick:t[0]||(t[0]=function(e){return a.toggleNotificationFilter("likes")})},[(0,o._)("span",{class:(0,r.C_)(["menu-checkbox",{"menu-checkbox-checked":a.filters.likes}])},null,2),(0,o.Uk)((0,r.zw)(e.$t("settings.notification_visibility_likes")),1)]),(0,o._)("button",{class:"button-default dropdown-item",onClick:t[1]||(t[1]=function(e){return a.toggleNotificationFilter("repeats")})},[(0,o._)("span",{class:(0,r.C_)(["menu-checkbox",{"menu-checkbox-checked":a.filters.repeats}])},null,2),(0,o.Uk)((0,r.zw)(e.$t("settings.notification_visibility_repeats")),1)]),(0,o._)("button",{class:"button-default dropdown-item",onClick:t[2]||(t[2]=function(e){return a.toggleNotificationFilter("follows")})},[(0,o._)("span",{class:(0,r.C_)(["menu-checkbox",{"menu-checkbox-checked":a.filters.follows}])},null,2),(0,o.Uk)((0,r.zw)(e.$t("settings.notification_visibility_follows")),1)]),(0,o._)("button",{class:"button-default dropdown-item",onClick:t[3]||(t[3]=function(e){return a.toggleNotificationFilter("mentions")})},[(0,o._)("span",{class:(0,r.C_)(["menu-checkbox",{"menu-checkbox-checked":a.filters.mentions}])},null,2),(0,o.Uk)((0,r.zw)(e.$t("settings.notification_visibility_mentions")),1)]),(0,o._)("button",{class:"button-default dropdown-item",onClick:t[4]||(t[4]=function(e){return a.toggleNotificationFilter("emojiReactions")})},[(0,o._)("span",{class:(0,r.C_)(["menu-checkbox",{"menu-checkbox-checked":a.filters.emojiReactions}])},null,2),(0,o.Uk)((0,r.zw)(e.$t("settings.notification_visibility_emoji_reactions")),1)]),(0,o._)("button",{class:"button-default dropdown-item",onClick:t[5]||(t[5]=function(e){return a.toggleNotificationFilter("moves")})},[(0,o._)("span",{class:(0,r.C_)(["menu-checkbox",{"menu-checkbox-checked":a.filters.moves}])},null,2),(0,o.Uk)((0,r.zw)(e.$t("settings.notification_visibility_moves")),1)]),(0,o._)("button",{class:"button-default dropdown-item",onClick:t[6]||(t[6]=function(e){return a.toggleNotificationFilter("polls")})},[(0,o._)("span",{class:(0,r.C_)(["menu-checkbox",{"menu-checkbox-checked":a.filters.polls}])},null,2),(0,o.Uk)((0,r.zw)(e.$t("settings.notification_visibility_polls")),1)])])]})),trigger:(0,o.w5)((function(){return[(0,o._)("button",je,[(0,o.Wm)(u,{icon:"filter"})])]})),_:1})}]]);var Pe=n(15568),Ie=n(49753);function xe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}be.vI.add(ye.IJ7,ye.FPD,ye.Kl4);const Te={components:{Notification:Ce,NotificationFilters:ze},props:{minimalMode:Boolean,filterMode:Array,disableTeleport:Boolean},data:function(){return{showScrollTop:!1,bottomedOut:!1,seenToDisplayCount:30}},provide:function(){var e=this;return{popoversZLayer:(0,o.Fl)((function(){return e.popoversZLayer}))}},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?xe(Object(n),!0).forEach((function(t){(0,v.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):xe(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({mainClass:function(){return this.minimalMode?"":"panel panel-default"},notifications:function(){return(0,ve.Bt)(this.$store)},error:function(){return this.$store.state.statuses.notifications.error},unseenNotifications:function(){return(0,ve.Km)(this.$store)},filteredNotifications:function(){return(0,ve.G2)(this.$store,this.filterMode)},unseenCount:function(){return this.unseenNotifications.length},unseenCountTitle:function(){return this.unseenCount+this.unreadChatCount+this.unreadAnnouncementCount},loading:function(){return this.$store.state.statuses.notifications.loading},noHeading:function(){var e=this.$store.state.interface.layoutType;return this.minimalMode||"mobile"===e},teleportTarget:function(){return{wide:"#notifs-column",mobile:"#mobile-notifications"}[this.$store.state.interface.layoutType]||"#notifs-sidebar"},popoversZLayer:function(){return"mobile"===this.$store.state.interface.layoutType?"navbar":null},notificationsToDisplay:function(){return this.filteredNotifications.slice(0,this.unseenCount+this.seenToDisplayCount)},noSticky:function(){return this.$store.getters.mergedConfig.disableStickyHeaders}},(0,w.Se)(["unreadChatCount","unreadAnnouncementCount"])),mounted:function(){this.scrollerRef=this.$refs.root.closest(".column.-scrollable"),this.scrollerRef||(this.scrollerRef=this.$refs.root.closest(".mobile-notifications")),this.scrollerRef||(this.scrollerRef=this.$refs.root.closest(".column.main")),this.scrollerRef.addEventListener("scroll",this.updateScrollPosition)},unmounted:function(){this.scrollerRef&&this.scrollerRef.removeEventListener("scroll",this.updateScrollPosition)},watch:{unseenCountTitle:function(e){e>0?(Ie.Z.drawFaviconBadge(),this.$store.dispatch("setPageTitle","(".concat(e,")"))):(Ie.Z.clearFaviconBadge(),this.$store.dispatch("setPageTitle",""))},teleportTarget:function(){var e=this;this.$nextTick((function(){e.scrollerRef.removeEventListener("scroll",e.updateScrollPosition),e.scrollerRef=e.$refs.root.closest(".column.-scrollable"),e.scrollerRef||(e.scrollerRef=e.$refs.root.closest(".mobile-notifications")),e.scrollerRef.addEventListener("scroll",e.updateScrollPosition),e.updateScrollPosition()}))}},methods:{scrollToTop:function(){this.scrollerRef.scrollTo({top:this.$refs.root.offsetTop})},updateScrollPosition:function(){this.showScrollTop=this.$refs.root.offsetTop<this.scrollerRef.scrollTop},markAsSeen:function(){this.$store.dispatch("markNotificationsAsSeen"),this.seenToDisplayCount=30},fetchOlderNotifications:function(){var e=this;if(!this.loading){var t=this.filteredNotifications.length-this.unseenCount;if(this.seenToDisplayCount<t)this.seenToDisplayCount=Math.min(this.seenToDisplayCount+20,t);else{this.seenToDisplayCount>t&&(this.seenToDisplayCount=t);var n=this.$store,o=n.state.users.currentUser.credentials;n.commit("setNotificationsLoading",{value:!0}),Pe.Z.fetchAndUpdate({store:n,credentials:o,older:!0}).then((function(t){n.commit("setNotificationsLoading",{value:!1}),0===t.length&&(e.bottomedOut=!0),e.seenToDisplayCount+=t.length}))}}}}},$e=(0,pe.Z)(Te,[["render",function(e,t,n,v,w,b){var y=(0,o.up)("FAIcon"),D=(0,o.up)("FALayers"),_=(0,o.up)("NotificationFilters"),k=(0,o.up)("notification");return(0,o.wg)(),(0,o.j4)(o.lR,{disabled:e.minimalMode||e.disableTeleport,to:e.teleportTarget},[((0,o.wg)(),(0,o.j4)((0,o.LL)(e.noHeading?"div":"aside"),{ref:"root",class:(0,r.C_)([{minimal:e.minimalMode},"Notifications"])},{default:(0,o.w5)((function(){return[(0,o._)("div",{class:(0,r.C_)(e.mainClass)},[e.noHeading?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",s,[(0,o._)("div",a,[(0,o.Uk)((0,r.zw)(e.$t("notifications.notifications"))+" ",1),e.unseenCount?((0,o.wg)(),(0,o.iD)("span",u,(0,r.zw)(e.unseenCount),1)):(0,o.kq)("",!0)]),e.showScrollTop?((0,o.wg)(),(0,o.iD)("div",c,[(0,o._)("button",{class:"button-unstyled scroll-to-top-button",type:"button",title:e.$t("general.scroll_to_top"),onClick:t[0]||(t[0]=function(){return e.scrollToTop&&e.scrollToTop.apply(e,arguments)})},[(0,o.Wm)(D,{class:"fa-scale-110 fa-old-padding-layer"},{default:(0,o.w5)((function(){return[(0,o.Wm)(y,{icon:"arrow-up"}),(0,o.Wm)(y,{icon:"minus",transform:"up-7"})]})),_:1})],8,l)])):(0,o.kq)("",!0),e.unseenCount?((0,o.wg)(),(0,o.iD)("button",{key:1,class:"button-default read-button",type:"button",onClick:t[1]||(t[1]=(0,i.iM)((function(){return e.markAsSeen&&e.markAsSeen.apply(e,arguments)}),["prevent"]))},(0,r.zw)(e.$t("notifications.read")),1)):(0,o.kq)("",!0),(0,o.Wm)(_,{class:"rightside-button"})])),(0,o._)("div",d,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.notificationsToDisplay,(function(t){return(0,o.wg)(),(0,o.iD)("div",{key:t.id,role:"listitem",class:(0,r.C_)(["notification",{unseen:!e.minimalMode&&!t.seen}])},[p,(0,o.Wm)(k,{notification:t},null,8,["notification"])],2)})),128))]),(0,o._)("div",m,[e.bottomedOut?((0,o.wg)(),(0,o.iD)("div",h,(0,r.zw)(e.$t("notifications.no_more_notifications")),1)):e.loading?((0,o.wg)(),(0,o.iD)("div",g,[(0,o.Wm)(y,{icon:"circle-notch",spin:"",size:"lg"})])):((0,o.wg)(),(0,o.iD)("button",{key:1,class:"button-unstyled -link -fullwidth",onClick:t[2]||(t[2]=(0,i.iM)((function(t){return e.fetchOlderNotifications()}),["prevent"]))},[(0,o._)("div",f,(0,r.zw)(e.minimalMode?e.$t("interactions.load_older"):e.$t("notifications.load_older")),1)]))])],2)]})),_:1},8,["class"]))],8,["disabled","to"])}]]),Be=$e},29187:(e,t,n)=>{"use strict";n.d(t,{Z:()=>l});var o=n(66252),r=n(3577),i={class:"panel-loading"},s={class:"loading-text"},a=n(9382),u=n(84131);a.vI.add(u.IJ7);const c={},l=(0,n(83744).Z)(c,[["render",function(e,t,n,a,u,c){var l=(0,o.up)("FAIcon");return(0,o.wg)(),(0,o.iD)("div",i,[(0,o._)("span",s,[(0,o.Wm)(l,{icon:"circle-notch",spin:"",size:"3x"}),(0,o.Uk)(" "+(0,r.zw)(e.$t("general.loading")),1)])])}]])},84535:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var o=n(66252),r=n(49963),i=n(3577);const s={name:"Popover",props:{trigger:String,placement:String,boundTo:Object,boundToSelector:String,margin:Object,offset:Object,popoverClass:String,removePadding:Boolean,disabled:Boolean,overlayCenters:Boolean,overlayCentersSelector:String,stayOnClick:Boolean,normalButton:Boolean,triggerAttrs:{type:Object,default:{}}},inject:["popoversZLayer"],data:function(){return{anchorEl:null,teleport:!1,lockReEntry:!1,hidden:!0,styles:{},oldSize:{width:0,height:0},scrollable:null,graceTimeout:null,parentPopover:null,disableClickOutside:!1,childrenShown:new Set}},methods:{setAnchorEl:function(e){this.anchorEl=e,this.updateStyles()},containerBoundingClientRect:function(){return(this.boundToSelector?this.$el.closest(this.boundToSelector):this.$el.offsetParent).getBoundingClientRect()},updateStyles:function(){if(this.hidden)this.styles={};else{var e=this.anchorEl||this.$refs.trigger&&this.$refs.trigger.children[0]||this.$el,t=e.offsetHeight||e.clientHeight,n=e.offsetWidth||e.clientWidth,o=e.getBoundingClientRect(),r=getComputedStyle(e),i=parseFloat(r.paddingTop),s=parseFloat(r.paddingBottom),a=parseFloat(r.paddingRight),u=parseFloat(r.paddingLeft),c=o.left+.5*n,l=o.top+.5*t,d=this.$refs.content,p=this.overlayCenters?this.$refs.content.querySelector(this.overlayCentersSelector):null,m=this.boundTo&&("container"===this.boundTo.x||"container"===this.boundTo.y)&&this.containerBoundingClientRect(),h=this.margin||{},f=this.boundTo&&"container"===this.boundTo.x?{min:m.left+(h.left||0),max:m.right-(h.right||0)}:{min:0+(h.left||10),max:window.innerWidth-(h.right||10)},g=this.boundTo&&"container"===this.boundTo.y?{min:m.top+(h.top||0),max:m.bottom-(h.bottom||0)}:{min:0+(h.top||50),max:window.innerHeight-(h.bottom||5)},v=0,w=0;if(p){var b=d.getBoundingClientRect(),y=p.getBoundingClientRect(),D=y.left-b.left,_=y.top-b.top;v=-D-.5*p.offsetWidth,w=-_-.5*p.offsetHeight}else v=-.5*d.offsetWidth,w=-.5*d.offsetHeight;var k=c+v,C=k+d.offsetWidth,S=l+w,j=S+d.offsetHeight;k<f.min&&(v+=f.min-k),C>f.max&&(v-=C-f.max),S<g.min&&(w+=g.min-S),j>g.max&&(w-=j-g.max);var F=0,A=0;if(p)F=c+v,A=l+w;else if("right"!==this.placement&&"left"!==this.placement){var O="bottom"!==this.placement,E=l-.5*t+(this.removePadding?i:0),z=l+.5*t-(this.removePadding?s:0);z+d.offsetHeight>g.max&&(O=!0),E-d.offsetHeight<g.min&&(O=!1);var P=this.offset&&this.offset.y||0;A=O?E-P-d.offsetHeight:z+P,F=c+v+(this.offset&&this.offset.x||0)}else{var I="left"!==this.placement,x=c-.5*n+(this.removePadding?a:0),T=c+.5*n-(this.removePadding?u:0);T+d.offsetWidth>f.max&&(I=!0),x-d.offsetWidth<f.min&&(I=!1);var $=this.offset&&this.offset.x||0;F=I?x-$-d.offsetWidth:T+$,A=l+w+(this.offset&&this.offset.y||0)}this.styles={left:"".concat(Math.round(F),"px"),top:"".concat(Math.round(A),"px")},this.popoversZLayer&&(this.styles["--ZI_popover_override"]="var(--ZI_".concat(this.popoversZLayer,"_popovers)")),m&&(this.styles.maxWidth="".concat(Math.round(m.width),"px"))}},showPopover:function(){var e=this;if(!this.disabled){this.disableClickOutside=!0,setTimeout((function(){e.disableClickOutside=!1}),0);var t=this.hidden;this.hidden=!1,this.parentPopover&&this.parentPopover.onChildPopoverState(this,!0),("click"===this.trigger||this.stayOnClick)&&document.addEventListener("click",this.onClickOutside),this.scrollable.addEventListener("scroll",this.onScroll),this.scrollable.addEventListener("resize",this.onResize),this.$nextTick((function(){t&&e.$emit("show"),e.updateStyles()}))}},hidePopover:function(){this.disabled||(this.hidden||this.$emit("close"),this.hidden=!0,this.parentPopover&&this.parentPopover.onChildPopoverState(this,!1),"click"===this.trigger&&document.removeEventListener("click",this.onClickOutside),this.scrollable.removeEventListener("scroll",this.onScroll),this.scrollable.removeEventListener("resize",this.onResize))},onMouseenter:function(e){"hover"===this.trigger&&(this.lockReEntry=!1,clearTimeout(this.graceTimeout),this.graceTimeout=null,this.showPopover())},onMouseleave:function(e){var t=this;"hover"===this.trigger&&0===this.childrenShown.size&&(this.graceTimeout=setTimeout((function(){return t.hidePopover()}),1))},onMouseenterContent:function(e){"hover"!==this.trigger||this.lockReEntry||(this.lockReEntry=!0,clearTimeout(this.graceTimeout),this.graceTimeout=null,this.showPopover())},onMouseleaveContent:function(e){var t=this;"hover"===this.trigger&&0===this.childrenShown.size&&(this.graceTimeout=setTimeout((function(){return t.hidePopover()}),1))},onClick:function(e){"click"===this.trigger&&(this.hidden?this.showPopover():this.hidePopover())},onClickOutside:function(e){this.disableClickOutside||this.hidden||this.$refs.content&&this.$refs.content.contains(e.target)||this.$el.contains(e.target)||this.childrenShown.size>0||(this.hidePopover(),this.parentPopover&&this.parentPopover.onClickOutside(e))},onScroll:function(e){this.updateStyles()},onResize:function(e){this.updateStyles()},onChildPopoverState:function(e,t){t?this.childrenShown.add(e):this.childrenShown.delete(e)}},updated:function(){var e=this.$refs.content;e&&(this.oldSize.width===e.offsetWidth&&this.oldSize.height===e.offsetHeight||(this.updateStyles(),this.oldSize={width:e.offsetWidth,height:e.offsetHeight}))},mounted:function(){this.teleport=!0;var e=this.$refs.trigger.closest(".column.-scrollable")||this.$refs.trigger.closest(".mobile-notifications");e||(e=window),this.scrollable=e;for(var t=this.$parent;t&&"Popover"!==t.$.type.name;)t=t.$parent;this.parentPopover=t},beforeUnmount:function(){this.hidePopover()}},a=(0,n(83744).Z)(s,[["render",function(e,t,n,s,a,u){return(0,o.wg)(),(0,o.iD)("span",{onMouseenter:t[4]||(t[4]=function(){return e.onMouseenter&&e.onMouseenter.apply(e,arguments)}),onMouseleave:t[5]||(t[5]=function(){return e.onMouseleave&&e.onMouseleave.apply(e,arguments)})},[(0,o._)("button",(0,o.dG)({ref:"trigger",class:["popover-trigger-button",e.normalButton?"button-default btn":"button-unstyled"],type:"button"},e.triggerAttrs,{onClick:t[0]||(t[0]=function(){return e.onClick&&e.onClick.apply(e,arguments)})}),[(0,o.WI)(e.$slots,"trigger")],16),((0,o.wg)(),(0,o.j4)(o.lR,{disabled:!e.teleport,to:"#popovers"},[(0,o.Wm)(r.uT,{name:"fade"},{default:(0,o.w5)((function(){return[e.hidden?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",{key:0,ref:"content",style:(0,i.j5)(e.styles),class:(0,i.C_)(["popover",e.popoverClass||"popover-default"]),onMouseenter:t[1]||(t[1]=function(){return e.onMouseenterContent&&e.onMouseenterContent.apply(e,arguments)}),onMouseleave:t[2]||(t[2]=function(){return e.onMouseleaveContent&&e.onMouseleaveContent.apply(e,arguments)}),onClick:t[3]||(t[3]=function(){return e.onClickContent&&e.onClickContent.apply(e,arguments)})},[(0,o.WI)(e.$slots,"content",{class:"popover-inner",close:e.hidePopover})],38))]})),_:3})],8,["disabled"]))],32)}]])},45333:(e,t,n)=>{"use strict";n.d(t,{Z:()=>Me});var o=n(66252),r=n(49963),i=n(3577),s={ref:"form",class:"post-status-form"},a={class:"form-group"},u={key:1,class:"visibility-notice notice-dismissible"},c=["title"],l={key:2,class:"visibility-notice notice-dismissible"},d=["title"],p={key:3,class:"visibility-notice notice-dismissible"},m=["title"],h={key:4,class:"visibility-notice"},f={key:0},g={key:1},v={key:5,class:"visibility-notice edit-warning"},w={key:6,class:"preview-heading faint"},b={class:"preview-spinner"},y={key:7,class:"preview-container"},D={key:0,class:"preview-status"},_={key:1,class:"preview-status preview-error"},k={key:8,role:"radiogroup",class:"btn-group reply-or-quote-selector"},C=["id","aria-labelledby","aria-checked"],S=["id","aria-labelledby","aria-checked"],j=["placeholder","disabled"],F=["placeholder","disabled"],A={key:10,class:"visibility-tray"},O={key:1,class:"text-format"},E=["value"],z={key:2,class:"text-format"},P={class:"only-format"},I={ref:"bottom",class:"form-bottom"},x={class:"form-bottom-left"},T=["title"],$=["title"],B={key:0,disabled:"",class:"btn button-default"},U={key:1,disabled:"",class:"btn button-default"},M=["disabled"],L={key:1,class:"alert error"},R={key:3,class:"upload_settings"},q=n(15861),N=n(4942),Z=n(93433),W=n(23279),H=n.n(W),V=n(45578),K=n.n(V),G=n(35161),Y=n.n(G),J=n(43063),Q=n.n(J),X=n(64687),ee=n.n(X),te=n(7257),ne=n(53599),oe=n(37804),re=n(54110),ie=n(88671),se={key:0,class:"poll-form"},ae={class:"input-container"},ue=["id","onUpdate:modelValue","placeholder","maxlength","onKeydown"],ce=["onClick"],le={class:"poll-type-expiry"},de=["title"],pe={value:"single"},me={value:"multiple"},he=["title"],fe=["min","max"],ge=["value"],ve=n(44908),we=n.n(ve),be=n(27483),ye=n(9382),De=n(76990),_e=n(84131);ye.vI.add(_e.NBC,_e.r8p);const ke={components:{Select:De.Z},name:"PollForm",props:["visible"],data:function(){return{pollType:"single",options:["",""],expiryAmount:10,expiryUnit:"minutes"}},computed:{pollLimits:function(){return this.$store.state.instance.pollLimits},maxOptions:function(){return this.pollLimits.max_options},maxLength:function(){return this.pollLimits.max_option_chars},expiryUnits:function(){var e=this,t=this.convertExpiryFromUnit;return["minutes","hours","days"].filter((function(n){return e.pollLimits.max_expiration>=t(n,1)}))},minExpirationInCurrentUnit:function(){return Math.ceil(this.convertExpiryToUnit(this.expiryUnit,this.pollLimits.min_expiration))},maxExpirationInCurrentUnit:function(){return Math.floor(this.convertExpiryToUnit(this.expiryUnit,this.pollLimits.max_expiration))}},methods:{clear:function(){this.pollType="single",this.options=["",""],this.expiryAmount=10,this.expiryUnit="minutes"},nextOption:function(e){var t=this.$el.querySelector("#poll-".concat(e+1));t?t.focus():this.addOption()&&this.$nextTick((function(){this.nextOption(e)}))},addOption:function(){return this.options.length<this.maxOptions&&(this.options.push(""),!0)},deleteOption:function(e,t){this.options.length>2&&(this.options.splice(e,1),this.updatePollToParent())},convertExpiryToUnit:function(e,t){return be.dX(e,t)},convertExpiryFromUnit:function(e,t){return be.cC(e,t)},expiryAmountChange:function(){this.expiryAmount=Math.max(this.minExpirationInCurrentUnit,this.expiryAmount),this.expiryAmount=Math.min(this.maxExpirationInCurrentUnit,this.expiryAmount),this.updatePollToParent()},updatePollToParent:function(){var e=this.convertExpiryFromUnit(this.expiryUnit,this.expiryAmount),t=we()(this.options.filter((function(e){return""!==e})));t.length<2?this.$emit("update-poll",{error:this.$t("polls.not_enough_options")}):this.$emit("update-poll",{options:t,multiple:"multiple"===this.pollType,expiresIn:e})}}};var Ce=n(83744);const Se=(0,Ce.Z)(ke,[["render",function(e,t,n,s,a,u){var c=(0,o.up)("FAIcon"),l=(0,o.up)("Select");return e.visible?((0,o.wg)(),(0,o.iD)("div",se,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.options,(function(n,i){return(0,o.wg)(),(0,o.iD)("div",{key:i,class:"poll-option"},[(0,o._)("div",ae,[(0,o.wy)((0,o._)("input",{id:"poll-".concat(i),"onUpdate:modelValue":function(t){return e.options[i]=t},size:"1",class:"poll-option-input",type:"text",placeholder:e.$t("polls.option"),maxlength:e.maxLength,onChange:t[0]||(t[0]=function(){return e.updatePollToParent&&e.updatePollToParent.apply(e,arguments)}),onKeydown:(0,r.D2)((0,r.iM)((function(t){return e.nextOption(i)}),["stop","prevent"]),["enter"])},null,40,ue),[[r.nr,e.options[i]]])]),e.options.length>2?((0,o.wg)(),(0,o.iD)("button",{key:0,class:"delete-option button-unstyled -hover-highlight",onClick:function(t){return e.deleteOption(i)}},[(0,o.Wm)(c,{icon:"times"})],8,ce)):(0,o.kq)("",!0)])})),128)),e.options.length<e.maxOptions?((0,o.wg)(),(0,o.iD)("button",{key:0,class:"add-option faint button-unstyled -hover-highlight",onClick:t[1]||(t[1]=function(){return e.addOption&&e.addOption.apply(e,arguments)})},[(0,o.Wm)(c,{icon:"plus",size:"sm"}),(0,o.Uk)(" "+(0,i.zw)(e.$t("polls.add_option")),1)])):(0,o.kq)("",!0),(0,o._)("div",le,[(0,o._)("div",{class:"poll-type",title:e.$t("polls.type")},[(0,o.Wm)(l,{modelValue:e.pollType,"onUpdate:modelValue":t[2]||(t[2]=function(t){return e.pollType=t}),class:"poll-type-select",unstyled:"true",onChange:e.updatePollToParent},{default:(0,o.w5)((function(){return[(0,o._)("option",pe,(0,i.zw)(e.$t("polls.single_choice")),1),(0,o._)("option",me,(0,i.zw)(e.$t("polls.multiple_choices")),1)]})),_:1},8,["modelValue","onChange"])],8,de),(0,o._)("div",{class:"poll-expiry",title:e.$t("polls.expiry")},[(0,o.wy)((0,o._)("input",{"onUpdate:modelValue":t[3]||(t[3]=function(t){return e.expiryAmount=t}),type:"number",class:"expiry-amount hide-number-spinner",min:e.minExpirationInCurrentUnit,max:e.maxExpirationInCurrentUnit,onChange:t[4]||(t[4]=function(){return e.expiryAmountChange&&e.expiryAmountChange.apply(e,arguments)})},null,40,fe),[[r.nr,e.expiryAmount]]),(0,o.Uk)(" "+(0,i.zw)(" ")+" "),(0,o.Wm)(l,{modelValue:e.expiryUnit,"onUpdate:modelValue":t[5]||(t[5]=function(t){return e.expiryUnit=t}),unstyled:"true",class:"expiry-unit",onChange:e.expiryAmountChange},{default:(0,o.w5)((function(){return[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.expiryUnits,(function(t){return(0,o.wg)(),(0,o.iD)("option",{key:t,value:t},(0,i.zw)(e.$tc("time.unit.".concat(t,"_short"),e.expiryAmount,[""])),9,ge)})),128))]})),_:1},8,["modelValue","onChange"])],8,he)])])):(0,o.kq)("",!0)}]]);var je=n(66596),Fe=n(67671),Ae=n(10252),Oe=n(58394),Ee=n(67952),ze=n(37230),Pe=n(19003),Ie=n(989),xe=n(66141);function Te(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function $e(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Te(Object(n),!0).forEach((function(t){(0,N.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Te(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}ye.vI.add(_e.RKn,_e.Mm7,_e.cf$,_e.gPx,_e.NBC,_e.IJ7);var Be=function(e){return Number(e.substring(0,e.length-2))};const Ue={props:["statusId","statusText","statusIsSensitive","statusPoll","statusFiles","statusMediaDescriptions","statusScope","statusContentType","replyTo","repliedUser","attentions","copyMessageScope","subject","disableSubject","disableScopeSelector","disableVisibilitySelector","disableNotice","disableLockWarning","disablePolls","disableSensitivityCheckbox","disableSubmit","disablePreview","placeholder","maxHeight","postHandler","preserveFocus","autoFocus","fileLimit","submitOnEnter","emojiPickerPlacement","optimisticPosting"],emits:["posted","resize","mediaplay","mediapause"],components:{MediaUpload:oe.Z,EmojiInput:ie.Z,PollForm:Se,ScopeSelector:re.Z,Checkbox:xe.Z,Select:De.Z,Attachment:je.Z,StatusContent:Ae.Z,Gallery:Fe.Z},mounted:function(){if(this.updateIdempotencyKey(),this.resize(this.$refs.textarea),this.replyTo){var e=this.$refs.textarea.value.length;this.$refs.textarea.setSelectionRange(e,e)}(this.replyTo||this.autoFocus)&&this.$refs.textarea.focus()},data:function(){var e=this.$route.query.message||"",t=this.$store.getters.mergedConfig.scopeCopy;if(this.replyTo){var n=this.$store.state.users.currentUser;e=function(e,t){var n=e.user,o=e.attentions,r=void 0===o?[]:o,i=(0,Z.Z)(r);i.unshift(n),i=K()(i,"id"),i=Q()(i,{id:t.id});var s=Y()(i,(function(e){return"@".concat(e.screen_name)}));return s.length>0?s.join(" ")+" ":""}({user:this.repliedUser,attentions:this.attentions},n)}var o=this.copyMessageScope&&t||"direct"===this.copyMessageScope?this.copyMessageScope:this.$store.state.users.currentUser.default_scope,r=this.$store.getters.mergedConfig,i=r.postContentType,s=r.sensitiveByDefault,a={spoilerText:this.subject||"",status:e,nsfw:!!s,files:[],poll:{},mediaDescriptions:{},visibility:o,contentType:i};if(this.statusId){var u=this.statusContentType||i;a={spoilerText:this.subject||"",status:this.statusText||"",nsfw:this.statusIsSensitive||!!s,files:this.statusFiles||[],poll:this.statusPoll||{},mediaDescriptions:this.statusMediaDescriptions||{},visibility:this.statusScope||o,contentType:u,quoting:!1}}return{randomSeed:(0,ne.Z)(),dropFiles:[],uploadingFiles:!1,error:null,posting:!1,highlighted:0,newStatus:a,caret:0,pollFormVisible:!1,showDropIcon:"hide",dropStopTimeout:null,preview:null,previewLoading:!1,emojiInputShown:!1,idempotencyKey:""}},computed:$e($e({users:function(){return this.$store.state.users.users},userDefaultScope:function(){return this.$store.state.users.currentUser.default_scope},showAllScopes:function(){return!this.mergedConfig.minimalScopesMode},emojiUserSuggestor:function(){return(0,Pe.ZP)({emoji:[].concat((0,Z.Z)(this.$store.getters.standardEmojiList),(0,Z.Z)(this.$store.state.instance.customEmoji)),store:this.$store})},emojiSuggestor:function(){return(0,Pe.ZP)({emoji:[].concat((0,Z.Z)(this.$store.getters.standardEmojiList),(0,Z.Z)(this.$store.state.instance.customEmoji))})},emoji:function(){return this.$store.getters.standardEmojiList||[]},customEmoji:function(){return this.$store.state.instance.customEmoji||[]},statusLength:function(){return this.newStatus.status.length},spoilerTextLength:function(){return this.newStatus.spoilerText.length},statusLengthLimit:function(){return this.$store.state.instance.textlimit},hasStatusLengthLimit:function(){return this.statusLengthLimit>0},charactersLeft:function(){return this.statusLengthLimit-(this.statusLength+this.spoilerTextLength)},isOverLengthLimit:function(){return this.hasStatusLengthLimit&&this.charactersLeft<0},minimalScopesMode:function(){return this.$store.state.instance.minimalScopesMode},alwaysShowSubject:function(){return this.mergedConfig.alwaysShowSubjectInput},postFormats:function(){return this.$store.state.instance.postFormats||[]},safeDMEnabled:function(){return this.$store.state.instance.safeDM},pollsAvailable:function(){return this.$store.state.instance.pollsAvailable&&this.$store.state.instance.pollLimits.max_options>=2&&!0!==this.disablePolls},hideScopeNotice:function(){return this.disableNotice||this.$store.getters.mergedConfig.hideScopeNotice},pollContentError:function(){return this.pollFormVisible&&this.newStatus.poll&&this.newStatus.poll.error},showPreview:function(){return!this.disablePreview&&(!!this.preview||this.previewLoading)},emptyStatus:function(){return""===this.newStatus.status.trim()&&0===this.newStatus.files.length},uploadFileLimitReached:function(){return this.newStatus.files.length>=this.fileLimit},isEdit:function(){return void 0!==this.statusId&&""!==this.statusId.trim()},quotable:function(){if(!this.$store.state.instance.quotingAvailable)return!1;if(!this.replyTo)return!1;var e=this.$store.state.statuses.allStatusesObject[this.replyTo];return!!e&&("public"===e.visibility||"unlisted"===e.visibility||"local"===e.visibility||"private"===e.visibility&&e.user.id===this.$store.state.users.currentUser.id)}},(0,Ie.Se)(["mergedConfig"])),(0,Ie.rn)({mobileLayout:function(e){return e.interface.mobileLayout}})),watch:{newStatus:{deep:!0,handler:function(){this.statusChanged()}}},methods:{statusChanged:function(){this.autoPreview(),this.updateIdempotencyKey()},clearStatus:function(){var e=this,t=this.newStatus;this.newStatus={status:"",spoilerText:"",files:[],visibility:t.visibility,contentType:t.contentType,poll:{},mediaDescriptions:{},quoting:!1},this.pollFormVisible=!1,this.$refs.mediaUpload&&this.$refs.mediaUpload.clearFile(),this.clearPollForm(),this.preserveFocus&&this.$nextTick((function(){e.$refs.textarea.focus()}));var n=this.$el.querySelector("textarea");n.style.height="auto",n.style.height=void 0,this.error=null,this.preview&&this.previewStatus()},postStatus:function(e,t){var n=arguments,o=this;return(0,q.Z)(ee().mark((function r(){var i,s,a,u;return ee().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(n.length>2&&void 0!==n[2]&&n[2],!o.posting||o.optimisticPosting){r.next=3;break}return r.abrupt("return");case 3:if(!o.disableSubmit){r.next=5;break}return r.abrupt("return");case 5:if(!o.emojiInputShown){r.next=7;break}return r.abrupt("return");case 7:if(o.submitOnEnter&&(e.stopPropagation(),e.preventDefault()),!o.optimisticPosting||!o.emptyStatus&&!o.isOverLengthLimit){r.next=10;break}return r.abrupt("return");case 10:if(!o.emptyStatus){r.next=13;break}return o.error=o.$t("post_status.empty_status_error"),r.abrupt("return");case 13:if(s=o.pollFormVisible?o.newStatus.poll:{},!o.pollContentError){r.next=17;break}return o.error=o.pollContentError,r.abrupt("return");case 17:return o.posting=!0,r.prev=18,r.next=21,o.setAllMediaDescriptions();case 21:r.next=28;break;case 23:return r.prev=23,r.t0=r.catch(18),o.error=o.$t("post_status.media_description_error"),o.posting=!1,r.abrupt("return");case 28:a=t.quoting?"quoteId":"inReplyToStatusId",i={status:t.status,spoilerText:t.spoilerText||null,visibility:t.visibility,sensitive:t.nsfw,media:t.files,store:o.$store},(0,N.Z)(i,a,o.replyTo),(0,N.Z)(i,"contentType",t.contentType),(0,N.Z)(i,"poll",s),(0,N.Z)(i,"idempotencyKey",o.idempotencyKey),u=i,(o.postHandler?o.postHandler:te.Z.postStatus)(u).then((function(e){e.error?o.error=e.error:(o.clearStatus(),o.$emit("posted",e)),o.posting=!1}));case 32:case"end":return r.stop()}}),r,null,[[18,23]])})))()},previewStatus:function(){var e,t=this;if(this.emptyStatus&&""===this.newStatus.spoilerText.trim())return this.preview={error:this.$t("post_status.preview_empty")},void(this.previewLoading=!1);var n=this.newStatus;this.previewLoading=!0;var o=n.quoting?"quoteId":"inReplyToStatusId";te.Z.postStatus((e={status:n.status,spoilerText:n.spoilerText||null,visibility:n.visibility,sensitive:n.nsfw,media:[],store:this.$store},(0,N.Z)(e,o,this.replyTo),(0,N.Z)(e,"contentType",n.contentType),(0,N.Z)(e,"poll",{}),(0,N.Z)(e,"preview",!0),e)).then((function(e){t.previewLoading&&(e.error?t.preview={error:e.error}:t.preview=e)})).catch((function(e){t.preview={error:e}})).finally((function(){t.previewLoading=!1}))},debouncePreviewStatus:H()((function(){this.previewStatus()}),500),autoPreview:function(){this.preview&&(this.previewLoading=!0,this.debouncePreviewStatus())},closePreview:function(){this.preview=null,this.previewLoading=!1},togglePreview:function(){this.showPreview?this.closePreview():this.previewStatus()},addMediaFile:function(e){this.newStatus.files.push(e),this.$emit("resize",{delayed:!0})},removeMediaFile:function(e){var t=this.newStatus.files.indexOf(e);this.newStatus.files.splice(t,1),this.$emit("resize")},editAttachment:function(e,t){this.newStatus.mediaDescriptions[e.id]=t},shiftUpMediaFile:function(e){var t=this.newStatus.files,n=this.newStatus.files.indexOf(e);t.splice(n,1),t.splice(n-1,0,e)},shiftDnMediaFile:function(e){var t=this.newStatus.files,n=this.newStatus.files.indexOf(e);t.splice(n,1),t.splice(n+1,0,e)},uploadFailed:function(e,t){t=t||{},this.error=this.$t("upload.error.base")+" "+this.$t("upload.error."+e,t)},startedUploadingFiles:function(){this.uploadingFiles=!0},finishedUploadingFiles:function(){this.$emit("resize"),this.uploadingFiles=!1},type:function(e){return Oe.ZP.fileType(e.mimetype)},paste:function(e){this.autoPreview(),this.resize(e),e.clipboardData.files.length>0&&(e.preventDefault(),this.dropFiles=[e.clipboardData.files[0]])},fileDrop:function(e){e.dataTransfer&&e.dataTransfer.types.includes("Files")&&(e.preventDefault(),this.dropFiles=e.dataTransfer.files,clearTimeout(this.dropStopTimeout),this.showDropIcon="hide")},fileDragStop:function(e){var t=this;clearTimeout(this.dropStopTimeout),this.showDropIcon="fade",this.dropStopTimeout=setTimeout((function(){return t.showDropIcon="hide"}),500)},fileDrag:function(e){e.dataTransfer.dropEffect=this.uploadFileLimitReached?"none":"copy",e.dataTransfer&&e.dataTransfer.types.includes("Files")&&(clearTimeout(this.dropStopTimeout),this.showDropIcon="show")},onEmojiInputInput:function(e){var t=this;this.$nextTick((function(){t.resize(t.$refs.textarea)}))},resize:function(e){var t=e.target||e;if(t instanceof window.Element){if(""===t.value)return t.style.height=null,void this.$emit("resize");var n=this.$refs.form,o=this.$refs.bottom,r=window.getComputedStyle(o)["padding-bottom"],i=Be(r),s=this.$el.closest(".column.-scrollable")||this.$el.closest(".post-form-modal-view")||window,a=window.getComputedStyle(t)["padding-top"],u=window.getComputedStyle(t)["padding-bottom"],c=Be(a)+Be(u),l=Be(t.style.height),d=s===window?s.scrollY:s.scrollTop,p=s===window?s.innerHeight:s.offsetHeight,m=d+p;t.style.height="auto";var h=Math.floor(t.scrollHeight-c),f=this.maxHeight?Math.min(h,this.maxHeight):h;Math.abs(f-l)<=1&&(f=l),t.style.height="".concat(f,"px"),this.$emit("resize",f);var g=o.offsetHeight+(0,Ee.y)(o,s).top+i,v=m<g,w=p<n.offsetHeight,b=g-m,y=!v||w&&this.$refs.textarea.selectionStart!==this.$refs.textarea.value.length?0:b,D=Math.round(d+y);s===window?s.scroll(0,D):s.scrollTop=D}},showEmojiPicker:function(){this.$refs.textarea.focus(),this.$refs["emoji-input"].triggerShowPicker()},clearError:function(){this.error=null},changeVis:function(e){this.newStatus.visibility=e},togglePollForm:function(){this.pollFormVisible=!this.pollFormVisible},setPoll:function(e){this.newStatus.poll=e},clearPollForm:function(){this.$refs.pollForm&&this.$refs.pollForm.clear()},dismissScopeNotice:function(){this.$store.dispatch("setOption",{name:"hideScopeNotice",value:!0})},setMediaDescription:function(e){var t=this.newStatus.mediaDescriptions[e];if(t&&""!==t.trim())return te.Z.setMediaDescription({store:this.$store,id:e,description:t})},setAllMediaDescriptions:function(){var e=this,t=this.newStatus.files.map((function(e){return e.id}));return Promise.all(t.map((function(t){return e.setMediaDescription(t)})))},handleEmojiInputShow:function(e){this.emojiInputShown=e},updateIdempotencyKey:function(){this.idempotencyKey=Date.now().toString()},openProfileTab:function(){this.$store.dispatch("openSettingsModalTab","profile")},propsToNative:function(e){return(0,ze.X)(e)}}},Me=(0,Ce.Z)(Ue,[["render",function(e,t,n,q,N,Z){var W=(0,o.up)("i18n-t"),H=(0,o.up)("FAIcon"),V=(0,o.up)("StatusContent"),K=(0,o.up)("EmojiInput"),G=(0,o.up)("scope-selector"),Y=(0,o.up)("Select"),J=(0,o.up)("poll-form"),Q=(0,o.up)("media-upload"),X=(0,o.up)("gallery"),ee=(0,o.up)("Checkbox");return(0,o.wg)(),(0,o.iD)("div",s,[(0,o._)("form",{autocomplete:"off",onSubmit:t[27]||(t[27]=(0,r.iM)((function(){}),["prevent"])),onDragover:t[28]||(t[28]=(0,r.iM)((function(){return e.fileDrag&&e.fileDrag.apply(e,arguments)}),["prevent"]))},[(0,o._)("div",a,[e.$store.state.users.currentUser.locked||"private"!=e.newStatus.visibility||e.disableLockWarning?(0,o.kq)("",!0):((0,o.wg)(),(0,o.j4)(W,{key:0,keypath:"post_status.account_not_locked_warning",tag:"p",class:"visibility-notice",scope:"global"},{default:(0,o.w5)((function(){return[(0,o._)("button",{class:"button-unstyled -link",onClick:t[0]||(t[0]=function(){return e.openProfileTab&&e.openProfileTab.apply(e,arguments)})},(0,i.zw)(e.$t("post_status.account_not_locked_warning_link")),1)]})),_:1})),e.hideScopeNotice||"public"!==e.newStatus.visibility?e.hideScopeNotice||"unlisted"!==e.newStatus.visibility?!e.hideScopeNotice&&"private"===e.newStatus.visibility&&e.$store.state.users.currentUser.locked?((0,o.wg)(),(0,o.iD)("p",p,[(0,o._)("span",null,(0,i.zw)(e.$t("post_status.scope_notice.private")),1),(0,o._)("a",{class:"fa-scale-110 fa-old-padding dismiss",title:e.$t("post_status.scope_notice_dismiss"),role:"button",tabindex:"0",onClick:t[3]||(t[3]=(0,r.iM)((function(t){return e.dismissScopeNotice()}),["prevent"]))},[(0,o.Wm)(H,{icon:"times"})],8,m)])):"direct"===e.newStatus.visibility?((0,o.wg)(),(0,o.iD)("p",h,[e.safeDMEnabled?((0,o.wg)(),(0,o.iD)("span",f,(0,i.zw)(e.$t("post_status.direct_warning_to_first_only")),1)):((0,o.wg)(),(0,o.iD)("span",g,(0,i.zw)(e.$t("post_status.direct_warning_to_all")),1))])):(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("p",l,[(0,o._)("span",null,(0,i.zw)(e.$t("post_status.scope_notice.unlisted")),1),(0,o._)("a",{class:"fa-scale-110 fa-old-padding dismiss",title:e.$t("post_status.scope_notice_dismiss"),role:"button",tabindex:"0",onClick:t[2]||(t[2]=(0,r.iM)((function(t){return e.dismissScopeNotice()}),["prevent"]))},[(0,o.Wm)(H,{icon:"times"})],8,d)])):((0,o.wg)(),(0,o.iD)("p",u,[(0,o._)("span",null,(0,i.zw)(e.$t("post_status.scope_notice.public")),1),(0,o._)("a",{class:"fa-scale-110 fa-old-padding dismiss",title:e.$t("post_status.scope_notice_dismiss"),role:"button",tabindex:"0",onClick:t[1]||(t[1]=(0,r.iM)((function(t){return e.dismissScopeNotice()}),["prevent"]))},[(0,o.Wm)(H,{icon:"times"})],8,c)])),e.isEdit?((0,o.wg)(),(0,o.iD)("div",v,[(0,o._)("p",null,(0,i.zw)(e.$t("post_status.edit_remote_warning")),1),(0,o._)("p",null,(0,i.zw)(e.$t("post_status.edit_unsupported_warning")),1)])):(0,o.kq)("",!0),e.disablePreview?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",w,[(0,o._)("a",{class:"preview-toggle faint",onClick:t[4]||(t[4]=(0,r.iM)((function(){return e.togglePreview&&e.togglePreview.apply(e,arguments)}),["stop","prevent"]))},[(0,o.Uk)((0,i.zw)(e.$t("post_status.preview"))+" ",1),(0,o.Wm)(H,{icon:e.showPreview?"chevron-left":"chevron-right"},null,8,["icon"])]),(0,o.wy)((0,o._)("div",b,[(0,o.Wm)(H,{class:"fa-old-padding",spin:"",icon:"circle-notch"})],512),[[r.F8,e.previewLoading]])])),e.showPreview?((0,o.wg)(),(0,o.iD)("div",y,[e.preview?e.preview.error?((0,o.wg)(),(0,o.iD)("div",_,(0,i.zw)(e.preview.error),1)):((0,o.wg)(),(0,o.j4)(V,{key:2,status:e.preview,class:"preview-status"},null,8,["status"])):((0,o.wg)(),(0,o.iD)("div",D,(0,i.zw)(e.$t("general.loading")),1))])):(0,o.kq)("",!0),e.quotable?((0,o.wg)(),(0,o.iD)("div",k,[(0,o._)("button",{id:"reply-or-quote-option-".concat(e.randomSeed,"-reply"),class:(0,i.C_)(["btn button-default reply-or-quote-option",{toggled:!e.newStatus.quoting}]),tabindex:"0",role:"radio","aria-labelledby":"reply-or-quote-option-".concat(e.randomSeed,"-reply"),"aria-checked":!e.newStatus.quoting,onClick:t[5]||(t[5]=function(t){return e.newStatus.quoting=!1})},(0,i.zw)(e.$t("post_status.reply_option")),11,C),(0,o._)("button",{id:"reply-or-quote-option-".concat(e.randomSeed,"-quote"),class:(0,i.C_)(["btn button-default reply-or-quote-option",{toggled:e.newStatus.quoting}]),tabindex:"0",role:"radio","aria-labelledby":"reply-or-quote-option-".concat(e.randomSeed,"-quote"),"aria-checked":e.newStatus.quoting,onClick:t[6]||(t[6]=function(t){return e.newStatus.quoting=!0})},(0,i.zw)(e.$t("post_status.quote_option")),11,S)])):(0,o.kq)("",!0),e.disableSubject||!e.newStatus.spoilerText&&!e.alwaysShowSubject?(0,o.kq)("",!0):((0,o.wg)(),(0,o.j4)(K,{key:9,modelValue:e.newStatus.spoilerText,"onUpdate:modelValue":t[8]||(t[8]=function(t){return e.newStatus.spoilerText=t}),"enable-emoji-picker":"",suggest:e.emojiSuggestor,class:"form-control"},{default:(0,o.w5)((function(n){return[(0,o.wy)((0,o._)("input",(0,o.dG)({"onUpdate:modelValue":t[7]||(t[7]=function(t){return e.newStatus.spoilerText=t}),type:"text",placeholder:e.$t("post_status.content_warning"),disabled:e.posting&&!e.optimisticPosting},e.propsToNative(n),{size:"1",class:"form-post-subject"}),null,16,j),[[r.nr,e.newStatus.spoilerText]])]})),_:1},8,["modelValue","suggest"])),(0,o.Wm)(K,{ref:"emoji-input",modelValue:e.newStatus.status,"onUpdate:modelValue":t[16]||(t[16]=function(t){return e.newStatus.status=t}),suggest:e.emojiUserSuggestor,placement:e.emojiPickerPlacement,class:"form-control main-input","enable-emoji-picker":"","hide-emoji-button":"","newline-on-ctrl-enter":e.submitOnEnter,"enable-sticker-picker":"",onInput:e.onEmojiInputInput,onStickerUploaded:e.addMediaFile,onStickerUploadFailed:e.uploadFailed,onShown:e.handleEmojiInputShow},{default:(0,o.w5)((function(n){return[(0,o.wy)((0,o._)("textarea",(0,o.dG)({ref:"textarea","onUpdate:modelValue":t[9]||(t[9]=function(t){return e.newStatus.status=t}),placeholder:e.placeholder||e.$t("post_status.default"),rows:"1",cols:"1",disabled:e.posting&&!e.optimisticPosting,class:["form-post-body",{"scrollable-form":!!e.maxHeight}]},e.propsToNative(n),{onKeydown:[t[10]||(t[10]=(0,r.D2)((0,r.iM)((function(t){return e.submitOnEnter&&e.postStatus(t,e.newStatus)}),["exact"]),["enter"])),t[11]||(t[11]=(0,r.D2)((0,r.iM)((function(t){return e.postStatus(t,e.newStatus)}),["meta"]),["enter"])),t[12]||(t[12]=(0,r.D2)((0,r.iM)((function(t){return!e.submitOnEnter&&e.postStatus(t,e.newStatus)}),["ctrl"]),["enter"]))],onInput:t[13]||(t[13]=function(){return e.resize&&e.resize.apply(e,arguments)}),onCompositionupdate:t[14]||(t[14]=function(){return e.resize&&e.resize.apply(e,arguments)}),onPaste:t[15]||(t[15]=function(){return e.paste&&e.paste.apply(e,arguments)})}),null,16,F),[[r.nr,e.newStatus.status]]),e.hasStatusLengthLimit?((0,o.wg)(),(0,o.iD)("p",{key:0,class:(0,i.C_)(["character-counter faint",{error:e.isOverLengthLimit}])},(0,i.zw)(e.charactersLeft),3)):(0,o.kq)("",!0)]})),_:1},8,["modelValue","suggest","placement","newline-on-ctrl-enter","onInput","onStickerUploaded","onStickerUploadFailed","onShown"]),e.disableScopeSelector?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",A,[e.disableVisibilitySelector?(0,o.kq)("",!0):((0,o.wg)(),(0,o.j4)(G,{key:0,"show-all":e.showAllScopes,"user-default":e.userDefaultScope,"original-scope":e.copyMessageScope,"initial-scope":e.newStatus.visibility,"on-scope-change":e.changeVis},null,8,["show-all","user-default","original-scope","initial-scope","on-scope-change"])),e.postFormats.length>1?((0,o.wg)(),(0,o.iD)("div",O,[(0,o.Wm)(Y,{id:"post-content-type",modelValue:e.newStatus.contentType,"onUpdate:modelValue":t[17]||(t[17]=function(t){return e.newStatus.contentType=t}),class:"form-control",attrs:{"aria-label":e.$t("post_status.content_type_selection")}},{default:(0,o.w5)((function(){return[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.postFormats,(function(t){return(0,o.wg)(),(0,o.iD)("option",{key:t,value:t},(0,i.zw)(e.$t('post_status.content_type["'.concat(t,'"]'))),9,E)})),128))]})),_:1},8,["modelValue","attrs"])])):(0,o.kq)("",!0),1===e.postFormats.length&&"text/plain"!==e.postFormats[0]?((0,o.wg)(),(0,o.iD)("div",z,[(0,o._)("span",P,(0,i.zw)(e.$t('post_status.content_type["'.concat(e.postFormats[0],'"]'))),1)])):(0,o.kq)("",!0)]))]),e.pollsAvailable?((0,o.wg)(),(0,o.j4)(J,{key:0,ref:"pollForm",visible:e.pollFormVisible,onUpdatePoll:e.setPoll},null,8,["visible","onUpdatePoll"])):(0,o.kq)("",!0),(0,o._)("div",I,[(0,o._)("div",x,[(0,o.Wm)(Q,{ref:"mediaUpload",class:"media-upload-icon","drop-files":e.dropFiles,disabled:e.uploadFileLimitReached,onUploading:e.startedUploadingFiles,onUploaded:e.addMediaFile,onUploadFailed:e.uploadFailed,onAllUploaded:e.finishedUploadingFiles},null,8,["drop-files","disabled","onUploading","onUploaded","onUploadFailed","onAllUploaded"]),(0,o._)("button",{class:"emoji-icon button-unstyled",title:e.$t("emoji.add_emoji"),onClick:t[18]||(t[18]=function(){return e.showEmojiPicker&&e.showEmojiPicker.apply(e,arguments)})},[(0,o.Wm)(H,{icon:"smile-beam"})],8,T),e.pollsAvailable?((0,o.wg)(),(0,o.iD)("button",{key:0,class:(0,i.C_)(["poll-icon button-unstyled",{selected:e.pollFormVisible}]),title:e.$t("polls.add_poll"),onClick:t[19]||(t[19]=function(){return e.togglePollForm&&e.togglePollForm.apply(e,arguments)})},[(0,o.Wm)(H,{icon:"poll-h"})],10,$)):(0,o.kq)("",!0)]),e.posting?((0,o.wg)(),(0,o.iD)("button",B,(0,i.zw)(e.$t("post_status.posting")),1)):e.isOverLengthLimit?((0,o.wg)(),(0,o.iD)("button",U,(0,i.zw)(e.$t("post_status.post")),1)):((0,o.wg)(),(0,o.iD)("button",{key:2,disabled:e.uploadingFiles||e.disableSubmit,class:"btn button-default",onClick:t[20]||(t[20]=(0,r.iM)((function(t){return e.postStatus(t,e.newStatus)}),["stop","prevent"]))},(0,i.zw)(e.$t("post_status.post")),9,M))],512),(0,o.wy)((0,o._)("div",{style:(0,i.j5)({animation:"show"===e.showDropIcon?"fade-in 0.25s":"fade-out 0.5s"}),class:"drop-indicator",onDragleave:t[21]||(t[21]=function(){return e.fileDragStop&&e.fileDragStop.apply(e,arguments)}),onDrop:t[22]||(t[22]=(0,r.iM)((function(){return e.fileDrop&&e.fileDrop.apply(e,arguments)}),["stop"]))},[(0,o.Wm)(H,{icon:e.uploadFileLimitReached?"ban":"upload"},null,8,["icon"])],36),[[r.F8,"hide"!==e.showDropIcon]]),e.error?((0,o.wg)(),(0,o.iD)("div",L,[(0,o.Uk)(" Error: "+(0,i.zw)(e.error)+" ",1),(0,o._)("button",{class:"button-unstyled",onClick:t[23]||(t[23]=function(){return e.clearError&&e.clearError.apply(e,arguments)})},[(0,o.Wm)(H,{class:"fa-scale-110 fa-old-padding",icon:"times"})])])):(0,o.kq)("",!0),e.newStatus.files&&e.newStatus.files.length>0?((0,o.wg)(),(0,o.j4)(X,{key:2,class:"attachments",grid:!0,nsfw:!1,attachments:e.newStatus.files,descriptions:e.newStatus.mediaDescriptions,"set-media":function(){return e.$store.dispatch("setMedia",e.newStatus.files)},editable:!0,"edit-attachment":e.editAttachment,"remove-attachment":e.removeMediaFile,"shift-up-attachment":e.newStatus.files.length>1&&e.shiftUpMediaFile,"shift-dn-attachment":e.newStatus.files.length>1&&e.shiftDnMediaFile,onPlay:t[24]||(t[24]=function(t){return e.$emit("mediaplay",e.attachment.id)}),onPause:t[25]||(t[25]=function(t){return e.$emit("mediapause",e.attachment.id)})},null,8,["attachments","descriptions","set-media","edit-attachment","remove-attachment","shift-up-attachment","shift-dn-attachment"])):(0,o.kq)("",!0),e.newStatus.files.length>0&&!e.disableSensitivityCheckbox?((0,o.wg)(),(0,o.iD)("div",R,[(0,o.Wm)(ee,{modelValue:e.newStatus.nsfw,"onUpdate:modelValue":t[26]||(t[26]=function(t){return e.newStatus.nsfw=t})},{default:(0,o.w5)((function(){return[(0,o.Uk)((0,i.zw)(e.$t("post_status.attachments_sensitive")),1)]})),_:1},8,["modelValue"])])):(0,o.kq)("",!0)],32)],512)}]])},99507:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var o=n(66252),r=["disabled"];const i={props:{disabled:{type:Boolean},click:{type:Function,default:function(){return Promise.resolve()}}},data:function(){return{progress:!1}},methods:{onClick:function(){var e=this;this.progress=!0,this.click().then((function(){e.progress=!1}))}}},s=(0,n(83744).Z)(i,[["render",function(e,t,n,i,s,a){return(0,o.wg)(),(0,o.iD)("button",{disabled:s.progress||n.disabled,onClick:t[0]||(t[0]=function(){return a.onClick&&a.onClick.apply(a,arguments)})},[s.progress&&e.$slots.progress?(0,o.WI)(e.$slots,"progress",{key:0}):(0,o.WI)(e.$slots,"default",{key:1})],8,r)}]])},72895:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var o=n(66252),r=n(3577),i={class:"remote-follow"},s=["action"],a=["value"],u=(0,o._)("input",{type:"hidden",name:"profile",value:""},null,-1),c={click:"submit",class:"button-default remote-button"};const l={props:["user"],computed:{subscribeUrl:function(){var e=new URL(this.user.statusnet_profile_url);return"".concat(e.protocol,"//").concat(e.host,"/main/ostatus")}}},d=(0,n(83744).Z)(l,[["render",function(e,t,n,l,d,p){return(0,o.wg)(),(0,o.iD)("div",i,[(0,o._)("form",{method:"POST",action:e.subscribeUrl},[(0,o._)("input",{type:"hidden",name:"nickname",value:e.user.screen_name},null,8,a),u,(0,o._)("button",c,(0,r.zw)(e.$t("user_card.remote_follow")),1)],8,s)])}]])},54110:(e,t,n)=>{"use strict";n.d(t,{Z:()=>m});var o=n(66252),r=n(3577),i={key:0,class:"ScopeSelector"},s=["title"],a=["title"],u=["title"],c=["title"],l=n(9382),d=n(84131);l.vI.add(d.FU$,d.g4A,d.byT,d._1N);const p={props:["showAll","userDefault","originalScope","initialScope","onScopeChange"],data:function(){return{currentScope:this.initialScope}},computed:{showNothing:function(){return!(this.showPublic||this.showUnlisted||this.showPrivate||this.showDirect)},showPublic:function(){return"direct"!==this.originalScope&&this.shouldShow("public")},showUnlisted:function(){return"direct"!==this.originalScope&&this.shouldShow("unlisted")},showPrivate:function(){return"direct"!==this.originalScope&&this.shouldShow("private")},showDirect:function(){return this.shouldShow("direct")},css:function(){return{public:{selected:"public"===this.currentScope},unlisted:{selected:"unlisted"===this.currentScope},private:{selected:"private"===this.currentScope},direct:{selected:"direct"===this.currentScope}}}},methods:{shouldShow:function(e){return this.showAll||this.currentScope===e||this.originalScope===e||this.userDefault===e||"direct"===e},changeVis:function(e){this.currentScope=e,this.onScopeChange&&this.onScopeChange(e)}}},m=(0,n(83744).Z)(p,[["render",function(e,t,n,l,d,p){var m=(0,o.up)("FAIcon");return e.showNothing?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",i,[e.showDirect?((0,o.wg)(),(0,o.iD)("button",{key:0,class:(0,r.C_)(["button-unstyled scope",e.css.direct]),title:e.$t("post_status.scope.direct"),type:"button",onClick:t[0]||(t[0]=function(t){return e.changeVis("direct")})},[(0,o.Wm)(m,{icon:"envelope",class:"fa-scale-110 fa-old-padding"})],10,s)):(0,o.kq)("",!0),(0,o.Uk)(" "+(0,r.zw)(" ")+" "),e.showPrivate?((0,o.wg)(),(0,o.iD)("button",{key:1,class:(0,r.C_)(["button-unstyled scope",e.css.private]),title:e.$t("post_status.scope.private"),type:"button",onClick:t[1]||(t[1]=function(t){return e.changeVis("private")})},[(0,o.Wm)(m,{icon:"lock",class:"fa-scale-110 fa-old-padding"})],10,a)):(0,o.kq)("",!0),(0,o.Uk)(" "+(0,r.zw)(" ")+" "),e.showUnlisted?((0,o.wg)(),(0,o.iD)("button",{key:2,class:(0,r.C_)(["button-unstyled scope",e.css.unlisted]),title:e.$t("post_status.scope.unlisted"),type:"button",onClick:t[2]||(t[2]=function(t){return e.changeVis("unlisted")})},[(0,o.Wm)(m,{icon:"lock-open",class:"fa-scale-110 fa-old-padding"})],10,u)):(0,o.kq)("",!0),(0,o.Uk)(" "+(0,r.zw)(" ")+" "),e.showPublic?((0,o.wg)(),(0,o.iD)("button",{key:3,class:(0,r.C_)(["button-unstyled scope",e.css.public]),title:e.$t("post_status.scope.public"),type:"button",onClick:t[3]||(t[3]=function(t){return e.changeVis("public")})},[(0,o.Wm)(m,{icon:"globe",class:"fa-scale-110 fa-old-padding"})],10,c)):(0,o.kq)("",!0)]))}]])},76990:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});var o=n(66252),r=n(3577),i=["disabled","value"],s=n(9382),a=n(84131);s.vI.add(a.ptq);const u={emits:["update:modelValue"],props:["modelValue","disabled","unstyled","kind","attrs"]},c=(0,n(83744).Z)(u,[["render",function(e,t,n,s,a,u){var c=(0,o.up)("FAIcon");return(0,o.wg)(),(0,o.iD)("label",{class:(0,r.C_)(["Select input",{disabled:e.disabled,unstyled:e.unstyled}])},[(0,o._)("select",(0,o.dG)({disabled:e.disabled,value:e.modelValue},e.attrs,{onChange:t[0]||(t[0]=function(t){return e.$emit("update:modelValue",t.target.value)})}),[(0,o.WI)(e.$slots,"default")],16,i),(0,o.Uk)(" "+(0,r.zw)(" ")+" "),(0,o.Wm)(c,{class:"select-down-icon",icon:"chevron-down"})],2)}]])},24049:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>Qt});var o=n(66252),r=n(3577),i=n(49963),s={key:0,class:"alert error"},a={key:1,class:"status-container muted"},u={class:"status-username"},c={key:0,class:"mute-thread"},l={key:1,class:"mute-thread"},d=["title"],p={key:0,class:"pin"},m={class:"faint"},h={class:"right-side faint"},f=["title"],g=["data-tags"],v={key:0,class:"left-side"},w=["href"],b={class:"right-side"},y={key:0,class:"status-heading"},D={class:"heading-name-row"},_={class:"heading-left"},k=["title"],C=["title"],S=["src"],j={class:"heading-right"},F=["title"],A=["title"],O=["title","aria-expanded"],E=["title"],z={key:0,class:"heading-reply-row"},P={key:0,class:"glued-label reply-glued-label"},I=["aria-label"],x={class:"reply-to-text"},T={key:1,class:"reply-to-no-popover"},$={class:"reply-to-text"},B={key:1,class:"glued-label"},U=["aria-label"],M={class:"mentions-text"},L={key:1,class:"heading-edited-row"},R={key:1,class:"quoted-status"},q=["aria-expanded"],N={key:2,class:"quoted-status -unavailable-prompt"},Z=["href"],W={key:3,class:"replies"},H=["title"],V={key:1,class:"faint"},K=["onClick"],G={key:0,class:"favs-repeated-users"},Y={class:"stats"},J={class:"stat-count"},Q={class:"stat-title"},X={class:"stat-number"},ee={class:"stat-count"},te={class:"stat-title"},ne={class:"stat-number"},oe={class:"avatar-row"},re={key:5,class:"status-actions"},ie={key:3,class:"gravestone"},se={class:"left-side"},ae={class:"right-side"},ue={class:"deleted-text"},ce={key:4,class:"status-container reply-form"},le=n(4942),de=n(45578),pe=n.n(de),me=n(27955),he=n.n(me),fe={class:"ReplyButton"},ge=["title"],ve=["href","title"],we={key:2,class:"action-counter"},be=n(9382),ye=n(84131);be.vI.add(ye.Lh7,ye.r8p,ye.NBC);const De={name:"ReplyButton",props:["status","replying"],computed:{loggedIn:function(){return!!this.$store.state.users.currentUser},remoteInteractionLink:function(){return this.$store.getters.remoteInteractionLink({statusId:this.status.id})}}};var _e=n(83744);const ke=(0,_e.Z)(De,[["render",function(e,t,n,s,a,u){var c=(0,o.up)("FAIcon"),l=(0,o.up)("FALayers");return(0,o.wg)(),(0,o.iD)("div",fe,[e.loggedIn?((0,o.wg)(),(0,o.iD)("button",{key:0,class:(0,r.C_)(["button-unstyled interactive",{"-active":e.replying}]),title:e.$t("tool_tip.reply"),onClick:t[0]||(t[0]=(0,i.iM)((function(t){return e.$emit("toggle")}),["prevent"]))},[(0,o.Wm)(l,{class:"fa-old-padding-layer"},{default:(0,o.w5)((function(){return[(0,o.Wm)(c,{class:"fa-scale-110",icon:"reply"}),e.replying?((0,o.wg)(),(0,o.j4)(c,{key:1,class:"focus-marker",transform:"shrink-6 up-8 right-11",icon:"times"})):((0,o.wg)(),(0,o.j4)(c,{key:0,class:"focus-marker",transform:"shrink-6 up-8 right-11",icon:"plus"}))]})),_:1})],10,ge)):((0,o.wg)(),(0,o.iD)("a",{key:1,class:"button-unstyled interactive",target:"_blank",role:"button",href:e.remoteInteractionLink,title:e.$t("tool_tip.reply")},[(0,o.Wm)(l,{class:"fa-old-padding-layer"},{default:(0,o.w5)((function(){return[(0,o.Wm)(c,{class:"fa-scale-110",icon:"reply"}),e.replying?(0,o.kq)("",!0):((0,o.wg)(),(0,o.j4)(c,{key:0,class:"focus-marker",transform:"shrink-6 up-8 right-16",icon:"plus"}))]})),_:1})],8,ve)),e.status.replies_count>0?((0,o.wg)(),(0,o.iD)("span",we,(0,r.zw)(e.status.replies_count),1)):(0,o.kq)("",!0)])}]]);var Ce={class:"FavoriteButton"},Se=["title"],je=["title","href"],Fe={key:2,class:"action-counter"},Ae=n(989),Oe=n(5737);function Ee(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function ze(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ee(Object(n),!0).forEach((function(t){(0,le.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ee(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}be.vI.add(ye.Tab,Oe.Tab,ye.r8p,ye.Kl4,ye.LEp);const Pe={props:["status","loggedIn"],data:function(){return{animated:!1}},methods:{favorite:function(){var e=this;this.status.favorited?this.$store.dispatch("unfavorite",{id:this.status.id}):this.$store.dispatch("favorite",{id:this.status.id}),this.animated=!0,setTimeout((function(){e.animated=!1}),500)}},computed:ze(ze({},(0,Ae.Se)(["mergedConfig"])),{},{remoteInteractionLink:function(){return this.$store.getters.remoteInteractionLink({statusId:this.status.id})}})},Ie=(0,_e.Z)(Pe,[["render",function(e,t,n,s,a,u){var c=(0,o.up)("FAIcon"),l=(0,o.up)("FALayers");return(0,o.wg)(),(0,o.iD)("div",Ce,[e.loggedIn?((0,o.wg)(),(0,o.iD)("button",{key:0,class:(0,r.C_)(["button-unstyled interactive",e.status.favorited&&"-favorited"]),title:e.$t("tool_tip.favorite"),onClick:t[0]||(t[0]=(0,i.iM)((function(t){return e.favorite()}),["prevent"]))},[(0,o.Wm)(l,{class:"fa-scale-110 fa-old-padding-layer"},{default:(0,o.w5)((function(){return[(0,o.Wm)(c,{class:"fa-scale-110",icon:[e.status.favorited?"fas":"far","star"],spin:e.animated},null,8,["icon","spin"]),e.status.favorited?((0,o.wg)(),(0,o.j4)(c,{key:0,class:"active-marker",transform:"shrink-6 up-9 right-12",icon:"check"})):(0,o.kq)("",!0),e.status.favorited?((0,o.wg)(),(0,o.j4)(c,{key:2,class:"focus-marker",transform:"shrink-6 up-9 right-12",icon:"minus"})):((0,o.wg)(),(0,o.j4)(c,{key:1,class:"focus-marker",transform:"shrink-6 up-9 right-12",icon:"plus"}))]})),_:1})],10,Se)):((0,o.wg)(),(0,o.iD)("a",{key:1,class:"button-unstyled interactive",target:"_blank",role:"button",title:e.$t("tool_tip.favorite"),href:e.remoteInteractionLink},[(0,o.Wm)(l,{class:"fa-scale-110 fa-old-padding-layer"},{default:(0,o.w5)((function(){return[(0,o.Wm)(c,{class:"fa-scale-110",icon:["far","star"]}),(0,o.Wm)(c,{class:"focus-marker",transform:"shrink-6 up-9 right-12",icon:"plus"})]})),_:1})],8,je)),!e.mergedConfig.hidePostStats&&e.status.fave_num>0?((0,o.wg)(),(0,o.iD)("span",Fe,(0,r.zw)(e.status.fave_num),1)):(0,o.kq)("",!0)])}]]);var xe={class:"ReactButton"},Te=["title"],$e=n(84535),Be=n(91300);be.vI.add(ye.r8p,ye.NBC,Oe.RKn);const Ue={props:["status"],data:function(){return{filterWord:"",expanded:!1}},components:{Popover:$e.default,EmojiPicker:Be.Z},methods:{addReaction:function(e){var t=e.insertion,n=this.status.emoji_reactions.find((function(e){return e.name===t}));n&&n.me?this.$store.dispatch("unreactWithEmoji",{id:this.status.id,emoji:t}):this.$store.dispatch("reactWithEmoji",{id:this.status.id,emoji:t})},show:function(){this.expanded||this.$refs.picker.showPicker()},onShow:function(){this.expanded=!0},onClose:function(){this.expanded=!1}},computed:{hideCustomEmoji:function(){return!this.$store.state.instance.pleromaCustomEmojiReactionsAvailable}}},Me=(0,_e.Z)(Ue,[["render",function(e,t,n,r,s,a){var u=(0,o.up)("EmojiPicker"),c=(0,o.up)("FAIcon"),l=(0,o.up)("FALayers");return(0,o.wg)(),(0,o.iD)("span",xe,[(0,o.Wm)(u,{ref:"picker","enable-sticker-picker":e.enableStickerPicker,"hide-custom-emoji":e.hideCustomEmoji,class:"emoji-picker-panel",onEmoji:e.addReaction,onShow:e.onShow,onClose:e.onClose},null,8,["enable-sticker-picker","hide-custom-emoji","onEmoji","onShow","onClose"]),(0,o._)("span",{class:"button-unstyled popover-trigger",role:"button",tabindex:0,title:e.$t("tool_tip.add_reaction"),onClick:t[0]||(t[0]=(0,i.iM)((function(){return e.show&&e.show.apply(e,arguments)}),["stop","prevent"]))},[(0,o.Wm)(l,null,{default:(0,o.w5)((function(){return[(0,o.Wm)(c,{class:"fa-scale-110 fa-old-padding",icon:["far","smile-beam"]}),(0,o.wy)((0,o.Wm)(c,{class:"focus-marker",transform:"shrink-6 up-9 right-17",icon:"plus"},null,512),[[i.F8,!e.expanded]]),(0,o.wy)((0,o.Wm)(c,{class:"focus-marker",transform:"shrink-6 up-9 right-17",icon:"times"},null,512),[[i.F8,e.expanded]])]})),_:1})],8,Te)])}]]);var Le={class:"RetweetButton"},Re=["title"],qe={key:1},Ne=["title","href"],Ze={key:3,class:"no-event"},We=n(1447);be.vI.add(ye.x5v,ye.r8p,ye.Kl4,ye.LEp);const He={props:["status","loggedIn","visibility"],components:{ConfirmModal:We.Z},data:function(){return{animated:!1,showingConfirmDialog:!1}},methods:{retweet:function(){!this.status.repeated&&this.shouldConfirmRepeat?this.showConfirmDialog():this.doRetweet()},doRetweet:function(){var e=this;this.status.repeated?this.$store.dispatch("unretweet",{id:this.status.id}):this.$store.dispatch("retweet",{id:this.status.id}),this.animated=!0,setTimeout((function(){e.animated=!1}),500),this.hideConfirmDialog()},showConfirmDialog:function(){this.showingConfirmDialog=!0},hideConfirmDialog:function(){this.showingConfirmDialog=!1}},computed:{mergedConfig:function(){return this.$store.getters.mergedConfig},remoteInteractionLink:function(){return this.$store.getters.remoteInteractionLink({statusId:this.status.id})},shouldConfirmRepeat:function(){return this.mergedConfig.modalOnRepeat}}},Ve=(0,_e.Z)(He,[["render",function(e,t,n,s,a,u){var c=(0,o.up)("FAIcon"),l=(0,o.up)("FALayers"),d=(0,o.up)("confirm-modal");return(0,o.wg)(),(0,o.iD)("div",Le,["private"!==e.visibility&&"direct"!==e.visibility&&e.loggedIn?((0,o.wg)(),(0,o.iD)("button",{key:0,class:(0,r.C_)(["button-unstyled interactive",e.status.repeated&&"-repeated"]),title:e.$t("tool_tip.repeat"),onClick:t[0]||(t[0]=(0,i.iM)((function(t){return e.retweet()}),["prevent"]))},[(0,o.Wm)(l,{class:"fa-old-padding-layer"},{default:(0,o.w5)((function(){return[(0,o.Wm)(c,{class:"fa-scale-110",icon:"retweet",spin:e.animated},null,8,["spin"]),e.status.repeated?((0,o.wg)(),(0,o.j4)(c,{key:0,class:"active-marker",transform:"shrink-6 up-9 right-12",icon:"check"})):(0,o.kq)("",!0),e.status.repeated?((0,o.wg)(),(0,o.j4)(c,{key:2,class:"focus-marker",transform:"shrink-6 up-9 right-12",icon:"minus"})):((0,o.wg)(),(0,o.j4)(c,{key:1,class:"focus-marker",transform:"shrink-6 up-9 right-12",icon:"plus"}))]})),_:1})],10,Re)):e.loggedIn?((0,o.wg)(),(0,o.iD)("span",qe,[(0,o.Wm)(c,{class:"fa-scale-110 fa-old-padding",icon:"lock",title:e.$t("timeline.no_retweet_hint")},null,8,["title"])])):((0,o.wg)(),(0,o.iD)("a",{key:2,class:"button-unstyled interactive",target:"_blank",role:"button",title:e.$t("tool_tip.repeat"),href:e.remoteInteractionLink},[(0,o.Wm)(l,{class:"fa-old-padding-layer"},{default:(0,o.w5)((function(){return[(0,o.Wm)(c,{class:"fa-scale-110",icon:"retweet"}),(0,o.Wm)(c,{class:"focus-marker",transform:"shrink-6 up-9 right-12",icon:"plus"})]})),_:1})],8,Ne)),!e.mergedConfig.hidePostStats&&e.status.repeat_num>0?((0,o.wg)(),(0,o.iD)("span",Ze,(0,r.zw)(e.status.repeat_num),1)):(0,o.kq)("",!0),((0,o.wg)(),(0,o.j4)(o.lR,{to:"#modal"},[e.showingConfirmDialog?((0,o.wg)(),(0,o.j4)(d,{key:0,title:e.$t("status.repeat_confirm_title"),"confirm-text":e.$t("status.repeat_confirm_accept_button"),"cancel-text":e.$t("status.repeat_confirm_cancel_button"),onAccepted:e.doRetweet,onCancelled:e.hideConfirmDialog},{default:(0,o.w5)((function(){return[(0,o.Uk)((0,r.zw)(e.$t("status.repeat_confirm")),1)]})),_:1},8,["title","confirm-text","cancel-text","onAccepted","onCancelled"])):(0,o.kq)("",!0)]))])}]]);var Ke=["id"],Ge=["onClick"],Ye=["onClick"],Je=["onClick"],Qe=["onClick"],Xe=["onClick"],et=["onClick"],tt=["onClick"],nt=["onClick"],ot=["href"],rt=["onClick"],it={class:"button-unstyled popover-trigger"},st=n(93433),at=n(53599);function ut(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}be.vI.add(ye.cNd,ye.xVw,Oe.xVw,ye.Aq,ye.RP7,ye.EfQ,ye.Xjp,Oe.RrC,ye.qO$,ye.r8p,ye.NBC);const ct={props:["status"],components:{Popover:$e.default,ConfirmModal:We.Z},data:function(){return{expanded:!1,showingDeleteDialog:!1,randomSeed:(0,at.Z)()}},methods:{onShow:function(){this.expanded=!0},onClose:function(){this.expanded=!1},deleteStatus:function(){this.shouldConfirmDelete?this.showDeleteStatusConfirmDialog():this.doDeleteStatus()},doDeleteStatus:function(){this.$store.dispatch("deleteStatus",{id:this.status.id}),this.hideDeleteStatusConfirmDialog()},showDeleteStatusConfirmDialog:function(){this.showingDeleteDialog=!0},hideDeleteStatusConfirmDialog:function(){this.showingDeleteDialog=!1},pinStatus:function(){var e=this;this.$store.dispatch("pinStatus",this.status.id).then((function(){return e.$emit("onSuccess")})).catch((function(t){return e.$emit("onError",t.error.error)}))},unpinStatus:function(){var e=this;this.$store.dispatch("unpinStatus",this.status.id).then((function(){return e.$emit("onSuccess")})).catch((function(t){return e.$emit("onError",t.error.error)}))},muteConversation:function(){var e=this;this.$store.dispatch("muteConversation",this.status.id).then((function(){return e.$emit("onSuccess")})).catch((function(t){return e.$emit("onError",t.error.error)}))},unmuteConversation:function(){var e=this;this.$store.dispatch("unmuteConversation",this.status.id).then((function(){return e.$emit("onSuccess")})).catch((function(t){return e.$emit("onError",t.error.error)}))},copyLink:function(){var e=this;navigator.clipboard.writeText(this.statusLink).then((function(){return e.$emit("onSuccess")})).catch((function(t){return e.$emit("onError",t.error.error)}))},bookmarkStatus:function(){var e=this;this.$store.dispatch("bookmark",{id:this.status.id}).then((function(){return e.$emit("onSuccess")})).catch((function(t){return e.$emit("onError",t.error.error)}))},unbookmarkStatus:function(){var e=this;this.$store.dispatch("unbookmark",{id:this.status.id}).then((function(){return e.$emit("onSuccess")})).catch((function(t){return e.$emit("onError",t.error.error)}))},reportStatus:function(){this.$store.dispatch("openUserReportingModal",{userId:this.status.user.id,statusIds:[this.status.id]})},editStatus:function(){var e=this;this.$store.dispatch("fetchStatusSource",{id:this.status.id}).then((function(t){return e.$store.dispatch("openEditStatusModal",{statusId:e.status.id,subject:t.spoiler_text,statusText:t.text,statusIsSensitive:e.status.nsfw,statusPoll:e.status.poll,statusFiles:(0,st.Z)(e.status.attachments),visibility:e.status.visibility,statusContentType:t.content_type})}))},showStatusHistory:function(){var e=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ut(Object(n),!0).forEach((function(t){(0,le.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ut(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({},this.status);["attachments","created_at","emojis","text","raw_html","nsfw","poll","summary","summary_raw_html"].forEach((function(t){return delete e[t]})),this.$store.dispatch("openStatusHistoryModal",e)}},computed:{currentUser:function(){return this.$store.state.users.currentUser},canDelete:function(){if(this.currentUser)return this.currentUser.privileges.includes("messages_delete")||this.status.user.id===this.currentUser.id},ownStatus:function(){return this.status.user.id===this.currentUser.id},canPin:function(){return this.ownStatus&&("public"===this.status.visibility||"unlisted"===this.status.visibility)},canMute:function(){return!!this.currentUser},canBookmark:function(){return!!this.currentUser},statusLink:function(){return"".concat(this.$store.state.instance.server).concat(this.$router.resolve({name:"conversation",params:{id:this.status.id}}).href)},isEdited:function(){return null!==this.status.edited_at},editingAvailable:function(){return this.$store.state.instance.editingAvailable},shouldConfirmDelete:function(){return this.$store.getters.mergedConfig.modalOnDelete},triggerAttrs:function(){return{title:this.$t("status.more_actions"),id:"popup-trigger-".concat(this.randomSeed),"aria-controls":"popup-menu-".concat(this.randomSeed),"aria-expanded":this.expanded,"aria-haspopup":"menu"}}}},lt=(0,_e.Z)(ct,[["render",function(e,t,n,s,a,u){var c=(0,o.up)("FAIcon"),l=(0,o.up)("FALayers"),d=(0,o.up)("ConfirmModal"),p=(0,o.up)("Popover");return(0,o.wg)(),(0,o.j4)(p,{class:"ExtraButtons",trigger:"click","trigger-attrs":e.triggerAttrs,placement:"top",offset:{y:5},"bound-to":{x:"container"},"remove-padding":"",onShow:e.onShow,onClose:e.onClose},{content:(0,o.w5)((function(n){var s=n.close;return[(0,o._)("div",{class:"dropdown-menu",role:"menu",id:"popup-menu-".concat(e.randomSeed)},[e.canMute&&!e.status.thread_muted?((0,o.wg)(),(0,o.iD)("button",{key:0,class:"button-default dropdown-item dropdown-item-icon",role:"menuitem",onClick:t[0]||(t[0]=(0,i.iM)((function(){return e.muteConversation&&e.muteConversation.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(c,{"fixed-width":"",icon:"eye-slash"}),(0,o._)("span",null,(0,r.zw)(e.$t("status.mute_conversation")),1)])):(0,o.kq)("",!0),e.canMute&&e.status.thread_muted?((0,o.wg)(),(0,o.iD)("button",{key:1,class:"button-default dropdown-item dropdown-item-icon",role:"menuitem",onClick:t[1]||(t[1]=(0,i.iM)((function(){return e.unmuteConversation&&e.unmuteConversation.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(c,{"fixed-width":"",icon:"eye-slash"}),(0,o._)("span",null,(0,r.zw)(e.$t("status.unmute_conversation")),1)])):(0,o.kq)("",!0),!e.status.pinned&&e.canPin?((0,o.wg)(),(0,o.iD)("button",{key:2,class:"button-default dropdown-item dropdown-item-icon",role:"menuitem",onClick:[t[2]||(t[2]=(0,i.iM)((function(){return e.pinStatus&&e.pinStatus.apply(e,arguments)}),["prevent"])),s]},[(0,o.Wm)(c,{"fixed-width":"",icon:"thumbtack"}),(0,o._)("span",null,(0,r.zw)(e.$t("status.pin")),1)],8,Ge)):(0,o.kq)("",!0),e.status.pinned&&e.canPin?((0,o.wg)(),(0,o.iD)("button",{key:3,class:"button-default dropdown-item dropdown-item-icon",role:"menuitem",onClick:[t[3]||(t[3]=(0,i.iM)((function(){return e.unpinStatus&&e.unpinStatus.apply(e,arguments)}),["prevent"])),s]},[(0,o.Wm)(c,{"fixed-width":"",icon:"thumbtack"}),(0,o._)("span",null,(0,r.zw)(e.$t("status.unpin")),1)],8,Ye)):(0,o.kq)("",!0),e.canBookmark?((0,o.wg)(),(0,o.iD)(o.HY,{key:4},[e.status.bookmarked?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("button",{key:0,class:"button-default dropdown-item dropdown-item-icon",role:"menuitem",onClick:[t[4]||(t[4]=(0,i.iM)((function(){return e.bookmarkStatus&&e.bookmarkStatus.apply(e,arguments)}),["prevent"])),s]},[(0,o.Wm)(c,{"fixed-width":"",icon:["far","bookmark"]}),(0,o._)("span",null,(0,r.zw)(e.$t("status.bookmark")),1)],8,Je)),e.status.bookmarked?((0,o.wg)(),(0,o.iD)("button",{key:1,class:"button-default dropdown-item dropdown-item-icon",role:"menuitem",onClick:[t[5]||(t[5]=(0,i.iM)((function(){return e.unbookmarkStatus&&e.unbookmarkStatus.apply(e,arguments)}),["prevent"])),s]},[(0,o.Wm)(c,{"fixed-width":"",icon:"bookmark"}),(0,o._)("span",null,(0,r.zw)(e.$t("status.unbookmark")),1)],8,Qe)):(0,o.kq)("",!0)],64)):(0,o.kq)("",!0),e.ownStatus&&e.editingAvailable?((0,o.wg)(),(0,o.iD)("button",{key:5,class:"button-default dropdown-item dropdown-item-icon",role:"menuitem",onClick:[t[6]||(t[6]=(0,i.iM)((function(){return e.editStatus&&e.editStatus.apply(e,arguments)}),["prevent"])),s]},[(0,o.Wm)(c,{"fixed-width":"",icon:"pen"}),(0,o._)("span",null,(0,r.zw)(e.$t("status.edit")),1)],8,Xe)):(0,o.kq)("",!0),e.isEdited&&e.editingAvailable?((0,o.wg)(),(0,o.iD)("button",{key:6,class:"button-default dropdown-item dropdown-item-icon",role:"menuitem",onClick:[t[7]||(t[7]=(0,i.iM)((function(){return e.showStatusHistory&&e.showStatusHistory.apply(e,arguments)}),["prevent"])),s]},[(0,o.Wm)(c,{"fixed-width":"",icon:"history"}),(0,o._)("span",null,(0,r.zw)(e.$t("status.status_history")),1)],8,et)):(0,o.kq)("",!0),e.canDelete?((0,o.wg)(),(0,o.iD)("button",{key:7,class:"button-default dropdown-item dropdown-item-icon",role:"menuitem",onClick:[t[8]||(t[8]=(0,i.iM)((function(){return e.deleteStatus&&e.deleteStatus.apply(e,arguments)}),["prevent"])),s]},[(0,o.Wm)(c,{"fixed-width":"",icon:"times"}),(0,o._)("span",null,(0,r.zw)(e.$t("status.delete")),1)],8,tt)):(0,o.kq)("",!0),(0,o._)("button",{class:"button-default dropdown-item dropdown-item-icon",role:"menuitem",onClick:[t[9]||(t[9]=(0,i.iM)((function(){return e.copyLink&&e.copyLink.apply(e,arguments)}),["prevent"])),s]},[(0,o.Wm)(c,{"fixed-width":"",icon:"share-alt"}),(0,o._)("span",null,(0,r.zw)(e.$t("status.copy_link")),1)],8,nt),e.status.is_local?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("a",{key:8,class:"button-default dropdown-item dropdown-item-icon",role:"menuitem",title:"Source",href:e.status.external_url,target:"_blank"},[(0,o.Wm)(c,{"fixed-width":"",icon:"external-link-alt"}),(0,o._)("span",null,(0,r.zw)(e.$t("status.external_source")),1)],8,ot)),(0,o._)("button",{class:"button-default dropdown-item dropdown-item-icon",role:"menuitem",onClick:[t[10]||(t[10]=(0,i.iM)((function(){return e.reportStatus&&e.reportStatus.apply(e,arguments)}),["prevent"])),s]},[(0,o.Wm)(c,{"fixed-width":"",icon:["far","flag"]}),(0,o._)("span",null,(0,r.zw)(e.$t("user_card.report")),1)],8,rt)],8,Ke)]})),trigger:(0,o.w5)((function(){return[(0,o._)("span",it,[(0,o.Wm)(l,{class:"fa-old-padding-layer"},{default:(0,o.w5)((function(){return[(0,o.Wm)(c,{class:"fa-scale-110",icon:"ellipsis-h"}),(0,o.wy)((0,o.Wm)(c,{class:"focus-marker",transform:"shrink-6 up-8 right-16",icon:"plus"},null,512),[[i.F8,!e.expanded]]),(0,o.wy)((0,o.Wm)(c,{class:"focus-marker",transform:"shrink-6 up-8 right-16",icon:"times"},null,512),[[i.F8,e.expanded]])]})),_:1})]),((0,o.wg)(),(0,o.j4)(o.lR,{to:"#modal"},[e.showingDeleteDialog?((0,o.wg)(),(0,o.j4)(d,{key:0,title:e.$t("status.delete_confirm_title"),"cancel-text":e.$t("status.delete_confirm_cancel_button"),"confirm-text":e.$t("status.delete_confirm_accept_button"),onCancelled:e.hideDeleteStatusConfirmDialog,onAccepted:e.doDeleteStatus},{default:(0,o.w5)((function(){return[(0,o.Uk)((0,r.zw)(e.$t("status.delete_confirm")),1)]})),_:1},8,["title","cancel-text","confirm-text","onCancelled","onAccepted"])):(0,o.kq)("",!0)]))]})),_:1},8,["trigger-attrs","onShow","onClose"])}]]);var dt=n(45333),pt=n(48173),mt=n(19066),ht=n(1840),ft=n(10252),gt=n(92820),vt={key:1,class:"status-preview-no-content faint"},wt={key:2,class:"status-preview-no-content"},bt=n(13311),yt=n.n(bt);be.vI.add(ye.IJ7);const Dt={name:"StatusPopover",props:["statusId"],data:function(){return{error:!1}},computed:{status:function(){return yt()(this.$store.state.statuses.allStatuses,{id:this.statusId})}},components:{Status:(0,o.RC)((function(){return Promise.resolve().then(n.bind(n,24049))})),Popover:(0,o.RC)((function(){return Promise.resolve().then(n.bind(n,84535))}))},methods:{enter:function(){var e=this;if(!this.status){if(!this.statusId)return void(this.error=!0);this.$store.dispatch("fetchStatus",this.statusId).then((function(t){return e.error=!1})).catch((function(t){return e.error=!0}))}}},watch:{status:function(e,t){var n=this;e!==t&&this.$nextTick((function(){return n.$refs.popover.updateStyles()}))}}},_t=(0,_e.Z)(Dt,[["render",function(e,t,n,i,s,a){var u=(0,o.up)("Status"),c=(0,o.up)("FAIcon"),l=(0,o.up)("Popover");return(0,o.wg)(),(0,o.j4)(l,{ref:"popover",trigger:"hover","stay-on-click":!0,"popover-class":"popover-default status-popover","bound-to":{x:"container"},onShow:e.enter},{trigger:(0,o.w5)((function(){return[(0,o.WI)(e.$slots,"default")]})),content:(0,o.w5)((function(){return[e.status?((0,o.wg)(),(0,o.j4)(u,{key:0,"is-preview":!0,statusoid:e.status,compact:!0},null,8,["statusoid"])):e.error?((0,o.wg)(),(0,o.iD)("div",vt,(0,r.zw)(e.$t("status.status_unavailable")),1)):((0,o.wg)(),(0,o.iD)("div",wt,[(0,o.Wm)(c,{icon:"circle-notch",spin:"",size:"2x"})]))]})),_:3},8,["onShow"])}]]);var kt=n(22588),Ct={class:"user-list-popover"},St={class:"user-list-names"},jt={class:"user-list-screen-name"},Ft=n(42262);be.vI.add(ye.IJ7);const At={name:"UserListPopover",props:["users"],components:{RichContent:gt.Z,UnicodeDomainIndicator:Ft.Z,Popover:(0,o.RC)((function(){return Promise.resolve().then(n.bind(n,84535))})),UserAvatar:(0,o.RC)((function(){return Promise.resolve().then(n.bind(n,48173))}))},computed:{usersCapped:function(){return this.users.slice(0,16)}}},Ot=(0,_e.Z)(At,[["render",function(e,t,n,i,s,a){var u=(0,o.up)("UserAvatar"),c=(0,o.up)("RichContent"),l=(0,o.up)("UnicodeDomainIndicator"),d=(0,o.up)("FAIcon"),p=(0,o.up)("Popover");return(0,o.wg)(),(0,o.j4)(p,{trigger:"hover",placement:"top",offset:{y:5}},{trigger:(0,o.w5)((function(){return[(0,o.WI)(e.$slots,"default")]})),content:(0,o.w5)((function(){return[(0,o._)("div",Ct,[e.users.length?((0,o.wg)(!0),(0,o.iD)(o.HY,{key:0},(0,o.Ko)(e.usersCapped,(function(e){return(0,o.wg)(),(0,o.iD)("div",{key:e.id,class:"user-list-row"},[(0,o.Wm)(u,{user:e,class:"avatar-small",compact:!0},null,8,["user"]),(0,o._)("div",St,[(0,o.Wm)(c,{class:"username",title:"@"+e.screen_name_ui,html:e.name_html,emoji:e.emoji},null,8,["title","html","emoji"]),(0,o._)("span",jt,(0,r.zw)(e.screen_name_ui),1),(0,o.Wm)(l,{user:e},null,8,["user"])])])})),128)):((0,o.wg)(),(0,o.j4)(d,{key:1,icon:"circle-notch",spin:"",size:"3x"}))])]})),_:3})}]]);var Et={class:"EmojiReactions"},zt={class:"reaction-emoji"},Pt=["src"],It={key:1,class:"reaction-emoji reaction-emoji-content"},xt={class:"emoji-reaction-counts"},Tt=n(15861),$t=n(64687),Bt=n.n($t);be.vI.add(ye.r8p,ye.Kl4,ye.LEp);const Ut={name:"EmojiReactions",components:{UserAvatar:pt.default,UserListPopover:Ot},props:["status"],data:function(){return{showAll:!1}},computed:{tooManyReactions:function(){return this.status.emoji_reactions.length>12},emojiReactions:function(){return this.showAll?this.status.emoji_reactions:this.status.emoji_reactions.slice(0,12)},showMoreString:function(){return"+".concat(this.status.emoji_reactions.length-12)},accountsForEmoji:function(){return this.status.emoji_reactions.reduce((function(e,t){return e[t.name]=t.accounts||[],e}),{})},loggedIn:function(){return!!this.$store.state.users.currentUser},remoteInteractionLink:function(){return this.$store.getters.remoteInteractionLink({statusId:this.status.id})}},methods:{toggleShowAll:function(){this.showAll=!this.showAll},reactedWith:function(e){return this.status.emoji_reactions.find((function(t){return t.name===e})).me},fetchEmojiReactionsByIfMissing:function(){var e=this;return(0,Tt.Z)(Bt().mark((function t(){return Bt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!e.status.emoji_reactions.find((function(e){return!e.accounts}))){t.next=5;break}return t.next=4,e.$store.dispatch("fetchEmojiReactionsBy",e.status.id);case 4:return t.abrupt("return",t.sent);case 5:case"end":return t.stop()}}),t)})))()},reactWith:function(e){this.$store.dispatch("reactWithEmoji",{id:this.status.id,emoji:e})},unreact:function(e){this.$store.dispatch("unreactWithEmoji",{id:this.status.id,emoji:e})},emojiOnClick:function(e,t){var n=this;return(0,Tt.Z)(Bt().mark((function t(){return Bt().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(n.loggedIn){t.next=2;break}return t.abrupt("return");case 2:return t.next=4,n.fetchEmojiReactionsByIfMissing();case 4:n.reactedWith(e)?n.unreact(e):n.reactWith(e);case 5:case"end":return t.stop()}}),t)})))()},counterTriggerAttrs:function(e){return{class:["btn","button-default","emoji-reaction-count-button",{"-picked-reaction":this.reactedWith(e.name)}],"aria-label":this.$tc("status.reaction_count_label",e.count,{num:e.count})}}}},Mt=(0,_e.Z)(Ut,[["render",function(e,t,n,i,s,a){var u=(0,o.up)("FAIcon"),c=(0,o.up)("FALayers"),l=(0,o.up)("UserListPopover");return(0,o.wg)(),(0,o.iD)("div",Et,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.emojiReactions,(function(n){return(0,o.wg)(),(0,o.iD)("span",{key:n.url||n.name,class:"emoji-reaction-container btn-group"},[((0,o.wg)(),(0,o.j4)((0,o.LL)(e.loggedIn?"button":"a"),(0,o.dG)(e.loggedIn?{}:{href:e.remoteInteractionLink},{role:"button",class:["emoji-reaction btn button-default",{"-picked-reaction":e.reactedWith(n.name)}],title:n.url?n.name:void 0,"aria-pressed":e.reactedWith(n.name),onClick:function(t){return e.emojiOnClick(n.name,t)}}),{default:(0,o.w5)((function(){return[(0,o._)("span",zt,[n.url?((0,o.wg)(),(0,o.iD)("img",{key:0,src:n.url,class:"reaction-emoji-content",width:"1em"},null,8,Pt)):((0,o.wg)(),(0,o.iD)("span",It,(0,r.zw)(n.name),1))]),(0,o.Wm)(c,null,{default:(0,o.w5)((function(){return[e.reactedWith(n.name)?((0,o.wg)(),(0,o.j4)(u,{key:0,class:"active-marker",transform:"shrink-6 up-9",icon:"check"})):(0,o.kq)("",!0),e.reactedWith(n.name)?((0,o.wg)(),(0,o.j4)(u,{key:2,class:"focus-marker",transform:"shrink-6 up-9",icon:"minus"})):((0,o.wg)(),(0,o.j4)(u,{key:1,class:"focus-marker",transform:"shrink-6 up-9",icon:"plus"}))]})),_:2},1024)]})),_:2},1040,["class","title","aria-pressed","onClick"])),(0,o.Wm)(l,{users:e.accountsForEmoji[n.name],class:"emoji-reaction-popover","trigger-attrs":e.counterTriggerAttrs(n),onShow:t[0]||(t[0]=function(t){return e.fetchEmojiReactionsByIfMissing()})},{default:(0,o.w5)((function(){return[(0,o._)("span",xt,(0,r.zw)(n.count),1)]})),_:2},1032,["users","trigger-attrs"])])})),128)),e.tooManyReactions?((0,o.wg)(),(0,o.iD)("a",{key:0,class:"emoji-reaction-expand faint",href:"javascript:void(0)",onClick:t[1]||(t[1]=function(){return e.toggleShowAll&&e.toggleShowAll.apply(e,arguments)})},(0,r.zw)(e.showAll?e.$t("general.show_less"):e.showMoreString),1)):(0,o.kq)("",!0)])}]]);var Lt=n(12061),Rt=n(21268),qt=n(20460),Nt=n(4493),Zt=n(95052),Wt=n(67828);function Ht(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Vt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ht(Object(n),!0).forEach((function(t){(0,le.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ht(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}be.vI.add(ye.FU$,ye.g4A,ye.byT,ye._1N,ye.NBC,ye.x5v,ye.Lh7,ye.CPW,ye.Tab,ye.RKn,ye.cNd,ye.Aq,ye.Mdf,ye.RP7,ye.mTx,ye.ptq,ye.cLY);var Kt,Gt=function(e){return e.charAt(0).toUpperCase()+e.slice(1)},Yt=function(e,t,n){var o=Gt(t),r="controlledSet".concat(o),i="uncontrolled".concat(o);e[r]?e[r](n):e[i]=n};const Jt={name:"Status",components:{ReplyButton:ke,FavoriteButton:Ie,ReactButton:Me,RetweetButton:Ve,ExtraButtons:lt,PostStatusForm:dt.Z,UserAvatar:pt.default,AvatarList:mt.Z,Timeago:ht.Z,StatusPopover:_t,UserListPopover:Ot,EmojiReactions:Mt,StatusContent:ft.Z,RichContent:gt.Z,MentionLink:qt.Z,MentionsLine:Rt.Z,UserPopover:kt.default,UserLink:Lt.Z},props:["statusoid","expandable","inConversation","focused","highlight","compact","replies","isPreview","noHeading","inlineExpanded","showPinned","inProfile","profileUserId","inQuote","simpleTree","controlledThreadDisplayStatus","controlledToggleThreadDisplay","showOtherRepliesAsButton","controlledShowingTall","controlledToggleShowingTall","controlledExpandingSubject","controlledToggleExpandingSubject","controlledShowingLongSubject","controlledToggleShowingLongSubject","controlledReplying","controlledToggleReplying","controlledMediaPlaying","controlledSetMediaPlaying","dive"],data:function(){return{uncontrolledReplying:!1,unmuted:!1,userExpanded:!1,uncontrolledMediaPlaying:[],suspendable:!0,error:null,headTailLinks:null,displayQuote:!this.inQuote}},computed:Vt(Vt({},(Kt=["replying","mediaPlaying"],Kt.reduce((function(e,t){var n=Gt(t),o="controlledToggle".concat(n),r="controlled".concat(n),i="uncontrolled".concat(n);return e[t]=function(){return void 0===this.$data[o]&&void 0===this.$props[o]||!this[o]?this[i]:this[r]},e}),{}))),{},{muteWords:function(){return this.mergedConfig.muteWords},showReasonMutedThread:function(){return(this.status.thread_muted||this.status.reblog&&this.status.reblog.thread_muted)&&!this.inConversation},repeaterClass:function(){var e=this.statusoid.user;return(0,Zt.M)(e)},userClass:function(){var e=this.retweet?this.statusoid.retweeted_status.user:this.statusoid.user;return(0,Zt.M)(e)},deleted:function(){return this.statusoid.deleted},repeaterStyle:function(){var e=this.statusoid.user,t=this.mergedConfig.highlight;return(0,Zt.q)(t[e.screen_name])},userStyle:function(){if(!this.noHeading){var e=this.retweet?this.statusoid.retweeted_status.user:this.statusoid.user,t=this.mergedConfig.highlight;return(0,Zt.q)(t[e.screen_name])}},userProfileLink:function(){return this.generateUserProfileLink(this.status.user.id,this.status.user.screen_name)},replyProfileLink:function(){if(this.isReply){var e=this.$store.getters.findUser(this.status.in_reply_to_user_id);return e?e.statusnet_profile_url:"NOT_FOUND"}},retweet:function(){return!!this.statusoid.retweeted_status},retweeterUser:function(){return this.statusoid.user},retweeter:function(){return this.statusoid.user.name||this.statusoid.user.screen_name_ui},retweeterHtml:function(){return this.statusoid.user.name},retweeterProfileLink:function(){return this.generateUserProfileLink(this.statusoid.user.id,this.statusoid.user.screen_name)},status:function(){return this.retweet?this.statusoid.retweeted_status:this.statusoid},statusFromGlobalRepository:function(){return this.$store.state.statuses.allStatusesObject[this.status.id]},loggedIn:function(){return!!this.currentUser},muteWordHits:function(){return(0,Wt.u)(this.status,this.muteWords)},rtBotStatus:function(){return this.statusoid.user.bot},botStatus:function(){return this.status.user.bot},botIndicator:function(){return this.botStatus&&!this.hideBotIndication},rtBotIndicator:function(){return this.rtBotStatus&&!this.hideBotIndication},mentionsLine:function(){var e=this;if(!this.headTailLinks)return[];var t=new Set(this.headTailLinks.writtenMentions.map((function(e){return e.url})));return this.status.attentions.filter((function(n){return n.id!==e.status.in_reply_to_user_id&&n.statusnet_profile_url!==e.status.user.statusnet_profile_url&&!t.has(n.statusnet_profile_url)})).map((function(e){return{url:e.statusnet_profile_url,content:e.screen_name,userId:e.id}}))},hasMentionsLine:function(){return this.mentionsLine.length>0},muted:function(){if(this.statusoid.user.id===this.currentUser.id)return!1;var e=this.userIsMuted||status.thread_muted||this.muteWordHits.length>0||this.muteBotStatuses&&this.botStatus&&!this.compact;return!this.unmuted&&!this.shouldNotMute&&e},userIsMuted:function(){if(this.statusoid.user.id===this.currentUser.id)return!1;var e=this.status,t=e.reblog,n=this.$store.getters.relationship(e.user.id),o=t&&this.$store.getters.relationship(t.user.id);return e.muted||t&&t.muted||n.muting||o&&o.muting},shouldNotMute:function(){var e=this.status,t=e.reblog;return(this.inProfile&&(!t&&e.user.id===this.profileUserId||t&&t.user.id===this.profileUserId)||this.inConversation&&e.thread_muted)&&!this.muteWordHits.length>0},hideMutedUsers:function(){return this.mergedConfig.hideMutedPosts},hideMutedThreads:function(){return this.mergedConfig.hideMutedThreads},hideFilteredStatuses:function(){return this.mergedConfig.hideFilteredStatuses},hideWordFilteredPosts:function(){return this.mergedConfig.hideWordFilteredPosts},hideStatus:function(){return!this.shouldNotMute&&(this.muted&&this.hideFilteredStatuses||this.userIsMuted&&this.hideMutedUsers||this.status.thread_muted&&this.hideMutedThreads||this.muteWordHits.length>0&&this.hideWordFilteredPosts)},isFocused:function(){return!!this.focused||!!this.inConversation&&this.status.id===this.highlight},isReply:function(){return!(!this.status.in_reply_to_status_id||!this.status.in_reply_to_user_id)},replyToName:function(){if(this.status.in_reply_to_screen_name)return this.status.in_reply_to_screen_name;var e=this.$store.getters.findUser(this.status.in_reply_to_user_id);return e&&e.screen_name_ui},replySubject:function(){if(!this.status.summary)return"";var e=he()(this.status.summary),t=this.mergedConfig.subjectLineBehavior,n=e.match(/^re[: ]/i);return"noop"!==t&&n||"masto"===t?e:"email"===t?"re: ".concat(e):"noop"===t?"":void 0},combinedFavsAndRepeatsUsers:function(){var e=[].concat(this.statusFromGlobalRepository.favoritedBy,this.statusFromGlobalRepository.rebloggedBy);return pe()(e,"id")},tags:function(){return this.status.tags.filter((function(e){return e.hasOwnProperty("name")})).map((function(e){return e.name})).join(" ")},hidePostStats:function(){return this.mergedConfig.hidePostStats},muteBotStatuses:function(){return this.mergedConfig.muteBotStatuses},hideBotIndication:function(){return this.mergedConfig.hideBotIndication},currentUser:function(){return this.$store.state.users.currentUser},betterShadow:function(){return this.$store.state.interface.browserSupport.cssFilter},mergedConfig:function(){return this.$store.getters.mergedConfig},isSuspendable:function(){return!this.replying&&0===this.mediaPlaying.length},inThreadForest:function(){return!!this.controlledThreadDisplayStatus},threadShowing:function(){return"showing"===this.controlledThreadDisplayStatus},visibilityLocalized:function(){return this.$i18n.t("general.scope_in_timeline."+this.status.visibility)},isEdited:function(){return null!==this.status.edited_at},editingAvailable:function(){return this.$store.state.instance.editingAvailable},hasVisibleQuote:function(){return this.status.quote_url&&this.status.quote_visible},hasInvisibleQuote:function(){return this.status.quote_url&&!this.status.quote_visible},quotedStatus:function(){return this.status.quote_id?this.$store.state.statuses.allStatusesObject[this.status.quote_id]:void 0},shouldDisplayQuote:function(){return this.quotedStatus&&this.displayQuote}}),methods:{visibilityIcon:function(e){switch(e){case"private":return"lock";case"unlisted":return"lock-open";case"direct":return"envelope";default:return"globe"}},showError:function(e){this.error=e},clearError:function(){this.error=void 0},toggleReplying:function(){var e,t,n,o;e=this,t=Gt("replying"),n="controlledToggle".concat(t),o="uncontrolled".concat(t),e[n]?e[n]():e[o]=!e[o]},gotoOriginal:function(e){this.inConversation&&this.$emit("goto",e)},toggleExpanded:function(){this.$emit("toggleExpanded")},toggleMute:function(){this.unmuted=!this.unmuted},toggleUserExpanded:function(){this.userExpanded=!this.userExpanded},generateUserProfileLink:function(e,t){return(0,Nt.Z)(e,t,this.$store.state.instance.restrictedNicknames)},addMediaPlaying:function(e){Yt(this,"mediaPlaying",this.mediaPlaying.concat(e))},removeMediaPlaying:function(e){Yt(this,"mediaPlaying",this.mediaPlaying.filter((function(t){return t!==e})))},setHeadTailLinks:function(e){this.headTailLinks=e},toggleThreadDisplay:function(){this.controlledToggleThreadDisplay()},scrollIfHighlighted:function(e){var t=e;if(this.status.id===t){var n=this.$el.getBoundingClientRect();n.top<100||n.height>=window.innerHeight-50?window.scrollBy(0,n.top-100):n.bottom>window.innerHeight-50&&window.scrollBy(0,n.bottom-window.innerHeight+50)}},toggleDisplayQuote:function(){var e=this;this.shouldDisplayQuote?this.displayQuote=!1:this.quotedStatus?this.displayQuote=!0:this.$store.dispatch("fetchStatus",this.status.quote_id).then((function(){e.displayQuote=!0}))}},watch:{highlight:function(e){this.scrollIfHighlighted(e)},"status.repeat_num":function(e){this.isFocused&&this.statusFromGlobalRepository.rebloggedBy&&this.statusFromGlobalRepository.rebloggedBy.length!==e&&this.$store.dispatch("fetchRepeats",this.status.id)},"status.fave_num":function(e){this.isFocused&&this.statusFromGlobalRepository.favoritedBy&&this.statusFromGlobalRepository.favoritedBy.length!==e&&this.$store.dispatch("fetchFavs",this.status.id)},isSuspendable:function(e){this.suspendable=e}}},Qt=(0,_e.Z)(Jt,[["render",function(e,t,n,le,de,pe){var me=(0,o.up)("FAIcon"),he=(0,o.up)("user-link"),fe=(0,o.up)("UserAvatar"),ge=(0,o.up)("RichContent"),ve=(0,o.up)("router-link"),we=(0,o.up)("UserPopover"),be=(0,o.up)("Timeago"),ye=(0,o.up)("StatusPopover"),De=(0,o.up)("MentionLink"),_e=(0,o.up)("MentionsLine"),ke=(0,o.up)("i18n-t"),Ce=(0,o.up)("StatusContent"),Se=(0,o.up)("Status",!0),je=(0,o.up)("UserListPopover"),Fe=(0,o.up)("AvatarList"),Ae=(0,o.up)("EmojiReactions"),Oe=(0,o.up)("reply-button"),Ee=(0,o.up)("retweet-button"),ze=(0,o.up)("favorite-button"),Pe=(0,o.up)("ReactButton"),Ie=(0,o.up)("extra-buttons"),xe=(0,o.up)("PostStatusForm");return e.hideStatus?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",{key:0,ref:"root",class:(0,r.C_)(["Status",[{"-focused":e.isFocused},{"-conversation":e.inlineExpanded}]])},[e.error?((0,o.wg)(),(0,o.iD)("div",s,[(0,o.Uk)((0,r.zw)(e.error)+" ",1),(0,o._)("span",{class:"fa-scale-110 fa-old-padding",onClick:t[0]||(t[0]=function(){return e.clearError&&e.clearError.apply(e,arguments)})},[(0,o.Wm)(me,{icon:"times"})])])):(0,o.kq)("",!0),e.muted&&!e.isPreview?((0,o.wg)(),(0,o.iD)("div",a,[(0,o._)("small",u,[e.muted&&e.retweet?((0,o.wg)(),(0,o.j4)(me,{key:0,class:"fa-scale-110 fa-old-padding repeat-icon",icon:"retweet"})):(0,o.kq)("",!0),(0,o.Wm)(he,{user:e.status.user,at:!1},null,8,["user"])]),e.showReasonMutedThread?((0,o.wg)(),(0,o.iD)("small",c,(0,r.zw)(e.$t("status.thread_muted")),1)):(0,o.kq)("",!0),e.showReasonMutedThread&&e.muteWordHits.length>0?((0,o.wg)(),(0,o.iD)("small",l,(0,r.zw)(e.$t("status.thread_muted_and_words")),1)):(0,o.kq)("",!0),(0,o._)("small",{class:"mute-words",title:e.muteWordHits.join(", ")},(0,r.zw)(e.muteWordHits.join(", ")),9,d),(0,o._)("button",{class:"unmute button-unstyled",onClick:t[1]||(t[1]=(0,i.iM)((function(){return e.toggleMute&&e.toggleMute.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(me,{icon:"eye-slash",class:"fa-scale-110 fa-old-padding"})])])):((0,o.wg)(),(0,o.iD)(o.HY,{key:2},[e.showPinned?((0,o.wg)(),(0,o.iD)("div",p,[(0,o.Wm)(me,{icon:"thumbtack",class:"faint"}),(0,o._)("span",m,(0,r.zw)(e.$t("status.pinned")),1)])):(0,o.kq)("",!0),!e.retweet||e.noHeading||e.inConversation?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",{key:1,class:(0,r.C_)([[e.repeaterClass,{highlighted:e.repeaterStyle}],"status-container repeat-info"]),style:(0,r.j5)([e.repeaterStyle])},[e.retweet?((0,o.wg)(),(0,o.j4)(fe,{key:0,class:"left-side repeater-avatar",bot:e.rtBotIndicator,"better-shadow":e.betterShadow,user:e.statusoid.user},null,8,["bot","better-shadow","user"])):(0,o.kq)("",!0),(0,o._)("div",h,[(0,o._)("bdi",{class:"status-username repeater-name",title:e.retweeter},[e.retweeterHtml?((0,o.wg)(),(0,o.j4)(ve,{key:0,to:e.retweeterProfileLink},{default:(0,o.w5)((function(){return[(0,o.Wm)(ge,{html:e.retweeterHtml,emoji:e.retweeterUser.emoji},null,8,["html","emoji"])]})),_:1},8,["to"])):((0,o.wg)(),(0,o.j4)(ve,{key:1,to:e.retweeterProfileLink},{default:(0,o.w5)((function(){return[(0,o.Uk)((0,r.zw)(e.retweeter),1)]})),_:1},8,["to"]))],8,f),(0,o.Uk)(" "+(0,r.zw)(" ")+" "),(0,o.Wm)(me,{icon:"retweet",class:"repeat-icon",title:e.$t("tool_tip.repeat")},null,8,["title"]),(0,o.Uk)(" "+(0,r.zw)(e.$t("timeline.repeated")),1)])],6)),e.deleted?((0,o.wg)(),(0,o.iD)("div",ie,[(0,o._)("div",se,[(0,o.Wm)(fe,{class:"post-avatar",compact:e.compact,bot:e.botIndicator},null,8,["compact","bot"])]),(0,o._)("div",ae,[(0,o._)("div",ue,(0,r.zw)(e.$t("status.status_deleted")),1),e.replying?((0,o.wg)(),(0,o.j4)(Oe,{key:0,replying:e.replying,status:e.status,onToggle:e.toggleReplying},null,8,["replying","status","onToggle"])):(0,o.kq)("",!0)])])):((0,o.wg)(),(0,o.iD)("div",{key:2,class:(0,r.C_)([[e.userClass,{highlighted:e.userStyle,"-repeat":e.retweet&&!e.inConversation}],"status-container"]),style:(0,r.j5)([e.userStyle]),"data-tags":e.tags},[e.noHeading?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",v,[(0,o._)("a",{href:e.$router.resolve(e.userProfileLink).href,onClick:t[2]||(t[2]=(0,i.iM)((function(){}),["prevent"]))},[(0,o.Wm)(we,{"user-id":e.status.user.id,"overlay-centers":!0},{default:(0,o.w5)((function(){return[(0,o.Wm)(fe,{class:"post-avatar",bot:e.botIndicator,compact:e.compact,"better-shadow":e.betterShadow,user:e.status.user},null,8,["bot","compact","better-shadow","user"])]})),_:1},8,["user-id"])],8,w)])),(0,o._)("div",b,[e.noHeading?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",y,[(0,o._)("div",D,[(0,o._)("div",_,[e.status.user.name_html?((0,o.wg)(),(0,o.iD)("h4",{key:0,class:"status-username",title:e.status.user.name},[(0,o.Wm)(ge,{html:e.status.user.name,emoji:e.status.user.emoji},null,8,["html","emoji"])],8,k)):((0,o.wg)(),(0,o.iD)("h4",{key:1,class:"status-username",title:e.status.user.name},(0,r.zw)(e.status.user.name),9,C)),(0,o.Wm)(he,{class:"account-name",title:e.status.user.screen_name_ui,user:e.status.user,at:!1},null,8,["title","user"]),e.status.user&&e.status.user.favicon?((0,o.wg)(),(0,o.iD)("img",{key:2,class:"status-favicon",src:e.status.user.favicon},null,8,S)):(0,o.kq)("",!0)]),(0,o._)("span",j,[(0,o.Wm)(ve,{class:"timeago faint-link",to:{name:"conversation",params:{id:e.status.id}}},{default:(0,o.w5)((function(){return[(0,o.Wm)(be,{time:e.status.created_at,"auto-update":60},null,8,["time"])]})),_:1},8,["to"]),e.status.visibility?((0,o.wg)(),(0,o.iD)("span",{key:0,class:"visibility-icon",title:e.visibilityLocalized},[(0,o.Wm)(me,{"fixed-width":"",class:"fa-scale-110",icon:e.visibilityIcon(e.status.visibility)},null,8,["icon"])],8,F)):(0,o.kq)("",!0),e.expandable&&!e.isPreview?((0,o.wg)(),(0,o.iD)("button",{key:1,class:"button-unstyled",title:e.$t("status.expand"),onClick:t[3]||(t[3]=(0,i.iM)((function(){return e.toggleExpanded&&e.toggleExpanded.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(me,{"fixed-width":"",class:"fa-scale-110",icon:"plus-square"})],8,A)):(0,o.kq)("",!0),e.unmuted?((0,o.wg)(),(0,o.iD)("button",{key:2,class:"button-unstyled",onClick:t[4]||(t[4]=(0,i.iM)((function(){return e.toggleMute&&e.toggleMute.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(me,{"fixed-width":"",icon:"eye-slash",class:"fa-scale-110"})])):(0,o.kq)("",!0),e.inThreadForest&&e.replies&&e.replies.length&&!e.simpleTree?((0,o.wg)(),(0,o.iD)("button",{key:3,class:"button-unstyled",title:e.threadShowing?e.$t("status.thread_hide"):e.$t("status.thread_show"),"aria-expanded":e.threadShowing?"true":"false",onClick:t[5]||(t[5]=(0,i.iM)((function(){return e.toggleThreadDisplay&&e.toggleThreadDisplay.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(me,{"fixed-width":"",class:"fa-scale-110",icon:e.threadShowing?"chevron-up":"chevron-down"},null,8,["icon"])],8,O)):(0,o.kq)("",!0),e.dive&&!e.simpleTree?((0,o.wg)(),(0,o.iD)("button",{key:4,class:"button-unstyled",title:e.$t("status.show_only_conversation_under_this"),onClick:t[6]||(t[6]=(0,i.iM)((function(){return e.dive&&e.dive.apply(e,arguments)}),["prevent"]))},[(0,o.Wm)(me,{"fixed-width":"",class:"fa-scale-110",icon:"angle-double-right"})],8,E)):(0,o.kq)("",!0)])]),e.isReply||e.hasMentionsLine?((0,o.wg)(),(0,o.iD)("div",z,[e.isReply?((0,o.wg)(),(0,o.iD)("span",P,[e.isPreview?((0,o.wg)(),(0,o.iD)("span",T,[(0,o._)("span",$,(0,r.zw)(e.$t("status.reply_to")),1)])):((0,o.wg)(),(0,o.j4)(ye,{key:0,"status-id":e.status.parent_visible&&e.status.in_reply_to_status_id,class:(0,r.C_)(["reply-to-popover",{"-strikethrough":!e.status.parent_visible}]),style:{"min-width":"0"}},{default:(0,o.w5)((function(){return[(0,o._)("button",{class:"button-unstyled reply-to","aria-label":e.$t("tool_tip.reply"),onClick:t[7]||(t[7]=(0,i.iM)((function(t){return e.gotoOriginal(e.status.in_reply_to_status_id)}),["prevent"]))},[(0,o.Wm)(me,{class:"fa-scale-110 fa-old-padding",icon:"reply",flip:"horizontal"}),(0,o.Uk)(" "+(0,r.zw)(" ")+" "),(0,o._)("span",x,(0,r.zw)(e.$t("status.reply_to")),1)],8,I)]})),_:1},8,["status-id","class"])),(0,o.Wm)(De,{content:e.replyToName,url:e.replyProfileLink,"user-id":e.status.in_reply_to_user_id,"user-screen-name":e.status.in_reply_to_screen_name},null,8,["content","url","user-id","user-screen-name"])])):(0,o.kq)("",!0),e.hasMentionsLine?((0,o.wg)(),(0,o.iD)("span",B,[(0,o._)("span",{class:"mentions","aria-label":e.$t("tool_tip.mentions"),onClick:t[8]||(t[8]=(0,i.iM)((function(t){return e.gotoOriginal(e.status.in_reply_to_status_id)}),["prevent"]))},[(0,o._)("span",M,(0,r.zw)(e.$t("status.mentions")),1)],8,U),e.hasMentionsLine?((0,o.wg)(),(0,o.j4)(_e,{key:0,mentions:e.mentionsLine.slice(0,1),class:"mentions-line-first"},null,8,["mentions"])):(0,o.kq)("",!0)])):(0,o.kq)("",!0),(0,o.Uk)(" "+(0,r.zw)(" ")+" "),e.hasMentionsLine?((0,o.wg)(),(0,o.j4)(_e,{key:2,mentions:e.mentionsLine.slice(1),class:"mentions-line"},null,8,["mentions"])):(0,o.kq)("",!0)])):(0,o.kq)("",!0),e.isEdited&&e.editingAvailable&&!e.isPreview?((0,o.wg)(),(0,o.iD)("div",L,[(0,o.Wm)(ke,{keypath:"status.edited_at",tag:"span"},{time:(0,o.w5)((function(){return[(0,o.Wm)(be,{"template-key":"time.in_past",time:e.status.edited_at,"auto-update":60,"long-format":!0},null,8,["time"])]})),_:1})])):(0,o.kq)("",!0)])),(0,o.Wm)(Ce,{ref:"content",status:e.status,"no-heading":e.noHeading,highlight:e.highlight,focused:e.isFocused,"controlled-showing-tall":e.controlledShowingTall,"controlled-expanding-subject":e.controlledExpandingSubject,"controlled-showing-long-subject":e.controlledShowingLongSubject,"controlled-toggle-showing-tall":e.controlledToggleShowingTall,"controlled-toggle-expanding-subject":e.controlledToggleExpandingSubject,"controlled-toggle-showing-long-subject":e.controlledToggleShowingLongSubject,onMediaplay:t[9]||(t[9]=function(t){return e.addMediaPlaying(t)}),onMediapause:t[10]||(t[10]=function(t){return e.removeMediaPlaying(t)}),onParseReady:e.setHeadTailLinks},null,8,["status","no-heading","highlight","focused","controlled-showing-tall","controlled-expanding-subject","controlled-showing-long-subject","controlled-toggle-showing-tall","controlled-toggle-expanding-subject","controlled-toggle-showing-long-subject","onParseReady"]),e.hasVisibleQuote?((0,o.wg)(),(0,o.iD)("article",R,[(0,o._)("button",{class:"button-unstyled -link display-quoted-status-button","aria-expanded":e.shouldDisplayQuote,onClick:t[11]||(t[11]=function(){return e.toggleDisplayQuote&&e.toggleDisplayQuote.apply(e,arguments)})},[(0,o.Uk)((0,r.zw)(e.shouldDisplayQuote?e.$t("status.hide_quote"):e.$t("status.display_quote"))+" ",1),(0,o.Wm)(me,{class:"display-quoted-status-button-icon",icon:e.shouldDisplayQuote?"chevron-up":"chevron-down"},null,8,["icon"])],8,q),e.shouldDisplayQuote?((0,o.wg)(),(0,o.j4)(Se,{key:0,statusoid:e.quotedStatus,"in-quote":!0},null,8,["statusoid"])):(0,o.kq)("",!0)])):e.hasInvisibleQuote?((0,o.wg)(),(0,o.iD)("p",N,[(0,o.Wm)(ke,{keypath:"status.invisible_quote"},{link:(0,o.w5)((function(){return[(0,o._)("bdi",null,[(0,o._)("a",{href:e.status.quote_url,target:"_blank"},(0,r.zw)(e.status.quote_url),9,Z)])]})),_:1})])):(0,o.kq)("",!0),e.inConversation&&!e.isPreview&&e.replies&&e.replies.length?((0,o.wg)(),(0,o.iD)("div",W,[e.showOtherRepliesAsButton&&e.replies.length>1?((0,o.wg)(),(0,o.iD)("button",{key:0,class:"button-unstyled -link faint",title:e.$tc("status.ancestor_follow",e.replies.length-1,{numReplies:e.replies.length-1}),onClick:t[12]||(t[12]=(0,i.iM)((function(){return e.dive&&e.dive.apply(e,arguments)}),["prevent"]))},(0,r.zw)(e.$tc("status.replies_list_with_others",e.replies.length-1,{numReplies:e.replies.length-1})),9,H)):((0,o.wg)(),(0,o.iD)("span",V,(0,r.zw)(e.$t("status.replies_list")),1)),((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.replies,(function(t){return(0,o.wg)(),(0,o.j4)(ye,{key:t.id,"status-id":t.id},{default:(0,o.w5)((function(){return[(0,o._)("button",{class:"button-unstyled -link reply-link",onClick:(0,i.iM)((function(n){return e.gotoOriginal(t.id)}),["prevent"])},(0,r.zw)(t.name),9,K)]})),_:2},1032,["status-id"])})),128))])):(0,o.kq)("",!0),(0,o.Wm)(i.uT,{name:"fade"},{default:(0,o.w5)((function(){return[!e.hidePostStats&&e.isFocused&&e.combinedFavsAndRepeatsUsers.length>0?((0,o.wg)(),(0,o.iD)("div",G,[(0,o._)("div",Y,[e.statusFromGlobalRepository.rebloggedBy&&e.statusFromGlobalRepository.rebloggedBy.length>0?((0,o.wg)(),(0,o.j4)(je,{key:0,users:e.statusFromGlobalRepository.rebloggedBy},{default:(0,o.w5)((function(){return[(0,o._)("div",J,[(0,o._)("a",Q,(0,r.zw)(e.$t("status.repeats")),1),(0,o._)("div",X,(0,r.zw)(e.statusFromGlobalRepository.rebloggedBy.length),1)])]})),_:1},8,["users"])):(0,o.kq)("",!0),e.statusFromGlobalRepository.favoritedBy&&e.statusFromGlobalRepository.favoritedBy.length>0?((0,o.wg)(),(0,o.j4)(je,{key:1,users:e.statusFromGlobalRepository.favoritedBy},{default:(0,o.w5)((function(){return[(0,o._)("div",ee,[(0,o._)("a",te,(0,r.zw)(e.$t("status.favorites")),1),(0,o._)("div",ne,(0,r.zw)(e.statusFromGlobalRepository.favoritedBy.length),1)])]})),_:1},8,["users"])):(0,o.kq)("",!0),(0,o._)("div",oe,[(0,o.Wm)(Fe,{users:e.combinedFavsAndRepeatsUsers},null,8,["users"])])])])):(0,o.kq)("",!0)]})),_:1}),!e.mergedConfig.emojiReactionsOnTimeline&&!e.isFocused||e.noHeading||e.isPreview?(0,o.kq)("",!0):((0,o.wg)(),(0,o.j4)(Ae,{key:4,status:e.status},null,8,["status"])),e.noHeading||e.isPreview?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",re,[(0,o.Wm)(Oe,{replying:e.replying,status:e.status,onToggle:e.toggleReplying},null,8,["replying","status","onToggle"]),(0,o.Wm)(Ee,{visibility:e.status.visibility,"logged-in":e.loggedIn,status:e.status},null,8,["visibility","logged-in","status"]),(0,o.Wm)(ze,{"logged-in":e.loggedIn,status:e.status},null,8,["logged-in","status"]),e.loggedIn?((0,o.wg)(),(0,o.j4)(Pe,{key:0,status:e.status},null,8,["status"])):(0,o.kq)("",!0),(0,o.Wm)(Ie,{status:e.status,onOnError:e.showError,onOnSuccess:e.clearError},null,8,["status","onOnError","onOnSuccess"])]))])],14,g)),e.replying?((0,o.wg)(),(0,o.iD)("div",ce,[(0,o.Wm)(xe,{class:"reply-body","reply-to":e.status.id,attentions:e.status.attentions,"replied-user":e.status.user,"copy-message-scope":e.status.visibility,subject:e.replySubject,onPosted:e.toggleReplying},null,8,["reply-to","attentions","replied-user","copy-message-scope","subject","onPosted"])])):(0,o.kq)("",!0)],64))],2))}]])},10252:(e,t,n)=>{"use strict";n.d(t,{Z:()=>K});var o=n(66252),r=n(3577),i={key:0},s={key:1},a={key:3,class:"link-preview media-body"},u=n(4942),c=n(66596),l=["role"],d=["title"],p={class:"option-result-label"},m={class:"result-percentage"},h=["role","aria-labelledby","aria-checked","onClick"],f=["disabled","value"],g=["disabled","value"],v={class:"option-vote"},w={class:"footer faint"},b=["disabled"],y={class:"total"},D=n(35161),_=n.n(D),k=n(84486),C=n.n(k),S=n(1840),j=n(53599),F=n(92820);const A={name:"Poll",props:["basePoll","emoji"],components:{Timeago:S.Z,RichContent:F.Z},data:function(){return{loading:!1,choices:[],randomSeed:(0,j.Z)()}},created:function(){this.$store.state.polls.pollsObject[this.pollId]||this.$store.dispatch("mergeOrAddPoll",this.basePoll),this.$store.dispatch("trackPoll",this.pollId)},unmounted:function(){this.$store.dispatch("untrackPoll",this.pollId)},computed:{pollId:function(){return this.basePoll.id},poll:function(){return this.$store.state.polls.pollsObject[this.pollId]||{}},options:function(){return this.poll&&this.poll.options||[]},expiresAt:function(){return this.poll&&this.poll.expires_at||0},expired:function(){return this.poll&&this.poll.expired||!1},loggedIn:function(){return this.$store.state.users.currentUser},showResults:function(){return this.poll.voted||this.expired||!this.loggedIn},totalVotesCount:function(){return this.poll.votes_count},containerClass:function(){return{loading:this.loading}},choiceIndices:function(){return this.choices.map((function(e,t){return e&&t})).filter((function(e){return"number"==typeof e}))},isDisabled:function(){var e=0===this.choiceIndices.length;return this.loading||e}},methods:{percentageForOption:function(e){return 0===this.totalVotesCount?0:Math.round(e/this.totalVotesCount*100)},resultTitle:function(e){return"".concat(e.votes_count,"/").concat(this.totalVotesCount," ").concat(this.$t("polls.votes"))},fetchPoll:function(){this.$store.dispatch("refreshPoll",{id:this.statusId,pollId:this.poll.id})},activateOption:function(e){var t=this.$el.querySelectorAll("input"),n=this.$el.querySelector('input[value="'.concat(e,'"]'));this.poll.multiple?n.checked=!n.checked:(C()(t,(function(e){e.checked=!1})),n.checked=!0),this.choices=_()(t,(function(e){return e.checked}))},optionId:function(e){return"poll".concat(this.poll.id,"-").concat(e)},vote:function(){var e=this;0!==this.choiceIndices.length&&(this.loading=!0,this.$store.dispatch("votePoll",{id:this.statusId,pollId:this.poll.id,choices:this.choiceIndices}).then((function(t){e.loading=!1})))}}};var O=n(83744);const E=(0,O.Z)(A,[["render",function(e,t,n,i,s,a){var u=(0,o.up)("RichContent"),c=(0,o.up)("Timeago"),D=(0,o.up)("i18n-t");return(0,o.wg)(),(0,o.iD)("div",{class:(0,r.C_)(["poll",e.containerClass])},[(0,o._)("div",{role:e.showResults?"section":e.poll.multiple?"group":"radiogroup"},[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.options,(function(t,n){return(0,o.wg)(),(0,o.iD)("div",{key:n,class:"poll-option"},[e.showResults?((0,o.wg)(),(0,o.iD)("div",{key:0,title:e.resultTitle(t),class:"option-result"},[(0,o._)("div",p,[(0,o._)("span",m,(0,r.zw)(e.percentageForOption(t.votes_count))+"% ",1),(0,o.Wm)(u,{html:t.title_html,"handle-links":!1,emoji:e.emoji},null,8,["html","emoji"])]),(0,o._)("div",{class:"result-fill",style:(0,r.j5)({width:"".concat(e.percentageForOption(t.votes_count),"%")})},null,4)],8,d)):((0,o.wg)(),(0,o.iD)("div",{key:1,tabindex:"0",role:e.poll.multiple?"checkbox":"radio","aria-labelledby":"option-vote-".concat(e.randomSeed,"-").concat(n),"aria-checked":e.choices[n],onClick:function(t){return e.activateOption(n)}},[e.poll.multiple?((0,o.wg)(),(0,o.iD)("input",{key:0,type:"checkbox",class:"poll-checkbox",disabled:e.loading,value:n},null,8,f)):((0,o.wg)(),(0,o.iD)("input",{key:1,type:"radio",disabled:e.loading,value:n},null,8,g)),(0,o._)("label",v,[(0,o.Wm)(u,{id:"option-vote-".concat(e.randomSeed,"-").concat(n),html:t.title_html,"handle-links":!1,emoji:e.emoji},null,8,["id","html","emoji"])])],8,h))])})),128))],8,l),(0,o._)("div",w,[e.showResults?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("button",{key:0,class:"btn button-default poll-vote-button",type:"button",disabled:e.isDisabled,onClick:t[0]||(t[0]=function(){return e.vote&&e.vote.apply(e,arguments)})},(0,r.zw)(e.$t("polls.vote")),9,b)),(0,o._)("div",y,["number"==typeof e.poll.voters_count?((0,o.wg)(),(0,o.iD)(o.HY,{key:0},[(0,o.Uk)((0,r.zw)(e.$tc("polls.people_voted_count",e.poll.voters_count,{count:e.poll.voters_count}))+" ·  ",1)],64)):((0,o.wg)(),(0,o.iD)(o.HY,{key:1},[(0,o.Uk)((0,r.zw)(e.$tc("polls.votes_count",e.poll.votes_count,{count:e.poll.votes_count}))+" ·  ",1)],64))]),(0,o._)("span",null,[(0,o.Wm)(D,{scope:"global",keypath:e.expired?"polls.expired":"polls.expires_in"},{default:(0,o.w5)((function(){return[(0,o.Wm)(c,{time:e.expiresAt,"auto-update":60,"now-threshold":0},null,8,["time"])]})),_:1},8,["keypath"])])])],2)}]]);var z=n(67671),P=n(49963),I={class:"body"},x=n(58394),T=n(989),$=n(9382),B=n(84131);function U(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}$.vI.add(B.gMD,B.Xig,B.VmB,B.nNP,B.Mm7);const M={name:"StatusContent",props:["compact","status","focused","noHeading","fullContent","singleLine","showingTall","expandingSubject","showingLongSubject","toggleShowingTall","toggleExpandingSubject","toggleShowingLongSubject"],data:function(){return{postLength:this.status.text.length,parseReadyDone:!1}},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?U(Object(n),!0).forEach((function(t){(0,u.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):U(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({localCollapseSubjectDefault:function(){return this.mergedConfig.collapseMessageWithSubject},tallStatus:function(){return!this.singleLine&&!this.compact&&this.status.raw_html.split(/<p|<br/).length+this.postLength/80>20},longSubject:function(){return this.status.summary.length>240},mightHideBecauseSubject:function(){return!!this.status.summary&&this.localCollapseSubjectDefault},mightHideBecauseTall:function(){return this.tallStatus&&!(this.status.summary&&this.localCollapseSubjectDefault)},hideSubjectStatus:function(){return this.mightHideBecauseSubject&&!this.expandingSubject},hideTallStatus:function(){return this.mightHideBecauseTall&&!this.showingTall},showingMore:function(){return this.mightHideBecauseTall&&this.showingTall||this.mightHideBecauseSubject&&this.expandingSubject},attachmentTypes:function(){return this.status.attachments.map((function(e){return x.ZP.fileType(e.mimetype)}))}},(0,T.Se)(["mergedConfig"])),components:{RichContent:F.Z},mounted:function(){var e=this;this.status.attentions&&this.status.attentions.forEach((function(t){var n=t.id;e.$store.dispatch("fetchUserIfMissing",n)}))},methods:{onParseReady:function(e){var t=this;if(!this.parseReadyDone){this.parseReadyDone=!0,this.$emit("parseReady",e);var n=e.writtenMentions,o=e.invisibleMentions;n.filter((function(e){return!e.notifying})).forEach((function(e){var n=e.content,o=e.url,r=n.replace(/<[^>]+?>/gi,"");if(r.startsWith("@")){var i=r.slice(1),s=o.replace(/^https?:\/\//,"").replace(/\/.+?$/,"");t.$store.dispatch("fetchUserIfMissing","".concat(i,"@").concat(s))}})),this.postLength=o.reduce((function(e,t){return e-t.textContent.length-1}),this.postLength)}},toggleShowMore:function(){this.mightHideBecauseTall?this.toggleShowingTall():this.mightHideBecauseSubject&&this.toggleExpandingSubject()},generateTagLink:function(e){return"/tag/".concat(e)}}},L=(0,O.Z)(M,[["render",function(e,t,n,i,s,a){var u=(0,o.up)("RichContent"),c=(0,o.up)("FAIcon");return(0,o.wg)(),(0,o.iD)("div",{class:(0,r.C_)(["StatusBody",{"-compact":e.compact}])},[(0,o._)("div",I,[e.status.summary_raw_html?((0,o.wg)(),(0,o.iD)("div",{key:0,class:(0,r.C_)(["summary-wrapper",{"-tall":e.longSubject&&!e.showingLongSubject}])},[(0,o.Wm)(u,{class:"media-body summary",html:e.status.summary_raw_html,emoji:e.status.emojis},null,8,["html","emoji"]),(0,o.wy)((0,o._)("button",{class:"button-unstyled -link tall-subject-hider",onClick:t[0]||(t[0]=(0,P.iM)((function(){return e.toggleShowingLongSubject&&e.toggleShowingLongSubject.apply(e,arguments)}),["prevent"]))},(0,r.zw)(e.$t("status.hide_full_subject")),513),[[P.F8,e.longSubject&&e.showingLongSubject]]),(0,o.wy)((0,o._)("button",{class:"button-unstyled -link tall-subject-hider",onClick:t[1]||(t[1]=(0,P.iM)((function(){return e.toggleShowingLongSubject&&e.toggleShowingLongSubject.apply(e,arguments)}),["prevent"]))},(0,r.zw)(e.$t("status.show_full_subject")),513),[[P.F8,e.longSubject&&!e.showingLongSubject]])],2)):(0,o.kq)("",!0),(0,o._)("div",{class:(0,r.C_)([{"-tall-status":e.hideTallStatus},"text-wrapper"])},[(0,o.wy)((0,o._)("button",{class:(0,r.C_)(["button-unstyled -link tall-status-hider",{"-focused":e.focused}]),onClick:t[2]||(t[2]=(0,P.iM)((function(){return e.toggleShowMore&&e.toggleShowMore.apply(e,arguments)}),["prevent"]))},(0,r.zw)(e.$t("general.show_more")),3),[[P.F8,e.hideTallStatus]]),e.hideSubjectStatus||e.singleLine&&e.status.summary_raw_html?(0,o.kq)("",!0):((0,o.wg)(),(0,o.j4)(u,{key:0,class:(0,r.C_)([{"-single-line":e.singleLine},"text media-body"]),html:e.status.raw_html,emoji:e.status.emojis,"handle-links":!0,greentext:e.mergedConfig.greentext,attentions:e.status.attentions,onParseReady:e.onParseReady},null,8,["class","html","emoji","greentext","attentions","onParseReady"])),(0,o.wy)((0,o._)("button",{class:"button-unstyled -link cw-status-hider",onClick:t[3]||(t[3]=(0,P.iM)((function(){return e.toggleShowMore&&e.toggleShowMore.apply(e,arguments)}),["prevent"]))},[(0,o.Uk)((0,r.zw)(e.$t("status.show_content"))+" ",1),e.attachmentTypes.includes("image")?((0,o.wg)(),(0,o.j4)(c,{key:0,icon:"image"})):(0,o.kq)("",!0),e.attachmentTypes.includes("video")?((0,o.wg)(),(0,o.j4)(c,{key:1,icon:"video"})):(0,o.kq)("",!0),e.attachmentTypes.includes("audio")?((0,o.wg)(),(0,o.j4)(c,{key:2,icon:"music"})):(0,o.kq)("",!0),e.attachmentTypes.includes("unknown")?((0,o.wg)(),(0,o.j4)(c,{key:3,icon:"file"})):(0,o.kq)("",!0),e.status.poll&&e.status.poll.options?((0,o.wg)(),(0,o.j4)(c,{key:4,icon:"poll-h"})):(0,o.kq)("",!0),e.status.card?((0,o.wg)(),(0,o.j4)(c,{key:5,icon:"link"})):(0,o.kq)("",!0)],512),[[P.F8,e.hideSubjectStatus]]),(0,o.wy)((0,o._)("button",{class:"button-unstyled -link status-unhider",onClick:t[4]||(t[4]=(0,P.iM)((function(){return e.toggleShowMore&&e.toggleShowMore.apply(e,arguments)}),["prevent"]))},(0,r.zw)(e.tallStatus?e.$t("general.show_less"):e.$t("status.hide_content")),513),[[P.F8,e.showingMore&&!e.fullContent]])],2)]),e.hideSubjectStatus?(0,o.kq)("",!0):(0,o.WI)(e.$slots,"default",{key:0})],2)}]]);var R=n(92798);function q(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function N(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?q(Object(n),!0).forEach((function(t){(0,u.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):q(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}$.vI.add(B.IJ7,B.gMD,B.Xig,B.VmB,B.nNP,B.Mm7);var Z,W=function(e){return e.charAt(0).toUpperCase()+e.slice(1)},H=function(e,t){var n=W(t),o="controlledToggle".concat(n),r="uncontrolled".concat(n);e[o]?e[o]():e[r]=!e[r]};const V={name:"StatusContent",props:["status","compact","focused","noHeading","fullContent","singleLine","controlledShowingTall","controlledExpandingSubject","controlledToggleShowingTall","controlledToggleExpandingSubject","controlledShowingLongSubject","controlledToggleShowingLongSubject"],data:function(){return{uncontrolledShowingTall:this.fullContent||this.inConversation&&this.focused,uncontrolledShowingLongSubject:!1,uncontrolledExpandingSubject:!this.$store.getters.mergedConfig.collapseMessageWithSubject}},computed:N(N(N({},(Z=["showingTall","expandingSubject","showingLongSubject"],Z.reduce((function(e,t){var n=W(t),o="controlledToggle".concat(n),r="controlled".concat(n),i="uncontrolled".concat(n);return e[t]=function(){return void 0===this.$data[o]&&void 0===this.$props[o]||!this[o]?this[i]:this[r]},e}),{}))),{},{statusCard:function(){return this.status.card?this.status.card.url===this.status.quote_url?null:this.status.card:null},hideAttachments:function(){return this.mergedConfig.hideAttachments&&!this.inConversation||this.mergedConfig.hideAttachmentsInConv&&this.inConversation},nsfwClickthrough:function(){return!(!this.status.nsfw||this.status.summary&&this.localCollapseSubjectDefault)},attachmentSize:function(){return this.compact?"small":this.mergedConfig.hideAttachments&&!this.inConversation||this.mergedConfig.hideAttachmentsInConv&&this.inConversation||this.status.attachments.length>this.maxThumbnails?"hide":"normal"},maxThumbnails:function(){return this.mergedConfig.maxThumbnails}},(0,T.Se)(["mergedConfig"])),(0,T.rn)({currentUser:function(e){return e.users.currentUser}})),components:{Attachment:c.Z,Poll:E,Gallery:z.Z,LinkPreview:R.Z,StatusBody:L},methods:{toggleShowingTall:function(){H(this,"showingTall")},toggleExpandingSubject:function(){H(this,"expandingSubject")},toggleShowingLongSubject:function(){H(this,"showingLongSubject")},setMedia:function(){var e=this,t="hide"===this.attachmentSize?this.status.attachments:this.galleryAttachments;return function(){return e.$store.dispatch("setMedia",t)}}}},K=(0,O.Z)(V,[["render",function(e,t,n,u,c,l){var d=(0,o.up)("Poll"),p=(0,o.up)("FAIcon"),m=(0,o.up)("gallery"),h=(0,o.up)("link-preview"),f=(0,o.up)("StatusBody");return(0,o.wg)(),(0,o.iD)("div",{class:(0,r.C_)(["StatusContent",{"-compact":e.compact}])},[(0,o.WI)(e.$slots,"header"),(0,o.Wm)(f,{status:e.status,compact:e.compact,"single-line":e.singleLine,"showing-tall":e.showingTall,"expanding-subject":e.expandingSubject,"showing-long-subject":e.showingLongSubject,"toggle-showing-tall":e.toggleShowingTall,"toggle-expanding-subject":e.toggleExpandingSubject,"toggle-showing-long-subject":e.toggleShowingLongSubject,onParseReady:t[2]||(t[2]=function(t){return e.$emit("parseReady",t)})},{default:(0,o.w5)((function(){return[e.status.poll&&e.status.poll.options&&!e.compact?((0,o.wg)(),(0,o.iD)("div",i,[(0,o.Wm)(d,{"base-poll":e.status.poll,emoji:e.status.emojis},null,8,["base-poll","emoji"])])):e.status.poll&&e.status.poll.options&&e.compact?((0,o.wg)(),(0,o.iD)("div",s,[(0,o.Wm)(p,{icon:"poll-h",size:"2x"})])):(0,o.kq)("",!0),0!==e.status.attachments.length?((0,o.wg)(),(0,o.j4)(m,{key:2,class:"attachments media-body",compact:e.compact,nsfw:e.nsfwClickthrough,attachments:e.status.attachments,limit:e.compact?1:0,size:e.attachmentSize,onPlay:t[0]||(t[0]=function(t){return e.$emit("mediaplay",e.attachment.id)}),onPause:t[1]||(t[1]=function(t){return e.$emit("mediapause",e.attachment.id)})},null,8,["compact","nsfw","attachments","limit","size"])):(0,o.kq)("",!0),!e.statusCard||e.noHeading||e.compact?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",a,[(0,o.Wm)(h,{card:e.status.card,size:e.attachmentSize,nsfw:e.nsfwClickthrough},null,8,["card","size","nsfw"])]))]})),_:1},8,["status","compact","single-line","showing-tall","expanding-subject","showing-long-subject","toggle-showing-tall","toggle-expanding-subject","toggle-showing-long-subject"]),(0,o.WI)(e.$slots,"footer")],2)}]])},32140:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var o=n(66252),r=n(3577),i={key:0,ref:"canvas"},s=["alt","title","data-src","src","referrerpolicy","loading"];const a={props:["src","referrerpolicy","mimetype","imageLoadError","imageLoadHandler","alt","height","width","dataSrc","loading"],data:function(){return{realSrc:this.src,stopGifs:this.$store.getters.mergedConfig.stopGifs}},computed:{animated:function(){return!!this.realSrc&&this.stopGifs&&("image/gif"===this.mimetype||this.realSrc.endsWith(".gif"))},style:function(){var e=function(e){return/\d$/.test(e)?e+"px":e};return{height:this.height?e(this.height):null,width:this.width?e(this.width):null}}},methods:{loadLazy:function(){this.dataSrc&&(this.realSrc=this.dataSrc)},onLoad:function(){if(this.realSrc){var e=this.$refs.src;if(e){this.imageLoadHandler&&this.imageLoadHandler(e);var t=this.$refs.canvas;if(t){var n=e.naturalWidth,o=e.naturalHeight;t.width=n,t.height=o,t.getContext("2d").drawImage(e,0,0,n,o)}}}},onError:function(){this.imageLoadError&&this.imageLoadError()}},watch:{src:function(){this.realSrc=this.src},dataSrc:function(){this.$el.removeAttribute("data-loaded")}}},u=(0,n(83744).Z)(a,[["render",function(e,t,n,a,u,c){return(0,o.wg)(),(0,o.iD)("div",{class:(0,r.C_)(["still-image",{animated:e.animated}]),style:(0,r.j5)(e.style)},[e.animated?((0,o.wg)(),(0,o.iD)("canvas",i,null,512)):(0,o.kq)("",!0),((0,o.wg)(),(0,o.iD)("img",{ref:"src",key:e.realSrc,alt:e.alt,title:e.alt,"data-src":e.dataSrc,src:e.realSrc,referrerpolicy:e.referrerpolicy,loading:e.loading,onLoad:t[0]||(t[0]=function(){return e.onLoad&&e.onLoad.apply(e,arguments)}),onError:t[1]||(t[1]=function(){return e.onError&&e.onError.apply(e,arguments)})},null,40,s)),(0,o.WI)(e.$slots,"default")],6)}]])},1840:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});var o=n(66252),r=n(3577),i=["datetime","title"],s=n(27483),a=n(39776);const u={name:"Timeago",props:["time","autoUpdate","longFormat","nowThreshold","templateKey"],data:function(){return{relativeTime:{key:"time.now",num:0},interval:null}},computed:{localeDateString:function(){var e=a.Z.internalToBrowserLocale(this.$i18n.locale);return"string"==typeof this.time?new Date(Date.parse(this.time)).toLocaleString(e):this.time.toLocaleString(e)},relativeTimeString:function(){var e=this.$i18n.tc(this.relativeTime.key,this.relativeTime.num,[this.relativeTime.num]);return"string"==typeof this.templateKey&&"time.now"!==this.relativeTime.key?this.$i18n.t(this.templateKey,[e]):e}},watch:{time:function(e,t){t!==e&&(clearTimeout(this.interval),this.refreshRelativeTimeObject())}},created:function(){this.refreshRelativeTimeObject()},unmounted:function(){clearTimeout(this.interval)},methods:{refreshRelativeTimeObject:function(){var e="number"==typeof this.nowThreshold?this.nowThreshold:1;this.relativeTime=this.longFormat?s.GV(this.time,e):s._F(this.time,e),this.autoUpdate&&(this.interval=setTimeout(this.refreshRelativeTimeObject,1e3*this.autoUpdate))}}},c=(0,n(83744).Z)(u,[["render",function(e,t,n,s,a,u){return(0,o.wg)(),(0,o.iD)("time",{datetime:n.time,title:u.localeDateString},(0,r.zw)(u.relativeTimeString),9,i)}]])},42262:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var o=n(66252),r=n(9382),i=n(84131);r.vI.add(i.dT$);const s={props:{user:Object}},a=(0,n(83744).Z)(s,[["render",function(e,t,n,r,i,s){var a=(0,o.up)("FAIcon");return e.user&&e.user.screen_name_ui_contains_non_ascii?((0,o.wg)(),(0,o.j4)(a,{key:0,icon:"code",title:e.$t("unicode_domain_indicator.tooltip")},null,8,["title"])):(0,o.kq)("",!0)}]])},48173:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>c});var o=n(66252),r=n(3577),i=n(32140),s=n(9382),a=n(84131);s.vI.add(a.VE0);const u={props:["user","betterShadow","compact","bot"],data:function(){return{showPlaceholder:!1,defaultAvatar:"".concat(this.$store.state.instance.server+this.$store.state.instance.defaultAvatar)}},components:{StillImage:i.Z},methods:{imgSrc:function(e){return!e||this.showPlaceholder?this.defaultAvatar:e},imageLoadError:function(){this.showPlaceholder=!0}}},c=(0,n(83744).Z)(u,[["render",function(e,t,n,i,s,a){var u=(0,o.up)("StillImage"),c=(0,o.up)("FAIcon");return(0,o.wg)(),(0,o.iD)("span",{class:(0,r.C_)(["Avatar",{"-compact":e.compact}])},[e.user?((0,o.wg)(),(0,o.j4)(u,{key:0,class:(0,r.C_)(["avatar",{"-compact":e.compact,"-better-shadow":e.betterShadow}]),alt:e.user.screen_name_ui,title:e.user.screen_name_ui,src:e.imgSrc(e.user.profile_image_url_original),"image-load-error":e.imageLoadError},null,8,["alt","title","src","image-load-error","class"])):((0,o.wg)(),(0,o.iD)("div",{key:1,class:(0,r.C_)(["avatar -placeholder",{"-compact":e.compact}])},null,2)),e.bot?((0,o.wg)(),(0,o.j4)(c,{key:2,icon:"robot",class:"bot-indicator"})):(0,o.kq)("",!0)],2)}]])},20392:(e,t,n)=>{"use strict";n.d(t,{Z:()=>$e});var o=n(66252),r=n(3577),i=n(49963),s={class:"user-info"},a={class:"container"},u={class:"user-info-avatar -link -overlay"},c={class:"user-summary"},l={class:"top-line"},d=["href"],p={class:"bottom-line"},m={key:0,class:"alert user-role"},h={key:1,class:"alert user-role"},f={key:2,class:"alert user-role"},g={key:1},v={key:2,class:"dailyAvg"},w={class:"user-meta"},b={key:0,class:"following"},y={key:1,class:"highlighter"},D=["id"],_=["id"],k={value:"disabled"},C={value:"solid"},S={value:"striped"},j={value:"side"},F={key:0,class:"user-interactions"},A={class:"btn-group"},O=["disabled"],E=["disabled"],z=["disabled"],P={key:1,class:"user-interactions"},I={key:0,class:"panel-body"},x={key:0,class:"user-counts"},T=(0,o._)("br",null,null,-1),$=["textContent"],B={class:"mute-expiry"},U=["value"],M=n(4942),L=n(27483),R=n(48173),q=n(72895),N=n(99507),Z=n(34837),W={class:"dropdown-menu"},H={key:0},V={key:0,role:"separator",class:"dropdown-divider"},K={key:3,role:"separator",class:"dropdown-divider"},G={key:4},Y=n(9382),J=n(84131),Q=n(71113),X=n(84535);Y.vI.add(J.ptq);const ee={props:["user"],data:function(){return{tags:{FORCE_NSFW:"mrf_tag:media-force-nsfw",STRIP_MEDIA:"mrf_tag:media-strip",FORCE_UNLISTED:"mrf_tag:force-unlisted",DISABLE_REMOTE_SUBSCRIPTION:"mrf_tag:disable-remote-subscription",DISABLE_ANY_SUBSCRIPTION:"mrf_tag:disable-any-subscription",SANDBOX:"mrf_tag:sandbox",QUARANTINE:"mrf_tag:quarantine"},showDeleteUserDialog:!1,toggled:!1}},components:{DialogModal:Q.Z,Popover:X.default},computed:{tagsSet:function(){return new Set(this.user.tags)},canGrantRole:function(){return this.user.is_local&&!this.user.deactivated&&"admin"===this.$store.state.users.currentUser.role},canChangeActivationState:function(){return this.privileged("users_manage_activation_state")},canDeleteAccount:function(){return this.privileged("users_delete")},canUseTagPolicy:function(){return this.$store.state.instance.tagPolicyAvailable&&this.privileged("users_manage_tags")}},methods:{hasTag:function(e){return this.tagsSet.has(e)},privileged:function(e){return this.$store.state.users.currentUser.privileges.includes(e)},toggleTag:function(e){var t=this,n=this.$store;this.tagsSet.has(e)?n.state.api.backendInteractor.untagUser({user:this.user,tag:e}).then((function(o){o.ok&&n.commit("untagUser",{user:t.user,tag:e})})):n.state.api.backendInteractor.tagUser({user:this.user,tag:e}).then((function(o){o.ok&&n.commit("tagUser",{user:t.user,tag:e})}))},toggleRight:function(e){var t=this,n=this.$store;this.user.rights[e]?n.state.api.backendInteractor.deleteRight({user:this.user,right:e}).then((function(o){o.ok&&n.commit("updateRight",{user:t.user,right:e,value:!1})})):n.state.api.backendInteractor.addRight({user:this.user,right:e}).then((function(o){o.ok&&n.commit("updateRight",{user:t.user,right:e,value:!0})}))},toggleActivationStatus:function(){this.$store.dispatch("toggleActivationStatus",{user:this.user})},deleteUserDialog:function(e){this.showDeleteUserDialog=e},deleteUser:function(){var e=this,t=this.$store,n=this.user,o=n.id,r=n.name;t.state.api.backendInteractor.deleteUser({user:n}).then((function(t){e.$store.dispatch("markStatusesAsDeleted",(function(e){return n.id===e.user.id}));var i="external-user-profile"===e.$route.name||"user-profile"===e.$route.name,s=e.$route.params.name===r||e.$route.params.id===o;i&&s&&window.history.back()}))},setToggled:function(e){this.toggled=e}}};var te=n(83744);const ne=(0,te.Z)(ee,[["render",function(e,t,n,i,s,a){var u=(0,o.up)("FAIcon"),c=(0,o.up)("Popover"),l=(0,o.up)("DialogModal");return(0,o.wg)(),(0,o.iD)("div",null,[(0,o.Wm)(c,{trigger:"click",class:"moderation-tools-popover",placement:"bottom",offset:{y:5},onShow:t[11]||(t[11]=function(t){return e.setToggled(!0)}),onClose:t[12]||(t[12]=function(t){return e.setToggled(!1)})},{content:(0,o.w5)((function(){return[(0,o._)("div",W,[e.canGrantRole?((0,o.wg)(),(0,o.iD)("span",H,[(0,o._)("button",{class:"button-default dropdown-item",onClick:t[0]||(t[0]=function(t){return e.toggleRight("admin")})},(0,r.zw)(e.$t(e.user.rights.admin?"user_card.admin_menu.revoke_admin":"user_card.admin_menu.grant_admin")),1),(0,o._)("button",{class:"button-default dropdown-item",onClick:t[1]||(t[1]=function(t){return e.toggleRight("moderator")})},(0,r.zw)(e.$t(e.user.rights.moderator?"user_card.admin_menu.revoke_moderator":"user_card.admin_menu.grant_moderator")),1),e.canChangeActivationState||e.canDeleteAccount?((0,o.wg)(),(0,o.iD)("div",V)):(0,o.kq)("",!0)])):(0,o.kq)("",!0),e.canChangeActivationState?((0,o.wg)(),(0,o.iD)("button",{key:1,class:"button-default dropdown-item",onClick:t[2]||(t[2]=function(t){return e.toggleActivationStatus()})},(0,r.zw)(e.$t(e.user.deactivated?"user_card.admin_menu.activate_account":"user_card.admin_menu.deactivate_account")),1)):(0,o.kq)("",!0),e.canDeleteAccount?((0,o.wg)(),(0,o.iD)("button",{key:2,class:"button-default dropdown-item",onClick:t[3]||(t[3]=function(t){return e.deleteUserDialog(!0)})},(0,r.zw)(e.$t("user_card.admin_menu.delete_account")),1)):(0,o.kq)("",!0),e.canUseTagPolicy?((0,o.wg)(),(0,o.iD)("div",K)):(0,o.kq)("",!0),e.canUseTagPolicy?((0,o.wg)(),(0,o.iD)("span",G,[(0,o._)("button",{class:"button-default dropdown-item",onClick:t[4]||(t[4]=function(t){return e.toggleTag(e.tags.FORCE_NSFW)})},[(0,o._)("span",{class:(0,r.C_)(["menu-checkbox",{"menu-checkbox-checked":e.hasTag(e.tags.FORCE_NSFW)}])},null,2),(0,o.Uk)(" "+(0,r.zw)(e.$t("user_card.admin_menu.force_nsfw")),1)]),(0,o._)("button",{class:"button-default dropdown-item",onClick:t[5]||(t[5]=function(t){return e.toggleTag(e.tags.STRIP_MEDIA)})},[(0,o._)("span",{class:(0,r.C_)(["menu-checkbox",{"menu-checkbox-checked":e.hasTag(e.tags.STRIP_MEDIA)}])},null,2),(0,o.Uk)(" "+(0,r.zw)(e.$t("user_card.admin_menu.strip_media")),1)]),(0,o._)("button",{class:"button-default dropdown-item",onClick:t[6]||(t[6]=function(t){return e.toggleTag(e.tags.FORCE_UNLISTED)})},[(0,o._)("span",{class:(0,r.C_)(["menu-checkbox",{"menu-checkbox-checked":e.hasTag(e.tags.FORCE_UNLISTED)}])},null,2),(0,o.Uk)(" "+(0,r.zw)(e.$t("user_card.admin_menu.force_unlisted")),1)]),(0,o._)("button",{class:"button-default dropdown-item",onClick:t[7]||(t[7]=function(t){return e.toggleTag(e.tags.SANDBOX)})},[(0,o._)("span",{class:(0,r.C_)(["menu-checkbox",{"menu-checkbox-checked":e.hasTag(e.tags.SANDBOX)}])},null,2),(0,o.Uk)(" "+(0,r.zw)(e.$t("user_card.admin_menu.sandbox")),1)]),e.user.is_local?((0,o.wg)(),(0,o.iD)("button",{key:0,class:"button-default dropdown-item",onClick:t[8]||(t[8]=function(t){return e.toggleTag(e.tags.DISABLE_REMOTE_SUBSCRIPTION)})},[(0,o._)("span",{class:(0,r.C_)(["menu-checkbox",{"menu-checkbox-checked":e.hasTag(e.tags.DISABLE_REMOTE_SUBSCRIPTION)}])},null,2),(0,o.Uk)(" "+(0,r.zw)(e.$t("user_card.admin_menu.disable_remote_subscription")),1)])):(0,o.kq)("",!0),e.user.is_local?((0,o.wg)(),(0,o.iD)("button",{key:1,class:"button-default dropdown-item",onClick:t[9]||(t[9]=function(t){return e.toggleTag(e.tags.DISABLE_ANY_SUBSCRIPTION)})},[(0,o._)("span",{class:(0,r.C_)(["menu-checkbox",{"menu-checkbox-checked":e.hasTag(e.tags.DISABLE_ANY_SUBSCRIPTION)}])},null,2),(0,o.Uk)(" "+(0,r.zw)(e.$t("user_card.admin_menu.disable_any_subscription")),1)])):(0,o.kq)("",!0),e.user.is_local?((0,o.wg)(),(0,o.iD)("button",{key:2,class:"button-default dropdown-item",onClick:t[10]||(t[10]=function(t){return e.toggleTag(e.tags.QUARANTINE)})},[(0,o._)("span",{class:(0,r.C_)(["menu-checkbox",{"menu-checkbox-checked":e.hasTag(e.tags.QUARANTINE)}])},null,2),(0,o.Uk)(" "+(0,r.zw)(e.$t("user_card.admin_menu.quarantine")),1)])):(0,o.kq)("",!0)])):(0,o.kq)("",!0)])]})),trigger:(0,o.w5)((function(){return[(0,o._)("button",{class:(0,r.C_)(["btn button-default btn-block moderation-tools-button",{toggled:e.toggled}])},[(0,o.Uk)((0,r.zw)(e.$t("user_card.admin_menu.moderation"))+" ",1),(0,o.Wm)(u,{icon:"chevron-down"})],2)]})),_:1}),((0,o.wg)(),(0,o.j4)(o.lR,{to:"#modal"},[e.showDeleteUserDialog?((0,o.wg)(),(0,o.j4)(l,{key:0,"on-cancel":e.deleteUserDialog.bind(this,!1)},{header:(0,o.w5)((function(){return[(0,o.Uk)((0,r.zw)(e.$t("user_card.admin_menu.delete_user")),1)]})),footer:(0,o.w5)((function(){return[(0,o._)("button",{class:"btn button-default",onClick:t[13]||(t[13]=function(t){return e.deleteUserDialog(!1)})},(0,r.zw)(e.$t("general.cancel")),1),(0,o._)("button",{class:"btn button-default danger",onClick:t[14]||(t[14]=function(t){return e.deleteUser()})},(0,r.zw)(e.$t("user_card.admin_menu.delete_user")),1)]})),default:(0,o.w5)((function(){return[(0,o._)("p",null,(0,r.zw)(e.$t("user_card.admin_menu.delete_user_confirmation")),1)]})),_:1},8,["on-cancel"])):(0,o.kq)("",!0)]))])}]]);var oe={class:"AccountActions"},re={class:"dropdown-menu"},ie=(0,o._)("div",{role:"separator",class:"dropdown-divider"},null,-1),se={class:"button-unstyled ellipsis-button"},ae=["textContent"],ue=["textContent"],ce=n(989),le={class:"UserListMenu"},de={class:"dropdown-menu"},pe=["onClick"],me={class:"btn button-default dropdown-item -has-submenu"};function he(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function fe(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?he(Object(n),!0).forEach((function(t){(0,M.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):he(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Y.vI.add(J._tD);const ge={props:["user"],data:function(){return{}},components:{DialogModal:Q.Z,Popover:X.default},created:function(){this.$store.dispatch("fetchUserInLists",this.user.id)},computed:fe(fe({},(0,ce.rn)({allLists:function(e){return e.lists.allLists}})),{},{inListsSet:function(){return new Set(this.user.inLists.map((function(e){return e.id})))},lists:function(){var e=this;return this.user.inLists?this.allLists.map((function(t){return fe(fe({},t),{},{inList:e.inListsSet.has(t.id)})})):[]}}),methods:{toggleList:function(e){var t=this;this.inListsSet.has(e)?this.$store.dispatch("removeListAccount",{accountId:this.user.id,listId:e}).then((function(e){e.ok&&t.$store.dispatch("fetchUserInLists",t.user.id)})):this.$store.dispatch("addListAccount",{accountId:this.user.id,listId:e}).then((function(e){e.ok&&t.$store.dispatch("fetchUserInLists",t.user.id)}))},toggleRight:function(e){var t=this,n=this.$store;this.user.rights[e]?n.state.api.backendInteractor.deleteRight({user:this.user,right:e}).then((function(o){o.ok&&n.commit("updateRight",{user:t.user,right:e,value:!1})})):n.state.api.backendInteractor.addRight({user:this.user,right:e}).then((function(o){o.ok&&n.commit("updateRight",{user:t.user,right:e,value:!0})}))},toggleActivationStatus:function(){this.$store.dispatch("toggleActivationStatus",{user:this.user})},deleteUserDialog:function(e){this.showDeleteUserDialog=e},deleteUser:function(){var e=this,t=this.$store,n=this.user,o=n.id,r=n.name;t.state.api.backendInteractor.deleteUser({user:n}).then((function(t){e.$store.dispatch("markStatusesAsDeleted",(function(e){return n.id===e.user.id}));var i="external-user-profile"===e.$route.name||"user-profile"===e.$route.name,s=e.$route.params.name===r||e.$route.params.id===o;i&&s&&window.history.back()}))},setToggled:function(e){this.toggled=e}}},ve=(0,te.Z)(ge,[["render",function(e,t,n,i,s,a){var u=(0,o.up)("FAIcon"),c=(0,o.up)("Popover");return(0,o.wg)(),(0,o.iD)("div",le,[(0,o.Wm)(c,{trigger:"hover",placement:"left","remove-padding":""},{content:(0,o.w5)((function(){return[(0,o._)("div",de,[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.lists,(function(t){return(0,o.wg)(),(0,o.iD)("button",{key:t.id,class:"button-default dropdown-item",onClick:function(n){return e.toggleList(t.id)}},[(0,o._)("span",{class:(0,r.C_)(["menu-checkbox",{"menu-checkbox-checked":t.inList}])},null,2),(0,o.Uk)(" "+(0,r.zw)(t.title),1)],8,pe)})),128))])]})),trigger:(0,o.w5)((function(){return[(0,o._)("button",me,[(0,o.Uk)((0,r.zw)(e.$t("lists.manage_lists"))+" ",1),(0,o.Wm)(u,{class:"chevron-icon",size:"lg",icon:"chevron-right"})])]})),_:1})])}]]);var we=n(1447);function be(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}Y.vI.add(J.iV1);const ye={props:["user","relationship"],data:function(){return{showingConfirmBlock:!1,showingConfirmRemoveFollower:!1}},components:{ProgressButton:N.Z,Popover:X.default,UserListMenu:ve,ConfirmModal:we.Z},methods:{showConfirmBlock:function(){this.showingConfirmBlock=!0},hideConfirmBlock:function(){this.showingConfirmBlock=!1},showConfirmRemoveUserFromFollowers:function(){this.showingConfirmRemoveFollower=!0},hideConfirmRemoveUserFromFollowers:function(){this.showingConfirmRemoveFollower=!1},showRepeats:function(){this.$store.dispatch("showReblogs",this.user.id)},hideRepeats:function(){this.$store.dispatch("hideReblogs",this.user.id)},blockUser:function(){this.shouldConfirmBlock?this.showConfirmBlock():this.doBlockUser()},doBlockUser:function(){this.$store.dispatch("blockUser",this.user.id),this.hideConfirmBlock()},unblockUser:function(){this.$store.dispatch("unblockUser",this.user.id)},removeUserFromFollowers:function(){this.shouldConfirmRemoveUserFromFollowers?this.showConfirmRemoveUserFromFollowers():this.doRemoveUserFromFollowers()},doRemoveUserFromFollowers:function(){this.$store.dispatch("removeUserFromFollowers",this.user.id),this.hideConfirmRemoveUserFromFollowers()},reportUser:function(){this.$store.dispatch("openUserReportingModal",{userId:this.user.id})},openChat:function(){this.$router.push({name:"chat",params:{username:this.$store.state.users.currentUser.screen_name,recipient_id:this.user.id}})}},computed:function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?be(Object(n),!0).forEach((function(t){(0,M.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):be(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({shouldConfirmBlock:function(){return this.$store.getters.mergedConfig.modalOnBlock},shouldConfirmRemoveUserFromFollowers:function(){return this.$store.getters.mergedConfig.modalOnRemoveUserFromFollowers}},(0,ce.rn)({pleromaChatMessagesAvailable:function(e){return e.instance.pleromaChatMessagesAvailable}}))},De=(0,te.Z)(ye,[["render",function(e,t,n,i,s,a){var u=(0,o.up)("UserListMenu"),c=(0,o.up)("FAIcon"),l=(0,o.up)("Popover"),d=(0,o.up)("i18n-t"),p=(0,o.up)("confirm-modal");return(0,o.wg)(),(0,o.iD)("div",oe,[(0,o.Wm)(l,{trigger:"click",placement:"bottom","bound-to":{x:"container"},"remove-padding":""},{content:(0,o.w5)((function(){return[(0,o._)("div",re,[e.relationship.following?((0,o.wg)(),(0,o.iD)(o.HY,{key:0},[e.relationship.showing_reblogs?((0,o.wg)(),(0,o.iD)("button",{key:0,class:"btn button-default dropdown-item",onClick:t[0]||(t[0]=function(){return e.hideRepeats&&e.hideRepeats.apply(e,arguments)})},(0,r.zw)(e.$t("user_card.hide_repeats")),1)):(0,o.kq)("",!0),e.relationship.showing_reblogs?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("button",{key:1,class:"btn button-default dropdown-item",onClick:t[1]||(t[1]=function(){return e.showRepeats&&e.showRepeats.apply(e,arguments)})},(0,r.zw)(e.$t("user_card.show_repeats")),1)),ie],64)):(0,o.kq)("",!0),(0,o.Wm)(u,{user:e.user},null,8,["user"]),e.relationship.followed_by?((0,o.wg)(),(0,o.iD)("button",{key:1,class:"btn button-default btn-block dropdown-item",onClick:t[2]||(t[2]=function(){return e.removeUserFromFollowers&&e.removeUserFromFollowers.apply(e,arguments)})},(0,r.zw)(e.$t("user_card.remove_follower")),1)):(0,o.kq)("",!0),e.relationship.blocking?((0,o.wg)(),(0,o.iD)("button",{key:2,class:"btn button-default btn-block dropdown-item",onClick:t[3]||(t[3]=function(){return e.unblockUser&&e.unblockUser.apply(e,arguments)})},(0,r.zw)(e.$t("user_card.unblock")),1)):((0,o.wg)(),(0,o.iD)("button",{key:3,class:"btn button-default btn-block dropdown-item",onClick:t[4]||(t[4]=function(){return e.blockUser&&e.blockUser.apply(e,arguments)})},(0,r.zw)(e.$t("user_card.block")),1)),(0,o._)("button",{class:"btn button-default btn-block dropdown-item",onClick:t[5]||(t[5]=function(){return e.reportUser&&e.reportUser.apply(e,arguments)})},(0,r.zw)(e.$t("user_card.report")),1),e.pleromaChatMessagesAvailable?((0,o.wg)(),(0,o.iD)("button",{key:4,class:"btn button-default btn-block dropdown-item",onClick:t[6]||(t[6]=function(){return e.openChat&&e.openChat.apply(e,arguments)})},(0,r.zw)(e.$t("user_card.message")),1)):(0,o.kq)("",!0)])]})),trigger:(0,o.w5)((function(){return[(0,o._)("button",se,[(0,o.Wm)(c,{class:"icon",icon:"ellipsis-v"})])]})),_:1}),((0,o.wg)(),(0,o.j4)(o.lR,{to:"#modal"},[e.showingConfirmBlock?((0,o.wg)(),(0,o.j4)(p,{key:0,title:e.$t("user_card.block_confirm_title"),"confirm-text":e.$t("user_card.block_confirm_accept_button"),"cancel-text":e.$t("user_card.block_confirm_cancel_button"),onAccepted:e.doBlockUser,onCancelled:e.hideConfirmBlock},{default:(0,o.w5)((function(){return[(0,o.Wm)(d,{keypath:"user_card.block_confirm",tag:"span"},{user:(0,o.w5)((function(){return[(0,o._)("span",{textContent:(0,r.zw)(e.user.screen_name_ui)},null,8,ae)]})),_:1})]})),_:1},8,["title","confirm-text","cancel-text","onAccepted","onCancelled"])):(0,o.kq)("",!0)])),((0,o.wg)(),(0,o.j4)(o.lR,{to:"#modal"},[e.showingConfirmRemoveFollower?((0,o.wg)(),(0,o.j4)(p,{key:0,title:e.$t("user_card.remove_follower_confirm_title"),"confirm-text":e.$t("user_card.remove_follower_confirm_accept_button"),"cancel-text":e.$t("user_card.remove_follower_confirm_cancel_button"),onAccepted:e.doRemoveUserFromFollowers,onCancelled:e.hideConfirmRemoveUserFromFollowers},{default:(0,o.w5)((function(){return[(0,o.Wm)(d,{keypath:"user_card.remove_follower_confirm",tag:"span"},{user:(0,o.w5)((function(){return[(0,o._)("span",{textContent:(0,r.zw)(e.user.screen_name_ui)},null,8,ue)]})),_:1})]})),_:1},8,["title","confirm-text","cancel-text","onAccepted","onCancelled"])):(0,o.kq)("",!0)]))])}]]);var _e={class:"user-note"},ke={class:"heading"},Ce={class:"buttons"},Se=["disabled"],je=["disabled"];const Fe={props:{user:Object,relationship:Object,editable:Boolean},data:function(){return{localNote:"",editing:!1,frozen:!1}},computed:{shouldShow:function(){return this.relationship.note||this.editing}},methods:{startEditing:function(){this.localNote=this.relationship.note,this.editing=!0},cancelEditing:function(){this.editing=!1},finalizeEditing:function(){var e=this;this.frozen=!0,this.$store.dispatch("editUserNote",{id:this.user.id,comment:this.localNote}).then((function(){e.frozen=!1,e.editing=!1})).catch((function(){e.frozen=!1}))}}},Ae=(0,te.Z)(Fe,[["render",function(e,t,n,s,a,u){return(0,o.wg)(),(0,o.iD)("div",_e,[(0,o._)("div",ke,[(0,o._)("span",null,(0,r.zw)(e.$t("user_card.note")),1),(0,o._)("div",Ce,[(0,o.wy)((0,o._)("button",{class:"button-default btn",onClick:t[0]||(t[0]=function(){return e.startEditing&&e.startEditing.apply(e,arguments)})},(0,r.zw)(e.$t("user_card.edit_note")),513),[[i.F8,!e.editing&&e.editable]]),(0,o.wy)((0,o._)("button",{class:"button-default btn",disabled:e.frozen,onClick:t[1]||(t[1]=function(){return e.finalizeEditing&&e.finalizeEditing.apply(e,arguments)})},(0,r.zw)(e.$t("user_card.edit_note_apply")),9,Se),[[i.F8,e.editing]]),(0,o.wy)((0,o._)("button",{class:"button-default btn",disabled:e.frozen,onClick:t[2]||(t[2]=function(){return e.cancelEditing&&e.cancelEditing.apply(e,arguments)})},(0,r.zw)(e.$t("user_card.edit_note_cancel")),9,je),[[i.F8,e.editing]])])]),(0,o.wy)((0,o._)("textarea",{"onUpdate:modelValue":t[3]||(t[3]=function(t){return e.localNote=t}),class:"note-text"},null,512),[[i.F8,e.editing],[i.nr,e.localNote]]),(0,o.wy)((0,o._)("span",{class:(0,r.C_)(["note-text",{"-blank":!e.relationship.note}])},(0,r.zw)(e.relationship.note||e.$t("user_card.note_blank")),3),[[i.F8,!e.editing]])])}]]);var Oe=n(76990),Ee=n(12061),ze=n(92820),Pe=n(4493);function Ie(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function xe(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ie(Object(n),!0).forEach((function(t){(0,M.Z)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ie(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}Y.vI.add(J.Fwd,J.qmU,J.N7g,J.Xjp,J.Xcf,J.NBC,J.TTL);const Te={props:["userId","switcher","selected","hideBio","rounded","bordered","avatarAction","onClose","hasNoteEditor"],data:function(){return{followRequestInProgress:!1,betterShadow:this.$store.state.interface.browserSupport.cssFilter,showingConfirmMute:!1,muteExpiryAmount:0,muteExpiryUnit:"minutes"}},created:function(){this.$store.dispatch("fetchUserRelationship",this.user.id)},computed:xe({user:function(){return this.$store.getters.findUser(this.userId)},relationship:function(){return this.$store.getters.relationship(this.userId)},classes:function(){return[{"-rounded-t":"top"===this.rounded,"-rounded":!0===this.rounded,"-bordered":!0===this.bordered,"-popover":!!this.onClose}]},style:function(){return{backgroundImage:["linear-gradient(to bottom, var(--profileTint), var(--profileTint))","url(".concat(this.user.cover_photo,")")].join(", ")}},isOtherUser:function(){return this.user.id!==this.$store.state.users.currentUser.id},subscribeUrl:function(){var e=new URL(this.user.statusnet_profile_url);return"".concat(e.protocol,"//").concat(e.host,"/main/ostatus")},loggedIn:function(){return this.$store.state.users.currentUser},dailyAvg:function(){var e=Math.ceil((new Date-new Date(this.user.created_at))/864e5);return Math.round(this.user.statuses_count/e)},userHighlightType:xe({get:function(){var e=this.$store.getters.mergedConfig.highlight[this.user.screen_name];return e&&e.type||"disabled"},set:function(e){var t=this.$store.getters.mergedConfig.highlight[this.user.screen_name];"disabled"!==e?this.$store.dispatch("setHighlight",{user:this.user.screen_name,color:t&&t.color||"#FFFFFF",type:e}):this.$store.dispatch("setHighlight",{user:this.user.screen_name,color:void 0})}},(0,ce.Se)(["mergedConfig"])),userHighlightColor:{get:function(){var e=this.$store.getters.mergedConfig.highlight[this.user.screen_name];return e&&e.color},set:function(e){this.$store.dispatch("setHighlight",{user:this.user.screen_name,color:e})}},visibleRole:function(){var e=this.user.rights;if(e){var t=e.admin||e.moderator,n=e.admin?"admin":"moderator";return t&&n}},hideFollowsCount:function(){return this.isOtherUser&&this.user.hide_follows_count},hideFollowersCount:function(){return this.isOtherUser&&this.user.hide_followers_count},showModerationMenu:function(){var e=this.loggedIn.privileges;return"admin"===this.loggedIn.role||e.includes("users_manage_activation_state")||e.includes("users_delete")||e.includes("users_manage_tags")},hasNote:function(){return this.relationship.note},supportsNote:function(){return"note"in this.relationship},shouldConfirmMute:function(){return this.mergedConfig.modalOnMute},muteExpiryUnits:function(){return["minutes","hours","days"]}},(0,ce.Se)(["mergedConfig"])),components:{UserAvatar:R.default,RemoteFollow:q.Z,ModerationTools:ne,AccountActions:De,ProgressButton:N.Z,FollowButton:Z.Z,Select:Oe.Z,RichContent:ze.Z,UserLink:Ee.Z,UserNote:Ae,ConfirmModal:we.Z},methods:{showConfirmMute:function(){this.showingConfirmMute=!0},hideConfirmMute:function(){this.showingConfirmMute=!1},muteUser:function(){this.shouldConfirmMute?this.showConfirmMute():this.doMuteUser()},doMuteUser:function(){this.$store.dispatch("muteUser",{id:this.user.id,expiresIn:this.shouldConfirmMute?(0,L.cC)(this.muteExpiryUnit,this.muteExpiryAmount):0}),this.hideConfirmMute()},unmuteUser:function(){this.$store.dispatch("unmuteUser",this.user.id)},subscribeUser:function(){return this.$store.dispatch("subscribeUser",this.user.id)},unsubscribeUser:function(){return this.$store.dispatch("unsubscribeUser",this.user.id)},setProfileView:function(e){this.switcher&&this.$store.commit("setProfileView",{v:e})},linkClicked:function(e){var t=e.target;"SPAN"===t.tagName&&(t=t.parentNode),"A"===t.tagName&&window.open(t.href,"_blank")},userProfileLink:function(e){return(0,Pe.Z)(e.id,e.screen_name,this.$store.state.instance.restrictedNicknames)},openProfileTab:function(){this.$store.dispatch("openSettingsModalTab","profile")},zoomAvatar:function(){var e={url:this.user.profile_image_url_original,mimetype:"image"};this.$store.dispatch("setMedia",[e]),this.$store.dispatch("setCurrentMedia",e)},mentionUser:function(){this.$store.dispatch("openPostStatusModal",{replyTo:!0,repliedUser:this.user})},onAvatarClickHandler:function(e){this.onAvatarClick&&(e.preventDefault(),this.onAvatarClick())}}},$e=(0,te.Z)(Te,[["render",function(e,t,n,M,L,R){var q=(0,o.up)("UserAvatar"),N=(0,o.up)("FAIcon"),Z=(0,o.up)("router-link"),W=(0,o.up)("RichContent"),H=(0,o.up)("AccountActions"),V=(0,o.up)("user-link"),K=(0,o.up)("Select"),G=(0,o.up)("FollowButton"),Y=(0,o.up)("ProgressButton"),J=(0,o.up)("FALayers"),Q=(0,o.up)("ModerationTools"),X=(0,o.up)("RemoteFollow"),ee=(0,o.up)("UserNote"),te=(0,o.up)("i18n-t"),ne=(0,o.up)("confirm-modal");return(0,o.wg)(),(0,o.iD)("div",{class:(0,r.C_)(["user-card",e.classes])},[(0,o._)("div",{class:(0,r.C_)([{"hide-bio":e.hideBio},"background-image"]),style:(0,r.j5)(e.style)},null,6),(0,o._)("div",{class:(0,r.C_)(e.onClose?"":e.panel-e.heading-e.flexible-e.height)},[(0,o._)("div",s,[(0,o._)("div",a,["zoom"===e.avatarAction?((0,o.wg)(),(0,o.iD)("a",{key:0,class:"user-info-avatar -link",onClick:t[0]||(t[0]=function(){return e.zoomAvatar&&e.zoomAvatar.apply(e,arguments)})},[(0,o.Wm)(q,{"better-shadow":e.betterShadow,user:e.user},null,8,["better-shadow","user"]),(0,o._)("div",u,[(0,o.Wm)(N,{class:"fa-scale-110 fa-old-padding",icon:"search-plus"})])])):"function"==typeof e.avatarAction?((0,o.wg)(),(0,o.j4)(q,{key:1,class:"user-info-avatar","better-shadow":e.betterShadow,user:e.user,onClick:e.avatarAction},null,8,["better-shadow","user","onClick"])):((0,o.wg)(),(0,o.j4)(Z,{key:2,to:e.userProfileLink(e.user)},{default:(0,o.w5)((function(){return[(0,o.Wm)(q,{"better-shadow":e.betterShadow,user:e.user},null,8,["better-shadow","user"])]})),_:1},8,["to"])),(0,o._)("div",c,[(0,o._)("div",l,[(0,o.Wm)(Z,{to:e.userProfileLink(e.user),class:"user-name"},{default:(0,o.w5)((function(){return[(0,o.Wm)(W,{title:e.user.name,html:e.user.name,emoji:e.user.emoji},null,8,["title","html","emoji"])]})),_:1},8,["to"]),!e.isOtherUser&&e.user.is_local?((0,o.wg)(),(0,o.iD)("button",{key:0,class:"button-unstyled edit-profile-button",onClick:t[1]||(t[1]=(0,i.iM)((function(){return e.openProfileTab&&e.openProfileTab.apply(e,arguments)}),["stop"]))},[(0,o.Wm)(N,{"fixed-width":"",class:"icon",icon:"edit",title:e.$t("user_card.edit_profile")},null,8,["title"])])):(0,o.kq)("",!0),e.isOtherUser&&!e.user.is_local?((0,o.wg)(),(0,o.iD)("a",{key:1,href:e.user.statusnet_profile_url,target:"_blank",class:"button-unstyled external-link-button"},[(0,o.Wm)(N,{class:"icon",icon:"external-link-alt"})],8,d)):(0,o.kq)("",!0),e.isOtherUser&&e.loggedIn?((0,o.wg)(),(0,o.j4)(H,{key:2,user:e.user,relationship:e.relationship},null,8,["user","relationship"])):(0,o.kq)("",!0),e.onClose?((0,o.wg)(),(0,o.j4)(Z,{key:3,to:e.userProfileLink(e.user),class:"button-unstyled external-link-button",onClick:e.onClose},{default:(0,o.w5)((function(){return[(0,o.Wm)(N,{class:"icon",icon:"expand-alt"})]})),_:1},8,["to","onClick"])):(0,o.kq)("",!0),e.onClose?((0,o.wg)(),(0,o.iD)("button",{key:4,class:"button-unstyled external-link-button",onClick:t[2]||(t[2]=function(){return e.onClose&&e.onClose.apply(e,arguments)})},[(0,o.Wm)(N,{class:"icon",icon:"times"})])):(0,o.kq)("",!0)]),(0,o._)("div",p,[(0,o.Wm)(V,{class:"user-screen-name",user:e.user},null,8,["user"]),e.hideBio?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)(o.HY,{key:0},[e.user.deactivated?((0,o.wg)(),(0,o.iD)("span",m,(0,r.zw)(e.$t("user_card.deactivated")),1)):(0,o.kq)("",!0),e.visibleRole?((0,o.wg)(),(0,o.iD)("span",h,(0,r.zw)(e.$t("general.role.".concat(e.visibleRole))),1)):(0,o.kq)("",!0),e.user.bot?((0,o.wg)(),(0,o.iD)("span",f,(0,r.zw)(e.$t("user_card.bot")),1)):(0,o.kq)("",!0)],64)),e.user.locked?((0,o.wg)(),(0,o.iD)("span",g,[(0,o.Wm)(N,{class:"lock-icon",icon:"lock",size:"sm"})])):(0,o.kq)("",!0),e.mergedConfig.hideUserStats||e.hideBio?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("span",v,(0,r.zw)(e.dailyAvg)+" "+(0,r.zw)(e.$t("user_card.per_day")),1))])])]),(0,o._)("div",w,[e.relationship.followed_by&&e.loggedIn&&e.isOtherUser?((0,o.wg)(),(0,o.iD)("div",b,(0,r.zw)(e.$t("user_card.follows_you")),1)):(0,o.kq)("",!0),!e.isOtherUser||!e.loggedIn&&e.switcher?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",y,["disabled"!==e.userHighlightType?(0,o.wy)(((0,o.wg)(),(0,o.iD)("input",{key:0,id:"userHighlightColorTx"+e.user.id,"onUpdate:modelValue":t[3]||(t[3]=function(t){return e.userHighlightColor=t}),class:"userHighlightText",type:"text"},null,8,D)),[[i.nr,e.userHighlightColor]]):(0,o.kq)("",!0),"disabled"!==e.userHighlightType?(0,o.wy)(((0,o.wg)(),(0,o.iD)("input",{key:1,id:"userHighlightColor"+e.user.id,"onUpdate:modelValue":t[4]||(t[4]=function(t){return e.userHighlightColor=t}),class:"userHighlightCl",type:"color"},null,8,_)),[[i.nr,e.userHighlightColor]]):(0,o.kq)("",!0),(0,o.Uk)(" "+(0,r.zw)(" ")+" "),(0,o.Wm)(K,{id:"userHighlightSel"+e.user.id,modelValue:e.userHighlightType,"onUpdate:modelValue":t[5]||(t[5]=function(t){return e.userHighlightType=t}),class:"userHighlightSel"},{default:(0,o.w5)((function(){return[(0,o._)("option",k,(0,r.zw)(e.$t("user_card.highlight.disabled")),1),(0,o._)("option",C,(0,r.zw)(e.$t("user_card.highlight.solid")),1),(0,o._)("option",S,(0,r.zw)(e.$t("user_card.highlight.striped")),1),(0,o._)("option",j,(0,r.zw)(e.$t("user_card.highlight.side")),1)]})),_:1},8,["id","modelValue"])]))]),e.loggedIn&&e.isOtherUser?((0,o.wg)(),(0,o.iD)("div",F,[(0,o._)("div",A,[(0,o.Wm)(G,{relationship:e.relationship,user:e.user},null,8,["relationship","user"]),e.relationship.following?((0,o.wg)(),(0,o.iD)(o.HY,{key:0},[e.relationship.subscribing?((0,o.wg)(),(0,o.j4)(Y,{key:1,class:"btn button-default toggled",click:e.unsubscribeUser,title:e.$t("user_card.unsubscribe")},{default:(0,o.w5)((function(){return[(0,o.Wm)(J,null,{default:(0,o.w5)((function(){return[(0,o.Wm)(N,{icon:"rss",transform:"left-5 shrink-6 up-3 rotate-20",flip:"horizontal"}),(0,o.Wm)(N,{icon:"rss",transform:"right-5 shrink-6 up-3 rotate-20"}),(0,o.Wm)(N,{icon:"bell"})]})),_:1})]})),_:1},8,["click","title"])):((0,o.wg)(),(0,o.j4)(Y,{key:0,class:"btn button-default",click:e.subscribeUser,title:e.$t("user_card.subscribe")},{default:(0,o.w5)((function(){return[(0,o.Wm)(N,{icon:"bell"})]})),_:1},8,["click","title"]))],64)):(0,o.kq)("",!0)]),(0,o._)("div",null,[e.relationship.muting?((0,o.wg)(),(0,o.iD)("button",{key:0,class:"btn button-default btn-block toggled",disabled:e.user.deactivated,onClick:t[6]||(t[6]=function(){return e.unmuteUser&&e.unmuteUser.apply(e,arguments)})},(0,r.zw)(e.$t("user_card.muted")),9,O)):((0,o.wg)(),(0,o.iD)("button",{key:1,class:"btn button-default btn-block",disabled:e.user.deactivated,onClick:t[7]||(t[7]=function(){return e.muteUser&&e.muteUser.apply(e,arguments)})},(0,r.zw)(e.$t("user_card.mute")),9,E))]),(0,o._)("div",null,[(0,o._)("button",{class:"btn button-default btn-block",disabled:e.user.deactivated,onClick:t[8]||(t[8]=function(){return e.mentionUser&&e.mentionUser.apply(e,arguments)})},(0,r.zw)(e.$t("user_card.mention")),9,z)]),e.showModerationMenu?((0,o.wg)(),(0,o.j4)(Q,{key:0,user:e.user},null,8,["user"])):(0,o.kq)("",!0)])):(0,o.kq)("",!0),!e.loggedIn&&e.user.is_local?((0,o.wg)(),(0,o.iD)("div",P,[(0,o.Wm)(X,{user:e.user},null,8,["user"])])):(0,o.kq)("",!0),e.loggedIn&&e.isOtherUser&&(e.hasNote||e.hasNoteEditor&&e.supportsNote)?((0,o.wg)(),(0,o.j4)(ee,{key:2,user:e.user,relationship:e.relationship,editable:e.hasNoteEditor},null,8,["user","relationship","editable"])):(0,o.kq)("",!0)])],2),e.hideBio?(0,o.kq)("",!0):((0,o.wg)(),(0,o.iD)("div",I,[!e.mergedConfig.hideUserStats&&e.switcher?((0,o.wg)(),(0,o.iD)("div",x,[(0,o._)("div",{class:"user-count",onClick:t[9]||(t[9]=(0,i.iM)((function(t){return e.setProfileView("statuses")}),["prevent"]))},[(0,o._)("h5",null,(0,r.zw)(e.$t("user_card.statuses")),1),(0,o._)("span",null,[(0,o.Uk)((0,r.zw)(e.user.statuses_count)+" ",1),T])]),(0,o._)("div",{class:"user-count",onClick:t[10]||(t[10]=(0,i.iM)((function(t){return e.setProfileView("friends")}),["prevent"]))},[(0,o._)("h5",null,(0,r.zw)(e.$t("user_card.followees")),1),(0,o._)("span",null,(0,r.zw)(e.hideFollowsCount?e.$t("user_card.hidden"):e.user.friends_count),1)]),(0,o._)("div",{class:"user-count",onClick:t[11]||(t[11]=(0,i.iM)((function(t){return e.setProfileView("followers")}),["prevent"]))},[(0,o._)("h5",null,(0,r.zw)(e.$t("user_card.followers")),1),(0,o._)("span",null,(0,r.zw)(e.hideFollowersCount?e.$t("user_card.hidden"):e.user.followers_count),1)])])):(0,o.kq)("",!0),e.hideBio?(0,o.kq)("",!0):((0,o.wg)(),(0,o.j4)(W,{key:1,class:"user-card-bio",html:e.user.description_html,emoji:e.user.emoji,"handle-links":!0},null,8,["html","emoji"]))])),((0,o.wg)(),(0,o.j4)(o.lR,{to:"#modal"},[e.showingConfirmMute?((0,o.wg)(),(0,o.j4)(ne,{key:0,title:e.$t("user_card.mute_confirm_title"),"confirm-text":e.$t("user_card.mute_confirm_accept_button"),"cancel-text":e.$t("user_card.mute_confirm_cancel_button"),onAccepted:e.doMuteUser,onCancelled:e.hideConfirmMute},{default:(0,o.w5)((function(){return[(0,o.Wm)(te,{keypath:"user_card.mute_confirm",tag:"div"},{user:(0,o.w5)((function(){return[(0,o._)("span",{textContent:(0,r.zw)(e.user.screen_name_ui)},null,8,$)]})),_:1}),(0,o._)("div",B,[(0,o._)("label",null,(0,r.zw)(e.$t("user_card.mute_duration_prompt")),1),(0,o.wy)((0,o._)("input",{"onUpdate:modelValue":t[12]||(t[12]=function(t){return e.muteExpiryAmount=t}),type:"number",class:"expiry-amount hide-number-spinner",min:0},null,512),[[i.nr,e.muteExpiryAmount]]),(0,o.Wm)(K,{modelValue:e.muteExpiryUnit,"onUpdate:modelValue":t[13]||(t[13]=function(t){return e.muteExpiryUnit=t}),unstyled:"true",class:"expiry-unit"},{default:(0,o.w5)((function(){return[((0,o.wg)(!0),(0,o.iD)(o.HY,null,(0,o.Ko)(e.muteExpiryUnits,(function(t){return(0,o.wg)(),(0,o.iD)("option",{key:t,value:t},(0,r.zw)(e.$t("time.".concat(t,"_short"),[""])),9,U)})),128))]})),_:1},8,["modelValue"])])]})),_:1},8,["title","confirm-text","cancel-text","onAccepted","onCancelled"])):(0,o.kq)("",!0)]))],2)}]])},12061:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var o=n(66252),r=n(3577),i=n(42262),s=n(4493);const a={props:{user:Object,at:{type:Boolean,default:!0}},components:{UnicodeDomainIndicator:i.Z},methods:{userProfileLink:function(e){return(0,s.Z)(e.id,e.screen_name,this.$store.state.instance.restrictedNicknames)}}},u=(0,n(83744).Z)(a,[["render",function(e,t,n,i,s,a){var u=(0,o.up)("UnicodeDomainIndicator"),c=(0,o.up)("router-link");return(0,o.wg)(),(0,o.j4)(c,{title:e.user.screen_name_ui,to:e.userProfileLink(e.user)},{default:(0,o.w5)((function(){return[(0,o.Uk)((0,r.zw)(e.at?"@":"")+(0,r.zw)(e.user.screen_name_ui),1),(0,o.Wm)(u,{user:e.user},null,8,["user"])]})),_:1},8,["title","to"])}]])},22588:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>i});var o=n(66252);const r={name:"UserPopover",props:["userId","overlayCenters","disabled","overlayCentersSelector"],components:{UserCard:n(20392).Z,Popover:(0,o.RC)((function(){return Promise.resolve().then(n.bind(n,84535))}))},computed:{userPopoverAvatarAction:function(){return this.$store.getters.mergedConfig.userPopoverAvatarAction},userPopoverOverlay:function(){return this.$store.getters.mergedConfig.userPopoverOverlay}}},i=(0,n(83744).Z)(r,[["render",function(e,t,n,r,i,s){var a=(0,o.up)("UserCard"),u=(0,o.up)("Popover");return(0,o.wg)(),(0,o.j4)(u,{trigger:"click","popover-class":"popover-default user-popover","overlay-centers-selector":e.overlayCentersSelector||".user-info .Avatar","overlay-centers":e.overlayCenters&&e.userPopoverOverlay,disabled:e.disabled},{trigger:(0,o.w5)((function(){return[(0,o.WI)(e.$slots,"default")]})),content:(0,o.w5)((function(t){var n=t.close;return[(0,o.Wm)(a,{class:"user-popover","user-id":e.userId,"hide-bio":!0,"avatar-action":"close"==e.userPopoverAvatarAction?n:e.userPopoverAvatarAction,"on-close":n},null,8,["user-id","avatar-action","on-close"])]})),_:3},8,["overlay-centers-selector","overlay-centers","disabled"])}]])},34133:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var o=n(66252),r=["src","loop","controls","alt","title"];const i={props:["attachment","controls"],data:function(){return{blocksSuspend:!1,hasAudio:!0}},computed:{loopVideo:function(){return this.$store.getters.mergedConfig.loopVideoSilentOnly?!this.hasAudio:this.$store.getters.mergedConfig.loopVideo}},methods:{onPlaying:function(e){this.setHasAudio(e),this.loopVideo?this.$emit("play",{looping:!0}):this.$emit("play")},onPaused:function(e){this.$emit("pause")},setHasAudio:function(e){var t=e.srcElement||e.target;this.hasAudio&&(void 0!==t.webkitAudioDecodedByteCount&&t.webkitAudioDecodedByteCount>0||void 0!==t.mozHasAudio&&t.mozHasAudio||void 0!==t.audioTracks&&t.audioTracks.length>0||(this.hasAudio=!1))}}},s=(0,n(83744).Z)(i,[["render",function(e,t,n,i,s,a){return(0,o.wg)(),(0,o.iD)("video",{class:"video",preload:"metadata",src:e.attachment.url,loop:e.loopVideo,controls:e.controls,alt:e.attachment.description,title:e.attachment.description,playsinline:"",onPlaying:t[0]||(t[0]=function(){return e.onPlaying&&e.onPlaying.apply(e,arguments)}),onPause:t[1]||(t[1]=function(){return e.onPaused&&e.onPaused.apply(e,arguments)})},null,40,r)}]])},27650:(e,t,n)=>{var o={"./ar.json":[36224,7808],"./ca.json":[49394,6234],"./cs.json":[87436,7433],"./de.json":[25195,9459],"./en.json":[88797],"./eo.json":[97898,4646],"./es.json":[98559,3968],"./et.json":[13230,4451],"./eu.json":[84826,4542],"./fa.json":[52006,2953],"./fi.json":[70823,9738],"./fr.json":[61341,3746],"./ga.json":[41647,830],"./he.json":[92215,379],"./hu.json":[95028,5494],"./id.json":[62263,2513],"./it.json":[2533,1159],"./ja_easy.json":[8439,8714],"./ja_pedantic.json":[22838,325],"./ko.json":[10707,9670],"./nan-TW.json":[42101,9862],"./nb.json":[72358,7845],"./nl.json":[49922,6256],"./oc.json":[47297,617],"./pl.json":[82098,5571],"./pt.json":[94465,4047],"./ro.json":[64367,6342],"./ru.json":[73289,5964],"./sk.json":[31478,1547],"./te.json":[32781,2044],"./uk.json":[8411,5253],"./vi.json":[6294,4975],"./zh.json":[4425,5929],"./zh_Hant.json":[37644,6544]};function r(e){if(!n.o(o,e))return Promise.resolve().then((()=>{var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=o[e],r=t[0];return Promise.all(t.slice(1).map(n.e)).then((()=>n(r)))}r.keys=()=>Object.keys(o),r.id=27650,e.exports=r},31934:(e,t,n)=>{"use strict";e.exports=n.p+"static/img/pleromatan_apology.f9d5180.png"},95326:(e,t,n)=>{"use strict";e.exports=n.p+"static/img/pleromatan_apology_fox.038b0bb.png"},68789:e=>{"use strict";e.exports="data:image/png;base64,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"},43011:e=>{"use strict";e.exports="data:image/png;base64,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"}},s={};function a(e){var t=s[e];if(void 0!==t)return t.exports;var n=s[e]={id:e,loaded:!1,exports:{}};return i[e].call(n.exports,n,n.exports,a),n.loaded=!0,n.exports}a.m=i,e=[],a.O=(t,n,o,r)=>{if(!n){var i=1/0;for(l=0;l<e.length;l++){for(var[n,o,r]=e[l],s=!0,u=0;u<n.length;u++)(!1&r||i>=r)&&Object.keys(a.O).every((e=>a.O[e](n[u])))?n.splice(u--,1):(s=!1,r<i&&(i=r));if(s){e.splice(l--,1);var c=o();void 0!==c&&(t=c)}}return t}r=r||0;for(var l=e.length;l>0&&e[l-1][2]>r;l--)e[l]=e[l-1];e[l]=[n,o,r]},a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},n=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,a.t=function(e,o){if(1&o&&(e=this(e)),8&o)return e;if("object"==typeof e&&e){if(4&o&&e.__esModule)return e;if(16&o&&"function"==typeof e.then)return e}var r=Object.create(null);a.r(r);var i={};t=t||[null,n({}),n([]),n(n)];for(var s=2&o&&e;"object"==typeof s&&!~t.indexOf(s);s=n(s))Object.getOwnPropertyNames(s).forEach((t=>i[t]=()=>e[t]));return i.default=()=>e,a.d(r,i),r},a.d=(e,t)=>{for(var n in t)a.o(t,n)&&!a.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},a.f={},a.e=e=>Promise.all(Object.keys(a.f).reduce(((t,n)=>(a.f[n](e,t),t)),[])),a.u=e=>"static/js/"+({50:"emoji-annotations/en_GB-json",227:"emoji-annotations/ha-json",278:"emoji-annotations/kn-json",313:"emoji-annotations/tg-json",325:"i18n/ja_pedantic-json",346:"emoji-annotations/rw-json",379:"i18n/he-json",420:"emoji-annotations/fi-json",457:"emoji-annotations/zh-json",577:"emoji-annotations/en_001-json",617:"i18n/oc-json",625:"emoji-annotations/so-json",678:"emoji-annotations/ps-json",786:"emoji-annotations/xh-json",830:"i18n/ga-json",1012:"emoji-annotations/or-json",1044:"emoji-annotations/zh_Hant_HK-json",1056:"emoji-annotations/uz-json",1095:"emoji-annotations/pl-json",1159:"i18n/it-json",1162:"emoji-annotations/ccp-json",1236:"emoji-annotations/fil-json",1290:"emoji-annotations/ja-json",1404:"emoji-annotations/km-json",1452:"emoji-annotations/yue-json",1546:"emoji-annotations/pt_PT-json",1547:"i18n/sk-json",1553:"emoji-annotations/sl-json",1584:"emoji-annotations/to-json",1596:"emoji-annotations/da-json",1613:"emoji-annotations/mai-json",1780:"emoji-annotations/tk-json",1790:"emoji-annotations/dsb-json",1821:"emoji-annotations/fr_CA-json",1911:"emoji-annotations/mr-json",1959:"emoji-annotations/su-json",2044:"i18n/te-json",2223:"emoji-annotations/fr-json",2243:"emoji-annotations/sa-json",2342:"emoji-annotations/az-json",2350:"emoji-annotations/sk-json",2397:"emoji-annotations/kl-json",2479:"emoji-annotations/jv-json",2513:"i18n/id-json",2569:"emoji-annotations/tt-json",2599:"emoji-annotations/kok-json",2656:"emoji-annotations/ckb-json",2685:"emoji-annotations/ml-json",2699:"emoji-annotations/es_MX-json",2767:"emoji-annotations/zh_Hant-json",2861:"emoji-annotations/hr-json",2873:"emoji-annotations/kk-json",2874:"emoji-annotations/sc-json",2883:"emoji-annotations/ku-json",2953:"i18n/fa-json",2966:"emoji-annotations/ko-json",2992:"emoji-annotations/eu-json",3056:"emoji-annotations/hi_Latn-json",3241:"emoji-annotations/sv-json",3276:"emoji-annotations/et-json",3313:"emoji-annotations/es_US-json",3377:"emoji-annotations/as-json",3568:"emoji-annotations/ti-json",3687:"emoji",3746:"i18n/fr-json",3887:"emoji-annotations/sr-json",3951:"emoji-annotations/th-json",3968:"i18n/es-json",3974:"emoji-annotations/bg-json",3994:"emoji-annotations/sw_KE-json",4047:"i18n/pt-json",4209:"emoji-annotations/doi-json",4354:"emoji-annotations/si-json",4368:"emoji-annotations/sq-json",4424:"emoji-annotations/yue_Hans-json",4451:"i18n/et-json",4542:"i18n/eu-json",4571:"emoji-annotations/ga-json",4646:"i18n/eo-json",4691:"emoji-annotations/ca-json",4710:"emoji-annotations/cs-json",4718:"emoji-annotations/mn-json",4770:"emoji-annotations/lb-json",4785:"emoji-annotations/ky-json",4786:"emoji-annotations/te-json",4879:"emoji-annotations/en_CA-json",4902:"emoji-annotations/hu-json",4975:"i18n/vi-json",5041:"emoji-annotations/pt-json",5104:"emoji-annotations/pcm-json",5115:"emoji-annotations/sr_Latn_BA-json",5119:"emoji-annotations/am-json",5224:"emoji-annotations/vi-json",5253:"i18n/uk-json",5304:"emoji-annotations/ha_NE-json",5401:"emoji-annotations/mni-json",5494:"i18n/hu-json",5521:"emoji-annotations/fa-json",5548:"emoji-annotations/he-json",5571:"i18n/pl-json",5728:"emoji-annotations/en-json",5887:"emoji-annotations/rm-json",5929:"i18n/zh-json",5964:"i18n/ru-json",5968:"emoji-annotations/hi-json",6060:"emoji-annotations/sr_Cyrl_BA-json",6068:"emoji-annotations/ka-json",6116:"emoji-annotations/gd-json",6126:"emoji-annotations/gl-json",6148:"emoji-annotations/br-json",6226:"emoji-annotations/de-json",6234:"i18n/ca-json",6256:"i18n/nl-json",6272:"emoji-annotations/cy-json",6342:"i18n/ro-json",6344:"emoji-annotations/hy-json",6355:"emoji-annotations/af-json",6544:"i18n/zh_Hant-json",6701:"emoji-annotations/mi-json",6773:"emoji-annotations/nl-json",6790:"emoji-annotations/my-json",6797:"emoji-annotations/ur-json",6826:"emoji-annotations/sd-json",6831:"emoji-annotations/es-json",6869:"emoji-annotations/chr-json",6936:"emoji-annotations/ia-json",6946:"emoji-annotations/pa-json",7164:"emoji-annotations/de_CH-json",7169:"emoji-annotations/lt-json",7261:"emoji-annotations/gu-json",7300:"emoji-annotations/is-json",7303:"emoji-annotations/wo-json",7304:"emoji-annotations/be-json",7360:"emoji-annotations/ar_SA-json",7433:"i18n/cs-json",7464:"emoji-annotations/lo-json",7569:"emoji-annotations/ast-json",7585:"emoji-annotations/sw-json",7808:"i18n/ar-json",7845:"i18n/nb-json",7855:"emoji-annotations/sat-json",7879:"emoji-annotations/el-json",7897:"emoji-annotations/ta-json",8015:"emoji-annotations/hsb-json",8031:"emoji-annotations/qu-json",8134:"emoji-annotations/bs-json",8395:"emoji-annotations/ru-json",8681:"emoji-annotations/sr_Latn-json",8714:"i18n/ja_easy-json",8732:"emoji-annotations/yo-json",8873:"emoji-annotations/es_419-json",8898:"emoji-annotations/lv-json",8970:"emoji-annotations/it-json",8988:"emoji-annotations/en_IN-json",8995:"emoji-annotations/fo-json",9064:"emoji-annotations/bn-json",9319:"emoji-annotations/zu-json",9360:"emoji-annotations/en_AU-json",9377:"emoji-annotations/ne-json",9399:"emoji-annotations/mt-json",9414:"emoji-annotations/nn-json",9459:"i18n/de-json",9465:"emoji-annotations/id-json",9670:"i18n/ko-json",9738:"i18n/fi-json",9757:"emoji-annotations/ug-json",9780:"emoji-annotations/kab-json",9790:"emoji-annotations/ceb-json",9862:"i18n/nan-TW-json",9864:"emoji-annotations/ro-json",9871:"emoji-annotations/uk-json",9873:"emoji-annotations/ar-json",9895:"emoji-annotations/ig-json",9921:"emoji-annotations/mk-json",9924:"emoji-annotations/ms-json",9926:"emoji-annotations/yo_BJ-json",9978:"emoji-annotations/tr-json",9979:"emoji-annotations/no-json",9994:"emoji-annotations/pa_Arab-json"}[e]||e)+"."+{48:"b5ecdbc517423af07ca4",50:"bd687f904492facc81d1",159:"903e90c9de8ef6c67077",227:"2a08912b38925c10f970",278:"efdac8ac0cb00991ba1e",313:"9647f559a4477d7d8e96",325:"b52fa70f0bf89ae01cfb",346:"031838c5374676191131",379:"03c5d271a4034de06e6f",420:"0f254bb4b0faaba4abcc",457:"e42a28127d5c1aff6c85",577:"72d8c47269350f59aa9f",617:"4f52bf1b6e3213acc33c",625:"f75abd16637c8924c075",678:"a0d9eea5b81bcad11e64",786:"21e88c05ad3113dfc7f2",830:"3f1981817977a16f1d7e",1012:"b007c2f6f92dcc95efac",1044:"7eee03c705347a21c612",1056:"ac43f4c54d4587324a20",1095:"e9e8f1ed84dc6c169516",1159:"99a21d5c98376af17141",1162:"02836537ffe2b02291cb",1236:"4fca833f178d1b889b69",1290:"0bd51f8c40c106355b0e",1404:"9bc922b2e0faa64b4c53",1452:"15102c0ddfdf19bdfb4c",1546:"c381b13e323f91b0e6b3",1547:"d8d0eba80f94e6f55145",1553:"a40c5548da34fce6f1d0",1584:"50ac37d101caaf592c94",1596:"8d074e27df71edafc543",1613:"302386b3358f4d34f9c8",1780:"23a9a6229829921704ad",1790:"7635686ffd8d62264466",1821:"59ed6b59e2ca68707292",1911:"cb0a87d9aabf8a52161d",1959:"daff15251020cbecea7d",2044:"ce6db28261b2f824064f",2223:"da49ed0d1a6622fe1c67",2243:"21b06234a08c7469ccb4",2342:"9a32f2941d9c4d1f834c",2350:"5d96bdb4da82655d0314",2397:"87ab8661b4bdecd09faf",2479:"1c8d5ffcff22b46b6214",2513:"e5c9ee768155f88128b9",2569:"4c089389ba9983ec8ef7",2599:"116e4f72db3bfb846233",2656:"13dc83db1e15aa76051a",2685:"3f2902a84240faff1b48",2699:"ee359d4b611fdb1aeb33",2767:"9cbb765c181d443828a9",2861:"fe847ade1f18a60e513c",2873:"a20b59d47bdfe99786ad",2874:"c84c9c47d2e104c43e4c",2883:"2173ed87f8d7372ee209",2953:"a19100f6a5a9431e2adb",2966:"d175900fe48f48ce87c8",2992:"931b429f5fcc141549a5",3056:"3cb73c456f31261f1908",3241:"8b0374cbca3a77519876",3276:"c42e3f186a55ecb061cd",3313:"280bdb036dfd651d079a",3377:"34cf67edc1cecd195738",3568:"5b173bd33bb960be805b",3687:"33eab91b64f59431137d",3746:"36ef21ccb1203d3e65ae",3887:"e29a20e59a708df0c6a8",3951:"34709bae223bb9d2587c",3968:"4a302899a65e1f67d8a2",3974:"7c69c52572a7bf87e1db",3994:"f3563cbeac1c158563d5",4047:"3fc5593e030268bcd291",4209:"7841c3f3ceb4e3da0bd1",4354:"841b356da03623c10dbf",4368:"bcf154ed8a6138aa089c",4424:"cc60bb10d32fab3d8207",4451:"580b101d6bb83a8aee75",4542:"d2eab39b0427995fc314",4571:"cb3f9e613a8c445aea23",4646:"6c62eef99e850912498b",4691:"ce029e860b10b242c6a5",4710:"48d8bba230dc9fe6b3dc",4718:"764169f1168d0432640f",4770:"499c526f3a653618ea9b",4785:"310bda579c819eda9472",4786:"8a69a10f62cdf626244e",4879:"5de965778a6b8a5a4bb4",4902:"1faf52040deda872b416",4975:"703c1e731be6e857bbf3",5041:"2b2512ee44291bdb2ae7",5104:"eac3a5ad0b4b5b33289d",5115:"72933405032b81344754",5119:"94388548f7c18233fec3",5224:"f6a364b2add7f8c8bc67",5253:"003908af9b15becdd382",5304:"e4855d92aaccfdd6ba57",5401:"7db7f76ab1ce34e3683d",5494:"0487899ca7a7a8505ed8",5521:"819c7f263c8594ccf4fa",5548:"a3d7631f32182b0955a2",5571:"c963247822381b05579b",5728:"6c3947f7c49c3952084d",5887:"985d4934f386fd05a75c",5929:"a0a26f6d62ddbe0b49cc",5964:"b913eb7f7e9f0c642438",5968:"04bc5f73dc2169def97e",6060:"83c7c64b9696ae2339f2",6068:"567e7b051d90a37003f3",6116:"e3d0aea3725be774ad81",6126:"ce89036f0ae72224c994",6148:"c7175423d8965ed10bae",6226:"e1443c01a191af1665e1",6234:"1eb24bc001efa3c0627f",6256:"3fb9758b10c29434b613",6272:"e09dd13da5ad56530ead",6342:"3fd9977ed1c1413059ae",6344:"2d819f7faabfeba8457f",6355:"96c988285a6a2cce6246",6464:"eb9c90a1c948cde554e9",6544:"f7e1d0f4b873c60d6396",6701:"9efe6f146ecd8987f80a",6773:"52f4b93b8fa5e22cb585",6790:"8e7dd1485813d15bba7e",6797:"983c02109444c883a18f",6826:"8f2a6a06dc3cf185f79d",6831:"f593b0dc2367a9d7fb30",6869:"e7e542ab5a74167dec10",6936:"8e8365e2bf41779e2beb",6946:"7d60d69762a108270669",7164:"b4a5891ea2f38d616ec0",7169:"ced4d5e70edc60127df6",7261:"8a899f364cf260376905",7300:"62e220c65215b034533d",7303:"e0d689e22cda0dd77e9a",7304:"f92f80669873a4100c69",7360:"4a6f4402931a867070f0",7433:"5eedbe9f7084c349fbe8",7464:"ecb06d61465a355b8157",7569:"7e4da8cb7e539c19a9b9",7585:"d5f350641b9cbcc0e126",7586:"628f729b9c8b2e6f4e1f",7808:"4916f840147303aa65fe",7845:"a54af3b1f47d576ad4aa",7855:"71e92700b2aaca8e021c",7879:"b36610f2ea16d56c2314",7897:"675cc6c7607449d4a91b",7962:"e25d40b042f8ee7389c3",8015:"438721731b4171bc6fc3",8031:"55f4df57e71076dbad9f",8134:"48ef42da1c7976cf083c",8395:"a81d0df34460837ccacc",8681:"ff27d1f455bf2afb8d70",8714:"1d5ea7e755b066ac2cdd",8732:"ea1150d6bc360dd86f2e",8859:"c76b0a0c3a4b5acbef11",8873:"d81991295392b6ed83bb",8898:"5600c2eb6d59fa0aa2e2",8970:"9c1758f4fd3391f7f61a",8988:"002faa48c09121928fca",8995:"9b060e8009b3a8be4597",9060:"24271e167e0471a1a732",9064:"657aac057f36ad06c58d",9319:"e0cb7cd3890583fd0f6d",9360:"33aac9bbd887273a34b1",9377:"a0118dca2096a101b8e8",9399:"3ddf7dbc114adf90c500",9414:"7293cd5d7205681cf48c",9459:"bfa48615ac92f87ff37a",9465:"55f83c46d753b0b69330",9670:"9029d09084bb22d8b705",9738:"d1934c18f12d80493ab1",9757:"bf768bd32e9ff02b0a8a",9780:"1a2de4774f4ddc2b51dd",9790:"9db0336f168aa77ee395",9862:"7f2789d8a461e86d1734",9864:"cb62f86ce78c94d1e813",9871:"af110c8eef232638fc4d",9873:"5527466d349f2954d49b",9895:"f19fa5fe3582463ba73c",9921:"a254cabb8570419cc426",9924:"272ee4735aabc37015dd",9926:"650318c25fe4da92bad8",9978:"6462e8cfd5006cf5b6cf",9979:"22bdbbc77cc3c14ada58",9994:"5ae021308b1c5f6dd8a7"}[e]+".js",a.miniCssF=e=>"static/css/"+e+"."+{159:"1d523a00378ebd68c5b3",6464:"169260b661120cc50815",7586:"0d43f70bc6240422f179",7962:"76663e78ad5ea0bb0b90",8859:"d26a3b0841a7beb8fd4a"}[e]+".css",a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o={},r="pleroma_fe:",a.l=(e,t,n,i)=>{if(o[e])o[e].push(t);else{var s,u;if(void 0!==n)for(var c=document.getElementsByTagName("script"),l=0;l<c.length;l++){var d=c[l];if(d.getAttribute("src")==e||d.getAttribute("data-webpack")==r+n){s=d;break}}s||(u=!0,(s=document.createElement("script")).charset="utf-8",s.timeout=120,a.nc&&s.setAttribute("nonce",a.nc),s.setAttribute("data-webpack",r+n),s.src=e),o[e]=[t];var p=(t,n)=>{s.onerror=s.onload=null,clearTimeout(m);var r=o[e];if(delete o[e],s.parentNode&&s.parentNode.removeChild(s),r&&r.forEach((e=>e(n))),t)return t(n)},m=setTimeout(p.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=p.bind(null,s.onerror),s.onload=p.bind(null,s.onload),u&&document.head.appendChild(s)}},a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),a.p="/",(()=>{if("undefined"!=typeof document){var e={2143:0};a.f.miniCss=(t,n)=>{e[t]?n.push(e[t]):0!==e[t]&&{159:1,6464:1,7586:1,7962:1,8859:1}[t]&&n.push(e[t]=(e=>new Promise(((t,n)=>{var o=a.miniCssF(e),r=a.p+o;if(((e,t)=>{for(var n=document.getElementsByTagName("link"),o=0;o<n.length;o++){var r=(s=n[o]).getAttribute("data-href")||s.getAttribute("href");if("stylesheet"===s.rel&&(r===e||r===t))return s}var i=document.getElementsByTagName("style");for(o=0;o<i.length;o++){var s;if((r=(s=i[o]).getAttribute("data-href"))===e||r===t)return s}})(o,r))return t();((e,t,n,o,r)=>{var i=document.createElement("link");i.rel="stylesheet",i.type="text/css",i.onerror=i.onload=n=>{if(i.onerror=i.onload=null,"load"===n.type)o();else{var s=n&&("load"===n.type?"missing":n.type),a=n&&n.target&&n.target.href||t,u=new Error("Loading CSS chunk "+e+" failed.\n("+a+")");u.code="CSS_CHUNK_LOAD_FAILED",u.type=s,u.request=a,i.parentNode&&i.parentNode.removeChild(i),r(u)}},i.href=t,document.head.appendChild(i)})(e,r,0,t,n)})))(t).then((()=>{e[t]=0}),(n=>{throw delete e[t],n})))}}})(),(()=>{var e={2143:0};a.f.j=(t,n)=>{var o=a.o(e,t)?e[t]:void 0;if(0!==o)if(o)n.push(o[2]);else{var r=new Promise(((n,r)=>o=e[t]=[n,r]));n.push(o[2]=r);var i=a.p+a.u(t),s=new Error;a.l(i,(n=>{if(a.o(e,t)&&(0!==(o=e[t])&&(e[t]=void 0),o)){var r=n&&("load"===n.type?"missing":n.type),i=n&&n.target&&n.target.src;s.message="Loading chunk "+t+" failed.\n("+r+": "+i+")",s.name="ChunkLoadError",s.type=r,s.request=i,o[1](s)}}),"chunk-"+t,t)}},a.O.j=t=>0===e[t];var t=(t,n)=>{var o,r,[i,s,u]=n,c=0;if(i.some((t=>0!==e[t]))){for(o in s)a.o(s,o)&&(a.m[o]=s[o]);if(u)var l=u(a)}for(t&&t(n);c<i.length;c++)r=i[c],a.o(e,r)&&e[r]&&e[r][0](),e[r]=0;return a.O(l)},n=self.webpackChunkpleroma_fe=self.webpackChunkpleroma_fe||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})();var u=a.O(void 0,[3733],(()=>a(35930)));u=a.O(u)})();
+//# sourceMappingURL=app.d42ab31e1d50a3265a82.js.map \ No newline at end of file
diff --git a/priv/static/static/js/app.d42ab31e1d50a3265a82.js.map b/priv/static/static/js/app.d42ab31e1d50a3265a82.js.map
new file mode 100644
index 000000000..935d96e9f
--- /dev/null
+++ b/priv/static/static/js/app.d42ab31e1d50a3265a82.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/js/app.d42ab31e1d50a3265a82.js","mappings":"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,CAChB,MACA,KAED,eAAgB,CACf,KACA,MAED,eAAgB,CACf,KACA,MAED,eAAgB,CACf,MACA,IAED,eAAgB,CACf,MACA,MAED,YAAa,CACZ,MACA,MAED,gBAAiB,CAChB,MACA,MAED,eAAgB,CACf,MACA,MAED,eAAgB,CACf,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,KAED,aAAc,CACb,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,eAAgB,CACf,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,KAED,eAAgB,CACf,KACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,YAAa,CACZ,MACA,MAED,aAAc,CACb,MACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,aAAc,CACb,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,KAED,YAAa,CACZ,MACA,MAED,aAAc,CACb,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,aAAc,CACb,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,aAAc,CACb,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,iBAAkB,CACjB,MACA,MAED,aAAc,CACb,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,KAED,YAAa,CACZ,MACA,MAED,eAAgB,CACf,KACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,KAED,YAAa,CACZ,MACA,MAED,aAAc,CACb,MACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,KAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,MACA,MAED,oBAAqB,CACpB,MACA,MAED,iBAAkB,CACjB,MACA,MAED,oBAAqB,CACpB,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,MACA,MAED,eAAgB,CACf,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,MACA,KAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,IACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,MACA,MAED,YAAa,CACZ,KACA,MAED,YAAa,CACZ,MACA,KAED,YAAa,CACZ,MACA,MAED,eAAgB,CACf,MACA,MAED,aAAc,CACb,MACA,MAED,kBAAmB,CAClB,MACA,MAED,YAAa,CACZ,MACA,KAED,iBAAkB,CACjB,MACA,MAED,oBAAqB,CACpB,MACA,MAED,YAAa,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,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO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","sources":["webpack://pleroma_fe/webpack/runtime/chunk loaded","webpack://pleroma_fe/webpack/runtime/create fake namespace object","webpack://pleroma_fe/webpack/runtime/load script","webpack://pleroma_fe/./src/i18n/en.json","webpack://pleroma_fe/./node_modules/@kazvmoe-infra/unicode-emoji-json/annotations/ lazy ^\\.\\/.*\\.json$ chunkName: emoji-annotations/[request] namespace object","webpack://pleroma_fe/./src/components/emoji_input/suggestor.js","webpack://pleroma_fe/./src/services/html_converter/utility.service.js","webpack://pleroma_fe/./src/services/html_converter/html_line_converter.service.js","webpack://pleroma_fe/./src/components/hashtag_link/hashtag_link.vue","webpack://pleroma_fe/./src/components/hashtag_link/hashtag_link.js","webpack://pleroma_fe/./src/services/matcher/matcher.service.js","webpack://pleroma_fe/./src/components/hashtag_link/hashtag_link.vue?7c0f","webpack://pleroma_fe/./src/components/rich_content/rich_content.jsx","webpack://pleroma_fe/./src/services/html_converter/html_tree_converter.service.js","webpack://pleroma_fe/./src/components/tab_switcher/tab_switcher.jsx","webpack://pleroma_fe/./src/hocs/with_load_more/with_load_more.jsx","webpack://pleroma_fe/./src/i18n/languages.js","webpack://pleroma_fe/./src/i18n/messages.js","webpack://pleroma_fe/./src/lib/event_target_polyfill.js","webpack://pleroma_fe/./src/modules/interface.js","webpack://pleroma_fe/./src/modules/instance.js","webpack://pleroma_fe/./src/modules/statuses.js","webpack://pleroma_fe/./src/modules/lists.js","webpack://pleroma_fe/./src/services/timeline_fetcher/timeline_fetcher.service.js","webpack://pleroma_fe/./src/services/follow_request_fetcher/follow_request_fetcher.service.js","webpack://pleroma_fe/./src/services/lists_fetcher/lists_fetcher.service.js","webpack://pleroma_fe/./src/services/backend_interactor_service/backend_interactor_service.js","webpack://pleroma_fe/./src/services/window_utils/window_utils.js","webpack://pleroma_fe/./src/services/new_api/oauth.js","webpack://pleroma_fe/./src/services/push/push.js","webpack://pleroma_fe/./src/modules/users.js","webpack://pleroma_fe/./src/services/chat_utils/chat_utils.js","webpack://pleroma_fe/./src/modules/api.js","webpack://pleroma_fe/./src/modules/profileConfig.js","webpack://pleroma_fe/./src/components/update_notification/update_notification.js","webpack://pleroma_fe/./src/modules/serverSideStorage.js","webpack://pleroma_fe/./src/modules/adminSettings.js","webpack://pleroma_fe/./src/modules/shout.js","webpack://pleroma_fe/./src/modules/oauth.js","webpack://pleroma_fe/./src/modules/auth_flow.js","webpack://pleroma_fe/./src/modules/media_viewer.js","webpack://pleroma_fe/./src/modules/oauth_tokens.js","webpack://pleroma_fe/./src/modules/reports.js","webpack://pleroma_fe/./src/modules/polls.js","webpack://pleroma_fe/./src/modules/postStatus.js","webpack://pleroma_fe/./src/modules/editStatus.js","webpack://pleroma_fe/./src/modules/statusHistory.js","webpack://pleroma_fe/./src/services/chat_service/chat_service.js","webpack://pleroma_fe/./src/modules/chats.js","webpack://pleroma_fe/./src/modules/announcements.js","webpack://pleroma_fe/./src/lib/persisted_state.js","webpack://pleroma_fe/./src/lib/push_notifications_plugin.js","webpack://pleroma_fe/./src/App.vue","webpack://pleroma_fe/./src/components/user_panel/user_panel.vue","webpack://pleroma_fe/./src/components/login_form/login_form.vue","webpack://pleroma_fe/./src/components/login_form/login_form.js","webpack://pleroma_fe/./src/components/login_form/login_form.vue?7e2c","webpack://pleroma_fe/./src/components/mfa_form/recovery_form.vue","webpack://pleroma_fe/./src/services/new_api/mfa.js","webpack://pleroma_fe/./src/components/mfa_form/recovery_form.js","webpack://pleroma_fe/./src/components/mfa_form/recovery_form.vue?75db","webpack://pleroma_fe/./src/components/mfa_form/totp_form.vue","webpack://pleroma_fe/./src/components/mfa_form/totp_form.js","webpack://pleroma_fe/./src/components/mfa_form/totp_form.vue?e31f","webpack://pleroma_fe/./src/components/auth_form/auth_form.js","webpack://pleroma_fe/./src/components/user_panel/user_panel.js","webpack://pleroma_fe/./src/components/user_panel/user_panel.vue?62d1","webpack://pleroma_fe/./src/components/nav_panel/nav_panel.vue","webpack://pleroma_fe/./src/components/navigation/navigation_entry.vue","webpack://pleroma_fe/./src/components/navigation/navigation.js","webpack://pleroma_fe/./src/components/optional_router_link/optional_router_link.vue","webpack://pleroma_fe/./src/components/optional_router_link/optional_router_link.vue?aa8e","webpack://pleroma_fe/./src/components/navigation/navigation_entry.js","webpack://pleroma_fe/./src/components/navigation/navigation_entry.vue?57fe","webpack://pleroma_fe/./src/components/navigation/filter.js","webpack://pleroma_fe/./src/components/lists_menu/lists_menu_content.js","webpack://pleroma_fe/./src/components/lists_menu/lists_menu_content.vue?5439","webpack://pleroma_fe/./src/components/lists_menu/lists_menu_content.vue","webpack://pleroma_fe/./src/components/navigation/navigation_pins.vue","webpack://pleroma_fe/./src/components/navigation/navigation_pins.js","webpack://pleroma_fe/./src/components/navigation/navigation_pins.vue?9359","webpack://pleroma_fe/./src/components/nav_panel/nav_panel.js","webpack://pleroma_fe/./src/components/nav_panel/nav_panel.vue?ec9c","webpack://pleroma_fe/./src/components/instance_specific_panel/instance_specific_panel.vue","webpack://pleroma_fe/./src/components/instance_specific_panel/instance_specific_panel.js","webpack://pleroma_fe/./src/components/instance_specific_panel/instance_specific_panel.vue?b4d3","webpack://pleroma_fe/./src/components/features_panel/features_panel.vue","webpack://pleroma_fe/./src/components/features_panel/features_panel.js","webpack://pleroma_fe/./src/components/features_panel/features_panel.vue?e52c","webpack://pleroma_fe/./src/components/who_to_follow_panel/who_to_follow_panel.vue","webpack://pleroma_fe/./src/components/who_to_follow_panel/who_to_follow_panel.js","webpack://pleroma_fe/./src/components/who_to_follow_panel/who_to_follow_panel.vue?c79e","webpack://pleroma_fe/./src/components/shout_panel/shout_panel.vue","webpack://pleroma_fe/./src/components/shout_panel/shout_panel.js","webpack://pleroma_fe/./src/components/shout_panel/shout_panel.vue?452f","webpack://pleroma_fe/./src/components/media_modal/media_modal.vue","webpack://pleroma_fe/./src/components/pinch_zoom/pinch_zoom.js","webpack://pleroma_fe/./src/components/pinch_zoom/pinch_zoom.vue?6a4b","webpack://pleroma_fe/./src/components/pinch_zoom/pinch_zoom.vue","webpack://pleroma_fe/./src/services/gesture_service/gesture_service.js","webpack://pleroma_fe/./src/components/swipe_click/swipe_click.js","webpack://pleroma_fe/./src/components/swipe_click/swipe_click.vue?cb15","webpack://pleroma_fe/./src/components/swipe_click/swipe_click.vue","webpack://pleroma_fe/./src/components/media_modal/media_modal.js","webpack://pleroma_fe/./src/components/media_modal/media_modal.vue?9f8e","webpack://pleroma_fe/./src/components/side_drawer/side_drawer.vue","webpack://pleroma_fe/./src/components/side_drawer/side_drawer.js","webpack://pleroma_fe/./src/components/side_drawer/side_drawer.vue?c115","webpack://pleroma_fe/./src/components/mobile_post_status_button/mobile_post_status_button.js","webpack://pleroma_fe/./src/components/mobile_post_status_button/mobile_post_status_button.vue?cc2d","webpack://pleroma_fe/./src/components/mobile_post_status_button/mobile_post_status_button.vue","webpack://pleroma_fe/./src/components/mobile_nav/mobile_nav.vue","webpack://pleroma_fe/./src/components/mobile_nav/mobile_nav.js","webpack://pleroma_fe/./src/components/mobile_nav/mobile_nav.vue?67f1","webpack://pleroma_fe/./src/components/desktop_nav/desktop_nav.vue","webpack://pleroma_fe/./src/components/search_bar/search_bar.vue","webpack://pleroma_fe/./src/components/search_bar/search_bar.js","webpack://pleroma_fe/./src/components/search_bar/search_bar.vue?d1ca","webpack://pleroma_fe/./src/components/desktop_nav/desktop_nav.js","webpack://pleroma_fe/./src/components/desktop_nav/desktop_nav.vue?6641","webpack://pleroma_fe/./src/components/user_reporting_modal/user_reporting_modal.vue","webpack://pleroma_fe/./src/components/user_reporting_modal/user_reporting_modal.js","webpack://pleroma_fe/./src/components/user_reporting_modal/user_reporting_modal.vue?df82","webpack://pleroma_fe/./src/components/edit_status_modal/edit_status_modal.vue","webpack://pleroma_fe/./src/components/edit_status_modal/edit_status_modal.js","webpack://pleroma_fe/./src/components/edit_status_modal/edit_status_modal.vue?03f9","webpack://pleroma_fe/./src/components/post_status_modal/post_status_modal.vue","webpack://pleroma_fe/./src/components/post_status_modal/post_status_modal.js","webpack://pleroma_fe/./src/components/post_status_modal/post_status_modal.vue?9c44","webpack://pleroma_fe/./src/components/status_history_modal/status_history_modal.vue","webpack://pleroma_fe/./src/components/status_history_modal/status_history_modal.js","webpack://pleroma_fe/./src/components/status_history_modal/status_history_modal.vue?4ee0","webpack://pleroma_fe/./src/components/global_notice_list/global_notice_list.vue","webpack://pleroma_fe/./src/components/global_notice_list/global_notice_list.js","webpack://pleroma_fe/./src/components/global_notice_list/global_notice_list.vue?1667","webpack://pleroma_fe/./src/App.js","webpack://pleroma_fe/./src/App.vue?3b2b","webpack://pleroma_fe/./src/components/timeline/timeline.vue","webpack://pleroma_fe/./src/components/conversation/conversation.vue","webpack://pleroma_fe/./src/components/thread_tree/thread_tree.vue","webpack://pleroma_fe/./src/components/thread_tree/thread_tree.js","webpack://pleroma_fe/./src/components/thread_tree/thread_tree.vue?7311","webpack://pleroma_fe/./src/components/quick_filter_settings/quick_filter_settings.vue","webpack://pleroma_fe/./src/components/quick_filter_settings/quick_filter_settings.js","webpack://pleroma_fe/./src/components/quick_filter_settings/quick_filter_settings.vue?f71f","webpack://pleroma_fe/./src/components/quick_view_settings/quick_view_settings.vue","webpack://pleroma_fe/./src/components/quick_view_settings/quick_view_settings.js","webpack://pleroma_fe/./src/components/quick_view_settings/quick_view_settings.vue?4eaf","webpack://pleroma_fe/./src/components/conversation/conversation.js","webpack://pleroma_fe/./src/components/conversation/conversation.vue?6723","webpack://pleroma_fe/./src/components/timeline_menu/timeline_menu.vue","webpack://pleroma_fe/./src/components/timeline_menu/timeline_menu.js","webpack://pleroma_fe/./src/components/timeline_menu/timeline_menu.vue?96c1","webpack://pleroma_fe/./src/components/timeline/timeline.js","webpack://pleroma_fe/./src/components/timeline/timeline.vue?7060","webpack://pleroma_fe/./src/components/public_timeline/public_timeline.js","webpack://pleroma_fe/./src/components/public_timeline/public_timeline.vue?daf2","webpack://pleroma_fe/./src/components/public_timeline/public_timeline.vue","webpack://pleroma_fe/./src/components/public_and_external_timeline/public_and_external_timeline.js","webpack://pleroma_fe/./src/components/public_and_external_timeline/public_and_external_timeline.vue?9b62","webpack://pleroma_fe/./src/components/public_and_external_timeline/public_and_external_timeline.vue","webpack://pleroma_fe/./src/components/friends_timeline/friends_timeline.js","webpack://pleroma_fe/./src/components/friends_timeline/friends_timeline.vue?a3f1","webpack://pleroma_fe/./src/components/friends_timeline/friends_timeline.vue","webpack://pleroma_fe/./src/components/tag_timeline/tag_timeline.js","webpack://pleroma_fe/./src/components/tag_timeline/tag_timeline.vue?be7b","webpack://pleroma_fe/./src/components/tag_timeline/tag_timeline.vue","webpack://pleroma_fe/./src/components/bookmark_timeline/bookmark_timeline.js","webpack://pleroma_fe/./src/components/bookmark_timeline/bookmark_timeline.vue?863c","webpack://pleroma_fe/./src/components/bookmark_timeline/bookmark_timeline.vue","webpack://pleroma_fe/./src/components/conversation-page/conversation-page.js","webpack://pleroma_fe/./src/components/conversation-page/conversation-page.vue?2386","webpack://pleroma_fe/./src/components/conversation-page/conversation-page.vue","webpack://pleroma_fe/./src/components/interactions/interactions.vue","webpack://pleroma_fe/./src/components/interactions/interactions.js","webpack://pleroma_fe/./src/components/interactions/interactions.vue?3dc7","webpack://pleroma_fe/./src/components/dm_timeline/dm_timeline.js","webpack://pleroma_fe/./src/components/dm_timeline/dm_timeline.vue?fced","webpack://pleroma_fe/./src/components/dm_timeline/dm_timeline.vue","webpack://pleroma_fe/./src/components/chat_list/chat_list.vue","webpack://pleroma_fe/./src/components/chat_list_item/chat_list_item.vue","webpack://pleroma_fe/./src/components/chat_title/chat_title.js","webpack://pleroma_fe/./src/components/chat_title/chat_title.vue?723f","webpack://pleroma_fe/./src/components/chat_title/chat_title.vue","webpack://pleroma_fe/./src/components/chat_list_item/chat_list_item.js","webpack://pleroma_fe/./src/components/chat_list_item/chat_list_item.vue?9103","webpack://pleroma_fe/./src/components/chat_new/chat_new.vue","webpack://pleroma_fe/./src/components/chat_new/chat_new.js","webpack://pleroma_fe/./src/components/chat_new/chat_new.vue?e65f","webpack://pleroma_fe/./src/components/chat_list/chat_list.js","webpack://pleroma_fe/./src/components/chat_list/chat_list.vue?39cf","webpack://pleroma_fe/./src/components/chat/chat.vue","webpack://pleroma_fe/./src/components/chat_message/chat_message.vue","webpack://pleroma_fe/./src/components/chat_message_date/chat_message_date.vue","webpack://pleroma_fe/./src/components/chat_message_date/chat_message_date.vue?a1e2","webpack://pleroma_fe/./src/components/chat_message/chat_message.js","webpack://pleroma_fe/./src/components/chat_message/chat_message.vue?38f9","webpack://pleroma_fe/./src/components/chat/chat_layout_utils.js","webpack://pleroma_fe/./src/components/chat/chat.js","webpack://pleroma_fe/./src/components/chat/chat.vue?0265","webpack://pleroma_fe/./src/components/user_profile/user_profile.vue","webpack://pleroma_fe/./src/components/follow_card/follow_card.vue","webpack://pleroma_fe/./src/components/remove_follower_button/remove_follower_button.js","webpack://pleroma_fe/./src/components/remove_follower_button/remove_follower_button.vue?a06d","webpack://pleroma_fe/./src/components/remove_follower_button/remove_follower_button.vue","webpack://pleroma_fe/./src/components/follow_card/follow_card.js","webpack://pleroma_fe/./src/components/follow_card/follow_card.vue?a7d5","webpack://pleroma_fe/./src/components/user_profile/user_profile.js","webpack://pleroma_fe/./src/components/user_profile/user_profile.vue?c6a1","webpack://pleroma_fe/./src/components/search/search.vue","webpack://pleroma_fe/./src/components/search/search.js","webpack://pleroma_fe/./src/components/search/search.vue?853e","webpack://pleroma_fe/./src/components/registration/registration.vue","webpack://pleroma_fe/./src/components/registration/registration.js","webpack://pleroma_fe/./src/components/registration/registration.vue?5788","webpack://pleroma_fe/./src/components/password_reset/password_reset.vue","webpack://pleroma_fe/./src/components/password_reset/password_reset.js","webpack://pleroma_fe/./src/services/new_api/password_reset.js","webpack://pleroma_fe/./src/components/password_reset/password_reset.vue?e9fd","webpack://pleroma_fe/./src/components/follow_requests/follow_requests.vue","webpack://pleroma_fe/./src/components/follow_request_card/follow_request_card.vue","webpack://pleroma_fe/./src/components/follow_request_card/follow_request_card.js","webpack://pleroma_fe/./src/components/follow_requests/follow_requests.js","webpack://pleroma_fe/./src/components/follow_request_card/follow_request_card.vue?64bb","webpack://pleroma_fe/./src/components/follow_requests/follow_requests.vue?427b","webpack://pleroma_fe/./src/components/oauth_callback/oauth_callback.js","webpack://pleroma_fe/./src/components/oauth_callback/oauth_callback.vue?a7e1","webpack://pleroma_fe/./src/components/oauth_callback/oauth_callback.vue","webpack://pleroma_fe/./src/components/who_to_follow/who_to_follow.vue","webpack://pleroma_fe/./src/components/who_to_follow/who_to_follow.js","webpack://pleroma_fe/./src/components/who_to_follow/who_to_follow.vue?d712","webpack://pleroma_fe/./src/components/about/about.vue","webpack://pleroma_fe/./src/components/terms_of_service_panel/terms_of_service_panel.vue","webpack://pleroma_fe/./src/components/terms_of_service_panel/terms_of_service_panel.js","webpack://pleroma_fe/./src/components/terms_of_service_panel/terms_of_service_panel.vue?39d2","webpack://pleroma_fe/./src/components/staff_panel/staff_panel.vue","webpack://pleroma_fe/./src/components/staff_panel/staff_panel.js","webpack://pleroma_fe/./src/components/staff_panel/staff_panel.vue?16a1","webpack://pleroma_fe/./src/components/mrf_transparency_panel/mrf_transparency_panel.vue","webpack://pleroma_fe/./src/components/mrf_transparency_panel/mrf_transparency_panel.js","webpack://pleroma_fe/./src/components/about/about.js","webpack://pleroma_fe/./src/components/mrf_transparency_panel/mrf_transparency_panel.vue?cbb1","webpack://pleroma_fe/./src/components/about/about.vue?07c3","webpack://pleroma_fe/./src/components/remote_user_resolver/remote_user_resolver.vue","webpack://pleroma_fe/./src/components/remote_user_resolver/remote_user_resolver.js","webpack://pleroma_fe/./src/components/remote_user_resolver/remote_user_resolver.vue?ac33","webpack://pleroma_fe/./src/components/lists/lists.vue","webpack://pleroma_fe/./src/components/lists_card/lists_card.vue","webpack://pleroma_fe/./src/components/lists_card/lists_card.js","webpack://pleroma_fe/./src/components/lists/lists.js","webpack://pleroma_fe/./src/components/lists_card/lists_card.vue?16e6","webpack://pleroma_fe/./src/components/lists/lists.vue?7e21","webpack://pleroma_fe/./src/components/lists_timeline/lists_timeline.js","webpack://pleroma_fe/./src/components/lists_timeline/lists_timeline.vue?804f","webpack://pleroma_fe/./src/components/lists_timeline/lists_timeline.vue","webpack://pleroma_fe/./src/components/lists_edit/lists_edit.vue","webpack://pleroma_fe/./src/components/lists_user_search/lists_user_search.vue","webpack://pleroma_fe/./src/components/lists_user_search/lists_user_search.js","webpack://pleroma_fe/./src/components/lists_user_search/lists_user_search.vue?4447","webpack://pleroma_fe/./src/components/lists_edit/lists_edit.js","webpack://pleroma_fe/./src/components/lists_edit/lists_edit.vue?056b","webpack://pleroma_fe/./src/components/announcements_page/announcements_page.vue","webpack://pleroma_fe/./src/components/announcement/announcement.vue","webpack://pleroma_fe/./src/components/announcement_editor/announcement_editor.vue","webpack://pleroma_fe/./src/components/announcement_editor/announcement_editor.js","webpack://pleroma_fe/./src/components/announcement_editor/announcement_editor.vue?cdb9","webpack://pleroma_fe/./src/components/announcement/announcement.js","webpack://pleroma_fe/./src/components/announcements_page/announcements_page.js","webpack://pleroma_fe/./src/components/announcement/announcement.vue?a400","webpack://pleroma_fe/./src/components/announcements_page/announcements_page.vue?89ce","webpack://pleroma_fe/./src/boot/routes.js","webpack://pleroma_fe/./src/directives/body_scroll_lock.js","webpack://pleroma_fe/./src/boot/after_store.js","webpack://pleroma_fe/./src/main.js","webpack://pleroma_fe/./src/modules/config.js","webpack://pleroma_fe/./src/services/errors/errors.js","webpack://pleroma_fe/./src/modules/errors.js","webpack://pleroma_fe/./src/services/api/api.service.js","webpack://pleroma_fe/./src/services/attributes_helper/attributes_helper.service.js","webpack://pleroma_fe/./src/services/color_convert/color_convert.js","webpack://pleroma_fe/./src/services/component_utils/component_utils.js","webpack://pleroma_fe/./src/services/date_utils/date_utils.js","webpack://pleroma_fe/./src/services/desktop_notification_utils/desktop_notification_utils.js","webpack://pleroma_fe/./src/services/entity_normalizer/entity_normalizer.service.js","webpack://pleroma_fe/./src/services/favicon_service/favicon_service.js","webpack://pleroma_fe/./src/services/file_size_format/file_size_format.js","webpack://pleroma_fe/./src/services/file_type/file_type.service.js","webpack://pleroma_fe/./src/services/locale/locale.service.js","webpack://pleroma_fe/./src/services/notification_utils/notification_utils.js","webpack://pleroma_fe/./src/services/notifications_fetcher/notifications_fetcher.service.js","webpack://pleroma_fe/./src/services/offset_finder/offset_finder.service.js","webpack://pleroma_fe/./src/services/promise_interval/promise_interval.js","webpack://pleroma_fe/./src/services/random_seed/random_seed.service.js","webpack://pleroma_fe/./src/services/status_parser/status_parser.js","webpack://pleroma_fe/./src/services/status_poster/status_poster.service.js","webpack://pleroma_fe/./src/services/style_setter/style_setter.js","webpack://pleroma_fe/./src/services/theme_data/pleromafe.js","webpack://pleroma_fe/./src/services/theme_data/theme_data.service.js","webpack://pleroma_fe/./src/services/user_highlighter/user_highlighter.js","webpack://pleroma_fe/./src/services/user_profile_link_generator/user_profile_link_generator.js","webpack://pleroma_fe/./src/components/attachment/attachment.vue","webpack://pleroma_fe/./src/components/attachment/attachment.js","webpack://pleroma_fe/./src/components/attachment/attachment.vue?6808","webpack://pleroma_fe/./src/components/avatar_list/avatar_list.vue","webpack://pleroma_fe/./src/components/avatar_list/avatar_list.js","webpack://pleroma_fe/./src/components/avatar_list/avatar_list.vue?171c","webpack://pleroma_fe/./src/components/basic_user_card/basic_user_card.vue","webpack://pleroma_fe/./src/components/basic_user_card/basic_user_card.js","webpack://pleroma_fe/./src/components/basic_user_card/basic_user_card.vue?95ff","webpack://pleroma_fe/./src/components/checkbox/checkbox.vue","webpack://pleroma_fe/./src/components/checkbox/checkbox.vue?4d95","webpack://pleroma_fe/./src/components/confirm_modal/confirm_modal.js","webpack://pleroma_fe/./src/components/confirm_modal/confirm_modal.vue?dff7","webpack://pleroma_fe/./src/components/confirm_modal/confirm_modal.vue","webpack://pleroma_fe/./src/components/dialog_modal/dialog_modal.vue","webpack://pleroma_fe/./src/components/dialog_modal/dialog_modal.js","webpack://pleroma_fe/./src/components/dialog_modal/dialog_modal.vue?60df","webpack://pleroma_fe/./src/components/emoji_input/emoji_input.vue","webpack://pleroma_fe/./src/services/completion/completion.js","webpack://pleroma_fe/./src/components/screen_reader_notice/screen_reader_notice.js","webpack://pleroma_fe/./src/components/screen_reader_notice/screen_reader_notice.vue?a18c","webpack://pleroma_fe/./src/components/screen_reader_notice/screen_reader_notice.vue","webpack://pleroma_fe/./src/components/emoji_input/emoji_input.js","webpack://pleroma_fe/./src/components/emoji_input/emoji_input.vue?cc95","webpack://pleroma_fe/./src/components/emoji_picker/emoji_picker.vue","webpack://pleroma_fe/./src/components/emoji_picker/emoji_picker.js","webpack://pleroma_fe/./src/components/emoji_picker/emoji_picker.vue?6411","webpack://pleroma_fe/./src/services/ruffle_service/ruffle_service.js","webpack://pleroma_fe/./src/components/flash/flash.vue","webpack://pleroma_fe/./src/components/flash/flash.js","webpack://pleroma_fe/./src/components/flash/flash.vue?8f01","webpack://pleroma_fe/./src/services/follow_manipulate/follow_manipulate.js","webpack://pleroma_fe/./src/components/follow_button/follow_button.js","webpack://pleroma_fe/./src/components/follow_button/follow_button.vue?fbc0","webpack://pleroma_fe/./src/components/follow_button/follow_button.vue","webpack://pleroma_fe/./src/components/gallery/gallery.vue","webpack://pleroma_fe/./src/components/gallery/gallery.js","webpack://pleroma_fe/./src/components/gallery/gallery.vue?c41d","webpack://pleroma_fe/./src/components/interface_language_switcher/interface_language_switcher.vue","webpack://pleroma_fe/./src/components/interface_language_switcher/interface_language_switcher.vue?f2c7","webpack://pleroma_fe/./src/components/link-preview/link-preview.vue","webpack://pleroma_fe/./src/components/link-preview/link-preview.js","webpack://pleroma_fe/./src/components/link-preview/link-preview.vue?5c9b","webpack://pleroma_fe/./src/components/list/list.vue","webpack://pleroma_fe/./src/components/list/list.vue?b52f","webpack://pleroma_fe/./src/components/media_upload/media_upload.js","webpack://pleroma_fe/./src/components/media_upload/media_upload.vue?73d1","webpack://pleroma_fe/./src/components/media_upload/media_upload.vue","webpack://pleroma_fe/./src/components/mention_link/mention_link.vue","webpack://pleroma_fe/./src/components/mention_link/mention_link.js","webpack://pleroma_fe/./src/components/mention_link/mention_link.vue?f0cb","webpack://pleroma_fe/./src/components/mentions_line/mentions_line.vue","webpack://pleroma_fe/./src/components/mentions_line/mentions_line.js","webpack://pleroma_fe/./src/components/mentions_line/mentions_line.vue?e8e7","webpack://pleroma_fe/./src/components/modal/modal.vue","webpack://pleroma_fe/./src/components/modal/modal.vue?8c58","webpack://pleroma_fe/./src/components/notifications/notifications.vue","webpack://pleroma_fe/./src/components/notification/notification.vue","webpack://pleroma_fe/./src/components/report/report.vue","webpack://pleroma_fe/./src/components/report/report.js","webpack://pleroma_fe/./src/components/report/report.vue?5c84","webpack://pleroma_fe/./src/components/notification/notification.js","webpack://pleroma_fe/./src/components/notification/notification.vue?17c8","webpack://pleroma_fe/./src/components/notifications/notification_filters.vue","webpack://pleroma_fe/./src/components/notifications/notification_filters.vue?4a98","webpack://pleroma_fe/./src/components/notifications/notifications.js","webpack://pleroma_fe/./src/components/notifications/notifications.vue?770b","webpack://pleroma_fe/./src/components/panel_loading/panel_loading.vue","webpack://pleroma_fe/./src/components/panel_loading/panel_loading.vue?50c2","webpack://pleroma_fe/./src/components/popover/popover.js","webpack://pleroma_fe/./src/components/popover/popover.vue?237b","webpack://pleroma_fe/./src/components/popover/popover.vue","webpack://pleroma_fe/./src/components/post_status_form/post_status_form.vue","webpack://pleroma_fe/./src/components/poll/poll_form.vue","webpack://pleroma_fe/./src/components/poll/poll_form.js","webpack://pleroma_fe/./src/components/poll/poll_form.vue?5434","webpack://pleroma_fe/./src/components/post_status_form/post_status_form.js","webpack://pleroma_fe/./src/components/post_status_form/post_status_form.vue?b98e","webpack://pleroma_fe/./src/components/progress_button/progress_button.vue","webpack://pleroma_fe/./src/components/progress_button/progress_button.vue?2d10","webpack://pleroma_fe/./src/components/remote_follow/remote_follow.vue","webpack://pleroma_fe/./src/components/remote_follow/remote_follow.js","webpack://pleroma_fe/./src/components/remote_follow/remote_follow.vue?188a","webpack://pleroma_fe/./src/components/scope_selector/scope_selector.vue","webpack://pleroma_fe/./src/components/scope_selector/scope_selector.js","webpack://pleroma_fe/./src/components/scope_selector/scope_selector.vue?cbff","webpack://pleroma_fe/./src/components/select/select.js","webpack://pleroma_fe/./src/components/select/select.vue?fa00","webpack://pleroma_fe/./src/components/select/select.vue","webpack://pleroma_fe/./src/components/status/status.vue","webpack://pleroma_fe/./src/components/reply_button/reply_button.vue","webpack://pleroma_fe/./src/components/reply_button/reply_button.js","webpack://pleroma_fe/./src/components/reply_button/reply_button.vue?f8cc","webpack://pleroma_fe/./src/components/favorite_button/favorite_button.vue","webpack://pleroma_fe/./src/components/favorite_button/favorite_button.js","webpack://pleroma_fe/./src/components/favorite_button/favorite_button.vue?4c13","webpack://pleroma_fe/./src/components/react_button/react_button.vue","webpack://pleroma_fe/./src/components/react_button/react_button.js","webpack://pleroma_fe/./src/components/react_button/react_button.vue?64d4","webpack://pleroma_fe/./src/components/retweet_button/retweet_button.vue","webpack://pleroma_fe/./src/components/retweet_button/retweet_button.js","webpack://pleroma_fe/./src/components/retweet_button/retweet_button.vue?774a","webpack://pleroma_fe/./src/components/extra_buttons/extra_buttons.vue","webpack://pleroma_fe/./src/components/extra_buttons/extra_buttons.js","webpack://pleroma_fe/./src/components/extra_buttons/extra_buttons.vue?2a14","webpack://pleroma_fe/./src/components/status_popover/status_popover.vue","webpack://pleroma_fe/./src/components/status_popover/status_popover.js","webpack://pleroma_fe/./src/components/status_popover/status_popover.vue?2f31","webpack://pleroma_fe/./src/components/user_list_popover/user_list_popover.vue","webpack://pleroma_fe/./src/components/user_list_popover/user_list_popover.js","webpack://pleroma_fe/./src/components/user_list_popover/user_list_popover.vue?32eb","webpack://pleroma_fe/./src/components/emoji_reactions/emoji_reactions.vue","webpack://pleroma_fe/./src/components/emoji_reactions/emoji_reactions.js","webpack://pleroma_fe/./src/components/emoji_reactions/emoji_reactions.vue?be26","webpack://pleroma_fe/./src/components/status/status.js","webpack://pleroma_fe/./src/components/status/status.vue?f274","webpack://pleroma_fe/./src/components/status_content/status_content.vue","webpack://pleroma_fe/./src/components/poll/poll.vue","webpack://pleroma_fe/./src/components/poll/poll.js","webpack://pleroma_fe/./src/components/poll/poll.vue?09ad","webpack://pleroma_fe/./src/components/status_body/status_body.vue","webpack://pleroma_fe/./src/components/status_body/status_body.js","webpack://pleroma_fe/./src/components/status_body/status_body.vue?a029","webpack://pleroma_fe/./src/components/status_content/status_content.js","webpack://pleroma_fe/./src/components/status_content/status_content.vue?5b7b","webpack://pleroma_fe/./src/components/still-image/still-image.vue","webpack://pleroma_fe/./src/components/still-image/still-image.js","webpack://pleroma_fe/./src/components/still-image/still-image.vue?7a8d","webpack://pleroma_fe/./src/components/timeago/timeago.vue","webpack://pleroma_fe/./src/components/timeago/timeago.vue?3167","webpack://pleroma_fe/./src/components/unicode_domain_indicator/unicode_domain_indicator.vue","webpack://pleroma_fe/./src/components/unicode_domain_indicator/unicode_domain_indicator.vue?760a","webpack://pleroma_fe/./src/components/user_avatar/user_avatar.js","webpack://pleroma_fe/./src/components/user_avatar/user_avatar.vue?84fc","webpack://pleroma_fe/./src/components/user_avatar/user_avatar.vue","webpack://pleroma_fe/./src/components/user_card/user_card.vue","webpack://pleroma_fe/./src/components/moderation_tools/moderation_tools.vue","webpack://pleroma_fe/./src/components/moderation_tools/moderation_tools.js","webpack://pleroma_fe/./src/components/moderation_tools/moderation_tools.vue?98d7","webpack://pleroma_fe/./src/components/account_actions/account_actions.vue","webpack://pleroma_fe/./src/components/user_list_menu/user_list_menu.vue","webpack://pleroma_fe/./src/components/user_list_menu/user_list_menu.js","webpack://pleroma_fe/./src/components/user_list_menu/user_list_menu.vue?e3cb","webpack://pleroma_fe/./src/components/account_actions/account_actions.js","webpack://pleroma_fe/./src/components/account_actions/account_actions.vue?26a0","webpack://pleroma_fe/./src/components/user_note/user_note.vue","webpack://pleroma_fe/./src/components/user_note/user_note.js","webpack://pleroma_fe/./src/components/user_note/user_note.vue?302a","webpack://pleroma_fe/./src/components/user_card/user_card.js","webpack://pleroma_fe/./src/components/user_card/user_card.vue?bb36","webpack://pleroma_fe/./src/components/user_link/user_link.vue","webpack://pleroma_fe/./src/components/user_link/user_link.vue?e5f2","webpack://pleroma_fe/./src/components/user_popover/user_popover.js","webpack://pleroma_fe/./src/components/user_popover/user_popover.vue?dfdb","webpack://pleroma_fe/./src/components/user_popover/user_popover.vue","webpack://pleroma_fe/./src/components/video_attachment/video_attachment.js","webpack://pleroma_fe/./src/components/video_attachment/video_attachment.vue?da03","webpack://pleroma_fe/./src/components/video_attachment/video_attachment.vue","webpack://pleroma_fe/./src/i18n/ lazy ^\\.\\/.*\\.json$ include: \\.json$ chunkName: i18n/[request] namespace object","webpack://pleroma_fe/webpack/bootstrap","webpack://pleroma_fe/webpack/runtime/compat get default export","webpack://pleroma_fe/webpack/runtime/define property getters","webpack://pleroma_fe/webpack/runtime/ensure chunk","webpack://pleroma_fe/webpack/runtime/get javascript chunk filename","webpack://pleroma_fe/webpack/runtime/get mini-css chunk filename","webpack://pleroma_fe/webpack/runtime/global","webpack://pleroma_fe/webpack/runtime/hasOwnProperty shorthand","webpack://pleroma_fe/webpack/runtime/make namespace object","webpack://pleroma_fe/webpack/runtime/node module decorator","webpack://pleroma_fe/webpack/runtime/publicPath","webpack://pleroma_fe/webpack/runtime/css loading","webpack://pleroma_fe/webpack/runtime/jsonp chunk loading","webpack://pleroma_fe/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"pleroma_fe:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t};\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","export default {\n \"about\": {\n \"mrf\": {\n \"federation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Federation\"])},\n \"keyword\": {\n \"keyword_policies\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keyword policies\"])},\n \"ftl_removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Removal from \\\"The Whole Known Network\\\" Timeline\"])},\n \"reject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reject\"])},\n \"replace\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Replace\"])},\n \"is_replaced_by\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"→\"])}\n },\n \"mrf_policies\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enabled MRF policies\"])},\n \"mrf_policies_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"MRF policies manipulate the federation behaviour of the instance. The following policies are enabled:\"])},\n \"simple\": {\n \"simple_policies\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Instance-specific policies\"])},\n \"instance\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Instance\"])},\n \"reason\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reason\"])},\n \"not_applicable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"N/A\"])},\n \"accept\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Accept\"])},\n \"accept_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This instance only accepts messages from the following instances:\"])},\n \"reject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reject\"])},\n \"reject_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This instance will not accept messages from the following instances:\"])},\n \"quarantine\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Quarantine\"])},\n \"quarantine_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This instance will send only public posts to the following instances:\"])},\n \"ftl_removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Removal from \\\"Known Network\\\" Timeline\"])},\n \"ftl_removal_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This instance removes these instances from \\\"Known Network\\\" timeline:\"])},\n \"media_removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Media Removal\"])},\n \"media_removal_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This instance removes media from posts on the following instances:\"])},\n \"media_nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Media force-set as sensitive\"])},\n \"media_nsfw_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This instance forces media to be set sensitive in posts on the following instances:\"])}\n }\n },\n \"staff\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Staff\"])}\n },\n \"announcements\": {\n \"page_header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Announcements\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Announcement\"])},\n \"mark_as_read_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mark as read\"])},\n \"post_form_header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Post announcement\"])},\n \"post_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Type your announcement content here...\"])},\n \"post_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Post\"])},\n \"post_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Error: \", _interpolate(_named(\"error\"))])},\n \"close_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Close\"])},\n \"delete_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete\"])},\n \"start_time_prompt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Start time: \"])},\n \"end_time_prompt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"End time: \"])},\n \"all_day_prompt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This is an all-day event\"])},\n \"published_time_display\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Published at \", _interpolate(_named(\"time\"))])},\n \"start_time_display\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Starts at \", _interpolate(_named(\"time\"))])},\n \"end_time_display\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Ends at \", _interpolate(_named(\"time\"))])},\n \"edit_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit\"])},\n \"submit_edit_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Submit\"])},\n \"cancel_edit_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cancel\"])},\n \"inactive_message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This announcement is inactive\"])}\n },\n \"shoutbox\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Shoutbox\"])}\n },\n \"domain_mute_card\": {\n \"mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mute\"])},\n \"mute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Muting…\"])},\n \"unmute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unmute\"])},\n \"unmute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unmuting…\"])}\n },\n \"exporter\": {\n \"export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Export\"])},\n \"processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Processing, you'll soon be asked to download your file\"])}\n },\n \"features_panel\": {\n \"shout\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Shoutbox\"])},\n \"pleroma_chat_messages\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pleroma Chat\"])},\n \"gopher\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gopher\"])},\n \"media_proxy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Media proxy\"])},\n \"scope_options\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Scope options\"])},\n \"text_limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Text limit\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Features\"])},\n \"who_to_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Who to follow\"])},\n \"upload_limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Upload limit\"])}\n },\n \"finder\": {\n \"error_fetching_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error fetching user\"])},\n \"find_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Find user\"])}\n },\n \"general\": {\n \"apply\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Apply\"])},\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Submit\"])},\n \"more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"More\"])},\n \"loading\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Loading…\"])},\n \"generic_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"An error occured\"])},\n \"generic_error_message\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"An error occured: \", _interpolate(_list(0))])},\n \"error_retry\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Please try again\"])},\n \"retry\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Try again\"])},\n \"optional\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"optional\"])},\n \"show_more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show more\"])},\n \"show_less\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show less\"])},\n \"never_show_again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Never show again\"])},\n \"dismiss\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dismiss\"])},\n \"cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cancel\"])},\n \"disable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Disable\"])},\n \"enable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enable\"])},\n \"confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirm\"])},\n \"verify\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verify\"])},\n \"close\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Close\"])},\n \"undo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Undo\"])},\n \"yes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Yes\"])},\n \"no\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No\"])},\n \"peek\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Peek\"])},\n \"scroll_to_top\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Scroll to top\"])},\n \"role\": {\n \"admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Moderator\"])}\n },\n \"unpin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unpin item\"])},\n \"pin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pin item\"])},\n \"flash_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Click to show Flash content using Ruffle (Experimental, may not work).\"])},\n \"flash_security\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Note that this can be potentially dangerous since Flash content is still arbitrary code.\"])},\n \"flash_fail\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Failed to load flash content, see console for details.\"])},\n \"scope_in_timeline\": {\n \"direct\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Direct\"])},\n \"private\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Followers-only\"])},\n \"public\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Public\"])},\n \"unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unlisted\"])}\n }\n },\n \"image_cropper\": {\n \"crop_picture\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Crop picture\"])},\n \"save\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Save\"])},\n \"save_without_cropping\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Save without cropping\"])},\n \"cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cancel\"])}\n },\n \"importer\": {\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Submit\"])},\n \"success\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Imported successfully.\"])},\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"An error occured while importing this file.\"])}\n },\n \"login\": {\n \"login\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Log in\"])},\n \"description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Log in with OAuth\"])},\n \"logout\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Log out\"])},\n \"logout_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Logout confirmation\"])},\n \"logout_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do you really want to logout?\"])},\n \"logout_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Logout\"])},\n \"logout_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do not logout\"])},\n \"password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password\"])},\n \"placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"e.g. lain\"])},\n \"register\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Register\"])},\n \"username\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Username\"])},\n \"hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Log in to join the discussion\"])},\n \"authentication_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Authentication code\"])},\n \"enter_recovery_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enter a recovery code\"])},\n \"enter_two_factor_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enter a two-factor code\"])},\n \"recovery_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Recovery code\"])},\n \"heading\": {\n \"totp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Two-factor authentication\"])},\n \"recovery\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Two-factor recovery\"])}\n }\n },\n \"media_modal\": {\n \"previous\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Previous\"])},\n \"next\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Next\"])},\n \"counter\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"current\")), \" / \", _interpolate(_named(\"total\"))])},\n \"hide\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Close media viewer\"])}\n },\n \"nav\": {\n \"about\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"About\"])},\n \"administration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration\"])},\n \"back\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Back\"])},\n \"friend_requests\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Follow requests\"])},\n \"mentions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mentions\"])},\n \"interactions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Interactions\"])},\n \"dms\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Direct messages\"])},\n \"public_tl\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Public timeline\"])},\n \"timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Timeline\"])},\n \"home_timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Home timeline\"])},\n \"twkn\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Known Network\"])},\n \"bookmarks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bookmarks\"])},\n \"user_search\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User Search\"])},\n \"search\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Search\"])},\n \"search_close\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Close search bar\"])},\n \"who_to_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Who to follow\"])},\n \"preferences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Preferences\"])},\n \"timelines\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Timelines\"])},\n \"chats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Chats\"])},\n \"lists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lists\"])},\n \"edit_nav_mobile\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Customize navigation bar\"])},\n \"edit_pinned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit pinned items\"])},\n \"edit_finish\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Done editing\"])},\n \"mobile_sidebar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Toggle mobile sidebar\"])},\n \"mobile_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Open notifications\"])},\n \"mobile_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Open notifications (there are unread ones)\"])},\n \"mobile_notifications_close\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Close notifications\"])},\n \"announcements\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Announcements\"])}\n },\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unknown status, searching for it…\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Error fetching notifications: \", _interpolate(_list(0))])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"favorited your status\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"followed you\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wants to follow you\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Load older notifications\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notifications\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Read!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"repeated your status\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No more notifications\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"migrated to\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"reacted with \", _interpolate(_list(0))])},\n \"submitted_report\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"submitted a report\"])},\n \"poll_ended\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"poll has ended\"])}\n },\n \"polls\": {\n \"add_poll\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add poll\"])},\n \"add_option\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add option\"])},\n \"option\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Option\"])},\n \"votes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"votes\"])},\n \"people_voted_count\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"count\")), \" person voted\"]), _normalize([_interpolate(_named(\"count\")), \" people voted\"])])},\n \"votes_count\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"count\")), \" vote\"]), _normalize([_interpolate(_named(\"count\")), \" votes\"])])},\n \"vote\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vote\"])},\n \"type\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Poll type\"])},\n \"single_choice\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Single choice\"])},\n \"multiple_choices\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Multiple choices\"])},\n \"expiry\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Poll age\"])},\n \"expires_in\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Poll ends in \", _interpolate(_list(0))])},\n \"expired\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Poll ended \", _interpolate(_list(0)), \" ago\"])},\n \"not_enough_options\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Too few unique options in poll\"])}\n },\n \"emoji\": {\n \"stickers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Stickers\"])},\n \"emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Emoji\"])},\n \"keep_open\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keep picker open\"])},\n \"search_emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Search for an emoji\"])},\n \"add_emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Insert emoji\"])},\n \"custom\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Custom emoji\"])},\n \"unpacked\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unpacked emoji\"])},\n \"unicode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unicode emoji\"])},\n \"unicode_groups\": {\n \"activities\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activities\"])},\n \"animals-and-nature\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Animals & Nature\"])},\n \"flags\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Flags\"])},\n \"food-and-drink\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Food & Drink\"])},\n \"objects\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Objects\"])},\n \"people-and-body\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"People & Body\"])},\n \"smileys-and-emotion\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Smileys & Emotion\"])},\n \"symbols\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Symbols\"])},\n \"travel-and-places\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Travel & Places\"])}\n },\n \"load_all_hint\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Loaded first \", _interpolate(_named(\"saneAmount\")), \" emoji, loading all emoji may cause performance issues.\"])},\n \"load_all\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Loading all \", _interpolate(_named(\"emojiAmount\")), \" emoji\"])},\n \"regional_indicator\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Regional indicator \", _interpolate(_named(\"letter\"))])}\n },\n \"errors\": {\n \"storage_unavailable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pleroma could not access browser storage. Your login or your local settings won't be saved and you might encounter unexpected issues. Try enabling cookies.\"])}\n },\n \"interactions\": {\n \"favs_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Repeats and favorites\"])},\n \"follows\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"New follows\"])},\n \"emoji_reactions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Emoji Reactions\"])},\n \"reports\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reports\"])},\n \"moves\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User migrates\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Load older interactions\"])}\n },\n \"post_status\": {\n \"edit_status\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit status\"])},\n \"new_status\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Post new status\"])},\n \"reply_option\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reply to this status\"])},\n \"quote_option\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Quote this status\"])},\n \"account_not_locked_warning\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Your account is not \", _interpolate(_list(0)), \". Anyone can follow you to view your follower-only posts.\"])},\n \"account_not_locked_warning_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"locked\"])},\n \"attachments_sensitive\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mark attachments as sensitive\"])},\n \"media_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Media description\"])},\n \"content_type\": {\n \"text/plain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Plain text\"])},\n \"text/html\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"HTML\"])},\n \"text/markdown\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Markdown\"])},\n \"text/bbcode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"BBCode\"])}\n },\n \"content_type_selection\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Post format\"])},\n \"content_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Subject (optional)\"])},\n \"default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Just landed in L.A.\"])},\n \"direct_warning_to_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This post will be visible to all the mentioned users.\"])},\n \"direct_warning_to_first_only\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This post will only be visible to the mentioned users at the beginning of the message.\"])},\n \"edit_remote_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Other remote instances may not support editing and unable to receive the latest version of your post.\"])},\n \"edit_unsupported_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pleroma does not support editing mentions or polls.\"])},\n \"posting\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Posting\"])},\n \"post\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Post\"])},\n \"preview\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Preview\"])},\n \"preview_empty\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Empty\"])},\n \"empty_status_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Can't post an empty status with no files\"])},\n \"media_description_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Failed to update media, try again\"])},\n \"scope_notice\": {\n \"public\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This post will be visible to everyone\"])},\n \"private\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This post will be visible to your followers only\"])},\n \"unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This post will not be visible in Public Timeline and The Whole Known Network\"])}\n },\n \"scope_notice_dismiss\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Close this notice\"])},\n \"scope\": {\n \"direct\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Direct - post to mentioned users only\"])},\n \"private\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Followers-only - post to followers only\"])},\n \"public\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Public - post to public timelines\"])},\n \"unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unlisted - do not post to public timelines\"])}\n }\n },\n \"registration\": {\n \"bio_optional\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bio (optional)\"])},\n \"email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email\"])},\n \"email_optional\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email (optional)\"])},\n \"fullname\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Display name\"])},\n \"password_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password confirmation\"])},\n \"registration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registration\"])},\n \"token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invite token\"])},\n \"captcha\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"CAPTCHA\"])},\n \"new_captcha\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Click the image to get a new captcha\"])},\n \"username_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"e.g. lain\"])},\n \"fullname_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"e.g. Lain Iwakura\"])},\n \"bio_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"e.g.\\nHi, I'm Lain.\\nI’m an anime girl living in suburban Japan. You may know me from the Wired.\"])},\n \"reason\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reason to register\"])},\n \"reason_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This instance approves registrations manually.\\nLet the administration know why you want to register.\"])},\n \"register\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Register\"])},\n \"validations\": {\n \"username_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"cannot be left blank\"])},\n \"fullname_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"cannot be left blank\"])},\n \"email_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"cannot be left blank\"])},\n \"password_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"cannot be left blank\"])},\n \"password_confirmation_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"cannot be left blank\"])},\n \"password_confirmation_match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"should be the same as password\"])},\n \"birthday_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"cannot be left blank\"])},\n \"birthday_min_age\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"must be on or before \", _interpolate(_named(\"date\"))])}\n },\n \"email_language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"In which language do you want to receive emails from the server?\"])},\n \"birthday\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Birthday:\"])},\n \"birthday_optional\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Birthday (optional):\"])}\n },\n \"remote_user_resolver\": {\n \"remote_user_resolver\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remote user resolver\"])},\n \"searching_for\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Searching for\"])},\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Not found.\"])}\n },\n \"report\": {\n \"reporter\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reporter:\"])},\n \"reported_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reported user:\"])},\n \"reported_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reported statuses:\"])},\n \"notes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notes:\"])},\n \"state\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"State:\"])},\n \"state_open\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Open\"])},\n \"state_closed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Closed\"])},\n \"state_resolved\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Resolved\"])}\n },\n \"selectable_list\": {\n \"select_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Select all\"])}\n },\n \"settings\": {\n \"add_language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add fallback language\"])},\n \"remove_language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove\"])},\n \"primary_language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Primary language:\"])},\n \"fallback_language\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Fallback language \", _interpolate(_named(\"index\")), \":\"])},\n \"app_name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"App name\"])},\n \"expert_mode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show advanced\"])},\n \"save\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Save changes\"])},\n \"security\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Security\"])},\n \"setting_changed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Setting is different from default\"])},\n \"setting_server_side\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This setting is tied to your profile and affects all sessions and clients\"])},\n \"enter_current_password_to_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enter your current password to confirm your identity\"])},\n \"post_look_feel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Posts Look & Feel\"])},\n \"mention_links\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mention links\"])},\n \"mfa\": {\n \"otp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OTP\"])},\n \"setup_otp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Setup OTP\"])},\n \"wait_pre_setup_otp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"presetting OTP\"])},\n \"confirm_and_enable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirm & enable OTP\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Two-factor Authentication\"])},\n \"generate_new_recovery_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Generate new recovery codes\"])},\n \"warning_of_generate_new_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"When you generate new recovery codes, your old codes won’t work anymore.\"])},\n \"recovery_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Recovery codes.\"])},\n \"waiting_a_recovery_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Receiving backup codes…\"])},\n \"recovery_codes_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Write the codes down or save them somewhere secure - otherwise you won't see them again. If you lose access to your 2FA app and recovery codes you'll be locked out of your account.\"])},\n \"authentication_methods\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Authentication methods\"])},\n \"scan\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Scan\"])},\n \"desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Using your two-factor app, scan this QR code or enter text key:\"])},\n \"secret_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Key\"])}\n },\n \"verify\": {\n \"desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"To enable two-factor authentication, enter the code from your two-factor app:\"])}\n }\n },\n \"lists_navigation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show lists in navigation\"])},\n \"allow_following_move\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Allow auto-follow when following account moves\"])},\n \"attachmentRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Attachments\"])},\n \"attachments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Attachments\"])},\n \"avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avatar\"])},\n \"avatarAltRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avatars (notifications)\"])},\n \"avatarRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avatars\"])},\n \"background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Background\"])},\n \"bio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bio\"])},\n \"email_language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Language for receiving emails from the server\"])},\n \"block_export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Block export\"])},\n \"block_export_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Export your blocks to a csv file\"])},\n \"block_import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Block import\"])},\n \"block_import_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error importing blocks\"])},\n \"blocks_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Blocks imported! Processing them will take a while.\"])},\n \"mute_export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mute export\"])},\n \"mute_export_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Export your mutes to a csv file\"])},\n \"mute_import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mute import\"])},\n \"mute_import_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error importing mutes\"])},\n \"mutes_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mutes imported! Processing them will take a while.\"])},\n \"import_mutes_from_a_csv_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Import mutes from a csv file\"])},\n \"account_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Account backup\"])},\n \"account_backup_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This allows you to download an archive of your account information and your posts, but they cannot yet be imported into a Pleroma account.\"])},\n \"account_backup_table_head\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Backup\"])},\n \"download_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Download\"])},\n \"backup_not_ready\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This backup is not ready yet.\"])},\n \"backup_running\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([\"This backup is in progress, processed \", _interpolate(_named(\"number\")), \" record.\"]), _normalize([\"This backup is in progress, processed \", _interpolate(_named(\"number\")), \" records.\"])])},\n \"backup_failed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This backup has failed.\"])},\n \"remove_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove\"])},\n \"list_backups_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Error fetching backup list: \", _interpolate(_named(\"error\"))])},\n \"add_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Create a new backup\"])},\n \"added_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Added a new backup.\"])},\n \"add_backup_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Error adding a new backup: \", _interpolate(_named(\"error\"))])},\n \"blocks_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Blocks\"])},\n \"bot\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This is a bot account\"])},\n \"btnRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Buttons\"])},\n \"cBlue\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Blue (Reply, follow)\"])},\n \"cGreen\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Green (Retweet)\"])},\n \"cOrange\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Orange (Favorite)\"])},\n \"cRed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Red (Cancel)\"])},\n \"change_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Change email\"])},\n \"change_email_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"There was an issue changing your email.\"])},\n \"changed_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email changed successfully!\"])},\n \"change_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Change password\"])},\n \"change_password_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"There was an issue changing your password.\"])},\n \"changed_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password changed successfully!\"])},\n \"chatMessageRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Chat message\"])},\n \"collapse_subject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Collapse posts with subjects\"])},\n \"composing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Composing\"])},\n \"confirm_new_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirm new password\"])},\n \"current_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Current password\"])},\n \"confirm_dialogs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ask for confirmation when\"])},\n \"confirm_dialogs_repeat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"repeating a status\"])},\n \"confirm_dialogs_unfollow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"unfollowing a user\"])},\n \"confirm_dialogs_block\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"blocking a user\"])},\n \"confirm_dialogs_mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"muting a user\"])},\n \"confirm_dialogs_delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"deleting a status\"])},\n \"confirm_dialogs_logout\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"logging out\"])},\n \"confirm_dialogs_approve_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"approving a follower\"])},\n \"confirm_dialogs_deny_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"denying a follower\"])},\n \"confirm_dialogs_remove_follower\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"removing a follower\"])},\n \"mutes_and_blocks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mutes and Blocks\"])},\n \"data_import_export_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Data import / export\"])},\n \"default_vis\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Default visibility scope\"])},\n \"delete_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete account\"])},\n \"delete_account_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Permanently delete your data and deactivate your account.\"])},\n \"delete_account_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"There was an issue deleting your account. If this persists please contact your instance administrator.\"])},\n \"delete_account_instructions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Type your password in the input below to confirm account deletion.\"])},\n \"account_alias\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Account aliases\"])},\n \"account_alias_table_head\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Alias\"])},\n \"list_aliases_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Error fetching aliases: \", _interpolate(_named(\"error\"))])},\n \"hide_list_aliases_error_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Close\"])},\n \"remove_alias\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove this alias\"])},\n \"new_alias_target\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Add a new alias (e.g. \", _interpolate(_named(\"example\")), \")\"])},\n \"added_alias\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Alias is added.\"])},\n \"add_alias_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Error adding alias: \", _interpolate(_named(\"error\"))])},\n \"move_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Move account\"])},\n \"move_account_notes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"If you want to move the account somewhere else, you must go to your target account and add an alias pointing here.\"])},\n \"move_account_target\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Target account (e.g. \", _interpolate(_named(\"example\")), \")\"])},\n \"moved_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Account is moved.\"])},\n \"move_account_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Error moving account: \", _interpolate(_named(\"error\"))])},\n \"discoverable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Allow discovery of this account in search results and other services\"])},\n \"domain_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Domains\"])},\n \"avatar_size_instruction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The recommended minimum size for avatar images is 150x150 pixels.\"])},\n \"pad_emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pad emoji with spaces when adding from picker\"])},\n \"autocomplete_select_first\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Automatically select the first candidate when autocomplete results are available\"])},\n \"emoji_reactions_on_timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show emoji reactions on timeline\"])},\n \"emoji_reactions_scale\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reactions scale factor\"])},\n \"export_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Save preset\"])},\n \"filtering\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtering\"])},\n \"wordfilter\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wordfilter\"])},\n \"filtering_explanation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"All statuses containing these words will be muted, one per line\"])},\n \"word_filter_and_more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Word filter and more...\"])},\n \"follow_export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Follow export\"])},\n \"follow_export_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Export your follows to a csv file\"])},\n \"follow_import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Follow import\"])},\n \"follow_import_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error importing followers\"])},\n \"follows_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Follows imported! Processing them will take a while.\"])},\n \"accent\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Accent\"])},\n \"foreground\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Foreground\"])},\n \"general\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"General\"])},\n \"hide_attachments_in_convo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide attachments in conversations\"])},\n \"hide_attachments_in_tl\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide attachments in timeline\"])},\n \"hide_media_previews\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide media previews\"])},\n \"hide_muted_posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide posts of muted users\"])},\n \"mute_bot_posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mute bot posts\"])},\n \"hide_bot_indication\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide bot indication in posts\"])},\n \"hide_all_muted_posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide muted posts\"])},\n \"max_thumbnails\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Maximum amount of thumbnails per post (empty = no limit)\"])},\n \"hide_isp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide instance-specific panel\"])},\n \"hide_shoutbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide instance shoutbox\"])},\n \"right_sidebar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reverse order of columns\"])},\n \"navbar_column_stretch\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Stretch navbar to columns width\"])},\n \"always_show_post_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Always show floating New Post button\"])},\n \"hide_wallpaper\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide instance wallpaper\"])},\n \"preload_images\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Preload images\"])},\n \"use_one_click_nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Open NSFW attachments with just one click\"])},\n \"hide_post_stats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide post statistics (e.g. the number of favorites)\"])},\n \"hide_user_stats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide user statistics (e.g. the number of followers)\"])},\n \"hide_filtered_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide all filtered posts\"])},\n \"hide_wordfiltered_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide word-filtered statuses\"])},\n \"hide_muted_threads\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide muted threads\"])},\n \"import_blocks_from_a_csv_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Import blocks from a csv file\"])},\n \"import_followers_from_a_csv_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Import follows from a csv file\"])},\n \"import_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Load preset\"])},\n \"inputRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Input fields\"])},\n \"checkboxRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Checkboxes\"])},\n \"instance_default\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"(default: \", _interpolate(_named(\"value\")), \")\"])},\n \"instance_default_simple\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(default)\"])},\n \"interface\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Interface\"])},\n \"interfaceLanguage\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Interface language\"])},\n \"invalid_theme_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The selected file is not a supported Pleroma theme. No changes to your theme were made.\"])},\n \"limited_availability\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unavailable in your browser\"])},\n \"links\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Links\"])},\n \"lock_account_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Restrict your account to approved followers only\"])},\n \"loop_video\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Loop videos\"])},\n \"loop_video_silent_only\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Loop only videos without sound (i.e. Mastodon's \\\"gifs\\\")\"])},\n \"mutes_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mutes\"])},\n \"play_videos_in_modal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Play videos in a popup frame\"])},\n \"url\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"URL\"])},\n \"preview\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Preview\"])},\n \"file_export_import\": {\n \"backup_restore\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Settings backup\"])},\n \"backup_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Backup settings to file\"])},\n \"backup_settings_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Backup settings and theme to file\"])},\n \"restore_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Restore settings from file\"])},\n \"errors\": {\n \"invalid_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The selected file is not a supported Pleroma settings backup. No changes were made.\"])},\n \"file_too_new\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Incompatile major version: \", _interpolate(_named(\"fileMajor\")), \", this PleromaFE (settings ver \", _interpolate(_named(\"feMajor\")), \") is too old to handle it\"])},\n \"file_too_old\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Incompatile major version: \", _interpolate(_named(\"fileMajor\")), \", file version is too old and not supported (min. set. ver. \", _interpolate(_named(\"feMajor\")), \")\"])},\n \"file_slightly_new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File minor version is different, some settings might not load\"])}\n }\n },\n \"profile_fields\": {\n \"label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profile metadata\"])},\n \"add_field\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add field\"])},\n \"name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Label\"])},\n \"value\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Content\"])}\n },\n \"birthday\": {\n \"label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Birthday\"])},\n \"show_birthday\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show my birthday\"])}\n },\n \"account_privacy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Privacy\"])},\n \"use_contain_fit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Don't crop the attachment in thumbnails\"])},\n \"name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Name\"])},\n \"name_bio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Name & bio\"])},\n \"new_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"New email\"])},\n \"new_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"New password\"])},\n \"posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Posts\"])},\n \"user_profiles\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User Profiles\"])},\n \"notification_visibility\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Types of notifications to show\"])},\n \"notification_visibility_follows\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Follows\"])},\n \"notification_visibility_likes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Favorites\"])},\n \"notification_visibility_mentions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mentions\"])},\n \"notification_visibility_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Repeats\"])},\n \"notification_visibility_moves\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User Migrates\"])},\n \"notification_visibility_emoji_reactions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reactions\"])},\n \"notification_visibility_polls\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ends of polls you voted in\"])},\n \"no_rich_text_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Strip rich text formatting from all posts\"])},\n \"no_blocks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No blocks\"])},\n \"no_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No mutes\"])},\n \"hide_favorites_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Don't show list of my favorites (people still get notified)\"])},\n \"hide_follows_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Don't show who I'm following\"])},\n \"hide_followers_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Don't show who's following me\"])},\n \"hide_follows_count_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Don't show follow count\"])},\n \"hide_followers_count_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Don't show follower count\"])},\n \"show_admin_badge\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show \\\"Admin\\\" badge in my profile\"])},\n \"show_moderator_badge\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show \\\"Moderator\\\" badge in my profile\"])},\n \"nsfw_clickthrough\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide sensitive/NSFW media\"])},\n \"oauth_tokens\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OAuth tokens\"])},\n \"token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Token\"])},\n \"refresh_token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Refresh token\"])},\n \"valid_until\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Valid until\"])},\n \"revoke_token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revoke\"])},\n \"panelRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Panels\"])},\n \"pause_on_unfocused\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pause when tab is not focused\"])},\n \"presets\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Presets\"])},\n \"profile_background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profile background\"])},\n \"profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profile banner\"])},\n \"profile_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profile\"])},\n \"radii_help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Set up interface edge rounding (in pixels)\"])},\n \"replies_in_timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Replies in timeline\"])},\n \"reply_visibility_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show all replies\"])},\n \"reply_visibility_following\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Only show replies directed at me or users I'm following\"])},\n \"reply_visibility_self\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Only show replies directed at me\"])},\n \"reply_visibility_following_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show replies to my follows\"])},\n \"reply_visibility_self_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show replies to self only\"])},\n \"autohide_floating_post_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Automatically hide New Post button (mobile)\"])},\n \"saving_err\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error saving settings\"])},\n \"saving_ok\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Settings saved\"])},\n \"search_user_to_block\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Search whom you want to block\"])},\n \"search_user_to_mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Search whom you want to mute\"])},\n \"security_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Security\"])},\n \"scope_copy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Copy scope when replying (DMs are always copied)\"])},\n \"minimal_scopes_mode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Minimize post scope selection options\"])},\n \"set_new_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Set new avatar\"])},\n \"set_new_profile_background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Set new profile background\"])},\n \"set_new_profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Set new profile banner\"])},\n \"reset_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset avatar\"])},\n \"reset_profile_background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset profile background\"])},\n \"reset_profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset profile banner\"])},\n \"reset_avatar_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do you really want to reset the avatar?\"])},\n \"reset_banner_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do you really want to reset the banner?\"])},\n \"reset_background_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do you really want to reset the background?\"])},\n \"settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Settings\"])},\n \"subject_input_always_show\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Always show subject field\"])},\n \"subject_line_behavior\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Copy subject when replying\"])},\n \"subject_line_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Like email: \\\"re: subject\\\"\"])},\n \"subject_line_mastodon\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Like mastodon: copy as is\"])},\n \"subject_line_noop\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do not copy\"])},\n \"conversation_display\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Conversation display style\"])},\n \"conversation_display_tree\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tree-style\"])},\n \"conversation_display_tree_quick\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tree view\"])},\n \"disable_sticky_headers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Don't stick column headers to top of the screen\"])},\n \"show_scrollbars\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show side column's scrollbars\"])},\n \"third_column_mode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"When there's enough space, show third column containing\"])},\n \"third_column_mode_none\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Don't show third column at all\"])},\n \"third_column_mode_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notifications column\"])},\n \"third_column_mode_postform\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Main post form and navigation\"])},\n \"columns\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Columns\"])},\n \"column_sizes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Column sizes\"])},\n \"column_sizes_sidebar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sidebar\"])},\n \"column_sizes_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Content\"])},\n \"column_sizes_notifs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notifications\"])},\n \"tree_advanced\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Allow more flexible navigation in tree view\"])},\n \"tree_fade_ancestors\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Display ancestors of the current status in faint text\"])},\n \"conversation_display_linear\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Linear-style\"])},\n \"conversation_display_linear_quick\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Linear view\"])},\n \"conversation_other_replies_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show the \\\"other replies\\\" button\"])},\n \"conversation_other_replies_button_below\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Below statuses\"])},\n \"conversation_other_replies_button_inside\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inside statuses\"])},\n \"max_depth_in_thread\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Maximum number of levels in thread to display by default\"])},\n \"post_status_content_type\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Post status content type\"])},\n \"sensitive_by_default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mark posts as sensitive by default\"])},\n \"stop_gifs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pause animated images until you hover on them\"])},\n \"streaming\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Automatically show new posts when scrolled to the top\"])},\n \"auto_update\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show new posts automatically\"])},\n \"user_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Users\"])},\n \"useStreamingApi\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Receive posts and notifications real-time\"])},\n \"use_websockets\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Use websockets (Realtime updates)\"])},\n \"text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Text\"])},\n \"theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Theme\"])},\n \"theme_help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Use hex color codes (#rrggbb) to customize your color theme.\"])},\n \"theme_help_v2_1\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You can also override certain component's colors and opacity by toggling the checkbox, use \\\"Clear all\\\" button to clear all overrides.\"])},\n \"theme_help_v2_2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Icons underneath some entries are background/text contrast indicators, hover over for detailed info. Please keep in mind that when using transparency contrast indicators show the worst possible case.\"])},\n \"tooltipRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tooltips/alerts\"])},\n \"type_domains_to_mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Search domains to mute\"])},\n \"upload_a_photo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Upload a photo\"])},\n \"user_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User Settings\"])},\n \"values\": {\n \"false\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"no\"])},\n \"true\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"yes\"])}\n },\n \"virtual_scrolling\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Optimize timeline rendering\"])},\n \"use_at_icon\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Display \", \"@\", \" symbol as an icon instead of text\"])},\n \"mention_link_display\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Display mention links\"])},\n \"mention_link_display_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"always as short names (e.g. \", \"@\", \"foo)\"])},\n \"mention_link_display_full_for_remote\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"as full names only for remote users (e.g. \", \"@\", \"foo\", \"@\", \"example.org)\"])},\n \"mention_link_display_full\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"always as full names (e.g. \", \"@\", \"foo\", \"@\", \"example.org)\"])},\n \"mention_link_use_tooltip\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show user card when clicking mention links\"])},\n \"mention_link_show_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show user avatar beside the link\"])},\n \"mention_link_show_avatar_quick\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show user avatar next to mentions\"])},\n \"mention_link_fade_domain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fade domains (e.g. \", \"@\", \"example.org in \", \"@\", \"foo\", \"@\", \"example.org)\"])},\n \"mention_link_bolden_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Highlight mention of you when you are mentioned\"])},\n \"user_popover_avatar_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Popover avatar click action\"])},\n \"user_popover_avatar_action_zoom\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zoom the avatar\"])},\n \"user_popover_avatar_action_close\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Close the popover\"])},\n \"user_popover_avatar_action_open\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Open profile\"])},\n \"user_popover_avatar_overlay\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show user popover over user avatar\"])},\n \"fun\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fun\"])},\n \"greentext\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Meme arrows\"])},\n \"show_yous\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show (You)s\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notifications\"])},\n \"notification_setting_filters\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filters\"])},\n \"notification_setting_block_from_strangers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Block notifications from users who you do not follow\"])},\n \"notification_setting_privacy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Privacy\"])},\n \"notification_setting_hide_notification_contents\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide the sender and contents of push notifications\"])},\n \"notification_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"To stop receiving notifications from a specific user, use a mute.\"])},\n \"notification_blocks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Blocking a user stops all notifications as well as unsubscribes them.\"])},\n \"enable_web_push_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enable web push notifications\"])},\n \"more_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"More settings\"])},\n \"style\": {\n \"switcher\": {\n \"keep_color\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keep colors\"])},\n \"keep_shadows\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keep shadows\"])},\n \"keep_opacity\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keep opacity\"])},\n \"keep_roundness\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keep roundness\"])},\n \"keep_fonts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keep fonts\"])},\n \"save_load_hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"\\\"Keep\\\" options preserve currently set options when selecting or loading themes, it also stores said options when exporting a theme. When all checkboxes unset, exporting theme will save everything.\"])},\n \"reset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset\"])},\n \"clear_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Clear all\"])},\n \"clear_opacity\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Clear opacity\"])},\n \"load_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Load theme\"])},\n \"keep_as_is\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keep as is\"])},\n \"use_snapshot\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Old version\"])},\n \"use_source\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"New version\"])},\n \"help\": {\n \"upgraded_from_v2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"PleromaFE has been upgraded, theme could look a little bit different than you remember.\"])},\n \"v2_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File you imported was made for older FE. We try to maximize compatibility but there still could be inconsistencies.\"])},\n \"future_version_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File you imported was made in newer version of FE.\"])},\n \"older_version_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File you imported was made in older version of FE.\"])},\n \"snapshot_present\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Theme snapshot is loaded, so all values are overriden. You can load theme's actual data instead.\"])},\n \"snapshot_missing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No theme snapshot was in the file so it could look different than originally envisioned.\"])},\n \"fe_upgraded\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"PleromaFE's theme engine upgraded after version update.\"])},\n \"fe_downgraded\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"PleromaFE's version rolled back.\"])},\n \"migration_snapshot_ok\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Just to be safe, theme snapshot loaded. You can try loading theme data.\"])},\n \"migration_napshot_gone\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"For whatever reason snapshot was missing, some stuff could look different than you remember.\"])},\n \"snapshot_source_mismatch\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Versions conflict: most likely FE was rolled back and updated again, if you changed theme using older version of FE you most likely want to use old version, otherwise use new version.\"])}\n }\n },\n \"common\": {\n \"color\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Color\"])},\n \"opacity\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Opacity\"])},\n \"contrast\": {\n \"hint\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Contrast ratio is \", _interpolate(_named(\"ratio\")), \", it \", _interpolate(_named(\"level\")), \" \", _interpolate(_named(\"context\"))])},\n \"level\": {\n \"aa\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"meets Level AA guideline (minimal)\"])},\n \"aaa\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"meets Level AAA guideline (recommended)\"])},\n \"bad\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"doesn't meet any accessibility guidelines\"])}\n },\n \"context\": {\n \"18pt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"for large (18pt+) text\"])},\n \"text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"for text\"])}\n }\n }\n },\n \"common_colors\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Common\"])},\n \"main\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Common colors\"])},\n \"foreground_hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"See \\\"Advanced\\\" tab for more detailed control\"])},\n \"rgbo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Icons, accents, badges\"])}\n },\n \"advanced_colors\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Advanced\"])},\n \"alert\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Alert background\"])},\n \"alert_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error\"])},\n \"alert_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Warning\"])},\n \"alert_neutral\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Neutral\"])},\n \"post\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Posts/User bios\"])},\n \"badge\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Badge background\"])},\n \"popover\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tooltips, menus, popovers\"])},\n \"badge_notification\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Notification\"])},\n \"panel_header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Panel header\"])},\n \"top_bar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Top bar\"])},\n \"borders\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Borders\"])},\n \"buttons\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Buttons\"])},\n \"inputs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Input fields\"])},\n \"faint_text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Faded text\"])},\n \"underlay\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Underlay\"])},\n \"wallpaper\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wallpaper\"])},\n \"poll\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Poll graph\"])},\n \"icons\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Icons\"])},\n \"highlight\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Highlighted elements\"])},\n \"pressed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pressed\"])},\n \"selectedPost\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Selected post\"])},\n \"selectedMenu\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Selected menu item\"])},\n \"disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Disabled\"])},\n \"toggled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Toggled\"])},\n \"tabs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tabs\"])},\n \"chat\": {\n \"incoming\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Incoming\"])},\n \"outgoing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Outgoing\"])},\n \"border\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Border\"])}\n }\n },\n \"radii\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Roundness\"])}\n },\n \"shadows\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Shadow and lighting\"])},\n \"component\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Component\"])},\n \"override\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Override\"])},\n \"shadow_id\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Shadow #\", _interpolate(_named(\"value\"))])},\n \"blur\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Blur\"])},\n \"spread\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Spread\"])},\n \"inset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inset\"])},\n \"hintV3\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"For shadows you can also use the \", _interpolate(_list(0)), \" notation to use other color slot.\"])},\n \"filter_hint\": {\n \"always_drop_shadow\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Warning, this shadow always uses \", _interpolate(_list(0)), \" when browser supports it.\"])},\n \"drop_shadow_syntax\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" does not support \", _interpolate(_list(1)), \" parameter and \", _interpolate(_list(2)), \" keyword.\"])},\n \"avatar_inset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Please note that combining both inset and non-inset shadows on avatars might give unexpected results with transparent avatars.\"])},\n \"spread_zero\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Shadows with spread > 0 will appear as if it was set to zero\"])},\n \"inset_classic\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Inset shadows will be using \", _interpolate(_list(0))])}\n },\n \"components\": {\n \"panel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Panel\"])},\n \"panelHeader\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Panel header\"])},\n \"topBar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Top bar\"])},\n \"avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User avatar (in profile view)\"])},\n \"avatarStatus\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User avatar (in post display)\"])},\n \"popup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Popups and tooltips\"])},\n \"button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Button\"])},\n \"buttonHover\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Button (hover)\"])},\n \"buttonPressed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Button (pressed)\"])},\n \"buttonPressedHover\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Button (pressed+hover)\"])},\n \"input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Input field\"])}\n }\n },\n \"fonts\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fonts\"])},\n \"help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Select font to use for elements of UI. For \\\"custom\\\" you have to enter exact font name as it appears in system.\"])},\n \"components\": {\n \"interface\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Interface\"])},\n \"input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Input fields\"])},\n \"post\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Post text\"])},\n \"postCode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Monospaced text in a post (rich text)\"])}\n },\n \"family\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Font name\"])},\n \"size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Size (in px)\"])},\n \"weight\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weight (boldness)\"])},\n \"custom\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Custom\"])}\n },\n \"preview\": {\n \"header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Preview\"])},\n \"content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Content\"])},\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Example error\"])},\n \"button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Button\"])},\n \"text\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"A bunch of more \", _interpolate(_list(0)), \" and \", _interpolate(_list(1))])},\n \"mono\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"content\"])},\n \"input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Just landed in L.A.\"])},\n \"faint_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"helpful manual\"])},\n \"fine_print\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Read our \", _interpolate(_list(0)), \" to learn nothing useful!\"])},\n \"header_faint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This is fine\"])},\n \"checkbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"I have skimmed over terms and conditions\"])},\n \"link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"a nice lil' link\"])}\n }\n },\n \"version\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Version\"])},\n \"backend_version\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Backend version\"])},\n \"frontend_version\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Frontend version\"])}\n },\n \"commit_value\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Save\"])},\n \"commit_value_tooltip\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Value is not saved, press this button to commit your changes\"])},\n \"reset_value\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset\"])},\n \"reset_value_tooltip\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset draft\"])},\n \"hard_reset_value\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hard reset\"])},\n \"hard_reset_value_tooltip\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove setting from storage, forcing use of default value\"])}\n },\n \"admin_dash\": {\n \"window_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration\"])},\n \"wip_notice\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"This admin dashboard is experimental and WIP, \", _interpolate(_named(\"adminFeLink\")), \".\"])},\n \"old_ui_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"old admin UI available here\"])},\n \"reset_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset all\"])},\n \"commit_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Save all\"])},\n \"tabs\": {\n \"nodb\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No DB Config\"])},\n \"instance\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Instance\"])},\n \"limits\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Limits\"])},\n \"frontends\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Front-ends\"])}\n },\n \"nodb\": {\n \"heading\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Database config is disabled\"])},\n \"text\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"You need to change backend config files so that \", _interpolate(_named(\"property\")), \" is set to \", _interpolate(_named(\"value\")), \", see more in \", _interpolate(_named(\"documentation\")), \".\"])},\n \"documentation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"documentation\"])},\n \"text2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Most configuration options will be unavailable.\"])}\n },\n \"captcha\": {\n \"native\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Native\"])},\n \"kocaptcha\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"KoCaptcha\"])}\n },\n \"instance\": {\n \"instance\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Instance information\"])},\n \"registrations\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User sign-ups\"])},\n \"captcha_header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"CAPTCHA\"])},\n \"kocaptcha\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"KoCaptcha settings\"])},\n \"access\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Instance access\"])},\n \"restrict\": {\n \"header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Restrict access for anonymous visitors\"])},\n \"description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Detailed setting for allowing/disallowing access to certain aspects of API. By default (indeterminate state) it will disallow if instance is not public, ticked checkbox means disallow access even if instance is public, unticked means allow access even if instance is private. Please note that unexpected behavior might happen if some settings are set, i.e. if profile access is disabled posts will show without profile information.\"])},\n \"timelines\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Timelines access\"])},\n \"profiles\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User profiles access\"])},\n \"activities\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statues/activities access\"])}\n }\n },\n \"limits\": {\n \"arbitrary_limits\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Arbitrary limits\"])},\n \"posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Post limits\"])},\n \"uploads\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Attachments limits\"])},\n \"users\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User profile limits\"])},\n \"profile_fields\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profile fields limits\"])},\n \"user_uploads\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profile media limits\"])}\n },\n \"frontend\": {\n \"repository\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Repository link\"])},\n \"versions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Available versions\"])},\n \"build_url\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Build URL\"])},\n \"reinstall\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reinstall\"])},\n \"is_default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(Default)\"])},\n \"is_default_custom\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"(Default, version: \", _interpolate(_named(\"version\")), \")\"])},\n \"install\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Install\"])},\n \"install_version\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Install version \", _interpolate(_named(\"version\"))])},\n \"more_install_options\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"More install options\"])},\n \"more_default_options\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"More default setting options\"])},\n \"set_default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Set default\"])},\n \"set_default_version\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Set version \", _interpolate(_named(\"version\")), \" as default\"])},\n \"wip_notice\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Please note that this section is a WIP and lacks certain features as backend implementation of front-end management is incomplete.\"])},\n \"default_frontend\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Default front-end\"])},\n \"default_frontend_tip\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Default front-end will be shown to all users. Currently there's no way to for a user to select personal front-end. If you switch away from PleromaFE you'll most likely have to use old and buggy AdminFE to do instance configuration until we replace it.\"])},\n \"available_frontends\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Available for install\"])},\n \"failure_installing_frontend\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Failed to install frontend \", _interpolate(_named(\"version\")), \": \", _interpolate(_named(\"reason\"))])},\n \"success_installing_frontend\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Frontend \", _interpolate(_named(\"version\")), \" successfully installed\"])}\n },\n \"temp_overrides\": {\n \":pleroma\": {\n \":instance\": {\n \":public\": {\n \"label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Instance is public\"])},\n \"description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Disabling this will make all API accessible only for logged-in users, this will make Public and Federated timelines inaccessible to anonymous visitors.\"])}\n },\n \":limit_to_local_content\": {\n \"label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Limit search to local content\"])},\n \"description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Disables global network search for unauthenticated (default), all users or none\"])}\n },\n \":description_limit\": {\n \"label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Limit\"])},\n \"description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Character limit for attachment descriptions\"])}\n },\n \":background_image\": {\n \"label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Background image\"])},\n \"description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Background image (primarily used by PleromaFE)\"])}\n }\n }\n }\n }\n },\n \"time\": {\n \"unit\": {\n \"days\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" day\"]), _normalize([_interpolate(_list(0)), \" days\"])])},\n \"days_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"d\"])},\n \"hours\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" hour\"]), _normalize([_interpolate(_list(0)), \" hours\"])])},\n \"hours_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"h\"])},\n \"minutes\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" minute\"]), _normalize([_interpolate(_list(0)), \" minutes\"])])},\n \"minutes_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"min\"])},\n \"months\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" month\"]), _normalize([_interpolate(_list(0)), \" months\"])])},\n \"months_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"mo\"])},\n \"seconds\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" second\"]), _normalize([_interpolate(_list(0)), \" seconds\"])])},\n \"seconds_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"s\"])},\n \"weeks\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" week\"]), _normalize([_interpolate(_list(0)), \" weeks\"])])},\n \"weeks_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"w\"])},\n \"years\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_list(0)), \" year\"]), _normalize([_interpolate(_list(0)), \" years\"])])},\n \"years_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"y\"])}\n },\n \"in_future\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"in \", _interpolate(_list(0))])},\n \"in_past\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" ago\"])},\n \"now\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"just now\"])},\n \"now_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"now\"])}\n },\n \"timeline\": {\n \"collapse\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Collapse\"])},\n \"conversation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Conversation\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Error fetching timeline: \", _interpolate(_list(0))])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Load older statuses\"])},\n \"no_retweet_hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Post is marked as followers-only or direct and cannot be repeated\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"repeated\"])},\n \"show_new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show new\"])},\n \"reload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reload\"])},\n \"up_to_date\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Up-to-date\"])},\n \"no_more_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No more statuses\"])},\n \"no_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No statuses\"])},\n \"socket_reconnected\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Realtime connection established\"])},\n \"socket_broke\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Realtime connection lost: CloseEvent code \", _interpolate(_list(0))])},\n \"quick_view_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Quick view settings\"])},\n \"quick_filter_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Quick filter settings\"])}\n },\n \"status\": {\n \"favorites\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Favorites\"])},\n \"repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Repeats\"])},\n \"repeat_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do you really want to repeat this status?\"])},\n \"repeat_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Repeat confirmation\"])},\n \"repeat_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Repeat\"])},\n \"repeat_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do not repeat\"])},\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete status\"])},\n \"delete_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Error deleting status: \", _interpolate(_list(0))])},\n \"edit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit status\"])},\n \"edited_at\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"(last edited \", _interpolate(_named(\"time\")), \")\"])},\n \"pin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pin on profile\"])},\n \"unpin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unpin from profile\"])},\n \"pinned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pinned\"])},\n \"bookmark\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bookmark\"])},\n \"unbookmark\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unbookmark\"])},\n \"delete_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do you really want to delete this status?\"])},\n \"delete_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete confirmation\"])},\n \"delete_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete\"])},\n \"delete_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keep\"])},\n \"reply_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reply to\"])},\n \"mentions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mentions\"])},\n \"replies_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Replies:\"])},\n \"replies_list_with_others\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([\"Replies (+\", _interpolate(_named(\"numReplies\")), \" other):\"]), _normalize([\"Replies (+\", _interpolate(_named(\"numReplies\")), \" others):\"])])},\n \"mute_conversation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mute conversation\"])},\n \"unmute_conversation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unmute conversation\"])},\n \"status_unavailable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Status unavailable\"])},\n \"copy_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Copy link to status\"])},\n \"external_source\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"External source\"])},\n \"thread_muted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Thread muted\"])},\n \"thread_muted_and_words\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\", has words:\"])},\n \"show_full_subject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show full subject\"])},\n \"hide_full_subject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide full subject\"])},\n \"show_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show content\"])},\n \"hide_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide content\"])},\n \"status_deleted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This post was deleted\"])},\n \"nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NSFW\"])},\n \"expand\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Expand\"])},\n \"you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(You)\"])},\n \"plus_more\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"+\", _interpolate(_named(\"number\")), \" more\"])},\n \"many_attachments\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Post has \", _interpolate(_named(\"number\")), \" attachment(s)\"])},\n \"collapse_attachments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Collapse attachments\"])},\n \"show_all_attachments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show all attachments\"])},\n \"show_attachment_in_modal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show in media modal\"])},\n \"show_attachment_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Preview description (open attachment for full description)\"])},\n \"hide_attachment\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide attachment\"])},\n \"remove_attachment\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove attachment\"])},\n \"attachment_stop_flash\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Stop Flash player\"])},\n \"move_up\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Shift attachment left\"])},\n \"move_down\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Shift attachment right\"])},\n \"open_gallery\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Open gallery\"])},\n \"thread_hide\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide this thread\"])},\n \"thread_show\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show this thread\"])},\n \"thread_show_full\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([\"Show everything under this thread (\", _interpolate(_named(\"numStatus\")), \" status in total, max depth \", _interpolate(_named(\"depth\")), \")\"]), _normalize([\"Show everything under this thread (\", _interpolate(_named(\"numStatus\")), \" statuses in total, max depth \", _interpolate(_named(\"depth\")), \")\"])])},\n \"thread_show_full_with_icon\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"icon\")), \" \", _interpolate(_named(\"text\"))])},\n \"thread_follow\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([\"See the remaining part of this thread (\", _interpolate(_named(\"numStatus\")), \" status in total)\"]), _normalize([\"See the remaining part of this thread (\", _interpolate(_named(\"numStatus\")), \" statuses in total)\"])])},\n \"thread_follow_with_icon\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"icon\")), \" \", _interpolate(_named(\"text\"))])},\n \"ancestor_follow\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([\"See \", _interpolate(_named(\"numReplies\")), \" other reply under this status\"]), _normalize([\"See \", _interpolate(_named(\"numReplies\")), \" other replies under this status\"])])},\n \"ancestor_follow_with_icon\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"icon\")), \" \", _interpolate(_named(\"text\"))])},\n \"show_all_conversation_with_icon\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"icon\")), \" \", _interpolate(_named(\"text\"))])},\n \"show_all_conversation\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([\"Show full conversation (\", _interpolate(_named(\"numStatus\")), \" other status)\"]), _normalize([\"Show full conversation (\", _interpolate(_named(\"numStatus\")), \" other statuses)\"])])},\n \"show_only_conversation_under_this\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Only show replies to this status\"])},\n \"status_history\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Status history\"])},\n \"reaction_count_label\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"num\")), \" person reacted\"]), _normalize([_interpolate(_named(\"num\")), \" people reacted\"])])},\n \"hide_quote\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide the quoted status\"])},\n \"display_quote\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Display the quoted status\"])},\n \"invisible_quote\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Quoted status unavailable: \", _interpolate(_named(\"link\"))])},\n \"more_actions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"More actions on this status\"])}\n },\n \"user_card\": {\n \"approve\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Approve\"])},\n \"approve_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Approve confirmation\"])},\n \"approve_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Approve\"])},\n \"approve_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do not approve\"])},\n \"approve_confirm\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Do you want to approve \", _interpolate(_named(\"user\")), \"'s follow request?\"])},\n \"block\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Block\"])},\n \"blocked\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Blocked!\"])},\n \"block_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Block confirmation\"])},\n \"block_confirm\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Do you really want to block \", _interpolate(_named(\"user\")), \"?\"])},\n \"block_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Block\"])},\n \"block_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do not block\"])},\n \"deactivated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deactivated\"])},\n \"deny\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deny\"])},\n \"deny_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deny confirmation\"])},\n \"deny_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deny\"])},\n \"deny_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do not deny\"])},\n \"deny_confirm\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Do you want to deny \", _interpolate(_named(\"user\")), \"'s follow request?\"])},\n \"edit_profile\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit profile\"])},\n \"favorites\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Favorites\"])},\n \"follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Follow\"])},\n \"follow_cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cancel request\"])},\n \"follow_sent\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Request sent!\"])},\n \"follow_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Requesting…\"])},\n \"follow_unfollow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unfollow\"])},\n \"unfollow_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unfollow confirmation\"])},\n \"unfollow_confirm\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Do you really want to unfollow \", _interpolate(_named(\"user\")), \"?\"])},\n \"unfollow_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unfollow\"])},\n \"unfollow_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do not unfollow\"])},\n \"followees\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Following\"])},\n \"followers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Followers\"])},\n \"following\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Following!\"])},\n \"follows_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Follows you!\"])},\n \"hidden\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hidden\"])},\n \"its_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"It's you!\"])},\n \"media\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Media\"])},\n \"mention\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mention\"])},\n \"message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Message\"])},\n \"mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mute\"])},\n \"muted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Muted\"])},\n \"mute_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mute confirmation\"])},\n \"mute_confirm\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Do you really want to mute \", _interpolate(_named(\"user\")), \"?\"])},\n \"mute_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mute\"])},\n \"mute_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do not mute\"])},\n \"mute_duration_prompt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mute this user for (0 for indefinite time):\"])},\n \"per_day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"per day\"])},\n \"remote_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remote follow\"])},\n \"remove_follower\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove follower\"])},\n \"remove_follower_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove follower confirmation\"])},\n \"remove_follower_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove\"])},\n \"remove_follower_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keep\"])},\n \"remove_follower_confirm\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Do you really want to remove \", _interpolate(_named(\"user\")), \" from your followers?\"])},\n \"report\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Report\"])},\n \"statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statuses\"])},\n \"subscribe\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Subscribe\"])},\n \"unsubscribe\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unsubscribe\"])},\n \"unblock\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unblock\"])},\n \"unblock_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unblocking…\"])},\n \"block_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Blocking…\"])},\n \"unmute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unmute\"])},\n \"unmute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unmuting…\"])},\n \"mute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Muting…\"])},\n \"hide_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hide repeats\"])},\n \"show_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Show repeats\"])},\n \"bot\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bot\"])},\n \"birthday\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Born \", _interpolate(_named(\"birthday\"))])},\n \"admin_menu\": {\n \"moderation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Moderation\"])},\n \"grant_admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Grant Admin\"])},\n \"revoke_admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revoke Admin\"])},\n \"grant_moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Grant Moderator\"])},\n \"revoke_moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revoke Moderator\"])},\n \"activate_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activate account\"])},\n \"deactivate_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deactivate account\"])},\n \"delete_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete account\"])},\n \"force_nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mark all posts as NSFW\"])},\n \"strip_media\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove media from posts\"])},\n \"force_unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Force posts to be unlisted\"])},\n \"sandbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Force posts to be followers-only\"])},\n \"disable_remote_subscription\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Disallow following user from remote instances\"])},\n \"disable_any_subscription\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Disallow following user at all\"])},\n \"quarantine\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Disallow user posts from federating\"])},\n \"delete_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete user\"])},\n \"delete_user_data_and_deactivate_confirmation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This will permanently delete the data from this account and deactivate it. Are you absolutely sure?\"])}\n },\n \"highlight\": {\n \"disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No highlight\"])},\n \"solid\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Solid bg\"])},\n \"striped\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Striped bg\"])},\n \"side\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Side stripe\"])}\n },\n \"note\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Note\"])},\n \"note_blank\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(None)\"])},\n \"edit_note\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit note\"])},\n \"edit_note_apply\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Apply\"])},\n \"edit_note_cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cancel\"])}\n },\n \"user_profile\": {\n \"timeline_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User timeline\"])},\n \"profile_does_not_exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sorry, this profile does not exist.\"])},\n \"profile_loading_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sorry, there was an error loading this profile.\"])}\n },\n \"user_reporting\": {\n \"title\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Reporting \", _interpolate(_list(0))])},\n \"add_comment_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The report will be sent to your instance moderators. You can provide an explanation of why you are reporting this account below:\"])},\n \"additional_comments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Additional comments\"])},\n \"forward_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The account is from another server. Send a copy of the report there as well?\"])},\n \"forward_to\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Forward to \", _interpolate(_list(0))])},\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Submit\"])},\n \"generic_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"An error occurred while processing your request.\"])}\n },\n \"who_to_follow\": {\n \"more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"More\"])},\n \"who_to_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Who to follow\"])}\n },\n \"tool_tip\": {\n \"media_upload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Upload media\"])},\n \"repeat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Repeat\"])},\n \"reply\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reply\"])},\n \"favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Favorite\"])},\n \"add_reaction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add Reaction\"])},\n \"user_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User Settings\"])},\n \"accept_follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Accept follow request\"])},\n \"reject_follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reject follow request\"])},\n \"bookmark\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bookmark\"])},\n \"toggle_expand\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Expand or collapse notification to show post in full\"])},\n \"toggle_mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Expand or collapse notification to reveal muted content\"])},\n \"autocomplete_available\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"number\")), \" result is available. Use up and down keys to navigate through them.\"]), _normalize([_interpolate(_named(\"number\")), \" results are available. Use up and down keys to navigate through them.\"])])}\n },\n \"upload\": {\n \"error\": {\n \"base\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Upload failed.\"])},\n \"message\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Upload failed: \", _interpolate(_list(0))])},\n \"file_too_big\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"File too big [\", _interpolate(_named(\"filesize\")), _interpolate(_named(\"filesizeunit\")), \" / \", _interpolate(_named(\"allowedsize\")), _interpolate(_named(\"allowedsizeunit\")), \"]\"])},\n \"default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Try again later\"])}\n },\n \"file_size_units\": {\n \"B\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"B\"])},\n \"KiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"KiB\"])},\n \"MiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"MiB\"])},\n \"GiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"GiB\"])},\n \"TiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"TiB\"])}\n }\n },\n \"search\": {\n \"people\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"People\"])},\n \"hashtags\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hashtags\"])},\n \"person_talking\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"count\")), \" person talking\"])},\n \"people_talking\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"count\")), \" people talking\"])},\n \"no_results\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No results\"])},\n \"no_more_results\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No more results\"])},\n \"load_more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Load more results\"])}\n },\n \"password_reset\": {\n \"forgot_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forgot password?\"])},\n \"password_reset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password reset\"])},\n \"instruction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enter your email address or username. We will send you a link to reset your password.\"])},\n \"placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Your email or username\"])},\n \"check_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Check your email for a link to reset your password.\"])},\n \"return_home\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Return to the home page\"])},\n \"too_many_requests\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You have reached the limit of attempts, try again later.\"])},\n \"password_reset_disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password reset is disabled. Please contact your instance administrator.\"])},\n \"password_reset_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You must reset your password to log in.\"])},\n \"password_reset_required_but_mailer_is_disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You must reset your password, but password reset is disabled. Please contact your instance administrator.\"])}\n },\n \"chats\": {\n \"you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You:\"])},\n \"message_user\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Message \", _interpolate(_named(\"nickname\"))])},\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete\"])},\n \"chats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Chats\"])},\n \"new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"New Chat\"])},\n \"empty_message_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cannot post empty message\"])},\n \"more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"More\"])},\n \"delete_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Do you really want to delete this message?\"])},\n \"error_loading_chat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Something went wrong when loading the chat.\"])},\n \"error_sending_message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Something went wrong when sending the message.\"])},\n \"empty_chat_list_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You don't have any chats yet. Start a new chat!\"])}\n },\n \"lists\": {\n \"lists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lists\"])},\n \"new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"New List\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"List title\"])},\n \"search\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Search users\"])},\n \"create\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Create\"])},\n \"save\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Save changes\"])},\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete list\"])},\n \"following_only\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Limit to Following\"])},\n \"manage_lists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Manage lists\"])},\n \"manage_members\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Manage list members\"])},\n \"add_members\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Search for more users\"])},\n \"remove_from_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove from list\"])},\n \"add_to_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add to list\"])},\n \"is_in_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Already in list\"])},\n \"editing_list\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Editing list \", _interpolate(_named(\"listTitle\"))])},\n \"creating_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Creating new list\"])},\n \"update_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Save Title\"])},\n \"really_delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Really delete list?\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Error manipulating lists: \", _interpolate(_list(0))])}\n },\n \"file_type\": {\n \"audio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Audio\"])},\n \"video\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Video\"])},\n \"image\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Image\"])},\n \"file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File\"])}\n },\n \"display_date\": {\n \"today\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Today\"])}\n },\n \"update\": {\n \"big_update_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Please bear with us\"])},\n \"big_update_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"We haven't had a release in a while, so things might look and feel different than what you're used to.\"])},\n \"update_bugs\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Please report any issues and bugs on \", _interpolate(_named(\"pleromaGitlab\")), \", as we have changed a lot, and although we test thoroughly and use development versions ourselves, we may have missed some things. We welcome your feedback and suggestions on issues you might encounter, or how to improve Pleroma and Pleroma-FE.\"])},\n \"update_bugs_gitlab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pleroma GitLab\"])},\n \"update_changelog\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"For more details on what's changed, see \", _interpolate(_named(\"theFullChangelog\")), \".\"])},\n \"update_changelog_here\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"the full changelog\"])},\n \"art_by\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Art by \", _interpolate(_named(\"linkToArtist\"))])}\n },\n \"unicode_domain_indicator\": {\n \"tooltip\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This domain contains non-ascii characters.\"])}\n }\n}","var map = {\n\t\"./af.json\": [\n\t\t44919,\n\t\t6355\n\t],\n\t\"./am.json\": [\n\t\t53139,\n\t\t5119\n\t],\n\t\"./ar.json\": [\n\t\t44557,\n\t\t9873\n\t],\n\t\"./ar_SA.json\": [\n\t\t23450,\n\t\t7360\n\t],\n\t\"./as.json\": [\n\t\t44359,\n\t\t3377\n\t],\n\t\"./ast.json\": [\n\t\t13764,\n\t\t7569\n\t],\n\t\"./az.json\": [\n\t\t86459,\n\t\t2342\n\t],\n\t\"./be.json\": [\n\t\t50866,\n\t\t7304\n\t],\n\t\"./bg.json\": [\n\t\t26219,\n\t\t3974\n\t],\n\t\"./bn.json\": [\n\t\t69178,\n\t\t9064\n\t],\n\t\"./br.json\": [\n\t\t67871,\n\t\t6148\n\t],\n\t\"./bs.json\": [\n\t\t75340,\n\t\t8134\n\t],\n\t\"./ca.json\": [\n\t\t86914,\n\t\t4691\n\t],\n\t\"./ccp.json\": [\n\t\t73872,\n\t\t1162\n\t],\n\t\"./ceb.json\": [\n\t\t64478,\n\t\t9790\n\t],\n\t\"./chr.json\": [\n\t\t61017,\n\t\t6869\n\t],\n\t\"./ckb.json\": [\n\t\t56412,\n\t\t2656\n\t],\n\t\"./cs.json\": [\n\t\t8888,\n\t\t4710\n\t],\n\t\"./cy.json\": [\n\t\t25392,\n\t\t6272\n\t],\n\t\"./da.json\": [\n\t\t35042,\n\t\t1596\n\t],\n\t\"./de.json\": [\n\t\t35169,\n\t\t6226\n\t],\n\t\"./de_CH.json\": [\n\t\t28246,\n\t\t7164\n\t],\n\t\"./doi.json\": [\n\t\t59784,\n\t\t4209\n\t],\n\t\"./dsb.json\": [\n\t\t60634,\n\t\t1790\n\t],\n\t\"./el.json\": [\n\t\t98338,\n\t\t7879\n\t],\n\t\"./en.json\": [\n\t\t74990,\n\t\t5728\n\t],\n\t\"./en_001.json\": [\n\t\t62736,\n\t\t577\n\t],\n\t\"./en_AU.json\": [\n\t\t2597,\n\t\t9360\n\t],\n\t\"./en_CA.json\": [\n\t\t1516,\n\t\t4879\n\t],\n\t\"./en_GB.json\": [\n\t\t84830,\n\t\t50\n\t],\n\t\"./en_IN.json\": [\n\t\t71809,\n\t\t8988\n\t],\n\t\"./es.json\": [\n\t\t61148,\n\t\t6831\n\t],\n\t\"./es_419.json\": [\n\t\t25696,\n\t\t8873\n\t],\n\t\"./es_MX.json\": [\n\t\t11915,\n\t\t2699\n\t],\n\t\"./es_US.json\": [\n\t\t87826,\n\t\t3313\n\t],\n\t\"./et.json\": [\n\t\t66641,\n\t\t3276\n\t],\n\t\"./eu.json\": [\n\t\t6541,\n\t\t2992\n\t],\n\t\"./fa.json\": [\n\t\t43305,\n\t\t5521\n\t],\n\t\"./fi.json\": [\n\t\t40752,\n\t\t420\n\t],\n\t\"./fil.json\": [\n\t\t26843,\n\t\t1236\n\t],\n\t\"./fo.json\": [\n\t\t43032,\n\t\t8995\n\t],\n\t\"./fr.json\": [\n\t\t80898,\n\t\t2223\n\t],\n\t\"./fr_CA.json\": [\n\t\t54515,\n\t\t1821\n\t],\n\t\"./ga.json\": [\n\t\t66572,\n\t\t4571\n\t],\n\t\"./gd.json\": [\n\t\t9185,\n\t\t6116\n\t],\n\t\"./gl.json\": [\n\t\t23840,\n\t\t6126\n\t],\n\t\"./gu.json\": [\n\t\t85811,\n\t\t7261\n\t],\n\t\"./ha.json\": [\n\t\t91566,\n\t\t227\n\t],\n\t\"./ha_NE.json\": [\n\t\t3400,\n\t\t5304\n\t],\n\t\"./he.json\": [\n\t\t26260,\n\t\t5548\n\t],\n\t\"./hi.json\": [\n\t\t18136,\n\t\t5968\n\t],\n\t\"./hi_Latn.json\": [\n\t\t95638,\n\t\t3056\n\t],\n\t\"./hr.json\": [\n\t\t77435,\n\t\t2861\n\t],\n\t\"./hsb.json\": [\n\t\t15758,\n\t\t8015\n\t],\n\t\"./hu.json\": [\n\t\t2727,\n\t\t4902\n\t],\n\t\"./hy.json\": [\n\t\t8397,\n\t\t6344\n\t],\n\t\"./ia.json\": [\n\t\t49796,\n\t\t6936\n\t],\n\t\"./id.json\": [\n\t\t56635,\n\t\t9465\n\t],\n\t\"./ig.json\": [\n\t\t26406,\n\t\t9895\n\t],\n\t\"./is.json\": [\n\t\t51391,\n\t\t7300\n\t],\n\t\"./it.json\": [\n\t\t54879,\n\t\t8970\n\t],\n\t\"./ja.json\": [\n\t\t2971,\n\t\t1290\n\t],\n\t\"./jv.json\": [\n\t\t18644,\n\t\t2479\n\t],\n\t\"./ka.json\": [\n\t\t71255,\n\t\t6068\n\t],\n\t\"./kab.json\": [\n\t\t92892,\n\t\t9780\n\t],\n\t\"./kk.json\": [\n\t\t46419,\n\t\t2873\n\t],\n\t\"./kl.json\": [\n\t\t2227,\n\t\t2397\n\t],\n\t\"./km.json\": [\n\t\t65729,\n\t\t1404\n\t],\n\t\"./kn.json\": [\n\t\t65611,\n\t\t278\n\t],\n\t\"./ko.json\": [\n\t\t67080,\n\t\t2966\n\t],\n\t\"./kok.json\": [\n\t\t47209,\n\t\t2599\n\t],\n\t\"./ku.json\": [\n\t\t18738,\n\t\t2883\n\t],\n\t\"./ky.json\": [\n\t\t89690,\n\t\t4785\n\t],\n\t\"./lb.json\": [\n\t\t3929,\n\t\t4770\n\t],\n\t\"./lo.json\": [\n\t\t19778,\n\t\t7464\n\t],\n\t\"./lt.json\": [\n\t\t41683,\n\t\t7169\n\t],\n\t\"./lv.json\": [\n\t\t54873,\n\t\t8898\n\t],\n\t\"./mai.json\": [\n\t\t11781,\n\t\t1613\n\t],\n\t\"./mi.json\": [\n\t\t11569,\n\t\t6701\n\t],\n\t\"./mk.json\": [\n\t\t67589,\n\t\t9921\n\t],\n\t\"./ml.json\": [\n\t\t24415,\n\t\t2685\n\t],\n\t\"./mn.json\": [\n\t\t50512,\n\t\t4718\n\t],\n\t\"./mni.json\": [\n\t\t81597,\n\t\t5401\n\t],\n\t\"./mr.json\": [\n\t\t97747,\n\t\t1911\n\t],\n\t\"./ms.json\": [\n\t\t81588,\n\t\t9924\n\t],\n\t\"./mt.json\": [\n\t\t25081,\n\t\t9399\n\t],\n\t\"./my.json\": [\n\t\t8608,\n\t\t6790\n\t],\n\t\"./ne.json\": [\n\t\t8572,\n\t\t9377\n\t],\n\t\"./nl.json\": [\n\t\t52355,\n\t\t6773\n\t],\n\t\"./nn.json\": [\n\t\t52874,\n\t\t9414\n\t],\n\t\"./no.json\": [\n\t\t48005,\n\t\t9979\n\t],\n\t\"./or.json\": [\n\t\t26728,\n\t\t1012\n\t],\n\t\"./pa.json\": [\n\t\t15042,\n\t\t6946\n\t],\n\t\"./pa_Arab.json\": [\n\t\t43578,\n\t\t9994\n\t],\n\t\"./pcm.json\": [\n\t\t91163,\n\t\t5104\n\t],\n\t\"./pl.json\": [\n\t\t61335,\n\t\t1095\n\t],\n\t\"./ps.json\": [\n\t\t51828,\n\t\t678\n\t],\n\t\"./pt.json\": [\n\t\t38543,\n\t\t5041\n\t],\n\t\"./pt_PT.json\": [\n\t\t8063,\n\t\t1546\n\t],\n\t\"./qu.json\": [\n\t\t15821,\n\t\t8031\n\t],\n\t\"./rm.json\": [\n\t\t5014,\n\t\t5887\n\t],\n\t\"./ro.json\": [\n\t\t34064,\n\t\t9864\n\t],\n\t\"./ru.json\": [\n\t\t95222,\n\t\t8395\n\t],\n\t\"./rw.json\": [\n\t\t12710,\n\t\t346\n\t],\n\t\"./sa.json\": [\n\t\t69343,\n\t\t2243\n\t],\n\t\"./sat.json\": [\n\t\t51243,\n\t\t7855\n\t],\n\t\"./sc.json\": [\n\t\t1319,\n\t\t2874\n\t],\n\t\"./sd.json\": [\n\t\t67728,\n\t\t6826\n\t],\n\t\"./si.json\": [\n\t\t5044,\n\t\t4354\n\t],\n\t\"./sk.json\": [\n\t\t45626,\n\t\t2350\n\t],\n\t\"./sl.json\": [\n\t\t76091,\n\t\t1553\n\t],\n\t\"./so.json\": [\n\t\t93761,\n\t\t625\n\t],\n\t\"./sq.json\": [\n\t\t1230,\n\t\t4368\n\t],\n\t\"./sr.json\": [\n\t\t60445,\n\t\t3887\n\t],\n\t\"./sr_Cyrl_BA.json\": [\n\t\t38940,\n\t\t6060\n\t],\n\t\"./sr_Latn.json\": [\n\t\t21650,\n\t\t8681\n\t],\n\t\"./sr_Latn_BA.json\": [\n\t\t78328,\n\t\t5115\n\t],\n\t\"./su.json\": [\n\t\t54395,\n\t\t1959\n\t],\n\t\"./sv.json\": [\n\t\t3418,\n\t\t3241\n\t],\n\t\"./sw.json\": [\n\t\t11958,\n\t\t7585\n\t],\n\t\"./sw_KE.json\": [\n\t\t35001,\n\t\t3994\n\t],\n\t\"./ta.json\": [\n\t\t92930,\n\t\t7897\n\t],\n\t\"./te.json\": [\n\t\t8748,\n\t\t4786\n\t],\n\t\"./tg.json\": [\n\t\t20999,\n\t\t313\n\t],\n\t\"./th.json\": [\n\t\t23900,\n\t\t3951\n\t],\n\t\"./ti.json\": [\n\t\t368,\n\t\t3568\n\t],\n\t\"./tk.json\": [\n\t\t88770,\n\t\t1780\n\t],\n\t\"./to.json\": [\n\t\t95781,\n\t\t1584\n\t],\n\t\"./tr.json\": [\n\t\t92619,\n\t\t9978\n\t],\n\t\"./tt.json\": [\n\t\t87782,\n\t\t2569\n\t],\n\t\"./ug.json\": [\n\t\t19005,\n\t\t9757\n\t],\n\t\"./uk.json\": [\n\t\t82057,\n\t\t9871\n\t],\n\t\"./ur.json\": [\n\t\t13889,\n\t\t6797\n\t],\n\t\"./uz.json\": [\n\t\t45108,\n\t\t1056\n\t],\n\t\"./vi.json\": [\n\t\t97099,\n\t\t5224\n\t],\n\t\"./wo.json\": [\n\t\t9923,\n\t\t7303\n\t],\n\t\"./xh.json\": [\n\t\t29064,\n\t\t786\n\t],\n\t\"./yo.json\": [\n\t\t11971,\n\t\t8732\n\t],\n\t\"./yo_BJ.json\": [\n\t\t64533,\n\t\t9926\n\t],\n\t\"./yue.json\": [\n\t\t40648,\n\t\t1452\n\t],\n\t\"./yue_Hans.json\": [\n\t\t24800,\n\t\t4424\n\t],\n\t\"./zh.json\": [\n\t\t34626,\n\t\t457\n\t],\n\t\"./zh_Hant.json\": [\n\t\t82560,\n\t\t2767\n\t],\n\t\"./zh_Hant_HK.json\": [\n\t\t47677,\n\t\t1044\n\t],\n\t\"./zu.json\": [\n\t\t73784,\n\t\t9319\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(() => {\n\t\treturn __webpack_require__.t(id, 3 | 16);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 1395;\nmodule.exports = webpackAsyncContext;","/**\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 * (getters.standardEmojiList + state.instance.customEmoji)\n * data.users - optional, an array of all known users\n * updateUsersList - optional, a function to search and append to users\n *\n * Depending on data present one or both (or none) can be present, so if field\n * doesn't support user linking you can just provide only emoji.\n */\n\nexport default data => {\n const emojiCurry = suggestEmoji(data.emoji)\n const usersCurry = data.store && suggestUsers(data.store)\n return (input, nameKeywordLocalizer) => {\n const firstChar = input[0]\n if (firstChar === ':' && data.emoji) {\n return emojiCurry(input, nameKeywordLocalizer)\n }\n if (firstChar === '@' && usersCurry) {\n return usersCurry(input)\n }\n return []\n }\n}\n\nexport const suggestEmoji = emojis => (input, nameKeywordLocalizer) => {\n const noPrefix = input.toLowerCase().substr(1)\n return emojis\n .map(emoji => ({ ...emoji, ...nameKeywordLocalizer(emoji) }))\n .filter((emoji) => (emoji.names.concat(emoji.keywords)).filter(kw => kw.toLowerCase().match(noPrefix)).length)\n .map(k => {\n let score = 0\n\n // An exact match always wins\n score += Math.max(...k.names.map(name => name.toLowerCase() === noPrefix ? 200 : 0), 0)\n\n // Prioritize custom emoji a lot\n score += k.imageUrl ? 100 : 0\n\n // Prioritize prefix matches somewhat\n score += Math.max(...k.names.map(kw => kw.toLowerCase().startsWith(noPrefix) ? 10 : 0), 0)\n\n // Sort by length\n score -= k.displayText.length\n\n k.score = score\n return k\n })\n .sort((a, b) => {\n // Break ties alphabetically\n const alphabetically = a.displayText > b.displayText ? 0.5 : -0.5\n\n return b.score - a.score + alphabetically\n })\n}\n\nexport const suggestUsers = ({ dispatch, state }) => {\n // Keep some persistent values in closure, most importantly for the\n // custom debounce to work. Lodash debounce does not return a promise.\n let suggestions = []\n let previousQuery = ''\n let timeout = null\n let cancelUserSearch = null\n\n const userSearch = (query) => dispatch('searchUsers', { query })\n const debounceUserSearch = (query) => {\n cancelUserSearch && cancelUserSearch()\n return new Promise((resolve, reject) => {\n timeout = setTimeout(() => {\n userSearch(query).then(resolve).catch(reject)\n }, 300)\n cancelUserSearch = () => {\n clearTimeout(timeout)\n resolve([])\n }\n })\n }\n\n return async input => {\n const noPrefix = input.toLowerCase().substr(1)\n if (previousQuery === noPrefix) return suggestions\n\n suggestions = []\n previousQuery = noPrefix\n // Fetch more and wait, don't fetch if there's the 2nd @ because\n // the backend user search can't deal with it.\n // Reference semantics make it so that we get the updated data after\n // the await.\n if (!noPrefix.includes('@')) {\n await debounceUserSearch(noPrefix)\n }\n\n const newSuggestions = state.users.users.filter(\n user =>\n user.screen_name && user.name && (\n user.screen_name.toLowerCase().startsWith(noPrefix) ||\n user.name.toLowerCase().startsWith(noPrefix))\n ).slice(0, 20).sort((a, b) => {\n let aScore = 0\n let bScore = 0\n\n // Matches on screen name (i.e. user@instance) makes a priority\n aScore += a.screen_name.toLowerCase().startsWith(noPrefix) ? 2 : 0\n bScore += b.screen_name.toLowerCase().startsWith(noPrefix) ? 2 : 0\n\n // Matches on name takes second priority\n aScore += a.name.toLowerCase().startsWith(noPrefix) ? 1 : 0\n bScore += b.name.toLowerCase().startsWith(noPrefix) ? 1 : 0\n\n const diff = (bScore - aScore) * 10\n\n // Then sort alphabetically\n const nameAlphabetically = a.name > b.name ? 1 : -1\n const screenNameAlphabetically = a.screen_name > b.screen_name ? 1 : -1\n\n return diff + nameAlphabetically + screenNameAlphabetically\n /* eslint-disable camelcase */\n }).map((user) => ({\n user,\n displayText: user.screen_name_ui,\n detailText: user.name,\n imageUrl: user.profile_image_url_original,\n replacement: '@' + user.screen_name + ' '\n }))\n /* eslint-enable camelcase */\n\n suggestions = newSuggestions || []\n return suggestions\n }\n}\n","/**\n * Extract tag name from tag opener/closer.\n *\n * @param {String} tag - tag string, i.e. '<a href=\"...\">'\n * @return {String} - tagname, i.e. \"div\"\n */\nexport const getTagName = (tag) => {\n const result = /(?:<\\/(\\w+)>|<(\\w+)\\s?.*?\\/?>)/gis.exec(tag)\n return result && (result[1] || result[2])\n}\n\n/**\n * Extract attributes from tag opener.\n *\n * @param {String} tag - tag string, i.e. '<a href=\"...\">'\n * @return {Object} - map of attributes key = attribute name, value = attribute value\n * attributes without values represented as boolean true\n */\nexport const getAttrs = (tag, filter) => {\n const innertag = tag\n .substring(1, tag.length - 1)\n .replace(new RegExp('^' + getTagName(tag)), '')\n .replace(/\\/?$/, '')\n .trim()\n const attrs = Array.from(innertag.matchAll(/([a-z]+[a-z0-9-]*)(?:=(\"[^\"]+?\"|'[^']+?'))?/gi))\n .map(([trash, key, value]) => [key, value])\n .map(([k, v]) => {\n if (!v) return [k, true]\n return [k, v.substring(1, v.length - 1)]\n })\n const defaultFilter = ([k, v]) => {\n const attrKey = k.toLowerCase()\n if (attrKey === 'style') return false\n if (attrKey === 'class') {\n return v === 'greentext' || v === 'cyantext'\n }\n return true\n }\n return Object.fromEntries(attrs.filter(filter || defaultFilter))\n}\n\n/**\n * Finds shortcodes in text\n *\n * @param {String} text - original text to find emojis in\n * @param {{ url: String, shortcode: Sring }[]} emoji - list of shortcodes to find\n * @param {Function} processor - function to call on each encountered emoji,\n * function is passed single object containing matching emoji ({ url, shortcode })\n * return value will be inserted into resulting array instead of :shortcode:\n * @return {Array} resulting array with non-emoji parts of text and whatever {processor}\n * returned for emoji\n */\nexport const processTextForEmoji = (text, emojis, processor) => {\n const buffer = []\n let textBuffer = ''\n for (let i = 0; i < text.length; i++) {\n const char = text[i]\n if (char === ':') {\n const next = text.slice(i + 1)\n let found = false\n for (const emoji of emojis) {\n if (next.slice(0, emoji.shortcode.length + 1) === (emoji.shortcode + ':')) {\n found = emoji\n break\n }\n }\n if (found) {\n buffer.push(textBuffer)\n textBuffer = ''\n buffer.push(processor(found))\n i += found.shortcode.length + 1\n } else {\n textBuffer += char\n }\n } else {\n textBuffer += char\n }\n }\n if (textBuffer) buffer.push(textBuffer)\n return buffer\n}\n","import { getTagName } from './utility.service.js'\n\n/**\n * This is a tiny purpose-built HTML parser/processor. This basically detects\n * any type of visual newline and converts entire HTML into a array structure.\n *\n * Text nodes are represented as object with single property - text - containing\n * the visual line. Intended usage is to process the array with .map() in which\n * map function returns a string and resulting array can be converted back to html\n * with a .join('').\n *\n * Generally this isn't very useful except for when you really need to either\n * modify visual lines (greentext i.e. simple quoting) or do something with\n * first/last line.\n *\n * known issue: doesn't handle CDATA so nested CDATA might not work well\n *\n * @param {Object} input - input data\n * @return {(string|{ text: string })[]} processed html in form of a list.\n */\nexport const convertHtmlToLines = (html = '') => {\n // Elements that are implicitly self-closing\n // https://developer.mozilla.org/en-US/docs/Glossary/empty_element\n const emptyElements = new Set([\n 'area', 'base', 'br', 'col', 'embed', 'hr', 'img', 'input',\n 'keygen', 'link', 'meta', 'param', 'source', 'track', 'wbr'\n ])\n // Block-level element (they make a visual line)\n // https://developer.mozilla.org/en-US/docs/Web/HTML/Block-level_elements\n const blockElements = new Set([\n 'address', 'article', 'aside', 'blockquote', 'details', 'dialog', 'dd',\n 'div', 'dl', 'dt', 'fieldset', 'figcaption', 'figure', 'footer', 'form',\n 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'hgroup', 'hr', 'li', 'main',\n 'nav', 'ol', 'p', 'pre', 'section', 'table', 'ul'\n ])\n // br is very weird in a way that it's technically not block-level, it's\n // essentially converted to a \\n (or \\r\\n). There's also wbr but it doesn't\n // guarantee linebreak, only suggest it.\n const linebreakElements = new Set(['br'])\n\n const visualLineElements = new Set([\n ...blockElements.values(),\n ...linebreakElements.values()\n ])\n\n // All block-level elements that aren't empty elements, i.e. not <hr>\n const nonEmptyElements = new Set(visualLineElements)\n // Difference\n for (const elem of emptyElements) {\n nonEmptyElements.delete(elem)\n }\n\n // All elements that we are recognizing\n const allElements = new Set([\n ...nonEmptyElements.values(),\n ...emptyElements.values()\n ])\n\n const 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 const flush = () => { // Processes current line buffer, adds it to output buffer and clears line buffer\n if (textBuffer.trim().length > 0) {\n buffer.push({ level: [...level], text: textBuffer })\n } else {\n buffer.push(textBuffer)\n }\n textBuffer = ''\n }\n\n const handleBr = (tag) => { // handles single newlines/linebreaks/selfclosing\n flush()\n buffer.push(tag)\n }\n\n const handleOpen = (tag) => { // handles opening tags\n flush()\n buffer.push(tag)\n level.unshift(getTagName(tag))\n }\n\n const handleClose = (tag) => { // handles closing tags\n if (level[0] === getTagName(tag)) {\n flush()\n buffer.push(tag)\n level.shift()\n } else { // Broken case\n textBuffer += tag\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 (allElements.has(tagName)) {\n if (linebreakElements.has(tagName)) {\n handleBr(tagFull)\n } else if (nonEmptyElements.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 } else {\n textBuffer += tagFull\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","<template>\n <span\n class=\"HashtagLink\"\n >\n <!-- eslint-disable vue/no-v-html -->\n <a\n :href=\"url\"\n class=\"original\"\n target=\"_blank\"\n @click.prevent=\"onClick\"\n v-html=\"content\"\n />\n <!-- eslint-enable vue/no-v-html -->\n </span>\n</template>\n\n<script src=\"./hashtag_link.js\" />\n\n<style lang=\"scss\" src=\"./hashtag_link.scss\" />\n","import { extractTagFromUrl } from 'src/services/matcher/matcher.service.js'\n\nconst HashtagLink = {\n name: 'HashtagLink',\n props: {\n url: {\n required: true,\n type: String\n },\n content: {\n required: true,\n type: String\n },\n tag: {\n required: false,\n type: String,\n default: ''\n }\n },\n methods: {\n onClick () {\n const tag = this.tag || extractTagFromUrl(this.url)\n if (tag) {\n const link = this.generateTagLink(tag)\n this.$router.push(link)\n } else {\n window.open(this.url, '_blank')\n }\n },\n generateTagLink (tag) {\n return `/tag/${tag}`\n }\n }\n}\n\nexport default HashtagLink\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 decoded = decodeURI(url)\n // https://git.pleroma.social/pleroma/elixir-libraries/linkify/-/blob/master/lib/linkify/parser.ex\n // https://www.pcre.org/original/doc/html/pcrepattern.html\n const regex = /tag[s]*\\/([\\p{L}\\p{N}_]*[\\p{Alphabetic}_·\\u{200c}][\\p{L}\\p{N}_·\\p{M}\\u{200c}]*)$/ug\n const result = regex.exec(decoded)\n if (!result) {\n return false\n }\n return result[1]\n}\n","import { render } from \"./hashtag_link.vue?vue&type=template&id=76a14451\"\nimport script from \"./hashtag_link.js?vue&type=script&lang=js\"\nexport * from \"./hashtag_link.js?vue&type=script&lang=js\"\n\nimport \"./hashtag_link.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { unescape, flattenDeep } from 'lodash'\nimport { getTagName, processTextForEmoji, getAttrs } from 'src/services/html_converter/utility.service.js'\nimport { convertHtmlToTree } from 'src/services/html_converter/html_tree_converter.service.js'\nimport { convertHtmlToLines } from 'src/services/html_converter/html_line_converter.service.js'\nimport StillImage from 'src/components/still-image/still-image.vue'\nimport MentionsLine, { MENTIONS_LIMIT } from 'src/components/mentions_line/mentions_line.vue'\nimport HashtagLink from 'src/components/hashtag_link/hashtag_link.vue'\n\nimport './rich_content.scss'\n\nconst MAYBE_LINE_BREAKING_ELEMENTS = [\n 'blockquote',\n 'br',\n 'hr',\n 'ul',\n 'ol',\n 'li',\n 'p',\n 'table',\n 'tbody',\n 'td',\n 'th',\n 'thead',\n 'tr',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5'\n]\n\n/**\n * RichContent, The Über-powered component for rendering Post HTML.\n *\n * This takes post HTML and does multiple things to it:\n * - Groups all mentions into <MentionsLine>, this affects all mentions regardles\n * of where they are (beginning/middle/end), even single mentions are converted\n * to a <MentionsLine> containing single <MentionLink>.\n * - Replaces emoji shortcodes with <StillImage>'d images.\n *\n * There are two problems with this component's architecture:\n * 1. Parsing HTML and rendering are inseparable. Attempts to separate the two\n * proven to be a massive overcomplication due to amount of things done here.\n * 2. We need to output both render and some extra data, which seems to be imp-\n * possible in vue. Current solution is to emit 'parseReady' event when parsing\n * is done within render() function.\n *\n * Apart from that one small hiccup with emit in render this _should_ be vue3-ready\n */\nexport default {\n name: 'RichContent',\n components: {\n MentionsLine,\n HashtagLink\n },\n props: {\n // Original html content\n html: {\n required: true,\n type: String\n },\n attentions: {\n required: false,\n default: () => []\n },\n // Emoji object, as in status.emojis, note the \"s\" at the end...\n emoji: {\n required: true,\n type: Array\n },\n // Whether to handle links or not (posts: yes, everything else: no)\n handleLinks: {\n required: false,\n type: Boolean,\n default: false\n },\n // Meme arrows\n greentext: {\n required: false,\n type: Boolean,\n default: false\n }\n },\n // NEVER EVER TOUCH DATA INSIDE RENDER\n render () {\n // Pre-process HTML\n const { newHtml: html } = preProcessPerLine(this.html, this.greentext)\n let currentMentions = null // Current chain of mentions, we group all mentions together\n // This is used to recover spacing removed when parsing mentions\n let lastSpacing = ''\n\n const lastTags = [] // Tags that appear at the end of post body\n const writtenMentions = [] // All mentions that appear in post body\n const invisibleMentions = [] // All mentions that go beyond the limiter (see MentionsLine)\n // to collapse too many mentions in a row\n const writtenTags = [] // All tags that appear in post body\n // unique index for vue \"tag\" property\n let mentionIndex = 0\n let tagsIndex = 0\n\n const renderImage = (tag) => {\n return <StillImage\n {...getAttrs(tag)}\n class=\"img\"\n />\n }\n\n const renderHashtag = (attrs, children, encounteredTextReverse) => {\n const { index, ...linkData } = getLinkData(attrs, children, tagsIndex++)\n writtenTags.push(linkData)\n if (!encounteredTextReverse) {\n lastTags.push(linkData)\n }\n const { url, tag, content } = linkData\n return <HashtagLink url={url} tag={tag} content={content}/>\n }\n\n const renderMention = (attrs, children) => {\n const linkData = getLinkData(attrs, children, mentionIndex++)\n linkData.notifying = this.attentions.some(a => a.statusnet_profile_url === linkData.url)\n writtenMentions.push(linkData)\n if (currentMentions === null) {\n currentMentions = []\n }\n currentMentions.push(linkData)\n if (currentMentions.length > MENTIONS_LIMIT) {\n invisibleMentions.push(linkData)\n }\n if (currentMentions.length === 1) {\n return <MentionsLine mentions={ currentMentions } />\n } else {\n return ''\n }\n }\n\n // Processor to use with html_tree_converter\n const processItem = (item, index, array, what) => {\n // Handle text nodes - just add emoji\n if (typeof item === 'string') {\n const emptyText = item.trim() === ''\n if (item.includes('\\n')) {\n currentMentions = null\n }\n if (emptyText) {\n // don't include spaces when processing mentions - we'll include them\n // in MentionsLine\n lastSpacing = item\n // Don't remove last space in a container (fixes poast mentions)\n return (index !== array.length - 1) && (currentMentions !== null) ? item.trim() : item\n }\n\n currentMentions = null\n if (item.includes(':')) {\n item = ['', processTextForEmoji(\n item,\n this.emoji,\n ({ shortcode, url }) => {\n return <StillImage\n class=\"emoji img\"\n src={url}\n title={`:${shortcode}:`}\n alt={`:${shortcode}:`}\n />\n }\n )]\n }\n return item\n }\n\n // Handle tag nodes\n if (Array.isArray(item)) {\n const [opener, children, closer] = item\n let Tag = getTagName(opener)\n if (Tag.toLowerCase() === 'script') Tag = 'js-exploit'\n if (Tag.toLowerCase() === 'style') Tag = 'css-exploit'\n const fullAttrs = getAttrs(opener, () => true)\n const attrs = getAttrs(opener)\n const previouslyMentions = currentMentions !== null\n /* During grouping of mentions we trim all the empty text elements\n * This padding is added to recover last space removed in case\n * we have a tag right next to mentions\n */\n const mentionsLinePadding =\n // Padding is only needed if we just finished parsing mentions\n previouslyMentions &&\n // Don't add padding if content is string and has padding already\n !(children && typeof children[0] === 'string' && children[0].match(/^\\s/))\n ? lastSpacing\n : ''\n if (MAYBE_LINE_BREAKING_ELEMENTS.includes(Tag)) {\n // all the elements that can cause a line change\n currentMentions = null\n } else if (Tag === 'img') { // replace images with StillImage\n return ['', [mentionsLinePadding, renderImage(opener)], '']\n } else if (Tag === 'a' && this.handleLinks) { // replace mentions with MentionLink\n if (fullAttrs.class && fullAttrs.class.includes('mention')) {\n // Handling mentions here\n return renderMention(attrs, children)\n } else {\n currentMentions = null\n }\n } else if (Tag === 'span') {\n if (this.handleLinks && fullAttrs.class && fullAttrs.class.includes('h-card')) {\n return ['', children.map(processItem), '']\n }\n }\n\n if (children !== undefined) {\n return [\n '',\n [\n mentionsLinePadding,\n [opener, children.map(processItem), closer]\n ],\n ''\n ]\n } else {\n return ['', [mentionsLinePadding, item], '']\n }\n }\n }\n\n // Processor for back direction (for finding \"last\" stuff, just easier this way)\n let encounteredTextReverse = false\n const processItemReverse = (item, index, array, what) => {\n // Handle text nodes - just add emoji\n if (typeof item === 'string') {\n const emptyText = item.trim() === ''\n if (emptyText) return item\n if (!encounteredTextReverse) encounteredTextReverse = true\n return unescape(item)\n } else if (Array.isArray(item)) {\n // Handle tag nodes\n const [opener, children] = item\n const Tag = opener === '' ? '' : getTagName(opener)\n switch (Tag) {\n case 'a': { // replace mentions with MentionLink\n if (!this.handleLinks) break\n const fullAttrs = getAttrs(opener, () => true)\n const attrs = getAttrs(opener, () => true)\n // should only be this\n if (\n (fullAttrs.class && fullAttrs.class.includes('hashtag')) || // Pleroma style\n (fullAttrs.rel === 'tag') // Mastodon style\n ) {\n return renderHashtag(attrs, children, encounteredTextReverse)\n } else {\n attrs.target = '_blank'\n const newChildren = [...children].reverse().map(processItemReverse).reverse()\n\n return <a {...attrs}>\n { newChildren }\n </a>\n }\n }\n case '':\n return [...children].reverse().map(processItemReverse).reverse()\n }\n\n // Render tag as is\n if (children !== undefined) {\n const newChildren = Array.isArray(children)\n ? [...children].reverse().map(processItemReverse).reverse()\n : children\n return <Tag {...getAttrs(opener)}>\n { newChildren }\n </Tag>\n } else {\n return <Tag/>\n }\n }\n return item\n }\n\n const pass1 = convertHtmlToTree(html).map(processItem)\n const pass2 = [...pass1].reverse().map(processItemReverse).reverse()\n // DO NOT USE SLOTS they cause a re-render feedback loop here.\n // slots updated -> rerender -> emit -> update up the tree -> rerender -> ...\n // at least until vue3?\n const result = <span class=\"RichContent\">\n { pass2 }\n </span>\n\n const event = {\n lastTags,\n writtenMentions,\n writtenTags,\n invisibleMentions\n }\n\n // DO NOT MOVE TO UPDATE. BAD IDEA.\n this.$emit('parseReady', event)\n\n return result\n }\n}\n\nconst getLinkData = (attrs, children, index) => {\n const stripTags = (item) => {\n if (typeof item === 'string') {\n return item\n } else {\n return item[1].map(stripTags).join('')\n }\n }\n const textContent = children.map(stripTags).join('')\n return {\n index,\n url: attrs.href,\n tag: attrs['data-tag'],\n content: flattenDeep(children).join(''),\n textContent\n }\n}\n\n/** Pre-processing HTML\n *\n * Currently this does one thing:\n * - add green/cyantexting\n *\n * @param {String} html - raw HTML to process\n * @param {Boolean} greentext - whether to enable greentexting or not\n */\nexport const preProcessPerLine = (html, greentext) => {\n const greentextHandle = new Set(['p', 'div'])\n\n const lines = convertHtmlToLines(html)\n const newHtml = lines.reverse().map((item, index, array) => {\n if (!item.text) return item\n const string = item.text\n\n // Greentext stuff\n if (\n // Only if greentext is engaged\n greentext &&\n // Only handle p's and divs. Don't want to affect blockquotes, code etc\n item.level.every(l => greentextHandle.has(l)) &&\n // Only if line begins with '>' or '<'\n (string.includes('&gt;') || string.includes('&lt;'))\n ) {\n const cleanedString = string.replace(/<[^>]+?>/gi, '') // remove all tags\n .replace(/@\\w+/gi, '') // remove mentions (even failed ones)\n .trim()\n if (cleanedString.startsWith('&gt;')) {\n return `<span class='greentext'>${string}</span>`\n } else if (cleanedString.startsWith('&lt;')) {\n return `<span class='cyantext'>${string}</span>`\n }\n }\n\n return string\n }).reverse().join('')\n\n return { newHtml }\n}\n","import { getTagName } from './utility.service.js'\nimport { unescape } from 'lodash'\n\n/**\n * This is a not-so-tiny purpose-built HTML parser/processor. This parses html\n * and converts it into a tree structure representing tag openers/closers and\n * children.\n *\n * Structure follows this pattern: [opener, [...children], closer] except root\n * node which is just [...children]. Text nodes can only be within children and\n * are represented as strings.\n *\n * Intended use is to convert HTML structure and then recursively iterate over it\n * most likely using a map. Very useful for dynamically rendering html replacing\n * tags with JSX elements in a render function.\n *\n * known issue: doesn't handle CDATA so CDATA might not work well\n * known issue: doesn't handle HTML comments\n *\n * @param {Object} input - input data\n * @return {string} processed html\n */\nexport const convertHtmlToTree = (html = '') => {\n // Elements that are implicitly self-closing\n // https://developer.mozilla.org/en-US/docs/Glossary/empty_element\n const emptyElements = new Set([\n 'area', 'base', 'br', 'col', 'embed', 'hr', 'img', 'input',\n 'keygen', 'link', 'meta', 'param', 'source', 'track', 'wbr'\n ])\n // TODO For future - also parse HTML5 multi-source components?\n\n const buffer = [] // Current output buffer\n const levels = [['', buffer]] // 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 const getCurrentBuffer = () => {\n return levels[levels.length - 1][1]\n }\n\n const flushText = () => { // Processes current line buffer, adds it to output buffer and clears line buffer\n if (textBuffer === '') return\n getCurrentBuffer().push(textBuffer)\n textBuffer = ''\n }\n\n const handleSelfClosing = (tag) => {\n getCurrentBuffer().push([tag])\n }\n\n const handleOpen = (tag) => {\n const curBuf = getCurrentBuffer()\n const newLevel = [unescape(tag), []]\n levels.push(newLevel)\n curBuf.push(newLevel)\n }\n\n const handleClose = (tag) => {\n const currentTag = levels[levels.length - 1]\n if (getTagName(levels[levels.length - 1][0]) === getTagName(tag)) {\n currentTag.push(tag)\n levels.pop()\n } else {\n getCurrentBuffer().push(tag)\n }\n }\n\n for (let i = 0; i < html.length; i++) {\n const char = html[i]\n if (char === '<' && tagBuffer === null) {\n flushText()\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 (tagFull[1] === '/') {\n handleClose(tagFull)\n } else if (emptyElements.has(tagName) || tagFull[tagFull.length - 2] === '/') {\n // self-closing\n handleSelfClosing(tagFull)\n } else {\n handleOpen(tagFull)\n }\n } else {\n textBuffer += char\n }\n }\n if (tagBuffer) {\n textBuffer += tagBuffer\n }\n\n flushText()\n return buffer\n}\n","// eslint-disable-next-line no-unused\nimport { h, Fragment } from 'vue'\nimport { mapState } from 'vuex'\nimport { FontAwesomeIcon as FAIcon } from '@fortawesome/vue-fontawesome'\n\nimport './tab_switcher.scss'\n\nconst findFirstUsable = (slots) => slots.findIndex(_ => _.props)\n\nexport default {\n name: 'TabSwitcher',\n props: {\n renderOnlyFocused: {\n required: false,\n type: Boolean,\n default: false\n },\n onSwitch: {\n required: false,\n type: Function,\n default: undefined\n },\n activeTab: {\n required: false,\n type: String,\n default: undefined\n },\n scrollableTabs: {\n required: false,\n type: Boolean,\n default: false\n },\n sideTabBar: {\n required: false,\n type: Boolean,\n default: false\n },\n bodyScrollLock: {\n required: false,\n type: Boolean,\n default: false\n }\n },\n data () {\n return {\n active: findFirstUsable(this.slots())\n }\n },\n computed: {\n activeIndex () {\n // In case of controlled component\n if (this.activeTab) {\n return this.slots().findIndex(slot => slot && slot.props && this.activeTab === slot.props.key)\n } else {\n return this.active\n }\n },\n isActive () {\n return tabName => {\n const isWanted = slot => slot.props && slot.props['data-tab-name'] === tabName\n return this.$slots.default().findIndex(isWanted) === this.activeIndex\n }\n }\n },\n beforeUpdate () {\n const currentSlot = this.slots()[this.active]\n if (!currentSlot.props) {\n this.active = findFirstUsable(this.slots())\n }\n },\n methods: {\n clickTab (index) {\n return (e) => {\n e.preventDefault()\n this.setTab(index)\n }\n },\n // DO NOT put it to computed, it doesn't work (caching?)\n slots () {\n if (this.$slots.default()[0].type === Fragment) {\n return this.$slots.default()[0].children\n }\n return this.$slots.default()\n },\n setTab (index) {\n if (typeof this.onSwitch === 'function') {\n this.onSwitch.call(null, this.slots()[index].key)\n }\n this.active = index\n if (this.scrollableTabs) {\n this.$refs.contents.scrollTop = 0\n }\n }\n },\n render () {\n const tabs = this.slots()\n .map((slot, index) => {\n const props = slot.props\n if (!props) return\n const classesTab = ['tab', 'button-default']\n const classesWrapper = ['tab-wrapper']\n if (this.activeIndex === index) {\n classesTab.push('active')\n classesWrapper.push('active')\n }\n if (props.image) {\n return (\n <div class={classesWrapper.join(' ')}>\n <button\n disabled={props.disabled}\n onClick={this.clickTab(index)}\n class={classesTab.join(' ')}\n type=\"button\"\n role=\"tab\"\n >\n <img src={props.image} title={props['image-tooltip']}/>\n {props.label ? '' : props.label}\n </button>\n </div>\n )\n }\n return (\n <div class={classesWrapper.join(' ')}>\n <button\n disabled={props.disabled}\n onClick={this.clickTab(index)}\n class={classesTab.join(' ')}\n type=\"button\"\n role=\"tab\"\n >\n {!props.icon ? '' : (<FAIcon class=\"tab-icon\" size=\"2x\" fixed-width icon={props.icon}/>)}\n <span class=\"text\">\n {props.label}\n </span>\n </button>\n </div>\n )\n })\n\n const contents = this.slots().map((slot, index) => {\n const props = slot.props\n if (!props) return\n const active = this.activeIndex === index\n const classes = [ active ? 'active' : 'hidden' ]\n if (props.fullHeight) {\n classes.push('full-height')\n }\n const renderSlot = (!this.renderOnlyFocused || active)\n ? slot\n : ''\n\n return (\n <div class={classes}>\n {\n this.sideTabBar\n ? <h1 class=\"mobile-label\">{props.label}</h1>\n : ''\n }\n {renderSlot}\n </div>\n )\n })\n\n return (\n <div class={'tab-switcher ' + (this.sideTabBar ? 'side-tabs' : 'top-tabs')}>\n <div\n class=\"tabs\"\n role=\"tablist\"\n >\n {tabs}\n </div>\n <div\n ref=\"contents\"\n role=\"tabpanel\"\n class={'contents' + (this.scrollableTabs ? ' scrollable-tabs' : '')}\n v-body-scroll-lock={this.bodyScrollLock}\n >\n {contents}\n </div>\n </div>\n )\n }\n}\n","// eslint-disable-next-line no-unused\nimport { h } from 'vue'\nimport isEmpty from 'lodash/isEmpty'\nimport { getComponentProps } from '../../services/component_utils/component_utils'\nimport './with_load_more.scss'\n\nimport { FontAwesomeIcon as FAIcon } from '@fortawesome/vue-fontawesome'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faCircleNotch\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCircleNotch\n)\n\nconst withLoadMore = ({\n fetch, // function to fetch entries and return a promise\n select, // function to select data from store\n unmounted, // 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 {\n props,\n data () {\n return {\n loading: false,\n bottomedOut: false,\n error: false,\n entries: []\n }\n },\n created () {\n window.addEventListener('scroll', this.scrollLoad)\n if (this.entries.length === 0) {\n this.fetchEntries()\n }\n },\n unmounted () {\n window.removeEventListener('scroll', this.scrollLoad)\n unmounted && unmounted(this.$props, this.$store)\n },\n methods: {\n // Entries is not a computed because computed can't track the dynamic\n // selector for changes and won't trigger after fetch.\n updateEntries () {\n this.entries = select(this.$props, this.$store) || []\n },\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 .finally(() => {\n this.updateEntries()\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 () {\n const props = {\n ...this.$props,\n [childPropName]: this.entries\n }\n const children = this.$slots\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 &&\n <button onClick={this.fetchEntries} class=\"button-unstyled -link -fullwidth alert error\">\n {this.$t('general.generic_error')}\n </button>\n }\n {!this.error && this.loading && <FAIcon spin icon=\"circle-notch\"/>}\n {!this.error && !this.loading && !this.bottomedOut && <a onClick={this.fetchEntries} role=\"button\" tabindex=\"0\">{this.$t('general.more')}</a>}\n </div>\n </div>\n )\n }\n }\n}\n\nexport default withLoadMore\n","const languages = [\n 'ar',\n 'ca',\n 'cs',\n 'de',\n 'eo',\n 'en',\n 'es',\n 'et',\n 'eu',\n 'fi',\n 'fr',\n 'ga',\n 'he',\n 'hu',\n 'it',\n 'ja',\n 'ja_easy',\n 'ko',\n 'nan-TW',\n 'nb',\n 'nl',\n 'oc',\n 'pl',\n 'pt',\n 'ro',\n 'ru',\n 'sk',\n 'te',\n 'uk',\n 'zh',\n 'zh_Hant'\n]\n\nconst specialJsonName = {\n ja: 'ja_pedantic'\n}\n\nconst langCodeToJsonName = (code) => specialJsonName[code] || code\n\nconst langCodeToCldrName = (code) => code\n\nconst ensureFinalFallback = codes => {\n const codeList = Array.isArray(codes) ? codes : [codes]\n return codeList.includes('en') ? codeList : codeList.concat(['en'])\n}\n\nmodule.exports = {\n languages,\n langCodeToJsonName,\n langCodeToCldrName,\n ensureFinalFallback\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\nimport { isEqual } from 'lodash'\nimport { languages, langCodeToJsonName } from './languages.js'\n\nconst ULTIMATE_FALLBACK_LOCALE = 'en'\n\nconst hasLanguageFile = (code) => languages.includes(code)\n\nconst loadLanguageFile = (code) => {\n return import(\n /* webpackInclude: /\\.json$/ */\n /* webpackChunkName: \"i18n/[request]\" */\n `./${langCodeToJsonName(code)}.json`\n )\n}\n\nconst messages = {\n languages,\n default: {\n en: require('./en.json').default\n },\n setLanguage: async (i18n, language) => {\n const languages = (Array.isArray(language) ? language : [language]).filter(k => k)\n\n if (!languages.includes(ULTIMATE_FALLBACK_LOCALE)) {\n languages.push(ULTIMATE_FALLBACK_LOCALE)\n }\n const [first, ...rest] = languages\n\n if (first === i18n.locale && isEqual(rest, i18n.fallbackLocale)) {\n return\n }\n\n for (const lang of languages) {\n if (hasLanguageFile(lang)) {\n const messages = await loadLanguageFile(lang)\n i18n.setLocaleMessage(lang, messages.default)\n }\n }\n\n i18n.fallbackLocale = rest\n i18n.locale = first\n }\n}\n\nexport default messages\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","const defaultState = {\n settingsModalState: 'hidden',\n settingsModalLoadedUser: false,\n settingsModalLoadedAdmin: false,\n settingsModalTargetTab: null,\n settingsModalMode: 'user',\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 layoutType: 'normal',\n globalNotices: [],\n layoutHeight: 0,\n lastTimeline: null\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 state.settings.currentSaveStateNotice = { error: false, data: success }\n state.settings.noticeClearTimeout = setTimeout(() => delete state.settings.currentSaveStateNotice, 2000)\n } else {\n state.settings.currentSaveStateNotice = { error: true, errorData: error }\n }\n },\n setNotificationPermission (state, permission) {\n state.notificationPermission = permission\n },\n setLayoutType (state, value) {\n state.layoutType = value\n },\n closeSettingsModal (state) {\n state.settingsModalState = 'hidden'\n },\n togglePeekSettingsModal (state) {\n switch (state.settingsModalState) {\n case 'minimized':\n state.settingsModalState = 'visible'\n return\n case 'visible':\n state.settingsModalState = 'minimized'\n return\n default:\n throw new Error('Illegal minimization state of settings modal')\n }\n },\n openSettingsModal (state, value) {\n state.settingsModalMode = value\n state.settingsModalState = 'visible'\n if (value === 'user') {\n if (!state.settingsModalLoadedUser) {\n state.settingsModalLoadedUser = true\n }\n } else if (value === 'admin') {\n if (!state.settingsModalLoadedAdmin) {\n state.settingsModalLoadedAdmin = true\n }\n }\n },\n setSettingsModalTargetTab (state, value) {\n state.settingsModalTargetTab = value\n },\n pushGlobalNotice (state, notice) {\n state.globalNotices.push(notice)\n },\n removeGlobalNotice (state, notice) {\n state.globalNotices = state.globalNotices.filter(n => n !== notice)\n },\n setLayoutHeight (state, value) {\n state.layoutHeight = value\n },\n setLayoutWidth (state, value) {\n state.layoutWidth = value\n },\n setLastTimeline (state, value) {\n state.lastTimeline = 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 closeSettingsModal ({ commit }) {\n commit('closeSettingsModal')\n },\n openSettingsModal ({ commit }, value = 'user') {\n commit('openSettingsModal', value)\n },\n togglePeekSettingsModal ({ commit }) {\n commit('togglePeekSettingsModal')\n },\n clearSettingsModalTargetTab ({ commit }) {\n commit('setSettingsModalTargetTab', null)\n },\n openSettingsModalTab ({ commit }, value) {\n commit('setSettingsModalTargetTab', value)\n commit('openSettingsModal', 'user')\n },\n pushGlobalNotice (\n { commit, dispatch, state },\n {\n messageKey,\n messageArgs = {},\n level = 'error',\n timeout = 0\n }) {\n const notice = {\n messageKey,\n messageArgs,\n level\n }\n commit('pushGlobalNotice', notice)\n // Adding a new element to array wraps it in a Proxy, which breaks the comparison\n // TODO: Generate UUID or something instead or relying on !== operator?\n const newNotice = state.globalNotices[state.globalNotices.length - 1]\n if (timeout) {\n setTimeout(() => dispatch('removeGlobalNotice', newNotice), timeout)\n }\n return newNotice\n },\n removeGlobalNotice ({ commit }, notice) {\n commit('removeGlobalNotice', notice)\n },\n setLayoutHeight ({ commit }, value) {\n commit('setLayoutHeight', value)\n },\n // value is optional, assuming it was cached prior\n setLayoutWidth ({ commit, state, rootGetters, rootState }, value) {\n let width = value\n if (value !== undefined) {\n commit('setLayoutWidth', value)\n } else {\n width = state.layoutWidth\n }\n const mobileLayout = width <= 800\n const normalOrMobile = mobileLayout ? 'mobile' : 'normal'\n const { thirdColumnMode } = rootGetters.mergedConfig\n if (thirdColumnMode === 'none' || !rootState.users.currentUser) {\n commit('setLayoutType', normalOrMobile)\n } else {\n const wideLayout = width >= 1300\n commit('setLayoutType', wideLayout ? 'wide' : normalOrMobile)\n }\n },\n setLastTimeline ({ commit }, value) {\n commit('setLastTimeline', value)\n }\n }\n}\n\nexport default interfaceMod\n","import { getPreset, applyTheme } from '../services/style_setter/style_setter.js'\nimport { CURRENT_VERSION } from '../services/theme_data/theme_data.service.js'\nimport apiService from '../services/api/api.service.js'\nimport { instanceDefaultProperties } from './config.js'\nimport { langCodeToCldrName, ensureFinalFallback } from '../i18n/languages.js'\n\nconst SORTED_EMOJI_GROUP_IDS = [\n 'smileys-and-emotion',\n 'people-and-body',\n 'animals-and-nature',\n 'food-and-drink',\n 'travel-and-places',\n 'activities',\n 'objects',\n 'symbols',\n 'flags'\n]\n\nconst REGIONAL_INDICATORS = (() => {\n const start = 0x1F1E6\n const end = 0x1F1FF\n const A = 'A'.codePointAt(0)\n const res = new Array(end - start + 1)\n for (let i = start; i <= end; ++i) {\n const letter = String.fromCodePoint(A + i - start)\n res[i - start] = {\n replacement: String.fromCodePoint(i),\n imageUrl: false,\n displayText: 'regional_indicator_' + letter,\n displayTextI18n: {\n key: 'emoji.regional_indicator',\n args: { letter }\n }\n }\n }\n return res\n})()\n\nconst REMOTE_INTERACTION_URL = '/main/ostatus'\n\nconst defaultState = {\n // Stuff from apiConfig\n name: 'Pleroma FE',\n registrationOpen: true,\n server: 'http://localhost:4040/',\n textlimit: 5000,\n themeData: undefined,\n vapidPublicKey: undefined,\n\n // Stuff from static/config.json\n alwaysShowSubjectInput: true,\n defaultAvatar: '/images/avi.png',\n defaultBanner: '/images/banner.png',\n background: '/static/aurora_borealis.jpg',\n collapseMessageWithSubject: false,\n greentext: false,\n useAtIcon: false,\n mentionLinkDisplay: 'short',\n mentionLinkShowTooltip: true,\n mentionLinkShowAvatar: false,\n mentionLinkFadeDomain: true,\n mentionLinkShowYous: false,\n mentionLinkBoldenYou: true,\n hideFilteredStatuses: false,\n // bad name: actually hides posts of muted USERS\n hideMutedPosts: false,\n hideMutedThreads: true,\n hideWordFilteredPosts: false,\n hidePostStats: false,\n hideBotIndication: false,\n hideSitename: false,\n hideUserStats: false,\n muteBotStatuses: false,\n modalOnRepeat: false,\n modalOnUnfollow: false,\n modalOnBlock: true,\n modalOnMute: false,\n modalOnDelete: true,\n modalOnLogout: true,\n modalOnApproveFollow: false,\n modalOnDenyFollow: false,\n modalOnRemoveUserFromFollowers: false,\n loginMethod: 'password',\n logo: '/static/logo.svg',\n logoMargin: '.2em',\n logoMask: true,\n logoLeft: false,\n disableUpdateNotification: false,\n minimalScopesMode: false,\n nsfwCensorImage: undefined,\n postContentType: 'text/plain',\n redirectRootLogin: '/main/friends',\n redirectRootNoLogin: '/main/all',\n scopeCopy: true,\n showFeaturesPanel: true,\n showInstanceSpecificPanel: false,\n sidebarRight: false,\n subjectLineBehavior: 'email',\n theme: 'pleroma-dark',\n virtualScrolling: true,\n sensitiveByDefault: false,\n conversationDisplay: 'linear',\n conversationTreeAdvanced: false,\n conversationOtherRepliesButton: 'below',\n conversationTreeFadeAncestors: false,\n maxDepthInThread: 6,\n autocompleteSelect: false,\n\n // Nasty stuff\n customEmoji: [],\n customEmojiFetched: false,\n emoji: {},\n emojiFetched: false,\n unicodeEmojiAnnotations: {},\n pleromaBackend: true,\n postFormats: [],\n restrictedNicknames: [],\n safeDM: true,\n knownDomains: [],\n birthdayRequired: false,\n birthdayMinAge: 0,\n\n // Feature-set, apparently, not everything here is reported...\n shoutAvailable: false,\n pleromaChatMessagesAvailable: false,\n pleromaCustomEmojiReactionsAvailable: false,\n gopherAvailable: false,\n mediaProxyAvailable: false,\n suggestionsEnabled: false,\n suggestionsWeb: '',\n quotingAvailable: false,\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 loadAnnotations = (lang) => {\n return import(\n /* webpackChunkName: \"emoji-annotations/[request]\" */\n `@kazvmoe-infra/unicode-emoji-json/annotations/${langCodeToCldrName(lang)}.json`\n )\n .then(k => k.default)\n}\n\nconst injectAnnotations = (emoji, annotations) => {\n const availableLangs = Object.keys(annotations)\n\n return {\n ...emoji,\n annotations: availableLangs.reduce((acc, cur) => {\n acc[cur] = annotations[cur][emoji.replacement]\n return acc\n }, {})\n }\n}\n\nconst injectRegionalIndicators = groups => {\n groups.symbols.push(...REGIONAL_INDICATORS)\n return groups\n}\n\nconst instance = {\n state: defaultState,\n mutations: {\n setInstanceOption (state, { name, value }) {\n if (typeof value !== 'undefined') {\n state[name] = value\n }\n },\n setKnownDomains (state, domains) {\n state.knownDomains = domains\n },\n setUnicodeEmojiAnnotations (state, { lang, annotations }) {\n state.unicodeEmojiAnnotations[lang] = annotations\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 groupedCustomEmojis (state) {\n const packsOf = emoji => {\n const packs = emoji.tags\n .filter(k => k.startsWith('pack:'))\n .map(k => {\n const packName = k.slice(5) // remove 'pack:' prefix\n return {\n id: `custom-${packName}`,\n text: packName\n }\n })\n\n if (!packs.length) {\n return [{\n id: 'unpacked'\n }]\n } else {\n return packs\n }\n }\n\n return state.customEmoji\n .reduce((res, emoji) => {\n packsOf(emoji).forEach(({ id: packId, text: packName }) => {\n if (!res[packId]) {\n res[packId] = ({\n id: packId,\n text: packName,\n image: emoji.imageUrl,\n emojis: []\n })\n }\n res[packId].emojis.push(emoji)\n })\n return res\n }, {})\n },\n standardEmojiList (state) {\n return SORTED_EMOJI_GROUP_IDS\n .map(groupId => (state.emoji[groupId] || []).map(k => injectAnnotations(k, state.unicodeEmojiAnnotations)))\n .reduce((a, b) => a.concat(b), [])\n },\n standardEmojiGroupList (state) {\n return SORTED_EMOJI_GROUP_IDS.map(groupId => ({\n id: groupId,\n emojis: (state.emoji[groupId] || []).map(k => injectAnnotations(k, state.unicodeEmojiAnnotations))\n }))\n },\n instanceDomain (state) {\n return new URL(state.server).hostname\n },\n remoteInteractionLink (state) {\n const server = state.server.endsWith('/') ? state.server.slice(0, -1) : state.server\n const link = server + REMOTE_INTERACTION_URL\n\n return ({ statusId, nickname }) => {\n if (statusId) {\n return `${link}?status_id=${statusId}`\n } else {\n return `${link}?nickname=${nickname}`\n }\n }\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 'shoutAvailable':\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 values = (await import(/* webpackChunkName: 'emoji' */ '../../static/emoji.json')).default\n\n const emoji = Object.keys(values).reduce((res, groupId) => {\n res[groupId] = values[groupId].map(e => ({\n displayText: e.slug,\n imageUrl: false,\n replacement: e.emoji\n }))\n return res\n }, {})\n commit('setInstanceOption', { name: 'emoji', value: injectRegionalIndicators(emoji) })\n } catch (e) {\n console.warn(\"Can't load static emoji\")\n console.warn(e)\n }\n },\n\n loadUnicodeEmojiData ({ commit, state }, language) {\n const langList = ensureFinalFallback(language)\n\n return Promise.all(\n langList\n .map(async lang => {\n if (!state.unicodeEmojiAnnotations[lang]) {\n try {\n const annotations = await loadAnnotations(lang)\n commit('setUnicodeEmojiAnnotations', { lang, annotations })\n } catch (e) {\n console.warn(`Error loading unicode emoji annotations for ${lang}: `, e)\n // ignore\n }\n }\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 caseInsensitiveStrCmp = (a, b) => {\n const la = a.toLowerCase()\n const lb = b.toLowerCase()\n return la > lb ? 1 : (la < lb ? -1 : 0)\n }\n const noPackLast = (a, b) => {\n const aNull = a === ''\n const bNull = b === ''\n if (aNull === bNull) {\n return 0\n } else if (aNull && !bNull) {\n return 1\n } else {\n return -1\n }\n }\n const byPackThenByName = (a, b) => {\n const packOf = emoji => (emoji.tags.filter(k => k.startsWith('pack:'))[0] || '').slice(5)\n const packOfA = packOf(a)\n const packOfB = packOf(b)\n return noPackLast(packOfA, packOfB) || caseInsensitiveStrCmp(packOfA, packOfB) || caseInsensitiveStrCmp(a.displayText, b.displayText)\n }\n\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(byPackThenByName)\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 async getKnownDomains ({ commit, rootState }) {\n try {\n const result = await apiService.fetchKnownDomains({\n credentials: rootState.users.currentUser.credentials\n })\n commit('setKnownDomains', result)\n } catch (e) {\n console.warn(\"Can't load known domains\")\n console.warn(e)\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 {\n isStatusNotification,\n isValidNotification,\n maybeShowNotification\n} from '../services/notification_utils/notification_utils.js'\nimport apiService from '../services/api/api.service.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})\n\nexport const defaultState = () => ({\n allStatuses: [],\n allStatusesObject: {},\n conversationsObject: {},\n maxId: 0,\n notifications: emptyNotifications(),\n favorites: new Set(),\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 bookmarks: emptyTl(),\n list: 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 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 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 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 = {}, noIdUpdate = false, userId, pagination = {} }) => {\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 // Mismatch between API pagination and our internal minId/maxId tracking systems:\n // pagination.maxId is the oldest of the returned statuses when fetching older,\n // and pagination.minId is the newest when fetching newer. The names come directly\n // from the arguments they're supposed to be passed as for the next fetch.\n const minNew = pagination.maxId || (statuses.length > 0 ? minBy(statuses, 'id').id : 0)\n const maxNew = pagination.minId || (statuses.length > 0 ? maxBy(statuses, 'id').id : 0)\n\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 if (status.quote) {\n addStatus(status.quote, /* showImmediately = */ false, /* addToTimeline = */ false)\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 edit: (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 && !(timeline === 'bookmarks')) {\n sortTimeline(timelineObject)\n }\n}\n\nconst updateNotificationsMinMaxId = (state, notification) => {\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\nconst addNewNotifications = (state, { dispatch, notifications, older, visibleNotificationTypes, rootGetters, newNotificationSideEffects }) => {\n each(notifications, (notification) => {\n // If invalid notification, update ids but don't add it to store\n if (!isValidNotification(notification)) {\n console.error('Invalid notification:', notification)\n updateNotificationsMinMaxId(state, notification)\n return\n }\n\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:report') {\n dispatch('addReport', notification.report)\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 // eslint-disable-next-line no-prototype-builtins\n if (!state.notifications.idStore.hasOwnProperty(notification.id)) {\n updateNotificationsMinMaxId(state, notification)\n\n state.notifications.data.push(notification)\n state.notifications.idStore[notification.id] = notification\n\n newNotificationSideEffects(notification)\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 setBookmarked (state, { status, value }) {\n const newStatus = state.allStatusesObject[status.id]\n newStatus.bookmarked = value\n },\n setBookmarkedConfirm (state, { status }) {\n const newStatus = state.allStatusesObject[status.id]\n newStatus.bookmarked = status.bookmarked\n },\n setDeleted (state, { status }) {\n const newStatus = state.allStatusesObject[status.id]\n if (newStatus) newStatus.deleted = true\n },\n setManyDeleted (state, condition) {\n Object.values(state.allStatusesObject).forEach(status => {\n if (condition(status)) {\n status.deleted = true\n }\n })\n },\n setLoading (state, { timeline, value }) {\n state.timelines[timeline].loading = value\n },\n setNsfw (state, { id, nsfw }) {\n const newStatus = state.allStatusesObject[id]\n newStatus.nsfw = nsfw\n },\n setNotificationsLoading (state, { value }) {\n state.notifications.loading = value\n },\n setNotificationsSilence (state, { value }) {\n state.notifications.desktopNotificationSilence = value\n },\n markNotificationsAsSeen (state) {\n each(state.notifications.data, (notification) => {\n notification.seen = true\n })\n },\n markSingleNotificationAsSeen (state, { id }) {\n const notification = find(state.notifications.data, n => n.id === id)\n if (notification) notification.seen = true\n },\n dismissNotification (state, { id }) {\n state.notifications.data = state.notifications.data.filter(n => n.id !== id)\n },\n dismissNotifications (state, { finder }) {\n state.notifications.data = state.notifications.data.filter(n => finder)\n },\n updateNotification (state, { id, updater }) {\n const notification = find(state.notifications.data, n => n.id === id)\n notification && updater(notification)\n },\n queueFlush (state, { timeline, id }) {\n state.timelines[timeline].flushMarker = id\n },\n queueFlushAll (state) {\n Object.keys(state.timelines).forEach((timeline) => {\n state.timelines[timeline].flushMarker = state.timelines[timeline].maxId\n })\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 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 status.emoji_reactions[reactionIndex] = newReaction\n } else {\n 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 status.emoji_reactions[reactionIndex] = newReaction\n } else {\n 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 setVirtualHeight (state, { statusId, height }) {\n state.allStatusesObject[statusId].virtualHeight = height\n }\n}\n\nconst statuses = {\n state: defaultState(),\n actions: {\n addNewStatuses ({ rootState, commit }, { statuses, showImmediately = false, timeline = false, noIdUpdate = false, userId, pagination }) {\n commit('addNewStatuses', { statuses, showImmediately, timeline, noIdUpdate, user: rootState.users.currentUser, userId, pagination })\n },\n addNewNotifications (store, { notifications, older }) {\n const { commit, dispatch, rootGetters } = store\n\n const newNotificationSideEffects = (notification) => {\n maybeShowNotification(store, notification)\n }\n commit('addNewNotifications', { dispatch, notifications, older, rootGetters, newNotificationSideEffects })\n },\n setNotificationsLoading ({ rootState, commit }, { value }) {\n commit('setNotificationsLoading', { 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 fetchStatusSource ({ rootState, dispatch }, status) {\n return apiService.fetchStatusSource({ id: status.id, credentials: rootState.users.currentUser.credentials })\n },\n fetchStatusHistory ({ rootState, dispatch }, status) {\n return apiService.fetchStatusHistory({ status })\n },\n deleteStatus ({ rootState, commit, dispatch }, status) {\n apiService.deleteStatus({ id: status.id, credentials: rootState.users.currentUser.credentials })\n .then((_) => {\n commit('setDeleted', { status })\n })\n .catch((e) => {\n dispatch('pushGlobalNotice', {\n level: 'error',\n messageKey: 'status.delete_error',\n messageArgs: [e.message],\n timeout: 5000\n })\n })\n },\n deleteStatusById ({ rootState, commit }, id) {\n const status = rootState.statuses.allStatusesObject[id]\n commit('setDeleted', { status })\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 bookmark ({ rootState, commit }, status) {\n commit('setBookmarked', { status, value: true })\n rootState.api.backendInteractor.bookmarkStatus({ id: status.id })\n .then(status => {\n commit('setBookmarkedConfirm', { status })\n })\n },\n unbookmark ({ rootState, commit }, status) {\n commit('setBookmarked', { status, value: false })\n rootState.api.backendInteractor.unbookmarkStatus({ id: status.id })\n .then(status => {\n commit('setBookmarkedConfirm', { status })\n })\n },\n queueFlush ({ rootState, commit }, { timeline, id }) {\n commit('queueFlush', { timeline, id })\n },\n queueFlushAll ({ rootState, commit }) {\n commit('queueFlushAll')\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 return 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, type }) {\n return store.rootState.api.backendInteractor.search2({ q, resolve, limit, offset, following, type })\n .then((data) => {\n store.commit('addNewUsers', data.accounts)\n store.commit('addNewUsers', data.statuses.map(s => s.user).filter(u => u))\n store.commit('addNewStatuses', { statuses: data.statuses })\n return data\n })\n },\n setVirtualHeight ({ commit }, { statusId, height }) {\n commit('setVirtualHeight', { statusId, height })\n }\n },\n mutations\n}\n\nexport default statuses\n","import { remove, find } from 'lodash'\n\nexport const defaultState = {\n allLists: [],\n allListsObject: {}\n}\n\nexport const mutations = {\n setLists (state, value) {\n state.allLists = value\n },\n setList (state, { listId, title }) {\n if (!state.allListsObject[listId]) {\n state.allListsObject[listId] = { accountIds: [] }\n }\n state.allListsObject[listId].title = title\n\n const entry = find(state.allLists, { id: listId })\n if (!entry) {\n state.allLists.push({ id: listId, title })\n } else {\n entry.title = title\n }\n },\n setListAccounts (state, { listId, accountIds }) {\n if (!state.allListsObject[listId]) {\n state.allListsObject[listId] = { accountIds: [] }\n }\n state.allListsObject[listId].accountIds = accountIds\n },\n addListAccount (state, { listId, accountId }) {\n if (!state.allListsObject[listId]) {\n state.allListsObject[listId] = { accountIds: [] }\n }\n state.allListsObject[listId].accountIds.push(accountId)\n },\n removeListAccount (state, { listId, accountId }) {\n if (!state.allListsObject[listId]) {\n state.allListsObject[listId] = { accountIds: [] }\n }\n const { accountIds } = state.allListsObject[listId]\n const set = new Set(accountIds)\n set.delete(accountId)\n state.allListsObject[listId].accountIds = [...set]\n },\n deleteList (state, { listId }) {\n delete state.allListsObject[listId]\n remove(state.allLists, list => list.id === listId)\n }\n}\n\nconst actions = {\n setLists ({ commit }, value) {\n commit('setLists', value)\n },\n createList ({ rootState, commit }, { title }) {\n return rootState.api.backendInteractor.createList({ title })\n .then((list) => {\n commit('setList', { listId: list.id, title })\n return list\n })\n },\n fetchList ({ rootState, commit }, { listId }) {\n return rootState.api.backendInteractor.getList({ listId })\n .then((list) => commit('setList', { listId: list.id, title: list.title }))\n },\n fetchListAccounts ({ rootState, commit }, { listId }) {\n return rootState.api.backendInteractor.getListAccounts({ listId })\n .then((accountIds) => commit('setListAccounts', { listId, accountIds }))\n },\n setList ({ rootState, commit }, { listId, title }) {\n rootState.api.backendInteractor.updateList({ listId, title })\n commit('setList', { listId, title })\n },\n setListAccounts ({ rootState, commit }, { listId, accountIds }) {\n const saved = rootState.lists.allListsObject[listId].accountIds || []\n const added = accountIds.filter(id => !saved.includes(id))\n const removed = saved.filter(id => !accountIds.includes(id))\n commit('setListAccounts', { listId, accountIds })\n if (added.length > 0) {\n rootState.api.backendInteractor.addAccountsToList({ listId, accountIds: added })\n }\n if (removed.length > 0) {\n rootState.api.backendInteractor.removeAccountsFromList({ listId, accountIds: removed })\n }\n },\n addListAccount ({ rootState, commit }, { listId, accountId }) {\n return rootState\n .api\n .backendInteractor\n .addAccountsToList({ listId, accountIds: [accountId] })\n .then((result) => {\n commit('addListAccount', { listId, accountId })\n return result\n })\n },\n removeListAccount ({ rootState, commit }, { listId, accountId }) {\n return rootState\n .api\n .backendInteractor\n .removeAccountsFromList({ listId, accountIds: [accountId] })\n .then((result) => {\n commit('removeListAccount', { listId, accountId })\n return result\n })\n },\n deleteList ({ rootState, commit }, { listId }) {\n rootState.api.backendInteractor.deleteList({ listId })\n commit('deleteList', { listId })\n }\n}\n\nexport const getters = {\n findListTitle: state => id => {\n if (!state.allListsObject[id]) return\n return state.allListsObject[id].title\n },\n findListAccounts: state => id => {\n return [...state.allListsObject[id].accountIds]\n }\n}\n\nconst lists = {\n state: defaultState,\n mutations,\n actions,\n getters\n}\n\nexport default lists\n","import { camelCase } from 'lodash'\n\nimport apiService from '../api/api.service.js'\nimport { promiseInterval } from '../promise_interval/promise_interval.js'\n\nconst update = ({ store, statuses, timeline, showImmediately, userId, listId, pagination }) => {\n const ccTimeline = camelCase(timeline)\n\n store.dispatch('addNewStatuses', {\n timeline: ccTimeline,\n userId,\n listId,\n statuses,\n showImmediately,\n pagination\n })\n}\n\nconst fetchAndUpdate = ({\n store,\n credentials,\n timeline = 'friends',\n older = false,\n showImmediately = false,\n userId = false,\n listId = false,\n tag = false,\n until,\n since\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, replyVisibility } = getters.mergedConfig\n const loggedIn = !!rootState.users.currentUser\n\n if (older) {\n args.until = until || timelineData.minId\n } else {\n if (since === undefined) {\n args.since = timelineData.maxId\n } else if (since !== null) {\n args.since = since\n }\n }\n\n args.userId = userId\n args.listId = listId\n args.tag = tag\n args.withMuted = !hideMutedPosts\n if (loggedIn && ['friends', 'public', 'publicAndExternal'].includes(timeline)) {\n args.replyVisibility = replyVisibility\n }\n\n const numStatusesBeforeFetch = timelineData.statuses.length\n\n return apiService.fetchTimeline(args)\n .then(response => {\n if (response.errors) {\n throw new Error(`${response.status} ${response.statusText}`)\n }\n\n const { data: statuses, pagination } = response\n if (!older && statuses.length >= 20 && !timelineData.loading && numStatusesBeforeFetch > 0) {\n store.dispatch('queueFlush', { timeline, id: timelineData.maxId })\n }\n update({ store, statuses, timeline, showImmediately, userId, listId, pagination })\n return { statuses, pagination }\n })\n .catch((error) => {\n store.dispatch('pushGlobalNotice', {\n level: 'error',\n messageKey: 'timeline.error',\n messageArgs: [error.message],\n timeout: 5000\n })\n })\n}\n\nconst startFetching = ({ timeline = 'friends', credentials, store, userId = false, listId = 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 timelineData.listId = listId\n fetchAndUpdate({ timeline, credentials, store, showImmediately, userId, listId, tag })\n const boundFetchAndUpdate = () =>\n fetchAndUpdate({ timeline, credentials, store, userId, listId, tag })\n return promiseInterval(boundFetchAndUpdate, 10000)\n}\nconst timelineFetcher = {\n fetchAndUpdate,\n startFetching\n}\n\nexport default timelineFetcher\n","import apiService from '../api/api.service.js'\nimport { promiseInterval } from '../promise_interval/promise_interval.js'\n\nconst fetchAndUpdate = ({ store, credentials }) => {\n return apiService.fetchFollowRequests({ credentials })\n .then((requests) => {\n store.commit('setFollowRequests', requests)\n store.commit('addNewUsers', requests)\n }, () => {})\n .catch(() => {})\n}\n\nconst startFetching = ({ credentials, store }) => {\n const boundFetchAndUpdate = () => fetchAndUpdate({ credentials, store })\n boundFetchAndUpdate()\n return promiseInterval(boundFetchAndUpdate, 10000)\n}\n\nconst followRequestFetcher = {\n startFetching\n}\n\nexport default followRequestFetcher\n","import apiService from '../api/api.service.js'\nimport { promiseInterval } from '../promise_interval/promise_interval.js'\n\nconst fetchAndUpdate = ({ store, credentials }) => {\n return apiService.fetchLists({ credentials })\n .then(lists => {\n store.commit('setLists', lists)\n }, () => {})\n .catch(() => {})\n}\n\nconst startFetching = ({ credentials, store }) => {\n const boundFetchAndUpdate = () => fetchAndUpdate({ credentials, store })\n boundFetchAndUpdate()\n return promiseInterval(boundFetchAndUpdate, 240000)\n}\n\nconst listsFetcher = {\n startFetching\n}\n\nexport default listsFetcher\n","import apiService, { getMastodonSocketURI, ProcessedWS } from '../api/api.service.js'\nimport timelineFetcher 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'\nimport listsFetcher from '../../services/lists_fetcher/lists_fetcher.service.js'\n\nconst backendInteractorService = credentials => ({\n startFetchingTimeline ({ timeline, store, userId = false, listId = false, tag }) {\n return timelineFetcher.startFetching({ timeline, store, credentials, userId, listId, tag })\n },\n\n fetchTimeline (args) {\n return timelineFetcher.fetchAndUpdate({ ...args, credentials })\n },\n\n startFetchingNotifications ({ store }) {\n return notificationsFetcher.startFetching({ store, credentials })\n },\n\n fetchNotifications (args) {\n return notificationsFetcher.fetchAndUpdate({ ...args, credentials })\n },\n\n startFetchingFollowRequests ({ store }) {\n return followRequestFetcher.startFetching({ store, credentials })\n },\n\n startFetchingLists ({ store }) {\n return listsFetcher.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","\nexport const windowWidth = () =>\n window.innerWidth ||\n document.documentElement.clientWidth ||\n document.body.clientWidth\n\nexport const windowHeight = () =>\n window.innerHeight ||\n document.documentElement.clientHeight ||\n document.body.clientHeight\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-webpack5-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 { windowWidth, windowHeight } from '../services/window_utils/window_utils'\nimport oauthApi from '../services/new_api/oauth.js'\nimport { compact, map, each, mergeWith, last, concat, uniq, isArray } from 'lodash'\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 mergeWith(oldItem, item, mergeArrayLength)\n return { item: oldItem, new: false }\n } else {\n // This is a new item, prepare it\n arr.push(item)\n obj[item.id] = item\n return { item, new: true }\n }\n}\n\nconst mergeArrayLength = (oldValue, newValue) => {\n if (isArray(oldValue) && isArray(newValue)) {\n oldValue.length = newValue.length\n return mergeWith(oldValue, newValue, mergeArrayLength)\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 removeUserFromFollowers = (store, id) => {\n return store.rootState.api.backendInteractor.removeUserFromFollowers({ id })\n .then((relationship) => store.commit('updateUserRelationship', [relationship]))\n}\n\nconst editUserNote = (store, { id, comment }) => {\n return store.rootState.api.backendInteractor.editUserNote({ id, comment })\n .then((relationship) => store.commit('updateUserRelationship', [relationship]))\n}\n\nconst muteUser = (store, args) => {\n const id = typeof args === 'object' ? args.id : args\n const expiresIn = typeof args === 'object' ? args.expiresIn : 0\n\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, expiresIn })\n .then((relationship) => {\n store.commit('updateUserRelationship', [relationship])\n store.commit('addMuteId', id)\n })\n}\n\nconst unmuteUser = (store, id) => {\n const predictedRelationship = store.state.relationships[id] || { id }\n predictedRelationship.muting = false\n store.commit('updateUserRelationship', [predictedRelationship])\n\n return store.rootState.api.backendInteractor.unmuteUser({ id })\n .then((relationship) => store.commit('updateUserRelationship', [relationship]))\n}\n\nconst hideReblogs = (store, userId) => {\n return store.rootState.api.backendInteractor.followUser({ id: userId, reblogs: false })\n .then((relationship) => {\n store.commit('updateUserRelationship', [relationship])\n })\n}\n\nconst showReblogs = (store, userId) => {\n return store.rootState.api.backendInteractor.followUser({ id: userId, reblogs: true })\n .then((relationship) => store.commit('updateUserRelationship', [relationship]))\n}\n\nconst muteDomain = (store, domain) => {\n return store.rootState.api.backendInteractor.muteDomain({ domain })\n .then(() => store.commit('addDomainMute', domain))\n}\n\nconst unmuteDomain = (store, domain) => {\n return store.rootState.api.backendInteractor.unmuteDomain({ domain })\n .then(() => store.commit('removeDomainMute', domain))\n}\n\nexport const mutations = {\n tagUser (state, { user: { id }, tag }) {\n const user = state.usersObject[id]\n const tags = user.tags || []\n const newTags = tags.concat([tag])\n 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 user.tags = newTags\n },\n updateRight (state, { user: { id }, right, value }) {\n const user = state.usersObject[id]\n const newRights = user.rights\n newRights[right] = value\n user.rights = newRights\n },\n updateActivationStatus (state, { user: { id }, deactivated }) {\n const user = state.usersObject[id]\n user.deactivated = deactivated\n },\n setCurrentUser (state, user) {\n state.lastLoginName = user.screen_name\n state.currentUser = mergeWith(state.currentUser || {}, user, mergeArrayLength)\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 user.friendIds = []\n }\n },\n clearFollowers (state, userId) {\n const user = state.usersObject[userId]\n if (user) {\n user.followerIds = []\n }\n },\n addNewUsers (state, users) {\n each(users, (user) => {\n if (user.relationship) {\n state.relationships[user.relationship.id] = user.relationship\n }\n const res = mergeOrAdd(state.users, state.usersObject, user)\n const item = res.item\n if (res.new && item.screen_name && !item.screen_name.includes('@')) {\n state.usersByNameObject[item.screen_name.toLowerCase()] = item\n }\n })\n },\n updateUserRelationship (state, relationships) {\n relationships.forEach((relationship) => {\n state.relationships[relationship.id] = relationship\n })\n },\n updateUserInLists (state, { id, inLists }) {\n state.usersObject[id].inLists = inLists\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 setBlockIdsMaxId (state, blockIdsMaxId) {\n state.currentUser.blockIdsMaxId = blockIdsMaxId\n },\n saveMuteIds (state, muteIds) {\n state.currentUser.muteIds = muteIds\n },\n setMuteIdsMaxId (state, muteIdsMaxId) {\n state.currentUser.muteIdsMaxId = muteIdsMaxId\n },\n addMuteId (state, muteId) {\n if (state.currentUser.muteIds.indexOf(muteId) === -1) {\n state.currentUser.muteIds.push(muteId)\n }\n },\n saveDomainMutes (state, domainMutes) {\n state.currentUser.domainMutes = domainMutes\n },\n addDomainMute (state, domain) {\n if (state.currentUser.domainMutes.indexOf(domain) === -1) {\n state.currentUser.domainMutes.push(domain)\n }\n },\n removeDomainMute (state, domain) {\n const index = state.currentUser.domainMutes.indexOf(domain)\n if (index !== -1) {\n state.currentUser.domainMutes.splice(index, 1)\n }\n },\n setPinnedToUser (state, status) {\n const user = state.usersObject[status.user.id]\n user.pinnedStatusIds = user.pinnedStatusIds || []\n const index = user.pinnedStatusIds.indexOf(status.id)\n\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 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 return state.usersObject[query]\n },\n findUserByName: state => query => {\n return state.usersByNameObject[query.toLowerCase()]\n },\n findUserByUrl: state => query => {\n return state.users\n .find(u => u.statusnet_profile_url &&\n u.statusnet_profile_url.toLowerCase() === query.toLowerCase())\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 usersByNameObject: {},\n signUpPending: false,\n signUpErrors: [],\n relationships: {}\n}\n\nconst users = {\n state: defaultState,\n mutations,\n getters,\n actions: {\n fetchUserIfMissing (store, id) {\n if (!store.getters.findUser(id)) {\n store.dispatch('fetchUser', id)\n }\n },\n fetchUser (store, id) {\n return store.rootState.api.backendInteractor.fetchUser({ id })\n .then((user) => {\n store.commit('addNewUsers', [user])\n return user\n })\n },\n fetchUserByName (store, name) {\n return store.rootState.api.backendInteractor.fetchUserByName({ name })\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 fetchUserInLists (store, id) {\n if (store.state.currentUser) {\n store.rootState.api.backendInteractor.fetchUserInLists({ id })\n .then((inLists) => store.commit('updateUserInLists', { id, inLists }))\n }\n },\n fetchBlocks (store, args) {\n const { reset } = args || {}\n\n const maxId = store.state.currentUser.blockIdsMaxId\n return store.rootState.api.backendInteractor.fetchBlocks({ maxId })\n .then((blocks) => {\n if (reset) {\n store.commit('saveBlockIds', map(blocks, 'id'))\n } else {\n map(blocks, 'id').map(id => store.commit('addBlockId', id))\n }\n if (blocks.length) {\n store.commit('setBlockIdsMaxId', last(blocks).id)\n }\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 removeUserFromFollowers (store, id) {\n return removeUserFromFollowers(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 editUserNote (store, args) {\n return editUserNote(store, args)\n },\n fetchMutes (store, args) {\n const { reset } = args || {}\n\n const maxId = store.state.currentUser.muteIdsMaxId\n return store.rootState.api.backendInteractor.fetchMutes({ maxId })\n .then((mutes) => {\n if (reset) {\n store.commit('saveMuteIds', map(mutes, 'id'))\n } else {\n map(mutes, 'id').map(id => store.commit('addMuteId', id))\n }\n if (mutes.length) {\n store.commit('setMuteIdsMaxId', last(mutes).id)\n }\n store.commit('addNewUsers', mutes)\n return mutes\n })\n },\n muteUser (store, id) {\n return muteUser(store, id)\n },\n unmuteUser (store, id) {\n return unmuteUser(store, id)\n },\n hideReblogs (store, id) {\n return hideReblogs(store, id)\n },\n showReblogs (store, id) {\n return showReblogs(store, id)\n },\n muteUsers (store, ids = []) {\n return Promise.all(ids.map(id => muteUser(store, id)))\n },\n unmuteUsers (store, ids = []) {\n return Promise.all(ids.map(id => unmuteUser(store, id)))\n },\n fetchDomainMutes (store) {\n return store.rootState.api.backendInteractor.fetchDomainMutes()\n .then((domainMutes) => {\n store.commit('saveDomainMutes', domainMutes)\n return domainMutes\n })\n },\n muteDomain (store, domain) {\n return muteDomain(store, domain)\n },\n unmuteDomain (store, domain) {\n return unmuteDomain(store, domain)\n },\n muteDomains (store, domains = []) {\n return Promise.all(domains.map(domain => muteDomain(store, domain)))\n },\n unmuteDomains (store, domain = []) {\n return Promise.all(domain.map(domain => unmuteDomain(store, domain)))\n },\n fetchFriends ({ rootState, commit }, id) {\n const user = rootState.users.usersObject[id]\n const maxId = last(user.friendIds)\n return rootState.api.backendInteractor.fetchFriends({ id, maxId })\n .then((friends) => {\n commit('addNewUsers', friends)\n commit('saveFriendIds', { id, friendIds: map(friends, 'id') })\n return friends\n })\n },\n fetchFollowers ({ rootState, commit }, id) {\n const user = rootState.users.usersObject[id]\n const maxId = last(user.followerIds)\n return rootState.api.backendInteractor.fetchFollowers({ id, maxId })\n .then((followers) => {\n commit('addNewUsers', followers)\n commit('saveFollowerIds', { id, followerIds: map(followers, 'id') })\n return followers\n })\n },\n clearFriends ({ commit }, userId) {\n commit('clearFriends', userId)\n },\n clearFollowers ({ commit }, userId) {\n commit('clearFollowers', userId)\n },\n subscribeUser ({ rootState, commit }, id) {\n return rootState.api.backendInteractor.subscribeUser({ id })\n .then((relationship) => commit('updateUserRelationship', [relationship]))\n },\n unsubscribeUser ({ rootState, commit }, id) {\n return rootState.api.backendInteractor.unsubscribeUser({ id })\n .then((relationship) => commit('updateUserRelationship', [relationship]))\n },\n toggleActivationStatus ({ rootState, commit }, { user }) {\n const api = user.deactivated ? rootState.api.backendInteractor.activateUser : rootState.api.backendInteractor.deactivateUser\n api({ user })\n .then((user) => { const deactivated = !user.is_active; 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 ({ rootState, commit }, { query }) {\n return rootState.api.backendInteractor.searchUsers({ query })\n .then((users) => {\n commit('addNewUsers', users)\n return users\n })\n },\n async signUp (store, userInfo) {\n store.commit('signUpPending')\n\n const rootState = store.rootState\n\n try {\n const 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 const 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('stopFetchingLists')\n store.dispatch('stopFetchingFollowRequests')\n store.commit('clearNotifications')\n store.commit('resetStatuses')\n store.dispatch('resetChats')\n store.dispatch('setLastTimeline', 'public-timeline')\n store.dispatch('setLayoutWidth', windowWidth())\n store.dispatch('setLayoutHeight', windowHeight())\n store.commit('clearServerSideStorage')\n })\n },\n loginUser (store, accessToken) {\n return new Promise((resolve, reject) => {\n const commit = store.commit\n const dispatch = store.dispatch\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('setServerSideStorage', user)\n commit('addNewUsers', [user])\n\n dispatch('fetchEmoji')\n\n getNotificationPermission()\n .then(permission => commit('setNotificationPermission', permission))\n\n // Set our new backend interactor\n commit('setBackendInteractor', backendInteractorService(accessToken))\n dispatch('pushServerSideStorage')\n\n if (user.token) {\n dispatch('setWsToken', user.token)\n\n // Initialize the shout socket.\n dispatch('initializeSocket')\n }\n\n const startPolling = () => {\n // Start getting fresh posts.\n dispatch('startFetchingTimeline', { timeline: 'friends' })\n\n // Start fetching notifications\n dispatch('startFetchingNotifications')\n\n // Start fetching chats\n dispatch('startFetchingChats')\n }\n\n dispatch('startFetchingLists')\n\n if (user.locked) {\n dispatch('startFetchingFollowRequests')\n }\n\n if (store.getters.mergedConfig.useStreamingApi) {\n dispatch('fetchTimeline', { timeline: 'friends', since: null })\n dispatch('fetchNotifications', { since: null })\n dispatch('enableMastoSockets', true).catch((error) => {\n console.error('Failed initializing MastoAPI Streaming socket', error)\n }).then(() => {\n dispatch('fetchChats', { latest: true })\n setTimeout(() => dispatch('setNotificationsSilence', false), 10000)\n })\n } else {\n startPolling()\n }\n\n // Get user mutes\n dispatch('fetchMutes')\n\n dispatch('setLayoutWidth', windowWidth())\n dispatch('setLayoutHeight', windowHeight())\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\n // remove authentication token on client/authentication errors\n if ([400, 401, 403, 422].includes(response.status)) {\n commit('clearToken')\n }\n\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 { showDesktopNotification } from '../desktop_notification_utils/desktop_notification_utils.js'\n\nexport const maybeShowChatNotification = (store, chat) => {\n if (!chat.lastMessage) return\n if (store.rootState.chats.currentChatId === chat.id && !document.hidden) return\n if (store.rootState.users.currentUser.id === chat.lastMessage.account_id) return\n\n const opts = {\n tag: chat.lastMessage.id,\n title: chat.account.name,\n icon: chat.account.profile_image_url,\n body: chat.lastMessage.content\n }\n\n if (chat.lastMessage.attachment && chat.lastMessage.attachment.type === 'image') {\n opts.image = chat.lastMessage.attachment.preview_url\n }\n\n showDesktopNotification(store.rootState, opts)\n}\n\nexport const buildFakeMessage = ({ content, chatId, attachments, userId, idempotencyKey }) => {\n const fakeMessage = {\n content,\n chat_id: chatId,\n created_at: new Date(),\n id: `${new Date().getTime()}`,\n attachments,\n account_id: userId,\n idempotency_key: idempotencyKey,\n emojis: [],\n pending: true,\n isNormalized: true\n }\n\n if (attachments[0]) {\n fakeMessage.attachment = attachments[0]\n }\n\n return fakeMessage\n}\n","import backendInteractorService from '../services/backend_interactor_service/backend_interactor_service.js'\nimport { WSConnectionStatus } from '../services/api/api.service.js'\nimport { maybeShowChatNotification } from '../services/chat_utils/chat_utils.js'\nimport { Socket } from 'phoenix'\n\nconst retryTimeout = (multiplier) => 1000 * multiplier\n\nconst api = {\n state: {\n retryMultiplier: 1,\n backendInteractor: backendInteractorService(),\n fetchers: {},\n socket: null,\n mastoUserSocket: null,\n mastoUserSocketStatus: null,\n followRequests: []\n },\n getters: {\n followRequestCount: state => state.followRequests.length\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 state.fetchers[fetcherName].stop()\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 setMastoUserSocketStatus (state, value) {\n state.mastoUserSocketStatus = value\n },\n incrementRetryMultiplier (state) {\n state.retryMultiplier = Math.max(++state.retryMultiplier, 3)\n },\n resetRetryMultiplier (state) {\n state.retryMultiplier = 1\n }\n },\n actions: {\n /**\n * Global MastoAPI socket control, in future should disable ALL sockets/(re)start relevant sockets\n *\n * @param {Boolean} [initial] - whether this enabling happened at boot time or not\n */\n enableMastoSockets (store, initial) {\n const { state, dispatch, commit } = store\n // Do not initialize unless nonexistent or closed\n if (\n state.mastoUserSocket &&\n ![\n WebSocket.CLOSED,\n WebSocket.CLOSING\n ].includes(state.mastoUserSocket.getState())\n ) {\n return\n }\n if (initial) {\n commit('setMastoUserSocketStatus', WSConnectionStatus.STARTING_INITIAL)\n } else {\n commit('setMastoUserSocketStatus', WSConnectionStatus.STARTING)\n }\n return dispatch('startMastoUserSocket')\n },\n disableMastoSockets (store) {\n const { state, dispatch, commit } = store\n if (!state.mastoUserSocket) return\n commit('setMastoUserSocketStatus', WSConnectionStatus.DISABLED)\n return dispatch('stopMastoUserSocket')\n },\n\n // MastoAPI 'User' sockets\n startMastoUserSocket (store) {\n return new Promise((resolve, reject) => {\n try {\n const { state, commit, 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 } else if (message.event === 'status.update') {\n dispatch('addNewStatuses', {\n statuses: [message.status],\n userId: false,\n showImmediately: message.status.id in timelineData.visibleStatusesObject,\n timeline: 'friends'\n })\n } else if (message.event === 'delete') {\n dispatch('deleteStatusById', message.id)\n } else if (message.event === 'pleroma:chat_update') {\n // The setTimeout wrapper is a temporary band-aid to avoid duplicates for the user's own messages when doing optimistic sending.\n // The cause of the duplicates is the WS event arriving earlier than the HTTP response.\n // This setTimeout wrapper can be removed once the commit `8e41baff` is in the stable Pleroma release.\n // (`8e41baff` adds the idempotency key to the chat message entity, which PleromaFE uses when it's available, and it makes this artificial delay unnecessary).\n setTimeout(() => {\n dispatch('addChatMessages', {\n chatId: message.chatUpdate.id,\n messages: [message.chatUpdate.lastMessage]\n })\n dispatch('updateChat', { chat: message.chatUpdate })\n maybeShowChatNotification(store, message.chatUpdate)\n }, 100)\n }\n }\n )\n state.mastoUserSocket.addEventListener('open', () => {\n // Do not show notification when we just opened up the page\n if (state.mastoUserSocketStatus !== WSConnectionStatus.STARTING_INITIAL) {\n dispatch('pushGlobalNotice', {\n level: 'success',\n messageKey: 'timeline.socket_reconnected',\n timeout: 5000\n })\n }\n // Stop polling if we were errored or disabled\n if (new Set([\n WSConnectionStatus.ERROR,\n WSConnectionStatus.DISABLED\n ]).has(state.mastoUserSocketStatus)) {\n dispatch('stopFetchingTimeline', { timeline: 'friends' })\n dispatch('stopFetchingNotifications')\n dispatch('stopFetchingChats')\n }\n commit('resetRetryMultiplier')\n commit('setMastoUserSocketStatus', WSConnectionStatus.JOINED)\n })\n state.mastoUserSocket.addEventListener('error', ({ detail: error }) => {\n console.error('Error in MastoAPI websocket:', error)\n // TODO is this needed?\n dispatch('clearOpenedChats')\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 commit('setMastoUserSocketStatus', WSConnectionStatus.CLOSED)\n } else {\n console.warn(`MastoAPI websocket disconnected, restarting. CloseEvent code: ${code}`)\n setTimeout(() => {\n dispatch('startMastoUserSocket')\n }, retryTimeout(state.retryMultiplier))\n commit('incrementRetryMultiplier')\n if (state.mastoUserSocketStatus !== WSConnectionStatus.ERROR) {\n dispatch('startFetchingTimeline', { timeline: 'friends' })\n dispatch('startFetchingNotifications')\n dispatch('startFetchingChats')\n dispatch('pushGlobalNotice', {\n level: 'error',\n messageKey: 'timeline.socket_broke',\n messageArgs: [code],\n timeout: 5000\n })\n }\n commit('setMastoUserSocketStatus', WSConnectionStatus.ERROR)\n }\n dispatch('clearOpenedChats')\n })\n resolve()\n } catch (e) {\n reject(e)\n }\n })\n },\n stopMastoUserSocket ({ state, dispatch }) {\n dispatch('startFetchingTimeline', { timeline: 'friends' })\n dispatch('startFetchingNotifications')\n dispatch('startFetchingChats')\n state.mastoUserSocket.close()\n },\n\n // Timelines\n startFetchingTimeline (store, {\n timeline = 'friends',\n tag = false,\n userId = false,\n listId = false\n }) {\n if (store.state.fetchers[timeline]) return\n\n const fetcher = store.state.backendInteractor.startFetchingTimeline({\n timeline, store, userId, listId, 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 fetchTimeline (store, { timeline, ...rest }) {\n store.state.backendInteractor.fetchTimeline({\n store,\n timeline,\n ...rest\n })\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 fetchNotifications (store, { ...rest }) {\n store.state.backendInteractor.fetchNotifications({\n store,\n ...rest\n })\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 const requests = store.state.followRequests.filter((it) => it !== request)\n store.commit('setFollowRequests', requests)\n },\n\n // Lists\n startFetchingLists (store) {\n if (store.state.fetchers.lists) return\n const fetcher = store.state.backendInteractor.startFetchingLists({ store })\n store.commit('addFetcher', { fetcherName: 'lists', fetcher })\n },\n stopFetchingLists (store) {\n const fetcher = store.state.fetchers.lists\n if (!fetcher) return\n store.commit('removeFetcher', { fetcherName: 'lists', fetcher })\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.shoutAvailable && typeof token !== 'undefined' && state.socket === null) {\n const socket = new Socket('/socket', { params: { token } })\n socket.connect()\n\n commit('setSocket', socket)\n dispatch('initializeShout', 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","import { get, set } from 'lodash'\n\nconst defaultApi = ({ rootState, commit }, { path, value }) => {\n const params = {}\n set(params, path, value)\n return rootState\n .api\n .backendInteractor\n .updateProfile({ params })\n .then(result => {\n commit('addNewUsers', [result])\n commit('setCurrentUser', result)\n })\n}\n\nconst notificationsApi = ({ rootState, commit }, { path, value, oldValue }) => {\n const settings = {}\n set(settings, path, value)\n return rootState\n .api\n .backendInteractor\n .updateNotificationSettings({ settings })\n .then(result => {\n if (result.status === 'success') {\n commit('confirmProfileOption', { name, value })\n } else {\n commit('confirmProfileOption', { name, value: oldValue })\n }\n })\n}\n\n/**\n * Map that stores relation between path for reading (from user profile),\n * for writing (into API) an what API to use.\n *\n * Shorthand - instead of { get, set, api? } object it's possible to use string\n * in case default api is used and get = set\n *\n * If no api is specified, defaultApi is used (see above)\n */\nexport const settingsMap = {\n defaultScope: 'source.privacy',\n defaultNSFW: 'source.sensitive', // BROKEN: pleroma/pleroma#2837\n stripRichContent: {\n get: 'source.pleroma.no_rich_text',\n set: 'no_rich_text'\n },\n // Privacy\n locked: 'locked',\n acceptChatMessages: {\n get: 'pleroma.accepts_chat_messages',\n set: 'accepts_chat_messages'\n },\n allowFollowingMove: {\n get: 'pleroma.allow_following_move',\n set: 'allow_following_move'\n },\n discoverable: {\n get: 'source.pleroma.discoverable',\n set: 'discoverable'\n },\n hideFavorites: {\n get: 'pleroma.hide_favorites',\n set: 'hide_favorites'\n },\n hideFollowers: {\n get: 'pleroma.hide_followers',\n set: 'hide_followers'\n },\n hideFollows: {\n get: 'pleroma.hide_follows',\n set: 'hide_follows'\n },\n hideFollowersCount: {\n get: 'pleroma.hide_followers_count',\n set: 'hide_followers_count'\n },\n hideFollowsCount: {\n get: 'pleroma.hide_follows_count',\n set: 'hide_follows_count'\n },\n // NotificationSettingsAPIs\n webPushHideContents: {\n get: 'pleroma.notification_settings.hide_notification_contents',\n set: 'hide_notification_contents',\n api: notificationsApi\n },\n blockNotificationsFromStrangers: {\n get: 'pleroma.notification_settings.block_from_strangers',\n set: 'block_from_strangers',\n api: notificationsApi\n }\n}\n\nexport const defaultState = Object.fromEntries(Object.keys(settingsMap).map(key => [key, null]))\n\nconst profileConfig = {\n state: { ...defaultState },\n mutations: {\n confirmProfileOption (state, { name, value }) {\n set(state, name, value)\n },\n wipeProfileOption (state, { name }) {\n set(state, name, null)\n },\n wipeAllProfileOptions (state) {\n Object.keys(settingsMap).forEach(key => {\n set(state, key, null)\n })\n },\n // Set the settings based on their path location\n setCurrentUser (state, user) {\n Object.entries(settingsMap).forEach((map) => {\n const [name, value] = map\n const { get: path = value } = value\n set(state, name, get(user._original, path))\n })\n }\n },\n actions: {\n setProfileOption ({ rootState, state, commit, dispatch }, { name, value }) {\n const oldValue = get(state, name)\n const map = settingsMap[name]\n if (!map) throw new Error('Invalid server-side setting')\n const { set: path = map, api = defaultApi } = map\n commit('wipeProfileOption', { name })\n\n api({ rootState, commit }, { path, value, oldValue })\n .catch((e) => {\n console.warn('Error setting server-side option:', e)\n commit('confirmProfileOption', { name, value: oldValue })\n })\n },\n logout ({ commit }) {\n commit('wipeAllProfileOptions')\n }\n }\n}\n\nexport default profileConfig\n","import Modal from 'src/components/modal/modal.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport pleromaTan from 'src/assets/pleromatan_apology.png'\nimport pleromaTanFox from 'src/assets/pleromatan_apology_fox.png'\nimport pleromaTanMask from 'src/assets/pleromatan_apology_mask.png'\nimport pleromaTanFoxMask from 'src/assets/pleromatan_apology_fox_mask.png'\n\nimport {\n faTimes\n} from '@fortawesome/free-solid-svg-icons'\nlibrary.add(\n faTimes\n)\n\nexport const CURRENT_UPDATE_COUNTER = 1\n\nconst UpdateNotification = {\n data () {\n return {\n showingImage: false,\n pleromaTanVariant: Math.random() > 0.5 ? pleromaTan : pleromaTanFox,\n showingMore: false\n }\n },\n components: {\n Modal\n },\n computed: {\n pleromaTanStyles () {\n const mask = this.pleromaTanVariant === pleromaTan ? pleromaTanMask : pleromaTanFoxMask\n return {\n 'shape-outside': 'url(' + mask + ')'\n }\n },\n shouldShow () {\n return !this.$store.state.instance.disableUpdateNotification &&\n this.$store.state.users.currentUser &&\n this.$store.state.serverSideStorage.flagStorage.updateCounter < CURRENT_UPDATE_COUNTER &&\n !this.$store.state.serverSideStorage.prefsStorage.simple.dontShowUpdateNotifs\n }\n },\n methods: {\n toggleShow () {\n this.showingMore = !this.showingMore\n },\n neverShowAgain () {\n this.toggleShow()\n this.$store.commit('setFlag', { flag: 'updateCounter', value: CURRENT_UPDATE_COUNTER })\n this.$store.commit('setPreference', { path: 'simple.dontShowUpdateNotifs', value: true })\n this.$store.dispatch('pushServerSideStorage')\n },\n dismiss () {\n this.$store.commit('setFlag', { flag: 'updateCounter', value: CURRENT_UPDATE_COUNTER })\n this.$store.dispatch('pushServerSideStorage')\n }\n },\n mounted () {\n this.contentHeightNoImage = this.$refs.animatedText.scrollHeight\n\n // Workaround to get the text height only after mask loaded. A bit hacky.\n const newImg = new Image()\n newImg.onload = () => {\n setTimeout(() => { this.showingImage = true }, 100)\n }\n newImg.src = this.pleromaTanVariant === pleromaTan ? pleromaTanMask : pleromaTanFoxMask\n }\n}\n\nexport default UpdateNotification\n","import { toRaw } from 'vue'\nimport { isEqual, cloneDeep, set, get, clamp, flatten, groupBy, findLastIndex, takeRight, uniqWith } from 'lodash'\nimport { CURRENT_UPDATE_COUNTER } from 'src/components/update_notification/update_notification.js'\n\nexport const VERSION = 1\nexport const NEW_USER_DATE = new Date('2022-08-04') // date of writing this, basically\n\nexport const COMMAND_TRIM_FLAGS = 1000\nexport const COMMAND_TRIM_FLAGS_AND_RESET = 1001\n\nexport const defaultState = {\n // do we need to update data on server?\n dirty: false,\n // storage of flags - stuff that can only be set and incremented\n flagStorage: {\n updateCounter: 0, // Counter for most recent update notification seen\n reset: 0 // special flag that can be used to force-reset all flags, debug purposes only\n // special reset codes:\n // 1000: trim keys to those known by currently running FE\n // 1001: same as above + reset everything to 0\n },\n prefsStorage: {\n _journal: [],\n simple: {\n dontShowUpdateNotifs: false,\n collapseNav: false\n },\n collections: {\n pinnedNavItems: ['home', 'dms', 'chats']\n }\n },\n // raw data\n raw: null,\n // local cache\n cache: null\n}\n\nexport const newUserFlags = {\n ...defaultState.flagStorage,\n updateCounter: CURRENT_UPDATE_COUNTER // new users don't need to see update notification\n}\n\nexport const _moveItemInArray = (array, value, movement) => {\n const oldIndex = array.indexOf(value)\n const newIndex = oldIndex + movement\n const newArray = [...array]\n // remove old\n newArray.splice(oldIndex, 1)\n // add new\n newArray.splice(clamp(newIndex, 0, newArray.length + 1), 0, value)\n return newArray\n}\n\nconst _wrapData = (data, userName) => ({\n ...data,\n _user: userName,\n _timestamp: Date.now(),\n _version: VERSION\n})\n\nconst _checkValidity = (data) => data._timestamp > 0 && data._version > 0\n\nconst _verifyPrefs = (state) => {\n state.prefsStorage = state.prefsStorage || {\n simple: {},\n collections: {}\n }\n Object.entries(defaultState.prefsStorage.simple).forEach(([k, v]) => {\n if (typeof v === 'number' || typeof v === 'boolean') return\n console.warn(`Preference simple.${k} as invalid type, reinitializing`)\n set(state.prefsStorage.simple, k, defaultState.prefsStorage.simple[k])\n })\n Object.entries(defaultState.prefsStorage.collections).forEach(([k, v]) => {\n if (Array.isArray(v)) return\n console.warn(`Preference collections.${k} as invalid type, reinitializing`)\n set(state.prefsStorage.collections, k, defaultState.prefsStorage.collections[k])\n })\n}\n\nexport const _getRecentData = (cache, live) => {\n const result = { recent: null, stale: null, needUpload: false }\n const cacheValid = _checkValidity(cache || {})\n const liveValid = _checkValidity(live || {})\n if (!liveValid && cacheValid) {\n result.needUpload = true\n console.debug('Nothing valid stored on server, assuming cache to be source of truth')\n result.recent = cache\n result.stale = live\n } else if (!cacheValid && liveValid) {\n console.debug('Valid storage on server found, no local cache found, using live as source of truth')\n result.recent = live\n result.stale = cache\n } else if (cacheValid && liveValid) {\n console.debug('Both sources have valid data, figuring things out...')\n if (live._timestamp === cache._timestamp && live._version === cache._version) {\n console.debug('Same version/timestamp on both source, source of truth irrelevant')\n result.recent = cache\n result.stale = live\n } else {\n console.debug('Different timestamp, figuring out which one is more recent')\n if (live._timestamp < cache._timestamp) {\n result.recent = cache\n result.stale = live\n } else {\n result.recent = live\n result.stale = cache\n }\n }\n } else {\n console.debug('Both sources are invalid, start from scratch')\n result.needUpload = true\n }\n return result\n}\n\nexport const _getAllFlags = (recent, stale) => {\n return Array.from(new Set([\n ...Object.keys(toRaw((recent || {}).flagStorage || {})),\n ...Object.keys(toRaw((stale || {}).flagStorage || {}))\n ]))\n}\n\nexport const _mergeFlags = (recent, stale, allFlagKeys) => {\n if (!stale.flagStorage) return recent.flagStorage\n if (!recent.flagStorage) return stale.flagStorage\n return Object.fromEntries(allFlagKeys.map(flag => {\n const recentFlag = recent.flagStorage[flag]\n const staleFlag = stale.flagStorage[flag]\n // use flag that is of higher value\n return [flag, Number((recentFlag > staleFlag ? recentFlag : staleFlag) || 0)]\n }))\n}\n\nconst _mergeJournal = (...journals) => {\n // Ignore invalid journal entries\n const allJournals = flatten(\n journals.map(j => Array.isArray(j) ? j : [])\n ).filter(entry =>\n Object.prototype.hasOwnProperty.call(entry, 'path') &&\n Object.prototype.hasOwnProperty.call(entry, 'operation') &&\n Object.prototype.hasOwnProperty.call(entry, 'args') &&\n Object.prototype.hasOwnProperty.call(entry, 'timestamp')\n )\n const grouped = groupBy(allJournals, 'path')\n const trimmedGrouped = Object.entries(grouped).map(([path, journal]) => {\n // side effect\n journal.sort((a, b) => a.timestamp > b.timestamp ? 1 : -1)\n\n if (path.startsWith('collections')) {\n const lastRemoveIndex = findLastIndex(journal, ({ operation }) => operation === 'removeFromCollection')\n // everything before last remove is unimportant\n let remainder\n if (lastRemoveIndex > 0) {\n remainder = journal.slice(lastRemoveIndex)\n } else {\n // everything else doesn't need trimming\n remainder = journal\n }\n return uniqWith(remainder, (a, b) => {\n if (a.path !== b.path) { return false }\n if (a.operation !== b.operation) { return false }\n if (a.operation === 'addToCollection') {\n return a.args[0] === b.args[0]\n }\n return false\n })\n } else if (path.startsWith('simple')) {\n // Only the last record is important\n return takeRight(journal)\n } else {\n return journal\n }\n })\n return flatten(trimmedGrouped)\n .sort((a, b) => a.timestamp > b.timestamp ? 1 : -1)\n}\n\nexport const _mergePrefs = (recent, stale, allFlagKeys) => {\n if (!stale) return recent\n if (!recent) return stale\n const { _journal: recentJournal, ...recentData } = recent\n const { _journal: staleJournal } = stale\n /** Journal entry format:\n * path: path to entry in prefsStorage\n * timestamp: timestamp of the change\n * operation: operation type\n * arguments: array of arguments, depends on operation type\n *\n * currently only supported operation type is \"set\" which just sets the value\n * to requested one. Intended only to be used with simple preferences (boolean, number)\n * shouldn't be used with collections!\n */\n const resultOutput = { ...recentData }\n const totalJournal = _mergeJournal(staleJournal, recentJournal)\n totalJournal.forEach(({ path, timestamp, operation, command, args }) => {\n if (path.startsWith('_')) {\n console.error(`journal contains entry to edit internal (starts with _) field '${path}', something is incorrect here, ignoring.`)\n return\n }\n switch (operation) {\n case 'set':\n set(resultOutput, path, args[0])\n break\n case 'addToCollection':\n set(resultOutput, path, Array.from(new Set(get(resultOutput, path)).add(args[0])))\n break\n case 'removeFromCollection': {\n const newSet = new Set(get(resultOutput, path))\n newSet.delete(args[0])\n set(resultOutput, path, Array.from(newSet))\n break\n }\n case 'reorderCollection': {\n const [value, movement] = args\n set(resultOutput, path, _moveItemInArray(get(resultOutput, path), value, movement))\n break\n }\n default:\n console.error(`Unknown journal operation: '${operation}', did we forget to run reverse migrations beforehand?`)\n }\n })\n return { ...resultOutput, _journal: totalJournal }\n}\n\nexport const _resetFlags = (totalFlags, knownKeys = defaultState.flagStorage) => {\n let result = { ...totalFlags }\n const allFlagKeys = Object.keys(totalFlags)\n // flag reset functionality\n if (totalFlags.reset >= COMMAND_TRIM_FLAGS && totalFlags.reset <= COMMAND_TRIM_FLAGS_AND_RESET) {\n console.debug('Received command to trim the flags')\n const knownKeysSet = new Set(Object.keys(knownKeys))\n\n // Trim\n result = {}\n allFlagKeys.forEach(flag => {\n if (knownKeysSet.has(flag)) {\n result[flag] = totalFlags[flag]\n }\n })\n\n // Reset\n if (totalFlags.reset === COMMAND_TRIM_FLAGS_AND_RESET) {\n // 1001 - and reset everything to 0\n console.debug('Received command to reset the flags')\n Object.keys(knownKeys).forEach(flag => { result[flag] = 0 })\n }\n } else if (totalFlags.reset > 0 && totalFlags.reset < 9000) {\n console.debug('Received command to reset the flags')\n allFlagKeys.forEach(flag => { result[flag] = 0 })\n }\n result.reset = 0\n return result\n}\n\nexport const _doMigrations = (cache) => {\n if (!cache) return cache\n\n if (cache._version < VERSION) {\n console.debug('Local cached data has older version, seeing if there any migrations that can be applied')\n\n // no migrations right now since we only have one version\n console.debug('No migrations found')\n }\n\n if (cache._version > VERSION) {\n console.debug('Local cached data has newer version, seeing if there any reverse migrations that can be applied')\n\n // no reverse migrations right now but we leave a possibility of loading a hotpatch if need be\n if (window._PLEROMA_HOTPATCH) {\n if (window._PLEROMA_HOTPATCH.reverseMigrations) {\n console.debug('Found hotpatch migration, applying')\n return window._PLEROMA_HOTPATCH.reverseMigrations.call({}, 'serverSideStorage', { from: cache._version, to: VERSION }, cache)\n }\n }\n }\n\n return cache\n}\n\nexport const mutations = {\n clearServerSideStorage (state, userData) {\n state = { ...cloneDeep(defaultState) }\n },\n setServerSideStorage (state, userData) {\n const live = userData.storage\n state.raw = live\n let cache = state.cache\n if (cache && cache._user !== userData.fqn) {\n console.warn('cache belongs to another user! reinitializing local cache!')\n cache = null\n }\n\n cache = _doMigrations(cache)\n\n let { recent, stale, needsUpload } = _getRecentData(cache, live)\n\n const userNew = userData.created_at > NEW_USER_DATE\n const flagsTemplate = userNew ? newUserFlags : defaultState.flagStorage\n let dirty = false\n\n if (recent === null) {\n console.debug(`Data is empty, initializing for ${userNew ? 'new' : 'existing'} user`)\n recent = _wrapData({\n flagStorage: { ...flagsTemplate },\n prefsStorage: { ...defaultState.prefsStorage }\n })\n }\n\n if (!needsUpload && recent && stale) {\n console.debug('Checking if data needs merging...')\n // discarding timestamps and versions\n const { _timestamp: _0, _version: _1, ...recentData } = recent\n const { _timestamp: _2, _version: _3, ...staleData } = stale\n dirty = !isEqual(recentData, staleData)\n console.debug(`Data ${dirty ? 'needs' : 'doesn\\'t need'} merging`)\n }\n\n const allFlagKeys = _getAllFlags(recent, stale)\n let totalFlags\n let totalPrefs\n if (dirty) {\n // Merge the flags\n console.debug('Merging the data...')\n totalFlags = _mergeFlags(recent, stale, allFlagKeys)\n _verifyPrefs(recent)\n _verifyPrefs(stale)\n totalPrefs = _mergePrefs(recent.prefsStorage, stale.prefsStorage)\n } else {\n totalFlags = recent.flagStorage\n totalPrefs = recent.prefsStorage\n }\n\n totalFlags = _resetFlags(totalFlags)\n\n recent.flagStorage = { ...flagsTemplate, ...totalFlags }\n recent.prefsStorage = { ...defaultState.prefsStorage, ...totalPrefs }\n\n state.dirty = dirty || needsUpload\n state.cache = recent\n // set local timestamp to smaller one if we don't have any changes\n if (stale && recent && !state.dirty) {\n state.cache._timestamp = Math.min(stale._timestamp, recent._timestamp)\n }\n state.flagStorage = state.cache.flagStorage\n state.prefsStorage = state.cache.prefsStorage\n },\n setFlag (state, { flag, value }) {\n state.flagStorage[flag] = value\n state.dirty = true\n },\n setPreference (state, { path, value }) {\n if (path.startsWith('_')) {\n console.error(`tried to edit internal (starts with _) field '${path}', ignoring.`)\n return\n }\n set(state.prefsStorage, path, value)\n state.prefsStorage._journal = [\n ...state.prefsStorage._journal,\n { operation: 'set', path, args: [value], timestamp: Date.now() }\n ]\n state.dirty = true\n },\n addCollectionPreference (state, { path, value }) {\n if (path.startsWith('_')) {\n console.error(`tried to edit internal (starts with _) field '${path}', ignoring.`)\n return\n }\n const collection = new Set(get(state.prefsStorage, path))\n collection.add(value)\n set(state.prefsStorage, path, [...collection])\n state.prefsStorage._journal = [\n ...state.prefsStorage._journal,\n { operation: 'addToCollection', path, args: [value], timestamp: Date.now() }\n ]\n state.dirty = true\n },\n removeCollectionPreference (state, { path, value }) {\n if (path.startsWith('_')) {\n console.error(`tried to edit internal (starts with _) field '${path}', ignoring.`)\n return\n }\n const collection = new Set(get(state.prefsStorage, path))\n collection.delete(value)\n set(state.prefsStorage, path, [...collection])\n state.prefsStorage._journal = [\n ...state.prefsStorage._journal,\n { operation: 'removeFromCollection', path, args: [value], timestamp: Date.now() }\n ]\n state.dirty = true\n },\n reorderCollectionPreference (state, { path, value, movement }) {\n if (path.startsWith('_')) {\n console.error(`tried to edit internal (starts with _) field '${path}', ignoring.`)\n return\n }\n const collection = get(state.prefsStorage, path)\n const newCollection = _moveItemInArray(collection, value, movement)\n set(state.prefsStorage, path, newCollection)\n state.prefsStorage._journal = [\n ...state.prefsStorage._journal,\n { operation: 'arrangeCollection', path, args: [value], timestamp: Date.now() }\n ]\n state.dirty = true\n },\n updateCache (state, { username }) {\n state.prefsStorage._journal = _mergeJournal(state.prefsStorage._journal)\n state.cache = _wrapData({\n flagStorage: toRaw(state.flagStorage),\n prefsStorage: toRaw(state.prefsStorage)\n }, username)\n }\n}\n\nconst serverSideStorage = {\n state: {\n ...cloneDeep(defaultState)\n },\n mutations,\n actions: {\n pushServerSideStorage ({ state, rootState, commit }, { force = false } = {}) {\n const needPush = state.dirty || force\n console.log(needPush)\n if (!needPush) return\n commit('updateCache', { username: rootState.users.currentUser.fqn })\n const params = { pleroma_settings_store: { 'pleroma-fe': state.cache } }\n rootState.api.backendInteractor\n .updateProfile({ params })\n .then((user) => {\n commit('setServerSideStorage', user)\n state.dirty = false\n })\n }\n }\n}\n\nexport default serverSideStorage\n","import { set, get, cloneDeep, differenceWith, isEqual, flatten } from 'lodash'\n\nexport const defaultState = {\n frontends: [],\n loaded: false,\n needsReboot: null,\n config: null,\n modifiedPaths: null,\n descriptions: null,\n draft: null,\n dbConfigEnabled: null\n}\n\nexport const newUserFlags = {\n ...defaultState.flagStorage\n}\n\nconst adminSettingsStorage = {\n state: {\n ...cloneDeep(defaultState)\n },\n mutations: {\n setInstanceAdminNoDbConfig (state) {\n state.loaded = false\n state.dbConfigEnabled = false\n },\n setAvailableFrontends (state, { frontends }) {\n state.frontends = frontends.map(f => {\n f.installedRefs = f.installed_refs\n if (f.name === 'pleroma-fe') {\n f.refs = ['master', 'develop']\n } else {\n f.refs = [f.ref]\n }\n return f\n })\n },\n updateAdminSettings (state, { config, modifiedPaths }) {\n state.loaded = true\n state.dbConfigEnabled = true\n state.config = config\n state.modifiedPaths = modifiedPaths\n },\n updateAdminDescriptions (state, { descriptions }) {\n state.descriptions = descriptions\n },\n updateAdminDraft (state, { path, value }) {\n const [group, key, subkey] = path\n const parent = [group, key, subkey]\n\n set(state.draft, path, value)\n\n // force-updating grouped draft to trigger refresh of group settings\n if (path.length > parent.length) {\n set(state.draft, parent, cloneDeep(get(state.draft, parent)))\n }\n },\n resetAdminDraft (state) {\n state.draft = cloneDeep(state.config)\n }\n },\n actions: {\n loadFrontendsStuff ({ state, rootState, dispatch, commit }) {\n rootState.api.backendInteractor.fetchAvailableFrontends()\n .then(frontends => commit('setAvailableFrontends', { frontends }))\n },\n loadAdminStuff ({ state, rootState, dispatch, commit }) {\n rootState.api.backendInteractor.fetchInstanceDBConfig()\n .then(backendDbConfig => {\n if (backendDbConfig.error) {\n if (backendDbConfig.error.status === 400) {\n backendDbConfig.error.json().then(errorJson => {\n if (/configurable_from_database/.test(errorJson.error)) {\n commit('setInstanceAdminNoDbConfig')\n }\n })\n }\n } else {\n dispatch('setInstanceAdminSettings', { backendDbConfig })\n }\n })\n if (state.descriptions === null) {\n rootState.api.backendInteractor.fetchInstanceConfigDescriptions()\n .then(backendDescriptions => dispatch('setInstanceAdminDescriptions', { backendDescriptions }))\n }\n },\n setInstanceAdminSettings ({ state, commit, dispatch }, { backendDbConfig }) {\n const config = state.config || {}\n const modifiedPaths = new Set()\n backendDbConfig.configs.forEach(c => {\n const path = [c.group, c.key]\n if (c.db) {\n // Path elements can contain dot, therefore we use ' -> ' as a separator instead\n // Using strings for modified paths for easier searching\n c.db.forEach(x => modifiedPaths.add([...path, x].join(' -> ')))\n }\n const convert = (value) => {\n if (Array.isArray(value) && value.length > 0 && value[0].tuple) {\n return value.reduce((acc, c) => {\n return { ...acc, [c.tuple[0]]: convert(c.tuple[1]) }\n }, {})\n } else {\n return value\n }\n }\n set(config, path, convert(c.value))\n })\n console.log(config[':pleroma'])\n commit('updateAdminSettings', { config, modifiedPaths })\n commit('resetAdminDraft')\n },\n setInstanceAdminDescriptions ({ state, commit, dispatch }, { backendDescriptions }) {\n const convert = ({ children, description, label, key = '<ROOT>', group, suggestions }, path, acc) => {\n const newPath = group ? [group, key] : [key]\n const obj = { description, label, suggestions }\n if (Array.isArray(children)) {\n children.forEach(c => {\n convert(c, newPath, obj)\n })\n }\n set(acc, newPath, obj)\n }\n\n const descriptions = {}\n backendDescriptions.forEach(d => convert(d, '', descriptions))\n console.log(descriptions[':pleroma']['Pleroma.Captcha'])\n commit('updateAdminDescriptions', { descriptions })\n },\n\n // This action takes draft state, diffs it with live config state and then pushes\n // only differences between the two. Difference detection only work up to subkey (third) level.\n pushAdminDraft ({ rootState, state, commit, dispatch }) {\n // TODO cleanup paths in modifiedPaths\n const convert = (value) => {\n if (typeof value !== 'object') {\n return value\n } else if (Array.isArray(value)) {\n return value.map(convert)\n } else {\n return Object.entries(value).map(([k, v]) => ({ tuple: [k, v] }))\n }\n }\n\n // Getting all group-keys used in config\n const allGroupKeys = flatten(\n Object\n .entries(state.config)\n .map(\n ([group, lv1data]) => Object\n .keys(lv1data)\n .map((key) => ({ group, key }))\n )\n )\n\n // Only using group-keys where there are changes detected\n const changedGroupKeys = allGroupKeys.filter(({ group, key }) => {\n return !isEqual(state.config[group][key], state.draft[group][key])\n })\n\n // Here we take all changed group-keys and get all changed subkeys\n const changed = changedGroupKeys.map(({ group, key }) => {\n const config = state.config[group][key]\n const draft = state.draft[group][key]\n\n // We convert group-key value into entries arrays\n const eConfig = Object.entries(config)\n const eDraft = Object.entries(draft)\n\n // Then those entries array we diff so only changed subkey entries remain\n // We use the diffed array to reconstruct the object and then shove it into convert()\n return ({ group, key, value: convert(Object.fromEntries(differenceWith(eDraft, eConfig, isEqual))) })\n })\n\n rootState.api.backendInteractor.pushInstanceDBConfig({\n payload: {\n configs: changed\n }\n })\n .then(() => rootState.api.backendInteractor.fetchInstanceDBConfig())\n .then(backendDbConfig => dispatch('setInstanceAdminSettings', { backendDbConfig }))\n },\n pushAdminSetting ({ rootState, state, commit, dispatch }, { path, value }) {\n const [group, key, ...rest] = Array.isArray(path) ? path : path.split(/\\./g)\n const clone = {} // not actually cloning the entire thing to avoid excessive writes\n set(clone, rest, value)\n\n // TODO cleanup paths in modifiedPaths\n const convert = (value) => {\n if (typeof value !== 'object') {\n return value\n } else if (Array.isArray(value)) {\n return value.map(convert)\n } else {\n return Object.entries(value).map(([k, v]) => ({ tuple: [k, v] }))\n }\n }\n\n rootState.api.backendInteractor.pushInstanceDBConfig({\n payload: {\n configs: [{\n group,\n key,\n value: convert(clone)\n }]\n }\n })\n .then(() => rootState.api.backendInteractor.fetchInstanceDBConfig())\n .then(backendDbConfig => dispatch('setInstanceAdminSettings', { backendDbConfig }))\n },\n resetAdminSetting ({ rootState, state, commit, dispatch }, { path }) {\n const [group, key, subkey] = path.split(/\\./g)\n\n state.modifiedPaths.delete(path)\n\n return rootState.api.backendInteractor.pushInstanceDBConfig({\n payload: {\n configs: [{\n group,\n key,\n delete: true,\n subkeys: [subkey]\n }]\n }\n })\n .then(() => rootState.api.backendInteractor.fetchInstanceDBConfig())\n .then(backendDbConfig => dispatch('setInstanceAdminSettings', { backendDbConfig }))\n }\n }\n}\n\nexport default adminSettingsStorage\n","const shout = {\n state: {\n messages: [],\n channel: { state: '' },\n joined: false\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 setJoined (state, joined) {\n state.joined = joined\n }\n },\n actions: {\n initializeShout (store, socket) {\n const channel = socket.channel('chat:public')\n channel.joinPush.receive('ok', () => {\n store.commit('setJoined', true)\n })\n channel.onClose(() => {\n store.commit('setJoined', false)\n })\n channel.onError(() => {\n store.commit('setJoined', false)\n })\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 shout\n","const 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 delete 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'\nconst supportedTypes = new Set(['image', 'video', 'audio', 'flash'])\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 setCurrentMedia (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 supportedTypes.has(type)\n })\n commit('setMedia', media)\n },\n setCurrentMedia ({ commit, state }, current) {\n const index = state.media.indexOf(current)\n commit('setCurrentMedia', 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 reportModal: {\n userId: null,\n statuses: [],\n preTickedIds: [],\n activated: false\n },\n reports: {}\n },\n mutations: {\n openUserReportingModal (state, { userId, statuses, preTickedIds }) {\n state.reportModal.userId = userId\n state.reportModal.statuses = statuses\n state.reportModal.preTickedIds = preTickedIds\n state.reportModal.activated = true\n },\n closeUserReportingModal (state) {\n state.reportModal.activated = false\n },\n setReportState (reportsState, { id, state }) {\n reportsState.reports[id].state = state\n },\n addReport (state, report) {\n state.reports[report.id] = report\n }\n },\n actions: {\n openUserReportingModal ({ rootState, commit }, { userId, statusIds = [] }) {\n const preTickedStatuses = statusIds.map(id => rootState.statuses.allStatusesObject[id])\n const preTickedIds = statusIds\n const statuses = preTickedStatuses.concat(\n filter(rootState.statuses.allStatuses,\n status => status.user.id === userId && !preTickedIds.includes(status.id)\n )\n )\n commit('openUserReportingModal', { userId, statuses, preTickedIds })\n },\n closeUserReportingModal ({ commit }) {\n commit('closeUserReportingModal')\n },\n setReportState ({ commit, dispatch, rootState }, { id, state }) {\n const oldState = rootState.reports.reports[id].state\n commit('setReportState', { id, state })\n rootState.api.backendInteractor.setReportState({ id, state }).catch(e => {\n console.error('Failed to set report state', e)\n dispatch('pushGlobalNotice', {\n level: 'error',\n messageKey: 'general.generic_error_message',\n messageArgs: [e.message],\n timeout: 5000\n })\n commit('setReportState', { id, state: oldState })\n })\n },\n addReport ({ commit }, report) {\n commit('addReport', report)\n }\n }\n}\n\nexport default reports\n","import { merge } from 'lodash'\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 state.pollsObject[poll.id] = merge(existingPoll, poll)\n } else {\n state.pollsObject[poll.id] = poll\n }\n },\n trackPoll (state, pollId) {\n const currentValue = state.trackedPolls[pollId]\n if (currentValue) {\n state.trackedPolls[pollId] = currentValue + 1\n } else {\n state.trackedPolls[pollId] = 1\n }\n },\n untrackPoll (state, pollId) {\n const currentValue = state.trackedPolls[pollId]\n if (currentValue) {\n state.trackedPolls[pollId] = currentValue - 1\n } else {\n 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 resetPostStatusModal (state) {\n state.params = null\n }\n },\n actions: {\n openPostStatusModal ({ commit }, params) {\n commit('openPostStatusModal', params)\n },\n closePostStatusModal ({ commit }) {\n commit('closePostStatusModal')\n },\n resetPostStatusModal ({ commit }) {\n commit('resetPostStatusModal')\n }\n }\n}\n\nexport default postStatus\n","const editStatus = {\n state: {\n params: null,\n modalActivated: false\n },\n mutations: {\n openEditStatusModal (state, params) {\n state.params = params\n state.modalActivated = true\n },\n closeEditStatusModal (state) {\n state.modalActivated = false\n }\n },\n actions: {\n openEditStatusModal ({ commit }, params) {\n commit('openEditStatusModal', params)\n },\n closeEditStatusModal ({ commit }) {\n commit('closeEditStatusModal')\n }\n }\n}\n\nexport default editStatus\n","const statusHistory = {\n state: {\n params: {},\n modalActivated: false\n },\n mutations: {\n openStatusHistoryModal (state, params) {\n state.params = params\n state.modalActivated = true\n },\n closeStatusHistoryModal (state) {\n state.modalActivated = false\n }\n },\n actions: {\n openStatusHistoryModal ({ commit }, params) {\n commit('openStatusHistoryModal', params)\n },\n closeStatusHistoryModal ({ commit }) {\n commit('closeStatusHistoryModal')\n }\n }\n}\n\nexport default statusHistory\n","import _ from 'lodash'\n\nconst empty = (chatId) => {\n return {\n idIndex: {},\n idempotencyKeyIndex: {},\n messages: [],\n newMessageCount: 0,\n lastSeenMessageId: '0',\n chatId,\n minId: undefined,\n maxId: undefined\n }\n}\n\nconst clear = (storage) => {\n const failedMessageIds = []\n\n for (const message of storage.messages) {\n if (message.error) {\n failedMessageIds.push(message.id)\n } else {\n delete storage.idIndex[message.id]\n delete storage.idempotencyKeyIndex[message.idempotency_key]\n }\n }\n\n storage.messages = storage.messages.filter(m => failedMessageIds.includes(m.id))\n storage.newMessageCount = 0\n storage.lastSeenMessageId = '0'\n storage.minId = undefined\n storage.maxId = undefined\n}\n\nconst deleteMessage = (storage, messageId) => {\n if (!storage) { return }\n storage.messages = storage.messages.filter(m => m.id !== messageId)\n delete storage.idIndex[messageId]\n\n if (storage.maxId === messageId) {\n const lastMessage = _.maxBy(storage.messages, 'id')\n storage.maxId = lastMessage.id\n }\n\n if (storage.minId === messageId) {\n const firstMessage = _.minBy(storage.messages, 'id')\n storage.minId = firstMessage.id\n }\n}\n\nconst cullOlderMessages = (storage) => {\n const maxIndex = storage.messages.length\n const minIndex = maxIndex - 50\n if (maxIndex <= 50) return\n\n storage.messages = _.sortBy(storage.messages, ['id'])\n storage.minId = storage.messages[minIndex].id\n for (const message of storage.messages) {\n if (message.id < storage.minId) {\n delete storage.idIndex[message.id]\n delete storage.idempotencyKeyIndex[message.idempotency_key]\n }\n }\n storage.messages = storage.messages.slice(minIndex, maxIndex)\n}\n\nconst handleMessageError = (storage, fakeId, isRetry) => {\n if (!storage) { return }\n const fakeMessage = storage.idIndex[fakeId]\n if (fakeMessage) {\n fakeMessage.error = true\n fakeMessage.pending = false\n if (!isRetry) {\n // Ensure the failed message doesn't stay at the bottom of the list.\n const lastPersistedMessage = _.orderBy(storage.messages, ['pending', 'id'], ['asc', 'desc'])[0]\n if (lastPersistedMessage) {\n const oldId = fakeMessage.id\n fakeMessage.id = `${lastPersistedMessage.id}-${new Date().getTime()}`\n storage.idIndex[fakeMessage.id] = fakeMessage\n delete storage.idIndex[oldId]\n }\n }\n }\n}\n\nconst add = (storage, { messages: newMessages, updateMaxId = true }) => {\n if (!storage) { return }\n for (let i = 0; i < newMessages.length; i++) {\n const message = newMessages[i]\n\n // sanity check\n if (message.chat_id !== storage.chatId) { return }\n\n if (message.fakeId) {\n const fakeMessage = storage.idIndex[message.fakeId]\n if (fakeMessage) {\n // In case the same id exists (chat update before POST response)\n // make sure to remove the older duplicate message.\n if (storage.idIndex[message.id]) {\n delete storage.idIndex[message.id]\n storage.messages = storage.messages.filter(msg => msg.id !== message.id)\n }\n Object.assign(fakeMessage, message, { error: false })\n delete fakeMessage.fakeId\n storage.idIndex[fakeMessage.id] = fakeMessage\n delete storage.idIndex[message.fakeId]\n\n return\n }\n }\n\n if (!storage.minId || (!message.pending && message.id < storage.minId)) {\n storage.minId = message.id\n }\n\n if (!storage.maxId || message.id > storage.maxId) {\n if (updateMaxId) {\n storage.maxId = message.id\n }\n }\n\n if (!storage.idIndex[message.id] && !isConfirmation(storage, message)) {\n if (storage.lastSeenMessageId < message.id) {\n storage.newMessageCount++\n }\n storage.idIndex[message.id] = message\n storage.messages.push(storage.idIndex[message.id])\n storage.idempotencyKeyIndex[message.idempotency_key] = true\n }\n }\n}\n\nconst isConfirmation = (storage, message) => {\n if (!message.idempotency_key) return\n return storage.idempotencyKeyIndex[message.idempotency_key]\n}\n\nconst resetNewMessageCount = (storage) => {\n if (!storage) { return }\n storage.newMessageCount = 0\n storage.lastSeenMessageId = storage.maxId\n}\n\n// Inserts date separators and marks the head and tail if it's the chain of messages made by the same user\nconst getView = (storage) => {\n if (!storage) { return [] }\n\n const result = []\n const messages = _.orderBy(storage.messages, ['pending', 'id'], ['asc', 'asc'])\n const firstMessage = messages[0]\n let previousMessage = messages[messages.length - 1]\n let currentMessageChainId\n\n if (firstMessage) {\n const date = new Date(firstMessage.created_at)\n date.setHours(0, 0, 0, 0)\n result.push({\n type: 'date',\n date,\n id: date.getTime().toString()\n })\n }\n\n let afterDate = false\n\n for (let i = 0; i < messages.length; i++) {\n const message = messages[i]\n const nextMessage = messages[i + 1]\n\n const date = new Date(message.created_at)\n date.setHours(0, 0, 0, 0)\n\n // insert date separator and start a new message chain\n if (previousMessage && previousMessage.date < date) {\n result.push({\n type: 'date',\n date,\n id: date.getTime().toString()\n })\n\n previousMessage.isTail = true\n currentMessageChainId = undefined\n afterDate = true\n }\n\n const object = {\n type: 'message',\n data: message,\n date,\n id: message.id,\n messageChainId: currentMessageChainId\n }\n\n // end a message chian\n if ((nextMessage && nextMessage.account_id) !== message.account_id) {\n object.isTail = true\n currentMessageChainId = undefined\n }\n\n // start a new message chain\n if ((previousMessage && previousMessage.data && previousMessage.data.account_id) !== message.account_id || afterDate) {\n currentMessageChainId = _.uniqueId()\n object.isHead = true\n object.messageChainId = currentMessageChainId\n }\n\n result.push(object)\n previousMessage = object\n afterDate = false\n }\n\n return result\n}\n\nconst ChatService = {\n add,\n empty,\n getView,\n deleteMessage,\n cullOlderMessages,\n resetNewMessageCount,\n clear,\n handleMessageError\n}\n\nexport default ChatService\n","import { reactive } from 'vue'\nimport { find, omitBy, orderBy, sumBy } from 'lodash'\nimport chatService from '../services/chat_service/chat_service.js'\nimport { parseChat, parseChatMessage } from '../services/entity_normalizer/entity_normalizer.service.js'\nimport { maybeShowChatNotification } from '../services/chat_utils/chat_utils.js'\nimport { promiseInterval } from '../services/promise_interval/promise_interval.js'\n\nconst emptyChatList = () => ({\n data: [],\n idStore: {}\n})\n\nconst defaultState = {\n chatList: emptyChatList(),\n chatListFetcher: null,\n openedChats: reactive({}),\n openedChatMessageServices: reactive({}),\n fetcher: undefined,\n currentChatId: null,\n lastReadMessageId: null\n}\n\nconst getChatById = (state, id) => {\n return find(state.chatList.data, { id })\n}\n\nconst sortedChatList = (state) => {\n return orderBy(state.chatList.data, ['updated_at'], ['desc'])\n}\n\nconst unreadChatCount = (state) => {\n return sumBy(state.chatList.data, 'unread')\n}\n\nconst chats = {\n state: { ...defaultState },\n getters: {\n currentChat: state => state.openedChats[state.currentChatId],\n currentChatMessageService: state => state.openedChatMessageServices[state.currentChatId],\n findOpenedChatByRecipientId: state => recipientId => find(state.openedChats, c => c.account.id === recipientId),\n sortedChatList,\n unreadChatCount\n },\n actions: {\n // Chat list\n startFetchingChats ({ dispatch, commit }) {\n const fetcher = () => dispatch('fetchChats', { latest: true })\n fetcher()\n commit('setChatListFetcher', {\n fetcher: () => promiseInterval(fetcher, 5000)\n })\n },\n stopFetchingChats ({ commit }) {\n commit('setChatListFetcher', { fetcher: undefined })\n },\n fetchChats ({ dispatch, rootState, commit }, params = {}) {\n return rootState.api.backendInteractor.chats()\n .then(({ chats }) => {\n dispatch('addNewChats', { chats })\n return chats\n })\n },\n addNewChats (store, { chats }) {\n const { commit, dispatch, rootGetters } = store\n const newChatMessageSideEffects = (chat) => {\n maybeShowChatNotification(store, chat)\n }\n commit('addNewUsers', chats.map(k => k.account).filter(k => k))\n commit('addNewChats', { dispatch, chats, rootGetters, newChatMessageSideEffects })\n },\n updateChat ({ commit }, { chat }) {\n commit('updateChat', { chat })\n },\n\n // Opened Chats\n startFetchingCurrentChat ({ commit, dispatch }, { fetcher }) {\n dispatch('setCurrentChatFetcher', { fetcher })\n },\n setCurrentChatFetcher ({ rootState, commit }, { fetcher }) {\n commit('setCurrentChatFetcher', { fetcher })\n },\n addOpenedChat ({ rootState, commit, dispatch }, { chat }) {\n commit('addOpenedChat', { dispatch, chat: parseChat(chat) })\n dispatch('addNewUsers', [chat.account])\n },\n addChatMessages ({ commit }, value) {\n commit('addChatMessages', { commit, ...value })\n },\n resetChatNewMessageCount ({ commit }, value) {\n commit('resetChatNewMessageCount', value)\n },\n clearCurrentChat ({ rootState, commit, dispatch }, value) {\n commit('setCurrentChatId', { chatId: undefined })\n commit('setCurrentChatFetcher', { fetcher: undefined })\n },\n readChat ({ rootState, commit, dispatch }, { id, lastReadId }) {\n const isNewMessage = rootState.chats.lastReadMessageId !== lastReadId\n\n dispatch('resetChatNewMessageCount')\n commit('readChat', { id, lastReadId })\n\n if (isNewMessage) {\n rootState.api.backendInteractor.readChat({ id, lastReadId })\n }\n },\n deleteChatMessage ({ rootState, commit }, value) {\n rootState.api.backendInteractor.deleteChatMessage(value)\n commit('deleteChatMessage', { commit, ...value })\n },\n resetChats ({ commit, dispatch }) {\n dispatch('clearCurrentChat')\n commit('resetChats', { commit })\n },\n clearOpenedChats ({ rootState, commit, dispatch, rootGetters }) {\n commit('clearOpenedChats', { commit })\n },\n handleMessageError ({ commit }, value) {\n commit('handleMessageError', { commit, ...value })\n },\n cullOlderMessages ({ commit }, chatId) {\n commit('cullOlderMessages', chatId)\n }\n },\n mutations: {\n setChatListFetcher (state, { commit, fetcher }) {\n const prevFetcher = state.chatListFetcher\n if (prevFetcher) {\n prevFetcher.stop()\n }\n state.chatListFetcher = fetcher && fetcher()\n },\n setCurrentChatFetcher (state, { fetcher }) {\n const prevFetcher = state.fetcher\n if (prevFetcher) {\n prevFetcher.stop()\n }\n state.fetcher = fetcher && fetcher()\n },\n addOpenedChat (state, { _dispatch, chat }) {\n state.currentChatId = chat.id\n state.openedChats[chat.id] = chat\n\n if (!state.openedChatMessageServices[chat.id]) {\n state.openedChatMessageServices[chat.id] = chatService.empty(chat.id)\n }\n },\n setCurrentChatId (state, { chatId }) {\n state.currentChatId = chatId\n },\n addNewChats (state, { chats, newChatMessageSideEffects }) {\n chats.forEach((updatedChat) => {\n const chat = getChatById(state, updatedChat.id)\n\n if (chat) {\n const isNewMessage = (chat.lastMessage && chat.lastMessage.id) !== (updatedChat.lastMessage && updatedChat.lastMessage.id)\n chat.lastMessage = updatedChat.lastMessage\n chat.unread = updatedChat.unread\n chat.updated_at = updatedChat.updated_at\n if (isNewMessage && chat.unread) {\n newChatMessageSideEffects(updatedChat)\n }\n } else {\n state.chatList.data.push(updatedChat)\n state.chatList.idStore[updatedChat.id] = updatedChat\n }\n })\n },\n updateChat (state, { _dispatch, chat: updatedChat, _rootGetters }) {\n const chat = getChatById(state, updatedChat.id)\n if (chat) {\n chat.lastMessage = updatedChat.lastMessage\n chat.unread = updatedChat.unread\n chat.updated_at = updatedChat.updated_at\n }\n if (!chat) { state.chatList.data.unshift(updatedChat) }\n state.chatList.idStore[updatedChat.id] = updatedChat\n },\n deleteChat (state, { _dispatch, id, _rootGetters }) {\n state.chats.data = state.chats.data.filter(conversation =>\n conversation.last_status.id !== id\n )\n state.chats.idStore = omitBy(state.chats.idStore, conversation => conversation.last_status.id === id)\n },\n resetChats (state, { commit }) {\n state.chatList = emptyChatList()\n state.currentChatId = null\n commit('setChatListFetcher', { fetcher: undefined })\n for (const chatId in state.openedChats) {\n chatService.clear(state.openedChatMessageServices[chatId])\n delete state.openedChats[chatId]\n delete state.openedChatMessageServices[chatId]\n }\n },\n setChatsLoading (state, { value }) {\n state.chats.loading = value\n },\n addChatMessages (state, { chatId, messages, updateMaxId }) {\n const chatMessageService = state.openedChatMessageServices[chatId]\n if (chatMessageService) {\n chatService.add(chatMessageService, { messages: messages.map(parseChatMessage), updateMaxId })\n }\n },\n deleteChatMessage (state, { chatId, messageId }) {\n const chatMessageService = state.openedChatMessageServices[chatId]\n if (chatMessageService) {\n chatService.deleteMessage(chatMessageService, messageId)\n }\n },\n resetChatNewMessageCount (state, _value) {\n const chatMessageService = state.openedChatMessageServices[state.currentChatId]\n chatService.resetNewMessageCount(chatMessageService)\n },\n // Used when a connection loss occurs\n clearOpenedChats (state) {\n const currentChatId = state.currentChatId\n for (const chatId in state.openedChats) {\n if (currentChatId !== chatId) {\n chatService.clear(state.openedChatMessageServices[chatId])\n delete state.openedChats[chatId]\n delete state.openedChatMessageServices[chatId]\n }\n }\n },\n readChat (state, { id, lastReadId }) {\n state.lastReadMessageId = lastReadId\n const chat = getChatById(state, id)\n if (chat) {\n chat.unread = 0\n }\n },\n handleMessageError (state, { chatId, fakeId, isRetry }) {\n const chatMessageService = state.openedChatMessageServices[chatId]\n chatService.handleMessageError(chatMessageService, fakeId, isRetry)\n },\n cullOlderMessages (state, chatId) {\n chatService.cullOlderMessages(state.openedChatMessageServices[chatId])\n }\n }\n}\n\nexport default chats\n","const FETCH_ANNOUNCEMENT_INTERVAL_MS = 1000 * 60 * 5\n\nexport const defaultState = {\n announcements: [],\n supportsAnnouncements: true,\n fetchAnnouncementsTimer: undefined\n}\n\nexport const mutations = {\n setAnnouncements (state, announcements) {\n state.announcements = announcements\n },\n setAnnouncementRead (state, { id, read }) {\n const index = state.announcements.findIndex(a => a.id === id)\n\n if (index < 0) {\n return\n }\n\n state.announcements[index].read = read\n },\n setFetchAnnouncementsTimer (state, timer) {\n state.fetchAnnouncementsTimer = timer\n },\n setSupportsAnnouncements (state, supportsAnnouncements) {\n state.supportsAnnouncements = supportsAnnouncements\n }\n}\n\nexport const getters = {\n unreadAnnouncementCount (state, _getters, rootState) {\n if (!rootState.users.currentUser) {\n return 0\n }\n\n const unread = state.announcements.filter(announcement => !(announcement.inactive || announcement.read))\n return unread.length\n }\n}\n\nconst announcements = {\n state: defaultState,\n mutations,\n getters,\n actions: {\n fetchAnnouncements (store) {\n if (!store.state.supportsAnnouncements) {\n return Promise.resolve()\n }\n\n const currentUser = store.rootState.users.currentUser\n const isAdmin = currentUser && currentUser.privileges.includes('announcements_manage_announcements')\n\n const getAnnouncements = async () => {\n if (!isAdmin) {\n return store.rootState.api.backendInteractor.fetchAnnouncements()\n }\n\n const all = await store.rootState.api.backendInteractor.adminFetchAnnouncements()\n const visible = await store.rootState.api.backendInteractor.fetchAnnouncements()\n const visibleObject = visible.reduce((a, c) => {\n a[c.id] = c\n return a\n }, {})\n const getWithinVisible = announcement => visibleObject[announcement.id]\n\n all.forEach(announcement => {\n const visibleAnnouncement = getWithinVisible(announcement)\n if (!visibleAnnouncement) {\n announcement.inactive = true\n } else {\n announcement.read = visibleAnnouncement.read\n }\n })\n\n return all\n }\n\n return getAnnouncements()\n .then(announcements => {\n store.commit('setAnnouncements', announcements)\n })\n .catch(error => {\n // If and only if backend does not support announcements, it would return 404.\n // In this case, silently ignores it.\n if (error && error.statusCode === 404) {\n store.commit('setSupportsAnnouncements', false)\n } else {\n throw error\n }\n })\n },\n markAnnouncementAsRead (store, id) {\n return store.rootState.api.backendInteractor.dismissAnnouncement({ id })\n .then(() => {\n store.commit('setAnnouncementRead', { id, read: true })\n })\n },\n startFetchingAnnouncements (store) {\n if (store.state.fetchAnnouncementsTimer) {\n return\n }\n\n const interval = setInterval(() => store.dispatch('fetchAnnouncements'), FETCH_ANNOUNCEMENT_INTERVAL_MS)\n store.commit('setFetchAnnouncementsTimer', interval)\n\n return store.dispatch('fetchAnnouncements')\n },\n stopFetchingAnnouncements (store) {\n const interval = store.state.fetchAnnouncementsTimer\n store.commit('setFetchAnnouncementsTimer', undefined)\n clearInterval(interval)\n },\n postAnnouncement (store, { content, startsAt, endsAt, allDay }) {\n return store.rootState.api.backendInteractor.postAnnouncement({ content, startsAt, endsAt, allDay })\n .then(() => {\n return store.dispatch('fetchAnnouncements')\n })\n },\n editAnnouncement (store, { id, content, startsAt, endsAt, allDay }) {\n return store.rootState.api.backendInteractor.editAnnouncement({ id, content, startsAt, endsAt, allDay })\n .then(() => {\n return store.dispatch('fetchAnnouncements')\n })\n },\n deleteAnnouncement (store, id) {\n return store.rootState.api.backendInteractor.deleteAnnouncement({ id })\n .then(() => {\n return store.dispatch('fetchAnnouncements')\n })\n }\n }\n}\n\nexport default announcements\n","import merge from 'lodash.merge'\nimport localforage from 'localforage'\nimport { each, get, set, cloneDeep } from 'lodash'\n\nlet loaded = false\n\nconst defaultReducer = (state, paths) => (\n paths.length === 0\n ? state\n : paths.reduce((substate, path) => {\n set(substate, path, get(state, path))\n return substate\n }, {})\n)\n\nconst saveImmedeatelyActions = [\n 'markNotificationsAsSeen',\n 'clearCurrentUser',\n 'setCurrentUser',\n 'setServerSideStorage',\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 const 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(cloneDeep(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","<template>\n <div\n id=\"app-loaded\"\n :style=\"bgStyle\"\n >\n <div\n id=\"app_bg_wrapper\"\n class=\"app-bg-wrapper\"\n />\n <MobileNav v-if=\"layoutType === 'mobile'\" />\n <DesktopNav\n v-else\n :class=\"navClasses\"\n />\n <Notifications v-if=\"currentUser\" />\n <div\n id=\"content\"\n class=\"app-layout container\"\n :class=\"classes\"\n >\n <div class=\"underlay\" />\n <div\n id=\"sidebar\"\n class=\"column -scrollable\"\n :class=\"{ '-show-scrollbar': showScrollbars }\"\n >\n <user-panel />\n <template v-if=\"layoutType !== 'mobile'\">\n <nav-panel />\n <instance-specific-panel v-if=\"showInstanceSpecificPanel\" />\n <features-panel v-if=\"!currentUser && showFeaturesPanel\" />\n <who-to-follow-panel v-if=\"currentUser && suggestionsEnabled\" />\n <div id=\"notifs-sidebar\" />\n </template>\n </div>\n <main\n id=\"main-scroller\"\n class=\"column main\"\n :class=\"{ '-full-height': isChats || isListEdit }\"\n >\n <div\n v-if=\"!currentUser\"\n class=\"login-hint panel panel-default\"\n >\n <router-link\n :to=\"{ name: 'login' }\"\n class=\"panel-body\"\n >\n {{ $t(\"login.hint\") }}\n </router-link>\n </div>\n <router-view />\n </main>\n <div\n id=\"notifs-column\"\n class=\"column -scrollable\"\n :class=\"{ '-show-scrollbar': showScrollbars }\"\n />\n </div>\n <MediaModal />\n <shout-panel\n v-if=\"currentUser && shout && !hideShoutbox\"\n :floating=\"true\"\n class=\"floating-shout mobile-hidden\"\n :class=\"{ '-left': shoutboxPosition }\"\n />\n <MobilePostStatusButton />\n <UserReportingModal />\n <PostStatusModal />\n <EditStatusModal v-if=\"editingAvailable\" />\n <StatusHistoryModal v-if=\"editingAvailable\" />\n <SettingsModal />\n <UpdateNotification />\n <GlobalNoticeList />\n </div>\n</template>\n\n<script src=\"./App.js\"></script>\n<style lang=\"scss\" src=\"./App.scss\"></style>\n","<template>\n <aside class=\"user-panel\">\n <div\n v-if=\"signedIn\"\n key=\"user-panel-signed\"\n class=\"panel panel-default signed-in\"\n >\n <UserCard\n :user-id=\"user.id\"\n :hide-bio=\"true\"\n rounded=\"top\"\n />\n <PostStatusForm />\n </div>\n <auth-form\n v-else\n key=\"user-panel\"\n />\n </aside>\n</template>\n\n<script src=\"./user_panel.js\"></script>\n\n<style lang=\"scss\">\n.user-panel .signed-in {\n overflow: visible;\n z-index: 10;\n}\n</style>\n","<template>\n <div class=\"login panel panel-default\">\n <!-- Default panel contents -->\n\n <div class=\"panel-heading\">\n {{ $t('login.login') }}\n </div>\n\n <div class=\"panel-body\">\n <form\n class=\"login-form\"\n @submit.prevent=\"submit\"\n >\n <template v-if=\"isPasswordAuth\">\n <div class=\"form-group\">\n <label for=\"username\">{{ $t('login.username') }}</label>\n <input\n id=\"username\"\n v-model=\"user.username\"\n :disabled=\"loggingIn\"\n class=\"form-control\"\n :placeholder=\"$t('login.placeholder')\"\n >\n </div>\n <div class=\"form-group\">\n <label for=\"password\">{{ $t('login.password') }}</label>\n <input\n id=\"password\"\n ref=\"passwordInput\"\n v-model=\"user.password\"\n :disabled=\"loggingIn\"\n class=\"form-control\"\n type=\"password\"\n >\n </div>\n <div class=\"form-group\">\n <router-link :to=\"{name: 'password-reset'}\">\n {{ $t('password_reset.forgot_password') }}\n </router-link>\n </div>\n </template>\n\n <div\n v-if=\"isTokenAuth\"\n class=\"form-group\"\n >\n <p>{{ $t('login.description') }}</p>\n </div>\n\n <div class=\"form-group\">\n <div class=\"login-bottom\">\n <div>\n <router-link\n v-if=\"registrationOpen\"\n :to=\"{name: 'registration'}\"\n class=\"register\"\n >\n {{ $t('login.register') }}\n </router-link>\n </div>\n <button\n :disabled=\"loggingIn\"\n type=\"submit\"\n class=\"btn button-default\"\n >\n {{ $t('login.login') }}\n </button>\n </div>\n </div>\n </form>\n </div>\n\n <div\n v-if=\"error\"\n class=\"form-group\"\n >\n <div class=\"alert error\">\n {{ error }}\n <button\n class=\"button-unstyled\"\n @click=\"clearError\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"times\"\n />\n </button>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./login_form.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.login-form {\n display: flex;\n flex-direction: column;\n padding: 0.6em;\n\n .btn {\n min-height: 2em;\n width: 10em;\n }\n\n .register {\n flex: 1 1;\n }\n\n .login-bottom {\n margin-top: 1em;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n }\n\n .form-group {\n display: flex;\n flex-direction: column;\n padding: 0.3em 0.5em 0.6em;\n line-height: 24px;\n }\n\n .form-bottom {\n display: flex;\n padding: 0.5em;\n height: 32px;\n\n button {\n width: 10em;\n }\n\n p {\n margin: 0.35em;\n padding: 0.35em;\n display: flex;\n }\n }\n\n .error {\n text-align: center;\n animation-name: shakeError;\n animation-duration: 0.4s;\n animation-timing-function: ease-in-out;\n }\n}\n</style>\n","import { mapState, mapGetters, mapActions, mapMutations } from 'vuex'\nimport oauthApi from '../../services/new_api/oauth.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faTimes\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faTimes\n)\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 const passwordInput = this.$refs.passwordInput\n passwordInput.focus()\n passwordInput.setSelectionRange(0, passwordInput.value.length)\n }\n }\n}\n\nexport default LoginForm\n","import { render } from \"./login_form.vue?vue&type=template&id=508f3ec3\"\nimport script from \"./login_form.js?vue&type=script&lang=js\"\nexport * from \"./login_form.js?vue&type=script&lang=js\"\n\nimport \"./login_form.vue?vue&type=style&index=0&id=508f3ec3&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"login panel panel-default\">\n <!-- Default panel contents -->\n\n <div class=\"panel-heading\">\n {{ $t('login.heading.recovery') }}\n </div>\n\n <div class=\"panel-body\">\n <form\n class=\"login-form\"\n @submit.prevent=\"submit\"\n >\n <div class=\"form-group\">\n <label for=\"code\">{{ $t('login.recovery_code') }}</label>\n <input\n id=\"code\"\n v-model=\"code\"\n class=\"form-control\"\n >\n </div>\n\n <div class=\"form-group\">\n <div class=\"login-bottom\">\n <div>\n <button\n class=\"button-unstyled -link\"\n type=\"button\"\n @click.prevent=\"requireTOTP\"\n >\n {{ $t('login.enter_two_factor_code') }}\n </button>\n <br>\n <button\n class=\"button-unstyled -link\"\n type=\"button\"\n @click.prevent=\"abortMFA\"\n >\n {{ $t('general.cancel') }}\n </button>\n </div>\n <button\n type=\"submit\"\n class=\"btn button-default\"\n >\n {{ $t('general.verify') }}\n </button>\n </div>\n </div>\n </form>\n </div>\n\n <div\n v-if=\"error\"\n class=\"form-group\"\n >\n <div class=\"alert error\">\n {{ error }}\n <button\n class=\"button-unstyled\"\n @click=\"clearError\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"times\"\n />\n </button>\n </div>\n </div>\n </div>\n</template>\n<script src=\"./recovery_form.js\"></script>\n","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'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faTimes\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faTimes\n)\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","import { render } from \"./recovery_form.vue?vue&type=template&id=e18da610\"\nimport script from \"./recovery_form.js?vue&type=script&lang=js\"\nexport * from \"./recovery_form.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"login panel panel-default\">\n <!-- Default panel contents -->\n\n <div class=\"panel-heading\">\n {{ $t('login.heading.totp') }}\n </div>\n\n <div class=\"panel-body\">\n <form\n class=\"login-form\"\n @submit.prevent=\"submit\"\n >\n <div class=\"form-group\">\n <label for=\"code\">\n {{ $t('login.authentication_code') }}\n </label>\n <input\n id=\"code\"\n v-model=\"code\"\n class=\"form-control\"\n >\n </div>\n\n <div class=\"form-group\">\n <div class=\"login-bottom\">\n <div>\n <button\n class=\"button-unstyled -link\"\n type=\"button\"\n @click.prevent=\"requireRecovery\"\n >\n {{ $t('login.enter_recovery_code') }}\n </button>\n <br>\n <button\n class=\"button-unstyled -link\"\n type=\"button\"\n @click.prevent=\"abortMFA\"\n >\n {{ $t('general.cancel') }}\n </button>\n </div>\n <button\n type=\"submit\"\n class=\"btn button-default\"\n >\n {{ $t('general.verify') }}\n </button>\n </div>\n </div>\n </form>\n </div>\n\n <div\n v-if=\"error\"\n class=\"form-group\"\n >\n <div class=\"alert error\">\n {{ error }}\n <button\n class=\"button-unstyled\"\n @click=\"clearError\"\n >\n <FAIcon\n size=\"lg\"\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"times\"\n />\n </button>\n </div>\n </div>\n </div>\n</template>\n<script src=\"./totp_form.js\"></script>\n","import mfaApi from '../../services/new_api/mfa.js'\nimport { mapState, mapGetters, mapActions, mapMutations } from 'vuex'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faTimes\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faTimes\n)\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', ['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","import { render } from \"./totp_form.vue?vue&type=template&id=6fb04413\"\nimport script from \"./totp_form.js?vue&type=script&lang=js\"\nexport * from \"./totp_form.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { h, resolveComponent } from 'vue'\nimport 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 () {\n return h(resolveComponent(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 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","import { render } from \"./user_panel.vue?vue&type=template&id=1a2cb8e9\"\nimport script from \"./user_panel.js?vue&type=script&lang=js\"\nexport * from \"./user_panel.js?vue&type=script&lang=js\"\n\nimport \"./user_panel.vue?vue&type=style&index=0&id=1a2cb8e9&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"NavPanel\">\n <div class=\"panel panel-default\">\n <div\n v-if=\"!forceExpand\"\n class=\"panel-heading nav-panel-heading\"\n >\n <NavigationPins :limit=\"6\" />\n <div class=\"spacer\" />\n <button\n class=\"button-unstyled\"\n @click=\"toggleCollapse\"\n >\n <FAIcon\n class=\"navigation-chevron\"\n fixed-width\n :icon=\"collapsed ? 'chevron-down' : 'chevron-up'\"\n />\n </button>\n </div>\n <ul\n v-if=\"!collapsed || forceExpand\"\n class=\"panel-body\"\n >\n <NavigationEntry\n v-if=\"currentUser || !privateMode\"\n :show-pin=\"false\"\n :item=\"{ icon: 'stream', label: 'nav.timelines' }\"\n :aria-expanded=\"showTimelines ? 'true' : 'false'\"\n @click=\"toggleTimelines\"\n >\n <FAIcon\n class=\"timelines-chevron\"\n fixed-width\n :icon=\"showTimelines ? 'chevron-up' : 'chevron-down'\"\n />\n </NavigationEntry>\n <div\n v-show=\"showTimelines\"\n class=\"timelines-background\"\n >\n <div class=\"timelines\">\n <NavigationEntry\n v-for=\"item in timelinesItems\"\n :key=\"item.name\"\n :show-pin=\"editMode || forceEditMode\"\n :item=\"item\"\n />\n </div>\n </div>\n <NavigationEntry\n v-if=\"currentUser\"\n :show-pin=\"false\"\n :item=\"{ icon: 'list', label: 'nav.lists' }\"\n :aria-expanded=\"showLists ? 'true' : 'false'\"\n @click=\"toggleLists\"\n >\n <router-link\n :title=\"$t('lists.manage_lists')\"\n class=\"extra-button\"\n :to=\"{ name: 'lists' }\"\n @click.stop\n >\n <FAIcon\n class=\"extra-button\"\n fixed-width\n icon=\"wrench\"\n />\n </router-link>\n <FAIcon\n class=\"timelines-chevron\"\n fixed-width\n :icon=\"showLists ? 'chevron-up' : 'chevron-down'\"\n />\n </NavigationEntry>\n <div\n v-show=\"showLists\"\n class=\"timelines-background\"\n >\n <ListsMenuContent\n :show-pin=\"editMode || forceEditMode\"\n class=\"timelines\"\n />\n </div>\n <NavigationEntry\n v-for=\"item in rootItems\"\n :key=\"item.name\"\n :show-pin=\"editMode || forceEditMode\"\n :item=\"item\"\n />\n <NavigationEntry\n v-if=\"!forceEditMode && currentUser\"\n :show-pin=\"false\"\n :item=\"{ label: editMode ? $t('nav.edit_finish') : $t('nav.edit_pinned'), icon: editMode ? 'check' : 'wrench' }\"\n @click=\"toggleEditMode\"\n />\n </ul>\n </div>\n </div>\n</template>\n\n<script src=\"./nav_panel.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.NavPanel {\n .panel {\n overflow: hidden;\n box-shadow: var(--panelShadow);\n }\n\n ul {\n list-style: none;\n margin: 0;\n padding: 0;\n }\n\n li {\n position: relative;\n border-bottom: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n }\n\n > li {\n &:first-child .menu-item {\n border-top-right-radius: $fallback--panelRadius;\n border-top-right-radius: var(--panelRadius, $fallback--panelRadius);\n border-top-left-radius: $fallback--panelRadius;\n border-top-left-radius: var(--panelRadius, $fallback--panelRadius);\n }\n\n &:last-child .menu-item {\n border-bottom-right-radius: $fallback--panelRadius;\n border-bottom-right-radius: var(--panelRadius, $fallback--panelRadius);\n border-bottom-left-radius: $fallback--panelRadius;\n border-bottom-left-radius: var(--panelRadius, $fallback--panelRadius);\n }\n }\n\n li:last-child {\n border: none;\n }\n\n .navigation-chevron {\n margin-left: 0.8em;\n margin-right: 0.8em;\n font-size: 1.1em;\n }\n\n .timelines-chevron {\n margin-left: 0.8em;\n font-size: 1.1em;\n }\n\n .timelines-background {\n padding: 0 0 0 0.6em;\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n border-bottom: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n }\n\n .timelines {\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n }\n\n .nav-panel-heading {\n // breaks without a unit\n // stylelint-disable-next-line length-zero-no-unit\n --panel-heading-height-padding: 0px;\n }\n}\n</style>\n","<template>\n <OptionalRouterLink\n v-slot=\"{ isActive, href, navigate } = {}\"\n ass=\"ass\"\n :to=\"routeTo\"\n >\n <li\n class=\"NavigationEntry menu-item\"\n :class=\"{ '-active': isActive }\"\n v-bind=\"$attrs\"\n >\n <component\n :is=\"routeTo ? 'a' : 'button'\"\n class=\"main-link button-unstyled\"\n :href=\"href\"\n @click=\"navigate\"\n >\n <span>\n <FAIcon\n v-if=\"item.icon\"\n fixed-width\n class=\"fa-scale-110 menu-icon\"\n :icon=\"item.icon\"\n />\n </span>\n <span\n v-if=\"item.iconLetter\"\n class=\"icon iconLetter fa-scale-110 menu-icon\"\n >{{ item.iconLetter }}\n </span>\n <span class=\"label\">\n {{ item.labelRaw || $t(item.label) }}\n </span>\n </component>\n <slot />\n <div\n v-if=\"item.badgeGetter && getters[item.badgeGetter]\"\n class=\"badge badge-notification\"\n >\n {{ getters[item.badgeGetter] }}\n </div>\n <button\n v-if=\"showPin && currentUser\"\n type=\"button\"\n class=\"button-unstyled extra-button\"\n :title=\"$t(isPinned ? 'general.unpin' : 'general.pin' )\"\n :aria-pressed=\"!!isPinned\"\n @click.stop.prevent=\"togglePin(item.name)\"\n >\n <FAIcon\n v-if=\"showPin && currentUser\"\n fixed-width\n class=\"fa-scale-110\"\n :class=\"{ 'veryfaint': !isPinned(item.name) }\"\n :transform=\"!isPinned(item.name) ? 'rotate-45' : ''\"\n icon=\"thumbtack\"\n />\n </button>\n </li>\n </OptionalRouterLink>\n</template>\n\n<script src=\"./navigation_entry.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.NavigationEntry {\n display: flex;\n box-sizing: border-box;\n align-items: baseline;\n height: 3.5em;\n line-height: 3.5em;\n padding: 0 1em;\n width: 100%;\n color: $fallback--link;\n color: var(--link, $fallback--link);\n\n .timelines-chevron {\n margin-right: 0;\n }\n\n .main-link {\n flex: 1;\n }\n\n .menu-icon {\n margin-right: 0.8em;\n }\n\n .extra-button {\n width: 3em;\n text-align: center;\n\n &:last-child {\n margin-right: -0.8em;\n }\n }\n\n &:hover {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n color: $fallback--link;\n color: var(--selectedMenuText, $fallback--link);\n\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n\n .menu-icon {\n --icon: var(--text, $fallback--icon);\n }\n }\n\n &.-active {\n font-weight: bolder;\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n color: $fallback--text;\n color: var(--selectedMenuText, $fallback--text);\n\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n\n .menu-icon {\n --icon: var(--text, $fallback--icon);\n }\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n</style>\n","export const USERNAME_ROUTES = new Set([\n 'bookmarks',\n 'dms',\n 'interactions',\n 'notifications',\n 'chat',\n 'chats',\n 'user-profile'\n])\n\nexport const TIMELINES = {\n home: {\n route: 'friends',\n icon: 'home',\n label: 'nav.home_timeline',\n criteria: ['!private']\n },\n public: {\n route: 'public-timeline',\n anon: true,\n icon: 'users',\n label: 'nav.public_tl',\n criteria: ['!private']\n },\n twkn: {\n route: 'public-external-timeline',\n anon: true,\n icon: 'globe',\n label: 'nav.twkn',\n criteria: ['!private', 'federating']\n },\n bookmarks: {\n route: 'bookmarks',\n icon: 'bookmark',\n label: 'nav.bookmarks'\n },\n favorites: {\n routeObject: { name: 'user-profile', query: { tab: 'favorites' } },\n icon: 'star',\n label: 'user_card.favorites'\n },\n dms: {\n route: 'dms',\n icon: 'envelope',\n label: 'nav.dms'\n }\n}\n\nexport const ROOT_ITEMS = {\n interactions: {\n route: 'interactions',\n icon: 'bell',\n label: 'nav.interactions'\n },\n chats: {\n route: 'chats',\n icon: 'comments',\n label: 'nav.chats',\n badgeGetter: 'unreadChatCount',\n criteria: ['chats']\n },\n friendRequests: {\n route: 'friend-requests',\n icon: 'user-plus',\n label: 'nav.friend_requests',\n criteria: ['lockedUser'],\n badgeGetter: 'followRequestCount'\n },\n about: {\n route: 'about',\n anon: true,\n icon: 'info-circle',\n label: 'nav.about'\n },\n announcements: {\n route: 'announcements',\n icon: 'bullhorn',\n label: 'nav.announcements',\n badgeGetter: 'unreadAnnouncementCount',\n criteria: ['announcements']\n }\n}\n\nexport function routeTo (item, currentUser) {\n if (!item.route && !item.routeObject) return null\n\n let route\n\n if (item.routeObject) {\n route = item.routeObject\n } else {\n route = { name: (item.anon || currentUser) ? item.route : item.anonRoute }\n }\n\n if (USERNAME_ROUTES.has(route.name)) {\n route.params = { username: currentUser.screen_name, name: currentUser.screen_name }\n }\n\n return route\n}\n","<template>\n <!-- eslint-disable vue/no-multiple-template-root -->\n <router-link\n v-if=\"to\"\n v-slot=\"props\"\n :to=\"to\"\n custom\n >\n <slot\n v-bind=\"props\"\n />\n </router-link>\n <slot\n v-else\n v-bind=\"{}\"\n />\n</template>\n\n<script>\nexport default {\n props: ['to']\n}\n</script>\n","import { render } from \"./optional_router_link.vue?vue&type=template&id=0ec30c00\"\nimport script from \"./optional_router_link.vue?vue&type=script&lang=js\"\nexport * from \"./optional_router_link.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { mapState } from 'vuex'\nimport { routeTo } from 'src/components/navigation/navigation.js'\nimport OptionalRouterLink from 'src/components/optional_router_link/optional_router_link.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faThumbtack } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(faThumbtack)\n\nconst NavigationEntry = {\n props: ['item', 'showPin'],\n components: {\n OptionalRouterLink\n },\n methods: {\n isPinned (value) {\n return this.pinnedItems.has(value)\n },\n togglePin (value) {\n if (this.isPinned(value)) {\n this.$store.commit('removeCollectionPreference', { path: 'collections.pinnedNavItems', value })\n } else {\n this.$store.commit('addCollectionPreference', { path: 'collections.pinnedNavItems', value })\n }\n this.$store.dispatch('pushServerSideStorage')\n }\n },\n computed: {\n routeTo () {\n return routeTo(this.item, this.currentUser)\n },\n getters () {\n return this.$store.getters\n },\n ...mapState({\n currentUser: state => state.users.currentUser,\n pinnedItems: state => new Set(state.serverSideStorage.prefsStorage.collections.pinnedNavItems)\n })\n }\n}\n\nexport default NavigationEntry\n","import { render } from \"./navigation_entry.vue?vue&type=template&id=de2c2c50\"\nimport script from \"./navigation_entry.js?vue&type=script&lang=js\"\nexport * from \"./navigation_entry.js?vue&type=script&lang=js\"\n\nimport \"./navigation_entry.vue?vue&type=style&index=0&id=de2c2c50&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","export const filterNavigation = (list = [], { hasChats, hasAnnouncements, isFederating, isPrivate, currentUser }) => {\n return list.filter(({ criteria, anon, anonRoute }) => {\n const set = new Set(criteria || [])\n if (!isFederating && set.has('federating')) return false\n if (!currentUser && isPrivate && set.has('!private')) return false\n if (!currentUser && !(anon || anonRoute)) return false\n if ((!currentUser || !currentUser.locked) && set.has('lockedUser')) return false\n if (!hasChats && set.has('chats')) return false\n if (!hasAnnouncements && set.has('announcements')) return false\n return true\n })\n}\n\nexport const getListEntries = state => state.lists.allLists.map(list => ({\n name: 'list-' + list.id,\n routeObject: { name: 'lists-timeline', params: { id: list.id } },\n labelRaw: list.title,\n iconLetter: list.title[0]\n}))\n","import { mapState } from 'vuex'\nimport NavigationEntry from 'src/components/navigation/navigation_entry.vue'\nimport { getListEntries } from 'src/components/navigation/filter.js'\n\nexport const ListsMenuContent = {\n props: [\n 'showPin'\n ],\n components: {\n NavigationEntry\n },\n computed: {\n ...mapState({\n lists: getListEntries,\n currentUser: state => state.users.currentUser,\n privateMode: state => state.instance.private,\n federating: state => state.instance.federating\n })\n }\n}\n\nexport default ListsMenuContent\n","import { render } from \"./lists_menu_content.vue?vue&type=template&id=24f15238\"\nimport script from \"./lists_menu_content.js?vue&type=script&lang=js\"\nexport * from \"./lists_menu_content.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <ul>\n <NavigationEntry\n v-for=\"item in lists\"\n :key=\"item.name\"\n :show-pin=\"showPin\"\n :item=\"item\"\n />\n </ul>\n</template>\n\n<script src=\"./lists_menu_content.js\"></script>\n","<template>\n <span class=\"NavigationPins\">\n <router-link\n v-for=\"item in pinnedList\"\n :key=\"item.name\"\n class=\"pinned-item\"\n :to=\"getRouteTo(item)\"\n :title=\"item.labelRaw || $t(item.label)\"\n >\n <FAIcon\n v-if=\"item.icon\"\n fixed-width\n :icon=\"item.icon\"\n />\n <span\n v-if=\"item.iconLetter\"\n class=\"iconLetter fa-scale-110 fa-old-padding\"\n >{{ item.iconLetter }}</span>\n <div\n v-if=\"item.badgeGetter && getters[item.badgeGetter]\"\n class=\"alert-dot\"\n />\n </router-link>\n </span>\n</template>\n\n<script src=\"./navigation_pins.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.NavigationPins {\n display: flex;\n flex-wrap: wrap;\n overflow: hidden;\n height: 100%;\n\n .alert-dot {\n border-radius: 100%;\n height: 0.5em;\n width: 0.5em;\n position: absolute;\n right: calc(50% - 0.75em);\n top: calc(50% - 0.5em);\n background-color: $fallback--cRed;\n background-color: var(--badgeNotification, $fallback--cRed);\n }\n\n .pinned-item {\n position: relative;\n flex: 1 0 3em;\n min-width: 2em;\n text-align: center;\n overflow: visible;\n box-sizing: border-box;\n height: 100%;\n\n & .svg-inline--fa,\n & .iconLetter {\n margin: 0;\n }\n\n &.router-link-active {\n color: $fallback--text;\n color: var(--panelText, $fallback--text);\n border-bottom: 4px solid;\n\n & .svg-inline--fa,\n & .iconLetter {\n color: inherit;\n }\n }\n }\n}\n</style>\n","import { mapState } from 'vuex'\nimport { TIMELINES, ROOT_ITEMS, routeTo } from 'src/components/navigation/navigation.js'\nimport { getListEntries, filterNavigation } from 'src/components/navigation/filter.js'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faUsers,\n faGlobe,\n faBookmark,\n faEnvelope,\n faComments,\n faBell,\n faInfoCircle,\n faStream,\n faList\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faUsers,\n faGlobe,\n faBookmark,\n faEnvelope,\n faComments,\n faBell,\n faInfoCircle,\n faStream,\n faList\n)\n\nconst NavPanel = {\n props: ['limit'],\n methods: {\n getRouteTo (item) {\n return routeTo(item, this.currentUser)\n }\n },\n computed: {\n getters () {\n return this.$store.getters\n },\n ...mapState({\n lists: getListEntries,\n currentUser: state => state.users.currentUser,\n followRequestCount: state => state.api.followRequests.length,\n privateMode: state => state.instance.private,\n federating: state => state.instance.federating,\n pleromaChatMessagesAvailable: state => state.instance.pleromaChatMessagesAvailable,\n supportsAnnouncements: state => state.announcements.supportsAnnouncements,\n pinnedItems: state => new Set(state.serverSideStorage.prefsStorage.collections.pinnedNavItems)\n }),\n pinnedList () {\n if (!this.currentUser) {\n return filterNavigation([\n { ...TIMELINES.public, name: 'public' },\n { ...TIMELINES.twkn, name: 'twkn' },\n { ...ROOT_ITEMS.about, name: 'about' }\n ],\n {\n hasChats: this.pleromaChatMessagesAvailable,\n hasAnnouncements: this.supportsAnnouncements,\n isFederating: this.federating,\n isPrivate: this.privateMode,\n currentUser: this.currentUser\n })\n }\n return filterNavigation(\n [\n ...Object\n .entries({ ...TIMELINES })\n .filter(([k]) => this.pinnedItems.has(k))\n .map(([k, v]) => ({ ...v, name: k })),\n ...this.lists.filter((k) => this.pinnedItems.has(k.name)),\n ...Object\n .entries({ ...ROOT_ITEMS })\n .filter(([k]) => this.pinnedItems.has(k))\n .map(([k, v]) => ({ ...v, name: k }))\n ],\n {\n hasChats: this.pleromaChatMessagesAvailable,\n hasAnnouncements: this.supportsAnnouncements,\n isFederating: this.federating,\n isPrivate: this.privateMode,\n currentUser: this.currentUser\n }\n ).slice(0, this.limit)\n }\n }\n}\n\nexport default NavPanel\n","import { render } from \"./navigation_pins.vue?vue&type=template&id=61dbea24\"\nimport script from \"./navigation_pins.js?vue&type=script&lang=js\"\nexport * from \"./navigation_pins.js?vue&type=script&lang=js\"\n\nimport \"./navigation_pins.vue?vue&type=style&index=0&id=61dbea24&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import ListsMenuContent from 'src/components/lists_menu/lists_menu_content.vue'\nimport { mapState, mapGetters } from 'vuex'\nimport { TIMELINES, ROOT_ITEMS } from 'src/components/navigation/navigation.js'\nimport { filterNavigation } from 'src/components/navigation/filter.js'\nimport NavigationEntry from 'src/components/navigation/navigation_entry.vue'\nimport NavigationPins from 'src/components/navigation/navigation_pins.vue'\nimport Checkbox from 'src/components/checkbox/checkbox.vue'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faUsers,\n faGlobe,\n faBookmark,\n faEnvelope,\n faChevronDown,\n faChevronUp,\n faComments,\n faBell,\n faInfoCircle,\n faStream,\n faList,\n faBullhorn\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faUsers,\n faGlobe,\n faBookmark,\n faEnvelope,\n faChevronDown,\n faChevronUp,\n faComments,\n faBell,\n faInfoCircle,\n faStream,\n faList,\n faBullhorn\n)\nconst NavPanel = {\n props: ['forceExpand', 'forceEditMode'],\n created () {\n },\n components: {\n ListsMenuContent,\n NavigationEntry,\n NavigationPins,\n Checkbox\n },\n data () {\n return {\n editMode: false,\n showTimelines: false,\n showLists: false,\n timelinesList: Object.entries(TIMELINES).map(([k, v]) => ({ ...v, name: k })),\n rootList: Object.entries(ROOT_ITEMS).map(([k, v]) => ({ ...v, name: k }))\n }\n },\n methods: {\n toggleTimelines () {\n this.showTimelines = !this.showTimelines\n },\n toggleLists () {\n this.showLists = !this.showLists\n },\n toggleEditMode () {\n this.editMode = !this.editMode\n },\n toggleCollapse () {\n this.$store.commit('setPreference', { path: 'simple.collapseNav', value: !this.collapsed })\n this.$store.dispatch('pushServerSideStorage')\n },\n isPinned (item) {\n return this.pinnedItems.has(item)\n },\n togglePin (item) {\n if (this.isPinned(item)) {\n this.$store.commit('removeCollectionPreference', { path: 'collections.pinnedNavItems', value: item })\n } else {\n this.$store.commit('addCollectionPreference', { path: 'collections.pinnedNavItems', value: item })\n }\n this.$store.dispatch('pushServerSideStorage')\n }\n },\n computed: {\n ...mapState({\n currentUser: state => state.users.currentUser,\n followRequestCount: state => state.api.followRequests.length,\n privateMode: state => state.instance.private,\n federating: state => state.instance.federating,\n pleromaChatMessagesAvailable: state => state.instance.pleromaChatMessagesAvailable,\n supportsAnnouncements: state => state.announcements.supportsAnnouncements,\n pinnedItems: state => new Set(state.serverSideStorage.prefsStorage.collections.pinnedNavItems),\n collapsed: state => state.serverSideStorage.prefsStorage.simple.collapseNav\n }),\n timelinesItems () {\n return filterNavigation(\n Object\n .entries({ ...TIMELINES })\n .map(([k, v]) => ({ ...v, name: k })),\n {\n hasChats: this.pleromaChatMessagesAvailable,\n hasAnnouncements: this.supportsAnnouncements,\n isFederating: this.federating,\n isPrivate: this.privateMode,\n currentUser: this.currentUser\n }\n )\n },\n rootItems () {\n return filterNavigation(\n Object\n .entries({ ...ROOT_ITEMS })\n .map(([k, v]) => ({ ...v, name: k })),\n {\n hasChats: this.pleromaChatMessagesAvailable,\n hasAnnouncements: this.supportsAnnouncements,\n isFederating: this.federating,\n isPrivate: this.privateMode,\n currentUser: this.currentUser\n }\n )\n },\n ...mapGetters(['unreadChatCount', 'unreadAnnouncementCount'])\n }\n}\n\nexport default NavPanel\n","import { render } from \"./nav_panel.vue?vue&type=template&id=7c761001\"\nimport script from \"./nav_panel.js?vue&type=script&lang=js\"\nexport * from \"./nav_panel.js?vue&type=script&lang=js\"\n\nimport \"./nav_panel.vue?vue&type=style&index=0&id=7c761001&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"instance-specific-panel\">\n <div class=\"panel panel-default\">\n <div class=\"panel-body\">\n <!-- eslint-disable vue/no-v-html -->\n <div v-html=\"instanceSpecificPanelContent\" />\n <!-- eslint-enable vue/no-v-html -->\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./instance_specific_panel.js\"></script>\n","const InstanceSpecificPanel = {\n computed: {\n instanceSpecificPanelContent () {\n return this.$store.state.instance.instanceSpecificPanelContent\n }\n }\n}\n\nexport default InstanceSpecificPanel\n","import { render } from \"./instance_specific_panel.vue?vue&type=template&id=707b4e95\"\nimport script from \"./instance_specific_panel.js?vue&type=script&lang=js\"\nexport * from \"./instance_specific_panel.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"features-panel\">\n <div class=\"panel panel-default base01-background\">\n <div class=\"panel-heading timeline-heading base02-background base04\">\n <div class=\"title\">\n {{ $t('features_panel.title') }}\n </div>\n </div>\n <div class=\"panel-body features-panel\">\n <ul>\n <li v-if=\"shout\">\n {{ $t('features_panel.shout') }}\n </li>\n <li v-if=\"pleromaChatMessages\">\n {{ $t('features_panel.pleroma_chat_messages') }}\n </li>\n <li v-if=\"gopher\">\n {{ $t('features_panel.gopher') }}\n </li>\n <li v-if=\"whoToFollow\">\n {{ $t('features_panel.who_to_follow') }}\n </li>\n <li v-if=\"mediaProxy\">\n {{ $t('features_panel.media_proxy') }}\n </li>\n <li>{{ $t('features_panel.scope_options') }}</li>\n <li>{{ $t('features_panel.text_limit') }} = {{ textlimit }}</li>\n <li>{{ $t('features_panel.upload_limit') }} = {{ uploadlimit.num }} {{ $t('upload.file_size_units.' + uploadlimit.unit) }}</li>\n </ul>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./features_panel.js\"></script>\n\n<style lang=\"scss\">\n .features-panel li {\n line-height: 24px;\n }\n</style>\n","import fileSizeFormatService from '../../services/file_size_format/file_size_format.js'\n\nconst FeaturesPanel = {\n computed: {\n shout: function () { return this.$store.state.instance.shoutAvailable },\n pleromaChatMessages: function () { return this.$store.state.instance.pleromaChatMessagesAvailable },\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 uploadlimit: function () { return fileSizeFormatService.fileSizeFormat(this.$store.state.instance.uploadlimit) }\n }\n}\n\nexport default FeaturesPanel\n","import { render } from \"./features_panel.vue?vue&type=template&id=76defdfa\"\nimport script from \"./features_panel.js?vue&type=script&lang=js\"\nexport * from \"./features_panel.js?vue&type=script&lang=js\"\n\nimport \"./features_panel.vue?vue&type=style&index=0&id=76defdfa&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"who-to-follow-panel\">\n <div class=\"panel panel-default base01-background\">\n <div class=\"panel-heading timeline-heading base02-background base04\">\n <div class=\"title\">\n {{ $t('who_to_follow.who_to_follow') }}\n </div>\n </div>\n <div class=\"who-to-follow\">\n <p\n v-for=\"user in usersToFollow\"\n :key=\"user.id\"\n class=\"who-to-follow-items\"\n >\n <img :src=\"user.img\">\n <router-link :to=\"userProfileLink(user.id, user.name)\">\n {{ user.name }}\n </router-link><br>\n </p>\n <p class=\"who-to-follow-more\">\n <router-link :to=\"{ name: 'who-to-follow' }\">\n {{ $t('who_to_follow.more') }}\n </router-link>\n </p>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./who_to_follow_panel.js\"></script>\n\n<style lang=\"scss\">\n .who-to-follow * {\n vertical-align: middle;\n }\n\n .who-to-follow img {\n width: 32px;\n height: 32px;\n }\n\n .who-to-follow {\n padding: 0 1em;\n margin: 0;\n }\n\n .who-to-follow-items {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 0;\n margin: 1em 0;\n }\n\n .who-to-follow-more {\n padding: 0;\n margin: 1em 0;\n text-align: center;\n }\n</style>\n","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 const user = shuffled[index]\n const img = user.avatar || this.$store.state.instance.defaultAvatar\n const 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 const credentials = panel.$store.state.users.currentUser.credentials\n if (credentials) {\n panel.usersToFollow.forEach(toFollow => {\n toFollow.name = 'Loading...'\n })\n apiService.suggestions({ credentials })\n .then((reply) => {\n showWhoToFollow(panel, reply)\n })\n }\n}\n\nconst WhoToFollowPanel = {\n data: () => ({\n usersToFollow: []\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 this.usersToFollow = new Array(3).fill().map(x => (\n {\n img: this.$store.state.instance.defaultAvatar,\n name: '',\n id: 0\n }\n ))\n if (this.suggestionsEnabled) {\n getWhoToFollow(this)\n }\n }\n}\n\nexport default WhoToFollowPanel\n","import { render } from \"./who_to_follow_panel.vue?vue&type=template&id=f150b2ba\"\nimport script from \"./who_to_follow_panel.js?vue&type=script&lang=js\"\nexport * from \"./who_to_follow_panel.js?vue&type=script&lang=js\"\n\nimport \"./who_to_follow_panel.vue?vue&type=style&index=0&id=f150b2ba&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n v-if=\"!collapsed || !floating\"\n class=\"shout-panel\"\n >\n <div class=\"panel panel-default\">\n <div\n class=\"panel-heading timeline-heading\"\n :class=\"{ 'shout-heading': floating }\"\n @click.stop.prevent=\"togglePanel\"\n >\n <div class=\"title\">\n {{ $t('shoutbox.title') }}\n <FAIcon\n v-if=\"floating\"\n icon=\"times\"\n class=\"close-icon\"\n />\n </div>\n </div>\n <div class=\"shout-window\">\n <div\n v-for=\"message in messages\"\n :key=\"message.id\"\n class=\"shout-message\"\n >\n <span class=\"shout-avatar\">\n <img :src=\"message.author.avatar\">\n </span>\n <div class=\"shout-content\">\n <router-link\n class=\"shout-name\"\n :to=\"userProfileLink(message.author)\"\n >\n {{ message.author.username }}\n </router-link>\n <br>\n <span class=\"shout-text\">\n {{ message.text }}\n </span>\n </div>\n </div>\n </div>\n <div class=\"shout-input\">\n <textarea\n v-model=\"currentMessage\"\n class=\"shout-input-textarea\"\n rows=\"1\"\n @keyup.enter=\"submit(currentMessage)\"\n />\n </div>\n </div>\n </div>\n <div\n v-else\n class=\"shout-panel\"\n >\n <div class=\"panel panel-default\">\n <div\n class=\"panel-heading -stub timeline-heading shout-heading\"\n @click.stop.prevent=\"togglePanel\"\n >\n <div class=\"title\">\n <FAIcon\n class=\"icon\"\n icon=\"bullhorn\"\n />\n {{ $t('shoutbox.title') }}\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./shout_panel.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.floating-shout {\n position: fixed;\n bottom: 0.5em;\n z-index: var(--ZI_popovers);\n max-width: 25em;\n\n &.-left {\n left: 0.5em;\n }\n\n &:not(.-left) {\n right: 0.5em;\n }\n}\n\n.shout-panel {\n .shout-heading {\n cursor: pointer;\n\n .icon {\n color: $fallback--text;\n color: var(--panelText, $fallback--text);\n margin-right: 0.5em;\n }\n\n .title {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n }\n\n .shout-window {\n overflow-y: auto;\n overflow-x: hidden;\n max-height: 20em;\n }\n\n .shout-window-container {\n height: 100%;\n }\n\n .shout-message {\n display: flex;\n padding: 0.2em 0.5em;\n }\n\n .shout-avatar {\n img {\n height: 24px;\n width: 24px;\n border-radius: $fallback--avatarRadius;\n border-radius: var(--avatarRadius, $fallback--avatarRadius);\n margin-right: 0.5em;\n margin-top: 0.25em;\n }\n }\n\n .shout-input {\n display: flex;\n\n textarea {\n flex: 1;\n margin: 0.6em;\n min-height: 3.5em;\n resize: none;\n }\n }\n\n .shout-panel {\n .title {\n display: flex;\n justify-content: space-between;\n }\n }\n}\n</style>\n","import generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faBullhorn,\n faTimes\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faBullhorn,\n faTimes\n)\n\nconst shoutPanel = {\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.shout.messages\n }\n },\n methods: {\n submit (message) {\n this.$store.state.shout.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 watch: {\n messages (newVal) {\n const scrollEl = this.$el.querySelector('.chat-window')\n if (!scrollEl) return\n if (scrollEl.scrollTop + scrollEl.offsetHeight + 20 > scrollEl.scrollHeight) {\n this.$nextTick(() => {\n if (!scrollEl) return\n scrollEl.scrollTop = scrollEl.scrollHeight - scrollEl.offsetHeight\n })\n }\n }\n }\n}\n\nexport default shoutPanel\n","import { render } from \"./shout_panel.vue?vue&type=template&id=48f55c04\"\nimport script from \"./shout_panel.js?vue&type=script&lang=js\"\nexport * from \"./shout_panel.js?vue&type=script&lang=js\"\n\nimport \"./shout_panel.vue?vue&type=style&index=0&id=48f55c04&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Modal\n v-if=\"showing\"\n class=\"media-modal-view\"\n @backdropClicked=\"hideIfNotSwiped\"\n >\n <SwipeClick\n v-if=\"type === 'image'\"\n ref=\"swipeClick\"\n class=\"modal-image-container\"\n :direction=\"swipeDirection\"\n :threshold=\"swipeThreshold\"\n :disable-click-threshold=\"swipeDisableClickThreshold\"\n @preview-requested=\"handleSwipePreview\"\n @swipe-finished=\"handleSwipeEnd\"\n @swipeless-clicked=\"hide\"\n >\n <PinchZoom\n ref=\"pinchZoom\"\n class=\"modal-image-container-inner\"\n selector=\".modal-image\"\n reach-min-scale-strategy=\"reset\"\n stop-propagate-handled=\"stop-propgate-handled\"\n :allow-pan-min-scale=\"pinchZoomMinScale\"\n :min-scale=\"pinchZoomMinScale\"\n :reset-to-min-scale-limit=\"pinchZoomScaleResetLimit\"\n >\n <img\n :class=\"{ loading }\"\n class=\"modal-image\"\n :src=\"currentMedia.url\"\n :alt=\"currentMedia.description\"\n :title=\"currentMedia.description\"\n @load=\"onImageLoaded\"\n >\n </PinchZoom>\n </SwipeClick>\n <VideoAttachment\n v-if=\"type === 'video'\"\n class=\"modal-image\"\n :attachment=\"currentMedia\"\n :controls=\"true\"\n />\n <audio\n v-if=\"type === 'audio'\"\n class=\"modal-image\"\n :src=\"currentMedia.url\"\n :alt=\"currentMedia.description\"\n :title=\"currentMedia.description\"\n controls\n />\n <Flash\n v-if=\"type === 'flash'\"\n class=\"modal-image\"\n :src=\"currentMedia.url\"\n :alt=\"currentMedia.description\"\n :title=\"currentMedia.description\"\n />\n <button\n v-if=\"canNavigate\"\n :title=\"$t('media_modal.previous')\"\n class=\"modal-view-button modal-view-button-arrow modal-view-button-arrow--prev\"\n @click.stop.prevent=\"goPrev\"\n >\n <FAIcon\n class=\"button-icon arrow-icon\"\n icon=\"chevron-left\"\n />\n </button>\n <button\n v-if=\"canNavigate\"\n :title=\"$t('media_modal.next')\"\n class=\"modal-view-button modal-view-button-arrow modal-view-button-arrow--next\"\n @click.stop.prevent=\"goNext\"\n >\n <FAIcon\n class=\"button-icon arrow-icon\"\n icon=\"chevron-right\"\n />\n </button>\n <button\n class=\"modal-view-button modal-view-button-hide\"\n :title=\"$t('media_modal.hide')\"\n @click.stop.prevent=\"hide\"\n >\n <FAIcon\n class=\"button-icon\"\n icon=\"times\"\n />\n </button>\n\n <span\n v-if=\"description\"\n class=\"description\"\n >\n {{ description }}\n </span>\n <span\n class=\"counter\"\n >\n {{ $tc('media_modal.counter', currentIndex + 1, { current: currentIndex + 1, total: media.length }) }}\n </span>\n <span\n v-if=\"loading\"\n class=\"loading-spinner\"\n >\n <FAIcon\n spin\n icon=\"circle-notch\"\n size=\"5x\"\n />\n </span>\n </Modal>\n</template>\n\n<script src=\"./media_modal.js\"></script>\n\n<style lang=\"scss\">\n$modal-view-button-icon-height: 3em;\n$modal-view-button-icon-half-height: calc(#{$modal-view-button-icon-height} / 2);\n$modal-view-button-icon-width: 3em;\n$modal-view-button-icon-margin: 0.5em;\n\n.media-modal-view {\n @keyframes media-fadein {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n }\n\n .modal-image-container {\n display: flex;\n overflow: hidden;\n align-items: center;\n flex-direction: column;\n max-width: 100%;\n max-height: 100%;\n width: 100%;\n height: 100%;\n flex-grow: 1;\n justify-content: center;\n\n &-inner {\n width: 100%;\n height: 100%;\n flex-grow: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n }\n }\n\n .description,\n .counter {\n /* Hardcoded since background is also hardcoded */\n color: white;\n margin-top: 1em;\n text-shadow: 0 0 10px black, 0 0 10px black;\n padding: 0.2em 2em;\n }\n\n .description {\n flex: 0 0 auto;\n overflow-y: auto;\n min-height: 1em;\n max-width: 500px;\n max-height: 9.5em;\n word-break: break-all;\n }\n\n .modal-image {\n max-width: 100%;\n max-height: 100%;\n image-orientation: from-image; // NOTE: only FF supports this\n animation: 0.1s cubic-bezier(0.7, 0, 1, 0.6) media-fadein;\n\n &.loading {\n opacity: 0.5;\n }\n }\n\n .loading-spinner {\n width: 100%;\n height: 100%;\n position: absolute;\n pointer-events: none;\n display: flex;\n justify-content: center;\n align-items: center;\n\n svg {\n color: white;\n }\n }\n\n .modal-view-button {\n border: 0;\n padding: 0;\n opacity: 0;\n box-shadow: none;\n background: none;\n appearance: none;\n overflow: visible;\n cursor: pointer;\n transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);\n height: $modal-view-button-icon-height;\n width: $modal-view-button-icon-width;\n\n .button-icon {\n position: absolute;\n height: $modal-view-button-icon-height;\n width: $modal-view-button-icon-width;\n font-size: 1rem;\n line-height: $modal-view-button-icon-height;\n color: #fff;\n text-align: center;\n background-color: rgb(0 0 0 / 30%);\n }\n }\n\n .modal-view-button-arrow {\n position: absolute;\n display: block;\n top: 50%;\n margin-top: $modal-view-button-icon-half-height;\n width: $modal-view-button-icon-width;\n height: $modal-view-button-icon-height;\n\n .arrow-icon {\n position: absolute;\n top: 0;\n line-height: $modal-view-button-icon-height;\n color: #fff;\n text-align: center;\n background-color: rgb(0 0 0 / 30%);\n }\n\n &--prev {\n left: 0;\n\n .arrow-icon {\n left: $modal-view-button-icon-margin;\n }\n }\n\n &--next {\n right: 0;\n\n .arrow-icon {\n right: $modal-view-button-icon-margin;\n }\n }\n }\n\n .modal-view-button-hide {\n position: absolute;\n top: 0;\n right: 0;\n\n .button-icon {\n top: $modal-view-button-icon-margin;\n right: $modal-view-button-icon-margin;\n }\n }\n}\n\n.modal-view.media-modal-view {\n z-index: var(--ZI_media_modal);\n flex-direction: column;\n\n .modal-view-button-arrow,\n .modal-view-button-hide {\n opacity: 0.75;\n\n &:focus,\n &:hover {\n outline: none;\n box-shadow: none;\n }\n\n &:hover {\n opacity: 1;\n }\n }\n\n overflow: hidden;\n}\n</style>\n","import PinchZoom from '@kazvmoe-infra/pinch-zoom-element'\n\nexport default {\n methods: {\n setTransform ({ scale, x, y }) {\n this.$el.setTransform({ scale, x, y })\n }\n },\n created () {\n // Make lint happy\n (() => PinchZoom)()\n }\n}\n","import { render } from \"./pinch_zoom.vue?vue&type=template&id=4608b5bf\"\nimport script from \"./pinch_zoom.js?vue&type=script&lang=js\"\nexport * from \"./pinch_zoom.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <pinch-zoom\n class=\"pinch-zoom-parent\"\n v-bind=\"$attrs\"\n v-on=\"$listeners\"\n >\n <slot />\n </pinch-zoom>\n</template>\n\n<script src=\"./pinch_zoom.js\"></script>\n","\nconst DIRECTION_LEFT = [-1, 0]\nconst DIRECTION_RIGHT = [1, 0]\nconst DIRECTION_UP = [0, -1]\nconst DIRECTION_DOWN = [0, 1]\n\nconst BUTTON_LEFT = 0\n\nconst deltaCoord = (oldCoord, newCoord) => [newCoord[0] - oldCoord[0], newCoord[1] - oldCoord[1]]\n\nconst touchCoord = touch => [touch.screenX, touch.screenY]\n\nconst touchEventCoord = e => touchCoord(e.touches[0])\n\nconst pointerEventCoord = e => [e.clientX, e.clientY]\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\nclass SwipeAndClickGesture {\n // swipePreviewCallback(offsets: Array[Number])\n // offsets: the offset vector which the underlying component should move, from the starting position\n // swipeEndCallback(sign: 0|-1|1)\n // sign: if the swipe does not meet the threshold, 0\n // if the swipe meets the threshold in the positive direction, 1\n // if the swipe meets the threshold in the negative direction, -1\n constructor ({\n direction,\n // swipeStartCallback\n swipePreviewCallback,\n swipeEndCallback,\n swipeCancelCallback,\n swipelessClickCallback,\n threshold = 30,\n perpendicularTolerance = 1.0,\n disableClickThreshold = 1\n }) {\n const nop = () => {}\n this.direction = direction\n this.swipePreviewCallback = swipePreviewCallback || nop\n this.swipeEndCallback = swipeEndCallback || nop\n this.swipeCancelCallback = swipeCancelCallback || nop\n this.swipelessClickCallback = swipelessClickCallback || nop\n this.threshold = typeof threshold === 'function' ? threshold : () => threshold\n this.disableClickThreshold = typeof disableClickThreshold === 'function' ? disableClickThreshold : () => disableClickThreshold\n this.perpendicularTolerance = perpendicularTolerance\n this._reset()\n }\n\n _reset () {\n this._startPos = [0, 0]\n this._pointerId = -1\n this._swiping = false\n this._swiped = false\n this._preventNextClick = false\n }\n\n start (event) {\n // Only handle left click\n if (event.button !== BUTTON_LEFT) {\n return\n }\n\n this._startPos = pointerEventCoord(event)\n this._pointerId = event.pointerId\n this._swiping = true\n this._swiped = false\n }\n\n move (event) {\n if (this._swiping && this._pointerId === event.pointerId) {\n this._swiped = true\n\n const coord = pointerEventCoord(event)\n const delta = deltaCoord(this._startPos, coord)\n\n this.swipePreviewCallback(delta)\n }\n }\n\n cancel (event) {\n if (!this._swiping || this._pointerId !== event.pointerId) {\n return\n }\n\n this.swipeCancelCallback()\n }\n\n end (event) {\n if (!this._swiping) {\n return\n }\n\n if (this._pointerId !== event.pointerId) {\n return\n }\n\n this._swiping = false\n\n // movement too small\n const coord = pointerEventCoord(event)\n const delta = deltaCoord(this._startPos, coord)\n\n const sign = (() => {\n if (vectorLength(delta) < this.threshold()) {\n return 0\n }\n // movement is opposite from direction\n const isPositive = dotProduct(delta, this.direction) > 0\n\n // movement perpendicular to direction is too much\n const towardsDir = project(delta, this.direction)\n const perpendicularDir = perpendicular(this.direction)\n const towardsPerpendicular = project(delta, perpendicularDir)\n if (\n vectorLength(towardsDir) * this.perpendicularTolerance <\n vectorLength(towardsPerpendicular)\n ) {\n return 0\n }\n\n return isPositive ? 1 : -1\n })()\n\n if (this._swiped) {\n this.swipeEndCallback(sign)\n }\n this._reset()\n // Only a mouse will fire click event when\n // the end point is far from the starting point\n // so for other kinds of pointers do not check\n // whether we have swiped\n if (vectorLength(delta) >= this.disableClickThreshold() && event.pointerType === 'mouse') {\n this._preventNextClick = true\n }\n }\n\n click (event) {\n if (!this._preventNextClick) {\n this.swipelessClickCallback()\n }\n this._reset()\n }\n}\n\nconst GestureService = {\n DIRECTION_LEFT,\n DIRECTION_RIGHT,\n DIRECTION_UP,\n DIRECTION_DOWN,\n swipeGesture,\n beginSwipe,\n updateSwipe,\n SwipeAndClickGesture\n}\n\nexport default GestureService\n","import GestureService from '../../services/gesture_service/gesture_service'\n\n/**\n * props:\n * direction: a vector that indicates the direction of the intended swipe\n * threshold: the minimum distance in pixels the swipe has moved on `direction'\n * for swipe-finished() to have a non-zero sign\n * disableClickThreshold: the minimum distance in pixels for the swipe to\n * not trigger a click\n * perpendicularTolerance: see gesture_service\n *\n * Events:\n * preview-requested(offsets)\n * Emitted when the pointer has moved.\n * offsets: the offsets from the start of the swipe to the current cursor position\n *\n * swipe-canceled()\n * Emitted when the swipe has been canceled due to a pointercancel event.\n *\n * swipe-finished(sign: 0|-1|1)\n * Emitted when the swipe has finished.\n * sign: if the swipe does not meet the threshold, 0\n * if the swipe meets the threshold in the positive direction, 1\n * if the swipe meets the threshold in the negative direction, -1\n *\n * swipeless-clicked()\n * Emitted when there is a click without swipe.\n * This and swipe-finished() cannot be emitted for the same pointerup event.\n */\nconst SwipeClick = {\n props: {\n direction: {\n type: Array\n },\n threshold: {\n type: Function,\n default: () => 30\n },\n disableClickThreshold: {\n type: Function,\n default: () => 1\n },\n perpendicularTolerance: {\n type: Number,\n default: 1.0\n }\n },\n methods: {\n handlePointerDown (event) {\n this.$gesture.start(event)\n },\n handlePointerMove (event) {\n this.$gesture.move(event)\n },\n handlePointerUp (event) {\n this.$gesture.end(event)\n },\n handlePointerCancel (event) {\n this.$gesture.cancel(event)\n },\n handleNativeClick (event) {\n this.$gesture.click(event)\n },\n preview (offsets) {\n this.$emit('preview-requested', offsets)\n },\n end (sign) {\n this.$emit('swipe-finished', sign)\n },\n click () {\n this.$emit('swipeless-clicked')\n },\n cancel () {\n this.$emit('swipe-canceled')\n }\n },\n created () {\n this.$gesture = new GestureService.SwipeAndClickGesture({\n direction: this.direction,\n threshold: this.threshold,\n disableClickThreshold: this.disableClickThreshold,\n perpendicularTolerance: this.perpendicularTolerance,\n swipePreviewCallback: this.preview,\n swipeEndCallback: this.end,\n swipeCancelCallback: this.cancel,\n swipelessClickCallback: this.click\n })\n }\n}\n\nexport default SwipeClick\n","import { render } from \"./swipe_click.vue?vue&type=template&id=4c0f684c\"\nimport script from \"./swipe_click.js?vue&type=script&lang=js\"\nexport * from \"./swipe_click.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n v-bind=\"$attrs\"\n @pointerdown=\"handlePointerDown\"\n @pointermove=\"handlePointerMove\"\n @pointerup=\"handlePointerUp\"\n @pointercancel=\"handlePointerCancel\"\n @click=\"handleNativeClick\"\n >\n <slot />\n </div>\n</template>\n\n<script src=\"./swipe_click.js\"></script>\n","import StillImage from '../still-image/still-image.vue'\nimport VideoAttachment from '../video_attachment/video_attachment.vue'\nimport Modal from '../modal/modal.vue'\nimport PinchZoom from '../pinch_zoom/pinch_zoom.vue'\nimport SwipeClick from '../swipe_click/swipe_click.vue'\nimport GestureService from '../../services/gesture_service/gesture_service'\nimport Flash from 'src/components/flash/flash.vue'\nimport fileTypeService from '../../services/file_type/file_type.service.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faChevronLeft,\n faChevronRight,\n faCircleNotch,\n faTimes\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faChevronLeft,\n faChevronRight,\n faCircleNotch,\n faTimes\n)\n\nconst MediaModal = {\n components: {\n StillImage,\n VideoAttachment,\n PinchZoom,\n SwipeClick,\n Modal,\n Flash\n },\n data () {\n return {\n loading: false,\n swipeDirection: GestureService.DIRECTION_LEFT,\n swipeThreshold: () => {\n const considerableMoveRatio = 1 / 4\n return window.innerWidth * considerableMoveRatio\n },\n pinchZoomMinScale: 1,\n pinchZoomScaleResetLimit: 1.2\n }\n },\n computed: {\n showing () {\n return this.$store.state.mediaViewer.activated\n },\n media () {\n return this.$store.state.mediaViewer.media\n },\n description () {\n return this.currentMedia.description\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 ? this.getType(this.currentMedia) : null\n },\n swipeDisableClickThreshold () {\n // If there is only one media, allow more mouse movements to close the modal\n // because there is less chance that the user wants to switch to another image\n return () => this.canNavigate ? 1 : 30\n }\n },\n methods: {\n getType (media) {\n return fileTypeService.fileType(media.mimetype)\n },\n hide () {\n // HACK: Closing immediately via a touch will cause the click\n // to be processed on the content below the overlay\n const transitionTime = 100 // ms\n setTimeout(() => {\n this.$store.dispatch('closeMediaViewer')\n }, transitionTime)\n },\n hideIfNotSwiped (event) {\n // If we have swiped over SwipeClick, do not trigger hide\n const comp = this.$refs.swipeClick\n if (!comp) {\n this.hide()\n } else {\n comp.$gesture.click(event)\n }\n },\n goPrev () {\n if (this.canNavigate) {\n const prevIndex = this.currentIndex === 0 ? this.media.length - 1 : (this.currentIndex - 1)\n const newMedia = this.media[prevIndex]\n if (this.getType(newMedia) === 'image') {\n this.loading = true\n }\n this.$store.dispatch('setCurrentMedia', newMedia)\n }\n },\n goNext () {\n if (this.canNavigate) {\n const nextIndex = this.currentIndex === this.media.length - 1 ? 0 : (this.currentIndex + 1)\n const newMedia = this.media[nextIndex]\n if (this.getType(newMedia) === 'image') {\n this.loading = true\n }\n this.$store.dispatch('setCurrentMedia', newMedia)\n }\n },\n onImageLoaded () {\n this.loading = false\n },\n handleSwipePreview (offsets) {\n this.$refs.pinchZoom.setTransform({ scale: 1, x: offsets[0], y: 0 })\n },\n handleSwipeEnd (sign) {\n this.$refs.pinchZoom.setTransform({ scale: 1, x: 0, y: 0 })\n if (sign > 0) {\n this.goNext()\n } else if (sign < 0) {\n this.goPrev()\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 window.addEventListener('popstate', this.hide)\n document.addEventListener('keyup', this.handleKeyupEvent)\n document.addEventListener('keydown', this.handleKeydownEvent)\n },\n unmounted () {\n window.removeEventListener('popstate', this.hide)\n document.removeEventListener('keyup', this.handleKeyupEvent)\n document.removeEventListener('keydown', this.handleKeydownEvent)\n }\n}\n\nexport default MediaModal\n","import { render } from \"./media_modal.vue?vue&type=template&id=a080a8e6\"\nimport script from \"./media_modal.js?vue&type=script&lang=js\"\nexport * from \"./media_modal.js?vue&type=script&lang=js\"\n\nimport \"./media_modal.vue?vue&type=style&index=0&id=a080a8e6&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n class=\"side-drawer-container\"\n :class=\"{ 'side-drawer-container-closed': closed, 'side-drawer-container-open': !closed }\"\n >\n <div\n class=\"side-drawer-darken\"\n :class=\"{ 'side-drawer-darken-closed': closed}\"\n />\n <div\n class=\"side-drawer\"\n :class=\"{'side-drawer-closed': closed}\"\n @touchstart=\"touchStart\"\n @touchmove=\"touchMove\"\n >\n <div\n class=\"side-drawer-heading\"\n @click=\"toggleDrawer\"\n >\n <UserCard\n v-if=\"currentUser\"\n :user-id=\"currentUser.id\"\n :hide-bio=\"true\"\n />\n <div\n v-else\n class=\"side-drawer-logo-wrapper\"\n >\n <img :src=\"logo\">\n <span v-if=\"!hideSitename\">{{ sitename }}</span>\n </div>\n </div>\n <ul>\n <li\n v-if=\"!currentUser\"\n @click=\"toggleDrawer\"\n >\n <router-link :to=\"{ name: 'login' }\">\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"sign-in-alt\"\n /> {{ $t(\"login.login\") }}\n </router-link>\n </li>\n <li\n v-if=\"currentUser || !privateMode\"\n @click=\"toggleDrawer\"\n >\n <router-link :to=\"timelinesRoute\">\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"home\"\n /> {{ $t(\"nav.timelines\") }}\n </router-link>\n </li>\n <li\n v-if=\"currentUser\"\n @click=\"toggleDrawer\"\n >\n <router-link :to=\"{ name: 'lists' }\">\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"list\"\n /> {{ $t(\"nav.lists\") }}\n </router-link>\n </li>\n <li\n v-if=\"currentUser && pleromaChatMessagesAvailable\"\n @click=\"toggleDrawer\"\n >\n <router-link\n :to=\"{ name: 'chats', params: { username: currentUser.screen_name } }\"\n style=\"position: relative;\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"comments\"\n /> {{ $t(\"nav.chats\") }}\n <span\n v-if=\"unreadChatCount\"\n class=\"badge badge-notification\"\n >\n {{ unreadChatCount }}\n </span>\n </router-link>\n </li>\n </ul>\n <ul v-if=\"currentUser\">\n <li @click=\"toggleDrawer\">\n <router-link :to=\"{ name: 'interactions', params: { username: currentUser.screen_name } }\">\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"bell\"\n /> {{ $t(\"nav.interactions\") }}\n </router-link>\n </li>\n <li\n v-if=\"currentUser.locked\"\n @click=\"toggleDrawer\"\n >\n <router-link to=\"/friend-requests\">\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"user-plus\"\n /> {{ $t(\"nav.friend_requests\") }}\n <span\n v-if=\"followRequestCount > 0\"\n class=\"badge badge-notification\"\n >\n {{ followRequestCount }}\n </span>\n </router-link>\n </li>\n <li\n v-if=\"shout\"\n @click=\"toggleDrawer\"\n >\n <router-link :to=\"{ name: 'shout-panel' }\">\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"bullhorn\"\n /> {{ $t(\"shoutbox.title\") }}\n </router-link>\n </li>\n </ul>\n <ul>\n <li\n v-if=\"currentUser || !privateMode\"\n @click=\"toggleDrawer\"\n >\n <router-link :to=\"{ name: 'search' }\">\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"search\"\n /> {{ $t(\"nav.search\") }}\n </router-link>\n </li>\n <li\n v-if=\"currentUser && suggestionsEnabled\"\n @click=\"toggleDrawer\"\n >\n <router-link :to=\"{ name: 'who-to-follow' }\">\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"user-plus\"\n /> {{ $t(\"nav.who_to_follow\") }}\n </router-link>\n </li>\n <li @click=\"toggleDrawer\">\n <button\n class=\"button-unstyled -link -fullwidth\"\n @click=\"openSettingsModal\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"cog\"\n /> {{ $t(\"settings.settings\") }}\n </button>\n </li>\n <li @click=\"toggleDrawer\">\n <router-link :to=\"{ name: 'about'}\">\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"info-circle\"\n /> {{ $t(\"nav.about\") }}\n </router-link>\n </li>\n <li\n v-if=\"currentUser && currentUser.role === 'admin'\"\n @click=\"toggleDrawer\"\n >\n <button\n class=\"button-unstyled -link -fullwidth\"\n @click.stop=\"openAdminModal\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"tachometer-alt\"\n /> {{ $t(\"nav.administration\") }}\n </button>\n </li>\n <li\n v-if=\"currentUser && supportsAnnouncements\"\n @click=\"toggleDrawer\"\n >\n <router-link\n :to=\"{ name: 'announcements' }\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"bullhorn\"\n /> {{ $t(\"nav.announcements\") }}\n <span\n v-if=\"unreadAnnouncementCount\"\n class=\"badge badge-notification\"\n >\n {{ unreadAnnouncementCount }}\n </span>\n </router-link>\n </li>\n <li\n v-if=\"currentUser\"\n @click=\"toggleDrawer\"\n >\n <router-link :to=\"{ name: 'edit-navigation' }\">\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"compass\"\n /> {{ $t(\"nav.edit_nav_mobile\") }}\n </router-link>\n </li>\n <li\n v-if=\"currentUser\"\n @click=\"toggleDrawer\"\n >\n <button\n class=\"button-unstyled -link -fullwidth\"\n @click=\"doLogout\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"sign-out-alt\"\n /> {{ $t(\"login.logout\") }}\n </button>\n </li>\n </ul>\n </div>\n <div\n class=\"side-drawer-click-outside\"\n :class=\"{'side-drawer-click-outside-closed': closed}\"\n @click.stop.prevent=\"toggleDrawer\"\n />\n </div>\n</template>\n\n<script src=\"./side_drawer.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.side-drawer-container {\n position: fixed;\n z-index: var(--ZI_navbar);\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: stretch;\n transition-duration: 0s;\n transition-property: transform;\n}\n\n.side-drawer-container-open {\n transform: translate(0%);\n}\n\n.side-drawer-container-closed {\n transition-delay: 0.35s;\n transform: translate(-100%);\n}\n\n.side-drawer-darken {\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n position: fixed;\n z-index: -1;\n transition: 0.35s;\n transition-property: background-color;\n background-color: rgb(0 0 0 / 50%);\n}\n\n.side-drawer-darken-closed {\n background-color: rgb(0 0 0 / 0%);\n}\n\n.side-drawer-click-outside {\n flex: 1 1 100%;\n}\n\n.side-drawer {\n overflow-x: hidden;\n transition: 0.35s;\n transition-timing-function: cubic-bezier(0, 1, 0.5, 1);\n transition-property: transform;\n margin: 0 0 0 -100px;\n padding: 0 0 1em 100px;\n width: 80%;\n max-width: 20em;\n flex: 0 0 80%;\n box-shadow: 1px 1px 4px rgb(0 0 0 / 60%);\n box-shadow: var(--panelShadow);\n background-color: $fallback--bg;\n background-color: var(--popover, $fallback--bg);\n color: $fallback--link;\n color: var(--popoverText, $fallback--link);\n\n --faint: var(--popoverFaintText, $fallback--faint);\n --faintLink: var(--popoverFaintLink, $fallback--faint);\n --lightText: var(--popoverLightText, $fallback--lightText);\n --icon: var(--popoverIcon, $fallback--icon);\n\n .badge {\n margin-left: 10px;\n }\n}\n\n.side-drawer-logo-wrapper {\n display: flex;\n align-items: center;\n padding: 0.85em;\n\n img {\n flex: none;\n height: 50px;\n margin-right: 0.85em;\n }\n\n span {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n}\n\n.side-drawer-click-outside-closed {\n flex: 0 0 0;\n}\n\n.side-drawer-closed {\n transform: translate(-100%);\n}\n\n.side-drawer-heading {\n background: transparent;\n flex-direction: column;\n align-items: stretch;\n display: flex;\n padding: 0;\n margin: 0;\n}\n\n.side-drawer ul {\n list-style: none;\n margin: 0;\n padding: 0;\n border-bottom: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n}\n\n.side-drawer ul:last-child {\n border: 0;\n}\n\n.side-drawer li {\n padding: 0;\n\n a,\n button {\n box-sizing: border-box;\n display: block;\n height: 3em;\n line-height: 3em;\n padding: 0 0.7em;\n\n &:hover {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenuPopover, $fallback--lightBg);\n color: $fallback--text;\n color: var(--selectedMenuPopoverText, $fallback--text);\n\n --faint: var(--selectedMenuPopoverFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuPopoverFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuPopoverLightText, $fallback--lightText);\n --icon: var(--selectedMenuPopoverIcon, $fallback--icon);\n }\n }\n}\n</style>\n","import { mapState, mapGetters } from 'vuex'\nimport UserCard from '../user_card/user_card.vue'\nimport { unseenNotificationsFromStore } from '../../services/notification_utils/notification_utils'\nimport GestureService from '../../services/gesture_service/gesture_service'\nimport { USERNAME_ROUTES } from 'src/components/navigation/navigation.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faSignInAlt,\n faSignOutAlt,\n faHome,\n faComments,\n faBell,\n faUserPlus,\n faBullhorn,\n faSearch,\n faTachometerAlt,\n faCog,\n faInfoCircle,\n faCompass,\n faList\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faSignInAlt,\n faSignOutAlt,\n faHome,\n faComments,\n faBell,\n faUserPlus,\n faBullhorn,\n faSearch,\n faTachometerAlt,\n faCog,\n faInfoCircle,\n faCompass,\n faList\n)\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 shout () { return this.$store.state.shout.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 timelinesRoute () {\n let name\n if (this.$store.state.interface.lastTimeline) {\n name = this.$store.state.interface.lastTimeline\n }\n name = this.currentUser ? 'friends' : 'public-timeline'\n if (USERNAME_ROUTES.has(name)) {\n return { name, params: { username: this.currentUser.screen_name } }\n } else {\n return { name }\n }\n },\n ...mapState({\n pleromaChatMessagesAvailable: state => state.instance.pleromaChatMessagesAvailable,\n supportsAnnouncements: state => state.announcements.supportsAnnouncements\n }),\n ...mapGetters(['unreadChatCount', 'unreadAnnouncementCount'])\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 openSettingsModal () {\n this.$store.dispatch('openSettingsModal', 'user')\n },\n openAdminModal () {\n this.$store.dispatch('openSettingsModal', 'admin')\n }\n }\n}\n\nexport default SideDrawer\n","import { render } from \"./side_drawer.vue?vue&type=template&id=0c55529b\"\nimport script from \"./side_drawer.js?vue&type=script&lang=js\"\nexport * from \"./side_drawer.js?vue&type=script&lang=js\"\n\nimport \"./side_drawer.vue?vue&type=style&index=0&id=0c55529b&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { debounce } from 'lodash'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faPen\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faPen\n)\n\nconst HIDDEN_FOR_PAGES = new Set([\n 'chats',\n 'chat',\n 'lists-edit'\n])\n\nconst MobilePostStatusButton = {\n data () {\n return {\n hidden: false,\n scrollingDown: false,\n inputActive: false,\n oldScrollPos: 0,\n amountScrolled: 0\n }\n },\n created () {\n if (this.autohideFloatingPostButton) {\n this.activateFloatingPostButtonAutohide()\n }\n window.addEventListener('resize', this.handleOSK)\n },\n unmounted () {\n if (this.autohideFloatingPostButton) {\n this.deactivateFloatingPostButtonAutohide()\n }\n window.removeEventListener('resize', this.handleOSK)\n },\n computed: {\n isLoggedIn () {\n return !!this.$store.state.users.currentUser\n },\n isHidden () {\n if (HIDDEN_FOR_PAGES.has(this.$route.name)) { return true }\n\n return this.autohideFloatingPostButton && (this.hidden || this.inputActive)\n },\n isPersistent () {\n return !!this.$store.getters.mergedConfig.alwaysShowNewPostButton\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","import { render } from \"./mobile_post_status_button.vue?vue&type=template&id=6c0a4c69\"\nimport script from \"./mobile_post_status_button.js?vue&type=script&lang=js\"\nexport * from \"./mobile_post_status_button.js?vue&type=script&lang=js\"\n\nimport \"./mobile_post_status_button.vue?vue&type=style&index=0&id=6c0a4c69&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <button\n v-if=\"isLoggedIn\"\n class=\"MobilePostButton button-default new-status-button\"\n :class=\"{ 'hidden': isHidden, 'always-show': isPersistent }\"\n :title=\"$t('post_status.new_status')\"\n @click=\"openPostForm\"\n >\n <FAIcon icon=\"pen\" />\n </button>\n</template>\n\n<script src=\"./mobile_post_status_button.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.MobilePostButton {\n &.button-default {\n width: 5em;\n height: 5em;\n border-radius: 100%;\n position: fixed;\n bottom: 1.5em;\n right: 1.5em;\n // TODO: this needs its own color, it has to stand out enough and link color\n // is not very optimal for this particular use.\n background-color: $fallback--fg;\n background-color: var(--btn, $fallback--fg);\n display: flex;\n justify-content: center;\n align-items: center;\n box-shadow: 0 2px 2px rgb(0 0 0 / 30%), 0 4px 6px rgb(0 0 0 / 30%);\n z-index: 10;\n transition: 0.35s transform;\n transition-timing-function: cubic-bezier(0, 1, 0.5, 1);\n }\n\n &.hidden {\n transform: translateY(150%);\n }\n\n svg {\n font-size: 1.5em;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n}\n\n@media all and (min-width: 801px) {\n .new-status-button:not(.always-show) {\n display: none;\n }\n}\n\n</style>\n","<template>\n <div\n class=\"MobileNav\"\n >\n <nav\n id=\"nav\"\n class=\"mobile-nav\"\n @click=\"scrollToTop()\"\n >\n <div class=\"item\">\n <button\n class=\"button-unstyled mobile-nav-button\"\n :title=\"$t('nav.mobile_sidebar')\"\n :aria-expanaded=\"$refs.sideDrawer && !$refs.sideDrawer.closed\"\n @click.stop.prevent=\"toggleMobileSidebar()\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"bars\"\n />\n <div\n v-if=\"(unreadChatCount && !chatsPinned) || unreadAnnouncementCount\"\n class=\"alert-dot\"\n />\n </button>\n <NavigationPins class=\"pins\" />\n </div> <div class=\"item right\">\n <button\n v-if=\"currentUser\"\n class=\"button-unstyled mobile-nav-button\"\n :title=\"unseenNotificationsCount ? $t('nav.mobile_notifications_unread_active') : $t('nav.mobile_notifications')\"\n @click.stop.prevent=\"openMobileNotifications()\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"bell\"\n />\n <div\n v-if=\"unseenNotificationsCount\"\n class=\"alert-dot\"\n />\n </button>\n </div>\n </nav>\n <aside\n v-if=\"currentUser\"\n class=\"mobile-notifications-drawer\"\n :class=\"{ '-closed': !notificationsOpen }\"\n @touchstart.stop=\"notificationsTouchStart\"\n @touchmove.stop=\"notificationsTouchMove\"\n >\n <div class=\"mobile-notifications-header\">\n <span class=\"title\">{{ $t('notifications.notifications') }}</span>\n <span class=\"spacer\" />\n <button\n v-if=\"notificationsAtTop\"\n class=\"button-unstyled mobile-nav-button\"\n :title=\"$t('general.scroll_to_top')\"\n @click.stop.prevent=\"scrollMobileNotificationsToTop\"\n >\n <FALayers class=\"fa-scale-110 fa-old-padding-layer\">\n <FAIcon icon=\"arrow-up\" />\n <FAIcon\n icon=\"minus\"\n transform=\"up-7\"\n />\n </FALayers>\n </button>\n <button\n class=\"button-unstyled mobile-nav-button\"\n :title=\"$t('nav.mobile_notifications_close')\"\n @click.stop.prevent=\"closeMobileNotifications(true)\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"times\"\n />\n </button>\n </div>\n <div\n id=\"mobile-notifications\"\n ref=\"mobileNotifications\"\n class=\"mobile-notifications\"\n @scroll=\"onScroll\"\n />\n </aside>\n <SideDrawer\n ref=\"sideDrawer\"\n :logout=\"logout\"\n />\n <teleport to=\"#modal\">\n <confirm-modal\n v-if=\"showingConfirmLogout\"\n :title=\"$t('login.logout_confirm_title')\"\n :confirm-text=\"$t('login.logout_confirm_accept_button')\"\n :cancel-text=\"$t('login.logout_confirm_cancel_button')\"\n @accepted=\"doLogout\"\n @cancelled=\"hideConfirmLogout\"\n >\n {{ $t('login.logout_confirm') }}\n </confirm-modal>\n </teleport>\n </div>\n</template>\n\n<script src=\"./mobile_nav.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.MobileNav {\n z-index: var(--ZI_navbar);\n\n .mobile-nav {\n display: grid;\n line-height: var(--navbar-height);\n grid-template-rows: 50px;\n grid-template-columns: 2fr auto;\n width: 100%;\n box-sizing: border-box;\n\n a {\n color: var(--topBarLink, $fallback--link);\n }\n }\n\n .mobile-inner-nav {\n width: 100%;\n display: flex;\n align-items: center;\n }\n\n .mobile-nav-button {\n display: inline-block;\n text-align: center;\n padding: 0 1em;\n position: relative;\n cursor: pointer;\n }\n\n .site-name {\n padding: 0 0.3em;\n display: inline-block;\n }\n\n .item {\n /* moslty just to get rid of extra whitespaces */\n display: flex;\n }\n\n .alert-dot {\n border-radius: 100%;\n height: 8px;\n width: 8px;\n position: absolute;\n left: calc(50% - 4px);\n top: calc(50% - 4px);\n margin-left: 6px;\n margin-top: -6px;\n background-color: $fallback--cRed;\n background-color: var(--badgeNotification, $fallback--cRed);\n }\n\n .mobile-notifications-drawer {\n width: 100%;\n height: 100vh;\n overflow-x: hidden;\n position: fixed;\n top: 0;\n left: 0;\n box-shadow: 1px 1px 4px rgb(0 0 0 / 60%);\n box-shadow: var(--panelShadow);\n transition-property: transform;\n transition-duration: 0.25s;\n transform: translateX(0);\n z-index: var(--ZI_navbar);\n -webkit-overflow-scrolling: touch;\n\n &.-closed {\n transform: translateX(100%);\n box-shadow: none;\n }\n }\n\n .mobile-notifications-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n z-index: calc(var(--ZI_navbar) + 100);\n width: 100%;\n height: 50px;\n line-height: 50px;\n position: absolute;\n color: var(--topBarText);\n background-color: $fallback--fg;\n background-color: var(--topBar, $fallback--fg);\n box-shadow: 0 0 4px rgb(0 0 0 / 60%);\n box-shadow: var(--topBarShadow);\n\n .spacer {\n flex: 1;\n }\n\n .title {\n font-size: 1.3em;\n margin-left: 0.6em;\n }\n }\n\n .pins {\n flex: 1;\n\n .pinned-item {\n flex-grow: 1;\n }\n }\n\n .mobile-notifications {\n margin-top: 50px;\n width: 100vw;\n height: calc(100vh - var(--navbar-height));\n overflow-x: hidden;\n overflow-y: scroll;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n\n .notifications {\n padding: 0;\n border-radius: 0;\n box-shadow: none;\n\n .panel {\n border-radius: 0;\n margin: 0;\n box-shadow: none;\n }\n\n .panel::after {\n border-radius: 0;\n }\n\n .panel .panel-heading {\n border-radius: 0;\n box-shadow: none;\n }\n }\n }\n\n .confirm-modal.dark-overlay {\n &::before {\n z-index: 3000;\n }\n\n .dialog-modal.panel {\n z-index: 3001;\n }\n }\n}\n\n</style>\n","import SideDrawer from '../side_drawer/side_drawer.vue'\nimport Notifications from '../notifications/notifications.vue'\nimport ConfirmModal from '../confirm_modal/confirm_modal.vue'\nimport { unseenNotificationsFromStore } from '../../services/notification_utils/notification_utils'\nimport GestureService from '../../services/gesture_service/gesture_service'\nimport NavigationPins from 'src/components/navigation/navigation_pins.vue'\nimport { mapGetters } from 'vuex'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faTimes,\n faBell,\n faBars,\n faArrowUp,\n faMinus\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faTimes,\n faBell,\n faBars,\n faArrowUp,\n faMinus\n)\n\nconst MobileNav = {\n components: {\n SideDrawer,\n Notifications,\n NavigationPins,\n ConfirmModal\n },\n data: () => ({\n notificationsCloseGesture: undefined,\n notificationsOpen: false,\n notificationsAtTop: true,\n showingConfirmLogout: false\n }),\n created () {\n this.notificationsCloseGesture = GestureService.swipeGesture(\n GestureService.DIRECTION_RIGHT,\n () => this.closeMobileNotifications(true),\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 isChat () {\n return this.$route.name === 'chat'\n },\n ...mapGetters(['unreadChatCount', 'unreadAnnouncementCount']),\n chatsPinned () {\n return new Set(this.$store.state.serverSideStorage.prefsStorage.collections.pinnedNavItems).has('chats')\n },\n shouldConfirmLogout () {\n return this.$store.getters.mergedConfig.modalOnLogout\n },\n ...mapGetters(['unreadChatCount'])\n },\n methods: {\n toggleMobileSidebar () {\n this.$refs.sideDrawer.toggleDrawer()\n },\n openMobileNotifications () {\n this.notificationsOpen = true\n },\n closeMobileNotifications (markRead) {\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 if (markRead) {\n this.markNotificationsAsSeen()\n }\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 scrollMobileNotificationsToTop () {\n this.$refs.mobileNotifications.scrollTo(0, 0)\n },\n showConfirmLogout () {\n this.showingConfirmLogout = true\n },\n hideConfirmLogout () {\n this.showingConfirmLogout = false\n },\n logout () {\n if (!this.shouldConfirmLogout) {\n this.doLogout()\n } else {\n this.showConfirmLogout()\n }\n },\n doLogout () {\n this.$router.replace('/main/public')\n this.$store.dispatch('logout')\n this.hideConfirmLogout()\n },\n markNotificationsAsSeen () {\n // this.$refs.notifications.markAsSeen()\n this.$store.dispatch('markNotificationsAsSeen')\n },\n onScroll ({ target: { scrollTop, clientHeight, scrollHeight } }) {\n this.notificationsAtTop = scrollTop > 0\n if (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","import { render } from \"./mobile_nav.vue?vue&type=template&id=06094f09\"\nimport script from \"./mobile_nav.js?vue&type=script&lang=js\"\nexport * from \"./mobile_nav.js?vue&type=script&lang=js\"\n\nimport \"./mobile_nav.vue?vue&type=style&index=0&id=06094f09&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <nav\n id=\"nav\"\n class=\"DesktopNav\"\n :class=\"{ '-logoLeft': logoLeft }\"\n @click=\"scrollToTop()\"\n >\n <div class=\"inner-nav\">\n <div class=\"item sitename\">\n <router-link\n v-if=\"!hideSitename\"\n class=\"site-name\"\n :to=\"{ name: 'root' }\"\n active-class=\"home\"\n >\n {{ sitename }}\n </router-link>\n </div>\n <router-link\n class=\"logo\"\n :to=\"{ name: 'root' }\"\n :style=\"logoBgStyle\"\n :title=\"sitename\"\n >\n <div\n class=\"mask\"\n :style=\"logoMaskStyle\"\n />\n <img\n :src=\"logo\"\n :style=\"logoStyle\"\n >\n </router-link>\n <div class=\"item right actions\">\n <search-bar\n v-if=\"currentUser || !privateMode\"\n @toggled=\"onSearchBarToggled\"\n @click.stop\n />\n <button\n class=\"button-unstyled nav-icon\"\n :title=\"$t('nav.preferences')\"\n @click.stop=\"openSettingsModal\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"cog\"\n />\n </button>\n <button\n v-if=\"currentUser && currentUser.role === 'admin'\"\n class=\"button-unstyled nav-icon\"\n target=\"_blank\"\n :title=\"$t('nav.administration')\"\n @click.stop=\"openAdminModal\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"tachometer-alt\"\n />\n </button>\n <span class=\"spacer\" />\n <button\n v-if=\"currentUser\"\n class=\"button-unstyled nav-icon\"\n :title=\"$t('login.logout')\"\n @click.stop.prevent=\"logout\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"sign-out-alt\"\n />\n </button>\n </div>\n </div>\n <teleport to=\"#modal\">\n <confirm-modal\n v-if=\"showingConfirmLogout\"\n :title=\"$t('login.logout_confirm_title')\"\n :confirm-text=\"$t('login.logout_confirm_accept_button')\"\n :cancel-text=\"$t('login.logout_confirm_cancel_button')\"\n @accepted=\"doLogout\"\n @cancelled=\"hideConfirmLogout\"\n >\n {{ $t('login.logout_confirm') }}\n </confirm-modal>\n </teleport>\n </nav>\n</template>\n<script src=\"./desktop_nav.js\"></script>\n\n<style src=\"./desktop_nav.scss\" lang=\"scss\"></style>\n","<template>\n <div\n class=\"SearchBar\"\n :class=\"{ '-expanded': !hidden }\"\n >\n <button\n v-if=\"hidden\"\n class=\"button-unstyled nav-icon\"\n :title=\"$t('nav.search')\"\n type=\"button\"\n :aria-expanded=\"!hidden\"\n @click.prevent.stop=\"toggleHidden\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"search\"\n />\n </button>\n <template v-else>\n <input\n id=\"search-bar-input\"\n ref=\"searchInput\"\n v-model=\"searchTerm\"\n class=\"search-bar-input\"\n :placeholder=\"$t('nav.search')\"\n type=\"text\"\n @keyup.enter=\"find(searchTerm)\"\n >\n <button\n class=\"button-default search-button\"\n type=\"submit\"\n :title=\"$t('nav.search')\"\n @click=\"find(searchTerm)\"\n >\n <FAIcon\n fixed-width\n icon=\"search\"\n />\n </button>\n <button\n class=\"button-unstyled cancel-search\"\n type=\"button\"\n :title=\"$t('nav.search_close')\"\n :aria-expanded=\"!hidden\"\n @click.prevent.stop=\"toggleHidden\"\n >\n <FAIcon\n fixed-width\n icon=\"times\"\n class=\"cancel-icon fa-scale-110 fa-old-padding\"\n />\n </button>\n <span class=\"spacer\" />\n <span class=\"spacer\" />\n </template>\n </div>\n</template>\n\n<script src=\"./search_bar.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.SearchBar {\n display: inline-flex;\n align-items: baseline;\n vertical-align: baseline;\n justify-content: flex-end;\n\n &.-expanded {\n width: 100%;\n }\n\n .search-bar-input,\n .search-button {\n height: 29px;\n }\n\n .search-bar-input {\n flex: 1 0 auto;\n }\n\n .cancel-search {\n height: 50px;\n }\n\n .cancel-icon {\n color: $fallback--text;\n color: var(--btnTopBarText, $fallback--text);\n }\n}\n\n</style>\n","import { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faTimes,\n faSearch\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faTimes,\n faSearch\n)\n\nconst SearchBar = {\n data: () => ({\n searchTerm: undefined,\n hidden: true,\n error: 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","import { render } from \"./search_bar.vue?vue&type=template&id=3ff3b2d5\"\nimport script from \"./search_bar.js?vue&type=script&lang=js\"\nexport * from \"./search_bar.js?vue&type=script&lang=js\"\n\nimport \"./search_bar.vue?vue&type=style&index=0&id=3ff3b2d5&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import SearchBar from 'components/search_bar/search_bar.vue'\nimport ConfirmModal from '../confirm_modal/confirm_modal.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faSignInAlt,\n faSignOutAlt,\n faHome,\n faComments,\n faBell,\n faUserPlus,\n faBullhorn,\n faSearch,\n faTachometerAlt,\n faCog,\n faInfoCircle\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faSignInAlt,\n faSignOutAlt,\n faHome,\n faComments,\n faBell,\n faUserPlus,\n faBullhorn,\n faSearch,\n faTachometerAlt,\n faCog,\n faInfoCircle\n)\n\nexport default {\n components: {\n SearchBar,\n ConfirmModal\n },\n data: () => ({\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 showingConfirmLogout: false\n }),\n computed: {\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 ? {\n 'mask-image': `url(${this.$store.state.instance.logo})`\n }\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 ? {}\n : {\n 'background-color': this.enableMask ? '' : 'transparent'\n })\n },\n logo () { return this.$store.state.instance.logo },\n sitename () { return this.$store.state.instance.name },\n hideSitename () { return this.$store.state.instance.hideSitename },\n logoLeft () { return this.$store.state.instance.logoLeft },\n currentUser () { return this.$store.state.users.currentUser },\n privateMode () { return this.$store.state.instance.private },\n shouldConfirmLogout () {\n return this.$store.getters.mergedConfig.modalOnLogout\n }\n },\n methods: {\n scrollToTop () {\n window.scrollTo(0, 0)\n },\n showConfirmLogout () {\n this.showingConfirmLogout = true\n },\n hideConfirmLogout () {\n this.showingConfirmLogout = false\n },\n logout () {\n if (!this.shouldConfirmLogout) {\n this.doLogout()\n } else {\n this.showConfirmLogout()\n }\n },\n doLogout () {\n this.$router.replace('/main/public')\n this.$store.dispatch('logout')\n this.hideConfirmLogout()\n },\n onSearchBarToggled (hidden) {\n this.searchBarHidden = hidden\n },\n openSettingsModal () {\n this.$store.dispatch('openSettingsModal', 'user')\n },\n openAdminModal () {\n this.$store.dispatch('openSettingsModal', 'admin')\n }\n }\n}\n","import { render } from \"./desktop_nav.vue?vue&type=template&id=5dbfe449\"\nimport script from \"./desktop_nav.js?vue&type=script&lang=js\"\nexport * from \"./desktop_nav.js?vue&type=script&lang=js\"\n\nimport \"./desktop_nav.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Modal\n v-if=\"isOpen\"\n @backdropClicked=\"closeModal\"\n >\n <div class=\"user-reporting-panel panel\">\n <div class=\"panel-heading\">\n <i18n-t\n tag=\"div\"\n keypath=\"user_reporting.title\"\n class=\"title\"\n >\n <UserLink :user=\"user\" />\n </i18n-t>\n </div>\n <div class=\"panel-body\">\n <div class=\"user-reporting-panel-left\">\n <div>\n <p>{{ $t('user_reporting.add_comment_description') }}</p>\n <textarea\n v-model=\"comment\"\n class=\"form-control\"\n :placeholder=\"$t('user_reporting.additional_comments')\"\n rows=\"1\"\n @input=\"resize\"\n />\n </div>\n <div v-if=\"!user.is_local\">\n <p>{{ $t('user_reporting.forward_description') }}</p>\n <Checkbox v-model=\"forward\">\n {{ $t('user_reporting.forward_to', [remoteInstance]) }}\n </Checkbox>\n </div>\n <div>\n <button\n class=\"btn button-default\"\n :disabled=\"processing\"\n @click=\"reportUser\"\n >\n {{ $t('user_reporting.submit') }}\n </button>\n <div\n v-if=\"error\"\n class=\"alert error\"\n >\n {{ $t('user_reporting.generic_error') }}\n </div>\n </div>\n </div>\n <div class=\"user-reporting-panel-right\">\n <List :items=\"statuses\">\n <template #item=\"{item}\">\n <div class=\"status-fadein user-reporting-panel-sitem\">\n <Status\n :in-conversation=\"false\"\n :focused=\"false\"\n :statusoid=\"item\"\n />\n <Checkbox\n :model-value=\"isChecked(item.id)\"\n @update:model-value=\"checked => toggleStatus(checked, item.id)\"\n />\n </div>\n </template>\n </List>\n </div>\n </div>\n </div>\n </Modal>\n</template>\n\n<script src=\"./user_reporting_modal.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.user-reporting-panel {\n width: 90vw;\n max-width: 700px;\n min-height: 20vh;\n max-height: 80vh;\n\n .panel-body {\n display: flex;\n flex-direction: column-reverse;\n border-top: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n overflow: hidden;\n }\n\n &-left {\n padding: 1.1em 0.7em 0.7em;\n line-height: var(--post-line-height);\n box-sizing: border-box;\n\n > div {\n margin-bottom: 1em;\n\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n p {\n margin-top: 0;\n }\n\n textarea.form-control {\n line-height: 16px;\n resize: none;\n overflow: hidden;\n transition: min-height 200ms 100ms;\n min-height: 44px;\n width: 100%;\n }\n\n .btn {\n min-width: 10em;\n padding: 0 2em;\n }\n\n .alert {\n margin: 1em 0 0;\n line-height: 1.3em;\n }\n }\n\n &-right {\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n }\n\n &-sitem {\n display: flex;\n justify-content: space-between;\n\n /* TODO cleanup this */\n > .Status {\n flex: 1;\n }\n\n > .checkbox {\n margin: 0.75em;\n }\n }\n\n @media all and (min-width: 801px) {\n .panel-body {\n flex-direction: row;\n }\n\n &-left {\n width: 50%;\n max-width: 320px;\n border-right: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n padding: 1.1em;\n\n > div {\n margin-bottom: 2em;\n }\n }\n\n &-right {\n width: 50%;\n flex: 1 1 auto;\n margin-bottom: 12px;\n }\n }\n}\n</style>\n","import Status from '../status/status.vue'\nimport List from '../list/list.vue'\nimport Checkbox from '../checkbox/checkbox.vue'\nimport Modal from '../modal/modal.vue'\nimport UserLink from '../user_link/user_link.vue'\n\nconst UserReportingModal = {\n components: {\n Status,\n List,\n Checkbox,\n Modal,\n UserLink\n },\n data () {\n return {\n comment: '',\n forward: false,\n statusIdsToReport: [],\n processing: false,\n error: false\n }\n },\n computed: {\n reportModal () {\n return this.$store.state.reports.reportModal\n },\n isLoggedIn () {\n return !!this.$store.state.users.currentUser\n },\n isOpen () {\n return this.isLoggedIn && this.reportModal.activated\n },\n userId () {\n return this.reportModal.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.reportModal.statuses\n },\n preTickedIds () {\n return this.reportModal.preTickedIds\n }\n },\n watch: {\n userId: 'resetState',\n preTickedIds (newValue) {\n this.statusIdsToReport = newValue\n }\n },\n methods: {\n resetState () {\n // Reset state\n this.comment = ''\n this.forward = false\n this.statusIdsToReport = this.preTickedIds\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","import { render } from \"./user_reporting_modal.vue?vue&type=template&id=b4c54784\"\nimport script from \"./user_reporting_modal.js?vue&type=script&lang=js\"\nexport * from \"./user_reporting_modal.js?vue&type=script&lang=js\"\n\nimport \"./user_reporting_modal.vue?vue&type=style&index=0&id=b4c54784&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Modal\n v-if=\"isFormVisible\"\n class=\"edit-form-modal-view\"\n @backdropClicked=\"closeModal\"\n >\n <div class=\"edit-form-modal-panel panel\">\n <div class=\"panel-heading\">\n {{ $t('post_status.edit_status') }}\n </div>\n <PostStatusForm\n class=\"panel-body\"\n v-bind=\"params\"\n :post-handler=\"doEditStatus\"\n :disable-polls=\"true\"\n :disable-visibility-selector=\"true\"\n @posted=\"closeModal\"\n />\n </div>\n </Modal>\n</template>\n\n<script src=\"./edit_status_modal.js\"></script>\n\n<style lang=\"scss\">\n.modal-view.edit-form-modal-view {\n align-items: flex-start;\n}\n\n.edit-form-modal-panel {\n flex-shrink: 0;\n margin-top: 25%;\n margin-bottom: 2em;\n width: 100%;\n max-width: 700px;\n\n @media (orientation: landscape) {\n margin-top: 8%;\n }\n\n .form-bottom-left {\n max-width: 6.5em;\n\n .emoji-icon {\n justify-content: right;\n }\n }\n}\n</style>\n","import PostStatusForm from '../post_status_form/post_status_form.vue'\nimport Modal from '../modal/modal.vue'\nimport statusPosterService from '../../services/status_poster/status_poster.service.js'\nimport get from 'lodash/get'\n\nconst EditStatusModal = {\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.editStatus.modalActivated\n },\n isFormVisible () {\n return this.isLoggedIn && !this.resettingForm && this.modalActivated\n },\n params () {\n return this.$store.state.editStatus.params || {}\n }\n },\n watch: {\n params (newVal, oldVal) {\n if (get(newVal, 'statusId') !== get(oldVal, 'statusId')) {\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 doEditStatus ({ status, spoilerText, sensitive, media, contentType, poll }) {\n const params = {\n store: this.$store,\n statusId: this.$store.state.editStatus.params.statusId,\n status,\n spoilerText,\n sensitive,\n poll,\n media,\n contentType\n }\n\n return statusPosterService.editStatus(params)\n .then((data) => {\n return data\n })\n .catch((err) => {\n console.error('Error editing status', err)\n return {\n error: err.message\n }\n })\n },\n closeModal () {\n this.$store.dispatch('closeEditStatusModal')\n }\n }\n}\n\nexport default EditStatusModal\n","import { render } from \"./edit_status_modal.vue?vue&type=template&id=7e74cdc2\"\nimport script from \"./edit_status_modal.js?vue&type=script&lang=js\"\nexport * from \"./edit_status_modal.js?vue&type=script&lang=js\"\n\nimport \"./edit_status_modal.vue?vue&type=style&index=0&id=7e74cdc2&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Modal\n v-if=\"isLoggedIn && !resettingForm\"\n :is-open=\"modalActivated\"\n class=\"post-form-modal-view\"\n @backdropClicked=\"closeModal\"\n >\n <div class=\"post-form-modal-panel panel\">\n <div class=\"panel-heading\">\n {{ $t('post_status.new_status') }}\n </div>\n <PostStatusForm\n class=\"panel-body\"\n v-bind=\"params\"\n @posted=\"resetAndClose\"\n />\n </div>\n </Modal>\n</template>\n\n<script src=\"./post_status_modal.js\"></script>\n\n<style lang=\"scss\">\n.modal-view.post-form-modal-view {\n align-items: flex-start;\n}\n\n.post-form-modal-panel {\n flex-shrink: 0;\n margin-top: 25%;\n margin-bottom: 2em;\n width: 100%;\n max-width: 700px;\n\n @media (orientation: landscape) {\n margin-top: 8%;\n }\n}\n</style>\n","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 resetAndClose () {\n this.$store.dispatch('resetPostStatusModal')\n this.$store.dispatch('closePostStatusModal')\n }\n }\n}\n\nexport default PostStatusModal\n","import { render } from \"./post_status_modal.vue?vue&type=template&id=365216ee\"\nimport script from \"./post_status_modal.js?vue&type=script&lang=js\"\nexport * from \"./post_status_modal.js?vue&type=script&lang=js\"\n\nimport \"./post_status_modal.vue?vue&type=style&index=0&id=365216ee&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Modal\n v-if=\"modalActivated\"\n class=\"status-history-modal-view\"\n @backdropClicked=\"closeModal\"\n >\n <div class=\"status-history-modal-panel panel\">\n <div class=\"panel-heading\">\n {{ $t('status.status_history') }} ({{ historyCount }})\n </div>\n <div class=\"panel-body\">\n <div\n v-if=\"historyCount > 0\"\n class=\"history-body\"\n >\n <status\n v-for=\"status in history\"\n :key=\"status.id\"\n :statusoid=\"status\"\n :is-preview=\"true\"\n class=\"conversation-status status-fadein panel-body\"\n />\n </div>\n </div>\n </div>\n </Modal>\n</template>\n\n<script src=\"./status_history_modal.js\"></script>\n\n<style lang=\"scss\">\n.modal-view.status-history-modal-view {\n align-items: flex-start;\n}\n\n.status-history-modal-panel {\n flex-shrink: 0;\n margin-top: 25%;\n margin-bottom: 2em;\n width: 100%;\n max-width: 700px;\n\n @media (orientation: landscape) {\n margin-top: 8%;\n }\n}\n</style>\n","import { get } from 'lodash'\nimport Modal from '../modal/modal.vue'\nimport Status from '../status/status.vue'\n\nconst StatusHistoryModal = {\n components: {\n Modal,\n Status\n },\n data () {\n return {\n statuses: []\n }\n },\n computed: {\n modalActivated () {\n return this.$store.state.statusHistory.modalActivated\n },\n params () {\n return this.$store.state.statusHistory.params\n },\n statusId () {\n return this.params.id\n },\n historyCount () {\n return this.statuses.length\n },\n history () {\n return this.statuses\n }\n },\n watch: {\n params (newVal, oldVal) {\n const newStatusId = get(newVal, 'id') !== get(oldVal, 'id')\n if (newStatusId) {\n this.resetHistory()\n }\n\n if (newStatusId || get(newVal, 'edited_at') !== get(oldVal, 'edited_at')) {\n this.fetchStatusHistory()\n }\n }\n },\n methods: {\n resetHistory () {\n this.statuses = []\n },\n fetchStatusHistory () {\n this.$store.dispatch('fetchStatusHistory', this.params)\n .then(data => {\n this.statuses = data\n })\n },\n closeModal () {\n this.$store.dispatch('closeStatusHistoryModal')\n }\n }\n}\n\nexport default StatusHistoryModal\n","import { render } from \"./status_history_modal.vue?vue&type=template&id=16d58712\"\nimport script from \"./status_history_modal.js?vue&type=script&lang=js\"\nexport * from \"./status_history_modal.js?vue&type=script&lang=js\"\n\nimport \"./status_history_modal.vue?vue&type=style&index=0&id=16d58712&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"global-notice-list\">\n <div\n v-for=\"(notice, index) in notices\"\n :key=\"index\"\n class=\"alert global-notice\"\n :class=\"{ ['global-' + notice.level]: true }\"\n >\n <div class=\"notice-message\">\n {{ $t(notice.messageKey, notice.messageArgs) }}\n </div>\n <button\n class=\"button-unstyled close-notice\"\n @click=\"closeNotice(notice)\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"times\"\n />\n </button>\n </div>\n </div>\n</template>\n\n<script src=\"./global_notice_list.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.global-notice-list {\n position: fixed;\n top: calc(var(--navbar-height) + 0.5em);\n width: 100%;\n pointer-events: none;\n z-index: var(--ZI_modals_popovers);\n display: flex;\n flex-direction: column;\n align-items: center;\n\n .global-notice {\n pointer-events: auto;\n text-align: center;\n width: 40em;\n max-width: calc(100% - 3em);\n display: flex;\n padding-left: 1.5em;\n line-height: 2;\n margin-bottom: 0.5em;\n\n .notice-message {\n flex: 1 1 100%;\n }\n }\n\n .global-error {\n background-color: var(--alertPopupError, $fallback--cRed);\n color: var(--alertPopupErrorText, $fallback--text);\n\n .svg-inline--fa {\n color: var(--alertPopupErrorText, $fallback--text);\n }\n }\n\n .global-warning {\n background-color: var(--alertPopupWarning, $fallback--cOrange);\n color: var(--alertPopupWarningText, $fallback--text);\n\n .svg-inline--fa {\n color: var(--alertPopupWarningText, $fallback--text);\n }\n }\n\n .global-success {\n background-color: var(--alertPopupSuccess, $fallback--cGreen);\n color: var(--alertPopupSuccessText, $fallback--text);\n\n .svg-inline--fa {\n color: var(--alertPopupSuccessText, $fallback--text);\n }\n }\n\n .global-info {\n background-color: var(--alertPopupNeutral, $fallback--fg);\n color: var(--alertPopupNeutralText, $fallback--text);\n\n .svg-inline--fa {\n color: var(--alertPopupNeutralText, $fallback--text);\n }\n }\n\n .close-notice {\n padding-right: 0.2em;\n\n .svg-inline--fa:hover {\n opacity: 0.6;\n }\n }\n}\n</style>\n","import { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faTimes\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faTimes\n)\n\nconst GlobalNoticeList = {\n computed: {\n notices () {\n return this.$store.state.interface.globalNotices\n }\n },\n methods: {\n closeNotice (notice) {\n this.$store.dispatch('removeGlobalNotice', notice)\n }\n }\n}\n\nexport default GlobalNoticeList\n","import { render } from \"./global_notice_list.vue?vue&type=template&id=f53eca8e\"\nimport script from \"./global_notice_list.js?vue&type=script&lang=js\"\nexport * from \"./global_notice_list.js?vue&type=script&lang=js\"\n\nimport \"./global_notice_list.vue?vue&type=style&index=0&id=f53eca8e&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import UserPanel from './components/user_panel/user_panel.vue'\nimport NavPanel from './components/nav_panel/nav_panel.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 ShoutPanel from './components/shout_panel/shout_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 DesktopNav from './components/desktop_nav/desktop_nav.vue'\nimport UserReportingModal from './components/user_reporting_modal/user_reporting_modal.vue'\nimport EditStatusModal from './components/edit_status_modal/edit_status_modal.vue'\nimport PostStatusModal from './components/post_status_modal/post_status_modal.vue'\nimport StatusHistoryModal from './components/status_history_modal/status_history_modal.vue'\nimport GlobalNoticeList from './components/global_notice_list/global_notice_list.vue'\nimport { windowWidth, windowHeight } from './services/window_utils/window_utils'\nimport { mapGetters } from 'vuex'\nimport { defineAsyncComponent } from 'vue'\n\nexport default {\n name: 'app',\n components: {\n UserPanel,\n NavPanel,\n Notifications: defineAsyncComponent(() => import('./components/notifications/notifications.vue')),\n InstanceSpecificPanel,\n FeaturesPanel,\n WhoToFollowPanel,\n ShoutPanel,\n MediaModal,\n SideDrawer,\n MobilePostStatusButton,\n MobileNav,\n DesktopNav,\n SettingsModal: defineAsyncComponent(() => import('./components/settings_modal/settings_modal.vue')),\n UpdateNotification: defineAsyncComponent(() => import('./components/update_notification/update_notification.vue')),\n UserReportingModal,\n PostStatusModal,\n EditStatusModal,\n StatusHistoryModal,\n GlobalNoticeList\n },\n data: () => ({\n mobileActivePanel: 'timeline'\n }),\n created () {\n // Load the locale from the storage\n const val = this.$store.getters.mergedConfig.interfaceLanguage\n this.$store.dispatch('setOption', { name: 'interfaceLanguage', value: val })\n window.addEventListener('resize', this.updateMobileState)\n },\n unmounted () {\n window.removeEventListener('resize', this.updateMobileState)\n },\n computed: {\n classes () {\n return [\n {\n '-reverse': this.reverseLayout,\n '-no-sticky-headers': this.noSticky,\n '-has-new-post-button': this.newPostButtonShown\n },\n '-' + this.layoutType\n ]\n },\n navClasses () {\n const { navbarColumnStretch } = this.$store.getters.mergedConfig\n return [\n '-' + this.layoutType,\n ...(navbarColumnStretch ? ['-column-stretch'] : [])\n ]\n },\n currentUser () { return this.$store.state.users.currentUser },\n userBackground () { return this.currentUser.background_image },\n instanceBackground () {\n return this.mergedConfig.hideInstanceWallpaper\n ? null\n : this.$store.state.instance.background\n },\n background () { return this.userBackground || this.instanceBackground },\n bgStyle () {\n if (this.background) {\n return {\n '--body-background-image': `url(${this.background})`\n }\n }\n },\n shout () { return this.$store.state.shout.joined },\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 isChats () {\n return this.$route.name === 'chat' || this.$route.name === 'chats'\n },\n isListEdit () {\n return this.$route.name === 'lists-edit'\n },\n newPostButtonShown () {\n if (this.isChats) return false\n if (this.isListEdit) return false\n return this.$store.getters.mergedConfig.alwaysShowNewPostButton || this.layoutType === 'mobile'\n },\n showFeaturesPanel () { return this.$store.state.instance.showFeaturesPanel },\n editingAvailable () { return this.$store.state.instance.editingAvailable },\n shoutboxPosition () {\n return this.$store.getters.mergedConfig.alwaysShowNewPostButton || false\n },\n hideShoutbox () {\n return this.$store.getters.mergedConfig.hideShoutbox\n },\n layoutType () { return this.$store.state.interface.layoutType },\n privateMode () { return this.$store.state.instance.private },\n reverseLayout () {\n const { thirdColumnMode, sidebarRight: reverseSetting } = this.$store.getters.mergedConfig\n if (this.layoutType !== 'wide') {\n return reverseSetting\n } else {\n return thirdColumnMode === 'notifications' ? reverseSetting : !reverseSetting\n }\n },\n noSticky () { return this.$store.getters.mergedConfig.disableStickyHeaders },\n showScrollbars () { return this.$store.getters.mergedConfig.showScrollbars },\n ...mapGetters(['mergedConfig'])\n },\n methods: {\n updateMobileState () {\n this.$store.dispatch('setLayoutWidth', windowWidth())\n this.$store.dispatch('setLayoutHeight', windowHeight())\n }\n }\n}\n","import { render } from \"./App.vue?vue&type=template&id=8323d9fc\"\nimport script from \"./App.js?vue&type=script&lang=js\"\nexport * from \"./App.js?vue&type=script&lang=js\"\n\nimport \"./App.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div :class=\"['Timeline', classes.root]\">\n <div :class=\"classes.header\">\n <TimelineMenu\n v-if=\"!embedded\"\n :timeline-name=\"timelineName\"\n />\n <div\n v-if=\"showScrollTop && !embedded\"\n class=\"rightside-button\"\n >\n <button\n class=\"button-unstyled scroll-to-top-button\"\n type=\"button\"\n :title=\"$t('general.scroll_to_top')\"\n @click=\"scrollToTop\"\n >\n <FALayers class=\"fa-scale-110 fa-old-padding-layer\">\n <FAIcon icon=\"arrow-up\" />\n <FAIcon\n icon=\"minus\"\n transform=\"up-7\"\n />\n </FALayers>\n </button>\n </div>\n <template v-if=\"mobileLayout && !embedded\">\n <div\n v-if=\"showLoadButton\"\n class=\"rightside-button\"\n >\n <button\n class=\"button-unstyled loadmore-button\"\n :title=\"loadButtonString\"\n @click.prevent=\"showNewStatuses\"\n >\n <FAIcon\n fixed-width\n icon=\"circle-plus\"\n />\n <div class=\"alert-badge\">\n {{ mobileLoadButtonString }}\n </div>\n </button>\n </div>\n <div\n v-else-if=\"!embedded\"\n class=\"loadmore-text faint veryfaint rightside-icon\"\n :title=\"$t('timeline.up_to_date')\"\n :aria-disabled=\"true\"\n @click.prevent\n >\n <FAIcon\n fixed-width\n icon=\"check\"\n />\n </div>\n </template>\n <template v-else>\n <button\n v-if=\"showLoadButton\"\n class=\"button-default loadmore-button\"\n @click.prevent=\"showNewStatuses\"\n >\n {{ loadButtonString }}\n </button>\n <div\n v-else-if=\"!embedded\"\n class=\"loadmore-text faint\"\n @click.prevent\n >\n {{ $t('timeline.up_to_date') }}\n </div>\n </template>\n <QuickFilterSettings\n v-if=\"!embedded\"\n class=\"rightside-button\"\n />\n <QuickViewSettings\n v-if=\"!embedded\"\n class=\"rightside-button\"\n />\n </div>\n <div :class=\"classes.body\">\n <div\n ref=\"timeline\"\n class=\"timeline\"\n role=\"feed\"\n >\n <conversation\n v-for=\"statusId in filteredPinnedStatusIds\"\n :key=\"statusId + '-pinned'\"\n role=\"listitem\"\n class=\"status-fadein\"\n :status-id=\"statusId\"\n :collapsable=\"true\"\n :pinned-status-ids-object=\"pinnedStatusIdsObject\"\n :in-profile=\"inProfile\"\n :profile-user-id=\"userId\"\n />\n <conversation\n v-for=\"status in filteredVisibleStatuses\"\n :key=\"status.id\"\n role=\"listitem\"\n class=\"status-fadein\"\n :status-id=\"status.id\"\n :collapsable=\"true\"\n :in-profile=\"inProfile\"\n :profile-user-id=\"userId\"\n :virtual-hidden=\"virtualScrollingEnabled && !statusesToDisplay.includes(status.id)\"\n />\n </div>\n </div>\n <div :class=\"classes.footer\">\n <teleport\n :to=\"footerSlipgate\"\n :disabled=\"!embedded || !footerSlipgate\"\n >\n <div\n v-if=\"count===0\"\n class=\"new-status-notification text-center faint\"\n >\n {{ $t('timeline.no_statuses') }}\n </div>\n <div\n v-else-if=\"bottomedOut\"\n class=\"new-status-notification text-center faint\"\n >\n {{ $t('timeline.no_more_statuses') }}\n </div>\n <button\n v-else-if=\"!timeline.loading\"\n class=\"button-unstyled -link\"\n @click.prevent=\"fetchOlderStatuses()\"\n >\n <div class=\"new-status-notification text-center\">\n {{ $t('timeline.load_older') }}\n </div>\n </button>\n <div\n v-else\n class=\"new-status-notification text-center\"\n >\n <FAIcon\n icon=\"circle-notch\"\n spin\n size=\"lg\"\n />\n </div>\n </teleport>\n </div>\n </div>\n</template>\n\n<script src=\"./timeline.js\"></script>\n\n<style src=\"./timeline.scss\" lang=\"scss\"> </style>\n","<template>\n <div\n v-if=\"!hideStatus\"\n :style=\"hiddenStyle\"\n class=\"Conversation\"\n :class=\"{ '-expanded' : isExpanded, 'panel' : isExpanded }\"\n >\n <div\n v-if=\"isExpanded\"\n class=\"panel-heading conversation-heading -sticky\"\n >\n <span class=\"title\"> {{ $t('timeline.conversation') }} </span>\n <button\n v-if=\"collapsable\"\n class=\"button-unstyled -link\"\n @click.prevent=\"toggleExpanded\"\n >\n {{ $t('timeline.collapse') }}\n </button>\n <QuickFilterSettings\n v-if=\"!collapsable\"\n :conversation=\"true\"\n class=\"rightside-button\"\n />\n <QuickViewSettings\n v-if=\"!collapsable\"\n :conversation=\"true\"\n class=\"rightside-button\"\n />\n </div>\n <div class=\"conversation-body panel-body\">\n <div\n v-if=\"isTreeView\"\n class=\"thread-body\"\n >\n <div\n v-if=\"shouldShowAllConversationButton\"\n class=\"conversation-dive-to-top-level-box\"\n >\n <i18n-t\n keypath=\"status.show_all_conversation_with_icon\"\n tag=\"button\"\n class=\"button-unstyled -link\"\n scope=\"global\"\n @click.prevent=\"diveToTopLevel\"\n >\n <template #icon>\n <FAIcon\n icon=\"angle-double-left\"\n />\n </template>\n <template #text>\n <span>\n {{ $tc('status.show_all_conversation', otherTopLevelCount, { numStatus: otherTopLevelCount }) }}\n </span>\n </template>\n </i18n-t>\n </div>\n <div\n v-if=\"shouldShowAncestors\"\n class=\"thread-ancestors\"\n >\n <article\n v-for=\"status in ancestorsOf(diveRoot)\"\n :key=\"status.id\"\n class=\"thread-ancestor\"\n :class=\"{'thread-ancestor-has-other-replies': getReplies(status.id).length > 1, '-faded': shouldFadeAncestors}\"\n >\n <status\n ref=\"statusComponent\"\n :inline-expanded=\"collapsable && isExpanded\"\n :statusoid=\"status\"\n :expandable=\"!isExpanded\"\n :show-pinned=\"pinnedStatusIdsObject && pinnedStatusIdsObject[status.id]\"\n :focused=\"focused(status.id)\"\n :in-conversation=\"isExpanded\"\n :highlight=\"getHighlight()\"\n :replies=\"getReplies(status.id)\"\n :in-profile=\"inProfile\"\n :profile-user-id=\"profileUserId\"\n class=\"conversation-status status-fadein panel-body\"\n\n :simple-tree=\"treeViewIsSimple\"\n :toggle-thread-display=\"toggleThreadDisplay\"\n :thread-display-status=\"threadDisplayStatus\"\n :show-thread-recursively=\"showThreadRecursively\"\n :total-reply-count=\"totalReplyCount\"\n :total-reply-depth=\"totalReplyDepth\"\n :show-other-replies-as-button=\"showOtherRepliesButtonInsideStatus\"\n :dive=\"() => diveIntoStatus(status.id)\"\n\n :controlled-showing-tall=\"statusContentProperties[status.id].showingTall\"\n :controlled-expanding-subject=\"statusContentProperties[status.id].expandingSubject\"\n :controlled-showing-long-subject=\"statusContentProperties[status.id].showingLongSubject\"\n :controlled-replying=\"statusContentProperties[status.id].replying\"\n :controlled-media-playing=\"statusContentProperties[status.id].mediaPlaying\"\n :controlled-toggle-showing-tall=\"() => toggleStatusContentProperty(status.id, 'showingTall')\"\n :controlled-toggle-expanding-subject=\"() => toggleStatusContentProperty(status.id, 'expandingSubject')\"\n :controlled-toggle-showing-long-subject=\"() => toggleStatusContentProperty(status.id, 'showingLongSubject')\"\n :controlled-toggle-replying=\"() => toggleStatusContentProperty(status.id, 'replying')\"\n :controlled-set-media-playing=\"(newVal) => toggleStatusContentProperty(status.id, 'mediaPlaying', newVal)\"\n\n @goto=\"setHighlight\"\n @toggleExpanded=\"toggleExpanded\"\n />\n <div\n v-if=\"showOtherRepliesButtonBelowStatus && getReplies(status.id).length > 1\"\n class=\"thread-ancestor-dive-box\"\n >\n <div\n class=\"thread-ancestor-dive-box-inner\"\n >\n <i18n-t\n tag=\"button\"\n scope=\"global\"\n keypath=\"status.ancestor_follow_with_icon\"\n class=\"button-unstyled -link thread-tree-show-replies-button\"\n @click.prevent=\"diveIntoStatus(status.id)\"\n >\n <template #icon>\n <FAIcon\n icon=\"angle-double-right\"\n />\n </template>\n <template #text>\n <span>\n {{ $tc('status.ancestor_follow', getReplies(status.id).length - 1, { numReplies: getReplies(status.id).length - 1 }) }}\n </span>\n </template>\n </i18n-t>\n </div>\n </div>\n </article>\n </div>\n <thread-tree\n v-for=\"status in showingTopLevel\"\n :key=\"status.id\"\n ref=\"statusComponent\"\n :depth=\"0\"\n\n :status=\"status\"\n :in-profile=\"inProfile\"\n :conversation=\"conversation\"\n :collapsable=\"collapsable\"\n :is-expanded=\"isExpanded\"\n :pinned-status-ids-object=\"pinnedStatusIdsObject\"\n :profile-user-id=\"profileUserId\"\n\n :focused=\"focused\"\n :get-replies=\"getReplies\"\n :highlight=\"maybeHighlight\"\n :set-highlight=\"setHighlight\"\n :toggle-expanded=\"toggleExpanded\"\n\n :simple=\"treeViewIsSimple\"\n :toggle-thread-display=\"toggleThreadDisplay\"\n :thread-display-status=\"threadDisplayStatus\"\n :show-thread-recursively=\"showThreadRecursively\"\n :total-reply-count=\"totalReplyCount\"\n :total-reply-depth=\"totalReplyDepth\"\n :status-content-properties=\"statusContentProperties\"\n :set-status-content-property=\"setStatusContentProperty\"\n :toggle-status-content-property=\"toggleStatusContentProperty\"\n :dive=\"canDive ? diveIntoStatus : undefined\"\n />\n </div>\n <div\n v-if=\"isLinearView\"\n class=\"thread-body\"\n >\n <article>\n <status\n v-for=\"status in conversation\"\n :key=\"status.id\"\n ref=\"statusComponent\"\n :inline-expanded=\"collapsable && isExpanded\"\n :statusoid=\"status\"\n :expandable=\"!isExpanded\"\n :show-pinned=\"pinnedStatusIdsObject && pinnedStatusIdsObject[status.id]\"\n :focused=\"focused(status.id)\"\n :in-conversation=\"isExpanded\"\n :highlight=\"getHighlight()\"\n :replies=\"getReplies(status.id)\"\n :in-profile=\"inProfile\"\n :profile-user-id=\"profileUserId\"\n class=\"conversation-status status-fadein panel-body\"\n\n :toggle-thread-display=\"toggleThreadDisplay\"\n :thread-display-status=\"threadDisplayStatus\"\n :show-thread-recursively=\"showThreadRecursively\"\n :total-reply-count=\"totalReplyCount\"\n :total-reply-depth=\"totalReplyDepth\"\n :status-content-properties=\"statusContentProperties\"\n :set-status-content-property=\"setStatusContentProperty\"\n :toggle-status-content-property=\"toggleStatusContentProperty\"\n\n @goto=\"setHighlight\"\n @toggleExpanded=\"toggleExpanded\"\n />\n </article>\n </div>\n </div>\n </div>\n <div\n v-else\n :style=\"hiddenStyle\"\n />\n</template>\n\n<script src=\"./conversation.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.Conversation {\n z-index: 1;\n\n .conversation-dive-to-top-level-box {\n padding: var(--status-margin, $status-margin);\n border-bottom: 1px solid var(--border, $fallback--border);\n border-radius: 0;\n\n /* Make the button stretch along the whole row */\n display: flex;\n align-items: stretch;\n flex-direction: column;\n }\n\n .thread-ancestors {\n margin-left: var(--status-margin, $status-margin);\n border-left: 2px solid var(--border, $fallback--border);\n }\n\n .thread-ancestor.-faded .StatusContent {\n --link: var(--faintLink);\n --text: var(--faint);\n\n color: var(--text);\n }\n\n .thread-ancestor-dive-box {\n padding-left: var(--status-margin, $status-margin);\n border-bottom: 1px solid var(--border, $fallback--border);\n border-radius: 0;\n\n /* Make the button stretch along the whole row */\n &,\n &-inner {\n display: flex;\n align-items: stretch;\n flex-direction: column;\n }\n }\n\n .thread-ancestor-dive-box-inner {\n padding: var(--status-margin, $status-margin);\n }\n\n .conversation-status {\n border-bottom: 1px solid var(--border, $fallback--border);\n border-radius: 0;\n }\n\n .thread-ancestor-has-other-replies .conversation-status,\n &:last-child .conversation-status,\n .thread-ancestor:last-child .conversation-status,\n .thread-ancestor:last-child .thread-ancestor-dive-box,\n &.-expanded .thread-tree .conversation-status {\n border-bottom: none;\n }\n\n .thread-ancestors + .thread-tree > .conversation-status {\n border-top: 1px solid var(--border, $fallback--border);\n }\n\n /* expanded conversation in timeline */\n &.status-fadein.-expanded .thread-body {\n border-left: 4px solid $fallback--cRed;\n border-left-color: var(--cRed, $fallback--cRed);\n border-radius: 0 0 $fallback--panelRadius $fallback--panelRadius;\n border-radius: 0 0 var(--panelRadius, $fallback--panelRadius) var(--panelRadius, $fallback--panelRadius);\n border-bottom: 1px solid var(--border, $fallback--border);\n }\n\n &.-expanded.status-fadein {\n margin: calc(var(--status-margin, $status-margin) / 2);\n }\n}\n</style>\n","<template>\n <article class=\"thread-tree\">\n <status\n :key=\"status.id\"\n ref=\"statusComponent\"\n :inline-expanded=\"collapsable && isExpanded\"\n :statusoid=\"status\"\n :expandable=\"!isExpanded\"\n :show-pinned=\"pinnedStatusIdsObject && pinnedStatusIdsObject[status.id]\"\n :focused=\"focused(status.id)\"\n :in-conversation=\"isExpanded\"\n :highlight=\"highlight\"\n :replies=\"getReplies(status.id)\"\n :in-profile=\"inProfile\"\n :profile-user-id=\"profileUserId\"\n class=\"conversation-status conversation-status-treeview status-fadein panel-body\"\n\n :simple-tree=\"simple\"\n :controlled-thread-display-status=\"threadDisplayStatus[status.id]\"\n :controlled-toggle-thread-display=\"() => toggleThreadDisplay(status.id)\"\n\n :controlled-showing-tall=\"currentProp.showingTall\"\n :controlled-expanding-subject=\"currentProp.expandingSubject\"\n :controlled-showing-long-subject=\"currentProp.showingLongSubject\"\n :controlled-replying=\"currentProp.replying\"\n :controlled-media-playing=\"currentProp.mediaPlaying\"\n :controlled-toggle-showing-tall=\"() => toggleCurrentProp('showingTall')\"\n :controlled-toggle-expanding-subject=\"() => toggleCurrentProp('expandingSubject')\"\n :controlled-toggle-showing-long-subject=\"() => toggleCurrentProp('showingLongSubject')\"\n :controlled-toggle-replying=\"() => toggleCurrentProp('replying')\"\n :controlled-set-media-playing=\"(newVal) => setCurrentProp('mediaPlaying', newVal)\"\n :dive=\"dive ? () => dive(status.id) : undefined\"\n\n @goto=\"setHighlight\"\n @toggleExpanded=\"toggleExpanded\"\n />\n <div\n v-if=\"currentReplies.length && threadShowing\"\n class=\"thread-tree-replies\"\n >\n <thread-tree\n v-for=\"replyStatus in currentReplies\"\n :key=\"replyStatus.id\"\n ref=\"childComponent\"\n :depth=\"depth + 1\"\n :status=\"replyStatus\"\n\n :in-profile=\"inProfile\"\n :conversation=\"conversation\"\n :collapsable=\"collapsable\"\n :is-expanded=\"isExpanded\"\n :pinned-status-ids-object=\"pinnedStatusIdsObject\"\n :profile-user-id=\"profileUserId\"\n\n :focused=\"focused\"\n :get-replies=\"getReplies\"\n :highlight=\"highlight\"\n :set-highlight=\"setHighlight\"\n :toggle-expanded=\"toggleExpanded\"\n\n :simple=\"simple\"\n :toggle-thread-display=\"toggleThreadDisplay\"\n :thread-display-status=\"threadDisplayStatus\"\n :show-thread-recursively=\"showThreadRecursively\"\n :total-reply-count=\"totalReplyCount\"\n :total-reply-depth=\"totalReplyDepth\"\n :status-content-properties=\"statusContentProperties\"\n :set-status-content-property=\"setStatusContentProperty\"\n :toggle-status-content-property=\"toggleStatusContentProperty\"\n :dive=\"dive\"\n />\n </div>\n <div\n v-if=\"currentReplies.length && !threadShowing\"\n class=\"thread-tree-replies thread-tree-replies-hidden\"\n >\n <i18n-t\n v-if=\"simple\"\n scope=\"global\"\n tag=\"button\"\n keypath=\"status.thread_follow_with_icon\"\n class=\"button-unstyled -link thread-tree-show-replies-button\"\n @click.prevent=\"dive(status.id)\"\n >\n <template #icon>\n <FAIcon\n icon=\"angle-double-right\"\n />\n </template>\n <template #text>\n <span>\n {{ $tc('status.thread_follow', totalReplyCount[status.id], { numStatus: totalReplyCount[status.id] }) }}\n </span>\n </template>\n </i18n-t>\n <i18n-t\n v-else\n scope=\"global\"\n tag=\"button\"\n keypath=\"status.thread_show_full_with_icon\"\n class=\"button-unstyled -link thread-tree-show-replies-button\"\n @click.prevent=\"showThreadRecursively(status.id)\"\n >\n <template #icon>\n <FAIcon\n icon=\"angle-double-down\"\n />\n </template>\n <template #text>\n <span>\n {{ $tc('status.thread_show_full', totalReplyCount[status.id], { numStatus: totalReplyCount[status.id], depth: totalReplyDepth[status.id] }) }}\n </span>\n </template>\n </i18n-t>\n </div>\n </article>\n</template>\n\n<script src=\"./thread_tree.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.thread-tree-replies {\n margin-left: var(--status-margin, $status-margin);\n border-left: 2px solid var(--border, $fallback--border);\n}\n\n.thread-tree-replies-hidden {\n padding: var(--status-margin, $status-margin);\n\n /* Make the button stretch along the whole row */\n display: flex;\n align-items: stretch;\n flex-direction: column;\n}\n</style>\n","import Status from '../status/status.vue'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faAngleDoubleDown,\n faAngleDoubleRight\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faAngleDoubleDown,\n faAngleDoubleRight\n)\n\nconst ThreadTree = {\n components: {\n Status\n },\n name: 'ThreadTree',\n props: {\n depth: Number,\n status: Object,\n inProfile: Boolean,\n conversation: Array,\n collapsable: Boolean,\n isExpanded: Boolean,\n pinnedStatusIdsObject: Object,\n profileUserId: String,\n\n focused: Function,\n highlight: String,\n getReplies: Function,\n setHighlight: Function,\n toggleExpanded: Function,\n\n simple: Boolean,\n // to control display of the whole thread forest\n toggleThreadDisplay: Function,\n threadDisplayStatus: Object,\n showThreadRecursively: Function,\n totalReplyCount: Object,\n totalReplyDepth: Object,\n statusContentProperties: Object,\n setStatusContentProperty: Function,\n toggleStatusContentProperty: Function,\n dive: Function\n },\n computed: {\n suspendable () {\n const selfSuspendable = this.$refs.statusComponent ? this.$refs.statusComponent.suspendable : true\n if (this.$refs.childComponent) {\n return selfSuspendable && this.$refs.childComponent.every(s => s.suspendable)\n }\n return selfSuspendable\n },\n reverseLookupTable () {\n return this.conversation.reduce((table, status, index) => {\n table[status.id] = index\n return table\n }, {})\n },\n currentReplies () {\n return this.getReplies(this.status.id).map(({ id }) => this.statusById(id))\n },\n threadShowing () {\n return this.threadDisplayStatus[this.status.id] === 'showing'\n },\n currentProp () {\n return this.statusContentProperties[this.status.id]\n }\n },\n methods: {\n statusById (id) {\n return this.conversation[this.reverseLookupTable[id]]\n },\n collapseThread () {\n },\n showThread () {\n },\n showAllSubthreads () {\n },\n toggleCurrentProp (name) {\n this.toggleStatusContentProperty(this.status.id, name)\n },\n setCurrentProp (name, newVal) {\n this.setStatusContentProperty(this.status.id, name)\n }\n }\n}\n\nexport default ThreadTree\n","import { render } from \"./thread_tree.vue?vue&type=template&id=061df1d9\"\nimport script from \"./thread_tree.js?vue&type=script&lang=js\"\nexport * from \"./thread_tree.js?vue&type=script&lang=js\"\n\nimport \"./thread_tree.vue?vue&type=style&index=0&id=061df1d9&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Popover\n trigger=\"click\"\n class=\"QuickFilterSettings\"\n :bound-to=\"{ x: 'container' }\"\n :trigger-attrs=\"{ title: $t('timeline.quick_filter_settings') }\"\n >\n <template #content>\n <div\n class=\"dropdown-menu\"\n role=\"menu\"\n >\n <div\n v-if=\"loggedIn\"\n role=\"group\"\n >\n <button\n v-if=\"!conversation\"\n class=\"button-default dropdown-item\"\n :aria-checked=\"replyVisibilityAll\"\n role=\"menuitemradio\"\n @click=\"replyVisibilityAll = true\"\n >\n <span\n class=\"menu-checkbox -radio\"\n :class=\"{ 'menu-checkbox-checked': replyVisibilityAll }\"\n :aria-hidden=\"true\"\n />{{ $t('settings.reply_visibility_all') }}\n </button>\n <button\n v-if=\"!conversation\"\n class=\"button-default dropdown-item\"\n :aria-checked=\"replyVisibilityFollowing\"\n role=\"menuitemradio\"\n @click=\"replyVisibilityFollowing = true\"\n >\n <span\n class=\"menu-checkbox -radio\"\n :class=\"{ 'menu-checkbox-checked': replyVisibilityFollowing }\"\n :aria-hidden=\"true\"\n />{{ $t('settings.reply_visibility_following_short') }}\n </button>\n <button\n v-if=\"!conversation\"\n class=\"button-default dropdown-item\"\n :aria-checked=\"replyVisibilitySelf\"\n role=\"menuitemradio\"\n @click=\"replyVisibilitySelf = true\"\n >\n <span\n class=\"menu-checkbox -radio\"\n :class=\"{ 'menu-checkbox-checked': replyVisibilitySelf }\"\n :aria-hidden=\"true\"\n />{{ $t('settings.reply_visibility_self_short') }}\n </button>\n <div\n v-if=\"!conversation\"\n role=\"separator\"\n class=\"dropdown-divider\"\n />\n </div>\n <button\n class=\"button-default dropdown-item\"\n role=\"menuitemcheckbox\"\n :aria-checked=\"muteBotStatuses\"\n @click=\"muteBotStatuses = !muteBotStatuses\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': muteBotStatuses }\"\n :aria-hidden=\"true\"\n />{{ $t('settings.mute_bot_posts') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n role=\"menuitemcheckbox\"\n :aria-checked=\"hideMedia\"\n @click=\"hideMedia = !hideMedia\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': hideMedia }\"\n :aria-hidden=\"true\"\n />{{ $t('settings.hide_media_previews') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n role=\"menuitemcheckbox\"\n :aria-checked=\"hideMutedPosts\"\n @click=\"hideMutedPosts = !hideMutedPosts\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': hideMutedPosts }\"\n :aria-hidden=\"true\"\n />{{ $t('settings.hide_all_muted_posts') }}\n </button>\n <button\n class=\"button-default dropdown-item dropdown-item-icon\"\n role=\"menuitem\"\n @click=\"openTab('filtering')\"\n >\n <FAIcon icon=\"font\" />{{ $t('settings.word_filter_and_more') }}\n </button>\n </div>\n </template>\n <template #trigger>\n <FAIcon icon=\"filter\" />\n </template>\n </Popover>\n</template>\n\n<script src=\"./quick_filter_settings.js\"></script>\n","import Popover from '../popover/popover.vue'\nimport { mapGetters } from 'vuex'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faFilter, faFont, faWrench } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faFilter,\n faFont,\n faWrench\n)\n\nconst QuickFilterSettings = {\n props: {\n conversation: Boolean\n },\n components: {\n Popover\n },\n methods: {\n setReplyVisibility (visibility) {\n this.$store.dispatch('setOption', { name: 'replyVisibility', value: visibility })\n this.$store.dispatch('queueFlushAll')\n },\n openTab (tab) {\n this.$store.dispatch('openSettingsModalTab', tab)\n }\n },\n computed: {\n ...mapGetters(['mergedConfig']),\n loggedIn () {\n return !!this.$store.state.users.currentUser\n },\n replyVisibilitySelf: {\n get () { return this.mergedConfig.replyVisibility === 'self' },\n set () { this.setReplyVisibility('self') }\n },\n replyVisibilityFollowing: {\n get () { return this.mergedConfig.replyVisibility === 'following' },\n set () { this.setReplyVisibility('following') }\n },\n replyVisibilityAll: {\n get () { return this.mergedConfig.replyVisibility === 'all' },\n set () { this.setReplyVisibility('all') }\n },\n hideMedia: {\n get () { return this.mergedConfig.hideAttachments || this.mergedConfig.hideAttachmentsInConv },\n set () {\n const value = !this.hideMedia\n this.$store.dispatch('setOption', { name: 'hideAttachments', value })\n this.$store.dispatch('setOption', { name: 'hideAttachmentsInConv', value })\n }\n },\n hideMutedPosts: {\n get () { return this.mergedConfig.hideFilteredStatuses },\n set () {\n const value = !this.hideMutedPosts\n this.$store.dispatch('setOption', { name: 'hideFilteredStatuses', value })\n }\n },\n muteBotStatuses: {\n get () { return this.mergedConfig.muteBotStatuses },\n set () {\n const value = !this.muteBotStatuses\n this.$store.dispatch('setOption', { name: 'muteBotStatuses', value })\n }\n }\n }\n}\n\nexport default QuickFilterSettings\n","import { render } from \"./quick_filter_settings.vue?vue&type=template&id=43207d13\"\nimport script from \"./quick_filter_settings.js?vue&type=script&lang=js\"\nexport * from \"./quick_filter_settings.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Popover\n trigger=\"click\"\n class=\"QuickViewSettings\"\n :bound-to=\"{ x: 'container' }\"\n :trigger-attrs=\"{ title: $t('timeline.quick_view_settings') }\"\n >\n <template #content>\n <div\n class=\"dropdown-menu\"\n role=\"menu\"\n >\n <div role=\"group\">\n <button\n class=\"button-default dropdown-item\"\n :aria-checked=\"conversationDisplay === 'tree'\"\n role=\"menuitemradio\"\n @click=\"conversationDisplay = 'tree'\"\n >\n <span\n class=\"menu-checkbox -radio\"\n :aria-hidden=\"true\"\n :class=\"{ 'menu-checkbox-checked': conversationDisplay === 'tree' }\"\n /><FAIcon\n icon=\"folder-tree\"\n :aria-hidden=\"true\"\n /> {{ $t('settings.conversation_display_tree_quick') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n :aria-checked=\"conversationDisplay === 'linear'\"\n role=\"menuitemradio\"\n @click=\"conversationDisplay = 'linear'\"\n >\n <span\n class=\"menu-checkbox -radio\"\n :class=\"{ 'menu-checkbox-checked': conversationDisplay === 'linear' }\"\n :aria-hidden=\"true\"\n /><FAIcon\n icon=\"list\"\n :aria-hidden=\"true\"\n /> {{ $t('settings.conversation_display_linear_quick') }}\n </button>\n </div>\n <div\n role=\"separator\"\n class=\"dropdown-divider\"\n />\n <button\n class=\"button-default dropdown-item\"\n role=\"menuitemcheckbox\"\n :aria-checked=\"showUserAvatars\"\n @click=\"showUserAvatars = !showUserAvatars\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': showUserAvatars }\"\n :aria-hidden=\"true\"\n />{{ $t('settings.mention_link_show_avatar_quick') }}\n </button>\n <button\n v-if=\"!conversation\"\n class=\"button-default dropdown-item\"\n role=\"menuitemcheckbox\"\n :aria-checked=\"autoUpdate\"\n @click=\"autoUpdate = !autoUpdate\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': autoUpdate }\"\n :aria-hidden=\"true\"\n />{{ $t('settings.auto_update') }}\n </button>\n <button\n v-if=\"!conversation\"\n class=\"button-default dropdown-item\"\n role=\"menuitemcheckbox\"\n :aria-checked=\"collapseWithSubjects\"\n @click=\"collapseWithSubjects = !collapseWithSubjects\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': collapseWithSubjects }\"\n :aria-hidden=\"true\"\n />{{ $t('settings.collapse_subject') }}\n </button>\n <button\n class=\"button-default dropdown-item dropdown-item-icon\"\n role=\"menuitem\"\n @click=\"openTab('general')\"\n >\n <FAIcon icon=\"wrench\" />{{ $t('settings.more_settings') }}\n </button>\n </div>\n </template>\n <template #trigger>\n <FAIcon icon=\"bars\" />\n </template>\n </Popover>\n</template>\n\n<script src=\"./quick_view_settings.js\"></script>\n","import Popover from '../popover/popover.vue'\nimport { mapGetters } from 'vuex'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faList, faFolderTree, faBars, faWrench } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faList,\n faFolderTree,\n faBars,\n faWrench\n)\n\nconst QuickViewSettings = {\n props: {\n conversation: Boolean\n },\n components: {\n Popover\n },\n methods: {\n setConversationDisplay (visibility) {\n this.$store.dispatch('setOption', { name: 'conversationDisplay', value: visibility })\n },\n openTab (tab) {\n this.$store.dispatch('openSettingsModalTab', tab)\n }\n },\n computed: {\n ...mapGetters(['mergedConfig']),\n loggedIn () {\n return !!this.$store.state.users.currentUser\n },\n conversationDisplay: {\n get () { return this.mergedConfig.conversationDisplay },\n set (newVal) { this.setConversationDisplay(newVal) }\n },\n autoUpdate: {\n get () { return this.mergedConfig.streaming },\n set () {\n const value = !this.autoUpdate\n this.$store.dispatch('setOption', { name: 'streaming', value })\n }\n },\n collapseWithSubjects: {\n get () { return this.mergedConfig.collapseMessageWithSubject },\n set () {\n const value = !this.collapseWithSubjects\n this.$store.dispatch('setOption', { name: 'collapseMessageWithSubject', value })\n }\n },\n showUserAvatars: {\n get () { return this.mergedConfig.mentionLinkShowAvatar },\n set () {\n const value = !this.showUserAvatars\n console.log(value)\n this.$store.dispatch('setOption', { name: 'mentionLinkShowAvatar', value })\n }\n },\n muteBotStatuses: {\n get () { return this.mergedConfig.muteBotStatuses },\n set () {\n const value = !this.muteBotStatuses\n this.$store.dispatch('setOption', { name: 'muteBotStatuses', value })\n }\n }\n }\n}\n\nexport default QuickViewSettings\n","import { render } from \"./quick_view_settings.vue?vue&type=template&id=2a929bb0\"\nimport script from \"./quick_view_settings.js?vue&type=script&lang=js\"\nexport * from \"./quick_view_settings.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { reduce, filter, findIndex, clone, get } from 'lodash'\nimport Status from '../status/status.vue'\nimport ThreadTree from '../thread_tree/thread_tree.vue'\nimport { WSConnectionStatus } from '../../services/api/api.service.js'\nimport { mapGetters, mapState } from 'vuex'\nimport QuickFilterSettings from '../quick_filter_settings/quick_filter_settings.vue'\nimport QuickViewSettings from '../quick_view_settings/quick_view_settings.vue'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faAngleDoubleDown,\n faAngleDoubleLeft,\n faChevronLeft\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faAngleDoubleDown,\n faAngleDoubleLeft,\n faChevronLeft\n)\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 threadDisplayStatusObject: {}, // id => 'showing' | 'hidden'\n statusContentPropertiesObject: {},\n inlineDivePosition: null\n }\n },\n props: [\n 'statusId',\n 'collapsable',\n 'isPage',\n 'pinnedStatusIdsObject',\n 'inProfile',\n 'profileUserId',\n 'virtualHidden'\n ],\n created () {\n if (this.isPage) {\n this.fetchConversation()\n }\n },\n computed: {\n maxDepthToShowByDefault () {\n // maxDepthInThread = max number of depths that is *visible*\n // since our depth starts with 0 and \"showing\" means \"showing children\"\n // there is a -2 here\n const maxDepth = this.$store.getters.mergedConfig.maxDepthInThread - 2\n return maxDepth >= 1 ? maxDepth : 1\n },\n streamingEnabled () {\n return this.mergedConfig.useStreamingApi && this.mastoUserSocketStatus === WSConnectionStatus.JOINED\n },\n displayStyle () {\n return this.$store.getters.mergedConfig.conversationDisplay\n },\n isTreeView () {\n return !this.isLinearView\n },\n treeViewIsSimple () {\n return !this.$store.getters.mergedConfig.conversationTreeAdvanced\n },\n isLinearView () {\n return this.displayStyle === 'linear'\n },\n shouldFadeAncestors () {\n return this.$store.getters.mergedConfig.conversationTreeFadeAncestors\n },\n otherRepliesButtonPosition () {\n return this.$store.getters.mergedConfig.conversationOtherRepliesButton\n },\n showOtherRepliesButtonBelowStatus () {\n return this.otherRepliesButtonPosition === 'below'\n },\n showOtherRepliesButtonInsideStatus () {\n return this.otherRepliesButtonPosition === 'inside'\n },\n suspendable () {\n if (this.isTreeView) {\n return Object.entries(this.statusContentProperties)\n .every(([k, prop]) => !prop.replying && prop.mediaPlaying.length === 0)\n }\n if (this.$refs.statusComponent && this.$refs.statusComponent[0]) {\n return this.$refs.statusComponent.every(s => s.suspendable)\n } else {\n return true\n }\n },\n hideStatus () {\n return this.virtualHidden && this.suspendable\n },\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 statusMap () {\n return this.conversation.reduce((res, s) => {\n res[s.id] = s\n return res\n }, {})\n },\n threadTree () {\n const reverseLookupTable = this.conversation.reduce((table, status, index) => {\n table[status.id] = index\n return table\n }, {})\n\n const threads = this.conversation.reduce((a, cur) => {\n const id = cur.id\n a.forest[id] = this.getReplies(id)\n .map(s => s.id)\n\n return a\n }, {\n forest: {}\n })\n\n const walk = (forest, topLevel, depth = 0, processed = {}) => topLevel.map(id => {\n if (processed[id]) {\n return []\n }\n\n processed[id] = true\n return [{\n status: this.conversation[reverseLookupTable[id]],\n id,\n depth\n }, walk(forest, forest[id], depth + 1, processed)].reduce((a, b) => a.concat(b), [])\n }).reduce((a, b) => a.concat(b), [])\n\n const linearized = walk(threads.forest, this.topLevel.map(k => k.id))\n\n return linearized\n },\n replyIds () {\n return this.conversation.map(k => k.id)\n .reduce((res, id) => {\n res[id] = (this.replies[id] || []).map(k => k.id)\n return res\n }, {})\n },\n totalReplyCount () {\n const sizes = {}\n const subTreeSizeFor = (id) => {\n if (sizes[id]) {\n return sizes[id]\n }\n sizes[id] = 1 + this.replyIds[id].map(cid => subTreeSizeFor(cid)).reduce((a, b) => a + b, 0)\n return sizes[id]\n }\n this.conversation.map(k => k.id).map(subTreeSizeFor)\n return Object.keys(sizes).reduce((res, id) => {\n res[id] = sizes[id] - 1 // exclude itself\n return res\n }, {})\n },\n totalReplyDepth () {\n const depths = {}\n const subTreeDepthFor = (id) => {\n if (depths[id]) {\n return depths[id]\n }\n depths[id] = 1 + this.replyIds[id].map(cid => subTreeDepthFor(cid)).reduce((a, b) => a > b ? a : b, 0)\n return depths[id]\n }\n this.conversation.map(k => k.id).map(subTreeDepthFor)\n return Object.keys(depths).reduce((res, id) => {\n res[id] = depths[id] - 1 // exclude itself\n return res\n }, {})\n },\n depths () {\n return this.threadTree.reduce((a, k) => {\n a[k.id] = k.depth\n return a\n }, {})\n },\n topLevel () {\n const topLevel = this.conversation.reduce((tl, cur) =>\n tl.filter(k => this.getReplies(cur.id).map(v => v.id).indexOf(k.id) === -1), this.conversation)\n return topLevel\n },\n otherTopLevelCount () {\n return this.topLevel.length - 1\n },\n showingTopLevel () {\n if (this.canDive && this.diveRoot) {\n return [this.statusMap[this.diveRoot]]\n }\n return this.topLevel\n },\n diveRoot () {\n const statusId = this.inlineDivePosition || this.statusId\n const isTopLevel = !this.parentOf(statusId)\n return isTopLevel ? null : statusId\n },\n diveDepth () {\n return this.canDive && this.diveRoot ? this.depths[this.diveRoot] : 0\n },\n diveMode () {\n return this.canDive && !!this.diveRoot\n },\n shouldShowAllConversationButton () {\n // The \"show all conversation\" button tells the user that there exist\n // other toplevel statuses, so do not show it if there is only a single root\n return this.isTreeView && this.isExpanded && this.diveMode && this.topLevel.length > 1\n },\n shouldShowAncestors () {\n return this.isTreeView && this.isExpanded && this.ancestorsOf(this.diveRoot).length\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\n })\n }\n i++\n return result\n }, {})\n },\n isExpanded () {\n return !!(this.expanded || this.isPage)\n },\n hiddenStyle () {\n const height = (this.status && this.status.virtualHeight) || '120px'\n return this.virtualHidden ? { height } : {}\n },\n threadDisplayStatus () {\n return this.conversation.reduce((a, k) => {\n const id = k.id\n const depth = this.depths[id]\n const status = (() => {\n if (this.threadDisplayStatusObject[id]) {\n return this.threadDisplayStatusObject[id]\n }\n if ((depth - this.diveDepth) <= this.maxDepthToShowByDefault) {\n return 'showing'\n } else {\n return 'hidden'\n }\n })()\n\n a[id] = status\n return a\n }, {})\n },\n statusContentProperties () {\n return this.conversation.reduce((a, k) => {\n const id = k.id\n const props = (() => {\n const def = {\n showingTall: false,\n expandingSubject: false,\n showingLongSubject: false,\n isReplying: false,\n mediaPlaying: []\n }\n\n if (this.statusContentPropertiesObject[id]) {\n return {\n ...def,\n ...this.statusContentPropertiesObject[id]\n }\n }\n return def\n })()\n\n a[id] = props\n return a\n }, {})\n },\n canDive () {\n return this.isTreeView && this.isExpanded\n },\n focused () {\n return (id) => {\n return (this.isExpanded) && id === this.highlight\n }\n },\n maybeHighlight () {\n return this.isExpanded ? this.highlight : null\n },\n ...mapGetters(['mergedConfig']),\n ...mapState({\n mastoUserSocketStatus: state => state.api.mastoUserSocketStatus\n })\n },\n components: {\n Status,\n ThreadTree,\n QuickFilterSettings,\n QuickViewSettings\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 } else {\n this.resetDisplayState()\n }\n },\n virtualHidden (value) {\n this.$store.dispatch(\n 'setVirtualHeight',\n { statusId: this.statusId, height: `${this.$el.clientHeight}px` }\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 getHighlight () {\n return this.isExpanded ? this.highlight : null\n },\n setHighlight (id) {\n if (!id) return\n this.highlight = id\n\n if (!this.streamingEnabled) {\n this.$store.dispatch('fetchStatus', id)\n }\n\n this.$store.dispatch('fetchFavsAndRepeats', id)\n this.$store.dispatch('fetchEmojiReactionsBy', id)\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 setThreadDisplay (id, nextStatus) {\n this.threadDisplayStatusObject = {\n ...this.threadDisplayStatusObject,\n [id]: nextStatus\n }\n },\n toggleThreadDisplay (id) {\n const curStatus = this.threadDisplayStatus[id]\n const nextStatus = curStatus === 'showing' ? 'hidden' : 'showing'\n this.setThreadDisplay(id, nextStatus)\n },\n setThreadDisplayRecursively (id, nextStatus) {\n this.setThreadDisplay(id, nextStatus)\n this.getReplies(id).map(k => k.id).map(id => this.setThreadDisplayRecursively(id, nextStatus))\n },\n showThreadRecursively (id) {\n this.setThreadDisplayRecursively(id, 'showing')\n },\n setStatusContentProperty (id, name, value) {\n this.statusContentPropertiesObject = {\n ...this.statusContentPropertiesObject,\n [id]: {\n ...this.statusContentPropertiesObject[id],\n [name]: value\n }\n }\n },\n toggleStatusContentProperty (id, name) {\n this.setStatusContentProperty(id, name, !this.statusContentProperties[id][name])\n },\n leastVisibleAncestor (id) {\n let cur = id\n let parent = this.parentOf(cur)\n while (cur) {\n // if the parent is showing it means cur is visible\n if (this.threadDisplayStatus[parent] === 'showing') {\n return cur\n }\n parent = this.parentOf(parent)\n cur = this.parentOf(cur)\n }\n // nothing found, fall back to toplevel\n return this.topLevel[0] ? this.topLevel[0].id : undefined\n },\n diveIntoStatus (id, preventScroll) {\n this.tryScrollTo(id)\n },\n diveToTopLevel () {\n this.tryScrollTo(this.topLevelAncestorOrSelfId(this.diveRoot) || this.topLevel[0].id)\n },\n // only used when we are not on a page\n undive () {\n this.inlineDivePosition = null\n this.setHighlight(this.statusId)\n },\n tryScrollTo (id) {\n if (!id) {\n return\n }\n if (this.isPage) {\n // set statusId\n this.$router.push({ name: 'conversation', params: { id } })\n } else {\n this.inlineDivePosition = id\n }\n // Because the conversation can be unmounted when out of sight\n // and mounted again when it comes into sight,\n // the `mounted` or `created` function in `status` should not\n // contain scrolling calls, as we do not want the page to jump\n // when we scroll with an expanded conversation.\n //\n // Now the method is to rely solely on the `highlight` watcher\n // in `status` components.\n // In linear views, all statuses are rendered at all times, but\n // in tree views, it is possible that a change in active status\n // removes and adds status components (e.g. an originally child\n // status becomes an ancestor status, and thus they will be\n // different).\n // Here, let the components be rendered first, in order to trigger\n // the `highlight` watcher.\n this.$nextTick(() => {\n this.setHighlight(id)\n })\n },\n goToCurrent () {\n this.tryScrollTo(this.diveRoot || this.topLevel[0].id)\n },\n statusById (id) {\n return this.statusMap[id]\n },\n parentOf (id) {\n const status = this.statusById(id)\n if (!status) {\n return undefined\n }\n const { in_reply_to_status_id: parentId } = status\n if (!this.statusMap[parentId]) {\n return undefined\n }\n return parentId\n },\n parentOrSelf (id) {\n return this.parentOf(id) || id\n },\n // Ancestors of some status, from top to bottom\n ancestorsOf (id) {\n const ancestors = []\n let cur = this.parentOf(id)\n while (cur) {\n ancestors.unshift(this.statusMap[cur])\n cur = this.parentOf(cur)\n }\n return ancestors\n },\n topLevelAncestorOrSelfId (id) {\n let cur = id\n let parent = this.parentOf(id)\n while (parent) {\n cur = this.parentOf(cur)\n parent = this.parentOf(parent)\n }\n return cur\n },\n resetDisplayState () {\n this.undive()\n this.threadDisplayStatusObject = {}\n }\n }\n}\n\nexport default conversation\n","import { render } from \"./conversation.vue?vue&type=template&id=68e3b9cb\"\nimport script from \"./conversation.js?vue&type=script&lang=js\"\nexport * from \"./conversation.js?vue&type=script&lang=js\"\n\nimport \"./conversation.vue?vue&type=style&index=0&id=68e3b9cb&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Popover\n trigger=\"click\"\n class=\"TimelineMenu\"\n :class=\"{ 'open': isOpen }\"\n :bound-to=\"{ x: 'container' }\"\n bound-to-selector=\".Timeline\"\n popover-class=\"timeline-menu-popover popover-default\"\n @show=\"openMenu\"\n @close=\"() => isOpen = false\"\n >\n <template #content>\n <ListsMenuContent\n v-if=\"useListsMenu\"\n :show-pin=\"false\"\n class=\"timelines\"\n />\n <ul v-else>\n <NavigationEntry\n v-for=\"item in timelinesList\"\n :key=\"item.name\"\n :show-pin=\"false\"\n :item=\"item\"\n />\n </ul>\n </template>\n <template #trigger>\n <span class=\"button-unstyled title timeline-menu-title\">\n <span class=\"timeline-title\">{{ timelineName() }}</span>\n <span>\n <FAIcon\n size=\"sm\"\n icon=\"chevron-down\"\n />\n </span>\n <span\n class=\"click-blocker\"\n @click=\"blockOpen\"\n />\n </span>\n </template>\n </Popover>\n</template>\n\n<script src=\"./timeline_menu.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.timeline-menu-popover {\n min-width: 24rem;\n max-width: 100vw;\n margin-top: 0.6rem;\n font-size: 1rem;\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n\n ul {\n list-style: none;\n margin: 0;\n padding: 0;\n }\n\n a {\n display: block;\n padding: 0 0.65em;\n height: 3.5em;\n line-height: 3.5em;\n\n &:hover {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n color: $fallback--link;\n color: var(--selectedMenuText, $fallback--link);\n\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n --icon: var(--selectedMenuIcon, $fallback--icon);\n }\n\n &.router-link-active {\n font-weight: bolder;\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n color: $fallback--text;\n color: var(--selectedMenuText, $fallback--text);\n\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n --icon: var(--selectedMenuIcon, $fallback--icon);\n\n &:hover {\n text-decoration: underline;\n }\n }\n\n svg {\n margin-right: 0.4em;\n margin-left: -0.2em;\n }\n }\n\n li {\n border-bottom: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n padding: 0;\n\n &:last-child a {\n border-bottom-right-radius: $fallback--panelRadius;\n border-bottom-right-radius: var(--panelRadius, $fallback--panelRadius);\n border-bottom-left-radius: $fallback--panelRadius;\n border-bottom-left-radius: var(--panelRadius, $fallback--panelRadius);\n }\n\n &:last-child {\n border: none;\n }\n }\n}\n\n.TimelineMenu {\n margin-right: auto;\n min-width: 0;\n\n .popover-trigger-button {\n vertical-align: bottom;\n }\n\n .panel::after {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n }\n\n .timeline-menu-title {\n margin: 0;\n cursor: pointer;\n user-select: none;\n width: 100%;\n display: flex;\n\n .timeline-menu-name {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n svg {\n margin-left: 0.6em;\n transition: transform 100ms;\n }\n\n .click-blocker {\n cursor: default;\n flex-grow: 1;\n }\n }\n\n &.open .timeline-menu-title svg {\n color: $fallback--text;\n color: var(--panelText, $fallback--text);\n transform: rotate(180deg);\n }\n\n .panel {\n box-shadow: var(--popoverShadow);\n }\n}\n</style>\n","import Popover from '../popover/popover.vue'\nimport NavigationEntry from 'src/components/navigation/navigation_entry.vue'\nimport { mapState } from 'vuex'\nimport { ListsMenuContent } from '../lists_menu/lists_menu_content.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { TIMELINES } from 'src/components/navigation/navigation.js'\nimport { filterNavigation } from 'src/components/navigation/filter.js'\nimport {\n faChevronDown\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(faChevronDown)\n\n// Route -> i18n key mapping, exported and not in the computed\n// because nav panel benefits from the same information.\nexport const timelineNames = () => {\n return {\n friends: 'nav.home_timeline',\n bookmarks: 'nav.bookmarks',\n dms: 'nav.dms',\n 'public-timeline': 'nav.public_tl',\n 'public-external-timeline': 'nav.twkn'\n }\n}\n\nconst TimelineMenu = {\n components: {\n Popover,\n NavigationEntry,\n ListsMenuContent\n },\n data () {\n return {\n isOpen: false\n }\n },\n created () {\n if (timelineNames()[this.$route.name]) {\n this.$store.dispatch('setLastTimeline', this.$route.name)\n }\n },\n computed: {\n useListsMenu () {\n const route = this.$route.name\n return route === 'lists-timeline'\n },\n ...mapState({\n currentUser: state => state.users.currentUser,\n privateMode: state => state.instance.private,\n federating: state => state.instance.federating\n }),\n timelinesList () {\n return filterNavigation(\n Object.entries(TIMELINES).map(([k, v]) => ({ ...v, name: k })),\n {\n hasChats: this.pleromaChatMessagesAvailable,\n isFederating: this.federating,\n isPrivate: this.privateMode,\n currentUser: this.currentUser\n }\n )\n }\n },\n methods: {\n openMenu () {\n // $nextTick is too fast, animation won't play back but\n // instead starts in fully open position. Low values\n // like 1-5 work on fast machines but not on mobile, 25\n // seems like a good compromise that plays without significant\n // added lag.\n setTimeout(() => {\n this.isOpen = true\n }, 25)\n },\n blockOpen (event) {\n // For the blank area inside the button element.\n // Just setting @click.stop=\"\" makes unintuitive behavior when\n // menu is open and clicking on the blank area doesn't close it.\n if (!this.isOpen) {\n event.stopPropagation()\n }\n },\n timelineName () {\n const route = this.$route.name\n if (route === 'tag-timeline') {\n return '#' + this.$route.params.tag\n }\n if (route === 'lists-timeline') {\n return this.$store.getters.findListTitle(this.$route.params.id)\n }\n const i18nkey = timelineNames()[this.$route.name]\n return i18nkey ? this.$t(i18nkey) : route\n }\n }\n}\n\nexport default TimelineMenu\n","import { render } from \"./timeline_menu.vue?vue&type=template&id=b7d0cae0\"\nimport script from \"./timeline_menu.js?vue&type=script&lang=js\"\nexport * from \"./timeline_menu.js?vue&type=script&lang=js\"\n\nimport \"./timeline_menu.vue?vue&type=style&index=0&id=b7d0cae0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import Status from '../status/status.vue'\nimport { mapState } from 'vuex'\nimport timelineFetcher from '../../services/timeline_fetcher/timeline_fetcher.service.js'\nimport Conversation from '../conversation/conversation.vue'\nimport TimelineMenu from '../timeline_menu/timeline_menu.vue'\nimport QuickFilterSettings from '../quick_filter_settings/quick_filter_settings.vue'\nimport QuickViewSettings from '../quick_view_settings/quick_view_settings.vue'\nimport { debounce, throttle, keyBy } from 'lodash'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faCircleNotch, faCirclePlus, faCog, faMinus, faArrowUp, faCheck } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCircleNotch,\n faCog,\n faMinus,\n faArrowUp,\n faCirclePlus,\n faCheck\n)\n\nconst Timeline = {\n props: [\n 'timeline',\n 'timelineName',\n 'title',\n 'userId',\n 'listId',\n 'tag',\n 'embedded',\n 'count',\n 'pinnedStatusIds',\n 'inProfile',\n 'footerSlipgate' // reference to an element where we should put our footer\n ],\n data () {\n return {\n showScrollTop: false,\n paused: false,\n unfocused: false,\n bottomedOut: false,\n virtualScrollIndex: 0,\n blockingClicks: false\n }\n },\n components: {\n Status,\n Conversation,\n TimelineMenu,\n QuickFilterSettings,\n QuickViewSettings\n },\n computed: {\n filteredVisibleStatuses () {\n return this.timeline.visibleStatuses.filter(status => this.timelineName !== 'user' || (status.id >= this.timeline.minId && status.id <= this.timeline.maxId))\n },\n filteredPinnedStatusIds () {\n return (this.pinnedStatusIds || []).filter(statusId => this.timeline.statusesObject[statusId])\n },\n newStatusCount () {\n return this.timeline.newStatusCount\n },\n showLoadButton () {\n return this.timeline.newStatusCount > 0 || this.timeline.flushMarker !== 0\n },\n loadButtonString () {\n if (this.timeline.flushMarker !== 0) {\n return this.$t('timeline.reload')\n } else {\n return `${this.$t('timeline.show_new')} (${this.newStatusCount})`\n }\n },\n mobileLoadButtonString () {\n if (this.timeline.flushMarker !== 0) {\n return '+'\n } else {\n return this.newStatusCount > 99 ? '∞' : this.newStatusCount\n }\n },\n classes () {\n let rootClasses = !this.embedded ? ['panel', 'panel-default'] : ['-nonpanel']\n if (this.blockingClicks) rootClasses = rootClasses.concat(['-blocked', '_misclick-prevention'])\n return {\n root: rootClasses,\n header: ['timeline-heading'].concat(!this.embedded ? ['panel-heading', '-sticky'] : []),\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 pinnedStatusIdsObject () {\n return keyBy(this.pinnedStatusIds)\n },\n statusesToDisplay () {\n const amount = this.timeline.visibleStatuses.length\n const statusesPerSide = Math.ceil(Math.max(3, window.innerHeight / 80))\n const nonPinnedIndex = this.virtualScrollIndex - this.filteredPinnedStatusIds.length\n const min = Math.max(0, nonPinnedIndex - statusesPerSide)\n const max = Math.min(amount, nonPinnedIndex + statusesPerSide)\n return this.timeline.visibleStatuses.slice(min, max).map(_ => _.id)\n },\n virtualScrollingEnabled () {\n return this.$store.getters.mergedConfig.virtualScrolling\n },\n ...mapState({\n mobileLayout: state => state.interface.layoutType === 'mobile'\n })\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.handleScroll)\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 listId: this.listId,\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 setTimeout(this.determineVisibleStatuses, 250)\n },\n unmounted () {\n window.removeEventListener('scroll', this.handleScroll)\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 scrollToTop () {\n window.scrollTo({ top: this.$el.offsetTop })\n },\n stopBlockingClicks: debounce(function () {\n this.blockingClicks = false\n }, 1000),\n blockClicksTemporarily () {\n if (!this.blockingClicks) {\n this.blockingClicks = true\n }\n this.stopBlockingClicks()\n },\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.timeline.flushMarker !== 0) {\n this.$store.commit('clearTimeline', { timeline: this.timelineName, excludeUserId: true })\n this.$store.commit('queueFlush', { timeline: this.timelineName, id: 0 })\n if (this.timelineName === 'user') {\n this.$store.dispatch('fetchPinnedStatuses', this.userId)\n }\n this.fetchOlderStatuses()\n } else {\n this.blockClicksTemporarily()\n this.$store.commit('showNewStatuses', { timeline: this.timelineName })\n this.paused = false\n }\n window.scrollTo({ top: 0 })\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 listId: this.listId,\n tag: this.tag\n }).then(({ statuses }) => {\n if (statuses && statuses.length === 0) {\n this.bottomedOut = true\n }\n }).finally(() =>\n store.commit('setLoading', { timeline: this.timelineName, value: false })\n )\n }, 1000, this),\n determineVisibleStatuses () {\n if (!this.$refs.timeline) return\n if (!this.virtualScrollingEnabled) return\n\n const statuses = this.$refs.timeline.children\n const cappedScrollIndex = Math.max(0, Math.min(this.virtualScrollIndex, statuses.length - 1))\n\n if (statuses.length === 0) return\n\n const height = Math.max(document.body.offsetHeight, window.pageYOffset)\n\n const centerOfScreen = window.pageYOffset + (window.innerHeight * 0.5)\n\n // Start from approximating the index of some visible status by using the\n // the center of the screen on the timeline.\n let approxIndex = Math.floor(statuses.length * (centerOfScreen / height))\n let err = statuses[approxIndex].getBoundingClientRect().y\n\n // if we have a previous scroll index that can be used, test if it's\n // closer than the previous approximation, use it if so\n\n const virtualScrollIndexY = statuses[cappedScrollIndex].getBoundingClientRect().y\n if (Math.abs(err) > virtualScrollIndexY) {\n approxIndex = cappedScrollIndex\n err = virtualScrollIndexY\n }\n\n // if the status is too far from viewport, check the next/previous ones if\n // they happen to be better\n while (err < -20 && approxIndex < statuses.length - 1) {\n err += statuses[approxIndex].offsetHeight\n approxIndex++\n }\n while (err > window.innerHeight + 100 && approxIndex > 0) {\n approxIndex--\n err -= statuses[approxIndex].offsetHeight\n }\n\n // this status is now the center point for virtual scrolling and visible\n // statuses will be nearby statuses before and after it\n this.virtualScrollIndex = approxIndex\n },\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.$el.offsetHeight > 0 &&\n (window.innerHeight + window.pageYOffset) >= (height - 750)) {\n this.fetchOlderStatuses()\n }\n },\n handleScroll: throttle(function (e) {\n this.showScrollTop = this.$el.offsetTop < window.scrollY\n this.determineVisibleStatuses()\n this.scrollLoad(e)\n }, 200),\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","import { render } from \"./timeline.vue?vue&type=template&id=79de750e\"\nimport script from \"./timeline.js?vue&type=script&lang=js\"\nexport * from \"./timeline.js?vue&type=script&lang=js\"\n\nimport \"./timeline.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","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 unmounted () {\n this.$store.dispatch('stopFetchingTimeline', 'public')\n }\n\n}\n\nexport default PublicTimeline\n","import { render } from \"./public_timeline.vue?vue&type=template&id=5f2a502e\"\nimport script from \"./public_timeline.js?vue&type=script&lang=js\"\nexport * from \"./public_timeline.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Timeline\n :title=\"$t('nav.public_tl')\"\n :timeline=\"timeline\"\n :timeline-name=\"'public'\"\n />\n</template>\n\n<script src=\"./public_timeline.js\"></script>\n","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 unmounted () {\n this.$store.dispatch('stopFetchingTimeline', 'publicAndExternal')\n }\n}\n\nexport default PublicAndExternalTimeline\n","import { render } from \"./public_and_external_timeline.vue?vue&type=template&id=f6923484\"\nimport script from \"./public_and_external_timeline.js?vue&type=script&lang=js\"\nexport * from \"./public_and_external_timeline.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Timeline\n :title=\"$t('nav.twkn')\"\n :timeline=\"timeline\"\n :timeline-name=\"'publicAndExternal'\"\n />\n</template>\n\n<script src=\"./public_and_external_timeline.js\"></script>\n","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","import { render } from \"./friends_timeline.vue?vue&type=template&id=22490669\"\nimport script from \"./friends_timeline.js?vue&type=script&lang=js\"\nexport * from \"./friends_timeline.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Timeline\n :title=\"$t('nav.timeline')\"\n :timeline=\"timeline\"\n :timeline-name=\"'friends'\"\n />\n</template>\n\n<script src=\"./friends_timeline.js\"></script>\n","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 unmounted () {\n this.$store.dispatch('stopFetchingTimeline', 'tag')\n }\n}\n\nexport default TagTimeline\n","import { render } from \"./tag_timeline.vue?vue&type=template&id=047310d3\"\nimport script from \"./tag_timeline.js?vue&type=script&lang=js\"\nexport * from \"./tag_timeline.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Timeline\n :title=\"tag\"\n :timeline=\"timeline\"\n :timeline-name=\"'tag'\"\n :tag=\"tag\"\n />\n</template>\n\n<script src='./tag_timeline.js'></script>\n","import Timeline from '../timeline/timeline.vue'\n\nconst Bookmarks = {\n computed: {\n timeline () {\n return this.$store.state.statuses.timelines.bookmarks\n }\n },\n components: {\n Timeline\n },\n unmounted () {\n this.$store.commit('clearTimeline', { timeline: 'bookmarks' })\n }\n}\n\nexport default Bookmarks\n","import { render } from \"./bookmark_timeline.vue?vue&type=template&id=2b9c8ba0\"\nimport script from \"./bookmark_timeline.js?vue&type=script&lang=js\"\nexport * from \"./bookmark_timeline.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Timeline\n :title=\"$t('nav.bookmarks')\"\n :timeline=\"timeline\"\n :timeline-name=\"'bookmarks'\"\n />\n</template>\n\n<script src=\"./bookmark_timeline.js\"></script>\n","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","import { render } from \"./conversation-page.vue?vue&type=template&id=46654d24\"\nimport script from \"./conversation-page.js?vue&type=script&lang=js\"\nexport * from \"./conversation-page.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <conversation\n :collapsable=\"false\"\n is-page=\"true\"\n :status-id=\"statusId\"\n />\n</template>\n\n<script src=\"./conversation-page.js\"></script>\n","<template>\n <div class=\"panel panel-default\">\n <div class=\"panel-heading\">\n <div class=\"title\">\n {{ $t(\"nav.interactions\") }}\n </div>\n </div>\n <tab-switcher\n ref=\"tabSwitcher\"\n :on-switch=\"onModeSwitch\"\n >\n <span\n key=\"mentions\"\n :label=\"$t('nav.mentions')\"\n />\n <span\n key=\"likes+repeats\"\n :label=\"$t('interactions.favs_repeats')\"\n />\n <span\n key=\"follows\"\n :label=\"$t('interactions.follows')\"\n />\n <span\n key=\"reactions\"\n :label=\"$t('interactions.emoji_reactions')\"\n />\n <span\n v-if=\"canSeeReports\"\n key=\"reports\"\n :label=\"$t('interactions.reports')\"\n />\n <span\n v-if=\"!allowFollowingMove\"\n key=\"moves\"\n :label=\"$t('interactions.moves')\"\n />\n </tab-switcher>\n <Notifications\n ref=\"notifications\"\n :no-heading=\"true\"\n :minimal-mode=\"true\"\n :filter-mode=\"filterMode\"\n />\n </div>\n</template>\n\n<script src=\"./interactions.js\"></script>\n","import Notifications from '../notifications/notifications.vue'\nimport TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'\n\nconst tabModeDict = {\n mentions: ['mention'],\n 'likes+repeats': ['repeat', 'like'],\n follows: ['follow'],\n reactions: ['pleroma:emoji_reaction'],\n reports: ['pleroma:report'],\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 canSeeReports: this.$store.state.users.currentUser.privileges.includes('reports_manage_reports')\n }\n },\n methods: {\n onModeSwitch (key) {\n this.filterMode = tabModeDict[key]\n }\n },\n components: {\n Notifications,\n TabSwitcher\n }\n}\n\nexport default Interactions\n","import { render } from \"./interactions.vue?vue&type=template&id=3b173532\"\nimport script from \"./interactions.js?vue&type=script&lang=js\"\nexport * from \"./interactions.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","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","import { render } from \"./dm_timeline.vue?vue&type=template&id=294f8b6d\"\nimport script from \"./dm_timeline.js?vue&type=script&lang=js\"\nexport * from \"./dm_timeline.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Timeline\n :title=\"$t('nav.dms')\"\n :timeline=\"timeline\"\n :timeline-name=\"'dms'\"\n />\n</template>\n\n<script src=\"./dm_timeline.js\"></script>\n","<template>\n <div v-if=\"isNew\">\n <ChatNew @cancel=\"cancelNewChat\" />\n </div>\n <div\n v-else\n class=\"chat-list panel panel-default\"\n >\n <div class=\"panel-heading -sticky\">\n <span class=\"title\">\n {{ $t(\"chats.chats\") }}\n </span>\n <button\n class=\"button-default\"\n @click=\"newChat\"\n >\n {{ $t(\"chats.new\") }}\n </button>\n </div>\n <div class=\"panel-body\">\n <div\n v-if=\"sortedChatList.length > 0\"\n class=\"timeline\"\n >\n <List :items=\"sortedChatList\">\n <template #item=\"{item}\">\n <ChatListItem\n :key=\"item.id\"\n :compact=\"false\"\n :chat=\"item\"\n />\n </template>\n </List>\n </div>\n <div\n v-else\n class=\"emtpy-chat-list-alert\"\n >\n <span>{{ $t('chats.empty_chat_list_placeholder') }}</span>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./chat_list.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.chat-list {\n min-height: 25em;\n margin-bottom: 0;\n}\n\n.emtpy-chat-list-alert {\n padding: 3em;\n font-size: 1.2em;\n display: flex;\n justify-content: center;\n color: $fallback--text;\n color: var(--faint, $fallback--text);\n}\n\n</style>\n","<template>\n <div\n class=\"chat-list-item\"\n @click.capture.prevent=\"openChat\"\n >\n <div class=\"chat-list-item-left\">\n <UserAvatar\n :user=\"chat.account\"\n height=\"48px\"\n width=\"48px\"\n />\n </div>\n <div class=\"chat-list-item-center\">\n <div class=\"heading\">\n <span\n v-if=\"chat.account\"\n class=\"name-and-account-name\"\n >\n <ChatTitle\n :user=\"chat.account\"\n />\n </span>\n <span class=\"heading-right\" />\n <div class=\"time-wrapper\">\n <Timeago\n :time=\"chat.updated_at\"\n :auto-update=\"60\"\n />\n </div>\n </div>\n <div class=\"chat-preview\">\n <StatusBody\n class=\"chat-preview-body\"\n :status=\"messageForStatusContent\"\n :single-line=\"true\"\n />\n <div\n v-if=\"chat.unread > 0\"\n class=\"badge badge-notification unread-chat-count\"\n >\n {{ chat.unread }}\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./chat_list_item.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n@import \"./chat_list_item\";\n</style>\n","import UserAvatar from '../user_avatar/user_avatar.vue'\nimport RichContent from 'src/components/rich_content/rich_content.jsx'\nimport { defineAsyncComponent } from 'vue'\n\nexport default {\n name: 'ChatTitle',\n components: {\n UserAvatar,\n RichContent,\n UserPopover: defineAsyncComponent(() => import('../user_popover/user_popover.vue'))\n },\n props: [\n 'user', 'withAvatar'\n ],\n computed: {\n title () {\n return this.user ? this.user.screen_name_ui : ''\n },\n htmlTitle () {\n return this.user ? this.user.name_html : ''\n }\n }\n}\n","import { render } from \"./chat_title.vue?vue&type=template&id=e9d70b10\"\nimport script from \"./chat_title.js?vue&type=script&lang=js\"\nexport * from \"./chat_title.js?vue&type=script&lang=js\"\n\nimport \"./chat_title.vue?vue&type=style&index=0&id=e9d70b10&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n class=\"chat-title\"\n :title=\"title\"\n >\n <UserPopover\n v-if=\"withAvatar && user\"\n class=\"avatar-container\"\n :user-id=\"user.id\"\n >\n <UserAvatar\n class=\"titlebar-avatar\"\n :user=\"user\"\n />\n </UserPopover>\n <RichContent\n v-if=\"user\"\n class=\"username\"\n :title=\"'@'+(user && user.screen_name_ui)\"\n :html=\"htmlTitle\"\n :emoji=\"user.emoji || []\"\n />\n </div>\n</template>\n\n<script src=\"./chat_title.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.chat-title {\n display: flex;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n --emoji-size: 14px;\n\n .username {\n max-width: 100%;\n text-overflow: ellipsis;\n white-space: nowrap;\n display: inline;\n word-wrap: break-word;\n overflow: hidden;\n }\n\n .avatar-container {\n align-self: center;\n line-height: 1;\n }\n\n .titlebar-avatar {\n margin-right: 0.5em;\n height: 1.5em;\n width: 1.5em;\n border-radius: $fallback--avatarAltRadius;\n border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);\n\n &.animated::before {\n display: none;\n }\n }\n}\n</style>\n","import { mapState } from 'vuex'\nimport StatusBody from '../status_content/status_content.vue'\nimport fileType from 'src/services/file_type/file_type.service'\nimport UserAvatar from '../user_avatar/user_avatar.vue'\nimport AvatarList from '../avatar_list/avatar_list.vue'\nimport Timeago from '../timeago/timeago.vue'\nimport ChatTitle from '../chat_title/chat_title.vue'\n\nconst ChatListItem = {\n name: 'ChatListItem',\n props: [\n 'chat'\n ],\n components: {\n UserAvatar,\n AvatarList,\n Timeago,\n ChatTitle,\n StatusBody\n },\n computed: {\n ...mapState({\n currentUser: state => state.users.currentUser\n }),\n attachmentInfo () {\n if (this.chat.lastMessage.attachments.length === 0) { return }\n\n const types = this.chat.lastMessage.attachments.map(file => fileType.fileType(file.mimetype))\n if (types.includes('video')) {\n return this.$t('file_type.video')\n } else if (types.includes('audio')) {\n return this.$t('file_type.audio')\n } else if (types.includes('image')) {\n return this.$t('file_type.image')\n } else {\n return this.$t('file_type.file')\n }\n },\n messageForStatusContent () {\n const message = this.chat.lastMessage\n const messageEmojis = message ? message.emojis : []\n const isYou = message && message.account_id === this.currentUser.id\n const content = message ? (this.attachmentInfo || message.content) : ''\n const messagePreview = isYou ? `<i>${this.$t('chats.you')}</i> ${content}` : content\n return {\n summary: '',\n emojis: messageEmojis,\n raw_html: messagePreview,\n text: messagePreview,\n attachments: []\n }\n }\n },\n methods: {\n openChat (_e) {\n if (this.chat.id) {\n this.$router.push({\n name: 'chat',\n params: {\n username: this.currentUser.screen_name,\n recipient_id: this.chat.account.id\n }\n })\n }\n }\n }\n}\n\nexport default ChatListItem\n","import { render } from \"./chat_list_item.vue?vue&type=template&id=a202646c\"\nimport script from \"./chat_list_item.js?vue&type=script&lang=js\"\nexport * from \"./chat_list_item.js?vue&type=script&lang=js\"\n\nimport \"./chat_list_item.vue?vue&type=style&index=0&id=a202646c&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n class=\"panel-default panel chat-new\"\n >\n <div\n ref=\"header\"\n class=\"panel-heading\"\n >\n <button\n class=\"button-unstyled go-back-button\"\n @click=\"goBack\"\n >\n <FAIcon\n size=\"lg\"\n icon=\"chevron-left\"\n />\n </button>\n </div>\n <div class=\"input-wrap\">\n <div class=\"input-search\">\n <FAIcon\n class=\"search-icon fa-scale-110 fa-old-padding\"\n icon=\"search\"\n />\n </div>\n <input\n ref=\"search\"\n v-model=\"query\"\n placeholder=\"Search people\"\n @input=\"onInput\"\n >\n </div>\n <div class=\"member-list\">\n <div\n v-for=\"user in availableUsers\"\n :key=\"user.id\"\n class=\"member\"\n >\n <div @click.capture.prevent=\"goToChat(user)\">\n <BasicUserCard :user=\"user\" />\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./chat_new.js\"></script>\n<style lang=\"scss\">\n@import \"../../variables\";\n@import \"./chat_new\";\n</style>\n","import { mapState, mapGetters } from 'vuex'\nimport BasicUserCard from '../basic_user_card/basic_user_card.vue'\nimport UserAvatar from '../user_avatar/user_avatar.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faSearch,\n faChevronLeft\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faSearch,\n faChevronLeft\n)\n\nconst chatNew = {\n components: {\n BasicUserCard,\n UserAvatar\n },\n data () {\n return {\n suggestions: [],\n userIds: [],\n loading: false,\n query: ''\n }\n },\n async created () {\n const { chats } = await this.backendInteractor.chats()\n chats.forEach(chat => this.suggestions.push(chat.account))\n },\n computed: {\n users () {\n return this.userIds.map(userId => this.findUser(userId))\n },\n availableUsers () {\n if (this.query.length !== 0) {\n return this.users\n } else {\n return this.suggestions\n }\n },\n ...mapState({\n currentUser: state => state.users.currentUser,\n backendInteractor: state => state.api.backendInteractor\n }),\n ...mapGetters(['findUser'])\n },\n methods: {\n goBack () {\n this.$emit('cancel')\n },\n goToChat (user) {\n this.$router.push({ name: 'chat', params: { recipient_id: user.id } })\n },\n onInput () {\n this.search(this.query)\n },\n addUser (user) {\n this.selectedUserIds.push(user.id)\n this.query = ''\n },\n removeUser (userId) {\n this.selectedUserIds = this.selectedUserIds.filter(id => id !== userId)\n },\n search (query) {\n if (!query) {\n this.loading = false\n return\n }\n\n this.loading = true\n this.userIds = []\n this.$store.dispatch('search', { q: query, resolve: true, type: 'accounts' })\n .then(data => {\n this.loading = false\n this.userIds = data.accounts.map(a => a.id)\n })\n }\n }\n}\n\nexport default chatNew\n","import { render } from \"./chat_new.vue?vue&type=template&id=527ae593\"\nimport script from \"./chat_new.js?vue&type=script&lang=js\"\nexport * from \"./chat_new.js?vue&type=script&lang=js\"\n\nimport \"./chat_new.vue?vue&type=style&index=0&id=527ae593&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { mapState, mapGetters } from 'vuex'\nimport ChatListItem from '../chat_list_item/chat_list_item.vue'\nimport ChatNew from '../chat_new/chat_new.vue'\nimport List from '../list/list.vue'\n\nconst ChatList = {\n components: {\n ChatListItem,\n List,\n ChatNew\n },\n computed: {\n ...mapState({\n currentUser: state => state.users.currentUser\n }),\n ...mapGetters(['sortedChatList'])\n },\n data () {\n return {\n isNew: false\n }\n },\n created () {\n this.$store.dispatch('fetchChats', { latest: true })\n },\n methods: {\n cancelNewChat () {\n this.isNew = false\n this.$store.dispatch('fetchChats', { latest: true })\n },\n newChat () {\n this.isNew = true\n }\n }\n}\n\nexport default ChatList\n","import { render } from \"./chat_list.vue?vue&type=template&id=66fabc09\"\nimport script from \"./chat_list.js?vue&type=script&lang=js\"\nexport * from \"./chat_list.js?vue&type=script&lang=js\"\n\nimport \"./chat_list.vue?vue&type=style&index=0&id=66fabc09&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"chat-view\">\n <div class=\"chat-view-inner\">\n <div\n ref=\"inner\"\n class=\"panel-default panel chat-view-body\"\n >\n <div\n ref=\"header\"\n class=\"panel-heading -sticky chat-view-heading\"\n >\n <button\n class=\"button-unstyled go-back-button\"\n @click=\"goBack\"\n >\n <FAIcon\n size=\"lg\"\n icon=\"chevron-left\"\n />\n </button>\n <div class=\"title text-center\">\n <ChatTitle\n :user=\"recipient\"\n :with-avatar=\"true\"\n />\n </div>\n </div>\n <div\n class=\"message-list\"\n :style=\"{ height: scrollableContainerHeight }\"\n >\n <template v-if=\"!errorLoadingChat\">\n <ChatMessage\n v-for=\"chatViewItem in chatViewItems\"\n :key=\"chatViewItem.id\"\n :author=\"recipient\"\n :chat-view-item=\"chatViewItem\"\n :hovered-message-chain=\"chatViewItem.messageChainId === hoveredMessageChainId\"\n @hover=\"onMessageHover\"\n />\n </template>\n <div\n v-else\n class=\"chat-loading-error\"\n >\n <div class=\"alert error\">\n {{ $t('chats.error_loading_chat') }}\n </div>\n </div>\n </div>\n <div\n ref=\"footer\"\n class=\"panel-body footer\"\n >\n <div\n class=\"jump-to-bottom-button\"\n :class=\"{ 'visible': jumpToBottomButtonVisible }\"\n @click=\"scrollDown({ behavior: 'smooth' })\"\n >\n <span>\n <FAIcon icon=\"chevron-down\" />\n <div\n v-if=\"newMessageCount\"\n class=\"badge badge-notification unread-chat-count unread-message-count\"\n >\n {{ newMessageCount }}\n </div>\n </span>\n </div>\n <PostStatusForm\n :disable-subject=\"true\"\n :disable-scope-selector=\"true\"\n :disable-notice=\"true\"\n :disable-lock-warning=\"true\"\n :disable-polls=\"true\"\n :disable-sensitivity-checkbox=\"true\"\n :disable-submit=\"errorLoadingChat || !currentChat\"\n :disable-preview=\"true\"\n :optimistic-posting=\"true\"\n :post-handler=\"sendMessage\"\n :submit-on-enter=\"!mobileLayout\"\n :preserve-focus=\"!mobileLayout\"\n :auto-focus=\"!mobileLayout\"\n :placeholder=\"formPlaceholder\"\n :file-limit=\"1\"\n max-height=\"160\"\n emoji-picker-placement=\"top\"\n @resize=\"handleResize\"\n />\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./chat.js\"></script>\n<style lang=\"scss\">\n@import \"../../variables\";\n@import \"./chat\";\n</style>\n","<template>\n <div\n v-if=\"isMessage\"\n class=\"chat-message-wrapper\"\n :class=\"{ 'hovered-message-chain': hoveredMessageChain }\"\n @mouseover=\"onHover(true)\"\n @mouseleave=\"onHover(false)\"\n >\n <div\n class=\"chat-message\"\n :class=\"[{ 'outgoing': isCurrentUser, 'incoming': !isCurrentUser }]\"\n >\n <div\n v-if=\"!isCurrentUser\"\n class=\"avatar-wrapper\"\n >\n <UserPopover\n v-if=\"chatViewItem.isHead\"\n :user-id=\"author.id\"\n >\n <UserAvatar\n :compact=\"true\"\n :better-shadow=\"betterShadow\"\n :user=\"author\"\n />\n </UserPopover>\n </div>\n <div class=\"chat-message-inner\">\n <div\n class=\"status-body\"\n :style=\"{ 'min-width': message.attachment ? '80%' : '' }\"\n >\n <div\n class=\"media status\"\n :class=\"{ 'without-attachment': !hasAttachment, 'pending': chatViewItem.data.pending, 'error': chatViewItem.data.error }\"\n style=\"position: relative;\"\n @mouseenter=\"hovered = true\"\n @mouseleave=\"hovered = false\"\n >\n <div\n class=\"chat-message-menu\"\n :class=\"{ 'visible': hovered || menuOpened }\"\n >\n <Popover\n trigger=\"click\"\n placement=\"top\"\n bound-to-selector=\".chat-view-inner\"\n :bound-to=\"{ x: 'container' }\"\n :margin=\"popoverMarginStyle\"\n @show=\"menuOpened = true\"\n @close=\"menuOpened = false\"\n >\n <template #content>\n <div class=\"dropdown-menu\">\n <button\n class=\"button-default dropdown-item dropdown-item-icon\"\n @click=\"deleteMessage\"\n >\n <FAIcon icon=\"times\" /> {{ $t(\"chats.delete\") }}\n </button>\n </div>\n </template>\n <template #trigger>\n <button\n class=\"button-default menu-icon\"\n :title=\"$t('chats.more')\"\n >\n <FAIcon icon=\"ellipsis-h\" />\n </button>\n </template>\n </Popover>\n </div>\n <StatusContent\n class=\"message-content\"\n :status=\"messageForStatusContent\"\n :full-content=\"true\"\n >\n <template #footer>\n <span\n class=\"created-at\"\n >\n {{ createdAt }}\n </span>\n </template>\n </StatusContent>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div\n v-else\n class=\"chat-message-date-separator\"\n >\n <ChatMessageDate :date=\"chatViewItem.date\" />\n </div>\n</template>\n\n<script src=\"./chat_message.js\"></script>\n<style lang=\"scss\">\n@import \"./chat_message\";\n\n</style>\n","<template>\n <time>\n {{ displayDate }}\n </time>\n</template>\n\n<script>\nimport localeService from 'src/services/locale/locale.service.js'\n\nexport default {\n name: 'Timeago',\n props: ['date'],\n computed: {\n displayDate () {\n const today = new Date()\n today.setHours(0, 0, 0, 0)\n\n if (this.date.getTime() === today.getTime()) {\n return this.$t('display_date.today')\n } else {\n return this.date.toLocaleDateString(localeService.internalToBrowserLocale(this.$i18n.locale), { day: 'numeric', month: 'long' })\n }\n }\n }\n}\n</script>\n","import { render } from \"./chat_message_date.vue?vue&type=template&id=23377998\"\nimport script from \"./chat_message_date.vue?vue&type=script&lang=js\"\nexport * from \"./chat_message_date.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { mapState, mapGetters } from 'vuex'\nimport Popover from '../popover/popover.vue'\nimport Attachment from '../attachment/attachment.vue'\nimport UserAvatar from '../user_avatar/user_avatar.vue'\nimport Gallery from '../gallery/gallery.vue'\nimport LinkPreview from '../link-preview/link-preview.vue'\nimport StatusContent from '../status_content/status_content.vue'\nimport ChatMessageDate from '../chat_message_date/chat_message_date.vue'\nimport { defineAsyncComponent } from 'vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faTimes,\n faEllipsisH\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faTimes,\n faEllipsisH\n)\n\nconst ChatMessage = {\n name: 'ChatMessage',\n props: [\n 'author',\n 'edited',\n 'noHeading',\n 'chatViewItem',\n 'hoveredMessageChain'\n ],\n emits: ['hover'],\n components: {\n Popover,\n Attachment,\n StatusContent,\n UserAvatar,\n Gallery,\n LinkPreview,\n ChatMessageDate,\n UserPopover: defineAsyncComponent(() => import('../user_popover/user_popover.vue'))\n },\n computed: {\n // Returns HH:MM (hours and minutes) in local time.\n createdAt () {\n const time = this.chatViewItem.data.created_at\n return time.toLocaleTimeString('en', { hour: '2-digit', minute: '2-digit', hour12: false })\n },\n isCurrentUser () {\n return this.message.account_id === this.currentUser.id\n },\n message () {\n return this.chatViewItem.data\n },\n isMessage () {\n return this.chatViewItem.type === 'message'\n },\n messageForStatusContent () {\n return {\n summary: '',\n emojis: this.message.emojis,\n raw_html: this.message.content || '',\n text: this.message.content || '',\n attachments: this.message.attachments\n }\n },\n hasAttachment () {\n return this.message.attachments.length > 0\n },\n ...mapState({\n betterShadow: state => state.interface.browserSupport.cssFilter,\n currentUser: state => state.users.currentUser,\n restrictedNicknames: state => state.instance.restrictedNicknames\n }),\n popoverMarginStyle () {\n if (this.isCurrentUser) {\n return {}\n } else {\n return { left: 50 }\n }\n },\n ...mapGetters(['mergedConfig', 'findUser'])\n },\n data () {\n return {\n hovered: false,\n menuOpened: false\n }\n },\n methods: {\n onHover (bool) {\n this.$emit('hover', { isHovered: bool, messageChainId: this.chatViewItem.messageChainId })\n },\n async deleteMessage () {\n const confirmed = window.confirm(this.$t('chats.delete_confirm'))\n if (confirmed) {\n await this.$store.dispatch('deleteChatMessage', {\n messageId: this.chatViewItem.data.id,\n chatId: this.chatViewItem.data.chat_id\n })\n }\n this.hovered = false\n this.menuOpened = false\n }\n }\n}\n\nexport default ChatMessage\n","import { render } from \"./chat_message.vue?vue&type=template&id=e61e03a2\"\nimport script from \"./chat_message.js?vue&type=script&lang=js\"\nexport * from \"./chat_message.js?vue&type=script&lang=js\"\n\nimport \"./chat_message.vue?vue&type=style&index=0&id=e61e03a2&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","// Captures a scroll position\nexport const getScrollPosition = () => {\n return {\n scrollTop: window.scrollY,\n scrollHeight: document.documentElement.scrollHeight,\n offsetHeight: window.innerHeight\n }\n}\n\n// A helper function that is used to keep the scroll position fixed as the new elements are added to the top\n// Takes two scroll positions, before and after the update.\nexport const getNewTopPosition = (previousPosition, newPosition) => {\n return previousPosition.scrollTop + (newPosition.scrollHeight - previousPosition.scrollHeight)\n}\n\nexport const isBottomedOut = (offset = 0) => {\n const scrollHeight = window.scrollY + offset\n const totalHeight = document.documentElement.scrollHeight - window.innerHeight\n return totalHeight <= scrollHeight\n}\n// Returns whether or not the scrollbar is visible.\nexport const isScrollable = () => {\n return document.documentElement.scrollHeight > window.innerHeight\n}\n","import _ from 'lodash'\nimport { WSConnectionStatus } from '../../services/api/api.service.js'\nimport { mapGetters, mapState } from 'vuex'\nimport ChatMessage from '../chat_message/chat_message.vue'\nimport PostStatusForm from '../post_status_form/post_status_form.vue'\nimport ChatTitle from '../chat_title/chat_title.vue'\nimport chatService from '../../services/chat_service/chat_service.js'\nimport { promiseInterval } from '../../services/promise_interval/promise_interval.js'\nimport { getScrollPosition, getNewTopPosition, isBottomedOut, isScrollable } from './chat_layout_utils.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faChevronDown,\n faChevronLeft\n} from '@fortawesome/free-solid-svg-icons'\nimport { buildFakeMessage } from '../../services/chat_utils/chat_utils.js'\n\nlibrary.add(\n faChevronDown,\n faChevronLeft\n)\n\nconst BOTTOMED_OUT_OFFSET = 10\nconst JUMP_TO_BOTTOM_BUTTON_VISIBILITY_OFFSET = 10\nconst SAFE_RESIZE_TIME_OFFSET = 100\nconst MARK_AS_READ_DELAY = 1500\nconst MAX_RETRIES = 10\n\nconst Chat = {\n components: {\n ChatMessage,\n ChatTitle,\n PostStatusForm\n },\n data () {\n return {\n jumpToBottomButtonVisible: false,\n hoveredMessageChainId: undefined,\n lastScrollPosition: {},\n scrollableContainerHeight: '100%',\n errorLoadingChat: false,\n messageRetriers: {}\n }\n },\n created () {\n this.startFetching()\n window.addEventListener('resize', this.handleResize)\n },\n mounted () {\n window.addEventListener('scroll', this.handleScroll)\n if (typeof document.hidden !== 'undefined') {\n document.addEventListener('visibilitychange', this.handleVisibilityChange, false)\n }\n\n this.$nextTick(() => {\n this.handleResize()\n })\n },\n unmounted () {\n window.removeEventListener('scroll', this.handleScroll)\n window.removeEventListener('resize', this.handleResize)\n if (typeof document.hidden !== 'undefined') document.removeEventListener('visibilitychange', this.handleVisibilityChange, false)\n this.$store.dispatch('clearCurrentChat')\n },\n computed: {\n recipient () {\n return this.currentChat && this.currentChat.account\n },\n recipientId () {\n return this.$route.params.recipient_id\n },\n formPlaceholder () {\n if (this.recipient) {\n return this.$t('chats.message_user', { nickname: this.recipient.screen_name_ui })\n } else {\n return ''\n }\n },\n chatViewItems () {\n return chatService.getView(this.currentChatMessageService)\n },\n newMessageCount () {\n return this.currentChatMessageService && this.currentChatMessageService.newMessageCount\n },\n streamingEnabled () {\n return this.mergedConfig.useStreamingApi && this.mastoUserSocketStatus === WSConnectionStatus.JOINED\n },\n ...mapGetters([\n 'currentChat',\n 'currentChatMessageService',\n 'findOpenedChatByRecipientId',\n 'mergedConfig'\n ]),\n ...mapState({\n backendInteractor: state => state.api.backendInteractor,\n mastoUserSocketStatus: state => state.api.mastoUserSocketStatus,\n mobileLayout: state => state.interface.layoutType === 'mobile',\n currentUser: state => state.users.currentUser\n })\n },\n watch: {\n chatViewItems () {\n // We don't want to scroll to the bottom on a new message when the user is viewing older messages.\n // Therefore we need to know whether the scroll position was at the bottom before the DOM update.\n const bottomedOutBeforeUpdate = this.bottomedOut(BOTTOMED_OUT_OFFSET)\n this.$nextTick(() => {\n if (bottomedOutBeforeUpdate) {\n this.scrollDown()\n }\n })\n },\n $route: function () {\n this.startFetching()\n },\n mastoUserSocketStatus (newValue) {\n if (newValue === WSConnectionStatus.JOINED) {\n this.fetchChat({ isFirstFetch: true })\n }\n }\n },\n methods: {\n // Used to animate the avatar near the first message of the message chain when any message belonging to the chain is hovered\n onMessageHover ({ isHovered, messageChainId }) {\n this.hoveredMessageChainId = isHovered ? messageChainId : undefined\n },\n onFilesDropped () {\n this.$nextTick(() => {\n this.handleResize()\n })\n },\n handleVisibilityChange () {\n this.$nextTick(() => {\n if (!document.hidden && this.bottomedOut(BOTTOMED_OUT_OFFSET)) {\n this.scrollDown({ forceRead: true })\n }\n })\n },\n // \"Sticks\" scroll to bottom instead of top, helps with OSK resizing the viewport\n handleResize (opts = {}) {\n const { delayed = false } = opts\n\n if (delayed) {\n setTimeout(() => {\n this.handleResize({ ...opts, delayed: false })\n }, SAFE_RESIZE_TIME_OFFSET)\n return\n }\n\n this.$nextTick(() => {\n const { offsetHeight = undefined } = getScrollPosition()\n const diff = offsetHeight - this.lastScrollPosition.offsetHeight\n if (diff !== 0 && !this.bottomedOut()) {\n this.$nextTick(() => {\n window.scrollBy({ top: -Math.trunc(diff) })\n })\n }\n this.lastScrollPosition = getScrollPosition()\n })\n },\n scrollDown (options = {}) {\n const { behavior = 'auto', forceRead = false } = options\n this.$nextTick(() => {\n window.scrollTo({ top: document.documentElement.scrollHeight, behavior })\n })\n if (forceRead) {\n this.readChat()\n }\n },\n readChat () {\n if (!(this.currentChatMessageService && this.currentChatMessageService.maxId)) { return }\n if (document.hidden) { return }\n const lastReadId = this.currentChatMessageService.maxId\n this.$store.dispatch('readChat', {\n id: this.currentChat.id,\n lastReadId\n })\n },\n bottomedOut (offset) {\n return isBottomedOut(offset)\n },\n reachedTop () {\n return window.scrollY <= 0\n },\n cullOlderCheck () {\n window.setTimeout(() => {\n if (this.bottomedOut(JUMP_TO_BOTTOM_BUTTON_VISIBILITY_OFFSET)) {\n this.$store.dispatch('cullOlderMessages', this.currentChatMessageService.chatId)\n }\n }, 5000)\n },\n handleScroll: _.throttle(function () {\n this.lastScrollPosition = getScrollPosition()\n if (!this.currentChat) { return }\n\n if (this.reachedTop()) {\n this.fetchChat({ maxId: this.currentChatMessageService.minId })\n } else if (this.bottomedOut(JUMP_TO_BOTTOM_BUTTON_VISIBILITY_OFFSET)) {\n this.jumpToBottomButtonVisible = false\n this.cullOlderCheck()\n if (this.newMessageCount > 0) {\n // Use a delay before marking as read to prevent situation where new messages\n // arrive just as you're leaving the view and messages that you didn't actually\n // get to see get marked as read.\n window.setTimeout(() => {\n // Don't mark as read if the element doesn't exist, user has left chat view\n if (this.$el) this.readChat()\n }, MARK_AS_READ_DELAY)\n }\n } else {\n this.jumpToBottomButtonVisible = true\n }\n }, 200),\n handleScrollUp (positionBeforeLoading) {\n const positionAfterLoading = getScrollPosition()\n window.scrollTo({\n top: getNewTopPosition(positionBeforeLoading, positionAfterLoading)\n })\n },\n fetchChat ({ isFirstFetch = false, fetchLatest = false, maxId }) {\n const chatMessageService = this.currentChatMessageService\n if (!chatMessageService) { return }\n if (fetchLatest && this.streamingEnabled) { return }\n\n const chatId = chatMessageService.chatId\n const fetchOlderMessages = !!maxId\n const sinceId = fetchLatest && chatMessageService.maxId\n\n return this.backendInteractor.chatMessages({ id: chatId, maxId, sinceId })\n .then((messages) => {\n // Clear the current chat in case we're recovering from a ws connection loss.\n if (isFirstFetch) {\n chatService.clear(chatMessageService)\n }\n\n const positionBeforeUpdate = getScrollPosition()\n this.$store.dispatch('addChatMessages', { chatId, messages }).then(() => {\n this.$nextTick(() => {\n if (fetchOlderMessages) {\n this.handleScrollUp(positionBeforeUpdate)\n }\n\n // In vertical screens, the first batch of fetched messages may not always take the\n // full height of the scrollable container.\n // If this is the case, we want to fetch the messages until the scrollable container\n // is fully populated so that the user has the ability to scroll up and load the history.\n if (!isScrollable() && messages.length > 0) {\n this.fetchChat({ maxId: this.currentChatMessageService.minId })\n }\n })\n })\n })\n },\n async startFetching () {\n let chat = this.findOpenedChatByRecipientId(this.recipientId)\n if (!chat) {\n try {\n chat = await this.backendInteractor.getOrCreateChat({ accountId: this.recipientId })\n } catch (e) {\n console.error('Error creating or getting a chat', e)\n this.errorLoadingChat = true\n }\n }\n if (chat) {\n this.$nextTick(() => {\n this.scrollDown({ forceRead: true })\n })\n this.$store.dispatch('addOpenedChat', { chat })\n this.doStartFetching()\n }\n },\n doStartFetching () {\n this.$store.dispatch('startFetchingCurrentChat', {\n fetcher: () => promiseInterval(() => this.fetchChat({ fetchLatest: true }), 5000)\n })\n this.fetchChat({ isFirstFetch: true })\n },\n handleAttachmentPosting () {\n this.$nextTick(() => {\n this.handleResize()\n // When the posting form size changes because of a media attachment, we need an extra resize\n // to account for the potential delay in the DOM update.\n this.scrollDown({ forceRead: true })\n })\n },\n sendMessage ({ status, media, idempotencyKey }) {\n const params = {\n id: this.currentChat.id,\n content: status,\n idempotencyKey\n }\n\n if (media[0]) {\n params.mediaId = media[0].id\n }\n\n const fakeMessage = buildFakeMessage({\n attachments: media,\n chatId: this.currentChat.id,\n content: status,\n userId: this.currentUser.id,\n idempotencyKey\n })\n\n this.$store.dispatch('addChatMessages', {\n chatId: this.currentChat.id,\n messages: [fakeMessage]\n }).then(() => {\n this.handleAttachmentPosting()\n })\n\n return this.doSendMessage({ params, fakeMessage, retriesLeft: MAX_RETRIES })\n },\n doSendMessage ({ params, fakeMessage, retriesLeft = MAX_RETRIES }) {\n if (retriesLeft <= 0) return\n\n this.backendInteractor.sendChatMessage(params)\n .then(data => {\n this.$store.dispatch('addChatMessages', {\n chatId: this.currentChat.id,\n updateMaxId: false,\n messages: [{ ...data, fakeId: fakeMessage.id }]\n })\n\n return data\n })\n .catch(error => {\n console.error('Error sending message', error)\n this.$store.dispatch('handleMessageError', {\n chatId: this.currentChat.id,\n fakeId: fakeMessage.id,\n isRetry: retriesLeft !== MAX_RETRIES\n })\n if ((error.statusCode >= 500 && error.statusCode < 600) || error.message === 'Failed to fetch') {\n this.messageRetriers[fakeMessage.id] = setTimeout(() => {\n this.doSendMessage({ params, fakeMessage, retriesLeft: retriesLeft - 1 })\n }, 1000 * (2 ** (MAX_RETRIES - retriesLeft)))\n }\n return {}\n })\n\n return Promise.resolve(fakeMessage)\n },\n goBack () {\n this.$router.push({ name: 'chats', params: { username: this.currentUser.screen_name } })\n }\n }\n}\n\nexport default Chat\n","import { render } from \"./chat.vue?vue&type=template&id=796d1749\"\nimport script from \"./chat.js?vue&type=script&lang=js\"\nexport * from \"./chat.js?vue&type=script&lang=js\"\n\nimport \"./chat.vue?vue&type=style&index=0&id=796d1749&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div>\n <div\n v-if=\"user\"\n class=\"user-profile panel panel-default\"\n >\n <UserCard\n :user-id=\"userId\"\n :switcher=\"true\"\n :selected=\"timeline.viewing\"\n avatar-action=\"zoom\"\n rounded=\"top\"\n :has-note-editor=\"true\"\n />\n <span\n v-if=\"!!user.birthday\"\n class=\"user-birthday\"\n >\n <FAIcon\n class=\"fa-old-padding\"\n icon=\"birthday-cake\"\n />\n {{ $t('user_card.birthday', { birthday: formattedBirthday }) }}\n </span>\n <div\n v-if=\"user.fields_html && user.fields_html.length > 0\"\n class=\"user-profile-fields\"\n >\n <dl\n v-for=\"(field, index) in user.fields_html\"\n :key=\"index\"\n class=\"user-profile-field\"\n >\n <dt\n :title=\"user.fields_text[index].name\"\n class=\"user-profile-field-name\"\n >\n <RichContent\n :html=\"field.name\"\n :emoji=\"user.emoji\"\n />\n </dt>\n <dd\n :title=\"user.fields_text[index].value\"\n class=\"user-profile-field-value\"\n >\n <RichContent\n :html=\"field.value\"\n :emoji=\"user.emoji\"\n />\n </dd>\n </dl>\n </div>\n <tab-switcher\n :active-tab=\"tab\"\n :render-only-focused=\"true\"\n :on-switch=\"onTabSwitch\"\n >\n <Timeline\n key=\"statuses\"\n :label=\"$t('user_card.statuses')\"\n :count=\"user.statuses_count\"\n :embedded=\"true\"\n :title=\"$t('user_profile.timeline_title')\"\n :timeline=\"timeline\"\n timeline-name=\"user\"\n :user-id=\"userId\"\n :pinned-status-ids=\"user.pinnedStatusIds\"\n :in-profile=\"true\"\n :footer-slipgate=\"footerRef\"\n />\n <div\n v-if=\"followsTabVisible\"\n key=\"followees\"\n :label=\"$t('user_card.followees')\"\n :disabled=\"!user.friends_count\"\n >\n <FriendList :user-id=\"userId\">\n <template #item=\"{item}\">\n <FollowCard :user=\"item\" />\n </template>\n </FriendList>\n </div>\n <div\n v-if=\"followersTabVisible\"\n key=\"followers\"\n :label=\"$t('user_card.followers')\"\n :disabled=\"!user.followers_count\"\n >\n <FollowerList :user-id=\"userId\">\n <template #item=\"{item}\">\n <FollowCard\n :user=\"item\"\n :no-follows-you=\"isUs\"\n />\n </template>\n </FollowerList>\n </div>\n <Timeline\n key=\"media\"\n :label=\"$t('user_card.media')\"\n :disabled=\"!media.visibleStatuses.length\"\n :embedded=\"true\"\n :title=\"$t('user_card.media')\"\n timeline-name=\"media\"\n :timeline=\"media\"\n :user-id=\"userId\"\n :in-profile=\"true\"\n :footer-slipgate=\"footerRef\"\n />\n <Timeline\n v-if=\"isUs\"\n key=\"favorites\"\n :label=\"$t('user_card.favorites')\"\n :disabled=\"!favorites.visibleStatuses.length\"\n :embedded=\"true\"\n :title=\"$t('user_card.favorites')\"\n timeline-name=\"favorites\"\n :timeline=\"favorites\"\n :in-profile=\"true\"\n :footer-slipgate=\"footerRef\"\n />\n </tab-switcher>\n <div\n :ref=\"setFooterRef\"\n class=\"panel-footer\"\n />\n </div>\n <div\n v-else\n class=\"panel user-profile-placeholder\"\n >\n <div class=\"panel-heading\">\n <div class=\"title\">\n {{ $t('settings.profile_tab') }}\n </div>\n </div>\n <div class=\"panel-body\">\n <span v-if=\"error\">{{ error }}</span>\n <FAIcon\n v-else\n spin\n icon=\"circle-notch\"\n />\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./user_profile.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.user-profile {\n flex: 2;\n flex-basis: 500px;\n\n // No sticky header on user profile\n --currentPanelStack: 1;\n\n .user-birthday {\n margin: 0 0.75em 0.5em;\n }\n\n .user-profile-fields {\n margin: 0 0.5em;\n\n img {\n object-fit: contain;\n vertical-align: middle;\n max-width: 100%;\n max-height: 400px;\n\n &.emoji {\n width: 18px;\n height: 18px;\n }\n }\n\n .user-profile-field {\n display: flex;\n margin: 0.25em;\n border: 1px solid var(--border, $fallback--border);\n border-radius: $fallback--inputRadius;\n border-radius: var(--inputRadius, $fallback--inputRadius);\n\n .user-profile-field-name {\n flex: 0 1 30%;\n font-weight: 500;\n text-align: right;\n color: var(--lightText);\n min-width: 120px;\n border-right: 1px solid var(--border, $fallback--border);\n }\n\n .user-profile-field-value {\n flex: 1 1 70%;\n color: var(--text);\n margin: 0 0 0 0.25em;\n }\n\n .user-profile-field-name,\n .user-profile-field-value {\n line-height: 1.3;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n padding: 0.5em 1.5em;\n box-sizing: border-box;\n }\n }\n }\n\n .userlist-placeholder {\n display: flex;\n justify-content: center;\n align-items: middle;\n padding: 2em;\n }\n}\n\n.user-profile-placeholder {\n .panel-body {\n display: flex;\n justify-content: center;\n align-items: middle;\n padding: 7em;\n }\n}\n</style>\n","<template>\n <basic-user-card :user=\"user\">\n <div class=\"follow-card-content-container\">\n <span\n v-if=\"isMe || (!noFollowsYou && relationship.followed_by)\"\n class=\"faint\"\n >\n {{ isMe ? $t('user_card.its_you') : $t('user_card.follows_you') }}\n </span>\n <template v-if=\"!loggedIn\">\n <div\n v-if=\"!relationship.following\"\n class=\"follow-card-follow-button\"\n >\n <RemoteFollow :user=\"user\" />\n </div>\n </template>\n <template v-else-if=\"!isMe\">\n <FollowButton\n :relationship=\"relationship\"\n :label-following=\"$t('user_card.follow_unfollow')\"\n class=\"follow-card-follow-button\"\n :user=\"user\"\n />\n <RemoveFollowerButton\n v-if=\"noFollowsYou && relationship.followed_by\"\n :user=\"user\"\n :relationship=\"relationship\"\n class=\"follow-card-button\"\n />\n </template>\n </div>\n </basic-user-card>\n</template>\n\n<script src=\"./follow_card.js\"></script>\n\n<style lang=\"scss\">\n.follow-card {\n &-content-container {\n flex-shrink: 0;\n display: flex;\n flex-flow: row wrap;\n justify-content: space-between;\n line-height: 1.5em;\n }\n\n &-button {\n margin-top: 0.5em;\n padding: 0 1.5em;\n margin-left: 1em;\n }\n\n &-follow-button {\n margin-top: 0.5em;\n margin-left: auto;\n width: 10em;\n }\n}\n</style>\n","import ConfirmModal from '../confirm_modal/confirm_modal.vue'\n\nexport default {\n props: ['user', 'relationship'],\n data () {\n return {\n inProgress: false,\n showingConfirmRemoveFollower: false\n }\n },\n components: {\n ConfirmModal\n },\n computed: {\n label () {\n if (this.inProgress) {\n return this.$t('user_card.follow_progress')\n } else {\n return this.$t('user_card.remove_follower')\n }\n },\n shouldConfirmRemoveUserFromFollowers () {\n return this.$store.getters.mergedConfig.modalOnRemoveUserFromFollowers\n }\n },\n methods: {\n showConfirmRemoveUserFromFollowers () {\n this.showingConfirmRemoveFollower = true\n },\n hideConfirmRemoveUserFromFollowers () {\n this.showingConfirmRemoveFollower = false\n },\n onClick () {\n if (!this.shouldConfirmRemoveUserFromFollowers) {\n this.doRemoveUserFromFollowers()\n } else {\n this.showConfirmRemoveUserFromFollowers()\n }\n },\n doRemoveUserFromFollowers () {\n this.inProgress = true\n this.$store.dispatch('removeUserFromFollowers', this.relationship.id).then(() => {\n this.inProgress = false\n })\n this.hideConfirmRemoveUserFromFollowers()\n }\n }\n}\n","import { render } from \"./remove_follower_button.vue?vue&type=template&id=bc80064a\"\nimport script from \"./remove_follower_button.js?vue&type=script&lang=js\"\nexport * from \"./remove_follower_button.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <button\n class=\"btn button-default follow-button\"\n :class=\"{ toggled: inProgress }\"\n :disabled=\"inProgress\"\n :title=\"$t('user_card.remove_follower')\"\n @click=\"onClick\"\n >\n {{ label }}\n <teleport to=\"#modal\">\n <confirm-modal\n v-if=\"showingConfirmRemoveFollower\"\n :title=\"$t('user_card.remove_follower_confirm_title')\"\n :confirm-text=\"$t('user_card.remove_follower_confirm_accept_button')\"\n :cancel-text=\"$t('user_card.remove_follower_confirm_cancel_button')\"\n @accepted=\"doRemoveUserFromFollowers\"\n @cancelled=\"hideConfirmRemoveUserFromFollowers\"\n >\n <i18n-t\n keypath=\"user_card.remove_follower_confirm\"\n tag=\"span\"\n >\n <template #user>\n <span\n v-text=\"user.screen_name_ui\"\n />\n </template>\n </i18n-t>\n </confirm-modal>\n </teleport>\n </button>\n</template>\n\n<script src=\"./remove_follower_button.js\"></script>\n","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'\nimport RemoveFollowerButton from '../remove_follower_button/remove_follower_button.vue'\n\nconst FollowCard = {\n props: [\n 'user',\n 'noFollowsYou'\n ],\n components: {\n BasicUserCard,\n RemoteFollow,\n FollowButton,\n RemoveFollowerButton\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","import { render } from \"./follow_card.vue?vue&type=template&id=e6b6839c\"\nimport script from \"./follow_card.js?vue&type=script&lang=js\"\nexport * from \"./follow_card.js?vue&type=script&lang=js\"\n\nimport \"./follow_card.vue?vue&type=style&index=0&id=e6b6839c&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","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 TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'\nimport RichContent from 'src/components/rich_content/rich_content.jsx'\nimport List from '../list/list.vue'\nimport withLoadMore from '../../hocs/with_load_more/with_load_more'\nimport localeService from 'src/services/locale/locale.service.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faCircleNotch,\n faBirthdayCake\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCircleNotch,\n faBirthdayCake\n)\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 footerRef: null\n }\n },\n created () {\n const routeParams = this.$route.params\n this.load({ name: routeParams.name, id: routeParams.id })\n this.tab = get(this.$route, 'query.tab', defaultTabKey)\n },\n unmounted () {\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 formattedBirthday () {\n const browserLocale = localeService.internalToBrowserLocale(this.$i18n.locale)\n return this.user.birthday && new Date(Date.parse(this.user.birthday)).toLocaleDateString(browserLocale, { timeZone: 'UTC', day: 'numeric', month: 'long', year: 'numeric' })\n }\n },\n methods: {\n setFooterRef (el) {\n this.footerRef = el\n },\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 const maybeId = userNameOrId.id\n const maybeName = userNameOrId.name\n\n // Check if user data is already loaded in store\n const user = maybeId ? this.$store.getters.findUser(maybeId) : this.$store.getters.findUserByName(maybeName)\n if (user) {\n loadById(user.id)\n } else {\n (maybeId\n ? this.$store.dispatch('fetchUser', maybeId)\n : this.$store.dispatch('fetchUserByName', maybeName))\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 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 },\n watch: {\n '$route.params.id': function (newVal) {\n if (newVal) {\n this.switchUser({ id: newVal })\n }\n },\n '$route.params.name': function (newVal) {\n if (newVal) {\n this.switchUser({ name: 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 TabSwitcher,\n Conversation,\n RichContent\n }\n}\n\nexport default UserProfile\n","import { render } from \"./user_profile.vue?vue&type=template&id=3af4c11e\"\nimport script from \"./user_profile.js?vue&type=script&lang=js\"\nexport * from \"./user_profile.js?vue&type=script&lang=js\"\n\nimport \"./user_profile.vue?vue&type=style&index=0&id=3af4c11e&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"panel panel-default\">\n <div class=\"panel-heading\">\n <div class=\"title\">\n {{ $t('nav.search') }}\n </div>\n </div>\n <div class=\"search-input-container\">\n <input\n ref=\"searchInput\"\n v-model=\"searchTerm\"\n class=\"search-input\"\n :placeholder=\"$t('nav.search')\"\n @keyup.enter=\"newQuery(searchTerm)\"\n >\n <button\n class=\"btn button-default search-button\"\n type=\"submit\"\n @click=\"newQuery(searchTerm)\"\n >\n <FAIcon icon=\"search\" />\n </button>\n </div>\n <div\n v-if=\"loading && statusesOffset == 0\"\n class=\"text-center loading-icon\"\n >\n <FAIcon\n icon=\"circle-notch\"\n spin\n size=\"lg\"\n />\n </div>\n <div v-else-if=\"loaded\">\n <div class=\"search-nav-heading\">\n <tab-switcher\n ref=\"tabSwitcher\"\n :on-switch=\"onResultTabSwitch\"\n :active-tab=\"currenResultTab\"\n >\n <span\n key=\"statuses\"\n :label=\"$t('user_card.statuses') + resultCount('visibleStatuses')\"\n />\n <span\n key=\"people\"\n :label=\"$t('search.people') + resultCount('users')\"\n />\n <span\n key=\"hashtags\"\n :label=\"$t('search.hashtags') + resultCount('hashtags')\"\n />\n </tab-switcher>\n </div>\n </div>\n <div class=\"panel-body\">\n <div v-if=\"currenResultTab === 'statuses'\">\n <Status\n v-for=\"status in visibleStatuses\"\n :key=\"status.id\"\n :collapsable=\"false\"\n :expandable=\"false\"\n :compact=\"false\"\n class=\"search-result\"\n :statusoid=\"status\"\n :no-heading=\"false\"\n />\n <button\n v-if=\"!loading && loaded && lastStatusFetchCount > 0\"\n class=\"more-statuses-button button-unstyled -link -fullwidth\"\n @click.prevent=\"search(searchTerm, 'statuses')\"\n >\n <div class=\"new-status-notification text-center\">\n {{ $t('search.load_more') }}\n </div>\n </button>\n <div\n v-else-if=\"loading && statusesOffset > 0\"\n class=\"text-center loading-icon\"\n >\n <FAIcon\n icon=\"circle-notch\"\n spin\n size=\"lg\"\n />\n </div>\n <div\n v-if=\"(visibleStatuses.length === 0 || lastStatusFetchCount === 0) && !loading && loaded\"\n class=\"search-result-heading\"\n >\n <h4>\n {{ visibleStatuses.length === 0 ? $t('search.no_results') : $t('search.no_more_results') }}\n </h4>\n </div>\n </div>\n <div v-else-if=\"currenResultTab === 'people'\">\n <div\n v-if=\"users.length === 0 && !loading && loaded\"\n class=\"search-result-heading\"\n >\n <h4>{{ $t('search.no_results') }}</h4>\n </div>\n <FollowCard\n v-for=\"user in users\"\n :key=\"user.id\"\n :user=\"user\"\n class=\"list-item search-result\"\n />\n </div>\n <div v-else-if=\"currenResultTab === 'hashtags'\">\n <div\n v-if=\"hashtags.length === 0 && !loading && loaded\"\n class=\"search-result-heading\"\n >\n <h4>{{ $t('search.no_results') }}</h4>\n </div>\n <div\n v-for=\"hashtag in hashtags\"\n :key=\"hashtag.url\"\n class=\"status trend search-result\"\n >\n <div class=\"hashtag\">\n <router-link :to=\"{ name: 'tag-timeline', params: { tag: hashtag.name } }\">\n #{{ hashtag.name }}\n </router-link>\n <div v-if=\"lastHistoryRecord(hashtag)\">\n <span v-if=\"lastHistoryRecord(hashtag).accounts == 1\">\n {{ $t('search.person_talking', { count: lastHistoryRecord(hashtag).accounts }) }}\n </span>\n <span v-else>\n {{ $t('search.people_talking', { count: lastHistoryRecord(hashtag).accounts }) }}\n </span>\n </div>\n </div>\n <div\n v-if=\"lastHistoryRecord(hashtag)\"\n class=\"count\"\n >\n {{ lastHistoryRecord(hashtag).uses }}\n </div>\n </div>\n </div>\n </div>\n <div class=\"search-result-footer text-center panel-footer faint\" />\n </div>\n</template>\n\n<script src=\"./search.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.search-result-heading {\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n padding: 0.75rem;\n text-align: center;\n}\n\n@media all and (max-width: 800px) {\n .search-nav-heading {\n .tab-switcher .tabs .tab-wrapper {\n display: block;\n justify-content: center;\n flex: 1 1 auto;\n text-align: center;\n }\n }\n}\n\n.search-result {\n box-sizing: border-box;\n border-bottom: 1px solid;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n}\n\n.search-result-footer {\n border-width: 1px 0 0;\n border-style: solid;\n border-color: var(--border, $fallback--border);\n padding: 10px;\n background-color: $fallback--fg;\n background-color: var(--panel, $fallback--fg);\n}\n\n.search-input-container {\n padding: 0.8rem;\n display: flex;\n justify-content: center;\n\n .search-input {\n width: 100%;\n line-height: 1.125rem;\n font-size: 1rem;\n padding: 0.5rem;\n box-sizing: border-box;\n }\n\n .search-button {\n margin-left: 0.5em;\n }\n}\n\n.loading-icon {\n padding: 1em;\n}\n\n.trend {\n display: flex;\n align-items: center;\n\n .hashtag {\n flex: 1 1 auto;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .count {\n flex: 0 0 auto;\n width: 2rem;\n font-size: 1.5rem;\n line-height: 2.25rem;\n font-weight: 500;\n text-align: center;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n}\n\n.more-statuses-button {\n height: 3.5em;\n line-height: 3.5em;\n}\n\n</style>\n","import FollowCard from '../follow_card/follow_card.vue'\nimport Conversation from '../conversation/conversation.vue'\nimport Status from '../status/status.vue'\nimport TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'\nimport map from 'lodash/map'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faCircleNotch,\n faSearch\n} from '@fortawesome/free-solid-svg-icons'\nimport { uniqBy } from 'lodash'\n\nlibrary.add(\n faCircleNotch,\n faSearch\n)\n\nconst Search = {\n components: {\n FollowCard,\n Conversation,\n Status,\n TabSwitcher\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 statusesOffset: 0,\n lastStatusFetchCount: 0,\n lastQuery: ''\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, searchType = null) {\n if (!query) {\n this.loading = false\n return\n }\n\n this.loading = true\n this.$refs.searchInput.blur()\n if (this.lastQuery !== query) {\n this.userIds = []\n this.hashtags = []\n this.statuses = []\n\n this.statusesOffset = 0\n this.lastStatusFetchCount = 0\n }\n\n this.$store.dispatch('search', { q: query, resolve: true, offset: this.statusesOffset, type: searchType })\n .then(data => {\n this.loading = false\n\n const oldLength = this.statuses.length\n\n // Always append to old results. If new results are empty, this doesn't change anything\n this.userIds = this.userIds.concat(map(data.accounts, 'id'))\n this.statuses = uniqBy(this.statuses.concat(data.statuses), 'id')\n this.hashtags = this.hashtags.concat(data.hashtags)\n\n this.currenResultTab = this.getActiveTab()\n this.loaded = true\n\n // Offset from whatever we already have\n this.statusesOffset = this.statuses.length\n // Because the amount of new statuses can actually be zero, compare to old lenght instead\n this.lastStatusFetchCount = this.statuses.length - oldLength\n this.lastQuery = query\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","import { render } from \"./search.vue?vue&type=template&id=29ec17bc\"\nimport script from \"./search.js?vue&type=script&lang=js\"\nexport * from \"./search.js?vue&type=script&lang=js\"\n\nimport \"./search.vue?vue&type=style&index=0&id=29ec17bc&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"settings panel panel-default\">\n <div class=\"panel-heading\">\n {{ $t('registration.registration') }}\n </div>\n <div class=\"panel-body\">\n <form\n class=\"registration-form\"\n @submit.prevent=\"submit(user)\"\n >\n <div class=\"container\">\n <div class=\"text-fields\">\n <div\n class=\"form-group\"\n :class=\"{ 'form-group--error': v$.user.username.$error }\"\n >\n <label\n class=\"form--label\"\n for=\"sign-up-username\"\n >{{ $t('login.username') }}</label>\n <input\n id=\"sign-up-username\"\n v-model.trim=\"v$.user.username.$model\"\n :disabled=\"isPending\"\n class=\"form-control\"\n :aria-required=\"true\"\n :placeholder=\"$t('registration.username_placeholder')\"\n >\n </div>\n <div\n v-if=\"v$.user.username.$dirty\"\n class=\"form-error\"\n >\n <ul>\n <li v-if=\"!v$.user.username.required\">\n <span>{{ $t('registration.validations.username_required') }}</span>\n </li>\n </ul>\n </div>\n\n <div\n class=\"form-group\"\n :class=\"{ 'form-group--error': v$.user.fullname.$error }\"\n >\n <label\n class=\"form--label\"\n for=\"sign-up-fullname\"\n >{{ $t('registration.fullname') }}</label>\n <input\n id=\"sign-up-fullname\"\n v-model.trim=\"v$.user.fullname.$model\"\n :disabled=\"isPending\"\n class=\"form-control\"\n :aria-required=\"true\"\n :placeholder=\"$t('registration.fullname_placeholder')\"\n >\n </div>\n <div\n v-if=\"v$.user.fullname.$dirty\"\n class=\"form-error\"\n >\n <ul>\n <li v-if=\"!v$.user.fullname.required\">\n <span>{{ $t('registration.validations.fullname_required') }}</span>\n </li>\n </ul>\n </div>\n\n <div\n class=\"form-group\"\n :class=\"{ 'form-group--error': v$.user.email.$error }\"\n >\n <label\n class=\"form--label\"\n for=\"email\"\n >{{ accountActivationRequired ? $t('registration.email') : $t('registration.email_optional') }}</label>\n <input\n id=\"email\"\n v-model=\"v$.user.email.$model\"\n :disabled=\"isPending\"\n class=\"form-control\"\n type=\"email\"\n :aria-required=\"accountActivationRequired\"\n >\n </div>\n <div\n v-if=\"v$.user.email.$dirty\"\n class=\"form-error\"\n >\n <ul>\n <li v-if=\"!v$.user.email.required\">\n <span>{{ $t('registration.validations.email_required') }}</span>\n </li>\n </ul>\n </div>\n\n <div class=\"form-group\">\n <label\n class=\"form--label\"\n for=\"bio\"\n >{{ $t('registration.bio_optional') }}</label>\n <textarea\n id=\"bio\"\n v-model=\"user.bio\"\n :disabled=\"isPending\"\n class=\"form-control\"\n :placeholder=\"bioPlaceholder\"\n />\n </div>\n\n <div\n class=\"form-group\"\n :class=\"{ 'form-group--error': v$.user.password.$error }\"\n >\n <label\n class=\"form--label\"\n for=\"sign-up-password\"\n >{{ $t('login.password') }}</label>\n <input\n id=\"sign-up-password\"\n v-model=\"user.password\"\n :disabled=\"isPending\"\n class=\"form-control\"\n type=\"password\"\n :aria-required=\"true\"\n >\n </div>\n <div\n v-if=\"v$.user.password.$dirty\"\n class=\"form-error\"\n >\n <ul>\n <li v-if=\"!v$.user.password.required\">\n <span>{{ $t('registration.validations.password_required') }}</span>\n </li>\n </ul>\n </div>\n\n <div\n class=\"form-group\"\n :class=\"{ 'form-group--error': v$.user.confirm.$error }\"\n >\n <label\n class=\"form--label\"\n for=\"sign-up-password-confirmation\"\n >{{ $t('registration.password_confirm') }}</label>\n <input\n id=\"sign-up-password-confirmation\"\n v-model=\"user.confirm\"\n :disabled=\"isPending\"\n class=\"form-control\"\n type=\"password\"\n :aria-required=\"true\"\n >\n </div>\n <div\n v-if=\"v$.user.confirm.$dirty\"\n class=\"form-error\"\n >\n <ul>\n <li v-if=\"v$.user.confirm.required.$invalid\">\n <span>{{ $t('registration.validations.password_confirmation_required') }}</span>\n </li>\n <li v-if=\"v$.user.confirm.sameAs.$invalid\">\n <span>{{ $t('registration.validations.password_confirmation_match') }}</span>\n </li>\n </ul>\n </div>\n\n <div\n class=\"form-group\"\n :class=\"{ 'form-group--error': v$.user.birthday.$error }\"\n >\n <label\n class=\"form--label\"\n for=\"sign-up-birthday\"\n >\n {{ birthdayRequired ? $t('registration.birthday') : $t('registration.birthday_optional') }}\n </label>\n <input\n id=\"sign-up-birthday\"\n v-model=\"user.birthday\"\n :disabled=\"isPending\"\n class=\"form-control\"\n type=\"date\"\n :max=\"birthdayRequired ? birthdayMinAttr : undefined\"\n :aria-required=\"birthdayRequired\"\n >\n </div>\n <div\n v-if=\"v$.user.birthday.$dirty\"\n class=\"form-error\"\n >\n <ul>\n <li v-if=\"v$.user.birthday.required.$invalid\">\n <span>{{ $t('registration.validations.birthday_required') }}</span>\n </li>\n <li v-if=\"v$.user.birthday.maxValue.$invalid\">\n <span>{{ $tc('registration.validations.birthday_min_age', { date: birthdayMinFormatted }) }}</span>\n </li>\n </ul>\n </div>\n\n <div\n class=\"form-group\"\n :class=\"{ 'form-group--error': v$.user.language.$error }\"\n >\n <interface-language-switcher\n for=\"email-language\"\n :prompt-text=\"$t('registration.email_language')\"\n :language=\"v$.user.language.$model\"\n :set-language=\"val => v$.user.language.$model = val\"\n @click.stop.prevent\n />\n </div>\n\n <div\n v-if=\"accountApprovalRequired\"\n class=\"form-group\"\n >\n <label\n class=\"form--label\"\n for=\"reason\"\n >{{ $t('registration.reason') }}</label>\n <textarea\n id=\"reason\"\n v-model=\"user.reason\"\n :disabled=\"isPending\"\n class=\"form-control\"\n :placeholder=\"reasonPlaceholder\"\n />\n </div>\n\n <div\n v-if=\"captcha.type != 'none'\"\n id=\"captcha-group\"\n class=\"form-group\"\n >\n <label\n class=\"form--label\"\n for=\"captcha-label\"\n >{{ $t('registration.captcha') }}</label>\n\n <template v-if=\"['kocaptcha', 'native'].includes(captcha.type)\">\n <img\n :src=\"captcha.url\"\n @click=\"setCaptcha\"\n >\n\n <sub>{{ $t('registration.new_captcha') }}</sub>\n\n <input\n id=\"captcha-answer\"\n v-model=\"captcha.solution\"\n :disabled=\"isPending\"\n class=\"form-control\"\n type=\"text\"\n autocomplete=\"off\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n spellcheck=\"false\"\n >\n </template>\n </div>\n\n <div\n v-if=\"token\"\n class=\"form-group\"\n >\n <label for=\"token\">{{ $t('registration.token') }}</label>\n <input\n id=\"token\"\n v-model=\"token\"\n disabled=\"true\"\n class=\"form-control\"\n type=\"text\"\n >\n </div>\n <div class=\"form-group\">\n <button\n :disabled=\"isPending\"\n type=\"submit\"\n class=\"btn button-default\"\n >\n {{ $t('registration.register') }}\n </button>\n </div>\n </div>\n\n <!-- eslint-disable vue/no-v-html -->\n <div\n class=\"terms-of-service\"\n v-html=\"termsOfService\"\n />\n <!-- eslint-enable vue/no-v-html -->\n </div>\n <div\n v-if=\"serverValidationErrors.length\"\n class=\"form-group\"\n >\n <div class=\"alert error\">\n <span\n v-for=\"error in serverValidationErrors\"\n :key=\"error\"\n >{{ error }}</span>\n </div>\n </div>\n </form>\n </div>\n </div>\n</template>\n\n<script src=\"./registration.js\"></script>\n<style lang=\"scss\">\n@import \"../../variables\";\n$validations-cRed: #f04124;\n\n.registration-form {\n display: flex;\n flex-direction: column;\n margin: 0.6em;\n\n .container {\n display: flex;\n flex-direction: row;\n\n > * {\n min-width: 0;\n }\n }\n\n .terms-of-service {\n flex: 0 1 50%;\n margin: 0.8em;\n }\n\n .text-fields {\n margin-top: 0.6em;\n flex: 1 0;\n display: flex;\n flex-direction: column;\n }\n\n textarea {\n min-height: 100px;\n resize: vertical;\n }\n\n .form-group {\n display: flex;\n flex-direction: column;\n padding: 0.3em 0;\n line-height: 2;\n margin-bottom: 1em;\n }\n\n .form-group--error {\n animation-name: shakeError;\n animation-duration: 0.6s;\n animation-timing-function: ease-in-out;\n }\n\n .form-group--error .form--label {\n color: $validations-cRed;\n color: var(--cRed, $validations-cRed);\n }\n\n .form-error {\n margin-top: -0.7em;\n text-align: left;\n\n span {\n font-size: 0.85em;\n }\n }\n\n .form-error ul {\n list-style: none;\n padding: 0 0 0 5px;\n margin-top: 0;\n\n li::before {\n content: \"• \";\n }\n }\n\n form textarea {\n line-height: 16px;\n resize: vertical;\n }\n\n .captcha {\n max-width: 350px;\n margin-bottom: 0.4em;\n }\n\n .btn {\n margin-top: 0.6em;\n height: 2em;\n }\n\n .error {\n text-align: center;\n }\n}\n\n@media all and (max-width: 800px) {\n .registration-form .container {\n flex-direction: column-reverse;\n }\n}\n</style>\n","import useVuelidate from '@vuelidate/core'\nimport { required, requiredIf, sameAs } from '@vuelidate/validators'\nimport { mapActions, mapState } from 'vuex'\nimport InterfaceLanguageSwitcher from '../interface_language_switcher/interface_language_switcher.vue'\nimport localeService from '../../services/locale/locale.service.js'\nimport { DAY } from 'src/services/date_utils/date_utils.js'\n\nconst registration = {\n setup () { return { v$: useVuelidate() } },\n data: () => ({\n user: {\n email: '',\n fullname: '',\n username: '',\n password: '',\n confirm: '',\n birthday: '',\n reason: '',\n language: ['']\n },\n captcha: {}\n }),\n components: {\n InterfaceLanguageSwitcher\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 sameAs: sameAs(this.user.password)\n },\n birthday: {\n required: requiredIf(() => this.birthdayRequired),\n maxValue: value => {\n return !this.birthdayRequired || new Date(value).getTime() <= this.birthdayMin.getTime()\n }\n },\n reason: { required: requiredIf(() => this.accountApprovalRequired) },\n language: {}\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.replaceNewlines(this.$t('registration.bio_placeholder'))\n },\n reasonPlaceholder () {\n return this.replaceNewlines(this.$t('registration.reason_placeholder'))\n },\n birthdayMin () {\n const minAge = this.birthdayMinAge\n const today = new Date()\n today.setUTCMilliseconds(0)\n today.setUTCSeconds(0)\n today.setUTCMinutes(0)\n today.setUTCHours(0)\n const minDate = new Date()\n minDate.setTime(today.getTime() - minAge * DAY)\n return minDate\n },\n birthdayMinAttr () {\n return this.birthdayMin.toJSON().replace(/T.+$/, '')\n },\n birthdayMinFormatted () {\n const browserLocale = localeService.internalToBrowserLocale(this.$i18n.locale)\n return this.user.birthday && new Date(Date.parse(this.birthdayMin)).toLocaleDateString(browserLocale, { timeZone: 'UTC', day: 'numeric', month: 'long', year: 'numeric' })\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 accountApprovalRequired: (state) => state.instance.accountApprovalRequired,\n birthdayRequired: (state) => state.instance.birthdayRequired,\n birthdayMinAge: (state) => state.instance.birthdayMinAge\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 if (this.user.language) {\n this.user.language = localeService.internalToBackendLocaleMulti(this.user.language.filter(k => k))\n }\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 replaceNewlines (str) {\n return str.replace(/\\s*\\n\\s*/g, ' \\n')\n }\n }\n}\n\nexport default registration\n","import { render } from \"./registration.vue?vue&type=template&id=f9488ca2\"\nimport script from \"./registration.js?vue&type=script&lang=js\"\nexport * from \"./registration.js?vue&type=script&lang=js\"\n\nimport \"./registration.vue?vue&type=style&index=0&id=f9488ca2&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"settings panel panel-default\">\n <div class=\"panel-heading\">\n {{ $t('password_reset.password_reset') }}\n </div>\n <div class=\"panel-body\">\n <form\n class=\"password-reset-form\"\n @submit.prevent=\"submit\"\n >\n <div class=\"container\">\n <div v-if=\"!mailerEnabled\">\n <p v-if=\"passwordResetRequested\">\n {{ $t('password_reset.password_reset_required_but_mailer_is_disabled') }}\n </p>\n <p v-else>\n {{ $t('password_reset.password_reset_disabled') }}\n </p>\n </div>\n <div v-else-if=\"success || throttled\">\n <p v-if=\"success\">\n {{ $t('password_reset.check_email') }}\n </p>\n <div class=\"form-group text-center\">\n <router-link :to=\"{name: 'root'}\">\n {{ $t('password_reset.return_home') }}\n </router-link>\n </div>\n </div>\n <div v-else>\n <p\n v-if=\"passwordResetRequested\"\n class=\"password-reset-required error\"\n >\n {{ $t('password_reset.password_reset_required') }}\n </p>\n <p>\n {{ $t('password_reset.instruction') }}\n </p>\n <div class=\"form-group\">\n <input\n ref=\"email\"\n v-model=\"user.email\"\n :disabled=\"isPending\"\n :placeholder=\"$t('password_reset.placeholder')\"\n class=\"form-control\"\n type=\"input\"\n >\n </div>\n <div class=\"form-group\">\n <button\n :disabled=\"isPending\"\n type=\"submit\"\n class=\"btn button-default btn-block\"\n >\n {{ $t('settings.save') }}\n </button>\n </div>\n </div>\n <p\n v-if=\"error\"\n class=\"alert error notice-dismissible\"\n >\n <span>{{ error }}</span>\n <a\n class=\"fa-scale-110 fa-old-padding dismiss\"\n @click.prevent=\"dismissError()\"\n >\n <FAIcon icon=\"times\" />\n </a>\n </p>\n </div>\n </form>\n </div>\n </div>\n</template>\n\n<script src=\"./password_reset.js\"></script>\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.password-reset-form {\n display: flex;\n flex-direction: column;\n align-items: center;\n margin: 0.6em;\n\n .container {\n display: flex;\n flex: 1 0;\n flex-direction: column;\n margin-top: 0.6em;\n max-width: 18rem;\n\n > * {\n min-width: 0;\n }\n }\n\n .form-group {\n display: flex;\n flex-direction: column;\n margin-bottom: 1em;\n padding: 0.3em 0;\n line-height: 1.85em;\n }\n\n .error {\n text-align: center;\n animation-name: shakeError;\n animation-duration: 0.4s;\n animation-timing-function: ease-in-out;\n }\n\n .alert {\n padding: 0.5em;\n margin: 0.3em 0 1em;\n }\n\n .password-reset-required {\n background-color: var(--alertError, $fallback--alertError);\n padding: 10px 0;\n }\n\n .notice-dismissible {\n padding-right: 2rem;\n }\n\n .dismiss {\n cursor: pointer;\n }\n}\n\n</style>\n","import { mapState } from 'vuex'\nimport passwordResetApi from '../../services/new_api/password_reset.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faTimes\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faTimes\n)\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 === 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","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 { render } from \"./password_reset.vue?vue&type=template&id=0a88ea38\"\nimport script from \"./password_reset.js?vue&type=script&lang=js\"\nexport * from \"./password_reset.js?vue&type=script&lang=js\"\n\nimport \"./password_reset.vue?vue&type=style&index=0&id=0a88ea38&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"settings panel panel-default\">\n <div class=\"panel-heading\">\n <div class=\"title\">\n {{ $t('nav.friend_requests') }}\n </div>\n </div>\n <div class=\"panel-body\">\n <FollowRequestCard\n v-for=\"request in requests\"\n :key=\"request.id\"\n :user=\"request\"\n class=\"list-item\"\n />\n </div>\n </div>\n</template>\n\n<script src=\"./follow_requests.js\"></script>\n","<template>\n <basic-user-card :user=\"user\">\n <div class=\"follow-request-card-content-container\">\n <button\n class=\"btn button-default\"\n @click=\"approveUser\"\n >\n {{ $t('user_card.approve') }}\n </button>\n <button\n class=\"btn button-default\"\n @click=\"denyUser\"\n >\n {{ $t('user_card.deny') }}\n </button>\n </div>\n <teleport to=\"#modal\">\n <confirm-modal\n v-if=\"showingApproveConfirmDialog\"\n :title=\"$t('user_card.approve_confirm_title')\"\n :confirm-text=\"$t('user_card.approve_confirm_accept_button')\"\n :cancel-text=\"$t('user_card.approve_confirm_cancel_button')\"\n @accepted=\"doApprove\"\n @cancelled=\"hideApproveConfirmDialog\"\n >\n {{ $t('user_card.approve_confirm', { user: user.screen_name_ui }) }}\n </confirm-modal>\n <confirm-modal\n v-if=\"showingDenyConfirmDialog\"\n :title=\"$t('user_card.deny_confirm_title')\"\n :confirm-text=\"$t('user_card.deny_confirm_accept_button')\"\n :cancel-text=\"$t('user_card.deny_confirm_cancel_button')\"\n @accepted=\"doDeny\"\n @cancelled=\"hideDenyConfirmDialog\"\n >\n {{ $t('user_card.deny_confirm', { user: user.screen_name_ui }) }}\n </confirm-modal>\n </teleport>\n </basic-user-card>\n</template>\n\n<script src=\"./follow_request_card.js\"></script>\n\n<style lang=\"scss\">\n.follow-request-card-content-container {\n display: flex;\n flex-flow: row wrap;\n\n button {\n margin-top: 0.5em;\n margin-right: 0.5em;\n flex: 1 1;\n max-width: 12em;\n min-width: 8em;\n\n &:last-child {\n margin-right: 0;\n }\n }\n}\n</style>\n","import BasicUserCard from '../basic_user_card/basic_user_card.vue'\nimport ConfirmModal from '../confirm_modal/confirm_modal.vue'\nimport { notificationsFromStore } from '../../services/notification_utils/notification_utils.js'\n\nconst FollowRequestCard = {\n props: ['user'],\n components: {\n BasicUserCard,\n ConfirmModal\n },\n data () {\n return {\n showingApproveConfirmDialog: false,\n showingDenyConfirmDialog: false\n }\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 showApproveConfirmDialog () {\n this.showingApproveConfirmDialog = true\n },\n hideApproveConfirmDialog () {\n this.showingApproveConfirmDialog = false\n },\n showDenyConfirmDialog () {\n this.showingDenyConfirmDialog = true\n },\n hideDenyConfirmDialog () {\n this.showingDenyConfirmDialog = false\n },\n approveUser () {\n if (this.shouldConfirmApprove) {\n this.showApproveConfirmDialog()\n } else {\n this.doApprove()\n }\n },\n doApprove () {\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 this.hideApproveConfirmDialog()\n },\n denyUser () {\n if (this.shouldConfirmDeny) {\n this.showDenyConfirmDialog()\n } else {\n this.doDeny()\n }\n },\n doDeny () {\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 this.hideDenyConfirmDialog()\n }\n },\n computed: {\n mergedConfig () {\n return this.$store.getters.mergedConfig\n },\n shouldConfirmApprove () {\n return this.mergedConfig.modalOnApproveFollow\n },\n shouldConfirmDeny () {\n return this.mergedConfig.modalOnDenyFollow\n }\n }\n}\n\nexport default FollowRequestCard\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","import { render } from \"./follow_request_card.vue?vue&type=template&id=3bb26ea8\"\nimport script from \"./follow_request_card.js?vue&type=script&lang=js\"\nexport * from \"./follow_request_card.js?vue&type=script&lang=js\"\n\nimport \"./follow_request_card.vue?vue&type=style&index=0&id=3bb26ea8&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./follow_requests.vue?vue&type=template&id=62e19784\"\nimport script from \"./follow_requests.js?vue&type=script&lang=js\"\nexport * from \"./follow_requests.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","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","import { render } from \"./oauth_callback.vue?vue&type=template&id=f514124c\"\nimport script from \"./oauth_callback.js?vue&type=script&lang=js\"\nexport * from \"./oauth_callback.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <h1>...</h1>\n</template>\n\n<script src=\"./oauth_callback.js\"></script>\n","<template>\n <div class=\"panel panel-default\">\n <div class=\"panel-heading\">\n {{ $t('who_to_follow.who_to_follow') }}\n </div>\n <div class=\"panel-body\">\n <FollowCard\n v-for=\"user in users\"\n :key=\"user.id\"\n :user=\"user\"\n class=\"list-item\"\n />\n </div>\n </div>\n</template>\n\n<script src=\"./who_to_follow.js\"></script>\n","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 })\n .then((reply) => {\n this.showWhoToFollow(reply)\n })\n }\n }\n }\n}\n\nexport default WhoToFollow\n","import { render } from \"./who_to_follow.vue?vue&type=template&id=1d38a2c8\"\nimport script from \"./who_to_follow.js?vue&type=script&lang=js\"\nexport * from \"./who_to_follow.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"column-inner\">\n <instance-specific-panel v-if=\"showInstanceSpecificPanel\" />\n <staff-panel />\n <terms-of-service-panel />\n <MRFTransparencyPanel />\n <features-panel v-if=\"showFeaturesPanel\" />\n </div>\n</template>\n\n<script src=\"./about.js\"></script>\n","<template>\n <div>\n <div class=\"panel panel-default\">\n <div class=\"panel-body\">\n <!-- eslint-disable vue/no-v-html -->\n <div\n class=\"tos-content\"\n v-html=\"content\"\n />\n <!-- eslint-enable vue/no-v-html -->\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./terms_of_service_panel.js\"></script>\n\n<style lang=\"scss\">\n.tos-content {\n margin: 1em;\n}\n</style>\n","const TermsOfServicePanel = {\n computed: {\n content () {\n return this.$store.state.instance.tos\n }\n }\n}\n\nexport default TermsOfServicePanel\n","import { render } from \"./terms_of_service_panel.vue?vue&type=template&id=22763f84\"\nimport script from \"./terms_of_service_panel.js?vue&type=script&lang=js\"\nexport * from \"./terms_of_service_panel.js?vue&type=script&lang=js\"\n\nimport \"./terms_of_service_panel.vue?vue&type=style&index=0&id=22763f84&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"staff-panel\">\n <div class=\"panel panel-default base01-background\">\n <div class=\"panel-heading timeline-heading base02-background\">\n <div class=\"title\">\n {{ $t(\"about.staff\") }}\n </div>\n </div>\n <div class=\"panel-body\">\n <div\n v-for=\"group in groupedStaffAccounts\"\n :key=\"group.role\"\n class=\"staff-group\"\n >\n <h4>{{ $t('general.role.' + group.role) }}</h4>\n <basic-user-card\n v-for=\"user in group.users\"\n :key=\"user.screen_name\"\n :user=\"user\"\n />\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./staff_panel.js\"></script>\n\n<style lang=\"scss\">\n.staff-group {\n padding-left: 1em;\n padding-top: 1em;\n\n .basic-user-card {\n padding-left: 0;\n }\n}\n\n</style>\n","import map from 'lodash/map'\nimport groupBy from 'lodash/groupBy'\nimport { mapGetters, mapState } from 'vuex'\nimport BasicUserCard from '../basic_user_card/basic_user_card.vue'\n\nconst StaffPanel = {\n created () {\n const nicknames = this.$store.state.instance.staffAccounts\n nicknames.forEach(nickname => this.$store.dispatch('fetchUserIfMissing', nickname))\n },\n components: {\n BasicUserCard\n },\n computed: {\n groupedStaffAccounts () {\n const staffAccounts = map(this.staffAccounts, this.findUserByName).filter(_ => _)\n const groupedStaffAccounts = groupBy(staffAccounts, 'role')\n\n return [\n { role: 'admin', users: groupedStaffAccounts.admin },\n { role: 'moderator', users: groupedStaffAccounts.moderator }\n ].filter(group => group.users)\n },\n ...mapGetters([\n 'findUserByName'\n ]),\n ...mapState({\n staffAccounts: state => state.instance.staffAccounts\n })\n }\n}\n\nexport default StaffPanel\n","import { render } from \"./staff_panel.vue?vue&type=template&id=56c37220\"\nimport script from \"./staff_panel.js?vue&type=script&lang=js\"\nexport * from \"./staff_panel.js?vue&type=script&lang=js\"\n\nimport \"./staff_panel.vue?vue&type=style&index=0&id=56c37220&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n v-if=\"federationPolicy\"\n class=\"mrf-transparency-panel\"\n >\n <div class=\"panel panel-default base01-background\">\n <div class=\"panel-heading timeline-heading base02-background\">\n <div class=\"title\">\n {{ $t(\"about.mrf.federation\") }}\n </div>\n </div>\n <div class=\"panel-body\">\n <div class=\"mrf-section\">\n <h2>{{ $t(\"about.mrf.mrf_policies\") }}</h2>\n <p>{{ $t(\"about.mrf.mrf_policies_desc\") }}</p>\n\n <ul>\n <li\n v-for=\"policy in mrfPolicies\"\n :key=\"policy\"\n v-text=\"policy\"\n />\n </ul>\n\n <h2 v-if=\"hasInstanceSpecificPolicies\">\n {{ $t(\"about.mrf.simple.simple_policies\") }}\n </h2>\n\n <div v-if=\"acceptInstances.length\">\n <h4>{{ $t(\"about.mrf.simple.accept\") }}</h4>\n\n <p>{{ $t(\"about.mrf.simple.accept_desc\") }}</p>\n\n <table>\n <tr>\n <th>{{ $t(\"about.mrf.simple.instance\") }}</th>\n <th>{{ $t(\"about.mrf.simple.reason\") }}</th>\n </tr>\n <tr\n v-for=\"entry in acceptInstances\"\n :key=\"entry.instance + '_accept'\"\n >\n <td>{{ entry.instance }}</td>\n <td v-if=\"entry.reason === ''\">\n {{ $t(\"about.mrf.simple.not_applicable\") }}\n </td>\n <td v-else>\n {{ entry.reason }}\n </td>\n </tr>\n </table>\n </div>\n\n <div v-if=\"rejectInstances.length\">\n <h4>{{ $t(\"about.mrf.simple.reject\") }}</h4>\n\n <p>{{ $t(\"about.mrf.simple.reject_desc\") }}</p>\n\n <table>\n <tr>\n <th>{{ $t(\"about.mrf.simple.instance\") }}</th>\n <th>{{ $t(\"about.mrf.simple.reason\") }}</th>\n </tr>\n <tr\n v-for=\"entry in rejectInstances\"\n :key=\"entry.instance + '_reject'\"\n >\n <td>{{ entry.instance }}</td>\n <td v-if=\"entry.reason === ''\">\n {{ $t(\"about.mrf.simple.not_applicable\") }}\n </td>\n <td v-else>\n {{ entry.reason }}\n </td>\n </tr>\n </table>\n </div>\n\n <div v-if=\"quarantineInstances.length\">\n <h4>{{ $t(\"about.mrf.simple.quarantine\") }}</h4>\n\n <p>{{ $t(\"about.mrf.simple.quarantine_desc\") }}</p>\n\n <table>\n <tr>\n <th>{{ $t(\"about.mrf.simple.instance\") }}</th>\n <th>{{ $t(\"about.mrf.simple.reason\") }}</th>\n </tr>\n <tr\n v-for=\"entry in quarantineInstances\"\n :key=\"entry.instance + '_quarantine'\"\n >\n <td>{{ entry.instance }}</td>\n <td v-if=\"entry.reason === ''\">\n {{ $t(\"about.mrf.simple.not_applicable\") }}\n </td>\n <td v-else>\n {{ entry.reason }}\n </td>\n </tr>\n </table>\n </div>\n\n <div v-if=\"ftlRemovalInstances.length\">\n <h4>{{ $t(\"about.mrf.simple.ftl_removal\") }}</h4>\n\n <p>{{ $t(\"about.mrf.simple.ftl_removal_desc\") }}</p>\n\n <table>\n <tr>\n <th>{{ $t(\"about.mrf.simple.instance\") }}</th>\n <th>{{ $t(\"about.mrf.simple.reason\") }}</th>\n </tr>\n <tr\n v-for=\"entry in ftlRemovalInstances\"\n :key=\"entry.instance + '_ftl_removal'\"\n >\n <td>{{ entry.instance }}</td>\n <td v-if=\"entry.reason === ''\">\n {{ $t(\"about.mrf.simple.not_applicable\") }}\n </td>\n <td v-else>\n {{ entry.reason }}\n </td>\n </tr>\n </table>\n </div>\n\n <div v-if=\"mediaNsfwInstances.length\">\n <h4>{{ $t(\"about.mrf.simple.media_nsfw\") }}</h4>\n\n <p>{{ $t(\"about.mrf.simple.media_nsfw_desc\") }}</p>\n\n <table>\n <tr>\n <th>{{ $t(\"about.mrf.simple.instance\") }}</th>\n <th>{{ $t(\"about.mrf.simple.reason\") }}</th>\n </tr>\n <tr\n v-for=\"entry in mediaNsfwInstances\"\n :key=\"entry.instance + '_media_nsfw'\"\n >\n <td>{{ entry.instance }}</td>\n <td v-if=\"entry.reason === ''\">\n {{ $t(\"about.mrf.simple.not_applicable\") }}\n </td>\n <td v-else>\n {{ entry.reason }}\n </td>\n </tr>\n </table>\n </div>\n\n <div v-if=\"mediaRemovalInstances.length\">\n <h4>{{ $t(\"about.mrf.simple.media_removal\") }}</h4>\n\n <p>{{ $t(\"about.mrf.simple.media_removal_desc\") }}</p>\n\n <table>\n <tr>\n <th>{{ $t(\"about.mrf.simple.instance\") }}</th>\n <th>{{ $t(\"about.mrf.simple.reason\") }}</th>\n </tr>\n <tr\n v-for=\"entry in mediaRemovalInstances\"\n :key=\"entry.instance + '_media_removal'\"\n >\n <td>{{ entry.instance }}</td>\n <td v-if=\"entry.reason === ''\">\n {{ $t(\"about.mrf.simple.not_applicable\") }}\n </td>\n <td v-else>\n {{ entry.reason }}\n </td>\n </tr>\n </table>\n </div>\n\n <h2 v-if=\"hasKeywordPolicies\">\n {{ $t(\"about.mrf.keyword.keyword_policies\") }}\n </h2>\n\n <div v-if=\"keywordsFtlRemoval.length\">\n <h4>{{ $t(\"about.mrf.keyword.ftl_removal\") }}</h4>\n\n <ul>\n <li\n v-for=\"keyword in keywordsFtlRemoval\"\n :key=\"keyword\"\n v-text=\"keyword\"\n />\n </ul>\n </div>\n\n <div v-if=\"keywordsReject.length\">\n <h4>{{ $t(\"about.mrf.keyword.reject\") }}</h4>\n\n <ul>\n <li\n v-for=\"keyword in keywordsReject\"\n :key=\"keyword\"\n v-text=\"keyword\"\n />\n </ul>\n </div>\n\n <div v-if=\"keywordsReplace.length\">\n <h4>{{ $t(\"about.mrf.keyword.replace\") }}</h4>\n\n <ul>\n <li\n v-for=\"keyword in keywordsReplace\"\n :key=\"keyword\"\n >\n {{ keyword.pattern }}\n {{ $t(\"about.mrf.keyword.is_replaced_by\") }}\n {{ keyword.replacement }}\n </li>\n </ul>\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./mrf_transparency_panel.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n@import \"./mrf_transparency_panel\";\n</style>\n","import { mapState } from 'vuex'\nimport { get } from 'lodash'\n\n/**\n * This is for backwards compatibility. We originally didn't recieve\n * extra info like a reason why an instance was rejected/quarantined/etc.\n * Because we didn't want to break backwards compatibility it was decided\n * to add an extra \"info\" key.\n */\nconst toInstanceReasonObject = (instances, info, key) => {\n return instances.map(instance => {\n if (info[key] && info[key][instance] && info[key][instance].reason) {\n return { instance, reason: info[key][instance].reason }\n }\n return { instance, reason: '' }\n })\n}\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 => toInstanceReasonObject(\n get(state, 'instance.federationPolicy.quarantined_instances', []),\n get(state, 'instance.federationPolicy.quarantined_instances_info', []),\n 'quarantined_instances'\n ),\n acceptInstances: state => toInstanceReasonObject(\n get(state, 'instance.federationPolicy.mrf_simple.accept', []),\n get(state, 'instance.federationPolicy.mrf_simple_info', []),\n 'accept'\n ),\n rejectInstances: state => toInstanceReasonObject(\n get(state, 'instance.federationPolicy.mrf_simple.reject', []),\n get(state, 'instance.federationPolicy.mrf_simple_info', []),\n 'reject'\n ),\n ftlRemovalInstances: state => toInstanceReasonObject(\n get(state, 'instance.federationPolicy.mrf_simple.federated_timeline_removal', []),\n get(state, 'instance.federationPolicy.mrf_simple_info', []),\n 'federated_timeline_removal'\n ),\n mediaNsfwInstances: state => toInstanceReasonObject(\n get(state, 'instance.federationPolicy.mrf_simple.media_nsfw', []),\n get(state, 'instance.federationPolicy.mrf_simple_info', []),\n 'media_nsfw'\n ),\n mediaRemovalInstances: state => toInstanceReasonObject(\n get(state, 'instance.federationPolicy.mrf_simple.media_removal', []),\n get(state, 'instance.federationPolicy.mrf_simple_info', []),\n 'media_removal'\n ),\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","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","import { render } from \"./mrf_transparency_panel.vue?vue&type=template&id=67a05c5c\"\nimport script from \"./mrf_transparency_panel.js?vue&type=script&lang=js\"\nexport * from \"./mrf_transparency_panel.js?vue&type=script&lang=js\"\n\nimport \"./mrf_transparency_panel.vue?vue&type=style&index=0&id=67a05c5c&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./about.vue?vue&type=template&id=4d996902\"\nimport script from \"./about.js?vue&type=script&lang=js\"\nexport * from \"./about.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"panel panel-default\">\n <div class=\"panel-heading\">\n {{ $t('remote_user_resolver.remote_user_resolver') }}\n </div>\n <div class=\"panel-body\">\n <p>\n {{ $t('remote_user_resolver.searching_for') }} @{{ $route.params.username }}@{{ $route.params.hostname }}\n </p>\n <p v-if=\"error\">\n {{ $t('remote_user_resolver.error') }}\n </p>\n </div>\n </div>\n</template>\n\n<script src=\"./remote_user_resolver.js\"></script>\n","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","import { render } from \"./remote_user_resolver.vue?vue&type=template&id=147deeb8\"\nimport script from \"./remote_user_resolver.js?vue&type=script&lang=js\"\nexport * from \"./remote_user_resolver.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"Lists panel panel-default\">\n <div class=\"panel-heading\">\n <div class=\"title\">\n {{ $t('lists.lists') }}\n </div>\n <router-link\n :to=\"{ name: 'lists-new' }\"\n class=\"button-default btn new-list-button\"\n >\n {{ $t(\"lists.new\") }}\n </router-link>\n </div>\n <div class=\"panel-body\">\n <ListsCard\n v-for=\"list in lists.slice().reverse()\"\n :key=\"list\"\n :list=\"list\"\n class=\"list-item\"\n />\n </div>\n </div>\n</template>\n\n<script src=\"./lists.js\"></script>\n\n<style lang=\"scss\">\n.Lists {\n .new-list-button {\n padding: 0 0.5em;\n }\n}\n</style>\n","<template>\n <div class=\"list-card\">\n <router-link\n :to=\"{ name: 'lists-timeline', params: { id: list.id } }\"\n class=\"list-name\"\n >\n {{ list.title }}\n </router-link>\n <router-link\n :to=\"{ name: 'lists-edit', params: { id: list.id } }\"\n class=\"button-list-edit\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"ellipsis-h\"\n />\n </router-link>\n </div>\n</template>\n\n<script src=\"./lists_card.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.list-card {\n display: flex;\n}\n\n.list-name {\n flex-grow: 1;\n}\n\n.list-name,\n.button-list-edit {\n margin: 0;\n padding: 1em;\n color: $fallback--link;\n color: var(--link, $fallback--link);\n\n &:hover {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n color: $fallback--link;\n color: var(--selectedMenuText, $fallback--link);\n\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n }\n}\n</style>\n","import { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faEllipsisH\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faEllipsisH\n)\n\nconst ListsCard = {\n props: [\n 'list'\n ]\n}\n\nexport default ListsCard\n","import ListsCard from '../lists_card/lists_card.vue'\n\nconst Lists = {\n data () {\n return {\n isNew: false\n }\n },\n components: {\n ListsCard\n },\n computed: {\n lists () {\n return this.$store.state.lists.allLists\n }\n },\n methods: {\n cancelNewList () {\n this.isNew = false\n },\n newList () {\n this.isNew = true\n }\n }\n}\n\nexport default Lists\n","import { render } from \"./lists_card.vue?vue&type=template&id=cb7330aa\"\nimport script from \"./lists_card.js?vue&type=script&lang=js\"\nexport * from \"./lists_card.js?vue&type=script&lang=js\"\n\nimport \"./lists_card.vue?vue&type=style&index=0&id=cb7330aa&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./lists.vue?vue&type=template&id=273aca3d\"\nimport script from \"./lists.js?vue&type=script&lang=js\"\nexport * from \"./lists.js?vue&type=script&lang=js\"\n\nimport \"./lists.vue?vue&type=style&index=0&id=273aca3d&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import Timeline from '../timeline/timeline.vue'\nconst ListsTimeline = {\n data () {\n return {\n listId: null\n }\n },\n components: {\n Timeline\n },\n computed: {\n timeline () { return this.$store.state.statuses.timelines.list }\n },\n watch: {\n $route: function (route) {\n if (route.name === 'lists-timeline' && route.params.id !== this.listId) {\n this.listId = route.params.id\n this.$store.dispatch('stopFetchingTimeline', 'list')\n this.$store.commit('clearTimeline', { timeline: 'list' })\n this.$store.dispatch('fetchList', { listId: this.listId })\n this.$store.dispatch('startFetchingTimeline', { timeline: 'list', listId: this.listId })\n }\n }\n },\n created () {\n this.listId = this.$route.params.id\n this.$store.dispatch('fetchList', { listId: this.listId })\n this.$store.dispatch('startFetchingTimeline', { timeline: 'list', listId: this.listId })\n },\n unmounted () {\n this.$store.dispatch('stopFetchingTimeline', 'list')\n this.$store.commit('clearTimeline', { timeline: 'list' })\n }\n}\n\nexport default ListsTimeline\n","import { render } from \"./lists_timeline.vue?vue&type=template&id=464584d8\"\nimport script from \"./lists_timeline.js?vue&type=script&lang=js\"\nexport * from \"./lists_timeline.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Timeline\n title=\"list.name\"\n :timeline=\"timeline\"\n :list-id=\"listId\"\n timeline-name=\"list\"\n />\n</template>\n\n<script src=\"./lists_timeline.js\"></script>\n","<template>\n <div class=\"panel-default panel ListEdit\">\n <div\n ref=\"header\"\n class=\"panel-heading list-edit-heading\"\n >\n <button\n class=\"button-unstyled go-back-button\"\n @click=\"$router.back\"\n >\n <FAIcon\n size=\"lg\"\n icon=\"chevron-left\"\n />\n </button>\n <div class=\"title\">\n <i18n-t\n v-if=\"id\"\n keypath=\"lists.editing_list\"\n >\n <template #listTitle>\n {{ title }}\n </template>\n </i18n-t>\n <i18n-t\n v-else\n keypath=\"lists.creating_list\"\n />\n </div>\n </div>\n <div class=\"panel-body\">\n <div class=\"input-wrap\">\n <label for=\"list-edit-title\">{{ $t('lists.title') }}</label>\n {{ ' ' }}\n <input\n id=\"list-edit-title\"\n ref=\"title\"\n v-model=\"titleDraft\"\n >\n <button\n v-if=\"id\"\n class=\"btn button-default follow-button\"\n @click=\"updateListTitle\"\n >\n {{ $t('lists.update_title') }}\n </button>\n </div>\n <tab-switcher\n class=\"list-member-management\"\n :scrollable-tabs=\"true\"\n >\n <div\n v-if=\"id || addedUserIds.size > 0\"\n :label=\"$t('lists.manage_members')\"\n class=\"members-list\"\n >\n <div class=\"users-list\">\n <div\n v-for=\"user in membersUsers\"\n :key=\"user.id\"\n class=\"member\"\n >\n <BasicUserCard\n :user=\"user\"\n >\n <button\n class=\"btn button-default follow-button\"\n @click=\"toggleRemoveMember(user)\"\n >\n {{ isRemoved(user) ? $t('general.undo') : $t('lists.remove_from_list') }}\n </button>\n </BasicUserCard>\n </div>\n </div>\n </div>\n\n <div\n class=\"search-list\"\n :label=\"$t('lists.add_members')\"\n >\n <ListsUserSearch\n @results=\"onSearchResults\"\n @loading=\"onSearchLoading\"\n @loadingDone=\"onSearchLoadingDone\"\n />\n <div\n v-if=\"searchLoading\"\n class=\"loading\"\n >\n <PanelLoading />\n </div>\n <div\n v-else\n class=\"users-list\"\n >\n <div\n v-for=\"user in searchUsers\"\n :key=\"user.id\"\n class=\"member\"\n >\n <BasicUserCard\n :user=\"user\"\n >\n <span\n v-if=\"membersUserIds.includes(user.id)\"\n >\n {{ $t('lists.is_in_list') }}\n </span>\n <button\n v-if=\"!membersUserIds.includes(user.id)\"\n class=\"btn button-default follow-button\"\n @click=\"toggleAddFromSearch(user)\"\n >\n {{ isAdded(user) ? $t('general.undo') : $t('lists.add_to_list') }}\n </button>\n <button\n v-else\n class=\"btn button-default follow-button\"\n @click=\"toggleRemoveMember(user)\"\n >\n {{ isRemoved(user) ? $t('general.undo') : $t('lists.remove_from_list') }}\n </button>\n </BasicUserCard>\n </div>\n </div>\n </div>\n </tab-switcher>\n </div>\n <div class=\"panel-footer\">\n <span class=\"spacer\" />\n <button\n v-if=\"!id\"\n class=\"btn button-default footer-button\"\n @click=\"createList\"\n >\n {{ $t('lists.create') }}\n </button>\n <button\n v-else-if=\"!reallyDelete\"\n class=\"btn button-default footer-button\"\n @click=\"reallyDelete = true\"\n >\n {{ $t('lists.delete') }}\n </button>\n <template v-else>\n {{ $t('lists.really_delete') }}\n <button\n class=\"btn button-default footer-button\"\n @click=\"deleteList\"\n >\n {{ $t('general.yes') }}\n </button>\n <button\n class=\"btn button-default footer-button\"\n @click=\"reallyDelete = false\"\n >\n {{ $t('general.no') }}\n </button>\n </template>\n </div>\n </div>\n</template>\n\n<script src=\"./lists_edit.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.ListEdit {\n --panel-body-padding: 0.5em;\n\n height: calc(100vh - var(--navbar-height));\n overflow: hidden;\n display: flex;\n flex-direction: column;\n\n .list-edit-heading {\n grid-template-columns: auto minmax(50%, 1fr);\n }\n\n .panel-body {\n display: flex;\n flex: 1;\n flex-direction: column;\n overflow: hidden;\n }\n\n .list-member-management {\n flex: 1 0 auto;\n }\n\n .search-icon {\n margin-right: 0.3em;\n }\n\n .users-list {\n padding-bottom: 0.7rem;\n overflow-y: auto;\n }\n\n & .search-list,\n & .members-list {\n overflow: hidden;\n flex-direction: column;\n min-height: 0;\n }\n\n .go-back-button {\n text-align: center;\n line-height: 1;\n height: 100%;\n align-self: start;\n width: var(--__panel-heading-height-inner);\n }\n\n .btn {\n margin: 0 0.5em;\n }\n\n .panel-footer {\n grid-template-columns: minmax(10%, 1fr);\n\n .footer-button {\n min-width: 9em;\n }\n }\n}\n</style>\n","<template>\n <div class=\"ListsUserSearch\">\n <div class=\"input-wrap\">\n <div class=\"input-search\">\n <FAIcon\n class=\"search-icon fa-scale-110 fa-old-padding\"\n icon=\"search\"\n />\n </div>\n <input\n ref=\"search\"\n v-model=\"query\"\n :placeholder=\"$t('lists.search')\"\n @input=\"onInput\"\n >\n </div>\n <div class=\"input-wrap\">\n <Checkbox\n v-model=\"followingOnly\"\n @change=\"onInput\"\n >\n {{ $t('lists.following_only') }}\n </Checkbox>\n </div>\n </div>\n</template>\n\n<script src=\"./lists_user_search.js\"></script>\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.ListsUserSearch {\n .input-wrap {\n display: flex;\n margin: 0.7em 0.5em;\n\n input {\n width: 100%;\n }\n }\n\n .search-icon {\n margin-right: 0.3em;\n }\n}\n\n</style>\n","import { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faSearch,\n faChevronLeft\n} from '@fortawesome/free-solid-svg-icons'\nimport { debounce } from 'lodash'\nimport Checkbox from '../checkbox/checkbox.vue'\n\nlibrary.add(\n faSearch,\n faChevronLeft\n)\n\nconst ListsUserSearch = {\n components: {\n Checkbox\n },\n emits: ['loading', 'loadingDone', 'results'],\n data () {\n return {\n loading: false,\n query: '',\n followingOnly: true\n }\n },\n methods: {\n onInput: debounce(function () {\n this.search(this.query)\n }, 2000),\n search (query) {\n if (!query) {\n this.loading = false\n return\n }\n\n this.loading = true\n this.$emit('loading')\n this.userIds = []\n this.$store.dispatch('search', { q: query, resolve: true, type: 'accounts', following: this.followingOnly })\n .then(data => {\n this.$emit('results', data.accounts.map(a => a.id))\n })\n .finally(() => {\n this.loading = false\n this.$emit('loadingDone')\n })\n }\n }\n}\n\nexport default ListsUserSearch\n","import { render } from \"./lists_user_search.vue?vue&type=template&id=f65a8ae4\"\nimport script from \"./lists_user_search.js?vue&type=script&lang=js\"\nexport * from \"./lists_user_search.js?vue&type=script&lang=js\"\n\nimport \"./lists_user_search.vue?vue&type=style&index=0&id=f65a8ae4&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { mapState, mapGetters } from 'vuex'\nimport BasicUserCard from '../basic_user_card/basic_user_card.vue'\nimport ListsUserSearch from '../lists_user_search/lists_user_search.vue'\nimport PanelLoading from 'src/components/panel_loading/panel_loading.vue'\nimport UserAvatar from '../user_avatar/user_avatar.vue'\nimport TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faSearch,\n faChevronLeft\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faSearch,\n faChevronLeft\n)\n\nconst ListsNew = {\n components: {\n BasicUserCard,\n UserAvatar,\n ListsUserSearch,\n TabSwitcher,\n PanelLoading\n },\n data () {\n return {\n title: '',\n titleDraft: '',\n membersUserIds: [],\n removedUserIds: new Set([]), // users we added for members, to undo\n searchUserIds: [],\n addedUserIds: new Set([]), // users we added from search, to undo\n searchLoading: false,\n reallyDelete: false\n }\n },\n created () {\n if (!this.id) return\n this.$store.dispatch('fetchList', { listId: this.id })\n .then(() => {\n this.title = this.findListTitle(this.id)\n this.titleDraft = this.title\n })\n this.$store.dispatch('fetchListAccounts', { listId: this.id })\n .then(() => {\n this.membersUserIds = this.findListAccounts(this.id)\n this.membersUserIds.forEach(userId => {\n this.$store.dispatch('fetchUserIfMissing', userId)\n })\n })\n },\n computed: {\n id () {\n return this.$route.params.id\n },\n membersUsers () {\n return [...this.membersUserIds, ...this.addedUserIds]\n .map(userId => this.findUser(userId)).filter(user => user)\n },\n searchUsers () {\n return this.searchUserIds.map(userId => this.findUser(userId)).filter(user => user)\n },\n ...mapState({\n currentUser: state => state.users.currentUser\n }),\n ...mapGetters(['findUser', 'findListTitle', 'findListAccounts'])\n },\n methods: {\n onInput () {\n this.search(this.query)\n },\n toggleRemoveMember (user) {\n if (this.removedUserIds.has(user.id)) {\n this.id && this.addUser(user)\n this.removedUserIds.delete(user.id)\n } else {\n this.id && this.removeUser(user.id)\n this.removedUserIds.add(user.id)\n }\n },\n toggleAddFromSearch (user) {\n if (this.addedUserIds.has(user.id)) {\n this.id && this.removeUser(user.id)\n this.addedUserIds.delete(user.id)\n } else {\n this.id && this.addUser(user)\n this.addedUserIds.add(user.id)\n }\n },\n isRemoved (user) {\n return this.removedUserIds.has(user.id)\n },\n isAdded (user) {\n return this.addedUserIds.has(user.id)\n },\n addUser (user) {\n this.$store.dispatch('addListAccount', { accountId: user.id, listId: this.id })\n },\n removeUser (userId) {\n this.$store.dispatch('removeListAccount', { accountId: userId, listId: this.id })\n },\n onSearchLoading (results) {\n this.searchLoading = true\n },\n onSearchLoadingDone (results) {\n this.searchLoading = false\n },\n onSearchResults (results) {\n this.searchLoading = false\n this.searchUserIds = results\n },\n updateListTitle () {\n this.$store.dispatch('setList', { listId: this.id, title: this.titleDraft })\n .then(() => {\n this.title = this.findListTitle(this.id)\n })\n },\n createList () {\n this.$store.dispatch('createList', { title: this.titleDraft })\n .then((list) => {\n return this\n .$store\n .dispatch('setListAccounts', { listId: list.id, accountIds: [...this.addedUserIds] })\n .then(() => list.id)\n })\n .then((listId) => {\n this.$router.push({ name: 'lists-timeline', params: { id: listId } })\n })\n .catch((e) => {\n this.$store.dispatch('pushGlobalNotice', {\n messageKey: 'lists.error',\n messageArgs: [e.message],\n level: 'error'\n })\n })\n },\n deleteList () {\n this.$store.dispatch('deleteList', { listId: this.id })\n this.$router.push({ name: 'lists' })\n }\n }\n}\n\nexport default ListsNew\n","import { render } from \"./lists_edit.vue?vue&type=template&id=722535f4\"\nimport script from \"./lists_edit.js?vue&type=script&lang=js\"\nexport * from \"./lists_edit.js?vue&type=script&lang=js\"\n\nimport \"./lists_edit.vue?vue&type=style&index=0&id=722535f4&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"panel panel-default announcements-page\">\n <div class=\"panel-heading\">\n <span>\n {{ $t('announcements.page_header') }}\n </span>\n </div>\n <div class=\"panel-body\">\n <section\n v-if=\"canPostAnnouncement\"\n >\n <div class=\"post-form\">\n <div class=\"heading\">\n <h4>{{ $t('announcements.post_form_header') }}</h4>\n </div>\n <div class=\"body\">\n <announcement-editor\n :announcement=\"newAnnouncement\"\n :disabled=\"posting\"\n />\n </div>\n <div class=\"footer\">\n <button\n class=\"btn button-default post-button\"\n :disabled=\"posting\"\n @click.prevent=\"postAnnouncement\"\n >\n {{ $t('announcements.post_action') }}\n </button>\n <div\n v-if=\"error\"\n class=\"alert error\"\n >\n {{ $t('announcements.post_error', { error }) }}\n <button\n class=\"button-unstyled\"\n @click=\"clearError\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"times\"\n :title=\"$t('announcements.close_error')\"\n />\n </button>\n </div>\n </div>\n </div>\n </section>\n <section\n v-for=\"announcement in announcements\"\n :key=\"announcement.id\"\n >\n <announcement\n :announcement=\"announcement\"\n />\n </section>\n </div>\n </div>\n</template>\n\n<script src=\"./announcements_page.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.announcements-page {\n .post-form {\n padding: var(--status-margin, $status-margin);\n\n .heading,\n .body {\n margin-bottom: var(--status-margin, $status-margin);\n }\n\n .post-button {\n min-width: 10em;\n }\n }\n}\n</style>\n","<template>\n <div class=\"announcement\">\n <div class=\"heading\">\n <h4>{{ $t('announcements.title') }}</h4>\n </div>\n <div class=\"body\">\n <rich-content\n v-if=\"!editing\"\n :html=\"content\"\n :emoji=\"announcement.emojis\"\n :handle-links=\"true\"\n />\n <announcement-editor\n v-else\n :announcement=\"editedAnnouncement\"\n />\n </div>\n <div class=\"footer\">\n <div\n v-if=\"!editing\"\n class=\"times\"\n >\n <span v-if=\"publishedAt\">\n {{ $t('announcements.published_time_display', { time: publishedAt }) }}\n </span>\n <span v-if=\"startsAt\">\n {{ $t('announcements.start_time_display', { time: startsAt }) }}\n </span>\n <span v-if=\"endsAt\">\n {{ $t('announcements.end_time_display', { time: endsAt }) }}\n </span>\n </div>\n <div\n v-if=\"!editing\"\n class=\"actions\"\n >\n <button\n v-if=\"currentUser\"\n class=\"btn button-default\"\n :class=\"{ toggled: isRead }\"\n :disabled=\"inactive\"\n :title=\"inactive ? $t('announcements.inactive_message') : ''\"\n @click=\"markAsRead\"\n >\n {{ $t('announcements.mark_as_read_action') }}\n </button>\n <button\n v-if=\"canEditAnnouncement\"\n class=\"btn button-default\"\n @click=\"enterEditMode\"\n >\n {{ $t('announcements.edit_action') }}\n </button>\n <button\n v-if=\"canEditAnnouncement\"\n class=\"btn button-default\"\n @click=\"deleteAnnouncement\"\n >\n {{ $t('announcements.delete_action') }}\n </button>\n </div>\n <div\n v-else\n class=\"actions\"\n >\n <button\n class=\"btn button-default\"\n @click=\"submitEdit\"\n >\n {{ $t('announcements.submit_edit_action') }}\n </button>\n <button\n class=\"btn button-default\"\n @click=\"cancelEdit\"\n >\n {{ $t('announcements.cancel_edit_action') }}\n </button>\n <div\n v-if=\"editing && editError\"\n class=\"alert error\"\n >\n {{ $t('announcements.edit_error', { error }) }}\n <button\n class=\"button-unstyled\"\n @click=\"clearError\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"times\"\n :title=\"$t('announcements.close_error')\"\n />\n </button>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./announcement.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.announcement {\n border-bottom: 1px solid var(--border, $fallback--border);\n border-radius: 0;\n padding: var(--status-margin, $status-margin);\n\n .heading,\n .body {\n margin-bottom: var(--status-margin, $status-margin);\n }\n\n .footer {\n display: flex;\n flex-direction: column;\n\n .times {\n display: flex;\n flex-direction: column;\n }\n }\n\n .footer .actions {\n display: flex;\n flex-direction: row;\n justify-content: space-evenly;\n\n .btn {\n flex: 1;\n margin: 1em;\n max-width: 10em;\n }\n }\n}\n</style>\n","<template>\n <div class=\"announcement-editor\">\n <textarea\n ref=\"textarea\"\n v-model=\"announcement.content\"\n class=\"post-textarea\"\n rows=\"1\"\n cols=\"1\"\n :placeholder=\"$t('announcements.post_placeholder')\"\n :disabled=\"disabled\"\n />\n <span class=\"announcement-metadata\">\n <label for=\"announcement-start-time\">{{ $t('announcements.start_time_prompt') }}</label>\n <input\n id=\"announcement-start-time\"\n v-model=\"announcement.startsAt\"\n :type=\"announcement.allDay ? 'date' : 'datetime-local'\"\n :disabled=\"disabled\"\n >\n </span>\n <span class=\"announcement-metadata\">\n <label for=\"announcement-end-time\">{{ $t('announcements.end_time_prompt') }}</label>\n <input\n id=\"announcement-end-time\"\n v-model=\"announcement.endsAt\"\n :type=\"announcement.allDay ? 'date' : 'datetime-local'\"\n :disabled=\"disabled\"\n >\n </span>\n <span class=\"announcement-metadata\">\n <Checkbox\n id=\"announcement-all-day\"\n v-model=\"announcement.allDay\"\n :disabled=\"disabled\"\n />\n <label for=\"announcement-all-day\">{{ $t('announcements.all_day_prompt') }}</label>\n </span>\n </div>\n</template>\n\n<script src=\"./announcement_editor.js\"></script>\n\n<style lang=\"scss\">\n.announcement-editor {\n display: flex;\n align-items: stretch;\n flex-direction: column;\n\n .announcement-metadata {\n margin-top: 0.5em;\n }\n\n .post-textarea {\n resize: vertical;\n height: 10em;\n overflow: none;\n box-sizing: content-box;\n }\n}\n</style>\n","import Checkbox from '../checkbox/checkbox.vue'\n\nconst AnnouncementEditor = {\n components: {\n Checkbox\n },\n props: {\n announcement: Object,\n disabled: Boolean\n }\n}\n\nexport default AnnouncementEditor\n","import { render } from \"./announcement_editor.vue?vue&type=template&id=357f0d7c\"\nimport script from \"./announcement_editor.js?vue&type=script&lang=js\"\nexport * from \"./announcement_editor.js?vue&type=script&lang=js\"\n\nimport \"./announcement_editor.vue?vue&type=style&index=0&id=357f0d7c&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { mapState } from 'vuex'\nimport AnnouncementEditor from '../announcement_editor/announcement_editor.vue'\nimport RichContent from '../rich_content/rich_content.jsx'\nimport localeService from '../../services/locale/locale.service.js'\n\nconst Announcement = {\n components: {\n AnnouncementEditor,\n RichContent\n },\n data () {\n return {\n editing: false,\n editedAnnouncement: {\n content: '',\n startsAt: undefined,\n endsAt: undefined,\n allDay: undefined\n },\n editError: ''\n }\n },\n props: {\n announcement: Object\n },\n computed: {\n ...mapState({\n currentUser: state => state.users.currentUser\n }),\n canEditAnnouncement () {\n return this.currentUser && this.currentUser.privileges.includes('announcements_manage_announcements')\n },\n content () {\n return this.announcement.content\n },\n isRead () {\n return this.announcement.read\n },\n publishedAt () {\n const time = this.announcement.published_at\n if (!time) {\n return\n }\n\n return this.formatTimeOrDate(time, localeService.internalToBrowserLocale(this.$i18n.locale))\n },\n startsAt () {\n const time = this.announcement.starts_at\n if (!time) {\n return\n }\n\n return this.formatTimeOrDate(time, localeService.internalToBrowserLocale(this.$i18n.locale))\n },\n endsAt () {\n const time = this.announcement.ends_at\n if (!time) {\n return\n }\n\n return this.formatTimeOrDate(time, localeService.internalToBrowserLocale(this.$i18n.locale))\n },\n inactive () {\n return this.announcement.inactive\n }\n },\n methods: {\n markAsRead () {\n if (!this.isRead) {\n return this.$store.dispatch('markAnnouncementAsRead', this.announcement.id)\n }\n },\n deleteAnnouncement () {\n return this.$store.dispatch('deleteAnnouncement', this.announcement.id)\n },\n formatTimeOrDate (time, locale) {\n const d = new Date(time)\n return this.announcement.all_day ? d.toLocaleDateString(locale) : d.toLocaleString(locale)\n },\n enterEditMode () {\n this.editedAnnouncement.content = this.announcement.pleroma.raw_content\n this.editedAnnouncement.startsAt = this.announcement.starts_at\n this.editedAnnouncement.endsAt = this.announcement.ends_at\n this.editedAnnouncement.allDay = this.announcement.all_day\n this.editing = true\n },\n submitEdit () {\n this.$store.dispatch('editAnnouncement', {\n id: this.announcement.id,\n ...this.editedAnnouncement\n })\n .then(() => {\n this.editing = false\n })\n .catch(error => {\n this.editError = error.error\n })\n },\n cancelEdit () {\n this.editing = false\n },\n clearError () {\n this.editError = undefined\n }\n }\n}\n\nexport default Announcement\n","import { mapState } from 'vuex'\nimport Announcement from '../announcement/announcement.vue'\nimport AnnouncementEditor from '../announcement_editor/announcement_editor.vue'\n\nconst AnnouncementsPage = {\n components: {\n Announcement,\n AnnouncementEditor\n },\n data () {\n return {\n newAnnouncement: {\n content: '',\n startsAt: undefined,\n endsAt: undefined,\n allDay: false\n },\n posting: false,\n error: undefined\n }\n },\n mounted () {\n this.$store.dispatch('fetchAnnouncements')\n },\n computed: {\n ...mapState({\n currentUser: state => state.users.currentUser\n }),\n announcements () {\n return this.$store.state.announcements.announcements\n },\n canPostAnnouncement () {\n return this.currentUser && this.currentUser.privileges.includes('announcements_manage_announcements')\n }\n },\n methods: {\n postAnnouncement () {\n this.posting = true\n this.$store.dispatch('postAnnouncement', this.newAnnouncement)\n .then(() => {\n this.newAnnouncement.content = ''\n this.startsAt = undefined\n this.endsAt = undefined\n })\n .catch(error => {\n this.error = error.error\n })\n .finally(() => {\n this.posting = false\n })\n },\n clearError () {\n this.error = undefined\n }\n }\n}\n\nexport default AnnouncementsPage\n","import { render } from \"./announcement.vue?vue&type=template&id=c07fccd0\"\nimport script from \"./announcement.js?vue&type=script&lang=js\"\nexport * from \"./announcement.js?vue&type=script&lang=js\"\n\nimport \"./announcement.vue?vue&type=style&index=0&id=c07fccd0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./announcements_page.vue?vue&type=template&id=33196ec2\"\nimport script from \"./announcements_page.js?vue&type=script&lang=js\"\nexport * from \"./announcements_page.js?vue&type=script&lang=js\"\n\nimport \"./announcements_page.vue?vue&type=style&index=0&id=33196ec2&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","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 BookmarkTimeline from 'components/bookmark_timeline/bookmark_timeline.vue'\nimport ConversationPage from 'components/conversation-page/conversation-page.vue'\nimport Interactions from 'components/interactions/interactions.vue'\nimport DMs from 'components/dm_timeline/dm_timeline.vue'\nimport ChatList from 'components/chat_list/chat_list.vue'\nimport Chat from 'components/chat/chat.vue'\nimport UserProfile from 'components/user_profile/user_profile.vue'\nimport Search from 'components/search/search.vue'\nimport Registration from 'components/registration/registration.vue'\nimport PasswordReset from 'components/password_reset/password_reset.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 ShoutPanel from 'components/shout_panel/shout_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'\nimport Lists from 'components/lists/lists.vue'\nimport ListsTimeline from 'components/lists_timeline/lists_timeline.vue'\nimport ListsEdit from 'components/lists_edit/lists_edit.vue'\nimport NavPanel from 'src/components/nav_panel/nav_panel.vue'\nimport AnnouncementsPage from 'components/announcements_page/announcements_page.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 let routes = [\n {\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: 'bookmarks', path: '/bookmarks', component: BookmarkTimeline },\n { name: 'conversation', path: '/notice/:id', component: ConversationPage, meta: { dontScroll: true } },\n {\n name: 'remote-user-profile-acct',\n path: '/remote-users/:_(@)?:username([^/@]+)@:hostname([^/@]+)',\n component: RemoteUserResolver,\n beforeEnter: validateAuthenticatedRoute\n },\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: '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: 'notifications', path: '/:username/notifications', component: Notifications, props: () => ({ disableTeleport: true }), beforeEnter: validateAuthenticatedRoute },\n { name: 'login', path: '/login', component: AuthForm },\n { name: 'shout-panel', path: '/shout-panel', component: ShoutPanel, 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: 'announcements', path: '/announcements', component: AnnouncementsPage },\n { name: 'user-profile', path: '/users/:name', component: UserProfile },\n { name: 'legacy-user-profile', path: '/:name', component: UserProfile },\n { name: 'lists', path: '/lists', component: Lists },\n { name: 'lists-timeline', path: '/lists/:id', component: ListsTimeline },\n { name: 'lists-edit', path: '/lists/:id/edit', component: ListsEdit },\n { name: 'lists-new', path: '/lists/new', component: ListsEdit },\n { name: 'edit-navigation', path: '/nav-edit', component: NavPanel, props: () => ({ forceExpand: true, forceEditMode: true }), beforeEnter: validateAuthenticatedRoute }\n ]\n\n if (store.state.instance.pleromaChatMessagesAvailable) {\n routes = routes.concat([\n { name: 'chat', path: '/users/:username/chats/:recipient_id', component: Chat, meta: { dontScroll: false }, beforeEnter: validateAuthenticatedRoute },\n { name: 'chats', path: '/users/:username/chats', component: ChatList, meta: { dontScroll: false }, beforeEnter: validateAuthenticatedRoute }\n ])\n }\n\n return routes\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 mounted: (el, binding) => {\n if (binding.value) {\n disableBodyScroll(el)\n }\n },\n updated: (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 unmounted: (el) => {\n enableBodyScroll(el)\n }\n}\n\nexport default (Vue) => {\n Vue.directive('body-scroll-lock', directive)\n}\n","import { createApp } from 'vue'\nimport { createRouter, createWebHistory } from 'vue-router'\nimport vClickOutside from 'click-outside-vue3'\nimport VueVirtualScroller from 'vue-virtual-scroller'\nimport 'vue-virtual-scroller/dist/vue-virtual-scroller.css'\n\nimport { FontAwesomeIcon, FontAwesomeLayers } from '@fortawesome/vue-fontawesome'\n\nimport App from '../App.vue'\nimport routes from './routes'\nimport VBodyScrollLock from 'src/directives/body_scroll_lock'\n\nimport { windowWidth, windowHeight } 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, applyConfig } from '../services/style_setter/style_setter.js'\nimport FaviconService from '../services/favicon_service/favicon_service.js'\n\nlet staticInitialResults = null\n\nconst parsedInitialResults = () => {\n if (!document.getElementById('initial-results')) {\n return null\n }\n if (!staticInitialResults) {\n staticInitialResults = JSON.parse(document.getElementById('initial-results').textContent)\n }\n return staticInitialResults\n}\n\nconst decodeUTF8Base64 = (data) => {\n const rawData = atob(data)\n const array = Uint8Array.from([...rawData].map((char) => char.charCodeAt(0)))\n const text = new TextDecoder().decode(array)\n return text\n}\n\nconst preloadFetch = async (request) => {\n const data = parsedInitialResults()\n if (!data || !data[request]) {\n return window.fetch(request)\n }\n const decoded = decodeUTF8Base64(data[request])\n const requestData = JSON.parse(decoded)\n return {\n ok: true,\n json: () => requestData,\n text: () => requestData\n }\n}\n\nconst getInstanceConfig = async ({ store }) => {\n try {\n const res = await preloadFetch('/api/v1/instance')\n if (res.ok) {\n const data = await res.json()\n const textlimit = data.max_toot_chars\n const vapidPublicKey = data.pleroma.vapid_public_key\n\n store.dispatch('setInstanceOption', { name: 'textlimit', value: textlimit })\n store.dispatch('setInstanceOption', { name: 'accountApprovalRequired', value: data.approval_required })\n store.dispatch('setInstanceOption', { name: 'birthdayRequired', value: !!data.pleroma.metadata.birthday_required })\n store.dispatch('setInstanceOption', { name: 'birthdayMinAge', value: data.pleroma.metadata.birthday_min_age || 0 })\n\n if (vapidPublicKey) {\n store.dispatch('setInstanceOption', { name: 'vapidPublicKey', value: vapidPublicKey })\n }\n } else {\n throw (res)\n }\n } catch (error) {\n console.error('Could not load instance config, potentially fatal')\n console.error(error)\n }\n}\n\nconst getBackendProvidedConfig = async ({ store }) => {\n try {\n const res = await window.fetch('/api/pleroma/frontend_configurations')\n if (res.ok) {\n const data = await res.json()\n return data.pleroma_fe\n } else {\n throw (res)\n }\n } catch (error) {\n console.error('Could not load backend-provided frontend 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('hideBotIndication')\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 copyInstanceOption('logoLeft')\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('showFeaturesPanel')\n copyInstanceOption('hideSitename')\n copyInstanceOption('sidebarRight')\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 preloadFetch('/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 let 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 store.dispatch('setInstanceOption', { name: 'staffAccounts', value: nicknames })\n}\n\nconst getNodeInfo = async ({ store }) => {\n try {\n const res = await preloadFetch('/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: 'name', value: metadata.nodeName })\n store.dispatch('setInstanceOption', { name: 'registrationOpen', value: data.openRegistrations })\n store.dispatch('setInstanceOption', { name: 'mediaProxyAvailable', value: features.includes('media_proxy') })\n store.dispatch('setInstanceOption', { name: 'safeDM', value: features.includes('safe_dm_mentions') })\n store.dispatch('setInstanceOption', { name: 'shoutAvailable', value: features.includes('chat') })\n store.dispatch('setInstanceOption', { name: 'pleromaChatMessagesAvailable', value: features.includes('pleroma_chat_messages') })\n store.dispatch('setInstanceOption', { name: 'pleromaCustomEmojiReactionsAvailable', value: features.includes('pleroma_custom_emoji_reactions') })\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: 'editingAvailable', value: features.includes('editing') })\n store.dispatch('setInstanceOption', { name: 'pollLimits', value: metadata.pollLimits })\n store.dispatch('setInstanceOption', { name: 'mailerEnabled', value: metadata.mailerEnabled })\n store.dispatch('setInstanceOption', { name: 'quotingAvailable', value: features.includes('quote_posting') })\n\n const uploadLimits = metadata.uploadLimits\n store.dispatch('setInstanceOption', { name: 'uploadlimit', value: parseInt(uploadLimits.general) })\n store.dispatch('setInstanceOption', { name: 'avatarlimit', value: parseInt(uploadLimits.avatar) })\n store.dispatch('setInstanceOption', { name: 'backgroundlimit', value: parseInt(uploadLimits.background) })\n store.dispatch('setInstanceOption', { name: 'bannerlimit', value: parseInt(uploadLimits.banner) })\n store.dispatch('setInstanceOption', { name: 'fieldsLimits', value: metadata.fieldsLimits })\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([getBackendProvidedConfig({ 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 // eslint-disable-next-line no-async-promise-executor\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 store.dispatch('setLayoutWidth', windowWidth())\n store.dispatch('setLayoutHeight', windowHeight())\n\n FaviconService.initFaviconService()\n\n const overrides = window.___pleromafe_dev_overrides || {}\n const server = (typeof overrides.target !== 'undefined') ? overrides.target : window.location.origin\n store.dispatch('setInstanceOption', { name: 'server', value: server })\n\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 applyConfig(store.state.config)\n\n // Now we can try getting the server settings and logging in\n // Most of these are preloaded into the index.html so blocking is minimized\n await Promise.all([\n checkOAuthToken({ store }),\n getInstancePanel({ store }),\n getNodeInfo({ store }),\n getInstanceConfig({ store })\n ])\n\n // Start fetching things that don't need to block the UI\n store.dispatch('fetchMutes')\n store.dispatch('startFetchingAnnouncements')\n getTOS({ store })\n getStickers({ store })\n\n const router = createRouter({\n history: createWebHistory(),\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 || { left: 0, top: 0 }\n }\n })\n\n const app = createApp(App)\n\n app.use(router)\n app.use(store)\n app.use(i18n)\n\n app.use(vClickOutside)\n app.use(VBodyScrollLock)\n app.use(VueVirtualScroller)\n\n app.component('FAIcon', FontAwesomeIcon)\n app.component('FALayers', FontAwesomeLayers)\n\n // remove after vue 3.3\n app.config.unwrapInjectedRef = true\n\n app.mount('#app')\n\n return app\n}\n\nexport default afterStoreSetup\n","import { createStore } 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 listsModule from './modules/lists.js'\nimport usersModule from './modules/users.js'\nimport apiModule from './modules/api.js'\nimport configModule from './modules/config.js'\nimport profileConfigModule from './modules/profileConfig.js'\nimport serverSideStorageModule from './modules/serverSideStorage.js'\nimport adminSettingsModule from './modules/adminSettings.js'\nimport shoutModule from './modules/shout.js'\nimport oauthModule from './modules/oauth.js'\nimport authFlowModule from './modules/auth_flow.js'\nimport mediaViewerModule from './modules/media_viewer.js'\nimport oauthTokensModule from './modules/oauth_tokens.js'\nimport reportsModule from './modules/reports.js'\nimport pollsModule from './modules/polls.js'\nimport postStatusModule from './modules/postStatus.js'\nimport editStatusModule from './modules/editStatus.js'\nimport statusHistoryModule from './modules/statusHistory.js'\n\nimport chatsModule from './modules/chats.js'\nimport announcementsModule from './modules/announcements.js'\n\nimport { createI18n } 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 afterStoreSetup from './boot/after_store.js'\n\nconst currentLocale = (window.navigator.language || 'en').split('-')[0]\n\nconst i18n = createI18n({\n // By default, use the browser locale, we will update it if neccessary\n locale: 'en',\n fallbackLocale: 'en',\n messages: messages.default\n})\n\nmessages.setLanguage(i18n.global, currentLocale)\n\nconst persistedStateOptions = {\n paths: [\n 'serverSideStorage.cache',\n 'config',\n 'users.lastLoginName',\n 'oauth'\n ]\n};\n\n(async () => {\n let storageError = false\n const plugins = [pushNotifications]\n try {\n const persistedState = await createPersistedState(persistedStateOptions)\n plugins.push(persistedState)\n } catch (e) {\n console.error(e)\n storageError = true\n }\n const store = createStore({\n modules: {\n i18n: {\n getters: {\n i18n: () => i18n.global\n }\n },\n interface: interfaceModule,\n instance: instanceModule,\n // TODO refactor users/statuses modules, they depend on each other\n users: usersModule,\n statuses: statusesModule,\n lists: listsModule,\n api: apiModule,\n config: configModule,\n profileConfig: profileConfigModule,\n serverSideStorage: serverSideStorageModule,\n adminSettings: adminSettingsModule,\n shout: shoutModule,\n oauth: oauthModule,\n authFlow: authFlowModule,\n mediaViewer: mediaViewerModule,\n oauthTokens: oauthTokensModule,\n reports: reportsModule,\n polls: pollsModule,\n postStatus: postStatusModule,\n editStatus: editStatusModule,\n statusHistory: statusHistoryModule,\n chats: chatsModule,\n announcements: announcementsModule\n },\n plugins,\n strict: false // Socket modifies itself, let's ignore this for now.\n // strict: process.env.NODE_ENV !== 'production'\n })\n if (storageError) {\n store.dispatch('pushGlobalNotice', { messageKey: 'errors.storage_unavailable', level: 'error' })\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","import Cookies from 'js-cookie'\nimport { setPreset, applyTheme, applyConfig } from '../services/style_setter/style_setter.js'\nimport messages from '../i18n/messages'\nimport { set } from 'lodash'\nimport localeService from '../services/locale/locale.service.js'\n\nconst BACKEND_LANGUAGE_COOKIE_NAME = 'userLanguage'\n\nconst browserLocale = (window.navigator.language || 'en').split('-')[0]\n\n/* TODO this is a bit messy.\n * We need to declare settings with their types and also deal with\n * instance-default settings in some way, hopefully try to avoid copy-pasta\n * in general.\n */\nexport const multiChoiceProperties = [\n 'postContentType',\n 'subjectLineBehavior',\n 'conversationDisplay', // tree | linear\n 'conversationOtherRepliesButton', // below | inside\n 'mentionLinkDisplay', // short | full_for_remote | full\n 'userPopoverAvatarAction' // close | zoom | open\n]\n\nexport const defaultState = {\n expertLevel: 0, // used to track which settings to show and hide\n colors: {},\n theme: undefined,\n customTheme: undefined,\n customThemeSource: undefined,\n hideISP: false,\n hideInstanceWallpaper: false,\n hideShoutbox: false,\n // bad name: actually hides posts of muted USERS\n hideMutedPosts: undefined, // instance default\n hideMutedThreads: undefined, // instance default\n hideWordFilteredPosts: undefined, // instance default\n muteBotStatuses: 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 streaming: false,\n emojiReactionsOnTimeline: true,\n alwaysShowNewPostButton: false,\n autohideFloatingPostButton: false,\n pauseOnUnfocused: true,\n stopGifs: true,\n replyVisibility: 'all',\n thirdColumnMode: 'notifications',\n notificationVisibility: {\n follows: true,\n mentions: true,\n likes: true,\n repeats: true,\n moves: true,\n emojiReactions: true,\n followRequest: true,\n reports: true,\n chatMention: true,\n polls: true\n },\n webPushNotifications: false,\n muteWords: [],\n highlight: {},\n interfaceLanguage: browserLocale,\n hideScopeNotice: false,\n useStreamingApi: false,\n sidebarRight: undefined, // instance default\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 modalOnRepeat: undefined, // instance default\n modalOnUnfollow: undefined, // instance default\n modalOnBlock: undefined, // instance default\n modalOnMute: undefined, // instance default\n modalOnDelete: undefined, // instance default\n modalOnLogout: undefined, // instance default\n modalOnApproveFollow: undefined, // instance default\n modalOnDenyFollow: undefined, // instance default\n modalOnRemoveUserFromFollowers: undefined, // instance default\n playVideosInModal: false,\n useOneClickNsfw: false,\n useContainFit: true,\n disableStickyHeaders: false,\n showScrollbars: false,\n userPopoverAvatarAction: 'open',\n userPopoverOverlay: false,\n sidebarColumnWidth: '25rem',\n contentColumnWidth: '45rem',\n notifsColumnWidth: '25rem',\n emojiReactionsScale: 1.0,\n navbarColumnStretch: false,\n greentext: undefined, // instance default\n useAtIcon: undefined, // instance default\n mentionLinkDisplay: undefined, // instance default\n mentionLinkShowTooltip: undefined, // instance default\n mentionLinkShowAvatar: undefined, // instance default\n mentionLinkFadeDomain: undefined, // instance default\n mentionLinkShowYous: undefined, // instance default\n mentionLinkBoldenYou: undefined, // instance default\n hidePostStats: undefined, // instance default\n hideBotIndication: undefined, // instance default\n hideUserStats: undefined, // instance default\n virtualScrolling: undefined, // instance default\n sensitiveByDefault: undefined, // instance default\n conversationDisplay: undefined, // instance default\n conversationTreeAdvanced: undefined, // instance default\n conversationOtherRepliesButton: undefined, // instance default\n conversationTreeFadeAncestors: undefined, // instance default\n maxDepthInThread: undefined, // instance default\n autocompleteSelect: 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 defaultConfig (state, getters, rootState, rootGetters) {\n const { instance } = rootState\n return {\n ...defaultState,\n ...Object.fromEntries(\n instanceDefaultProperties.map(key => [key, instance[key]])\n )\n }\n },\n mergedConfig (state, getters, rootState, rootGetters) {\n const { defaultConfig } = rootGetters\n return {\n ...defaultConfig,\n // Do not override with undefined\n ...Object.fromEntries(Object.entries(state).filter(([k, v]) => v !== undefined))\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 state.highlight[user] = { color: color || data.color, type: type || data.type }\n } else {\n delete state.highlight[user]\n }\n }\n },\n actions: {\n loadSettings ({ dispatch }, data) {\n const knownKeys = new Set(Object.keys(defaultState))\n const presentKeys = new Set(Object.keys(data))\n const intersection = new Set()\n for (const elem of presentKeys) {\n if (knownKeys.has(elem)) {\n intersection.add(elem)\n }\n }\n\n intersection.forEach(\n name => dispatch('setOption', { name, value: data[name] })\n )\n },\n setHighlight ({ commit, dispatch }, { user, color, type }) {\n commit('setHighlight', { user, color, type })\n },\n setOption ({ commit, dispatch, state }, { name, value }) {\n const exceptions = new Set([\n 'useStreamingApi'\n ])\n\n if (exceptions.has(name)) {\n switch (name) {\n case 'useStreamingApi': {\n const action = value ? 'enableMastoSockets' : 'disableMastoSockets'\n\n dispatch(action).then(() => {\n commit('setOption', { name: 'useStreamingApi', value })\n }).catch((e) => {\n console.error('Failed starting MastoAPI Streaming socket', e)\n dispatch('disableMastoSockets')\n dispatch('setOption', { name: 'useStreamingApi', value: false })\n })\n }\n }\n } else {\n commit('setOption', { name, value })\n switch (name) {\n case 'theme':\n setPreset(value)\n break\n case 'sidebarColumnWidth':\n case 'contentColumnWidth':\n case 'notifsColumnWidth':\n case 'emojiReactionsScale':\n applyConfig(state)\n break\n case 'customTheme':\n case 'customThemeSource':\n applyTheme(value)\n break\n case 'interfaceLanguage':\n messages.setLanguage(this.getters.i18n, value)\n dispatch('loadUnicodeEmojiData', value)\n Cookies.set(\n BACKEND_LANGUAGE_COOKIE_NAME,\n localeService.internalToBackendLocaleMulti(value)\n )\n break\n case 'thirdColumnMode':\n dispatch('setLayoutWidth', undefined)\n break\n }\n }\n }\n }\n}\n\nexport default config\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 // eslint-disable-next-line\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 const message = val.reduce((acc, message) => {\n const 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, parseSource, parseUser, parseNotification, parseAttachment, parseChat, parseLinkHeaderPagination } from '../entity_normalizer/entity_normalizer.service.js'\nimport { RegistrationError, StatusCodeError } from '../errors/errors'\n\n/* eslint-env browser */\nconst MUTES_IMPORT_URL = '/api/pleroma/mutes_import'\nconst BLOCKS_IMPORT_URL = '/api/pleroma/blocks_import'\nconst FOLLOW_IMPORT_URL = '/api/pleroma/follow_import'\nconst DELETE_ACCOUNT_URL = '/api/pleroma/delete_account'\nconst CHANGE_EMAIL_URL = '/api/pleroma/change_email'\nconst CHANGE_PASSWORD_URL = '/api/pleroma/change_password'\nconst MOVE_ACCOUNT_URL = '/api/pleroma/move_account'\nconst ALIASES_URL = '/api/pleroma/aliases'\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_STATUS_SOURCE_URL = id => `/api/v1/statuses/${id}/source`\nconst MASTODON_STATUS_HISTORY_URL = id => `/api/v1/statuses/${id}/history`\nconst MASTODON_USER_URL = '/api/v1/accounts'\nconst MASTODON_USER_LOOKUP_URL = '/api/v1/accounts/lookup'\nconst MASTODON_USER_RELATIONSHIPS_URL = '/api/v1/accounts/relationships'\nconst MASTODON_USER_TIMELINE_URL = id => `/api/v1/accounts/${id}/statuses`\nconst MASTODON_USER_IN_LISTS = id => `/api/v1/accounts/${id}/lists`\nconst MASTODON_LIST_URL = id => `/api/v1/lists/${id}`\nconst MASTODON_LIST_TIMELINE_URL = id => `/api/v1/timelines/list/${id}`\nconst MASTODON_LIST_ACCOUNTS_URL = id => `/api/v1/lists/${id}/accounts`\nconst MASTODON_TAG_TIMELINE_URL = tag => `/api/v1/timelines/tag/${tag}`\nconst MASTODON_BOOKMARK_TIMELINE_URL = '/api/v1/bookmarks'\nconst MASTODON_USER_BLOCKS_URL = '/api/v1/blocks/'\nconst MASTODON_USER_MUTES_URL = '/api/v1/mutes/'\nconst MASTODON_BLOCK_USER_URL = id => `/api/v1/accounts/${id}/block`\nconst MASTODON_UNBLOCK_USER_URL = id => `/api/v1/accounts/${id}/unblock`\nconst MASTODON_MUTE_USER_URL = id => `/api/v1/accounts/${id}/mute`\nconst MASTODON_UNMUTE_USER_URL = id => `/api/v1/accounts/${id}/unmute`\nconst MASTODON_REMOVE_USER_FROM_FOLLOWERS = id => `/api/v1/accounts/${id}/remove_from_followers`\nconst MASTODON_SUBSCRIBE_USER = id => `/api/v1/pleroma/accounts/${id}/subscribe`\nconst MASTODON_UNSUBSCRIBE_USER = id => `/api/v1/pleroma/accounts/${id}/unsubscribe`\nconst MASTODON_USER_NOTE_URL = id => `/api/v1/accounts/${id}/note`\nconst MASTODON_BOOKMARK_STATUS_URL = id => `/api/v1/statuses/${id}/bookmark`\nconst MASTODON_UNBOOKMARK_STATUS_URL = id => `/api/v1/statuses/${id}/unbookmark`\nconst MASTODON_POST_STATUS_URL = '/api/v1/statuses'\nconst MASTODON_MEDIA_UPLOAD_URL = '/api/v1/media'\nconst MASTODON_VOTE_URL = id => `/api/v1/polls/${id}/votes`\nconst MASTODON_POLL_URL = id => `/api/v1/polls/${id}`\nconst MASTODON_STATUS_FAVORITEDBY_URL = id => `/api/v1/statuses/${id}/favourited_by`\nconst MASTODON_STATUS_REBLOGGEDBY_URL = id => `/api/v1/statuses/${id}/reblogged_by`\nconst MASTODON_PROFILE_UPDATE_URL = '/api/v1/accounts/update_credentials'\nconst MASTODON_REPORT_USER_URL = '/api/v1/reports'\nconst MASTODON_PIN_OWN_STATUS = id => `/api/v1/statuses/${id}/pin`\nconst MASTODON_UNPIN_OWN_STATUS = id => `/api/v1/statuses/${id}/unpin`\nconst MASTODON_MUTE_CONVERSATION = id => `/api/v1/statuses/${id}/mute`\nconst MASTODON_UNMUTE_CONVERSATION = id => `/api/v1/statuses/${id}/unmute`\nconst MASTODON_SEARCH_2 = '/api/v2/search'\nconst MASTODON_USER_SEARCH_URL = '/api/v1/accounts/search'\nconst MASTODON_DOMAIN_BLOCKS_URL = '/api/v1/domain_blocks'\nconst MASTODON_LISTS_URL = '/api/v1/lists'\nconst MASTODON_STREAMING = '/api/v1/streaming'\nconst MASTODON_KNOWN_DOMAIN_LIST_URL = '/api/v1/instance/peers'\nconst MASTODON_ANNOUNCEMENTS_URL = '/api/v1/announcements'\nconst MASTODON_ANNOUNCEMENTS_DISMISS_URL = id => `/api/v1/announcements/${id}/dismiss`\nconst PLEROMA_EMOJI_REACTIONS_URL = id => `/api/v1/pleroma/statuses/${id}/reactions`\nconst PLEROMA_EMOJI_REACT_URL = (id, emoji) => `/api/v1/pleroma/statuses/${id}/reactions/${emoji}`\nconst PLEROMA_EMOJI_UNREACT_URL = (id, emoji) => `/api/v1/pleroma/statuses/${id}/reactions/${emoji}`\nconst PLEROMA_CHATS_URL = '/api/v1/pleroma/chats'\nconst PLEROMA_CHAT_URL = id => `/api/v1/pleroma/chats/by-account-id/${id}`\nconst PLEROMA_CHAT_MESSAGES_URL = id => `/api/v1/pleroma/chats/${id}/messages`\nconst PLEROMA_CHAT_READ_URL = id => `/api/v1/pleroma/chats/${id}/read`\nconst PLEROMA_DELETE_CHAT_MESSAGE_URL = (chatId, messageId) => `/api/v1/pleroma/chats/${chatId}/messages/${messageId}`\nconst PLEROMA_ADMIN_REPORTS = '/api/pleroma/admin/reports'\nconst PLEROMA_BACKUP_URL = '/api/v1/pleroma/backups'\nconst PLEROMA_ANNOUNCEMENTS_URL = '/api/v1/pleroma/admin/announcements'\nconst PLEROMA_POST_ANNOUNCEMENT_URL = '/api/v1/pleroma/admin/announcements'\nconst PLEROMA_EDIT_ANNOUNCEMENT_URL = id => `/api/v1/pleroma/admin/announcements/${id}`\nconst PLEROMA_DELETE_ANNOUNCEMENT_URL = id => `/api/v1/pleroma/admin/announcements/${id}`\n\nconst PLEROMA_ADMIN_CONFIG_URL = '/api/pleroma/admin/config'\nconst PLEROMA_ADMIN_DESCRIPTIONS_URL = '/api/pleroma/admin/config/descriptions'\nconst PLEROMA_ADMIN_FRONTENDS_URL = '/api/pleroma/admin/frontends'\nconst PLEROMA_ADMIN_FRONTENDS_INSTALL_URL = '/api/pleroma/admin/frontends/install'\n\nconst oldfetch = window.fetch\n\nconst fetch = (url, options) => {\n options = options || {}\n const baseUrl = ''\n const fullUrl = baseUrl + url\n options.credentials = 'same-origin'\n return oldfetch(fullUrl, options)\n}\n\nconst promisedRequest = ({ method, url, params, payload, credentials, headers = {} }) => {\n const options = {\n method,\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n ...headers\n }\n }\n if (params) {\n url += '?' + Object.entries(params)\n .map(([key, value]) => encodeURIComponent(key) + '=' + encodeURIComponent(value))\n .join('&')\n }\n if (payload) {\n options.body = JSON.stringify(payload)\n }\n if (credentials) {\n options.headers = {\n ...options.headers,\n ...authHeaders(credentials)\n }\n }\n return fetch(url, options)\n .then((response) => {\n return new Promise((resolve, reject) => response.json()\n .then((json) => {\n if (!response.ok) {\n return reject(new StatusCodeError(response.status, json, { url, options }, response))\n }\n return resolve(json)\n })\n .catch((error) => {\n return reject(new StatusCodeError(response.status, error, { url, options }, response))\n })\n )\n })\n}\n\nconst updateNotificationSettings = ({ credentials, settings }) => {\n const form = new FormData()\n\n each(settings, (value, key) => {\n form.append(key, value)\n })\n\n return fetch(`${NOTIFICATION_SETTINGS_URL}?${new URLSearchParams(settings)}`, {\n headers: authHeaders(credentials),\n method: 'PUT',\n body: form\n }).then((data) => data.json())\n}\n\nconst updateProfileImages = ({ credentials, avatar = null, avatarName = null, banner = null, background = null }) => {\n const form = new FormData()\n if (avatar !== null) {\n if (avatarName !== null) {\n form.append('avatar', avatar, avatarName)\n } else {\n form.append('avatar', avatar)\n }\n }\n if (banner !== null) form.append('header', banner)\n if (background !== null) form.append('pleroma_background_image', background)\n return fetch(MASTODON_PROFILE_UPDATE_URL, {\n headers: authHeaders(credentials),\n method: 'PATCH',\n body: form\n })\n .then((data) => data.json())\n .then((data) => {\n if (data.error) {\n throw new Error(data.error)\n }\n return parseUser(data)\n })\n}\n\nconst updateProfile = ({ credentials, params }) => {\n return promisedRequest({\n url: MASTODON_PROFILE_UPDATE_URL,\n method: 'PATCH',\n payload: params,\n credentials\n }).then((data) => parseUser(data))\n}\n\n// Params needed:\n// nickname\n// email\n// fullname\n// password\n// password_confirm\n//\n// Optional\n// bio\n// homepage\n// location\n// token\n// language\nconst register = ({ params, credentials }) => {\n const { nickname, ...rest } = params\n return fetch(MASTODON_REGISTRATION_URL, {\n method: 'POST',\n headers: {\n ...authHeaders(credentials),\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n nickname,\n locale: 'en_US',\n agreement: true,\n ...rest\n })\n })\n .then((response) => {\n if (response.ok) {\n return response.json()\n } else {\n return response.json().then((error) => { throw new RegistrationError(error) })\n }\n })\n}\n\nconst getCaptcha = () => fetch('/api/pleroma/captcha').then(resp => resp.json())\n\nconst authHeaders = (accessToken) => {\n if (accessToken) {\n return { Authorization: `Bearer ${accessToken}` }\n } else {\n return { }\n }\n}\n\nconst followUser = ({ id, credentials, ...options }) => {\n const 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 const url = MASTODON_UNFOLLOW_URL(id)\n return fetch(url, {\n headers: authHeaders(credentials),\n method: 'POST'\n }).then((data) => data.json())\n}\n\nconst fetchUserInLists = ({ id, credentials }) => {\n const url = MASTODON_USER_IN_LISTS(id)\n return fetch(url, {\n headers: authHeaders(credentials)\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 removeUserFromFollowers = ({ id, credentials }) => {\n return fetch(MASTODON_REMOVE_USER_FROM_FOLLOWERS(id), {\n headers: authHeaders(credentials),\n method: 'POST'\n }).then((data) => data.json())\n}\n\nconst editUserNote = ({ id, credentials, comment }) => {\n return promisedRequest({\n url: MASTODON_USER_NOTE_URL(id),\n credentials,\n payload: {\n comment\n },\n method: 'POST'\n })\n}\n\nconst approveUser = ({ id, credentials }) => {\n const 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 const 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 const url = `${MASTODON_USER_URL}/${id}`\n return promisedRequest({ url, credentials })\n .then((data) => parseUser(data))\n}\n\nconst fetchUserByName = ({ name, credentials }) => {\n return promisedRequest({\n url: MASTODON_USER_LOOKUP_URL,\n credentials,\n params: { acct: name }\n })\n .then(data => data.id)\n .catch(error => {\n if (error && error.statusCode === 404) {\n // Either the backend does not support lookup endpoint,\n // or there is no user with such name. Fallback and treat name as id.\n return name\n } else {\n throw error\n }\n })\n .then(id => fetchUser({ id, credentials }))\n}\n\nconst fetchUserRelationship = ({ id, credentials }) => {\n const url = `${MASTODON_USER_RELATIONSHIPS_URL}/?id=${id}`\n return fetch(url, { headers: authHeaders(credentials) })\n .then((response) => {\n return new Promise((resolve, reject) => response.json()\n .then((json) => {\n if (!response.ok) {\n return reject(new StatusCodeError(response.status, json, { url }, response))\n }\n return resolve(json)\n }))\n })\n}\n\nconst fetchFriends = ({ id, maxId, sinceId, limit = 20, credentials }) => {\n let url = MASTODON_FOLLOWING_URL(id)\n const args = [\n maxId && `max_id=${maxId}`,\n sinceId && `since_id=${sinceId}`,\n limit && `limit=${limit}`,\n 'with_relationships=true'\n ].filter(_ => _).join('&')\n\n url = url + (args ? '?' + args : '')\n return fetch(url, { headers: authHeaders(credentials) })\n .then((data) => data.json())\n .then((data) => data.map(parseUser))\n}\n\nconst exportFriends = ({ id, credentials }) => {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise(async (resolve, reject) => {\n try {\n let friends = []\n let more = true\n while (more) {\n const maxId = friends.length > 0 ? last(friends).id : undefined\n const users = await fetchFriends({ id, maxId, credentials })\n friends = concat(friends, users)\n if (users.length === 0) {\n more = false\n }\n }\n resolve(friends)\n } catch (err) {\n reject(err)\n }\n })\n}\n\nconst fetchFollowers = ({ id, maxId, sinceId, limit = 20, credentials }) => {\n let url = MASTODON_FOLLOWERS_URL(id)\n const args = [\n maxId && `max_id=${maxId}`,\n sinceId && `since_id=${sinceId}`,\n limit && `limit=${limit}`,\n 'with_relationships=true'\n ].filter(_ => _).join('&')\n\n url += args ? '?' + args : ''\n return fetch(url, { headers: authHeaders(credentials) })\n .then((data) => data.json())\n .then((data) => data.map(parseUser))\n}\n\nconst fetchFollowRequests = ({ credentials }) => {\n const url = MASTODON_FOLLOW_REQUESTS_URL\n return fetch(url, { headers: authHeaders(credentials) })\n .then((data) => data.json())\n .then((data) => data.map(parseUser))\n}\n\nconst fetchLists = ({ credentials }) => {\n const url = MASTODON_LISTS_URL\n return fetch(url, { headers: authHeaders(credentials) })\n .then((data) => data.json())\n}\n\nconst createList = ({ title, credentials }) => {\n const url = MASTODON_LISTS_URL\n const headers = authHeaders(credentials)\n headers['Content-Type'] = 'application/json'\n\n return fetch(url, {\n headers,\n method: 'POST',\n body: JSON.stringify({ title })\n }).then((data) => data.json())\n}\n\nconst getList = ({ listId, credentials }) => {\n const url = MASTODON_LIST_URL(listId)\n return fetch(url, { headers: authHeaders(credentials) })\n .then((data) => data.json())\n}\n\nconst updateList = ({ listId, title, credentials }) => {\n const url = MASTODON_LIST_URL(listId)\n const headers = authHeaders(credentials)\n headers['Content-Type'] = 'application/json'\n\n return fetch(url, {\n headers,\n method: 'PUT',\n body: JSON.stringify({ title })\n })\n}\n\nconst getListAccounts = ({ listId, credentials }) => {\n const url = MASTODON_LIST_ACCOUNTS_URL(listId)\n return fetch(url, { headers: authHeaders(credentials) })\n .then((data) => data.json())\n .then((data) => data.map(({ id }) => id))\n}\n\nconst addAccountsToList = ({ listId, accountIds, credentials }) => {\n const url = MASTODON_LIST_ACCOUNTS_URL(listId)\n const headers = authHeaders(credentials)\n headers['Content-Type'] = 'application/json'\n\n return fetch(url, {\n headers,\n method: 'POST',\n body: JSON.stringify({ account_ids: accountIds })\n })\n}\n\nconst removeAccountsFromList = ({ listId, accountIds, credentials }) => {\n const url = MASTODON_LIST_ACCOUNTS_URL(listId)\n const headers = authHeaders(credentials)\n headers['Content-Type'] = 'application/json'\n\n return fetch(url, {\n headers,\n method: 'DELETE',\n body: JSON.stringify({ account_ids: accountIds })\n })\n}\n\nconst deleteList = ({ listId, credentials }) => {\n const url = MASTODON_LIST_URL(listId)\n return fetch(url, {\n method: 'DELETE',\n headers: authHeaders(credentials)\n })\n}\n\nconst fetchConversation = ({ id, credentials }) => {\n const 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 const 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 fetchStatusSource = ({ id, credentials }) => {\n const url = MASTODON_STATUS_SOURCE_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 source', data)\n })\n .then((data) => data.json())\n .then((data) => parseSource(data))\n}\n\nconst fetchStatusHistory = ({ status, credentials }) => {\n const url = MASTODON_STATUS_HISTORY_URL(status.id)\n return promisedRequest({ url, credentials })\n .then((data) => {\n data.reverse()\n return data.map((item) => {\n item.originalStatus = status\n return parseStatus(item)\n })\n })\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,\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,\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\n })\n}\n\nconst fetchTimeline = ({\n timeline,\n credentials,\n since = false,\n until = false,\n userId = false,\n listId = false,\n tag = false,\n withMuted = false,\n replyVisibility = 'all',\n includeTypes = []\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 list: MASTODON_LIST_TIMELINE_URL,\n favorites: MASTODON_USER_FAVORITES_TIMELINE_URL,\n tag: MASTODON_TAG_TIMELINE_URL,\n bookmarks: MASTODON_BOOKMARK_TIMELINE_URL\n }\n const isNotifications = timeline === 'notifications'\n const params = []\n\n let url = timelineUrls[timeline]\n\n if (timeline === 'user' || timeline === 'media') {\n url = url(userId)\n }\n\n if (timeline === 'list') {\n url = url(listId)\n }\n\n if (since) {\n params.push(['since_id', since])\n }\n if (until) {\n params.push(['max_id', until])\n }\n if (tag) {\n url = url(tag)\n }\n if (timeline === 'media') {\n params.push(['only_media', 1])\n }\n if (timeline === 'public') {\n params.push(['local', true])\n }\n if (timeline === 'public' || timeline === 'publicAndExternal') {\n params.push(['only_media', false])\n }\n if (timeline !== 'favorites' && timeline !== 'bookmarks') {\n params.push(['with_muted', withMuted])\n }\n if (replyVisibility !== 'all') {\n params.push(['reply_visibility', replyVisibility])\n }\n if (includeTypes.length > 0) {\n includeTypes.forEach(type => {\n params.push(['include_types[]', type])\n })\n }\n\n params.push(['limit', 20])\n\n const queryString = map(params, (param) => `${param[0]}=${param[1]}`).join('&')\n url += `?${queryString}`\n\n return fetch(url, { headers: authHeaders(credentials) })\n .then(async (response) => {\n const success = response.ok\n\n const data = await response.json()\n\n if (success && !data.errors) {\n const pagination = parseLinkHeaderPagination(response.headers.get('Link'), {\n flakeId: timeline !== 'bookmarks' && timeline !== 'notifications'\n })\n\n return { data: data.map(isNotifications ? parseNotification : parseStatus), pagination }\n } else {\n data.errors ||= []\n data.status = response.status\n data.statusText = response.statusText\n return data\n }\n })\n}\n\nconst fetchPinnedStatuses = ({ id, credentials }) => {\n const url = MASTODON_USER_TIMELINE_URL(id) + '?pinned=true'\n return promisedRequest({ url, credentials })\n .then((data) => data.map(parseStatus))\n}\n\nconst verifyCredentials = (user) => {\n return fetch(MASTODON_LOGIN_URL, {\n headers: authHeaders(user)\n })\n .then((response) => {\n if (response.ok) {\n return response.json()\n } else {\n return {\n error: response\n }\n }\n })\n .then((data) => data.error ? data : parseUser(data))\n}\n\nconst favorite = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_FAVORITE_URL(id), method: 'POST', credentials })\n .then((data) => parseStatus(data))\n}\n\nconst unfavorite = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_UNFAVORITE_URL(id), method: 'POST', credentials })\n .then((data) => parseStatus(data))\n}\n\nconst retweet = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_RETWEET_URL(id), method: 'POST', credentials })\n .then((data) => parseStatus(data))\n}\n\nconst unretweet = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_UNRETWEET_URL(id), method: 'POST', credentials })\n .then((data) => parseStatus(data))\n}\n\nconst bookmarkStatus = ({ id, credentials }) => {\n return promisedRequest({\n url: MASTODON_BOOKMARK_STATUS_URL(id),\n headers: authHeaders(credentials),\n method: 'POST'\n })\n}\n\nconst unbookmarkStatus = ({ id, credentials }) => {\n return promisedRequest({\n url: MASTODON_UNBOOKMARK_STATUS_URL(id),\n headers: authHeaders(credentials),\n method: 'POST'\n })\n}\n\nconst postStatus = ({\n credentials,\n status,\n spoilerText,\n visibility,\n sensitive,\n poll,\n mediaIds = [],\n inReplyToStatusId,\n quoteId,\n contentType,\n preview,\n idempotencyKey\n}) => {\n const form = new FormData()\n const pollOptions = poll.options || []\n\n form.append('status', status)\n form.append('source', 'Pleroma FE')\n if (spoilerText) form.append('spoiler_text', spoilerText)\n if (visibility) form.append('visibility', visibility)\n if (sensitive) form.append('sensitive', sensitive)\n if (contentType) form.append('content_type', contentType)\n mediaIds.forEach(val => {\n form.append('media_ids[]', val)\n })\n if (pollOptions.some(option => option !== '')) {\n const normalizedPoll = {\n expires_in: parseInt(poll.expiresIn, 10),\n multiple: poll.multiple\n }\n Object.keys(normalizedPoll).forEach(key => {\n form.append(`poll[${key}]`, normalizedPoll[key])\n })\n\n pollOptions.forEach(option => {\n form.append('poll[options][]', option)\n })\n }\n if (inReplyToStatusId) {\n form.append('in_reply_to_id', inReplyToStatusId)\n }\n if (quoteId) {\n form.append('quote_id', quoteId)\n }\n if (preview) {\n form.append('preview', 'true')\n }\n\n const postHeaders = authHeaders(credentials)\n if (idempotencyKey) {\n postHeaders['idempotency-key'] = idempotencyKey\n }\n\n return fetch(MASTODON_POST_STATUS_URL, {\n body: form,\n method: 'POST',\n headers: postHeaders\n })\n .then((response) => {\n return response.json()\n })\n .then((data) => data.error ? data : parseStatus(data))\n}\n\nconst editStatus = ({\n id,\n credentials,\n status,\n spoilerText,\n sensitive,\n poll,\n mediaIds = [],\n contentType\n}) => {\n const form = new FormData()\n const pollOptions = poll.options || []\n\n form.append('status', status)\n if (spoilerText) form.append('spoiler_text', spoilerText)\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\n if (pollOptions.some(option => option !== '')) {\n const normalizedPoll = {\n expires_in: parseInt(poll.expiresIn, 10),\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\n const putHeaders = authHeaders(credentials)\n\n return fetch(MASTODON_STATUS_URL(id), {\n body: form,\n method: 'PUT',\n headers: putHeaders\n })\n .then((response) => {\n return response.json()\n })\n .then((data) => data.error ? data : parseStatus(data))\n}\n\nconst deleteStatus = ({ id, credentials }) => {\n return promisedRequest({\n url: MASTODON_DELETE_URL(id),\n credentials,\n method: 'DELETE'\n })\n}\n\nconst uploadMedia = ({ formData, credentials }) => {\n return fetch(MASTODON_MEDIA_UPLOAD_URL, {\n body: formData,\n method: 'POST',\n headers: authHeaders(credentials)\n })\n .then((data) => data.json())\n .then((data) => parseAttachment(data))\n}\n\nconst setMediaDescription = ({ id, description, credentials }) => {\n return promisedRequest({\n url: `${MASTODON_MEDIA_UPLOAD_URL}/${id}`,\n method: 'PUT',\n headers: authHeaders(credentials),\n payload: {\n description\n }\n }).then((data) => parseAttachment(data))\n}\n\nconst importMutes = ({ file, credentials }) => {\n const formData = new FormData()\n formData.append('list', file)\n return fetch(MUTES_IMPORT_URL, {\n body: formData,\n method: 'POST',\n headers: authHeaders(credentials)\n })\n .then((response) => response.ok)\n}\n\nconst importBlocks = ({ file, credentials }) => {\n const formData = new FormData()\n formData.append('list', file)\n return fetch(BLOCKS_IMPORT_URL, {\n body: formData,\n method: 'POST',\n headers: authHeaders(credentials)\n })\n .then((response) => response.ok)\n}\n\nconst importFollows = ({ file, credentials }) => {\n const formData = new FormData()\n formData.append('list', file)\n return fetch(FOLLOW_IMPORT_URL, {\n body: formData,\n method: 'POST',\n headers: authHeaders(credentials)\n })\n .then((response) => response.ok)\n}\n\nconst deleteAccount = ({ credentials, password }) => {\n const form = new FormData()\n\n form.append('password', password)\n\n return fetch(DELETE_ACCOUNT_URL, {\n body: form,\n method: 'POST',\n headers: authHeaders(credentials)\n })\n .then((response) => response.json())\n}\n\nconst changeEmail = ({ credentials, email, password }) => {\n const form = new FormData()\n\n form.append('email', email)\n form.append('password', password)\n\n return fetch(CHANGE_EMAIL_URL, {\n body: form,\n method: 'POST',\n headers: authHeaders(credentials)\n })\n .then((response) => response.json())\n}\n\nconst moveAccount = ({ credentials, password, targetAccount }) => {\n const form = new FormData()\n\n form.append('password', password)\n form.append('target_account', targetAccount)\n\n return fetch(MOVE_ACCOUNT_URL, {\n body: form,\n method: 'POST',\n headers: authHeaders(credentials)\n })\n .then((response) => response.json())\n}\n\nconst addAlias = ({ credentials, alias }) => {\n return promisedRequest({\n url: ALIASES_URL,\n method: 'PUT',\n credentials,\n payload: { alias }\n })\n}\n\nconst deleteAlias = ({ credentials, alias }) => {\n return promisedRequest({\n url: ALIASES_URL,\n method: 'DELETE',\n credentials,\n payload: { alias }\n })\n}\n\nconst listAliases = ({ credentials }) => {\n return promisedRequest({\n url: ALIASES_URL,\n method: 'GET',\n credentials,\n params: {\n _cacheBooster: (new Date()).getTime()\n }\n })\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 = ({ maxId, credentials }) => {\n const query = new URLSearchParams({ with_relationships: true })\n if (maxId) {\n query.append('max_id', maxId)\n }\n return promisedRequest({ url: `${MASTODON_USER_MUTES_URL}?${query.toString()}`, credentials })\n .then((users) => users.map(parseUser))\n}\n\nconst muteUser = ({ id, expiresIn, credentials }) => {\n const payload = {}\n if (expiresIn) {\n payload.expires_in = expiresIn\n }\n return promisedRequest({ url: MASTODON_MUTE_USER_URL(id), credentials, method: 'POST', payload })\n}\n\nconst unmuteUser = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_UNMUTE_USER_URL(id), credentials, method: 'POST' })\n}\n\nconst subscribeUser = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_SUBSCRIBE_USER(id), credentials, method: 'POST' })\n}\n\nconst unsubscribeUser = ({ id, credentials }) => {\n return promisedRequest({ url: MASTODON_UNSUBSCRIBE_USER(id), credentials, method: 'POST' })\n}\n\nconst fetchBlocks = ({ maxId, credentials }) => {\n const query = new URLSearchParams({ with_relationships: true })\n if (maxId) {\n query.append('max_id', maxId)\n }\n return promisedRequest({ url: `${MASTODON_USER_BLOCKS_URL}?${query.toString()}`, credentials })\n .then((users) => users.map(parseUser))\n}\n\nconst addBackup = ({ credentials }) => {\n return promisedRequest({\n url: PLEROMA_BACKUP_URL,\n method: 'POST',\n credentials\n })\n}\n\nconst listBackups = ({ credentials }) => {\n return promisedRequest({\n url: PLEROMA_BACKUP_URL,\n method: 'GET',\n credentials,\n params: {\n _cacheBooster: (new Date()).getTime()\n }\n })\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\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, type }) => {\n let url = MASTODON_SEARCH_2\n const 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 if (type) {\n params.push(['following', type])\n }\n\n params.push(['with_relationships', true])\n\n const queryString = map(params, (param) => `${param[0]}=${param[1]}`).join('&')\n url += `?${queryString}`\n\n return fetch(url, { headers: authHeaders(credentials) })\n .then((data) => {\n if (data.ok) {\n return data\n }\n throw new Error('Error fetching search result', data)\n })\n .then((data) => { return data.json() })\n .then((data) => {\n data.accounts = data.accounts.slice(0, limit).map(u => parseUser(u))\n data.statuses = data.statuses.slice(0, limit).map(s => parseStatus(s))\n return data\n })\n}\n\nconst fetchKnownDomains = ({ credentials }) => {\n return promisedRequest({ url: MASTODON_KNOWN_DOMAIN_LIST_URL, credentials })\n}\n\nconst fetchDomainMutes = ({ credentials }) => {\n return promisedRequest({ url: MASTODON_DOMAIN_BLOCKS_URL, credentials })\n}\n\nconst muteDomain = ({ domain, credentials }) => {\n return promisedRequest({\n url: MASTODON_DOMAIN_BLOCKS_URL,\n method: 'POST',\n payload: { domain },\n credentials\n })\n}\n\nconst unmuteDomain = ({ domain, credentials }) => {\n return promisedRequest({\n url: MASTODON_DOMAIN_BLOCKS_URL,\n method: 'DELETE',\n payload: { domain },\n credentials\n })\n}\n\nconst dismissNotification = ({ credentials, id }) => {\n return promisedRequest({\n url: MASTODON_DISMISS_NOTIFICATION_URL(id),\n method: 'POST',\n payload: { id },\n credentials\n })\n}\n\nconst adminFetchAnnouncements = ({ credentials }) => {\n return promisedRequest({ url: PLEROMA_ANNOUNCEMENTS_URL, credentials })\n}\n\nconst fetchAnnouncements = ({ credentials }) => {\n return promisedRequest({ url: MASTODON_ANNOUNCEMENTS_URL, credentials })\n}\n\nconst dismissAnnouncement = ({ id, credentials }) => {\n return promisedRequest({\n url: MASTODON_ANNOUNCEMENTS_DISMISS_URL(id),\n credentials,\n method: 'POST'\n })\n}\n\nconst announcementToPayload = ({ content, startsAt, endsAt, allDay }) => {\n const payload = { content }\n\n if (typeof startsAt !== 'undefined') {\n payload.starts_at = startsAt ? new Date(startsAt).toISOString() : null\n }\n\n if (typeof endsAt !== 'undefined') {\n payload.ends_at = endsAt ? new Date(endsAt).toISOString() : null\n }\n\n if (typeof allDay !== 'undefined') {\n payload.all_day = allDay\n }\n\n return payload\n}\n\nconst postAnnouncement = ({ credentials, content, startsAt, endsAt, allDay }) => {\n return promisedRequest({\n url: PLEROMA_POST_ANNOUNCEMENT_URL,\n credentials,\n method: 'POST',\n payload: announcementToPayload({ content, startsAt, endsAt, allDay })\n })\n}\n\nconst editAnnouncement = ({ id, credentials, content, startsAt, endsAt, allDay }) => {\n return promisedRequest({\n url: PLEROMA_EDIT_ANNOUNCEMENT_URL(id),\n credentials,\n method: 'PATCH',\n payload: announcementToPayload({ content, startsAt, endsAt, allDay })\n })\n}\n\nconst deleteAnnouncement = ({ id, credentials }) => {\n return promisedRequest({\n url: PLEROMA_DELETE_ANNOUNCEMENT_URL(id),\n credentials,\n method: 'DELETE'\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 'status.update'\n])\n\nconst PLEROMA_STREAMING_EVENTS = new Set([\n 'pleroma:chat_update'\n])\n\n// A thin wrapper around WebSocket API that allows adding a pre-processor to it\n// Uses EventTarget and a CustomEvent to proxy events\nexport const ProcessedWS = ({\n url,\n preprocessor = handleMastoWS,\n id = 'Unknown'\n}) => {\n const eventTarget = new EventTarget()\n const socket = new WebSocket(url)\n if (!socket) throw new Error(`Failed to create socket ${id}`)\n const proxy = (original, eventName, processor = a => a) => {\n original.addEventListener(eventName, (eventData) => {\n eventTarget.dispatchEvent(new CustomEvent(\n eventName,\n { detail: processor(eventData) }\n ))\n })\n }\n socket.addEventListener('open', (wsEvent) => {\n console.debug(`[WS][${id}] Socket connected`, wsEvent)\n })\n socket.addEventListener('error', (wsEvent) => {\n console.debug(`[WS][${id}] Socket errored`, wsEvent)\n })\n socket.addEventListener('close', (wsEvent) => {\n console.debug(\n `[WS][${id}] Socket disconnected with code ${wsEvent.code}`,\n wsEvent\n )\n })\n // Commented code reason: very spammy, uncomment to enable message debug logging\n /*\n socket.addEventListener('message', (wsEvent) => {\n console.debug(\n `[WS][${id}] Message received`,\n wsEvent\n )\n })\n /**/\n\n proxy(socket, 'open')\n proxy(socket, 'close')\n proxy(socket, 'message', preprocessor)\n proxy(socket, 'error')\n\n // 1000 = Normal Closure\n eventTarget.close = () => { socket.close(1000, 'Shutting down socket') }\n eventTarget.getState = () => socket.readyState\n\n return eventTarget\n}\n\nexport const handleMastoWS = (wsEvent) => {\n const { data } = wsEvent\n if (!data) return\n const parsedEvent = JSON.parse(data)\n const { event, payload } = parsedEvent\n if (MASTODON_STREAMING_EVENTS.has(event) || PLEROMA_STREAMING_EVENTS.has(event)) {\n // MastoBE and PleromaBE both send payload for delete as a PLAIN string\n if (event === 'delete') {\n return { event, id: payload }\n }\n const data = payload ? JSON.parse(payload) : null\n if (event === 'update') {\n return { event, status: parseStatus(data) }\n } else if (event === 'status.update') {\n return { event, status: parseStatus(data) }\n } else if (event === 'notification') {\n return { event, notification: parseNotification(data) }\n } else if (event === 'pleroma:chat_update') {\n return { event, chatUpdate: parseChat(data) }\n }\n } else {\n console.warn('Unknown event', wsEvent)\n return null\n }\n}\n\nexport const WSConnectionStatus = Object.freeze({\n JOINED: 1,\n CLOSED: 2,\n ERROR: 3,\n DISABLED: 4,\n STARTING: 5,\n STARTING_INITIAL: 6\n})\n\nconst chats = ({ credentials }) => {\n return fetch(PLEROMA_CHATS_URL, { headers: authHeaders(credentials) })\n .then((data) => data.json())\n .then((data) => {\n return { chats: data.map(parseChat).filter(c => c) }\n })\n}\n\nconst getOrCreateChat = ({ accountId, credentials }) => {\n return promisedRequest({\n url: PLEROMA_CHAT_URL(accountId),\n method: 'POST',\n credentials\n })\n}\n\nconst chatMessages = ({ id, credentials, maxId, sinceId, limit = 20 }) => {\n let url = PLEROMA_CHAT_MESSAGES_URL(id)\n const args = [\n maxId && `max_id=${maxId}`,\n sinceId && `since_id=${sinceId}`,\n limit && `limit=${limit}`\n ].filter(_ => _).join('&')\n\n url = url + (args ? '?' + args : '')\n\n return promisedRequest({\n url,\n method: 'GET',\n credentials\n })\n}\n\nconst sendChatMessage = ({ id, content, mediaId = null, idempotencyKey, credentials }) => {\n const payload = {\n content\n }\n\n if (mediaId) {\n payload.media_id = mediaId\n }\n\n const headers = {}\n\n if (idempotencyKey) {\n headers['idempotency-key'] = idempotencyKey\n }\n\n return promisedRequest({\n url: PLEROMA_CHAT_MESSAGES_URL(id),\n method: 'POST',\n payload,\n credentials,\n headers\n })\n}\n\nconst readChat = ({ id, lastReadId, credentials }) => {\n return promisedRequest({\n url: PLEROMA_CHAT_READ_URL(id),\n method: 'POST',\n payload: {\n last_read_id: lastReadId\n },\n credentials\n })\n}\n\nconst deleteChatMessage = ({ chatId, messageId, credentials }) => {\n return promisedRequest({\n url: PLEROMA_DELETE_CHAT_MESSAGE_URL(chatId, messageId),\n method: 'DELETE',\n credentials\n })\n}\n\nconst setReportState = ({ id, state, credentials }) => {\n // TODO: Can't use promisedRequest because on OK this does not return json\n // See https://git.pleroma.social/pleroma/pleroma-fe/-/merge_requests/1322\n return fetch(PLEROMA_ADMIN_REPORTS, {\n headers: {\n ...authHeaders(credentials),\n Accept: 'application/json',\n 'Content-Type': 'application/json'\n },\n method: 'PATCH',\n body: JSON.stringify({\n reports: [{\n id,\n state\n }]\n })\n })\n .then(data => {\n if (data.status >= 500) {\n throw Error(data.statusText)\n } else if (data.status >= 400) {\n return data.json()\n }\n return data\n })\n .then(data => {\n if (data.errors) {\n throw Error(data.errors[0].message)\n }\n })\n}\n\n// ADMIN STUFF // EXPERIMENTAL\nconst fetchInstanceDBConfig = ({ credentials }) => {\n return fetch(PLEROMA_ADMIN_CONFIG_URL, {\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}\n\nconst fetchInstanceConfigDescriptions = ({ credentials }) => {\n return fetch(PLEROMA_ADMIN_DESCRIPTIONS_URL, {\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}\n\nconst fetchAvailableFrontends = ({ credentials }) => {\n return fetch(PLEROMA_ADMIN_FRONTENDS_URL, {\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}\n\nconst pushInstanceDBConfig = ({ credentials, payload }) => {\n return fetch(PLEROMA_ADMIN_CONFIG_URL, {\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n ...authHeaders(credentials)\n },\n method: 'POST',\n body: JSON.stringify(payload)\n })\n .then((response) => {\n if (response.ok) {\n return response.json()\n } else {\n return {\n error: response\n }\n }\n })\n}\n\nconst installFrontend = ({ credentials, payload }) => {\n return fetch(PLEROMA_ADMIN_FRONTENDS_INSTALL_URL, {\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n ...authHeaders(credentials)\n },\n method: 'POST',\n body: JSON.stringify(payload)\n })\n .then((response) => {\n if (response.ok) {\n return response.json()\n } else {\n return {\n error: response\n }\n }\n })\n}\n\nconst apiService = {\n verifyCredentials,\n fetchTimeline,\n fetchPinnedStatuses,\n fetchConversation,\n fetchStatus,\n fetchStatusSource,\n fetchStatusHistory,\n fetchFriends,\n exportFriends,\n fetchFollowers,\n followUser,\n unfollowUser,\n pinOwnStatus,\n unpinOwnStatus,\n muteConversation,\n unmuteConversation,\n blockUser,\n unblockUser,\n removeUserFromFollowers,\n editUserNote,\n fetchUser,\n fetchUserByName,\n fetchUserRelationship,\n favorite,\n unfavorite,\n retweet,\n unretweet,\n bookmarkStatus,\n unbookmarkStatus,\n postStatus,\n editStatus,\n deleteStatus,\n uploadMedia,\n setMediaDescription,\n fetchMutes,\n muteUser,\n unmuteUser,\n subscribeUser,\n unsubscribeUser,\n fetchBlocks,\n fetchOAuthTokens,\n revokeOAuthToken,\n tagUser,\n untagUser,\n deleteUser,\n addRight,\n deleteRight,\n activateUser,\n deactivateUser,\n register,\n getCaptcha,\n updateProfileImages,\n updateProfile,\n importMutes,\n importBlocks,\n importFollows,\n deleteAccount,\n changeEmail,\n moveAccount,\n addAlias,\n deleteAlias,\n listAliases,\n changePassword,\n settingsMFA,\n mfaDisableOTP,\n generateMfaBackupCodes,\n mfaSetupOTP,\n mfaConfirmOTP,\n addBackup,\n listBackups,\n fetchFollowRequests,\n fetchLists,\n createList,\n getList,\n updateList,\n getListAccounts,\n addAccountsToList,\n removeAccountsFromList,\n deleteList,\n approveUser,\n denyUser,\n suggestions,\n markNotificationsAsSeen,\n dismissNotification,\n vote,\n fetchPoll,\n fetchFavoritedByUsers,\n fetchRebloggedByUsers,\n fetchEmojiReactions,\n reactWithEmoji,\n unreactWithEmoji,\n reportUser,\n updateNotificationSettings,\n search2,\n searchUsers,\n fetchKnownDomains,\n fetchDomainMutes,\n muteDomain,\n unmuteDomain,\n chats,\n getOrCreateChat,\n chatMessages,\n sendChatMessage,\n readChat,\n deleteChatMessage,\n setReportState,\n fetchUserInLists,\n fetchAnnouncements,\n dismissAnnouncement,\n postAnnouncement,\n editAnnouncement,\n deleteAnnouncement,\n adminFetchAnnouncements,\n fetchInstanceDBConfig,\n fetchInstanceConfigDescriptions,\n fetchAvailableFrontends,\n pushInstanceDBConfig,\n installFrontend\n}\n\nexport default apiService\n","import { kebabCase } from 'lodash'\n\nconst propsToNative = props => Object.keys(props).reduce((acc, cur) => {\n acc[kebabCase(cur)] = props[cur]\n return acc\n}, {})\n\nexport { propsToNative }\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 ? {\n r: parseInt(result[1], 16),\n g: parseInt(result[2], 16),\n b: parseInt(result[3], 16)\n }\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 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","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 const r = { num: round(d / YEAR), key: 'time.unit.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.unit.seconds'\n } else if (d < HOUR) {\n r.num = round(d / MINUTE)\n r.key = 'time.unit.minutes'\n } else if (d < DAY) {\n r.num = round(d / HOUR)\n r.key = 'time.unit.hours'\n } else if (d < WEEK) {\n r.num = round(d / DAY)\n r.key = 'time.unit.days'\n } else if (d < MONTH) {\n r.num = round(d / WEEK)\n r.key = 'time.unit.weeks'\n } else if (d < YEAR) {\n r.num = round(d / MONTH)\n r.key = 'time.unit.months'\n }\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\nexport const unitToSeconds = (unit, amount) => {\n switch (unit) {\n case 'minutes': return 0.001 * amount * MINUTE\n case 'hours': return 0.001 * amount * HOUR\n case 'days': return 0.001 * amount * DAY\n }\n}\n\nexport const secondsToUnit = (unit, amount) => {\n switch (unit) {\n case 'minutes': return (1000 * amount) / MINUTE\n case 'hours': return (1000 * amount) / HOUR\n case 'days': return (1000 * amount) / DAY\n }\n}\n","export const showDesktopNotification = (rootState, desktopNotificationOpts) => {\n if (!('Notification' in window && window.Notification.permission === 'granted')) return\n if (rootState.statuses.notifications.desktopNotificationSilence) { return }\n\n const desktopNotification = new window.Notification(desktopNotificationOpts.title, desktopNotificationOpts)\n // Chrome is known for not closing notifications automatically\n // according to MDN, anyway.\n setTimeout(desktopNotification.close.bind(desktopNotification), 5000)\n}\n","import escape from 'escape-html'\nimport parseLinkHeader from 'parse-link-header'\nimport { isStatusNotification } from '../notification_utils/notification_utils.js'\nimport punycode from 'punycode.js'\n\n/** NOTICE! **\n * Do not initialize UI-generated data here.\n * It will override existing data.\n *\n * i.e. user.pinnedStatusIds was set to [] here\n * UI code would update it with data but upon next user fetch\n * it would be reverted back to []\n */\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 = Object.prototype.hasOwnProperty.call(data, 'acct')\n // case for users in \"mentions\" property for statuses in MastoAPI\n const mastoShort = masto && !Object.prototype.hasOwnProperty.call(data, 'avatar')\n\n output.inLists = null\n output.id = String(data.id)\n output._original = data // used for server-side settings\n\n if (masto) {\n output.screen_name = data.acct\n output.fqn = data.fqn\n output.statusnet_profile_url = data.url\n\n // There's nothing else to get\n if (mastoShort) {\n return output\n }\n\n output.emoji = data.emojis\n output.name = escape(data.display_name)\n output.name_html = output.name\n output.name_unescaped = data.display_name\n\n output.description = data.note\n // TODO cleanup this shit, output.description is overriden with source data\n output.description_html = data.note\n\n output.fields = data.fields\n output.fields_html = data.fields.map(field => {\n return {\n name: escape(field.name),\n value: field.value\n }\n })\n output.fields_text = data.fields.map(field => {\n return {\n name: unescape(field.name.replace(/<[^>]*>/g, '')),\n value: unescape(field.value.replace(/<[^>]*>/g, ''))\n }\n })\n\n // Utilize avatar_static for gif avatars?\n output.profile_image_url = data.avatar\n output.profile_image_url_original = data.avatar\n\n // Same, utilize header_static?\n output.cover_photo = data.header\n\n output.friends_count = data.following_count\n\n output.bot = data.bot\n\n if (data.pleroma) {\n if (data.pleroma.settings_store) {\n output.storage = data.pleroma.settings_store['pleroma-fe']\n }\n const relationship = data.pleroma.relationship\n\n output.background_image = data.pleroma.background_image\n output.favicon = data.pleroma.favicon\n output.token = data.pleroma.chat_token\n\n if (relationship) {\n output.relationship = relationship\n }\n\n output.allow_following_move = data.pleroma.allow_following_move\n\n output.hide_follows = data.pleroma.hide_follows\n output.hide_followers = data.pleroma.hide_followers\n output.hide_follows_count = data.pleroma.hide_follows_count\n output.hide_followers_count = data.pleroma.hide_followers_count\n\n output.rights = {\n moderator: data.pleroma.is_moderator,\n admin: data.pleroma.is_admin\n }\n // TODO: Clean up in UI? This is duplication from what BE does for qvitterapi\n if (output.rights.admin) {\n output.role = 'admin'\n } else if (output.rights.moderator) {\n output.role = 'moderator'\n } else {\n output.role = 'member'\n }\n\n output.birthday = data.pleroma.birthday\n\n if (data.pleroma.privileges) {\n output.privileges = data.pleroma.privileges\n } else if (data.pleroma.is_admin) {\n output.privileges = [\n 'users_read',\n 'users_manage_invites',\n 'users_manage_activation_state',\n 'users_manage_tags',\n 'users_manage_credentials',\n 'users_delete',\n 'messages_read',\n 'messages_delete',\n 'instances_delete',\n 'reports_manage_reports',\n 'moderation_log_read',\n 'announcements_manage_announcements',\n 'emoji_manage_emoji',\n 'statistics_read'\n ]\n } else if (data.pleroma.is_moderator) {\n output.privileges = [\n 'messages_delete',\n 'reports_manage_reports'\n ]\n } else {\n output.privileges = []\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 output.show_birthday = data.pleroma.show_birthday\n }\n }\n\n // TODO: handle is_local\n output.is_local = !output.screen_name.includes('@')\n } else {\n output.screen_name = data.screen_name\n\n output.name = data.name\n output.name_html = data.name_html\n\n output.description = data.description\n output.description_html = data.description_html\n\n output.profile_image_url = data.profile_image_url\n output.profile_image_url_original = data.profile_image_url_original\n\n output.cover_photo = data.cover_photo\n\n output.friends_count = data.friends_count\n\n // output.bot = ??? missing\n\n output.statusnet_profile_url = data.statusnet_profile_url\n\n output.is_local = data.is_local\n output.role = data.role\n output.show_role = data.show_role\n\n if (data.rights) {\n output.rights = {\n moderator: data.rights.delete_others_notice,\n admin: data.rights.admin\n }\n }\n output.no_rich_text = data.no_rich_text\n output.default_scope = data.default_scope\n output.hide_follows = data.hide_follows\n output.hide_followers = data.hide_followers\n output.hide_follows_count = data.hide_follows_count\n output.hide_followers_count = data.hide_followers_count\n output.background_image = data.background_image\n // Websocket token\n output.token = data.token\n\n // Convert relationsip data to expected format\n output.relationship = {\n muting: data.muted,\n blocking: data.statusnet_blocking,\n followed_by: data.follows_you,\n following: data.following\n }\n }\n\n output.created_at = new Date(data.created_at)\n output.locked = data.locked\n output.followers_count = data.followers_count\n output.statuses_count = data.statuses_count\n\n if (data.pleroma) {\n output.follow_request_count = data.pleroma.follow_request_count\n\n output.tags = data.pleroma.tags\n\n // deactivated was changed to is_active in Pleroma 2.3.0\n // so check if is_active is present\n output.deactivated = typeof data.pleroma.is_active !== 'undefined'\n ? !data.pleroma.is_active // new backend\n : data.pleroma.deactivated // old backend\n\n output.notification_settings = data.pleroma.notification_settings\n output.unread_chat_count = data.pleroma.unread_chat_count\n }\n\n output.tags = output.tags || []\n output.rights = output.rights || {}\n output.notification_settings = output.notification_settings || {}\n\n // Convert punycode to unicode for UI\n output.screen_name_ui = output.screen_name\n if (output.screen_name && output.screen_name.includes('@')) {\n const parts = output.screen_name.split('@')\n const unicodeDomain = punycode.toUnicode(parts[1])\n if (unicodeDomain !== parts[1]) {\n // Add some identifier so users can potentially spot spoofing attempts:\n // lain.com and xn--lin-6cd.com would appear identical otherwise.\n output.screen_name_ui_contains_non_ascii = true\n output.screen_name_ui = [parts[0], unicodeDomain].join('@')\n } else {\n output.screen_name_ui_contains_non_ascii = false\n }\n }\n\n return output\n}\n\nexport const parseAttachment = (data) => {\n const output = {}\n const masto = !Object.prototype.hasOwnProperty.call(data, 'oembed')\n\n if (masto) {\n // Not exactly same...\n output.mimetype = data.pleroma ? data.pleroma.mime_type : data.type\n output.meta = data.meta // not present in BE yet\n output.id = data.id\n } else {\n output.mimetype = data.mimetype\n // output.meta = ??? missing\n }\n\n output.url = data.url\n output.large_thumb_url = data.preview_url\n output.description = data.description\n\n return output\n}\n\nexport const parseSource = (data) => {\n const output = {}\n\n output.text = data.text\n output.spoiler_text = data.spoiler_text\n output.content_type = data.content_type\n\n return output\n}\n\nexport const parseStatus = (data) => {\n const output = {}\n const masto = Object.prototype.hasOwnProperty.call(data, 'account')\n\n if (masto) {\n output.favorited = data.favourited\n output.fave_num = data.favourites_count\n\n output.repeated = data.reblogged\n output.repeat_num = data.reblogs_count\n\n output.bookmarked = data.bookmarked\n\n output.type = data.reblog ? 'retweet' : 'status'\n output.nsfw = data.sensitive\n\n output.raw_html = data.content\n output.emojis = data.emojis\n\n output.tags = data.tags\n\n output.edited_at = data.edited_at\n\n if (data.pleroma) {\n const { pleroma } = data\n output.text = pleroma.content ? data.pleroma.content['text/plain'] : data.content\n output.summary = pleroma.spoiler_text ? data.pleroma.spoiler_text['text/plain'] : data.spoiler_text\n output.statusnet_conversation_id = data.pleroma.conversation_id\n output.is_local = pleroma.local\n output.in_reply_to_screen_name = data.pleroma.in_reply_to_account_acct\n output.thread_muted = pleroma.thread_muted\n output.emoji_reactions = pleroma.emoji_reactions\n output.parent_visible = pleroma.parent_visible === undefined ? true : pleroma.parent_visible\n output.quote = pleroma.quote ? parseStatus(pleroma.quote) : undefined\n output.quote_id = pleroma.quote_id ? pleroma.quote_id : (output.quote ? output.quote.id : undefined)\n output.quote_url = pleroma.quote_url\n output.quote_visible = pleroma.quote_visible\n } else {\n output.text = data.content\n output.summary = data.spoiler_text\n }\n\n output.in_reply_to_status_id = data.in_reply_to_id\n output.in_reply_to_user_id = data.in_reply_to_account_id\n output.replies_count = data.replies_count\n\n if (output.type === 'retweet') {\n output.retweeted_status = parseStatus(data.reblog)\n }\n\n output.summary_raw_html = escape(data.spoiler_text)\n output.external_url = data.url\n output.poll = data.poll\n if (output.poll) {\n output.poll.options = (output.poll.options || []).map(field => ({\n ...field,\n title_html: escape(field.title)\n }))\n }\n output.pinned = data.pinned\n output.muted = data.muted\n } else {\n output.favorited = data.favorited\n output.fave_num = data.fave_num\n\n output.repeated = data.repeated\n output.repeat_num = data.repeat_num\n\n // catchall, temporary\n // Object.assign(output, data)\n\n output.type = qvitterStatusType(data)\n\n if (data.nsfw === undefined) {\n output.nsfw = isNsfw(data)\n if (data.retweeted_status) {\n output.nsfw = data.retweeted_status.nsfw\n }\n } else {\n output.nsfw = data.nsfw\n }\n\n output.raw_html = data.statusnet_html\n output.text = data.text\n\n output.in_reply_to_status_id = data.in_reply_to_status_id\n output.in_reply_to_user_id = data.in_reply_to_user_id\n output.in_reply_to_screen_name = data.in_reply_to_screen_name\n output.statusnet_conversation_id = data.statusnet_conversation_id\n\n if (output.type === 'retweet') {\n output.retweeted_status = parseStatus(data.retweeted_status)\n }\n\n output.summary = data.summary\n output.summary_html = data.summary_html\n output.external_url = data.external_url\n output.is_local = data.is_local\n }\n\n output.id = String(data.id)\n output.visibility = data.visibility\n output.card = data.card\n output.created_at = new Date(data.created_at)\n\n // Converting to string, the right way.\n output.in_reply_to_status_id = output.in_reply_to_status_id\n ? String(output.in_reply_to_status_id)\n : null\n output.in_reply_to_user_id = output.in_reply_to_user_id\n ? String(output.in_reply_to_user_id)\n : null\n\n output.user = parseUser(masto ? data.account : data.user)\n\n output.attentions = ((masto ? data.mentions : data.attentions) || []).map(parseUser)\n\n output.attachments = ((masto ? data.media_attachments : data.attachments) || [])\n .map(parseAttachment)\n\n const retweetedStatus = masto ? data.reblog : data.retweeted_status\n if (retweetedStatus) {\n output.retweeted_status = parseStatus(retweetedStatus)\n }\n\n output.favoritedBy = []\n output.rebloggedBy = []\n\n if (Object.prototype.hasOwnProperty.call(data, 'originalStatus')) {\n Object.assign(output, data.originalStatus)\n }\n\n return output\n}\n\nexport const parseNotification = (data) => {\n const mastoDict = {\n favourite: 'like',\n reblog: 'repeat'\n }\n const masto = !Object.prototype.hasOwnProperty.call(data, 'ntype')\n const output = {}\n\n if (masto) {\n output.type = mastoDict[data.type] || data.type\n output.seen = data.pleroma.is_seen\n output.status = isStatusNotification(output.type) ? parseStatus(data.status) : null\n output.action = output.status // TODO: Refactor, this is unneeded\n output.target = output.type !== 'move'\n ? null\n : parseUser(data.target)\n output.from_profile = parseUser(data.account)\n output.emoji = data.emoji\n output.emoji_url = data.emoji_url\n if (data.report) {\n output.report = data.report\n output.report.content = data.report.content\n output.report.acct = parseUser(data.report.account)\n output.report.actor = parseUser(data.report.actor)\n output.report.statuses = data.report.statuses.map(parseStatus)\n }\n } else {\n const parsedNotice = parseStatus(data.notice)\n output.type = data.ntype\n output.seen = Boolean(data.is_seen)\n output.status = output.type === 'like'\n ? parseStatus(data.notice.favorited_status)\n : parsedNotice\n output.action = parsedNotice\n output.from_profile = output.type === 'pleroma:chat_mention' ? parseUser(data.account) : parseUser(data.from_profile)\n }\n\n output.created_at = new Date(data.created_at)\n output.id = parseInt(data.id)\n\n return output\n}\n\nconst isNsfw = (status) => {\n const nsfwRegex = /#nsfw/i\n return (status.tags || []).includes('nsfw') || !!(status.text || '').match(nsfwRegex)\n}\n\nexport const parseLinkHeaderPagination = (linkHeader, opts = {}) => {\n const flakeId = opts.flakeId\n const parsedLinkHeader = parseLinkHeader(linkHeader)\n if (!parsedLinkHeader) return\n const maxId = parsedLinkHeader.next.max_id\n const minId = parsedLinkHeader.prev.min_id\n\n return {\n maxId: flakeId ? maxId : parseInt(maxId, 10),\n minId: flakeId ? minId : parseInt(minId, 10)\n }\n}\n\nexport const parseChat = (chat) => {\n const output = {}\n output.id = chat.id\n output.account = parseUser(chat.account)\n output.unread = chat.unread\n output.lastMessage = parseChatMessage(chat.last_message)\n output.updated_at = new Date(chat.updated_at)\n return output\n}\n\nexport const parseChatMessage = (message) => {\n if (!message) { return }\n if (message.isNormalized) { return message }\n const output = message\n output.id = message.id\n output.created_at = new Date(message.created_at)\n output.chat_id = message.chat_id\n output.emojis = message.emojis\n output.content = message.content\n if (message.attachment) {\n output.attachments = [parseAttachment(message.attachment)]\n } else {\n output.attachments = []\n }\n output.pending = !!message.pending\n output.error = false\n output.idempotency_key = message.idempotency_key\n output.isNormalized = true\n return output\n}\n","const createFaviconService = () => {\n const favicons = []\n const faviconWidth = 128\n const faviconHeight = 128\n const badgeRadius = 32\n\n const initFaviconService = () => {\n const nodes = document.querySelectorAll('link[rel=\"icon\"]')\n nodes.forEach(favicon => {\n if (favicon) {\n const favcanvas = document.createElement('canvas')\n favcanvas.width = faviconWidth\n favcanvas.height = faviconHeight\n const favimg = new Image()\n favimg.crossOrigin = 'anonymous'\n favimg.src = favicon.href\n const favcontext = favcanvas.getContext('2d')\n favicons.push({ favcanvas, favimg, favcontext, favicon })\n }\n })\n }\n\n const isImageLoaded = (img) => img.complete && img.naturalHeight !== 0\n\n const clearFaviconBadge = () => {\n if (favicons.length === 0) return\n favicons.forEach(({ favimg, favcanvas, favcontext, favicon }) => {\n if (!favimg || !favcontext || !favicon) return\n\n favcontext.clearRect(0, 0, faviconWidth, faviconHeight)\n if (isImageLoaded(favimg)) {\n favcontext.drawImage(favimg, 0, 0, favimg.width, favimg.height, 0, 0, faviconWidth, faviconHeight)\n }\n favicon.href = favcanvas.toDataURL('image/png')\n })\n }\n\n const drawFaviconBadge = () => {\n if (favicons.length === 0) return\n clearFaviconBadge()\n favicons.forEach(({ favimg, favcanvas, favcontext, favicon }) => {\n if (!favimg || !favcontext || !favcontext) return\n\n const style = getComputedStyle(document.body)\n const badgeColor = `${style.getPropertyValue('--badgeNotification') || 'rgb(240, 100, 100)'}`\n\n if (isImageLoaded(favimg)) {\n favcontext.drawImage(favimg, 0, 0, favimg.width, favimg.height, 0, 0, faviconWidth, faviconHeight)\n }\n favcontext.fillStyle = badgeColor\n favcontext.beginPath()\n favcontext.arc(faviconWidth - badgeRadius, badgeRadius, badgeRadius, 0, 2 * Math.PI, false)\n favcontext.fill()\n favicon.href = favcanvas.toDataURL('image/png')\n })\n }\n\n return {\n initFaviconService,\n clearFaviconBadge,\n drawFaviconBadge\n }\n}\n\nconst FaviconService = createFaviconService()\n\nexport default FaviconService\n","const fileSizeFormat = (numArg) => {\n const units = ['B', 'KiB', 'MiB', 'GiB', 'TiB']\n let num = numArg\n if (num < 1) {\n return num + ' ' + units[0]\n }\n\n const 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 const unit = units[exponent]\n return { num, unit }\n}\nconst fileSizeFormatService = {\n fileSizeFormat\n}\nexport default fileSizeFormatService\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.\nexport const fileType = mimetype => {\n if (mimetype.match(/flash/)) {\n return 'flash'\n }\n\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\nexport const fileTypeExt = url => {\n if (url.match(/\\.(png|jpe?g|gif|webp|avif)$/)) {\n return 'image'\n }\n if (url.match(/\\.(ogv|mp4|webm|mov)$/)) {\n return 'video'\n }\n if (url.match(/\\.(it|s3m|mod|umx|mp3|aac|m4a|flac|alac|ogg|oga|opus|wav|ape|midi?)$/)) {\n return 'audio'\n }\n return 'unknown'\n}\n\nexport const fileMatchesSomeType = (types, file) =>\n types.some(type => fileType(file.mimetype) === type)\n\nconst fileTypeService = {\n fileType,\n fileTypeExt,\n fileMatchesSomeType\n}\n\nexport default fileTypeService\n","import languagesObject from '../../i18n/messages'\nimport ISO6391 from 'iso-639-1'\nimport _ from 'lodash'\n\nconst specialLanguageCodes = {\n ja_easy: 'ja',\n zh_Hant: 'zh-HANT',\n zh: 'zh-Hans'\n}\n\nconst internalToBrowserLocale = code => specialLanguageCodes[code] || code\n\nconst internalToBackendLocale = code => internalToBrowserLocale(code).replace('_', '-')\nconst internalToBackendLocaleMulti = codes => {\n const langs = Array.isArray(codes) ? codes : [codes]\n return langs.map(internalToBackendLocale).join(',')\n}\n\nconst getLanguageName = (code) => {\n const specialLanguageNames = {\n ja_easy: 'やさしいにほんご',\n 'nan-TW': '臺語(閩南語)',\n zh: '简体中文',\n zh_Hant: '繁體中文'\n }\n const languageName = specialLanguageNames[code] || ISO6391.getNativeName(code)\n const browserLocale = internalToBrowserLocale(code)\n return languageName.charAt(0).toLocaleUpperCase(browserLocale) + languageName.slice(1)\n}\n\nconst languages = _.map(languagesObject.languages, (code) => ({ code, name: getLanguageName(code) })).sort((a, b) => a.name.localeCompare(b.name))\n\nconst localeService = {\n internalToBrowserLocale,\n internalToBackendLocale,\n internalToBackendLocaleMulti,\n languages,\n getLanguageName\n}\n\nexport default localeService\n","import { filter, sortBy, includes } from 'lodash'\nimport { muteWordHits } from '../status_parser/status_parser.js'\nimport { showDesktopNotification } from '../desktop_notification_utils/desktop_notification_utils.js'\n\nexport const notificationsFromStore = store => store.state.statuses.notifications.data\n\nexport const visibleTypes = store => {\n const rootState = store.rootState || store.state\n\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.followRequest && 'follow_request',\n rootState.config.notificationVisibility.moves && 'move',\n rootState.config.notificationVisibility.emojiReactions && 'pleroma:emoji_reaction',\n rootState.config.notificationVisibility.reports && 'pleroma:report',\n rootState.config.notificationVisibility.polls && 'poll'\n ].filter(_ => _))\n}\n\nconst statusNotifications = ['like', 'mention', 'repeat', 'pleroma:emoji_reaction', 'poll']\n\nexport const isStatusNotification = (type) => includes(statusNotifications, type)\n\nexport const isValidNotification = (notification) => {\n if (isStatusNotification(notification.type) && !notification.status) {\n return false\n }\n return true\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 isMutedNotification = (store, notification) => {\n if (!notification.status) return\n return notification.status.muted || muteWordHits(notification.status, store.rootGetters.mergedConfig.muteWords).length > 0\n}\n\nexport const maybeShowNotification = (store, notification) => {\n const rootState = store.rootState || store.state\n\n if (notification.seen) return\n if (!visibleTypes(store).includes(notification.type)) return\n if (notification.type === 'mention' && isMutedNotification(store, notification)) return\n\n const notificationObject = prepareNotificationObject(notification, store.rootGetters.i18n)\n showDesktopNotification(rootState, notificationObject)\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\nexport const prepareNotificationObject = (notification, i18n) => {\n const notifObj = {\n tag: notification.id\n }\n const status = notification.status\n const title = notification.from_profile.name\n notifObj.title = title\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 case 'pleroma:report':\n i18nString = 'submitted_report'\n break\n case 'poll':\n i18nString = 'poll_ended'\n break\n }\n\n if (notification.type === 'pleroma:emoji_reaction') {\n notifObj.body = i18n.t('notifications.reacted_with', [notification.emoji])\n } else if (i18nString) {\n notifObj.body = 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 return notifObj\n}\n","import apiService from '../api/api.service.js'\nimport { promiseInterval } from '../promise_interval/promise_interval.js'\n\n// For using include_types when fetching notifications.\n// Note: chat_mention excluded as pleroma-fe polls them separately\nconst mastoApiNotificationTypes = [\n 'mention',\n 'favourite',\n 'reblog',\n 'follow',\n 'move',\n 'pleroma:emoji_reaction',\n 'pleroma:report'\n]\n\nconst update = ({ store, notifications, older }) => {\n store.dispatch('addNewNotifications', { notifications, older })\n}\n\nconst fetchAndUpdate = ({ store, credentials, older = false, since }) => {\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.includeTypes = mastoApiNotificationTypes\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 (since === undefined && timelineData.maxId !== Number.POSITIVE_INFINITY) {\n args.since = timelineData.maxId\n } else if (since !== null) {\n args.since = since\n }\n const result = fetchNotifications({ store, args, older })\n\n // If there's any unread notifications, try fetch notifications since\n // the newest read notification to check if any of the unread notifs\n // have changed their 'seen' state (marked as read in another session), so\n // we can update the state in this session to mark them as read as well.\n // The normal maxId-check does not tell if older notifications have changed\n const notifications = timelineData.data\n const readNotifsIds = notifications.filter(n => n.seen).map(n => n.id)\n const numUnseenNotifs = notifications.length - readNotifsIds.length\n if (numUnseenNotifs > 0 && readNotifsIds.length > 0) {\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((response) => {\n if (response.errors) {\n throw new Error(`${response.status} ${response.statusText}`)\n }\n const notifications = response.data\n update({ store, notifications, older })\n return notifications\n })\n .catch((error) => {\n store.dispatch('pushGlobalNotice', {\n level: 'error',\n messageKey: 'notifications.error',\n messageArgs: [error.message],\n timeout: 5000\n })\n console.error(error)\n })\n}\n\nconst startFetching = ({ 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 const boundFetchAndUpdate = () => fetchAndUpdate({ credentials, store })\n boundFetchAndUpdate()\n return promiseInterval(boundFetchAndUpdate, 10000)\n}\n\nconst notificationsFetcher = {\n fetchAndUpdate,\n startFetching\n}\n\nexport default notificationsFetcher\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 && window.getComputedStyle(child.offsetParent).position !== 'sticky' && (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","\n// promiseInterval - replacement for setInterval for promises, starts counting\n// the interval only after a promise is done instead of immediately.\n// - promiseCall is a function that returns a promise, it's called the first\n// time after the first interval.\n// - interval is the interval delay in ms.\n\nexport const promiseInterval = (promiseCall, interval) => {\n let stopped = false\n let timeout = null\n\n const func = () => {\n const promise = promiseCall()\n // something unexpected happened and promiseCall did not\n // return a promise, abort the loop.\n if (!(promise && promise.finally)) {\n console.warn('promiseInterval: promise call did not return a promise, stopping interval.')\n return\n }\n promise.finally(() => {\n if (stopped) return\n timeout = window.setTimeout(func, interval)\n })\n }\n\n const stopFetcher = () => {\n stopped = true\n window.clearTimeout(timeout)\n }\n\n timeout = window.setTimeout(func, interval)\n\n return { stop: stopFetcher }\n}\n","const genRandomSeed = () => `${Math.random()}`.replace('.', '-')\n\nexport default genRandomSeed\n","import { filter } from 'lodash'\n\nexport const muteWordHits = (status, muteWords) => {\n const statusText = status.text.toLowerCase()\n const statusSummary = status.summary.toLowerCase()\n const hits = filter(muteWords, (muteWord) => {\n return statusText.includes(muteWord.toLowerCase()) || statusSummary.includes(muteWord.toLowerCase())\n })\n\n return hits\n}\n","import { map } from 'lodash'\nimport apiService from '../api/api.service.js'\n\nconst postStatus = ({\n store,\n status,\n spoilerText,\n visibility,\n sensitive,\n poll,\n media = [],\n inReplyToStatusId = undefined,\n quoteId = undefined,\n contentType = 'text/plain',\n preview = false,\n idempotencyKey = ''\n}) => {\n const mediaIds = map(media, 'id')\n\n return apiService.postStatus({\n credentials: store.state.users.currentUser.credentials,\n status,\n spoilerText,\n visibility,\n sensitive,\n mediaIds,\n inReplyToStatusId,\n quoteId,\n contentType,\n poll,\n preview,\n idempotencyKey\n })\n .then((data) => {\n if (!data.error && !preview) {\n store.dispatch('addNewStatuses', {\n statuses: [data],\n timeline: 'friends',\n showImmediately: true,\n noIdUpdate: true // To prevent missing notices on next pull.\n })\n }\n return data\n })\n .catch((err) => {\n return {\n error: err.message\n }\n })\n}\n\nconst editStatus = ({\n store,\n statusId,\n status,\n spoilerText,\n sensitive,\n poll,\n media = [],\n contentType = 'text/plain'\n}) => {\n const mediaIds = map(media, 'id')\n\n return apiService.editStatus({\n id: statusId,\n credentials: store.state.users.currentUser.credentials,\n status,\n spoilerText,\n sensitive,\n poll,\n mediaIds,\n contentType\n })\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 console.error('Error editing status', err)\n return {\n error: err.message\n }\n })\n}\n\nconst uploadMedia = ({ store, formData }) => {\n const credentials = store.state.users.currentUser.credentials\n return apiService.uploadMedia({ credentials, formData })\n}\n\nconst setMediaDescription = ({ store, id, description }) => {\n const credentials = store.state.users.currentUser.credentials\n return apiService.setMediaDescription({ credentials, id, description })\n}\n\nconst statusPosterService = {\n postStatus,\n editStatus,\n uploadMedia,\n setMediaDescription\n}\n\nexport default statusPosterService\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'\nimport { defaultState } from '../../modules/config.js'\n\nexport const applyTheme = (input) => {\n const { rules } = generatePreset(input)\n const head = document.head\n const body = document.body\n body.classList.add('hidden')\n\n const styleEl = document.createElement('style')\n head.appendChild(styleEl)\n const styleSheet = styleEl.sheet\n\n styleSheet.toString()\n styleSheet.insertRule(`:root { ${rules.radii} }`, 'index-max')\n styleSheet.insertRule(`:root { ${rules.colors} }`, 'index-max')\n styleSheet.insertRule(`:root { ${rules.shadows} }`, 'index-max')\n styleSheet.insertRule(`:root { ${rules.fonts} }`, 'index-max')\n body.classList.remove('hidden')\n}\n\nconst configColumns = ({ sidebarColumnWidth, contentColumnWidth, notifsColumnWidth, emojiReactionsScale }) =>\n ({ sidebarColumnWidth, contentColumnWidth, notifsColumnWidth, emojiReactionsScale })\n\nconst defaultConfigColumns = configColumns(defaultState)\n\nexport const applyConfig = (config) => {\n const columns = configColumns(config)\n\n if (columns === defaultConfigColumns) {\n return\n }\n\n const head = document.head\n const body = document.body\n body.classList.add('hidden')\n\n const rules = Object\n .entries(columns)\n .filter(([k, v]) => v)\n .map(([k, v]) => `--${k}: ${v}`).join(';')\n\n const styleEl = document.createElement('style')\n head.appendChild(styleEl)\n const styleSheet = styleEl.sheet\n\n styleSheet.toString()\n styleSheet.insertRule(`:root { ${rules} }`, 'index-max')\n body.classList.remove('hidden')\n}\n\nexport const getCssShadow = (input, usesDropShadow) => {\n if (input.length === 0) {\n return 'none'\n }\n\n return input\n .filter(_ => usesDropShadow ? _.inset : _)\n .map((shad) => [\n shad.x,\n shad.y,\n shad.blur,\n shad.spread\n ].map(_ => _ + 'px').concat([\n getCssColor(shad.color, shad.alpha),\n shad.inset ? 'inset' : ''\n ]).join(' ')).join(', ')\n}\n\nconst getCssShadowFilter = (input) => {\n if (input.length === 0) {\n return 'none'\n }\n\n return input\n // drop-shadow doesn't support inset or spread\n .filter((shad) => !shad.inset && Number(shad.spread) === 0)\n .map((shad) => [\n shad.x,\n shad.y,\n // drop-shadow's blur is twice as strong compared to box-shadow\n shad.blur / 2\n ].map(_ => _ + 'px').concat([\n getCssColor(shad.color, shad.alpha)\n ]).join(' '))\n .map(_ => `drop-shadow(${_})`)\n .join(' ')\n}\n\nexport const generateColors = (themeData) => {\n const sourceColors = !themeData.themeEngineVersion\n ? colors2to3(themeData.colors || themeData)\n : themeData.colors || themeData\n\n const { colors, opacity } = getColors(sourceColors, themeData.opacity || {})\n\n const htmlColors = Object.entries(colors)\n .reduce((acc, [k, v]) => {\n if (!v) return acc\n acc.solid[k] = rgb2hex(v)\n acc.complete[k] = typeof v.a === 'undefined' ? rgb2hex(v) : rgba2css(v)\n return acc\n }, { complete: {}, solid: {} })\n return {\n rules: {\n colors: Object.entries(htmlColors.complete)\n .filter(([k, v]) => v)\n .map(([k, v]) => `--${k}: ${v}`)\n .join(';')\n },\n theme: {\n colors: htmlColors.solid,\n opacity\n }\n }\n}\n\nexport const generateRadii = (input) => {\n let inputRadii = input.radii || {}\n // v1 -> v2\n if (typeof input.btnRadius !== 'undefined') {\n inputRadii = Object\n .entries(input)\n .filter(([k, v]) => k.endsWith('Radius'))\n .reduce((acc, e) => { acc[e[0].split('Radius')[0]] = e[1]; return acc }, {})\n }\n const radii = Object.entries(inputRadii).filter(([k, v]) => v).reduce((acc, [k, v]) => {\n acc[k] = v\n return acc\n }, {\n btn: 4,\n input: 4,\n checkbox: 2,\n panel: 10,\n avatar: 5,\n avatarAlt: 50,\n tooltip: 2,\n attachment: 5,\n chatMessage: inputRadii.panel\n })\n\n return {\n rules: {\n radii: Object.entries(radii).filter(([k, v]) => v).map(([k, v]) => `--${k}Radius: ${v}px`).join(';')\n },\n theme: {\n radii\n }\n }\n}\n\nexport const generateFonts = (input) => {\n const fonts = Object.entries(input.fonts || {}).filter(([k, v]) => v).reduce((acc, [k, v]) => {\n acc[k] = Object.entries(v).filter(([k, v]) => v).reduce((acc, [k, v]) => {\n acc[k] = v\n return acc\n }, acc[k])\n return acc\n }, {\n interface: {\n family: 'sans-serif'\n },\n input: {\n family: 'inherit'\n },\n post: {\n family: 'inherit'\n },\n postCode: {\n family: 'monospace'\n }\n })\n\n return {\n rules: {\n fonts: Object\n .entries(fonts)\n .filter(([k, v]) => v)\n .map(([k, v]) => `--${k}Font: ${v.family}`).join(';')\n },\n theme: {\n fonts\n }\n }\n}\n\nconst border = (top, shadow) => ({\n x: 0,\n y: top ? 1 : -1,\n blur: 0,\n spread: 0,\n color: shadow ? '#000000' : '#FFFFFF',\n alpha: 0.2,\n inset: true\n})\nconst buttonInsetFakeBorders = [border(true, false), border(false, true)]\nconst inputInsetFakeBorders = [border(true, true), border(false, false)]\nconst hoverGlow = {\n x: 0,\n y: 0,\n blur: 4,\n spread: 0,\n color: '--faint',\n alpha: 1\n}\n\nexport const DEFAULT_SHADOWS = {\n panel: [{\n x: 1,\n y: 1,\n blur: 4,\n spread: 0,\n color: '#000000',\n alpha: 0.6\n }],\n topBar: [{\n x: 0,\n y: 0,\n blur: 4,\n spread: 0,\n color: '#000000',\n alpha: 0.6\n }],\n popup: [{\n x: 2,\n y: 2,\n blur: 3,\n spread: 0,\n color: '#000000',\n alpha: 0.5\n }],\n avatar: [{\n x: 0,\n y: 1,\n blur: 8,\n spread: 0,\n color: '#000000',\n alpha: 0.7\n }],\n avatarStatus: [],\n panelHeader: [],\n button: [{\n x: 0,\n y: 0,\n blur: 2,\n spread: 0,\n color: '#000000',\n alpha: 1\n }, ...buttonInsetFakeBorders],\n buttonHover: [hoverGlow, ...buttonInsetFakeBorders],\n buttonPressed: [hoverGlow, ...inputInsetFakeBorders],\n input: [...inputInsetFakeBorders, {\n x: 0,\n y: 0,\n blur: 2,\n inset: true,\n spread: 0,\n color: '#000000',\n alpha: 1\n }]\n}\nexport const generateShadows = (input, colors) => {\n // TODO this is a small hack for `mod` to work with shadows\n // this is used to get the \"context\" of shadow, i.e. for `mod` properly depend on background color of element\n const hackContextDict = {\n button: 'btn',\n panel: 'bg',\n top: 'topBar',\n popup: 'popover',\n avatar: 'bg',\n panelHeader: 'panel',\n input: 'input'\n }\n\n const cleanInputShadows = Object.fromEntries(\n Object.entries(input.shadows || {})\n .map(([name, shadowSlot]) => [\n name,\n // defaulting color to black to avoid potential problems\n shadowSlot.map(shadowDef => ({ color: '#000000', ...shadowDef }))\n ])\n )\n const inputShadows = cleanInputShadows && !input.themeEngineVersion\n ? shadows2to3(cleanInputShadows, input.opacity)\n : cleanInputShadows || {}\n const shadows = Object.entries({\n ...DEFAULT_SHADOWS,\n ...inputShadows\n }).reduce((shadowsAcc, [slotName, shadowDefs]) => {\n const slotFirstWord = slotName.replace(/[A-Z].*$/, '')\n const colorSlotName = hackContextDict[slotFirstWord]\n const isLightOnDark = relativeLuminance(convert(colors[colorSlotName]).rgb) < 0.5\n const mod = isLightOnDark ? 1 : -1\n const newShadow = shadowDefs.reduce((shadowAcc, def) => [\n ...shadowAcc,\n {\n ...def,\n color: rgb2hex(computeDynamicColor(\n def.color,\n (variableSlot) => convert(colors[variableSlot]).rgb,\n mod\n ))\n }\n ], [])\n return { ...shadowsAcc, [slotName]: newShadow }\n }, {})\n\n return {\n rules: {\n shadows: Object\n .entries(shadows)\n // TODO for v2.2: if shadow doesn't have non-inset shadows with spread > 0 - optionally\n // convert all non-inset shadows into filter: drop-shadow() to boost performance\n .map(([k, v]) => [\n `--${k}Shadow: ${getCssShadow(v)}`,\n `--${k}ShadowFilter: ${getCssShadowFilter(v)}`,\n `--${k}ShadowInset: ${getCssShadow(v, true)}`\n ].join(';'))\n .join(';')\n },\n theme: {\n shadows\n }\n }\n}\n\nexport const composePreset = (colors, radii, shadows, fonts) => {\n return {\n rules: {\n ...shadows.rules,\n ...colors.rules,\n ...radii.rules,\n ...fonts.rules\n },\n theme: {\n ...shadows.theme,\n ...colors.theme,\n ...radii.theme,\n ...fonts.theme\n }\n }\n}\n\nexport const generatePreset = (input) => {\n const colors = generateColors(input)\n return composePreset(\n colors,\n generateRadii(input),\n generateShadows(input, colors.theme.colors, colors.mod),\n generateFonts(input)\n )\n}\n\nexport const getThemes = () => {\n const cache = 'no-store'\n\n return window.fetch('/static/styles.json', { cache })\n .then((data) => data.json())\n .then((themes) => {\n return Object.entries(themes).map(([k, v]) => {\n let promise = null\n if (typeof v === 'object') {\n promise = Promise.resolve(v)\n } else if (typeof v === 'string') {\n promise = window.fetch(v, { cache })\n .then((data) => data.json())\n .catch((e) => {\n console.error(e)\n return null\n })\n }\n return [k, promise]\n })\n })\n .then((promises) => {\n return promises\n .reduce((acc, [k, v]) => {\n acc[k] = v\n return acc\n }, {})\n })\n}\nexport const colors2to3 = (colors) => {\n return Object.entries(colors).reduce((acc, [slotName, color]) => {\n const btnPositions = ['', 'Panel', 'TopBar']\n switch (slotName) {\n case 'lightBg':\n return { ...acc, highlight: color }\n case 'btnText':\n return {\n ...acc,\n ...btnPositions\n .reduce(\n (statePositionAcc, position) =>\n ({ ...statePositionAcc, ['btn' + position + 'Text']: color })\n , {}\n )\n }\n default:\n return { ...acc, [slotName]: color }\n }\n }, {})\n}\n\n/**\n * This handles compatibility issues when importing v2 theme's shadows to current format\n *\n * Back in v2 shadows allowed you to use dynamic colors however those used pure CSS3 variables\n */\nexport const shadows2to3 = (shadows, opacity) => {\n return Object.entries(shadows).reduce((shadowsAcc, [slotName, shadowDefs]) => {\n const isDynamic = ({ color = '#000000' }) => color.startsWith('--')\n const getOpacity = ({ color }) => opacity[getOpacitySlot(color.substring(2).split(',')[0])]\n const newShadow = shadowDefs.reduce((shadowAcc, def) => [\n ...shadowAcc,\n {\n ...def,\n alpha: isDynamic(def) ? getOpacity(def) || 1 : def.alpha\n }\n ], [])\n return { ...shadowsAcc, [slotName]: newShadow }\n }, {})\n}\n\nexport const getPreset = (val) => {\n return getThemes()\n .then((themes) => themes[val] ? themes[val] : themes['pleroma-dark'])\n .then((theme) => {\n const isV1 = Array.isArray(theme)\n const data = isV1 ? {} : theme.theme\n\n if (isV1) {\n const bg = hex2rgb(theme[1])\n const fg = hex2rgb(theme[2])\n const text = hex2rgb(theme[3])\n const link = hex2rgb(theme[4])\n\n const cRed = hex2rgb(theme[5] || '#FF0000')\n const cGreen = hex2rgb(theme[6] || '#00FF00')\n const cBlue = hex2rgb(theme[7] || '#0000FF')\n const cOrange = hex2rgb(theme[8] || '#E3FF00')\n\n data.colors = { bg, fg, text, link, cRed, cBlue, cGreen, cOrange }\n }\n\n return { theme: data, source: theme.source }\n })\n}\n\nexport const setPreset = (val) => getPreset(val).then(data => applyTheme(data.theme))\n","import { invertLightness, brightness } from 'chromatism'\nimport { alphaBlend, mixrgb } from '../color_convert/color_convert.js'\n/* This is a definition of all layer combinations\n * each key is a topmost layer, each value represents layer underneath\n * this is essentially a simplified tree\n */\nexport const LAYERS = {\n undelay: null, // root\n topBar: null, // no transparency support\n badge: null, // no transparency support\n profileTint: null, // doesn't matter\n fg: null,\n bg: 'underlay',\n highlight: 'bg',\n panel: 'bg',\n popover: 'bg',\n selectedMenu: 'popover',\n btn: 'bg',\n btnPanel: 'panel',\n btnTopBar: 'topBar',\n input: 'bg',\n inputPanel: 'panel',\n inputTopBar: 'topBar',\n alert: 'bg',\n alertPanel: 'panel',\n poll: 'bg',\n chatBg: 'underlay',\n chatMessage: 'chatBg'\n}\n\n/* By default opacity slots have 1 as default opacity\n * this allows redefining it to something else\n */\nexport const DEFAULT_OPACITY = {\n profileTint: 0.5,\n alert: 0.5,\n input: 0.5,\n faint: 0.5,\n underlay: 0.15,\n alertPopup: 0.95\n}\n\n/** SUBJECT TO CHANGE IN THE FUTURE, this is all beta\n * Color and opacity slots definitions. Each key represents a slot.\n *\n * Short-hands:\n * String beginning with `--` - value after dashes treated as sole\n * dependency - i.e. `--value` equivalent to { depends: ['value']}\n * String beginning with `#` - value would be treated as solid color\n * defined in hexadecimal representation (i.e. #FFFFFF) and will be\n * used as default. `#FFFFFF` is equivalent to { default: '#FFFFFF'}\n *\n * Full definition:\n * @property {String[]} depends - color slot names this color depends ones.\n * cyclic dependencies are supported to some extent but not recommended.\n * @property {String} [opacity] - opacity slot used by this color slot.\n * opacity is inherited from parents. To break inheritance graph use null\n * @property {Number} [priority] - EXPERIMENTAL. used to pre-sort slots so\n * that slots with higher priority come earlier\n * @property {Function(mod, ...colors)} [color] - function that will be\n * used to determine the color. By default it just copies first color in\n * dependency list.\n * @argument {Number} mod - `1` (light-on-dark) or `-1` (dark-on-light)\n * depending on background color (for textColor)/given color.\n * @argument {...Object} deps - each argument after mod represents each\n * color from `depends` array. All colors take user customizations into\n * account and represented by { r, g, b } objects.\n * @returns {Object} resulting color, should be in { r, g, b } form\n *\n * @property {Boolean|String} [textColor] - true to mark color slot as text\n * color. This enables automatic text color generation for the slot. Use\n * 'preserve' string if you don't want text color to fall back to\n * black/white. Use 'bw' to only ever use black or white. This also makes\n * following properties required:\n * @property {String} [layer] - which layer the text sit on top on - used\n * to account for transparency in text color calculation\n * layer is inherited from parents. To break inheritance graph use null\n * @property {String} [variant] - which color slot is background (same as\n * above, used to account for transparency)\n */\nexport const SLOT_INHERITANCE = {\n bg: {\n depends: [],\n opacity: 'bg',\n priority: 1\n },\n wallpaper: {\n depends: ['bg'],\n color: (mod, bg) => brightness(-2 * mod, bg).rgb\n },\n fg: {\n depends: [],\n priority: 1\n },\n text: {\n depends: [],\n layer: 'bg',\n opacity: null,\n priority: 1\n },\n underlay: {\n default: '#000000',\n opacity: 'underlay'\n },\n link: {\n depends: ['accent'],\n priority: 1\n },\n accent: {\n depends: ['link'],\n priority: 1\n },\n faint: {\n depends: ['text'],\n opacity: 'faint'\n },\n faintLink: {\n depends: ['link'],\n opacity: 'faint'\n },\n postFaintLink: {\n depends: ['postLink'],\n opacity: 'faint'\n },\n\n cBlue: '#0000ff',\n cRed: '#FF0000',\n cGreen: '#00FF00',\n cOrange: '#E3FF00',\n\n profileBg: {\n depends: ['bg'],\n color: (mod, bg) => ({\n r: Math.floor(bg.r * 0.53),\n g: Math.floor(bg.g * 0.56),\n b: Math.floor(bg.b * 0.59)\n })\n },\n profileTint: {\n depends: ['bg'],\n layer: 'profileTint',\n opacity: 'profileTint'\n },\n\n highlight: {\n depends: ['bg'],\n color: (mod, bg) => brightness(5 * mod, bg).rgb\n },\n highlightLightText: {\n depends: ['lightText'],\n layer: 'highlight',\n textColor: true\n },\n highlightPostLink: {\n depends: ['postLink'],\n layer: 'highlight',\n textColor: 'preserve'\n },\n highlightFaintText: {\n depends: ['faint'],\n layer: 'highlight',\n textColor: true\n },\n highlightFaintLink: {\n depends: ['faintLink'],\n layer: 'highlight',\n textColor: 'preserve'\n },\n highlightPostFaintLink: {\n depends: ['postFaintLink'],\n layer: 'highlight',\n textColor: 'preserve'\n },\n highlightText: {\n depends: ['text'],\n layer: 'highlight',\n textColor: true\n },\n highlightLink: {\n depends: ['link'],\n layer: 'highlight',\n textColor: 'preserve'\n },\n highlightIcon: {\n depends: ['highlight', 'highlightText'],\n color: (mod, bg, text) => mixrgb(bg, text)\n },\n\n popover: {\n depends: ['bg'],\n opacity: 'popover'\n },\n popoverLightText: {\n depends: ['lightText'],\n layer: 'popover',\n textColor: true\n },\n popoverPostLink: {\n depends: ['postLink'],\n layer: 'popover',\n textColor: 'preserve'\n },\n popoverFaintText: {\n depends: ['faint'],\n layer: 'popover',\n textColor: true\n },\n popoverFaintLink: {\n depends: ['faintLink'],\n layer: 'popover',\n textColor: 'preserve'\n },\n popoverPostFaintLink: {\n depends: ['postFaintLink'],\n layer: 'popover',\n textColor: 'preserve'\n },\n popoverText: {\n depends: ['text'],\n layer: 'popover',\n textColor: true\n },\n popoverLink: {\n depends: ['link'],\n layer: 'popover',\n textColor: 'preserve'\n },\n popoverIcon: {\n depends: ['popover', 'popoverText'],\n color: (mod, bg, text) => mixrgb(bg, text)\n },\n\n selectedPost: '--highlight',\n selectedPostFaintText: {\n depends: ['highlightFaintText'],\n layer: 'highlight',\n variant: 'selectedPost',\n textColor: true\n },\n selectedPostLightText: {\n depends: ['highlightLightText'],\n layer: 'highlight',\n variant: 'selectedPost',\n textColor: true\n },\n selectedPostPostLink: {\n depends: ['highlightPostLink'],\n layer: 'highlight',\n variant: 'selectedPost',\n textColor: 'preserve'\n },\n selectedPostFaintLink: {\n depends: ['highlightFaintLink'],\n layer: 'highlight',\n variant: 'selectedPost',\n textColor: 'preserve'\n },\n selectedPostText: {\n depends: ['highlightText'],\n layer: 'highlight',\n variant: 'selectedPost',\n textColor: true\n },\n selectedPostLink: {\n depends: ['highlightLink'],\n layer: 'highlight',\n variant: 'selectedPost',\n textColor: 'preserve'\n },\n selectedPostIcon: {\n depends: ['selectedPost', 'selectedPostText'],\n color: (mod, bg, text) => mixrgb(bg, text)\n },\n\n selectedMenu: {\n depends: ['bg'],\n color: (mod, bg) => brightness(5 * mod, bg).rgb\n },\n selectedMenuLightText: {\n depends: ['highlightLightText'],\n layer: 'selectedMenu',\n variant: 'selectedMenu',\n textColor: true\n },\n selectedMenuFaintText: {\n depends: ['highlightFaintText'],\n layer: 'selectedMenu',\n variant: 'selectedMenu',\n textColor: true\n },\n selectedMenuFaintLink: {\n depends: ['highlightFaintLink'],\n layer: 'selectedMenu',\n variant: 'selectedMenu',\n textColor: 'preserve'\n },\n selectedMenuText: {\n depends: ['highlightText'],\n layer: 'selectedMenu',\n variant: 'selectedMenu',\n textColor: true\n },\n selectedMenuLink: {\n depends: ['highlightLink'],\n layer: 'selectedMenu',\n variant: 'selectedMenu',\n textColor: 'preserve'\n },\n selectedMenuIcon: {\n depends: ['selectedMenu', 'selectedMenuText'],\n color: (mod, bg, text) => mixrgb(bg, text)\n },\n\n selectedMenuPopover: {\n depends: ['popover'],\n color: (mod, bg) => brightness(5 * mod, bg).rgb\n },\n selectedMenuPopoverLightText: {\n depends: ['selectedMenuLightText'],\n layer: 'selectedMenuPopover',\n variant: 'selectedMenuPopover',\n textColor: true\n },\n selectedMenuPopoverFaintText: {\n depends: ['selectedMenuFaintText'],\n layer: 'selectedMenuPopover',\n variant: 'selectedMenuPopover',\n textColor: true\n },\n selectedMenuPopoverFaintLink: {\n depends: ['selectedMenuFaintLink'],\n layer: 'selectedMenuPopover',\n variant: 'selectedMenuPopover',\n textColor: 'preserve'\n },\n selectedMenuPopoverText: {\n depends: ['selectedMenuText'],\n layer: 'selectedMenuPopover',\n variant: 'selectedMenuPopover',\n textColor: true\n },\n selectedMenuPopoverLink: {\n depends: ['selectedMenuLink'],\n layer: 'selectedMenuPopover',\n variant: 'selectedMenuPopover',\n textColor: 'preserve'\n },\n selectedMenuPopoverIcon: {\n depends: ['selectedMenuPopover', 'selectedMenuText'],\n color: (mod, bg, text) => mixrgb(bg, text)\n },\n\n lightText: {\n depends: ['text'],\n layer: 'bg',\n textColor: 'preserve',\n color: (mod, text) => brightness(20 * mod, text).rgb\n },\n\n postLink: {\n depends: ['link'],\n layer: 'bg',\n textColor: 'preserve'\n },\n\n postGreentext: {\n depends: ['cGreen'],\n layer: 'bg',\n textColor: 'preserve'\n },\n\n postCyantext: {\n depends: ['cBlue'],\n layer: 'bg',\n textColor: 'preserve'\n },\n\n border: {\n depends: ['fg'],\n opacity: 'border',\n color: (mod, fg) => brightness(2 * mod, fg).rgb\n },\n\n poll: {\n depends: ['accent', 'bg'],\n copacity: 'poll',\n color: (mod, accent, bg) => alphaBlend(accent, 0.4, bg)\n },\n pollText: {\n depends: ['text'],\n layer: 'poll',\n textColor: true\n },\n\n icon: {\n depends: ['bg', 'text'],\n inheritsOpacity: false,\n color: (mod, bg, text) => mixrgb(bg, text)\n },\n\n // Foreground\n fgText: {\n depends: ['text'],\n layer: 'fg',\n textColor: true\n },\n fgLink: {\n depends: ['link'],\n layer: 'fg',\n textColor: 'preserve'\n },\n\n // Panel header\n panel: {\n depends: ['fg'],\n opacity: 'panel'\n },\n panelText: {\n depends: ['text'],\n layer: 'panel',\n textColor: true\n },\n panelFaint: {\n depends: ['fgText'],\n layer: 'panel',\n opacity: 'faint',\n textColor: true\n },\n panelLink: {\n depends: ['fgLink'],\n layer: 'panel',\n textColor: 'preserve'\n },\n\n // Top bar\n topBar: '--fg',\n topBarText: {\n depends: ['fgText'],\n layer: 'topBar',\n textColor: true\n },\n topBarLink: {\n depends: ['fgLink'],\n layer: 'topBar',\n textColor: 'preserve'\n },\n\n // Tabs\n tab: {\n depends: ['btn']\n },\n tabText: {\n depends: ['btnText'],\n layer: 'btn',\n textColor: true\n },\n tabActiveText: {\n depends: ['text'],\n layer: 'bg',\n textColor: true\n },\n\n // Buttons\n btn: {\n depends: ['fg'],\n variant: 'btn',\n opacity: 'btn'\n },\n btnText: {\n depends: ['fgText'],\n layer: 'btn',\n textColor: true\n },\n btnPanelText: {\n depends: ['btnText'],\n layer: 'btnPanel',\n variant: 'btn',\n textColor: true\n },\n btnTopBarText: {\n depends: ['btnText'],\n layer: 'btnTopBar',\n variant: 'btn',\n textColor: true\n },\n\n // Buttons: pressed\n btnPressed: {\n depends: ['btn'],\n layer: 'btn'\n },\n btnPressedText: {\n depends: ['btnText'],\n layer: 'btn',\n variant: 'btnPressed',\n textColor: true\n },\n btnPressedPanel: {\n depends: ['btnPressed'],\n layer: 'btn'\n },\n btnPressedPanelText: {\n depends: ['btnPanelText'],\n layer: 'btnPanel',\n variant: 'btnPressed',\n textColor: true\n },\n btnPressedTopBar: {\n depends: ['btnPressed'],\n layer: 'btn'\n },\n btnPressedTopBarText: {\n depends: ['btnTopBarText'],\n layer: 'btnTopBar',\n variant: 'btnPressed',\n textColor: true\n },\n\n // Buttons: toggled\n btnToggled: {\n depends: ['btn'],\n layer: 'btn',\n color: (mod, btn) => brightness(mod * 20, btn).rgb\n },\n btnToggledText: {\n depends: ['btnText'],\n layer: 'btn',\n variant: 'btnToggled',\n textColor: true\n },\n btnToggledPanelText: {\n depends: ['btnPanelText'],\n layer: 'btnPanel',\n variant: 'btnToggled',\n textColor: true\n },\n btnToggledTopBarText: {\n depends: ['btnTopBarText'],\n layer: 'btnTopBar',\n variant: 'btnToggled',\n textColor: true\n },\n\n // Buttons: disabled\n btnDisabled: {\n depends: ['btn', 'bg'],\n color: (mod, btn, bg) => alphaBlend(btn, 0.25, bg)\n },\n btnDisabledText: {\n depends: ['btnText', 'btnDisabled'],\n layer: 'btn',\n variant: 'btnDisabled',\n color: (mod, text, btn) => alphaBlend(text, 0.25, btn)\n },\n btnDisabledPanelText: {\n depends: ['btnPanelText', 'btnDisabled'],\n layer: 'btnPanel',\n variant: 'btnDisabled',\n color: (mod, text, btn) => alphaBlend(text, 0.25, btn)\n },\n btnDisabledTopBarText: {\n depends: ['btnTopBarText', 'btnDisabled'],\n layer: 'btnTopBar',\n variant: 'btnDisabled',\n color: (mod, text, btn) => alphaBlend(text, 0.25, btn)\n },\n\n // Input fields\n input: {\n depends: ['fg'],\n opacity: 'input'\n },\n inputText: {\n depends: ['text'],\n layer: 'input',\n textColor: true\n },\n inputPanelText: {\n depends: ['panelText'],\n layer: 'inputPanel',\n variant: 'input',\n textColor: true\n },\n inputTopbarText: {\n depends: ['topBarText'],\n layer: 'inputTopBar',\n variant: 'input',\n textColor: true\n },\n\n alertError: {\n depends: ['cRed'],\n opacity: 'alert'\n },\n alertErrorText: {\n depends: ['text'],\n layer: 'alert',\n variant: 'alertError',\n textColor: true\n },\n alertErrorPanelText: {\n depends: ['panelText'],\n layer: 'alertPanel',\n variant: 'alertError',\n textColor: true\n },\n\n alertWarning: {\n depends: ['cOrange'],\n opacity: 'alert'\n },\n alertWarningText: {\n depends: ['text'],\n layer: 'alert',\n variant: 'alertWarning',\n textColor: true\n },\n alertWarningPanelText: {\n depends: ['panelText'],\n layer: 'alertPanel',\n variant: 'alertWarning',\n textColor: true\n },\n\n alertSuccess: {\n depends: ['cGreen'],\n opacity: 'alert'\n },\n alertSuccessText: {\n depends: ['text'],\n layer: 'alert',\n variant: 'alertSuccess',\n textColor: true\n },\n alertSuccessPanelText: {\n depends: ['panelText'],\n layer: 'alertPanel',\n variant: 'alertSuccess',\n textColor: true\n },\n\n alertNeutral: {\n depends: ['text'],\n opacity: 'alert'\n },\n alertNeutralText: {\n depends: ['text'],\n layer: 'alert',\n variant: 'alertNeutral',\n color: (mod, text) => invertLightness(text).rgb,\n textColor: true\n },\n alertNeutralPanelText: {\n depends: ['panelText'],\n layer: 'alertPanel',\n variant: 'alertNeutral',\n textColor: true\n },\n\n alertPopupError: {\n depends: ['alertError'],\n opacity: 'alertPopup'\n },\n alertPopupErrorText: {\n depends: ['alertErrorText'],\n layer: 'popover',\n variant: 'alertPopupError',\n textColor: true\n },\n\n alertPopupWarning: {\n depends: ['alertWarning'],\n opacity: 'alertPopup'\n },\n alertPopupWarningText: {\n depends: ['alertWarningText'],\n layer: 'popover',\n variant: 'alertPopupWarning',\n textColor: true\n },\n\n alertPopupSuccess: {\n depends: ['alertSuccess'],\n opacity: 'alertPopup'\n },\n alertPopupSuccessText: {\n depends: ['alertSuccessText'],\n layer: 'popover',\n variant: 'alertPopupSuccess',\n textColor: true\n },\n\n alertPopupNeutral: {\n depends: ['alertNeutral'],\n opacity: 'alertPopup'\n },\n alertPopupNeutralText: {\n depends: ['alertNeutralText'],\n layer: 'popover',\n variant: 'alertPopupNeutral',\n textColor: true\n },\n\n badgeNotification: '--cRed',\n badgeNotificationText: {\n depends: ['text', 'badgeNotification'],\n layer: 'badge',\n variant: 'badgeNotification',\n textColor: 'bw'\n },\n\n badgeNeutral: '--cGreen',\n badgeNeutralText: {\n depends: ['text', 'badgeNeutral'],\n layer: 'badge',\n variant: 'badgeNeutral',\n textColor: 'bw'\n },\n\n chatBg: {\n depends: ['bg']\n },\n\n chatMessageIncomingBg: {\n depends: ['chatBg']\n },\n\n chatMessageIncomingText: {\n depends: ['text'],\n layer: 'chatMessage',\n variant: 'chatMessageIncomingBg',\n textColor: true\n },\n\n chatMessageIncomingLink: {\n depends: ['link'],\n layer: 'chatMessage',\n variant: 'chatMessageIncomingBg',\n textColor: 'preserve'\n },\n\n chatMessageIncomingBorder: {\n depends: ['border'],\n opacity: 'border',\n color: (mod, border) => brightness(2 * mod, border).rgb\n },\n\n chatMessageOutgoingBg: {\n depends: ['chatMessageIncomingBg'],\n color: (mod, chatMessage) => brightness(5 * mod, chatMessage).rgb\n },\n\n chatMessageOutgoingText: {\n depends: ['text'],\n layer: 'chatMessage',\n variant: 'chatMessageOutgoingBg',\n textColor: true\n },\n\n chatMessageOutgoingLink: {\n depends: ['link'],\n layer: 'chatMessage',\n variant: 'chatMessageOutgoingBg',\n textColor: 'preserve'\n },\n\n chatMessageOutgoingBorder: {\n depends: ['chatMessageOutgoingBg'],\n opacity: 'border',\n color: (mod, border) => brightness(2 * mod, border).rgb\n }\n}\n","import { 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 const array = [layer]\n let parent = data[layer]\n while (parent) {\n array.unshift(parent)\n parent = data[parent]\n }\n return array\n}\n\nexport const getLayers = (layer, variant = layer, opacitySlot, colors, opacity) => {\n return getLayersArray(layer).map((currentLayer) => ([\n currentLayer === layer\n ? colors[variant]\n : colors[currentLayer],\n currentLayer === layer\n ? opacity[opacitySlot] || 1\n : opacity[currentLayer]\n ]))\n}\n\nconst getDependencies = (key, inheritance) => {\n const data = inheritance[key]\n if (typeof data === 'string' && data.startsWith('--')) {\n return [data.substring(2)]\n } else {\n if (data === null) return []\n const { depends, layer, variant } = data\n const layerDeps = layer\n ? getLayersArray(layer).map(currentLayer => {\n return currentLayer === layer\n ? variant || layer\n : currentLayer\n })\n : []\n if (Array.isArray(depends)) {\n return [...depends, ...layerDeps]\n } else {\n return [...layerDeps]\n }\n }\n}\n\n/**\n * Sorts inheritance object topologically - dependant slots come after\n * dependencies\n *\n * @property {Object} inheritance - object defining the nodes\n * @property {Function} getDeps - function that returns dependencies for\n * given value and inheritance object.\n * @returns {String[]} keys of inheritance object, sorted in topological\n * order. Additionally, dependency-less nodes will always be first in line\n */\nexport const topoSort = (\n inheritance = SLOT_INHERITANCE,\n getDeps = getDependencies\n) => {\n // This is an implementation of https://en.wikipedia.org/wiki/Tarjan%27s_strongly_connected_components_algorithm\n\n const allKeys = Object.keys(inheritance)\n const whites = new Set(allKeys)\n const grays = new Set()\n const blacks = new Set()\n const unprocessed = [...allKeys]\n const output = []\n\n const step = (node) => {\n if (whites.has(node)) {\n // Make node \"gray\"\n whites.delete(node)\n grays.add(node)\n // Do step for each node connected to it (one way)\n getDeps(node, inheritance).forEach(step)\n // Make node \"black\"\n grays.delete(node)\n blacks.add(node)\n // Put it into the output list\n output.push(node)\n } else if (grays.has(node)) {\n console.debug('Cyclic depenency in topoSort, ignoring')\n output.push(node)\n } else if (blacks.has(node)) {\n // do nothing\n } else {\n throw new Error('Unintended condition in topoSort!')\n }\n }\n while (unprocessed.length > 0) {\n step(unprocessed.pop())\n }\n\n // The index thing is to make sorting stable on browsers\n // where Array.sort() isn't stable\n return output.map((data, index) => ({ data, index })).sort(({ data: a, index: ai }, { data: b, index: bi }) => {\n const depsA = getDeps(a, inheritance).length\n const depsB = getDeps(b, inheritance).length\n\n if (depsA === depsB || (depsB !== 0 && depsA !== 0)) return ai - bi\n if (depsA === 0 && depsB !== 0) return -1\n if (depsB === 0 && depsA !== 0) return 1\n return 0 // failsafe, shouldn't happen?\n }).map(({ data }) => data)\n}\n\nconst expandSlotValue = (value) => {\n if (typeof value === 'object') return value\n return {\n depends: value.startsWith('--') ? [value.substring(2)] : [],\n default: value.startsWith('#') ? value : undefined\n }\n}\n/**\n * retrieves opacity slot for given slot. This goes up the depenency graph\n * to find which parent has opacity slot defined for it.\n * TODO refactor this\n */\nexport const getOpacitySlot = (\n k,\n inheritance = SLOT_INHERITANCE,\n getDeps = getDependencies\n) => {\n const value = expandSlotValue(inheritance[k])\n if (value.opacity === null) return\n if (value.opacity) return value.opacity\n const findInheritedOpacity = (key, visited = [k]) => {\n const depSlot = getDeps(key, inheritance)[0]\n if (depSlot === undefined) return\n const dependency = inheritance[depSlot]\n if (dependency === undefined) return\n if (dependency.opacity || dependency === null) {\n return dependency.opacity\n } else if (dependency.depends && visited.includes(depSlot)) {\n return findInheritedOpacity(depSlot, [...visited, depSlot])\n } else {\n return null\n }\n }\n if (value.depends) {\n return findInheritedOpacity(k)\n }\n}\n\n/**\n * retrieves layer slot for given slot. This goes up the depenency graph\n * to find which parent has opacity slot defined for it.\n * this is basically copypaste of getOpacitySlot except it checks if key is\n * in LAYERS\n * TODO refactor this\n */\nexport const getLayerSlot = (\n k,\n inheritance = SLOT_INHERITANCE,\n getDeps = getDependencies\n) => {\n const value = expandSlotValue(inheritance[k])\n if (LAYERS[k]) return k\n if (value.layer === null) return\n if (value.layer) return value.layer\n const findInheritedLayer = (key, visited = [k]) => {\n const depSlot = getDeps(key, inheritance)[0]\n if (depSlot === undefined) return\n const dependency = inheritance[depSlot]\n if (dependency === undefined) return\n if (dependency.layer || dependency === null) {\n return dependency.layer\n } else if (dependency.depends) {\n return findInheritedLayer(dependency, [...visited, depSlot])\n } else {\n return null\n }\n }\n if (value.depends) {\n return findInheritedLayer(k)\n }\n}\n\n/**\n * topologically sorted SLOT_INHERITANCE\n */\nexport const SLOT_ORDERED = topoSort(\n Object.entries(SLOT_INHERITANCE)\n .sort(([aK, aV], [bK, bV]) => ((aV && aV.priority) || 0) - ((bV && bV.priority) || 0))\n .reduce((acc, [k, v]) => ({ ...acc, [k]: v }), {})\n)\n\n/**\n * All opacity slots used in color slots, their default values and affected\n * color slots.\n */\nexport const OPACITIES = Object.entries(SLOT_INHERITANCE).reduce((acc, [k, v]) => {\n const opacity = getOpacitySlot(k, SLOT_INHERITANCE, getDependencies)\n if (opacity) {\n return {\n ...acc,\n [opacity]: {\n defaultValue: DEFAULT_OPACITY[opacity] || 1,\n affectedSlots: [...((acc[opacity] && acc[opacity].affectedSlots) || []), k]\n }\n }\n } else {\n return acc\n }\n}, {})\n\n/**\n * Handle dynamic color\n */\nexport const computeDynamicColor = (sourceColor, getColor, mod) => {\n if (typeof sourceColor !== 'string' || !sourceColor.startsWith('--')) return sourceColor\n let targetColor = null\n // Color references other color\n const [variable, modifier] = sourceColor.split(/,/g).map(str => str.trim())\n const variableSlot = variable.substring(2)\n targetColor = getColor(variableSlot)\n if (modifier) {\n targetColor = brightness(Number.parseFloat(modifier) * mod, targetColor).rgb\n }\n return targetColor\n}\n\n/**\n * THE function you want to use. Takes provided colors and opacities\n * value and uses inheritance data to figure out color needed for the slot.\n */\nexport const getColors = (sourceColors, sourceOpacity) => SLOT_ORDERED.reduce(({ colors, opacity }, key) => {\n const sourceColor = sourceColors[key]\n const value = expandSlotValue(SLOT_INHERITANCE[key])\n const deps = getDependencies(key, SLOT_INHERITANCE)\n const isTextColor = !!value.textColor\n const variant = value.variant || value.layer\n\n let backgroundColor = null\n\n if (isTextColor) {\n backgroundColor = alphaBlendLayers(\n { ...(colors[deps[0]] || convert(sourceColors[key] || '#FF00FF').rgb) },\n getLayers(\n getLayerSlot(key) || 'bg',\n variant || 'bg',\n getOpacitySlot(variant),\n colors,\n opacity\n )\n )\n } else if (variant && variant !== key) {\n backgroundColor = colors[variant] || convert(sourceColors[variant]).rgb\n } else {\n backgroundColor = colors.bg || convert(sourceColors.bg)\n }\n\n const isLightOnDark = relativeLuminance(backgroundColor) < 0.5\n const mod = isLightOnDark ? 1 : -1\n\n let outputColor = null\n if (sourceColor) {\n // Color is defined in source color\n let targetColor = sourceColor\n if (targetColor === 'transparent') {\n // We take only layers below current one\n const layers = getLayers(\n getLayerSlot(key),\n key,\n getOpacitySlot(key) || key,\n colors,\n opacity\n ).slice(0, -1)\n targetColor = {\n ...alphaBlendLayers(\n convert('#FF00FF').rgb,\n layers\n ),\n a: 0\n }\n } else if (typeof sourceColor === 'string' && sourceColor.startsWith('--')) {\n targetColor = computeDynamicColor(\n sourceColor,\n variableSlot => colors[variableSlot] || sourceColors[variableSlot],\n mod\n )\n } else if (typeof sourceColor === 'string' && sourceColor.startsWith('#')) {\n targetColor = convert(targetColor).rgb\n }\n outputColor = { ...targetColor }\n } else if (value.default) {\n // same as above except in object form\n outputColor = convert(value.default).rgb\n } else {\n // calculate color\n const defaultColorFunc = (mod, dep) => ({ ...dep })\n const colorFunc = value.color || defaultColorFunc\n\n if (value.textColor) {\n if (value.textColor === 'bw') {\n outputColor = contrastRatio(backgroundColor).rgb\n } else {\n let color = { ...colors[deps[0]] }\n if (value.color) {\n color = colorFunc(mod, ...deps.map((dep) => ({ ...colors[dep] })))\n }\n outputColor = getTextColor(\n backgroundColor,\n { ...color },\n value.textColor === 'preserve'\n )\n }\n } else {\n // background color case\n outputColor = colorFunc(\n mod,\n ...deps.map((dep) => ({ ...colors[dep] }))\n )\n }\n }\n if (!outputColor) {\n throw new Error('Couldn\\'t generate color for ' + key)\n }\n\n const opacitySlot = value.opacity || getOpacitySlot(key)\n const ownOpacitySlot = value.opacity\n\n if (ownOpacitySlot === null) {\n outputColor.a = 1\n } else if (sourceColor === 'transparent') {\n outputColor.a = 0\n } else {\n const opacityOverriden = ownOpacitySlot && sourceOpacity[opacitySlot] !== undefined\n\n const dependencySlot = deps[0]\n const dependencyColor = dependencySlot && colors[dependencySlot]\n\n if (!ownOpacitySlot && dependencyColor && !value.textColor && ownOpacitySlot !== null) {\n // Inheriting color from dependency (weird, i know)\n // except if it's a text color or opacity slot is set to 'null'\n outputColor.a = dependencyColor.a\n } else if (!dependencyColor && !opacitySlot) {\n // Remove any alpha channel if no dependency and no opacitySlot found\n delete outputColor.a\n } else {\n // Otherwise try to assign opacity\n if (dependencyColor && dependencyColor.a === 0) {\n // transparent dependency shall make dependents transparent too\n outputColor.a = 0\n } else {\n // Otherwise check if opacity is overriden and use that or default value instead\n outputColor.a = Number(\n opacityOverriden\n ? sourceOpacity[opacitySlot]\n : (OPACITIES[opacitySlot] || {}).defaultValue\n )\n }\n }\n }\n\n if (Number.isNaN(outputColor.a) || outputColor.a === undefined) {\n outputColor.a = 1\n }\n\n if (opacitySlot) {\n return {\n colors: { ...colors, [key]: outputColor },\n opacity: { ...opacity, [opacitySlot]: outputColor.a }\n }\n } else {\n return {\n colors: { ...colors, [key]: outputColor },\n opacity\n }\n }\n}, { colors: {}, opacity: {} })\n","import { hex2rgb } from '../color_convert/color_convert.js'\nconst highlightStyle = (prefs) => {\n if (prefs === undefined) return\n const { color, type } = prefs\n if (typeof color !== 'string') return\n const rgb = hex2rgb(color)\n if (rgb == null) return\n const solidColor = `rgb(${Math.floor(rgb.r)}, ${Math.floor(rgb.g)}, ${Math.floor(rgb.b)})`\n const tintColor = `rgba(${Math.floor(rgb.r)}, ${Math.floor(rgb.g)}, ${Math.floor(rgb.b)}, .1)`\n const tintColor2 = `rgba(${Math.floor(rgb.r)}, ${Math.floor(rgb.g)}, ${Math.floor(rgb.b)}, .2)`\n const customProps = {\n '--____highlight-solidColor': solidColor,\n '--____highlight-tintColor': tintColor,\n '--____highlight-tintColor2': tintColor2\n }\n if (type === 'striped') {\n return {\n backgroundImage: [\n 'repeating-linear-gradient(135deg,',\n `${tintColor} ,`,\n `${tintColor} 20px,`,\n `${tintColor2} 20px,`,\n `${tintColor2} 40px`\n ].join(' '),\n backgroundPosition: '0 0',\n ...customProps\n }\n } else if (type === 'solid') {\n return {\n backgroundColor: tintColor2,\n ...customProps\n }\n } else if (type === 'side') {\n return {\n backgroundImage: [\n 'linear-gradient(to right,',\n `${solidColor} ,`,\n `${solidColor} 2px,`,\n 'transparent 6px'\n ].join(' '),\n backgroundPosition: '0 0',\n ...customProps\n }\n }\n}\n\nconst highlightClass = (user) => {\n return 'USER____' + user.screen_name\n .replace(/\\./g, '_')\n .replace(/@/g, '_AT_')\n}\n\nexport {\n highlightClass,\n highlightStyle\n}\n","import { includes } from 'lodash'\n\nconst generateProfileLink = (id, screenName, restrictedNicknames) => {\n const complicated = !screenName || (isExternal(screenName) || includes(restrictedNicknames, screenName))\n return {\n name: (complicated ? 'external-user-profile' : 'user-profile'),\n params: (complicated ? { id } : { name: screenName })\n }\n}\n\nconst isExternal = screenName => screenName && screenName.includes('@')\n\nexport default generateProfileLink\n","<template>\n <button\n v-if=\"usePlaceholder\"\n class=\"Attachment -placeholder button-unstyled\"\n :class=\"classNames\"\n @click=\"openModal\"\n >\n <a\n v-if=\"type !== 'html'\"\n class=\"placeholder\"\n target=\"_blank\"\n :href=\"attachment.url\"\n :alt=\"attachment.description\"\n :title=\"attachment.description\"\n @click.prevent\n >\n <FAIcon :icon=\"placeholderIconClass\" />\n <b>{{ nsfw ? \"NSFW / \" : \"\" }}</b>{{ edit ? '' : placeholderName }}\n </a>\n <div\n v-if=\"edit || remove\"\n class=\"attachment-buttons\"\n >\n <button\n v-if=\"remove\"\n class=\"button-unstyled attachment-button\"\n @click.prevent=\"onRemove\"\n >\n <FAIcon icon=\"trash-alt\" />\n </button>\n </div>\n <div\n v-if=\"size !== 'hide' && !hideDescription && (edit || localDescription || showDescription)\"\n class=\"description-container\"\n :class=\"{ '-static': !edit }\"\n >\n <input\n v-if=\"edit\"\n v-model=\"localDescription\"\n type=\"text\"\n class=\"description-field\"\n :placeholder=\"$t('post_status.media_description')\"\n @keydown.enter.prevent=\"\"\n >\n <p v-else>\n {{ localDescription }}\n </p>\n </div>\n </button>\n <div\n v-else\n class=\"Attachment\"\n :class=\"classNames\"\n >\n <div\n v-show=\"!isEmpty\"\n class=\"attachment-wrapper\"\n >\n <a\n v-if=\"hidden\"\n class=\"image-container\"\n :href=\"attachment.url\"\n :alt=\"attachment.description\"\n :title=\"attachment.description\"\n @click.prevent.stop=\"toggleHidden\"\n >\n <img\n :key=\"nsfwImage\"\n class=\"nsfw\"\n :src=\"nsfwImage\"\n >\n <FAIcon\n v-if=\"type === 'video'\"\n class=\"play-icon\"\n icon=\"play-circle\"\n />\n </a>\n <div\n v-if=\"!hidden\"\n class=\"attachment-buttons\"\n >\n <button\n v-if=\"type === 'flash' && flashLoaded\"\n class=\"button-unstyled attachment-button\"\n :title=\"$t('status.attachment_stop_flash')\"\n @click.prevent=\"stopFlash\"\n >\n <FAIcon icon=\"stop\" />\n </button>\n <button\n v-if=\"attachment.description && size !== 'small' && !edit && type !== 'unknown'\"\n class=\"button-unstyled attachment-button\"\n :title=\"$t('status.show_attachment_description')\"\n @click.prevent=\"toggleDescription\"\n >\n <FAIcon icon=\"align-right\" />\n </button>\n <button\n v-if=\"!useModal && type !== 'unknown'\"\n class=\"button-unstyled attachment-button\"\n :title=\"$t('status.show_attachment_in_modal')\"\n @click.prevent=\"openModalForce\"\n >\n <FAIcon icon=\"search-plus\" />\n </button>\n <button\n v-if=\"nsfw && hideNsfwLocal\"\n class=\"button-unstyled attachment-button\"\n :title=\"$t('status.hide_attachment')\"\n @click.prevent=\"toggleHidden\"\n >\n <FAIcon icon=\"times\" />\n </button>\n <button\n v-if=\"shiftUp\"\n class=\"button-unstyled attachment-button\"\n :title=\"$t('status.move_up')\"\n @click.prevent=\"onShiftUp\"\n >\n <FAIcon icon=\"chevron-left\" />\n </button>\n <button\n v-if=\"shiftDn\"\n class=\"button-unstyled attachment-button\"\n :title=\"$t('status.move_down')\"\n @click.prevent=\"onShiftDn\"\n >\n <FAIcon icon=\"chevron-right\" />\n </button>\n <button\n v-if=\"remove\"\n class=\"button-unstyled attachment-button\"\n :title=\"$t('status.remove_attachment')\"\n @click.prevent=\"onRemove\"\n >\n <FAIcon icon=\"trash-alt\" />\n </button>\n </div>\n\n <a\n v-if=\"type === 'image' && (!hidden || preloadImage)\"\n class=\"image-container\"\n :class=\"{'-hidden': hidden && preloadImage }\"\n :href=\"attachment.url\"\n target=\"_blank\"\n @click.stop.prevent=\"openModal\"\n >\n <StillImage\n class=\"image\"\n :referrerpolicy=\"referrerpolicy\"\n :mimetype=\"attachment.mimetype\"\n :src=\"attachment.large_thumb_url || attachment.url\"\n :image-load-handler=\"onImageLoad\"\n :alt=\"attachment.description\"\n />\n </a>\n\n <a\n v-if=\"type === 'unknown' && !hidden\"\n class=\"placeholder-container\"\n :href=\"attachment.url\"\n target=\"_blank\"\n >\n <FAIcon\n :size=\"compact ? '2x' : '5x'\"\n :icon=\"placeholderIconClass\"\n :title=\"localDescription\"\n />\n <p v-if=\"!compact\">\n {{ localDescription }}\n </p>\n </a>\n\n <component\n :is=\"videoTag\"\n v-if=\"type === 'video' && !hidden\"\n class=\"video-container\"\n :class=\"{ 'button-unstyled': 'isModal' }\"\n :href=\"attachment.url\"\n @click.stop.prevent=\"openModal\"\n >\n <VideoAttachment\n class=\"video\"\n :attachment=\"attachment\"\n :controls=\"!useModal\"\n @play=\"$emit('play')\"\n @pause=\"$emit('pause')\"\n />\n <FAIcon\n v-if=\"useModal\"\n class=\"play-icon\"\n icon=\"play-circle\"\n />\n </component>\n\n <span\n v-if=\"type === 'audio' && !hidden\"\n class=\"audio-container\"\n :href=\"attachment.url\"\n @click.stop.prevent=\"openModal\"\n >\n <audio\n v-if=\"type === 'audio'\"\n :src=\"attachment.url\"\n :alt=\"attachment.description\"\n :title=\"attachment.description\"\n controls\n @play=\"$emit('play')\"\n @pause=\"$emit('pause')\"\n />\n </span>\n\n <div\n v-if=\"type === 'html' && attachment.oembed\"\n class=\"oembed-container\"\n @click.prevent=\"linkClicked\"\n >\n <div\n v-if=\"attachment.thumb_url\"\n class=\"image\"\n >\n <img :src=\"attachment.thumb_url\">\n </div>\n <div class=\"text\">\n <!-- eslint-disable vue/no-v-html -->\n <h1><a :href=\"attachment.url\">{{ attachment.oembed.title }}</a></h1>\n <div v-html=\"attachment.oembed.oembedHTML\" />\n <!-- eslint-enable vue/no-v-html -->\n </div>\n </div>\n\n <span\n v-if=\"type === 'flash' && !hidden\"\n class=\"flash-container\"\n :href=\"attachment.url\"\n @click.stop.prevent=\"openModal\"\n >\n <Flash\n ref=\"flash\"\n class=\"flash\"\n :src=\"attachment.large_thumb_url || attachment.url\"\n @playerOpened=\"setFlashLoaded(true)\"\n @playerClosed=\"setFlashLoaded(false)\"\n />\n </span>\n </div>\n <div\n v-if=\"size !== 'hide' && !hideDescription && (edit || (localDescription && showDescription))\"\n class=\"description-container\"\n :class=\"{ '-static': !edit }\"\n >\n <input\n v-if=\"edit\"\n v-model=\"localDescription\"\n type=\"text\"\n class=\"description-field\"\n :placeholder=\"$t('post_status.media_description')\"\n @keydown.enter.prevent=\"\"\n >\n <p v-else>\n {{ localDescription }}\n </p>\n </div>\n </div>\n</template>\n\n<script src=\"./attachment.js\"></script>\n\n<style src=\"./attachment.scss\" lang=\"scss\"></style>\n","import StillImage from '../still-image/still-image.vue'\nimport Flash from '../flash/flash.vue'\nimport VideoAttachment from '../video_attachment/video_attachment.vue'\nimport nsfwImage from '../../assets/nsfw.png'\nimport fileTypeService from '../../services/file_type/file_type.service.js'\nimport { mapGetters } from 'vuex'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faFile,\n faMusic,\n faImage,\n faVideo,\n faPlayCircle,\n faTimes,\n faStop,\n faSearchPlus,\n faTrashAlt,\n faPencilAlt,\n faAlignRight\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faFile,\n faMusic,\n faImage,\n faVideo,\n faPlayCircle,\n faTimes,\n faStop,\n faSearchPlus,\n faTrashAlt,\n faPencilAlt,\n faAlignRight\n)\n\nconst Attachment = {\n props: [\n 'attachment',\n 'compact',\n 'description',\n 'hideDescription',\n 'nsfw',\n 'size',\n 'setMedia',\n 'remove',\n 'shiftUp',\n 'shiftDn',\n 'edit'\n ],\n data () {\n return {\n localDescription: this.description || this.attachment.description,\n nsfwImage: this.$store.state.instance.nsfwCensorImage || nsfwImage,\n hideNsfwLocal: this.$store.getters.mergedConfig.hideNsfw,\n preloadImage: this.$store.getters.mergedConfig.preloadImage,\n loading: false,\n img: fileTypeService.fileType(this.attachment.mimetype) === 'image' && document.createElement('img'),\n modalOpen: false,\n showHidden: false,\n flashLoaded: false,\n showDescription: false\n }\n },\n components: {\n Flash,\n StillImage,\n VideoAttachment\n },\n computed: {\n classNames () {\n return [\n {\n '-loading': this.loading,\n '-nsfw-placeholder': this.hidden,\n '-editable': this.edit !== undefined,\n '-compact': this.compact\n },\n '-type-' + this.type,\n this.size && '-size-' + this.size,\n `-${this.useContainFit ? 'contain' : 'cover'}-fit`\n ]\n },\n usePlaceholder () {\n return this.size === 'hide'\n },\n useContainFit () {\n return this.$store.getters.mergedConfig.useContainFit\n },\n placeholderName () {\n if (this.attachment.description === '' || !this.attachment.description) {\n return this.type.toUpperCase()\n }\n return this.attachment.description\n },\n placeholderIconClass () {\n if (this.type === 'image') return 'image'\n if (this.type === 'video') return 'video'\n if (this.type === 'audio') return 'music'\n return 'file'\n },\n referrerpolicy () {\n return this.$store.state.instance.mediaProxyAvailable ? '' : 'no-referrer'\n },\n type () {\n return fileTypeService.fileType(this.attachment.mimetype)\n },\n hidden () {\n return this.nsfw && this.hideNsfwLocal && !this.showHidden\n },\n isEmpty () {\n return (this.type === 'html' && !this.attachment.oembed)\n },\n useModal () {\n let modalTypes = []\n switch (this.size) {\n case 'hide':\n case 'small':\n modalTypes = ['image', 'video', 'audio', 'flash']\n break\n default:\n modalTypes = this.mergedConfig.playVideosInModal\n ? ['image', 'video', 'flash']\n : ['image']\n break\n }\n return modalTypes.includes(this.type)\n },\n videoTag () {\n return this.useModal ? 'button' : 'span'\n },\n ...mapGetters(['mergedConfig'])\n },\n watch: {\n 'attachment.description' (newVal) {\n this.localDescription = newVal\n },\n localDescription (newVal) {\n this.onEdit(newVal)\n }\n },\n methods: {\n linkClicked ({ target }) {\n if (target.tagName === 'A') {\n window.open(target.href, '_blank')\n }\n },\n openModal (event) {\n if (this.useModal) {\n this.$emit('setMedia')\n this.$store.dispatch('setCurrentMedia', this.attachment)\n } else if (this.type === 'unknown') {\n window.open(this.attachment.url)\n }\n },\n openModalForce (event) {\n this.$emit('setMedia')\n this.$store.dispatch('setCurrentMedia', this.attachment)\n },\n onEdit (event) {\n this.edit && this.edit(this.attachment, event)\n },\n onRemove () {\n this.remove && this.remove(this.attachment)\n },\n onShiftUp () {\n this.shiftUp && this.shiftUp(this.attachment)\n },\n onShiftDn () {\n this.shiftDn && this.shiftDn(this.attachment)\n },\n stopFlash () {\n this.$refs.flash.closePlayer()\n },\n setFlashLoaded (event) {\n this.flashLoaded = event\n },\n toggleDescription () {\n this.showDescription = !this.showDescription\n },\n toggleHidden (event) {\n if (\n (this.mergedConfig.useOneClickNsfw && !this.showHidden) &&\n (this.type !== 'video' || this.mergedConfig.playVideosInModal)\n ) {\n this.openModal(event)\n return\n }\n if (this.img && !this.preloadImage) {\n if (this.img.onload) {\n this.img.onload()\n } else {\n this.loading = true\n this.img.src = this.attachment.url\n this.img.onload = () => {\n this.loading = false\n this.showHidden = !this.showHidden\n }\n }\n } else {\n this.showHidden = !this.showHidden\n }\n },\n onImageLoad (image) {\n const width = image.naturalWidth\n const height = image.naturalHeight\n this.$emit('naturalSizeLoad', { id: this.attachment.id, width, height })\n }\n }\n}\n\nexport default Attachment\n","import { render } from \"./attachment.vue?vue&type=template&id=581d66b2\"\nimport script from \"./attachment.js?vue&type=script&lang=js\"\nexport * from \"./attachment.js?vue&type=script&lang=js\"\n\nimport \"./attachment.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"avatars\">\n <router-link\n v-for=\"user in slicedUsers\"\n :key=\"user.id\"\n :to=\"userProfileLink(user)\"\n class=\"avatars-item\"\n >\n <UserAvatar\n :user=\"user\"\n class=\"avatar-small\"\n />\n </router-link>\n </div>\n</template>\n\n<script src=\"./avatar_list.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.avatars {\n display: flex;\n margin: 0;\n padding: 0;\n\n // For hiding overflowing elements\n flex-wrap: wrap;\n height: 24px;\n\n .avatars-item {\n margin: 0 0 5px 5px;\n\n &:first-child {\n padding-left: 5px;\n }\n\n .avatar-small {\n border-radius: $fallback--avatarAltRadius;\n border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);\n height: 24px;\n width: 24px;\n }\n }\n}\n</style>\n","import UserAvatar from '../user_avatar/user_avatar.vue'\nimport generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\n\nconst AvatarList = {\n props: ['users'],\n computed: {\n slicedUsers () {\n return this.users ? this.users.slice(0, 15) : []\n }\n },\n components: {\n UserAvatar\n },\n methods: {\n userProfileLink (user) {\n return generateProfileLink(user.id, user.screen_name, this.$store.state.instance.restrictedNicknames)\n }\n }\n}\n\nexport default AvatarList\n","import { render } from \"./avatar_list.vue?vue&type=template&id=432beb66\"\nimport script from \"./avatar_list.js?vue&type=script&lang=js\"\nexport * from \"./avatar_list.js?vue&type=script&lang=js\"\n\nimport \"./avatar_list.vue?vue&type=style&index=0&id=432beb66&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"basic-user-card\">\n <router-link\n :to=\"userProfileLink(user)\"\n @click.prevent\n >\n <UserPopover\n :user-id=\"user.id\"\n :overlay-centers=\"true\"\n overlay-centers-selector=\".avatar\"\n >\n <UserAvatar\n class=\"user-avatar avatar\"\n :user=\"user\"\n @click.prevent\n />\n </UserPopover>\n </router-link>\n <div\n class=\"basic-user-card-collapsed-content\"\n >\n <div\n :title=\"user.name\"\n class=\"basic-user-card-user-name\"\n >\n <RichContent\n class=\"basic-user-card-user-name-value\"\n :html=\"user.name\"\n :emoji=\"user.emoji\"\n />\n </div>\n <div>\n <user-link\n class=\"basic-user-card-screen-name\"\n :user=\"user\"\n />\n </div>\n <slot />\n </div>\n </div>\n</template>\n\n<script src=\"./basic_user_card.js\"></script>\n\n<style lang=\"scss\">\n.basic-user-card {\n display: flex;\n flex: 1 0;\n margin: 0;\n padding: 0.6em 1em;\n\n --emoji-size: 14px;\n\n &-collapsed-content {\n margin-left: 0.7em;\n text-align: left;\n flex: 1;\n min-width: 0;\n }\n\n &-user-name {\n img {\n object-fit: contain;\n height: 16px;\n width: 16px;\n vertical-align: middle;\n }\n }\n\n &-user-name-value,\n &-screen-name {\n display: inline-block;\n max-width: 100%;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n\n &-expanded-content {\n flex: 1;\n margin-left: 0.7em;\n min-width: 0;\n }\n}\n</style>\n","import UserPopover from '../user_popover/user_popover.vue'\nimport UserAvatar from '../user_avatar/user_avatar.vue'\nimport UserLink from '../user_link/user_link.vue'\nimport RichContent from 'src/components/rich_content/rich_content.jsx'\nimport generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\n\nconst BasicUserCard = {\n props: [\n 'user'\n ],\n components: {\n UserPopover,\n UserAvatar,\n RichContent,\n UserLink\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 BasicUserCard\n","import { render } from \"./basic_user_card.vue?vue&type=template&id=d8a50982\"\nimport script from \"./basic_user_card.js?vue&type=script&lang=js\"\nexport * from \"./basic_user_card.js?vue&type=script&lang=js\"\n\nimport \"./basic_user_card.vue?vue&type=style&index=0&id=d8a50982&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <label\n class=\"checkbox\"\n :class=\"{ disabled, indeterminate, 'indeterminate-fix': indeterminateTransitionFix }\"\n >\n <input\n type=\"checkbox\"\n class=\"visible-for-screenreader-only\"\n :disabled=\"disabled\"\n :checked=\"modelValue\"\n :indeterminate=\"indeterminate\"\n @change=\"$emit('update:modelValue', $event.target.checked)\"\n >\n <i\n class=\"checkbox-indicator\"\n :aria-hidden=\"true\"\n @transitionend.capture=\"onTransitionEnd\"\n />\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 props: [\n 'modelValue',\n 'indeterminate',\n 'disabled'\n ],\n emits: ['update:modelValue'],\n data: (vm) => ({\n indeterminateTransitionFix: vm.indeterminate\n }),\n watch: {\n indeterminate (e) {\n if (e) {\n this.indeterminateTransitionFix = true\n }\n }\n },\n methods: {\n onTransitionEnd (e) {\n if (!this.indeterminate) {\n this.indeterminateTransitionFix = false\n }\n }\n }\n}\n</script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n@import \"../../mixins\";\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: 0 0 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: 0.5;\n }\n\n .label {\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n }\n }\n\n input[type=\"checkbox\"] {\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 &.indeterminate-fix {\n input[type=\"checkbox\"] + .checkbox-indicator::before {\n content: \"–\";\n }\n }\n\n & > span {\n margin-left: 0.5em;\n }\n}\n</style>\n","import { render } from \"./checkbox.vue?vue&type=template&id=7164e0b5\"\nimport script from \"./checkbox.vue?vue&type=script&lang=js\"\nexport * from \"./checkbox.vue?vue&type=script&lang=js\"\n\nimport \"./checkbox.vue?vue&type=style&index=0&id=7164e0b5&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import DialogModal from '../dialog_modal/dialog_modal.vue'\n\n/**\n * This component emits the following events:\n * cancelled, emitted when the action should not be performed;\n * accepted, emitted when the action should be performed;\n *\n * The caller should close this dialog after receiving any of the two events.\n */\nconst ConfirmModal = {\n components: {\n DialogModal\n },\n props: {\n title: {\n type: String\n },\n cancelText: {\n type: String\n },\n confirmText: {\n type: String\n }\n },\n computed: {\n },\n methods: {\n onCancel () {\n this.$emit('cancelled')\n },\n onAccept () {\n this.$emit('accepted')\n }\n }\n}\n\nexport default ConfirmModal\n","import { render } from \"./confirm_modal.vue?vue&type=template&id=c74bcd96\"\nimport script from \"./confirm_modal.js?vue&type=script&lang=js\"\nexport * from \"./confirm_modal.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <dialog-modal\n v-body-scroll-lock=\"true\"\n class=\"confirm-modal\"\n :on-cancel=\"onCancel\"\n >\n <template #header>\n <span v-text=\"title\" />\n </template>\n\n <slot />\n\n <template #footer>\n <button\n class=\"btn button-default\"\n @click.prevent=\"onAccept\"\n v-text=\"confirmText\"\n />\n\n <button\n class=\"btn button-default\"\n @click.prevent=\"onCancel\"\n v-text=\"cancelText\"\n />\n </template>\n </dialog-modal>\n</template>\n\n<script src=\"./confirm_modal.js\"></script>\n","<template>\n <span\n :class=\"{ 'dark-overlay': darkOverlay }\"\n @click.self.stop=\"onCancel()\"\n >\n <div\n class=\"dialog-modal panel panel-default\"\n @click.stop=\"\"\n >\n <div class=\"panel-heading dialog-modal-heading\">\n <div class=\"title\">\n <slot name=\"header\" />\n </div>\n </div>\n <div class=\"dialog-modal-content\">\n <slot name=\"default\" />\n </div>\n <div class=\"dialog-modal-footer user-interactions panel-footer\">\n <slot name=\"footer\" />\n </div>\n </div>\n </span>\n</template>\n\n<script src=\"./dialog_modal.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n// TODO: unify with other modals.\n.dark-overlay {\n &::before {\n bottom: 0;\n content: \" \";\n display: block;\n cursor: default;\n left: 0;\n position: fixed;\n right: 0;\n top: 0;\n background: rgb(27 31 35 / 50%);\n z-index: 2000;\n }\n}\n\n.dialog-modal.panel {\n top: 0;\n left: 50%;\n max-height: 80vh;\n max-width: 90vw;\n margin: 15vh auto;\n position: fixed;\n transform: translateX(-50%);\n z-index: 2001;\n cursor: default;\n display: block;\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n\n .dialog-modal-heading {\n .title {\n text-align: center;\n }\n }\n\n .dialog-modal-content {\n margin: 0;\n padding: 1rem;\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n white-space: normal;\n }\n\n .dialog-modal-footer {\n margin: 0;\n padding: 0.5em;\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n border-top: 1px solid $fallback--border;\n border-top: 1px solid var(--border, $fallback--border);\n display: flex;\n justify-content: flex-end;\n\n button {\n width: auto;\n margin-left: 0.5rem;\n }\n }\n}\n\n</style>\n","const DialogModal = {\n props: {\n darkOverlay: {\n default: true,\n type: Boolean\n },\n onCancel: {\n default: () => {},\n type: Function\n }\n }\n}\n\nexport default DialogModal\n","import { render } from \"./dialog_modal.vue?vue&type=template&id=5b856fbc\"\nimport script from \"./dialog_modal.js?vue&type=script&lang=js\"\nexport * from \"./dialog_modal.js?vue&type=script&lang=js\"\n\nimport \"./dialog_modal.vue?vue&type=style&index=0&id=5b856fbc&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n ref=\"root\"\n class=\"emoji-input\"\n :class=\"{ 'with-picker': !hideEmojiButton }\"\n >\n <slot\n :id=\"'textbox-' + randomSeed\"\n :aria-owns=\"suggestionListId\"\n aria-autocomplete=\"both\"\n :aria-expanded=\"showSuggestions\"\n :aria-activedescendant=\"(!showSuggestions || highlighted === -1) ? '' : suggestionItemId(highlighted)\"\n />\n <!-- TODO: make the 'x' disappear if at the end maybe? -->\n <div\n ref=\"hiddenOverlay\"\n class=\"hidden-overlay\"\n :style=\"overlayStyle\"\n :aria-hidden=\"true\"\n >\n <span>{{ preText }}</span>\n <span\n ref=\"hiddenOverlayCaret\"\n class=\"caret\"\n >x</span>\n <span>{{ postText }}</span>\n </div>\n <screen-reader-notice\n ref=\"screenReaderNotice\"\n aria-live=\"assertive\"\n />\n <template v-if=\"enableEmojiPicker\">\n <button\n v-if=\"!hideEmojiButton\"\n class=\"button-unstyled emoji-picker-icon\"\n type=\"button\"\n :title=\"$t('emoji.add_emoji')\"\n @click.prevent=\"togglePicker\"\n >\n <FAIcon :icon=\"['far', 'smile-beam']\" />\n </button>\n <EmojiPicker\n v-if=\"enableEmojiPicker\"\n ref=\"picker\"\n :enable-sticker-picker=\"enableStickerPicker\"\n class=\"emoji-picker-panel\"\n @emoji=\"insert\"\n @sticker-uploaded=\"onStickerUploaded\"\n @sticker-upload-failed=\"onStickerUploadFailed\"\n @show=\"onPickerShown\"\n @close=\"onPickerClosed\"\n />\n </template>\n <Popover\n ref=\"suggestorPopover\"\n class=\"autocomplete-panel\"\n placement=\"bottom\"\n :trigger-attrs=\"{ 'aria-hidden': true }\"\n >\n <template #content>\n <div\n :id=\"suggestionListId\"\n ref=\"panel-body\"\n class=\"autocomplete-panel-body\"\n role=\"listbox\"\n >\n <div\n v-for=\"(suggestion, index) in suggestions\"\n :id=\"suggestionItemId(index)\"\n :key=\"index\"\n class=\"autocomplete-item\"\n role=\"option\"\n :class=\"{ highlighted: index === highlighted }\"\n :aria-label=\"autoCompleteItemLabel(suggestion)\"\n :aria-selected=\"index === highlighted\"\n @click.stop.prevent=\"onClick($event, suggestion)\"\n >\n <span class=\"image\">\n <img\n v-if=\"suggestion.img\"\n :src=\"suggestion.img\"\n >\n <span v-else>{{ suggestion.replacement }}</span>\n </span>\n <div class=\"label\">\n <span\n v-if=\"suggestion.user\"\n class=\"displayText\"\n >\n {{ suggestion.displayText }}<UnicodeDomainIndicator\n :user=\"suggestion.user\"\n :at=\"false\"\n />\n </span>\n <span\n v-if=\"!suggestion.user\"\n class=\"displayText\"\n >\n {{ maybeLocalizedEmojiName(suggestion) }}\n </span>\n <span class=\"detailText\">{{ suggestion.detailText }}</span>\n </div>\n </div>\n </div>\n </template>\n </Popover>\n </div>\n</template>\n\n<script src=\"./emoji_input.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.emoji-input {\n display: flex;\n flex-direction: column;\n position: relative;\n\n .emoji-picker-icon {\n position: absolute;\n top: 0;\n right: 0;\n margin: 0.2em 0.25em;\n font-size: 1.3em;\n cursor: pointer;\n line-height: 24px;\n\n &:hover i {\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n }\n\n .emoji-picker-panel {\n position: absolute;\n z-index: 20;\n margin-top: 2px;\n\n &.hide {\n display: none;\n }\n }\n\n input,\n textarea {\n flex: 1 0 auto;\n }\n\n &.with-picker input {\n padding-right: 30px;\n }\n\n .hidden-overlay {\n opacity: 0;\n pointer-events: none;\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n left: 0;\n overflow: hidden;\n\n /* DEBUG STUFF */\n color: red;\n\n /* set opacity to non-zero to see the overlay */\n\n .caret {\n width: 0;\n margin-right: calc(-1ch - 1px);\n border: 1px solid red;\n }\n }\n}\n\n.autocomplete {\n &-panel {\n position: absolute;\n }\n\n &-item {\n display: flex;\n cursor: pointer;\n padding: 0.2em 0.4em;\n border-bottom: 1px solid rgb(0 0 0 / 40%);\n height: 32px;\n\n .image {\n width: 32px;\n height: 32px;\n line-height: 32px;\n text-align: center;\n font-size: 32px;\n margin-right: 4px;\n\n img {\n width: 32px;\n height: 32px;\n object-fit: contain;\n }\n }\n\n .label {\n display: flex;\n flex-direction: column;\n justify-content: center;\n margin: 0 0.1em 0 0.2em;\n\n .displayText {\n line-height: 1.5;\n }\n\n .detailText {\n font-size: 9px;\n line-height: 9px;\n }\n }\n\n &.highlighted {\n background-color: $fallback--fg;\n background-color: var(--selectedMenuPopover, $fallback--fg);\n color: var(--selectedMenuPopoverText, $fallback--text);\n\n --faint: var(--selectedMenuPopoverFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuPopoverFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuPopoverLightText, $fallback--lightText);\n --icon: var(--selectedMenuPopoverIcon, $fallback--icon);\n }\n }\n}\n</style>\n","import { reduce, find } from 'lodash'\n\nexport const replaceWord = (str, toReplace, replacement) => {\n return str.slice(0, toReplace.start) + replacement + str.slice(toReplace.end)\n}\n\nexport const wordAtPosition = (str, pos) => {\n const words = splitByWhitespaceBoundary(str)\n const wordsWithPosition = addPositionToWords(words)\n\n return find(wordsWithPosition, ({ start, end }) => start <= pos && end > pos)\n}\n\nexport const addPositionToWords = (words) => {\n return reduce(words, (result, word) => {\n const data = {\n word,\n start: 0,\n end: word.length\n }\n\n if (result.length > 0) {\n const previous = result.pop()\n\n data.start += previous.end\n data.end += previous.end\n\n result.push(previous)\n }\n\n result.push(data)\n\n return result\n }, [])\n}\n\nexport const splitByWhitespaceBoundary = (str) => {\n const result = []\n let currentWord = ''\n for (let i = 0; i < str.length; i++) {\n const currentChar = str[i]\n // Starting a new word\n if (!currentWord) {\n currentWord = currentChar\n continue\n }\n // current character is whitespace while word isn't, or vice versa:\n // add our current word to results, start over the current word.\n if (!!currentChar.trim() !== !!currentWord.trim()) {\n result.push(currentWord)\n currentWord = currentChar\n continue\n }\n currentWord += currentChar\n }\n // Add the last word we were working on\n if (currentWord) {\n result.push(currentWord)\n }\n return result\n}\n\nconst completion = {\n wordAtPosition,\n addPositionToWords,\n splitByWhitespaceBoundary,\n replaceWord\n}\n\nexport default completion\n","const ScreenReaderNotice = {\n props: {\n ariaLive: {\n type: String,\n defualt: 'assertive'\n }\n },\n data () {\n return {\n currentText: ''\n }\n },\n methods: {\n announce (text) {\n this.currentText = text\n setTimeout(() => { this.currentText = '' }, 1000)\n }\n }\n}\n\nexport default ScreenReaderNotice\n","import { render } from \"./screen_reader_notice.vue?vue&type=template&id=4978e64a\"\nimport script from \"./screen_reader_notice.js?vue&type=script&lang=js\"\nexport * from \"./screen_reader_notice.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n class=\"visible-for-screenreader-only\"\n :aria-live=\"ariaLive\"\n >\n {{ currentText }}\n </div>\n</template>\n\n<script src=\"./screen_reader_notice.js\"></script>\n","import Completion from '../../services/completion/completion.js'\nimport genRandomSeed from '../../services/random_seed/random_seed.service.js'\nimport EmojiPicker from '../emoji_picker/emoji_picker.vue'\nimport Popover from 'src/components/popover/popover.vue'\nimport ScreenReaderNotice from 'src/components/screen_reader_notice/screen_reader_notice.vue'\nimport UnicodeDomainIndicator from '../unicode_domain_indicator/unicode_domain_indicator.vue'\nimport { take } from 'lodash'\nimport { findOffset } from '../../services/offset_finder/offset_finder.service.js'\nimport { ensureFinalFallback } from '../../i18n/languages.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faSmileBeam\n} from '@fortawesome/free-regular-svg-icons'\n\nlibrary.add(\n faSmileBeam\n)\n\n/**\n * EmojiInput - augmented inputs for emoji and autocomplete support in inputs\n * without having to give up the comfort of <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 emits: ['update:modelValue', 'shown'],\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 modelValue: {\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 placement: {\n /**\n * Forces the panel to take a specific position relative to the input element.\n * The 'auto' placement chooses either bottom or top depending on which has the available space (when both have available space, bottom is preferred).\n */\n required: false,\n type: String, // 'auto', 'top', 'bottom'\n default: 'auto'\n },\n newlineOnCtrlEnter: {\n required: false,\n type: Boolean,\n default: false\n }\n },\n data () {\n return {\n randomSeed: genRandomSeed(),\n input: undefined,\n caretEl: undefined,\n highlighted: -1,\n caret: 0,\n focused: false,\n blurTimeout: null,\n temporarilyHideSuggestions: false,\n disableClickOutside: false,\n suggestions: [],\n overlayStyle: {},\n pickerShown: false\n }\n },\n components: {\n Popover,\n EmojiPicker,\n UnicodeDomainIndicator,\n ScreenReaderNotice\n },\n computed: {\n padEmoji () {\n return this.$store.getters.mergedConfig.padEmoji\n },\n defaultCandidateIndex () {\n return this.$store.getters.mergedConfig.autocompleteSelect ? 0 : -1\n },\n preText () {\n return this.modelValue.slice(0, this.caret)\n },\n postText () {\n return this.modelValue.slice(this.caret)\n },\n showSuggestions () {\n return this.focused &&\n this.suggestions &&\n this.suggestions.length > 0 &&\n !this.pickerShown &&\n !this.temporarilyHideSuggestions\n },\n textAtCaret () {\n return this.wordAtCaret?.word\n },\n wordAtCaret () {\n if (this.modelValue && this.caret) {\n const word = Completion.wordAtPosition(this.modelValue, this.caret - 1) || {}\n return word\n }\n },\n languages () {\n return ensureFinalFallback(this.$store.getters.mergedConfig.interfaceLanguage)\n },\n maybeLocalizedEmojiNamesAndKeywords () {\n return emoji => {\n const names = [emoji.displayText]\n const keywords = []\n\n if (emoji.displayTextI18n) {\n names.push(this.$t(emoji.displayTextI18n.key, emoji.displayTextI18n.args))\n }\n\n if (emoji.annotations) {\n this.languages.forEach(lang => {\n names.push(emoji.annotations[lang]?.name)\n\n keywords.push(...(emoji.annotations[lang]?.keywords || []))\n })\n }\n\n return {\n names: names.filter(k => k),\n keywords: keywords.filter(k => k)\n }\n }\n },\n maybeLocalizedEmojiName () {\n return emoji => {\n if (!emoji.annotations) {\n return emoji.displayText\n }\n\n if (emoji.displayTextI18n) {\n return this.$t(emoji.displayTextI18n.key, emoji.displayTextI18n.args)\n }\n\n for (const lang of this.languages) {\n if (emoji.annotations[lang]?.name) {\n return emoji.annotations[lang].name\n }\n }\n\n return emoji.displayText\n }\n },\n onInputScroll () {\n this.$refs.hiddenOverlay.scrollTo({\n top: this.input.scrollTop,\n left: this.input.scrollLeft\n })\n },\n suggestionListId () {\n return `suggestions-${this.randomSeed}`\n },\n suggestionItemId () {\n return (index) => `suggestion-item-${index}-${this.randomSeed}`\n }\n },\n mounted () {\n const { root, hiddenOverlayCaret, suggestorPopover } = this.$refs\n const input = root.querySelector('.emoji-input > input') || root.querySelector('.emoji-input > textarea')\n if (!input) return\n this.input = input\n this.caretEl = hiddenOverlayCaret\n if (suggestorPopover.setAnchorEl) {\n suggestorPopover.setAnchorEl(this.caretEl) // unit test compat\n this.$refs.picker.setAnchorEl(this.caretEl)\n } else {\n console.warn('setAnchorEl not found, are we in a unit test?')\n }\n const style = getComputedStyle(this.input)\n this.overlayStyle.padding = style.padding\n this.overlayStyle.border = style.border\n this.overlayStyle.margin = style.margin\n this.overlayStyle.lineHeight = style.lineHeight\n this.overlayStyle.fontFamily = style.fontFamily\n this.overlayStyle.fontSize = style.fontSize\n this.overlayStyle.wordWrap = style.wordWrap\n this.overlayStyle.whiteSpace = style.whiteSpace\n this.resize()\n input.addEventListener('blur', this.onBlur)\n input.addEventListener('focus', this.onFocus)\n input.addEventListener('paste', this.onPaste)\n input.addEventListener('keyup', this.onKeyUp)\n input.addEventListener('keydown', this.onKeyDown)\n input.addEventListener('click', this.onClickInput)\n input.addEventListener('transitionend', this.onTransition)\n input.addEventListener('input', this.onInput)\n input.addEventListener('scroll', this.onInputScroll)\n },\n unmounted () {\n const { input } = this\n if (input) {\n input.removeEventListener('blur', this.onBlur)\n input.removeEventListener('focus', this.onFocus)\n input.removeEventListener('paste', this.onPaste)\n input.removeEventListener('keyup', this.onKeyUp)\n input.removeEventListener('keydown', this.onKeyDown)\n input.removeEventListener('click', this.onClickInput)\n input.removeEventListener('transitionend', this.onTransition)\n input.removeEventListener('input', this.onInput)\n input.removeEventListener('scroll', this.onInputScroll)\n }\n },\n watch: {\n showSuggestions: function (newValue, oldValue) {\n this.$emit('shown', newValue)\n if (newValue) {\n this.$refs.suggestorPopover.showPopover()\n } else {\n this.$refs.suggestorPopover.hidePopover()\n }\n },\n textAtCaret: async function (newWord) {\n if (newWord === undefined) return\n const firstchar = newWord.charAt(0)\n if (newWord === firstchar) {\n this.suggestions = []\n return\n }\n const matchedSuggestions = await this.suggest(newWord, this.maybeLocalizedEmojiNamesAndKeywords)\n // Async: cancel if textAtCaret has changed during wait\n if (this.textAtCaret !== newWord || matchedSuggestions.length <= 0) {\n this.suggestions = []\n return\n }\n this.suggestions = take(matchedSuggestions, 5)\n .map(({ imageUrl, ...rest }) => ({\n ...rest,\n img: imageUrl || ''\n }))\n this.highlighted = this.defaultCandidateIndex\n this.$refs.screenReaderNotice.announce(\n this.$tc('tool_tip.autocomplete_available',\n this.suggestions.length,\n { number: this.suggestions.length }))\n }\n },\n methods: {\n triggerShowPicker () {\n this.$nextTick(() => {\n this.$refs.picker.showPicker()\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.focus()\n if (!this.pickerShown) {\n this.scrollIntoView()\n this.$refs.picker.showPicker()\n this.$refs.picker.startEmojiLoad()\n } else {\n this.$refs.picker.hidePicker()\n }\n },\n replace (replacement) {\n const newValue = Completion.replaceWord(this.modelValue, this.wordAtCaret, replacement)\n this.$emit('update:modelValue', newValue)\n this.caret = 0\n },\n insert ({ insertion, keepOpen, surroundingSpace = true }) {\n const before = this.modelValue.substring(0, this.caret) || ''\n const after = this.modelValue.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 = (surroundingSpace && !isSpaceRegex.exec(before.slice(-1)) && before.length && this.padEmoji > 0) ? ' ' : ''\n const spaceAfter = (surroundingSpace && !isSpaceRegex.exec(after[0]) && this.padEmoji) ? ' ' : ''\n\n const newValue = [\n before,\n spaceBefore,\n insertion,\n spaceAfter,\n after\n ].join('')\n this.$emit('update:modelValue', newValue)\n const position = this.caret + (insertion + spaceAfter + spaceBefore).length\n if (!keepOpen) {\n this.input.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.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.modelValue, this.wordAtCaret, replacement)\n this.$emit('update:modelValue', 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.focus()\n // Set selection right after the replacement instead of the very end\n this.input.setSelectionRange(position, position)\n this.caret = position\n })\n e.preventDefault()\n }\n },\n cycleBackward (e) {\n const len = this.suggestions.length || 0\n\n this.highlighted -= 1\n if (this.highlighted === -1) {\n this.input.focus()\n } else if (this.highlighted < -1) {\n this.highlighted = len - 1\n }\n if (len > 0) {\n e.preventDefault()\n }\n },\n cycleForward (e) {\n const len = this.suggestions.length || 0\n\n this.highlighted += 1\n if (this.highlighted >= len) {\n this.highlighted = -1\n this.input.focus()\n }\n if (len > 0) {\n e.preventDefault()\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\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 onPickerShown () {\n this.pickerShown = true\n },\n onPickerClosed () {\n this.pickerShown = false\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 }, 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 this.focused = true\n this.setCaret(e)\n this.temporarilyHideSuggestions = false\n },\n onKeyUp (e) {\n const { key } = e\n this.setCaret(e)\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 },\n onKeyDown (e) {\n const { ctrlKey, shiftKey, key } = e\n if (this.newlineOnCtrlEnter && ctrlKey && key === 'Enter') {\n this.insert({ insertion: '\\n', surroundingSpace: false })\n // Ensure only one new line is added on macos\n e.stopPropagation()\n e.preventDefault()\n\n // Scroll the input element to the position of the cursor\n this.$nextTick(() => {\n this.input.blur()\n this.input.focus()\n })\n }\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.focus()\n }\n }\n },\n onInput (e) {\n this.setCaret(e)\n this.$emit('update:modelValue', e.target.value)\n },\n onStickerUploaded (e) {\n this.$emit('sticker-uploaded', e)\n },\n onStickerUploadFailed (e) {\n this.$emit('sticker-upload-Failed', e)\n },\n setCaret ({ target: { selectionStart } }) {\n this.caret = selectionStart\n this.$nextTick(() => {\n this.$refs.suggestorPopover.updateStyles()\n })\n },\n resize () {\n },\n autoCompleteItemLabel (suggestion) {\n if (suggestion.user) {\n return suggestion.displayText + ' ' + suggestion.detailText\n } else {\n return this.maybeLocalizedEmojiName(suggestion)\n }\n }\n }\n}\n\nexport default EmojiInput\n","import { render } from \"./emoji_input.vue?vue&type=template&id=401ef83a\"\nimport script from \"./emoji_input.js?vue&type=script&lang=js\"\nexport * from \"./emoji_input.js?vue&type=script&lang=js\"\n\nimport \"./emoji_input.vue?vue&type=style&index=0&id=401ef83a&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Popover\n ref=\"popover\"\n trigger=\"click\"\n popover-class=\"emoji-picker popover-default\"\n :trigger-attrs=\"{ 'aria-hidden': true, tabindex: -1 }\"\n @show=\"onPopoverShown\"\n @close=\"onPopoverClosed\"\n >\n <template #content>\n <div class=\"heading\">\n <!--\n Body scroll lock needs to be on every scrollable element on safari iOS.\n Here we tell it to enable scrolling for this element.\n See https://github.com/willmcpo/body-scroll-lock#vanilla-js\n -->\n <span\n ref=\"header\"\n v-body-scroll-lock=\"isInModal\"\n class=\"emoji-tabs\"\n >\n <span\n v-for=\"group in filteredEmojiGroups\"\n :ref=\"setGroupRef('group-header-' + group.id)\"\n :key=\"group.id\"\n class=\"emoji-tabs-item\"\n :class=\"{\n active: activeGroupView === group.id\n }\"\n :title=\"group.text\"\n role=\"button\"\n @click.prevent=\"highlight(group.id)\"\n >\n <span\n v-if=\"group.image\"\n class=\"emoji-picker-header-image\"\n >\n <still-image\n :alt=\"group.text\"\n :src=\"group.image\"\n />\n </span>\n <FAIcon\n v-else\n :icon=\"group.icon\"\n fixed-width\n />\n </span>\n </span>\n <span\n v-if=\"stickerPickerEnabled\"\n class=\"additional-tabs\"\n >\n <span\n class=\"stickers-tab-icon additional-tabs-item\"\n :class=\"{active: showingStickers}\"\n :title=\"$t('emoji.stickers')\"\n @click.prevent=\"toggleStickers\"\n >\n <FAIcon\n icon=\"sticky-note\"\n fixed-width\n />\n </span>\n </span>\n </div>\n <div\n v-if=\"contentLoaded\"\n class=\"content\"\n >\n <div\n class=\"emoji-content\"\n :class=\"{hidden: showingStickers}\"\n >\n <div class=\"emoji-search\">\n <input\n ref=\"search\"\n v-model=\"keyword\"\n type=\"text\"\n class=\"form-control\"\n :placeholder=\"$t('emoji.search_emoji')\"\n @input=\"$event.target.composing = false\"\n >\n </div>\n <!-- Enables scrolling for this element on safari iOS. See comments for header. -->\n <DynamicScroller\n ref=\"emoji-groups\"\n v-body-scroll-lock=\"isInModal\"\n class=\"emoji-groups\"\n :class=\"groupsScrolledClass\"\n :min-item-size=\"minItemSize\"\n :items=\"emojiItems\"\n :emit-update=\"true\"\n @update=\"onScroll\"\n @visible=\"recalculateItemPerRow\"\n @resize=\"recalculateItemPerRow\"\n >\n <template #default=\"{ item: group, index, active }\">\n <DynamicScrollerItem\n :ref=\"setGroupRef('group-' + group.id)\"\n :item=\"group\"\n :active=\"active\"\n :data-index=\"index\"\n :size-dependencies=\"[group.emojis.length]\"\n >\n <div\n class=\"emoji-group\"\n >\n <h6\n v-if=\"group.isFirstRow\"\n class=\"emoji-group-title\"\n >\n {{ group.text }}\n </h6>\n <span\n v-for=\"emoji in group.emojis\"\n :key=\"group.id + emoji.displayText\"\n :title=\"maybeLocalizedEmojiName(emoji)\"\n class=\"emoji-item\"\n role=\"button\"\n @click.stop.prevent=\"onEmoji(emoji)\"\n >\n <span\n v-if=\"!emoji.imageUrl\"\n class=\"emoji-picker-emoji -unicode\"\n >{{ emoji.replacement }}</span>\n <still-image\n v-else\n class=\"emoji-picker-emoji -custom\"\n loading=\"lazy\"\n :alt=\"maybeLocalizedEmojiName(emoji)\"\n :src=\"emoji.imageUrl\"\n :data-emoji-name=\"group.id + emoji.displayText\"\n />\n </span>\n </div>\n </DynamicScrollerItem>\n </template>\n </DynamicScroller>\n <div class=\"keep-open\">\n <Checkbox v-model=\"keepOpen\">\n {{ $t('emoji.keep_open') }}\n </Checkbox>\n </div>\n </div>\n <div\n v-if=\"showingStickers\"\n class=\"stickers-content\"\n >\n <sticker-picker\n @uploaded=\"onStickerUploaded\"\n @upload-failed=\"onStickerUploadFailed\"\n />\n </div>\n </div>\n </template>\n </Popover>\n</template>\n\n<script src=\"./emoji_picker.js\"></script>\n<style lang=\"scss\" src=\"./emoji_picker.scss\"></style>\n","import { defineAsyncComponent } from 'vue'\nimport Checkbox from '../checkbox/checkbox.vue'\nimport Popover from 'src/components/popover/popover.vue'\nimport StillImage from '../still-image/still-image.vue'\nimport { ensureFinalFallback } from '../../i18n/languages.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faBoxOpen,\n faStickyNote,\n faSmileBeam,\n faSmile,\n faUser,\n faPaw,\n faIceCream,\n faBus,\n faBasketballBall,\n faLightbulb,\n faCode,\n faFlag\n} from '@fortawesome/free-solid-svg-icons'\nimport { debounce, trim, chunk } from 'lodash'\n\nlibrary.add(\n faBoxOpen,\n faStickyNote,\n faSmileBeam,\n faSmile,\n faUser,\n faPaw,\n faIceCream,\n faBus,\n faBasketballBall,\n faLightbulb,\n faCode,\n faFlag\n)\n\nconst UNICODE_EMOJI_GROUP_ICON = {\n 'smileys-and-emotion': 'smile',\n 'people-and-body': 'user',\n 'animals-and-nature': 'paw',\n 'food-and-drink': 'ice-cream',\n 'travel-and-places': 'bus',\n activities: 'basketball-ball',\n objects: 'lightbulb',\n symbols: 'code',\n flags: 'flag'\n}\n\nconst maybeLocalizedKeywords = (emoji, languages, nameLocalizer) => {\n const res = [emoji.displayText, nameLocalizer(emoji)]\n if (emoji.annotations) {\n languages.forEach(lang => {\n const keywords = emoji.annotations[lang]?.keywords || []\n const name = emoji.annotations[lang]?.name\n res.push(...(keywords.concat([name]).filter(k => k)))\n })\n }\n return res\n}\n\nconst filterByKeyword = (list, keyword = '', languages, nameLocalizer) => {\n if (keyword === '') return list\n\n const keywordLowercase = keyword.toLowerCase()\n const orderedEmojiList = []\n for (const emoji of list) {\n const indices = maybeLocalizedKeywords(emoji, languages, nameLocalizer)\n .map(k => k.toLowerCase().indexOf(keywordLowercase))\n .filter(k => k > -1)\n\n const indexOfKeyword = indices.length ? Math.min(...indices) : -1\n\n if (indexOfKeyword > -1) {\n if (!Array.isArray(orderedEmojiList[indexOfKeyword])) {\n orderedEmojiList[indexOfKeyword] = []\n }\n orderedEmojiList[indexOfKeyword].push(emoji)\n }\n }\n return orderedEmojiList.flat()\n}\n\nconst getOffset = (elem) => {\n const style = elem.style.transform\n const res = /translateY\\((\\d+)px\\)/.exec(style)\n if (!res) { return 0 }\n return res[1]\n}\n\nconst toHeaderId = id => {\n return id.replace(/^row-\\d+-/, '')\n}\n\nconst EmojiPicker = {\n props: {\n enableStickerPicker: {\n required: false,\n type: Boolean,\n default: false\n },\n hideCustomEmoji: {\n required: false,\n type: Boolean,\n default: false\n }\n },\n inject: ['popoversZLayer'],\n data () {\n return {\n keyword: '',\n activeGroup: 'custom',\n showingStickers: false,\n groupsScrolledClass: 'scrolled-top',\n keepOpen: false,\n customEmojiTimeout: null,\n // Lazy-load only after the first time `showing` becomes true.\n contentLoaded: false,\n groupRefs: {},\n emojiRefs: {},\n filteredEmojiGroups: [],\n width: 0\n }\n },\n components: {\n StickerPicker: defineAsyncComponent(() => import('../sticker_picker/sticker_picker.vue')),\n Checkbox,\n StillImage,\n Popover\n },\n methods: {\n showPicker () {\n this.$refs.popover.showPopover()\n this.onShowing()\n },\n hidePicker () {\n this.$refs.popover.hidePopover()\n },\n setAnchorEl (el) {\n this.$refs.popover.setAnchorEl(el)\n },\n setGroupRef (name) {\n return el => { this.groupRefs[name] = el }\n },\n onPopoverShown () {\n this.$emit('show')\n },\n onPopoverClosed () {\n this.$emit('close')\n },\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 if (!this.keepOpen) {\n this.$refs.popover.hidePopover()\n }\n this.$emit('emoji', { insertion: value, keepOpen: this.keepOpen })\n },\n onScroll (startIndex, endIndex, visibleStartIndex, visibleEndIndex) {\n const target = this.$refs['emoji-groups'].$el\n this.scrolledGroup(target, visibleStartIndex, visibleEndIndex)\n },\n scrolledGroup (target, start, end) {\n const top = target.scrollTop + 5\n this.$nextTick(() => {\n this.emojiItems.slice(start, end + 1).forEach(group => {\n const headerId = toHeaderId(group.id)\n const ref = this.groupRefs['group-' + group.id]\n if (!ref) { return }\n const elem = ref.$el.parentElement\n if (!elem) { return }\n if (elem && getOffset(elem) <= top) {\n this.activeGroup = headerId\n }\n })\n this.scrollHeader()\n })\n },\n scrollHeader () {\n // Scroll the active tab's header into view\n const headerRef = this.groupRefs['group-header-' + this.activeGroup]\n const left = headerRef.offsetLeft\n const right = left + headerRef.offsetWidth\n const headerCont = this.$refs.header\n const currentScroll = headerCont.scrollLeft\n const currentScrollRight = currentScroll + headerCont.clientWidth\n const setScroll = s => { headerCont.scrollLeft = s }\n\n const margin = 7 // .emoji-tabs-item: padding\n if (left - margin < currentScroll) {\n setScroll(left - margin)\n } else if (right + margin > currentScrollRight) {\n setScroll(right + margin - headerCont.clientWidth)\n }\n },\n highlight (groupId) {\n this.setShowStickers(false)\n const indexInList = this.emojiItems.findIndex(k => k.id === groupId)\n this.$refs['emoji-groups'].scrollToItem(indexInList)\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 toggleStickers () {\n this.showingStickers = !this.showingStickers\n },\n setShowStickers (value) {\n this.showingStickers = value\n },\n filterByKeyword (list, keyword) {\n return filterByKeyword(list, keyword, this.languages, this.maybeLocalizedEmojiName)\n },\n onShowing () {\n const oldContentLoaded = this.contentLoaded\n this.recalculateItemPerRow()\n this.$nextTick(() => {\n this.$refs.search.focus()\n })\n this.contentLoaded = true\n this.filteredEmojiGroups = this.getFilteredEmojiGroups()\n if (!oldContentLoaded) {\n this.$nextTick(() => {\n if (this.defaultGroup) {\n this.highlight(this.defaultGroup)\n }\n })\n }\n },\n getFilteredEmojiGroups () {\n return this.allEmojiGroups\n .map(group => ({\n ...group,\n emojis: this.filterByKeyword(group.emojis, trim(this.keyword))\n }))\n .filter(group => group.emojis.length > 0)\n },\n recalculateItemPerRow () {\n this.$nextTick(() => {\n if (!this.$refs['emoji-groups']) {\n return\n }\n this.width = this.$refs['emoji-groups'].$el.clientWidth\n })\n }\n },\n watch: {\n keyword () {\n this.onScroll()\n this.debouncedHandleKeywordChange()\n },\n allCustomGroups () {\n this.filteredEmojiGroups = this.getFilteredEmojiGroups()\n }\n },\n computed: {\n minItemSize () {\n return this.emojiHeight\n },\n emojiHeight () {\n return 32 + 4\n },\n emojiWidth () {\n return 32 + 4\n },\n itemPerRow () {\n return this.width ? Math.floor(this.width / this.emojiWidth - 1) : 6\n },\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 allCustomGroups () {\n if (this.hideCustomEmoji) {\n return {}\n }\n const emojis = this.$store.getters.groupedCustomEmojis\n if (emojis.unpacked) {\n emojis.unpacked.text = this.$t('emoji.unpacked')\n }\n return emojis\n },\n defaultGroup () {\n return Object.keys(this.allCustomGroups)[0]\n },\n unicodeEmojiGroups () {\n return this.$store.getters.standardEmojiGroupList.map(group => ({\n id: `standard-${group.id}`,\n text: this.$t(`emoji.unicode_groups.${group.id}`),\n icon: UNICODE_EMOJI_GROUP_ICON[group.id],\n emojis: group.emojis\n }))\n },\n allEmojiGroups () {\n return Object.entries(this.allCustomGroups)\n .map(([_, v]) => v)\n .concat(this.unicodeEmojiGroups)\n },\n stickerPickerEnabled () {\n return (this.$store.state.instance.stickers || []).length !== 0\n },\n debouncedHandleKeywordChange () {\n return debounce(() => {\n this.filteredEmojiGroups = this.getFilteredEmojiGroups()\n }, 500)\n },\n emojiItems () {\n return this.filteredEmojiGroups.map(group =>\n chunk(group.emojis, this.itemPerRow)\n .map((items, index) => ({\n ...group,\n id: index === 0 ? group.id : `row-${index}-${group.id}`,\n emojis: items,\n isFirstRow: index === 0\n })))\n .reduce((a, c) => a.concat(c), [])\n },\n languages () {\n return ensureFinalFallback(this.$store.getters.mergedConfig.interfaceLanguage)\n },\n maybeLocalizedEmojiName () {\n return emoji => {\n if (!emoji.annotations) {\n return emoji.displayText\n }\n\n if (emoji.displayTextI18n) {\n return this.$t(emoji.displayTextI18n.key, emoji.displayTextI18n.args)\n }\n\n for (const lang of this.languages) {\n if (emoji.annotations[lang]?.name) {\n return emoji.annotations[lang].name\n }\n }\n\n return emoji.displayText\n }\n },\n isInModal () {\n return this.popoversZLayer === 'modals'\n }\n }\n}\n\nexport default EmojiPicker\n","import { render } from \"./emoji_picker.vue?vue&type=template&id=81286978\"\nimport script from \"./emoji_picker.js?vue&type=script&lang=js\"\nexport * from \"./emoji_picker.js?vue&type=script&lang=js\"\n\nimport \"./emoji_picker.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","const createRuffleService = () => {\n let ruffleInstance = null\n\n const getRuffle = () => new Promise((resolve, reject) => {\n if (ruffleInstance) {\n resolve(ruffleInstance)\n return\n }\n // Ruffle needs these to be set before it's loaded\n // https://github.com/ruffle-rs/ruffle/issues/3952\n window.RufflePlayer = {}\n window.RufflePlayer.config = {\n polyfills: false,\n publicPath: '/static/ruffle'\n }\n\n // Currently it's seems like a better way of loading ruffle\n // because it needs the wasm publically accessible, but it needs path to it\n // and filename of wasm seems to be pseudo-randomly generated (is it a hash?)\n const script = document.createElement('script')\n // see webpack config, using CopyPlugin to copy it from node_modules\n // provided via ruffle-mirror\n script.src = '/static/ruffle/ruffle.js'\n script.type = 'text/javascript'\n script.onerror = (e) => { reject(e) }\n script.onabort = (e) => { reject(e) }\n script.oncancel = (e) => { reject(e) }\n script.onload = () => {\n ruffleInstance = window.RufflePlayer\n resolve(ruffleInstance)\n }\n document.body.appendChild(script)\n })\n\n return { getRuffle }\n}\n\nconst RuffleService = createRuffleService()\n\nexport default RuffleService\n","<template>\n <div class=\"Flash\">\n <div\n v-if=\"player === true || player === 'hidden'\"\n ref=\"container\"\n class=\"player\"\n :class=\"{ hidden: player === 'hidden' }\"\n />\n <button\n v-if=\"player !== true\"\n class=\"button-unstyled placeholder\"\n @click=\"openPlayer\"\n >\n <span\n v-if=\"player === 'hidden'\"\n class=\"label\"\n >\n {{ $t('general.loading') }}\n </span>\n <span\n v-if=\"player === 'error'\"\n class=\"label\"\n >\n {{ $t('general.flash_fail') }}\n </span>\n <span\n v-else\n class=\"label\"\n >\n <p>\n {{ $t('general.flash_content') }}\n </p>\n <p>\n <FAIcon icon=\"exclamation-triangle\" />\n {{ $t('general.flash_security') }}\n </p>\n </span>\n </button>\n </div>\n</template>\n\n<script src=\"./flash.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.Flash {\n display: inline-block;\n width: 100%;\n height: 100%;\n position: relative;\n\n .player {\n height: 100%;\n width: 100%;\n }\n\n .placeholder {\n height: 100%;\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--bg);\n color: var(--link);\n }\n\n .hider {\n top: 0;\n }\n\n .label {\n text-align: center;\n flex: 1 1 0;\n line-height: 1.2;\n white-space: normal;\n word-wrap: normal;\n }\n\n .hidden {\n display: none;\n visibility: \"hidden\";\n }\n}\n</style>\n","import RuffleService from '../../services/ruffle_service/ruffle_service.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faStop,\n faExclamationTriangle\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faStop,\n faExclamationTriangle\n)\n\nconst Flash = {\n props: ['src'],\n data () {\n return {\n player: false, // can be true, \"hidden\", false. hidden = element exists\n loaded: false,\n ruffleInstance: null\n }\n },\n methods: {\n openPlayer () {\n if (this.player) return // prevent double-loading, or re-loading on failure\n this.player = 'hidden'\n RuffleService.getRuffle().then((ruffle) => {\n const player = ruffle.newest().createPlayer()\n player.config = {\n letterbox: 'on'\n }\n const container = this.$refs.container\n container.appendChild(player)\n player.style.width = '100%'\n player.style.height = '100%'\n player.load(this.src).then(() => {\n this.player = true\n }).catch((e) => {\n console.error('Error loading ruffle', e)\n this.player = 'error'\n })\n this.ruffleInstance = player\n this.$emit('playerOpened')\n })\n },\n closePlayer () {\n this.ruffleInstance && this.ruffleInstance.remove()\n this.player = false\n this.$emit('playerClosed')\n }\n }\n}\n\nexport default Flash\n","import { render } from \"./flash.vue?vue&type=template&id=651ce37d\"\nimport script from \"./flash.js?vue&type=script&lang=js\"\nexport * from \"./flash.js?vue&type=script&lang=js\"\n\nimport \"./flash.vue?vue&type=style&index=0&id=651ce37d&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","const fetchRelationship = (attempt, userId, store) => new Promise((resolve, reject) => {\n setTimeout(() => {\n store.state.api.backendInteractor.fetchUserRelationship({ id: userId })\n .then((relationship) => {\n store.commit('updateUserRelationship', [relationship])\n return relationship\n })\n .then((relationship) => resolve([relationship.following, relationship.requested, relationship.locked, attempt]))\n .catch((e) => reject(e))\n }, 500)\n}).then(([following, sent, locked, attempt]) => {\n if (!following && !(locked && sent) && attempt <= 3) {\n // If we BE reports that we still not following that user - retry,\n // increment attempts by one\n fetchRelationship(++attempt, userId, store)\n }\n})\n\nexport const requestFollow = (userId, store) => new Promise((resolve, reject) => {\n store.state.api.backendInteractor.followUser({ id: userId })\n .then((updated) => {\n store.commit('updateUserRelationship', [updated])\n\n if (updated.following || (updated.locked && updated.requested)) {\n // If we get result immediately or the account is locked, just stop.\n resolve()\n return\n }\n\n // But usually we don't get result immediately, so we ask server\n // for updated user profile to confirm if we are following them\n // Sometimes it takes several tries. Sometimes we end up not following\n // user anyway, probably because they locked themselves and we\n // don't know that yet.\n // Recursive Promise, it will call itself up to 3 times.\n\n return fetchRelationship(1, updated, store)\n .then(() => {\n resolve()\n })\n })\n})\n\nexport const requestUnfollow = (userId, store) => new Promise((resolve, reject) => {\n store.state.api.backendInteractor.unfollowUser({ id: userId })\n .then((updated) => {\n store.commit('updateUserRelationship', [updated])\n resolve({\n updated\n })\n })\n})\n","import ConfirmModal from '../confirm_modal/confirm_modal.vue'\nimport { requestFollow, requestUnfollow } from '../../services/follow_manipulate/follow_manipulate'\nexport default {\n props: ['relationship', 'user', 'labelFollowing', 'buttonClass'],\n components: {\n ConfirmModal\n },\n data () {\n return {\n inProgress: false,\n showingConfirmUnfollow: false\n }\n },\n computed: {\n shouldConfirmUnfollow () {\n return this.$store.getters.mergedConfig.modalOnUnfollow\n },\n isPressed () {\n return this.inProgress || this.relationship.following\n },\n title () {\n if (this.inProgress || this.relationship.following) {\n return this.$t('user_card.follow_unfollow')\n } else if (this.relationship.requested) {\n return this.$t('user_card.follow_cancel')\n } else {\n return this.$t('user_card.follow')\n }\n },\n label () {\n if (this.inProgress) {\n return this.$t('user_card.follow_progress')\n } else if (this.relationship.following) {\n return this.labelFollowing || this.$t('user_card.following')\n } else if (this.relationship.requested) {\n return this.$t('user_card.follow_sent')\n } else {\n return this.$t('user_card.follow')\n }\n },\n disabled () {\n return this.inProgress || this.user.deactivated\n }\n },\n methods: {\n showConfirmUnfollow () {\n this.showingConfirmUnfollow = true\n },\n hideConfirmUnfollow () {\n this.showingConfirmUnfollow = false\n },\n onClick () {\n this.relationship.following || this.relationship.requested ? this.unfollow() : this.follow()\n },\n follow () {\n this.inProgress = true\n requestFollow(this.relationship.id, this.$store).then(() => {\n this.inProgress = false\n })\n },\n unfollow () {\n if (this.shouldConfirmUnfollow) {\n this.showConfirmUnfollow()\n } else {\n this.doUnfollow()\n }\n },\n doUnfollow () {\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 this.hideConfirmUnfollow()\n }\n }\n}\n","import { render } from \"./follow_button.vue?vue&type=template&id=6a0717e7\"\nimport script from \"./follow_button.js?vue&type=script&lang=js\"\nexport * from \"./follow_button.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <button\n class=\"btn button-default follow-button\"\n :class=\"{ toggled: isPressed }\"\n :disabled=\"disabled\"\n :title=\"title\"\n @click=\"onClick\"\n >\n {{ label }}\n <teleport to=\"#modal\">\n <confirm-modal\n v-if=\"showingConfirmUnfollow\"\n :title=\"$t('user_card.unfollow_confirm_title')\"\n :confirm-text=\"$t('user_card.unfollow_confirm_accept_button')\"\n :cancel-text=\"$t('user_card.unfollow_confirm_cancel_button')\"\n @accepted=\"doUnfollow\"\n @cancelled=\"hideConfirmUnfollow\"\n >\n <i18n-t\n keypath=\"user_card.unfollow_confirm\"\n tag=\"span\"\n >\n <template #user>\n <span\n v-text=\"user.screen_name_ui\"\n />\n </template>\n </i18n-t>\n </confirm-modal>\n </teleport>\n </button>\n</template>\n\n<script src=\"./follow_button.js\"></script>\n","<template>\n <div\n ref=\"galleryContainer\"\n class=\"Gallery\"\n :class=\"{ '-long': tooManyAttachments && hidingLong }\"\n >\n <div class=\"gallery-rows\">\n <div\n v-for=\"(row, rowIndex) in rows\"\n :key=\"rowIndex\"\n class=\"gallery-row\"\n :style=\"rowStyle(row)\"\n :class=\"{ '-audio': row.audio, '-minimal': row.minimal, '-grid': grid }\"\n >\n <div\n class=\"gallery-row-inner\"\n :class=\"{ '-grid': grid }\"\n >\n <Attachment\n v-for=\"(attachment, attachmentIndex) in row.items\"\n :key=\"attachment.id\"\n class=\"gallery-item\"\n :compact=\"compact\"\n :nsfw=\"nsfw\"\n :attachment=\"attachment\"\n :size=\"size\"\n :editable=\"editable\"\n :remove=\"removeAttachment\"\n :shift-up=\"!(attachmentIndex === 0 && rowIndex === 0) && shiftUpAttachment\"\n :shift-dn=\"!(attachmentIndex === row.items.length - 1 && rowIndex === rows.length - 1) && shiftDnAttachment\"\n :edit=\"editAttachment\"\n :description=\"descriptions && descriptions[attachment.id]\"\n :hide-description=\"size === 'small' || tooManyAttachments && hidingLong\"\n :style=\"itemStyle(attachment.id, row.items)\"\n @setMedia=\"onMedia\"\n @naturalSizeLoad=\"onNaturalSizeLoad\"\n />\n </div>\n </div>\n </div>\n <div\n v-if=\"tooManyAttachments\"\n class=\"many-attachments\"\n >\n <div class=\"many-attachments-text\">\n {{ $t(\"status.many_attachments\", { number: attachments.length }) }}\n </div>\n <div class=\"many-attachments-buttons\">\n <span\n v-if=\"!hidingLong\"\n class=\"many-attachments-button\"\n >\n <button\n class=\"button-unstyled -link\"\n @click=\"toggleHidingLong(true)\"\n >\n {{ $t(\"status.collapse_attachments\") }}\n </button>\n </span>\n <span\n v-if=\"hidingLong\"\n class=\"many-attachments-button\"\n >\n <button\n class=\"button-unstyled -link\"\n @click=\"toggleHidingLong(false)\"\n >\n {{ $t(\"status.show_all_attachments\") }}\n </button>\n </span>\n <span\n v-if=\"hidingLong\"\n class=\"many-attachments-button\"\n >\n <button\n class=\"button-unstyled -link\"\n @click=\"openGallery\"\n >\n {{ $t(\"status.open_gallery\") }}\n </button>\n </span>\n </div>\n </div>\n </div>\n</template>\n\n<script src='./gallery.js'></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.Gallery {\n .gallery-rows {\n display: flex;\n flex-direction: column;\n }\n\n .gallery-row {\n position: relative;\n height: 0;\n width: 100%;\n flex-grow: 1;\n\n .gallery-row-inner {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n display: flex;\n flex-flow: row wrap;\n align-content: stretch;\n\n .gallery-item {\n margin: 0 0.5em 0 0;\n flex-grow: 1;\n height: 100%;\n box-sizing: border-box;\n // to make failed images a bit more noticeable on chromium\n min-width: 2em;\n\n &:last-child {\n margin: 0;\n }\n }\n\n &.-grid {\n width: 100%;\n height: auto;\n position: relative;\n display: grid;\n grid-gap: 0.5em;\n grid-template-columns: repeat(auto-fill, minmax(15em, 1fr));\n\n .gallery-item {\n margin: 0;\n height: 200px;\n }\n }\n }\n\n &.-grid,\n &.-minimal {\n height: auto;\n\n .gallery-row-inner {\n position: relative;\n }\n }\n\n &:not(:first-child) {\n margin-top: 0.5em;\n }\n }\n\n &.-long {\n .gallery-rows {\n max-height: 25em;\n overflow: hidden;\n mask:\n linear-gradient(to top, white, transparent) bottom/100% 70px no-repeat,\n linear-gradient(to top, white, white);\n\n /* Autoprefixed seem to ignore this one, and also syntax is different */\n mask-composite: xor;\n mask-composite: exclude;\n }\n }\n\n .many-attachments-text {\n text-align: center;\n line-height: 2;\n }\n\n .many-attachments-buttons {\n display: flex;\n }\n\n .many-attachments-button {\n display: flex;\n flex: 1;\n justify-content: center;\n line-height: 2;\n\n button {\n padding: 0 2em;\n }\n }\n}\n</style>\n","import Attachment from '../attachment/attachment.vue'\nimport { sumBy, set } from 'lodash'\n\nconst Gallery = {\n props: [\n 'attachments',\n 'compact',\n 'limitRows',\n 'descriptions',\n 'limit',\n 'nsfw',\n 'setMedia',\n 'size',\n 'editable',\n 'removeAttachment',\n 'shiftUpAttachment',\n 'shiftDnAttachment',\n 'editAttachment',\n 'grid'\n ],\n data () {\n return {\n sizes: {},\n hidingLong: true\n }\n },\n components: { Attachment },\n computed: {\n rows () {\n if (!this.attachments) {\n return []\n }\n const attachments = this.limit > 0\n ? this.attachments.slice(0, this.limit)\n : this.attachments\n if (this.size === 'hide') {\n return attachments.map(item => ({ minimal: true, items: [item] }))\n }\n const rows = this.grid\n ? [{ grid: true, items: attachments }]\n : attachments.reduce((acc, attachment, i) => {\n if (attachment.mimetype.includes('audio')) {\n return [...acc, { audio: true, items: [attachment] }, { items: [] }]\n }\n if (!(\n attachment.mimetype.includes('image') ||\n attachment.mimetype.includes('video') ||\n attachment.mimetype.includes('flash')\n )) {\n return [...acc, { minimal: true, items: [attachment] }, { items: [] }]\n }\n const maxPerRow = 3\n const attachmentsRemaining = this.attachments.length - i + 1\n const currentRow = acc[acc.length - 1].items\n currentRow.push(attachment)\n if (currentRow.length >= maxPerRow && attachmentsRemaining > maxPerRow) {\n return [...acc, { items: [] }]\n } else {\n return acc\n }\n }, [{ items: [] }]).filter(_ => _.items.length > 0)\n return rows\n },\n attachmentsDimensionalScore () {\n return this.rows.reduce((acc, row) => {\n let size = 0\n if (row.minimal) {\n size += 1 / 8\n } else if (row.audio) {\n size += 1 / 4\n } else {\n size += 1 / (row.items.length + 0.6)\n }\n return acc + size\n }, 0)\n },\n tooManyAttachments () {\n if (this.editable || this.size === 'small') {\n return false\n } else if (this.size === 'hide') {\n return this.attachments.length > 8\n } else {\n return this.attachmentsDimensionalScore > 1\n }\n }\n },\n methods: {\n onNaturalSizeLoad ({ id, width, height }) {\n set(this.sizes, id, { width, height })\n },\n rowStyle (row) {\n if (row.audio) {\n return { 'padding-bottom': '25%' } // fixed reduced height for audio\n } else if (!row.minimal && !row.grid) {\n return { 'padding-bottom': `${(100 / (row.items.length + 0.6))}%` }\n }\n },\n itemStyle (id, row) {\n const total = sumBy(row, item => this.getAspectRatio(item.id))\n return { flex: `${this.getAspectRatio(id) / total} 1 0%` }\n },\n getAspectRatio (id) {\n const size = this.sizes[id]\n return size ? size.width / size.height : 1\n },\n toggleHidingLong (event) {\n this.hidingLong = event\n },\n openGallery () {\n this.$store.dispatch('setMedia', this.attachments)\n this.$store.dispatch('setCurrentMedia', this.attachments[0])\n },\n onMedia () {\n this.$store.dispatch('setMedia', this.attachments)\n }\n }\n}\n\nexport default Gallery\n","import { render } from \"./gallery.vue?vue&type=template&id=3f62ea7c\"\nimport script from \"./gallery.js?vue&type=script&lang=js\"\nexport * from \"./gallery.js?vue&type=script&lang=js\"\n\nimport \"./gallery.vue?vue&type=style&index=0&id=3f62ea7c&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"interface-language-switcher\">\n <label>\n {{ promptText }}\n </label>\n <ul class=\"setting-list\">\n <li\n v-for=\"index of controlledLanguage.keys()\"\n :key=\"index\"\n >\n <label>\n {{ index === 0 ? $t('settings.primary_language') : $tc('settings.fallback_language', index, { index }) }}\n <Select\n class=\"language-select\"\n :model-value=\"controlledLanguage[index]\"\n @update:modelValue=\"val => setLanguageAt(index, val)\"\n >\n <option\n v-for=\"lang in languages\"\n :key=\"lang.code\"\n :value=\"lang.code\"\n >\n {{ lang.name }}\n </option>\n </Select>\n </label>\n <button\n v-if=\"controlledLanguage.length > 1 && index !== 0\"\n class=\"button-default btn\"\n @click=\"() => removeLanguageAt(index)\"\n >\n {{ $t('settings.remove_language') }}\n </button>\n </li>\n <li>\n <button\n class=\"button-default btn\"\n @click=\"addLanguage\"\n >\n {{ $t('settings.add_language') }}\n </button>\n </li>\n </ul>\n </div>\n</template>\n\n<script>\nimport localeService from '../../services/locale/locale.service.js'\nimport Select from '../select/select.vue'\n\nexport default {\n components: {\n // eslint-disable-next-line vue/no-reserved-component-names\n Select\n },\n props: {\n promptText: {\n type: String,\n required: true\n },\n language: {\n type: [Array, String],\n required: true\n },\n setLanguage: {\n type: Function,\n required: true\n }\n },\n computed: {\n languages () {\n return localeService.languages\n },\n\n controlledLanguage: {\n get: function () {\n return Array.isArray(this.language) ? this.language : [this.language]\n },\n set: function (val) {\n this.setLanguage(val)\n }\n }\n },\n\n methods: {\n getLanguageName (code) {\n return localeService.getLanguageName(code)\n },\n addLanguage () {\n this.controlledLanguage = [...this.controlledLanguage, '']\n },\n setLanguageAt (index, val) {\n const lang = [...this.controlledLanguage]\n lang[index] = val\n this.controlledLanguage = lang\n },\n removeLanguageAt (index) {\n const lang = [...this.controlledLanguage]\n lang.splice(index, 1)\n this.controlledLanguage = lang\n }\n }\n}\n</script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.interface-language-switcher {\n .language-select {\n margin-right: 1em;\n }\n}\n</style>\n","import { render } from \"./interface_language_switcher.vue?vue&type=template&id=416a09f6\"\nimport script from \"./interface_language_switcher.vue?vue&type=script&lang=js\"\nexport * from \"./interface_language_switcher.vue?vue&type=script&lang=js\"\n\nimport \"./interface_language_switcher.vue?vue&type=style&index=0&id=416a09f6&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div>\n <a\n class=\"link-preview-card\"\n :href=\"card.url\"\n target=\"_blank\"\n rel=\"noopener\"\n >\n <div\n v-if=\"useImage && imageLoaded\"\n class=\"card-image\"\n >\n <img :src=\"card.image\">\n </div>\n <div class=\"card-content\">\n <span class=\"card-host faint\">\n <span\n v-if=\"censored\"\n class=\"nsfw-alert alert warning\"\n >{{ $t('status.nsfw') }}</span>\n {{ card.provider_name }}\n </span>\n <h4 class=\"card-title\">{{ card.title }}</h4>\n <p\n v-if=\"useDescription\"\n class=\"card-description\"\n >{{ card.description }}</p>\n </div>\n </a>\n </div>\n</template>\n\n<script src=\"./link-preview.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.link-preview-card {\n display: flex;\n flex-direction: row;\n cursor: pointer;\n overflow: hidden;\n margin-top: 0.5em;\n\n .card-image {\n flex-shrink: 0;\n width: 120px;\n max-width: 25%;\n\n img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: $fallback--attachmentRadius;\n border-radius: var(--attachmentRadius, $fallback--attachmentRadius);\n }\n }\n\n .card-content {\n max-height: 100%;\n margin: 0.5em;\n display: flex;\n flex-direction: column;\n }\n\n .card-host {\n font-size: 0.85em;\n }\n\n .card-description {\n margin: 0.5em 0 0;\n overflow: hidden;\n text-overflow: ellipsis;\n word-break: break-word;\n line-height: 1.2em;\n // cap description at 3 lines, the 1px is to clean up some stray pixels\n // TODO: fancier fade-out at the bottom to show off that it's too long?\n max-height: calc(1.2em * 3 - 1px);\n }\n\n .nsfw-alert {\n margin: 2em 0;\n }\n\n color: $fallback--text;\n color: var(--text, $fallback--text);\n border-style: solid;\n border-width: 1px;\n border-radius: $fallback--attachmentRadius;\n border-radius: var(--attachmentRadius, $fallback--attachmentRadius);\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n}\n</style>\n","import { mapGetters } from 'vuex'\n\nconst LinkPreview = {\n name: 'LinkPreview',\n props: [\n 'card',\n 'size',\n 'nsfw'\n ],\n data () {\n return {\n imageLoaded: false\n }\n },\n computed: {\n useImage () {\n // Currently BE shoudn't give cards if tagged NSFW, this is a bit paranoid\n // as it makes sure to hide the image if somehow NSFW tagged preview can\n // exist.\n return this.card.image && !this.censored && this.size !== 'hide'\n },\n censored () {\n return this.nsfw && this.hideNsfwConfig\n },\n useDescription () {\n return this.card.description && /\\S/.test(this.card.description)\n },\n hideNsfwConfig () {\n return this.mergedConfig.hideNsfw\n },\n ...mapGetters([\n 'mergedConfig'\n ])\n },\n created () {\n if (this.useImage) {\n const newImg = new Image()\n newImg.onload = () => {\n this.imageLoaded = true\n }\n newImg.src = this.card.image\n }\n }\n}\n\nexport default LinkPreview\n","import { render } from \"./link-preview.vue?vue&type=template&id=5bb8ccfc\"\nimport script from \"./link-preview.js?vue&type=script&lang=js\"\nexport * from \"./link-preview.js?vue&type=script&lang=js\"\n\nimport \"./link-preview.vue?vue&type=style&index=0&id=5bb8ccfc&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n class=\"list\"\n role=\"list\"\n >\n <div\n v-for=\"item in items\"\n :key=\"getKey(item)\"\n class=\"list-item\"\n role=\"listitem\"\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\";\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","import { render } from \"./list.vue?vue&type=template&id=033f777b\"\nimport script from \"./list.vue?vue&type=script&lang=js\"\nexport * from \"./list.vue?vue&type=script&lang=js\"\n\nimport \"./list.vue?vue&type=style&index=0&id=033f777b&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","/* eslint-env browser */\nimport statusPosterService from '../../services/status_poster/status_poster.service.js'\nimport fileSizeFormatService from '../../services/file_size_format/file_size_format.js'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faUpload, faCircleNotch } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faUpload,\n faCircleNotch\n)\n\nconst mediaUpload = {\n data () {\n return {\n uploadCount: 0,\n uploadReady: true\n }\n },\n computed: {\n uploading () {\n return this.uploadCount > 0\n }\n },\n methods: {\n onClick () {\n if (this.uploadReady) {\n this.$refs.input.click()\n }\n },\n uploadFile (file) {\n const self = this\n const store = this.$store\n if (file.size > store.state.instance.uploadlimit) {\n const filesize = fileSizeFormatService.fileSizeFormat(file.size)\n const allowedsize = fileSizeFormatService.fileSizeFormat(store.state.instance.uploadlimit)\n self.$emit('upload-failed', 'file_too_big', { filesize: filesize.num, filesizeunit: filesize.unit, allowedsize: allowedsize.num, allowedsizeunit: allowedsize.unit })\n return\n }\n const formData = new FormData()\n formData.append('file', file)\n\n self.$emit('uploading')\n self.uploadCount++\n\n statusPosterService.uploadMedia({ store, formData })\n .then((fileData) => {\n self.$emit('uploaded', fileData)\n self.decreaseUploadCount()\n }, (error) => {\n console.error('Error uploading file', error)\n self.$emit('upload-failed', 'default')\n self.decreaseUploadCount()\n })\n },\n decreaseUploadCount () {\n this.uploadCount--\n if (this.uploadCount === 0) {\n this.$emit('all-uploaded')\n }\n },\n clearFile () {\n this.uploadReady = false\n this.$nextTick(() => {\n this.uploadReady = true\n })\n },\n multiUpload (files) {\n for (const file of files) {\n this.uploadFile(file)\n }\n },\n change ({ target }) {\n this.multiUpload(target.files)\n }\n },\n props: {\n dropFiles: Object,\n disabled: Boolean,\n normalButton: Boolean,\n acceptTypes: {\n type: String,\n default: '*/*'\n }\n },\n watch: {\n dropFiles: function (fileInfos) {\n if (!this.uploading) {\n this.multiUpload(fileInfos)\n }\n }\n }\n}\n\nexport default mediaUpload\n","import { render } from \"./media_upload.vue?vue&type=template&id=f831fc74\"\nimport script from \"./media_upload.js?vue&type=script&lang=js\"\nexport * from \"./media_upload.js?vue&type=script&lang=js\"\n\nimport \"./media_upload.vue?vue&type=style&index=0&id=f831fc74&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <button\n class=\"media-upload\"\n :class=\"[normalButton ? 'button-default btn' : 'button-unstyled', { disabled }]\"\n :title=\"$t('tool_tip.media_upload')\"\n @click=\"onClick\"\n >\n <FAIcon\n v-if=\"uploading\"\n class=\"progress-icon\"\n icon=\"circle-notch\"\n spin\n />\n <FAIcon\n v-if=\"!uploading\"\n class=\"new-icon\"\n icon=\"upload\"\n />\n <template v-if=\"normalButton\">\n {{ ' ' }}\n {{ uploading ? $t('general.loading') : $t('tool_tip.media_upload') }}\n </template>\n <input\n v-if=\"uploadReady\"\n ref=\"input\"\n class=\"hidden-input-file\"\n :disabled=\"disabled\"\n type=\"file\"\n multiple=\"true\"\n :accept=\"acceptTypes\"\n @change=\"change\"\n >\n </button>\n</template>\n\n<script src=\"./media_upload.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.media-upload {\n .hidden-input-file {\n display: none;\n }\n}\n\nlabel.media-upload {\n cursor: pointer; // We use <label> for interactivity... i wonder if it's fine\n}\n</style>\n","<template>\n <span\n class=\"MentionLink\"\n >\n <!-- eslint-disable vue/no-v-html -->\n <a\n v-if=\"!user\"\n :href=\"url\"\n class=\"original\"\n target=\"_blank\"\n v-html=\"content\"\n /><!-- eslint-enable vue/no-v-html -->\n <UserPopover\n v-else\n :user-id=\"user.id\"\n :disabled=\"!shouldShowTooltip\"\n >\n <span\n v-if=\"user\"\n class=\"new\"\n :style=\"style\"\n :class=\"classnames\"\n >\n <a\n class=\"short button-unstyled\"\n :class=\"{ '-with-tooltip': shouldShowTooltip }\"\n :href=\"url\"\n @click.prevent=\"onClick\"\n >\n <!-- eslint-disable vue/no-v-html -->\n <UserAvatar\n v-if=\"shouldShowAvatar\"\n class=\"mention-avatar\"\n :user=\"user\"\n /><span\n class=\"shortName\"\n ><FAIcon\n v-if=\"useAtIcon\"\n size=\"sm\"\n icon=\"at\"\n class=\"at\"\n />{{ !useAtIcon ? '@' : '' }}<span\n class=\"userName\"\n v-html=\"userName\"\n /><span\n v-if=\"shouldShowFullUserName\"\n class=\"serverName\"\n :class=\"{ '-faded': shouldFadeDomain }\"\n v-html=\"'@' + serverName\"\n /><UnicodeDomainIndicator\n v-if=\"shouldShowFullUserName\"\n :user=\"user\"\n />\n </span>\n <span\n v-if=\"isYou && shouldShowYous\"\n :class=\"{ '-you': shouldBoldenYou }\"\n > {{ ' ' + $t('status.you') }}</span>\n <!-- eslint-enable vue/no-v-html -->\n </a><span\n ref=\"full\"\n class=\"full\"\n >\n <!-- eslint-disable vue/no-v-html -->\n @<span v-html=\"userName\" /><span v-html=\"'@' + serverName\" />\n <!-- eslint-enable vue/no-v-html -->\n </span>\n </span>\n </UserPopover>\n </span>\n</template>\n\n<script src=\"./mention_link.js\" />\n\n<style lang=\"scss\" src=\"./mention_link.scss\" />\n","import generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\nimport { mapGetters, mapState } from 'vuex'\nimport { highlightClass, highlightStyle } from '../../services/user_highlighter/user_highlighter.js'\nimport UserAvatar from '../user_avatar/user_avatar.vue'\nimport UnicodeDomainIndicator from '../unicode_domain_indicator/unicode_domain_indicator.vue'\nimport { defineAsyncComponent } from 'vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faAt\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faAt\n)\n\nconst MentionLink = {\n name: 'MentionLink',\n components: {\n UserAvatar,\n UnicodeDomainIndicator,\n UserPopover: defineAsyncComponent(() => import('../user_popover/user_popover.vue'))\n },\n props: {\n url: {\n required: true,\n type: String\n },\n content: {\n required: true,\n type: String\n },\n userId: {\n required: false,\n type: String\n },\n userScreenName: {\n required: false,\n type: String\n }\n },\n data () {\n return {\n hasSelection: false\n }\n },\n methods: {\n onClick () {\n if (this.shouldShowTooltip) return\n const link = generateProfileLink(\n this.userId || this.user.id,\n this.userScreenName || this.user.screen_name\n )\n this.$router.push(link)\n },\n handleSelection () {\n this.hasSelection = document.getSelection().containsNode(this.$refs.full, true)\n }\n },\n mounted () {\n document.addEventListener('selectionchange', this.handleSelection)\n },\n unmounted () {\n document.removeEventListener('selectionchange', this.handleSelection)\n },\n computed: {\n user () {\n return this.url && this.$store && this.$store.getters.findUserByUrl(this.url)\n },\n isYou () {\n // FIXME why user !== currentUser???\n return this.user && this.user.id === this.currentUser.id\n },\n userName () {\n return this.user && this.userNameFullUi.split('@')[0]\n },\n serverName () {\n // XXX assumed that domain does not contain @\n return this.user && (this.userNameFullUi.split('@')[1] || this.$store.getters.instanceDomain)\n },\n userNameFull () {\n return this.user && this.user.screen_name\n },\n userNameFullUi () {\n return this.user && this.user.screen_name_ui\n },\n highlight () {\n return this.user && this.mergedConfig.highlight[this.user.screen_name]\n },\n highlightType () {\n return this.highlight && ('-' + this.highlight.type)\n },\n highlightClass () {\n if (this.highlight) return highlightClass(this.user)\n },\n style () {\n if (this.highlight) {\n const {\n backgroundColor,\n backgroundPosition,\n backgroundImage,\n ...rest\n } = highlightStyle(this.highlight)\n return rest\n }\n },\n classnames () {\n return [\n {\n '-you': this.isYou && this.shouldBoldenYou,\n '-highlighted': this.highlight,\n '-has-selection': this.hasSelection\n },\n this.highlightType\n ]\n },\n useAtIcon () {\n return this.mergedConfig.useAtIcon\n },\n isRemote () {\n return this.userName !== this.userNameFull\n },\n shouldShowFullUserName () {\n const conf = this.mergedConfig.mentionLinkDisplay\n if (conf === 'short') {\n return false\n } else if (conf === 'full') {\n return true\n } else { // full_for_remote\n return this.isRemote\n }\n },\n shouldShowTooltip () {\n return this.mergedConfig.mentionLinkShowTooltip\n },\n shouldShowAvatar () {\n return this.mergedConfig.mentionLinkShowAvatar\n },\n shouldShowYous () {\n return this.mergedConfig.mentionLinkShowYous\n },\n shouldBoldenYou () {\n return this.mergedConfig.mentionLinkBoldenYou\n },\n shouldFadeDomain () {\n return this.mergedConfig.mentionLinkFadeDomain\n },\n ...mapGetters(['mergedConfig']),\n ...mapState({\n currentUser: state => state.users.currentUser\n })\n }\n}\n\nexport default MentionLink\n","import { render } from \"./mention_link.vue?vue&type=template&id=11ab9a6c\"\nimport script from \"./mention_link.js?vue&type=script&lang=js\"\nexport * from \"./mention_link.js?vue&type=script&lang=js\"\n\nimport \"./mention_link.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <span class=\"MentionsLine\">\n <MentionLink\n v-for=\"mention in mentionsComputed\"\n :key=\"mention.index\"\n class=\"mention-link\"\n :content=\"mention.content\"\n :url=\"mention.url\"\n /><span\n v-if=\"manyMentions\"\n class=\"extraMentions\"\n >\n <span\n v-if=\"expanded\"\n class=\"fullExtraMentions\"\n >{{ ' ' }}<MentionLink\n v-for=\"mention in extraMentions\"\n :key=\"mention.index\"\n class=\"mention-link\"\n :content=\"mention.content\"\n :url=\"mention.url\"\n />\n </span><button\n v-if=\"!expanded\"\n class=\"button-unstyled showMoreLess\"\n @click=\"toggleShowMore\"\n >\n {{ $t('status.plus_more', { number: extraMentions.length }) }}\n </button><button\n v-if=\"expanded\"\n class=\"button-unstyled showMoreLess\"\n @click=\"toggleShowMore\"\n >\n {{ $t('general.show_less') }}\n </button>\n </span>\n </span>\n</template>\n<script src=\"./mentions_line.js\"></script>\n<style lang=\"scss\" src=\"./mentions_line.scss\" />\n","import MentionLink from 'src/components/mention_link/mention_link.vue'\nimport { mapGetters } from 'vuex'\n\nexport const MENTIONS_LIMIT = 5\n\nconst MentionsLine = {\n name: 'MentionsLine',\n props: {\n mentions: {\n required: true,\n type: Array\n }\n },\n data: () => ({ expanded: false }),\n components: {\n MentionLink\n },\n computed: {\n mentionsComputed () {\n return this.mentions.slice(0, MENTIONS_LIMIT)\n },\n extraMentions () {\n return this.mentions.slice(MENTIONS_LIMIT)\n },\n manyMentions () {\n return this.extraMentions.length > 0\n },\n ...mapGetters(['mergedConfig'])\n },\n methods: {\n toggleShowMore () {\n this.expanded = !this.expanded\n }\n }\n}\n\nexport default MentionsLine\n","import { render } from \"./mentions_line.vue?vue&type=template&id=0e41a1da\"\nimport script from \"./mentions_line.js?vue&type=script&lang=js\"\nexport * from \"./mentions_line.js?vue&type=script&lang=js\"\n\nimport \"./mentions_line.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n v-show=\"isOpen\"\n v-body-scroll-lock=\"isOpen && !noBackground\"\n class=\"modal-view\"\n :class=\"classes\"\n @click.self=\"$emit('backdropClicked')\"\n >\n <slot />\n </div>\n</template>\n\n<script>\nexport default {\n provide: {\n popoversZLayer: 'modals'\n },\n props: {\n isOpen: {\n type: Boolean,\n default: true\n },\n noBackground: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n classes () {\n return {\n 'modal-background': !this.noBackground,\n open: this.isOpen\n }\n }\n }\n}\n</script>\n\n<style lang=\"scss\">\n.modal-view {\n z-index: var(--ZI_modals);\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 pointer-events: none;\n animation-duration: 0.2s;\n animation-name: modal-background-fadein;\n opacity: 0;\n\n > * {\n pointer-events: initial;\n }\n\n &.modal-background {\n pointer-events: initial;\n background-color: rgb(0 0 0 / 50%);\n }\n\n &.open {\n opacity: 1;\n }\n}\n\n@keyframes modal-background-fadein {\n from {\n background-color: rgb(0 0 0 / 0%);\n }\n\n to {\n background-color: rgb(0 0 0 / 50%);\n }\n}\n</style>\n","import { render } from \"./modal.vue?vue&type=template&id=e92832fc\"\nimport script from \"./modal.vue?vue&type=script&lang=js\"\nexport * from \"./modal.vue?vue&type=script&lang=js\"\n\nimport \"./modal.vue?vue&type=style&index=0&id=e92832fc&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <teleport\n :disabled=\"minimalMode || disableTeleport\"\n :to=\"teleportTarget\"\n >\n <component\n :is=\"noHeading ? 'div' : 'aside'\"\n ref=\"root\"\n :class=\"{ minimal: minimalMode }\"\n class=\"Notifications\"\n >\n <div :class=\"mainClass\">\n <div\n v-if=\"!noHeading\"\n class=\"notifications-heading panel-heading -sticky\"\n >\n <div class=\"title\">\n {{ $t('notifications.notifications') }}\n <span\n v-if=\"unseenCount\"\n class=\"badge badge-notification unseen-count\"\n >{{ unseenCount }}</span>\n </div>\n <div\n v-if=\"showScrollTop\"\n class=\"rightside-button\"\n >\n <button\n class=\"button-unstyled scroll-to-top-button\"\n type=\"button\"\n :title=\"$t('general.scroll_to_top')\"\n @click=\"scrollToTop\"\n >\n <FALayers class=\"fa-scale-110 fa-old-padding-layer\">\n <FAIcon icon=\"arrow-up\" />\n <FAIcon\n icon=\"minus\"\n transform=\"up-7\"\n />\n </FALayers>\n </button>\n </div>\n <button\n v-if=\"unseenCount\"\n class=\"button-default read-button\"\n type=\"button\"\n @click.prevent=\"markAsSeen\"\n >\n {{ $t('notifications.read') }}\n </button>\n <NotificationFilters class=\"rightside-button\" />\n </div>\n <div\n class=\"panel-body\"\n role=\"feed\"\n >\n <div\n v-for=\"notification in notificationsToDisplay\"\n :key=\"notification.id\"\n role=\"listitem\"\n class=\"notification\"\n :class=\"{unseen: !minimalMode && !notification.seen}\"\n >\n <div class=\"notification-overlay\" />\n <notification :notification=\"notification\" />\n </div>\n </div>\n <div class=\"panel-footer\">\n <div\n v-if=\"bottomedOut\"\n class=\"new-status-notification text-center faint\"\n >\n {{ $t('notifications.no_more_notifications') }}\n </div>\n <button\n v-else-if=\"!loading\"\n class=\"button-unstyled -link -fullwidth\"\n @click.prevent=\"fetchOlderNotifications()\"\n >\n <div class=\"new-status-notification text-center\">\n {{ minimalMode ? $t('interactions.load_older') : $t('notifications.load_older') }}\n </div>\n </button>\n <div\n v-else\n class=\"new-status-notification text-center\"\n >\n <FAIcon\n icon=\"circle-notch\"\n spin\n size=\"lg\"\n />\n </div>\n </div>\n </div>\n </component>\n </teleport>\n</template>\n\n<script src=\"./notifications.js\"></script>\n<style lang=\"scss\" src=\"./notifications.scss\"></style>\n","<template>\n <article\n v-if=\"notification.type === 'mention'\"\n >\n <Status\n class=\"Notification\"\n :compact=\"true\"\n :statusoid=\"notification.status\"\n />\n </article>\n <article v-else>\n <div\n v-if=\"needMute && !unmuted\"\n class=\"Notification container -muted\"\n >\n <small>\n <user-link\n :user=\"notification.from_profile\"\n :at=\"false\"\n />\n </small>\n <button\n class=\"button-unstyled unmute\"\n @click.prevent=\"toggleMute\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"eye-slash\"\n />\n </button>\n </div>\n <div\n v-else\n class=\"Notification non-mention\"\n :class=\"[userClass, { highlighted: userStyle }, '-type--' + notification.type]\"\n :style=\"[ userStyle ]\"\n >\n <a\n class=\"avatar-container\"\n :href=\"$router.resolve(userProfileLink).href\"\n @click.prevent\n >\n <UserPopover\n :user-id=\"notification.from_profile.id\"\n :overlay-centers=\"true\"\n >\n <UserAvatar\n class=\"post-avatar\"\n :bot=\"botIndicator\"\n :compact=\"true\"\n :better-shadow=\"betterShadow\"\n :user=\"notification.from_profile\"\n />\n </UserPopover>\n </a>\n <div class=\"notification-right\">\n <span class=\"notification-details\">\n <div class=\"name-and-action\">\n <!-- eslint-disable vue/no-v-html -->\n <bdi v-if=\"!!notification.from_profile.name_html\">\n <RichContent\n class=\"username\"\n :title=\"'@'+notification.from_profile.screen_name_ui\"\n :html=\"notification.from_profile.name_html\"\n :emoji=\"notification.from_profile.emoji\"\n />\n </bdi>\n <!-- eslint-enable vue/no-v-html -->\n <span\n v-else\n class=\"username\"\n :title=\"'@'+notification.from_profile.screen_name_ui\"\n >\n {{ notification.from_profile.name }}\n </span>\n {{ ' ' }}\n <span v-if=\"notification.type === 'like'\">\n <FAIcon\n class=\"type-icon\"\n icon=\"star\"\n />\n {{ ' ' }}\n <small>{{ $t('notifications.favorited_you') }}</small>\n </span>\n <span v-if=\"notification.type === 'repeat'\">\n <FAIcon\n class=\"type-icon\"\n icon=\"retweet\"\n :title=\"$t('tool_tip.repeat')\"\n />\n {{ ' ' }}\n <small>{{ $t('notifications.repeated_you') }}</small>\n </span>\n <span v-if=\"notification.type === 'follow'\">\n <FAIcon\n class=\"type-icon\"\n icon=\"user-plus\"\n />\n {{ ' ' }}\n <small>{{ $t('notifications.followed_you') }}</small>\n </span>\n <span v-if=\"notification.type === 'follow_request'\">\n <FAIcon\n class=\"type-icon\"\n icon=\"user\"\n />\n {{ ' ' }}\n <small>{{ $t('notifications.follow_request') }}</small>\n </span>\n <span v-if=\"notification.type === 'move'\">\n <FAIcon\n class=\"type-icon\"\n icon=\"suitcase-rolling\"\n />\n {{ ' ' }}\n <small>{{ $t('notifications.migrated_to') }}</small>\n </span>\n <span v-if=\"notification.type === 'pleroma:emoji_reaction'\">\n <small>\n <i18n-t\n scope=\"global\"\n keypath=\"notifications.reacted_with\"\n >\n <img\n v-if=\"notification.emoji_url\"\n class=\"emoji-reaction-emoji emoji-reaction-emoji-image\"\n :src=\"notification.emoji_url\"\n :alt=\"notification.emoji\"\n :title=\"notification.emoji\"\n >\n <span\n v-else\n class=\"emoji-reaction-emoji\"\n >{{ notification.emoji }}</span>\n </i18n-t>\n </small>\n </span>\n <span v-if=\"notification.type === 'pleroma:report'\">\n <small>{{ $t('notifications.submitted_report') }}</small>\n </span>\n <span v-if=\"notification.type === 'poll'\">\n <FAIcon\n class=\"type-icon\"\n icon=\"poll-h\"\n />\n {{ ' ' }}\n <small>{{ $t('notifications.poll_ended') }}</small>\n </span>\n </div>\n <div\n v-if=\"isStatusNotification\"\n class=\"timeago\"\n >\n <router-link\n v-if=\"notification.status\"\n :to=\"{ name: 'conversation', params: { id: notification.status.id } }\"\n class=\"timeago-link faint-link\"\n >\n <Timeago\n :time=\"notification.created_at\"\n :auto-update=\"240\"\n />\n </router-link>\n <button\n class=\"button-unstyled expand-icon\"\n :title=\"$t('tool_tip.toggle_expand')\"\n :aria-expanded=\"statusExpanded\"\n @click.prevent=\"toggleStatusExpanded\"\n >\n <FAIcon\n class=\"fa-scale-110\"\n fixed-width\n :icon=\"statusExpanded ? 'compress-alt' : 'expand-alt'\"\n />\n </button>\n </div>\n <div\n v-else\n class=\"timeago\"\n >\n <span class=\"faint\">\n <Timeago\n :time=\"notification.created_at\"\n :auto-update=\"240\"\n />\n </span>\n </div>\n <button\n v-if=\"needMute\"\n class=\"button-unstyled\"\n :title=\"$t('tool_tip.toggle_mute')\"\n :aria-expanded=\"!unmuted\"\n @click.prevent=\"toggleMute\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"eye-slash\"\n />\n </button>\n </span>\n <div\n v-if=\"notification.type === 'follow' || notification.type === 'follow_request'\"\n class=\"follow-text\"\n >\n <user-link\n class=\"follow-name\"\n :user=\"notification.from_profile\"\n />\n <div\n v-if=\"notification.type === 'follow_request'\"\n style=\"white-space: nowrap;\"\n >\n <button\n class=\"button-unstyled\"\n :title=\"$t('tool_tip.accept_follow_request')\"\n @click=\"approveUser()\"\n >\n <FAIcon\n icon=\"check\"\n class=\"fa-scale-110 fa-old-padding follow-request-accept\"\n />\n </button>\n <button\n class=\"button-unstyled\"\n :title=\"$t('tool_tip.reject_follow_request')\"\n @click=\"denyUser()\"\n >\n <FAIcon\n icon=\"times\"\n class=\"fa-scale-110 fa-old-padding follow-request-reject\"\n />\n </button>\n </div>\n </div>\n <div\n v-else-if=\"notification.type === 'move'\"\n class=\"move-text\"\n >\n <user-link\n :user=\"notification.target\"\n />\n </div>\n <Report\n v-else-if=\"notification.type === 'pleroma:report'\"\n :report-id=\"notification.report.id\"\n />\n <template v-else>\n <StatusContent\n :class=\"{ faint: !statusExpanded }\"\n :compact=\"!statusExpanded\"\n :status=\"notification.action\"\n />\n </template>\n </div>\n </div>\n <teleport to=\"#modal\">\n <confirm-modal\n v-if=\"showingApproveConfirmDialog\"\n :title=\"$t('user_card.approve_confirm_title')\"\n :confirm-text=\"$t('user_card.approve_confirm_accept_button')\"\n :cancel-text=\"$t('user_card.approve_confirm_cancel_button')\"\n @accepted=\"doApprove\"\n @cancelled=\"hideApproveConfirmDialog\"\n >\n {{ $t('user_card.approve_confirm', { user: user.screen_name_ui }) }}\n </confirm-modal>\n <confirm-modal\n v-if=\"showingDenyConfirmDialog\"\n :title=\"$t('user_card.deny_confirm_title')\"\n :confirm-text=\"$t('user_card.deny_confirm_accept_button')\"\n :cancel-text=\"$t('user_card.deny_confirm_cancel_button')\"\n @accepted=\"doDeny\"\n @cancelled=\"hideDenyConfirmDialog\"\n >\n {{ $t('user_card.deny_confirm', { user: user.screen_name_ui }) }}\n </confirm-modal>\n </teleport>\n </article>\n</template>\n\n<script src=\"./notification.js\"></script>\n<style src=\"./notification.scss\" lang=\"scss\"></style>\n","<template>\n <div class=\"Report\">\n <div class=\"reported-user\">\n <span>{{ $t('report.reported_user') }}</span>\n <router-link :to=\"generateUserProfileLink(report.acct)\">\n @{{ report.acct.screen_name }}\n </router-link>\n </div>\n <div class=\"reporter\">\n <span>{{ $t('report.reporter') }}</span>\n <router-link :to=\"generateUserProfileLink(report.actor)\">\n @{{ report.actor.screen_name }}\n </router-link>\n </div>\n <div class=\"report-state\">\n <span>{{ $t('report.state') }}</span>\n <Select\n :id=\"report-state\"\n v-model=\"state\"\n class=\"form-control\"\n >\n <option\n v-for=\"state in ['open', 'closed', 'resolved']\"\n :key=\"state\"\n :value=\"state\"\n >\n {{ $t('report.state_' + state) }}\n </option>\n </Select>\n </div>\n <RichContent\n class=\"report-content\"\n :html=\"report.content\"\n :emoji=\"[]\"\n />\n <div v-if=\"report.statuses.length\">\n <small>{{ $t('report.reported_statuses') }}</small>\n <router-link\n v-for=\"status in report.statuses\"\n :key=\"status.id\"\n :to=\"{ name: 'conversation', params: { id: status.id } }\"\n class=\"reported-status\"\n >\n <div class=\"reported-status-heading\">\n <span class=\"reported-status-name\">{{ status.user.name }}</span>\n <Timeago\n :time=\"status.created_at\"\n :auto-update=\"240\"\n class=\"faint\"\n />\n </div>\n <status-content :status=\"status\" />\n </router-link>\n </div>\n <div v-if=\"report.notes.length\">\n <small>{{ $t('report.notes') }}</small>\n <div\n v-for=\"note in report.notes\"\n :key=\"note.id\"\n class=\"note\"\n >\n <span>{{ note.content }}</span>\n <Timeago\n :time=\"note.created_at\"\n :auto-update=\"240\"\n class=\"faint\"\n />\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./report.js\"></script>\n<style src=\"./report.scss\" lang=\"scss\"></style>\n","import Select from '../select/select.vue'\nimport StatusContent from '../status_content/status_content.vue'\nimport Timeago from '../timeago/timeago.vue'\nimport RichContent from 'src/components/rich_content/rich_content.jsx'\nimport generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\n\nconst Report = {\n props: [\n 'reportId'\n ],\n components: {\n Select,\n StatusContent,\n Timeago,\n RichContent\n },\n computed: {\n report () {\n console.log(this.$store.state.reports.reports[this.reportId] || {})\n return this.$store.state.reports.reports[this.reportId] || {}\n },\n state: {\n get: function () { return this.report.state },\n set: function (val) { this.setReportState(val) }\n }\n },\n methods: {\n generateUserProfileLink (user) {\n return generateProfileLink(user.id, user.screen_name, this.$store.state.instance.restrictedNicknames)\n },\n setReportState (state) {\n return this.$store.dispatch('setReportState', { id: this.report.id, state })\n }\n }\n}\n\nexport default Report\n","import { render } from \"./report.vue?vue&type=template&id=86a2fdce\"\nimport script from \"./report.js?vue&type=script&lang=js\"\nexport * from \"./report.js?vue&type=script&lang=js\"\n\nimport \"./report.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import StatusContent from '../status_content/status_content.vue'\nimport { mapState } from 'vuex'\nimport Status from '../status/status.vue'\nimport UserAvatar from '../user_avatar/user_avatar.vue'\nimport UserCard from '../user_card/user_card.vue'\nimport Timeago from '../timeago/timeago.vue'\nimport Report from '../report/report.vue'\nimport UserLink from '../user_link/user_link.vue'\nimport RichContent from 'src/components/rich_content/rich_content.jsx'\nimport UserPopover from '../user_popover/user_popover.vue'\nimport ConfirmModal from '../confirm_modal/confirm_modal.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'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faCheck,\n faTimes,\n faStar,\n faRetweet,\n faUserPlus,\n faEyeSlash,\n faUser,\n faSuitcaseRolling,\n faExpandAlt,\n faCompressAlt\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCheck,\n faTimes,\n faStar,\n faRetweet,\n faUserPlus,\n faUser,\n faEyeSlash,\n faSuitcaseRolling,\n faExpandAlt,\n faCompressAlt\n)\n\nconst Notification = {\n data () {\n return {\n statusExpanded: false,\n betterShadow: this.$store.state.interface.browserSupport.cssFilter,\n unmuted: false,\n showingApproveConfirmDialog: false,\n showingDenyConfirmDialog: false\n }\n },\n props: ['notification'],\n components: {\n StatusContent,\n UserAvatar,\n UserCard,\n Timeago,\n Status,\n Report,\n RichContent,\n UserPopover,\n UserLink,\n ConfirmModal\n },\n methods: {\n toggleStatusExpanded () {\n this.statusExpanded = !this.statusExpanded\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 showApproveConfirmDialog () {\n this.showingApproveConfirmDialog = true\n },\n hideApproveConfirmDialog () {\n this.showingApproveConfirmDialog = false\n },\n showDenyConfirmDialog () {\n this.showingDenyConfirmDialog = true\n },\n hideDenyConfirmDialog () {\n this.showingDenyConfirmDialog = false\n },\n approveUser () {\n if (this.shouldConfirmApprove) {\n this.showApproveConfirmDialog()\n } else {\n this.doApprove()\n }\n },\n doApprove () {\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 this.hideApproveConfirmDialog()\n },\n denyUser () {\n if (this.shouldConfirmDeny) {\n this.showDenyConfirmDialog()\n } else {\n this.doDeny()\n }\n },\n doDeny () {\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 this.hideDenyConfirmDialog()\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 mergedConfig () {\n return this.$store.getters.mergedConfig\n },\n shouldConfirmApprove () {\n return this.mergedConfig.modalOnApproveFollow\n },\n shouldConfirmDeny () {\n return this.mergedConfig.modalOnDenyFollow\n },\n ...mapState({\n currentUser: state => state.users.currentUser\n })\n }\n}\n\nexport default Notification\n","import { render } from \"./notification.vue?vue&type=template&id=1ab1e6c0\"\nimport script from \"./notification.js?vue&type=script&lang=js\"\nexport * from \"./notification.js?vue&type=script&lang=js\"\n\nimport \"./notification.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Popover\n trigger=\"click\"\n class=\"NotificationFilters\"\n placement=\"bottom\"\n :bound-to=\"{ x: 'container' }\"\n >\n <template #content>\n <div class=\"dropdown-menu\">\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleNotificationFilter('likes')\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': filters.likes }\"\n />{{ $t('settings.notification_visibility_likes') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleNotificationFilter('repeats')\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': filters.repeats }\"\n />{{ $t('settings.notification_visibility_repeats') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleNotificationFilter('follows')\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': filters.follows }\"\n />{{ $t('settings.notification_visibility_follows') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleNotificationFilter('mentions')\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': filters.mentions }\"\n />{{ $t('settings.notification_visibility_mentions') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleNotificationFilter('emojiReactions')\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': filters.emojiReactions }\"\n />{{ $t('settings.notification_visibility_emoji_reactions') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleNotificationFilter('moves')\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': filters.moves }\"\n />{{ $t('settings.notification_visibility_moves') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleNotificationFilter('polls')\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': filters.polls }\"\n />{{ $t('settings.notification_visibility_polls') }}\n </button>\n </div>\n </template>\n <template #trigger>\n <button class=\"filter-trigger-button button-unstyled\">\n <FAIcon icon=\"filter\" />\n </button>\n </template>\n </Popover>\n</template>\n\n<script>\nimport Popover from '../popover/popover.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faFilter } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faFilter\n)\n\nexport default {\n components: { Popover },\n computed: {\n filters () {\n return this.$store.getters.mergedConfig.notificationVisibility\n }\n },\n methods: {\n toggleNotificationFilter (type) {\n this.$store.dispatch('setOption', {\n name: 'notificationVisibility',\n value: {\n ...this.filters,\n [type]: !this.filters[type]\n }\n })\n }\n }\n}\n</script>\n","import { render } from \"./notification_filters.vue?vue&type=template&id=0ad39446\"\nimport script from \"./notification_filters.vue?vue&type=script&lang=js\"\nexport * from \"./notification_filters.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { computed } from 'vue'\nimport { mapGetters } from 'vuex'\nimport Notification from '../notification/notification.vue'\nimport NotificationFilters from './notification_filters.vue'\nimport notificationsFetcher from '../../services/notifications_fetcher/notifications_fetcher.service.js'\nimport {\n notificationsFromStore,\n filteredNotificationsFromStore,\n unseenNotificationsFromStore\n} from '../../services/notification_utils/notification_utils.js'\nimport FaviconService from '../../services/favicon_service/favicon_service.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faCircleNotch, faArrowUp, faMinus } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCircleNotch,\n faArrowUp,\n faMinus\n)\n\nconst DEFAULT_SEEN_TO_DISPLAY_COUNT = 30\n\nconst Notifications = {\n components: {\n Notification,\n NotificationFilters\n },\n props: {\n // Disables panel styles, unread mark, potentially other notification-related actions\n // meant for \"Interactions\" timeline\n minimalMode: Boolean,\n // Custom filter mode, an array of strings, possible values 'mention', 'repeat', 'like', 'follow', used to override global filter for use in \"Interactions\" timeline\n filterMode: Array,\n // Disable teleporting (i.e. for /users/user/notifications)\n disableTeleport: Boolean\n },\n data () {\n return {\n showScrollTop: false,\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 provide () {\n return {\n popoversZLayer: computed(() => this.popoversZLayer)\n }\n },\n computed: {\n mainClass () {\n return this.minimalMode ? '' : 'panel panel-default'\n },\n notifications () {\n return notificationsFromStore(this.$store)\n },\n error () {\n return this.$store.state.statuses.notifications.error\n },\n unseenNotifications () {\n return unseenNotificationsFromStore(this.$store)\n },\n filteredNotifications () {\n return filteredNotificationsFromStore(this.$store, this.filterMode)\n },\n unseenCount () {\n return this.unseenNotifications.length\n },\n unseenCountTitle () {\n return this.unseenCount + (this.unreadChatCount) + this.unreadAnnouncementCount\n },\n loading () {\n return this.$store.state.statuses.notifications.loading\n },\n noHeading () {\n const { layoutType } = this.$store.state.interface\n return this.minimalMode || layoutType === 'mobile'\n },\n teleportTarget () {\n const { layoutType } = this.$store.state.interface\n const map = {\n wide: '#notifs-column',\n mobile: '#mobile-notifications'\n }\n return map[layoutType] || '#notifs-sidebar'\n },\n popoversZLayer () {\n const { layoutType } = this.$store.state.interface\n return layoutType === 'mobile' ? 'navbar' : null\n },\n notificationsToDisplay () {\n return this.filteredNotifications.slice(0, this.unseenCount + this.seenToDisplayCount)\n },\n noSticky () { return this.$store.getters.mergedConfig.disableStickyHeaders },\n ...mapGetters(['unreadChatCount', 'unreadAnnouncementCount'])\n },\n mounted () {\n this.scrollerRef = this.$refs.root.closest('.column.-scrollable')\n if (!this.scrollerRef) {\n this.scrollerRef = this.$refs.root.closest('.mobile-notifications')\n }\n if (!this.scrollerRef) {\n this.scrollerRef = this.$refs.root.closest('.column.main')\n }\n this.scrollerRef.addEventListener('scroll', this.updateScrollPosition)\n },\n unmounted () {\n if (!this.scrollerRef) return\n this.scrollerRef.removeEventListener('scroll', this.updateScrollPosition)\n },\n watch: {\n unseenCountTitle (count) {\n if (count > 0) {\n FaviconService.drawFaviconBadge()\n this.$store.dispatch('setPageTitle', `(${count})`)\n } else {\n FaviconService.clearFaviconBadge()\n this.$store.dispatch('setPageTitle', '')\n }\n },\n teleportTarget () {\n // handle scroller change\n this.$nextTick(() => {\n this.scrollerRef.removeEventListener('scroll', this.updateScrollPosition)\n this.scrollerRef = this.$refs.root.closest('.column.-scrollable')\n if (!this.scrollerRef) {\n this.scrollerRef = this.$refs.root.closest('.mobile-notifications')\n }\n this.scrollerRef.addEventListener('scroll', this.updateScrollPosition)\n this.updateScrollPosition()\n })\n }\n },\n methods: {\n scrollToTop () {\n const scrollable = this.scrollerRef\n scrollable.scrollTo({ top: this.$refs.root.offsetTop })\n // this.$refs.root.scrollIntoView({ behavior: 'smooth', block: 'start' })\n },\n updateScrollPosition () {\n this.showScrollTop = this.$refs.root.offsetTop < this.scrollerRef.scrollTop\n },\n markAsSeen () {\n this.$store.dispatch('markNotificationsAsSeen')\n this.seenToDisplayCount = DEFAULT_SEEN_TO_DISPLAY_COUNT\n },\n fetchOlderNotifications () {\n if (this.loading) {\n return\n }\n\n const seenCount = this.filteredNotifications.length - this.unseenCount\n if (this.seenToDisplayCount < seenCount) {\n this.seenToDisplayCount = Math.min(this.seenToDisplayCount + 20, seenCount)\n return\n } else if (this.seenToDisplayCount > seenCount) {\n this.seenToDisplayCount = seenCount\n }\n\n const store = this.$store\n const credentials = store.state.users.currentUser.credentials\n store.commit('setNotificationsLoading', { value: true })\n notificationsFetcher.fetchAndUpdate({\n store,\n credentials,\n older: true\n }).then(notifs => {\n store.commit('setNotificationsLoading', { value: false })\n if (notifs.length === 0) {\n this.bottomedOut = true\n }\n this.seenToDisplayCount += notifs.length\n })\n }\n }\n}\n\nexport default Notifications\n","import { render } from \"./notifications.vue?vue&type=template&id=fdd5b5f4\"\nimport script from \"./notifications.js?vue&type=script&lang=js\"\nexport * from \"./notifications.js?vue&type=script&lang=js\"\n\nimport \"./notifications.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"panel-loading\">\n <span class=\"loading-text\">\n <FAIcon\n icon=\"circle-notch\"\n spin\n size=\"3x\"\n />\n {{ $t('general.loading') }}\n </span>\n </div>\n</template>\n\n<script>\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faCircleNotch } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCircleNotch\n)\n\nexport default {}\n</script>\n\n<style lang=\"scss\">\n@import \"src/variables\";\n\n.panel-loading {\n display: flex;\n height: 100%;\n align-items: center;\n justify-content: center;\n font-size: 2em;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n\n .loading-text svg {\n line-height: 0;\n vertical-align: middle;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n}\n</style>\n","import { render } from \"./panel_loading.vue?vue&type=template&id=0255a870\"\nimport script from \"./panel_loading.vue?vue&type=script&lang=js\"\nexport * from \"./panel_loading.vue?vue&type=script&lang=js\"\n\nimport \"./panel_loading.vue?vue&type=style&index=0&id=0255a870&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","const Popover = {\n name: 'Popover',\n props: {\n // Action to trigger popover: either 'hover' or 'click'\n trigger: String,\n\n // 'top', 'bottom', 'left', 'right'\n placement: String,\n\n // Takes object with properties 'x' and 'y', values of these can be\n // 'container' for using offsetParent as boundaries for either axis\n // or 'viewport'\n boundTo: Object,\n\n // Takes a selector to use as a replacement for the parent container\n // for getting boundaries for x an y axis\n boundToSelector: String,\n\n // Takes a top/bottom/left/right object, how much space to leave\n // between boundary and popover element\n margin: Object,\n\n // Takes a x/y object and tells how many pixels to offset from\n // anchor point on either axis\n offset: Object,\n\n // Replaces the classes you may want for the popover container.\n // Use 'popover-default' in addition to get the default popover\n // styles with your custom class.\n popoverClass: String,\n\n // If true, subtract padding when calculating position for the popover,\n // use it when popover offset looks to be different on top vs bottom.\n removePadding: Boolean,\n\n // self-explanatory (i hope)\n disabled: Boolean,\n\n // Instead of putting popover next to anchor, overlay popover's center on top of anchor's center\n overlayCenters: Boolean,\n\n // What selector (witin popover!) to use for determining center of popover\n overlayCentersSelector: String,\n\n // Lets hover popover stay when clicking inside of it\n stayOnClick: Boolean,\n\n // Use styled button (to avoid nested buttons)\n normalButton: Boolean,\n\n triggerAttrs: {\n type: Object,\n default: {}\n }\n },\n inject: ['popoversZLayer'], // override popover z layer\n data () {\n return {\n // lockReEntry is a flag that is set when mouse cursor is leaving the popover's content\n // so that if mouse goes back into popover it won't be re-shown again to prevent annoyance\n // with popovers refusing to be hidden when user wants to interact with something in below popover\n anchorEl: null,\n // There's an issue where having teleport enabled by default causes things just...\n // not render at all, i.e. main post status form and its emoji inputs\n teleport: false,\n lockReEntry: false,\n hidden: true,\n styles: {},\n oldSize: { width: 0, height: 0 },\n scrollable: null,\n // used to avoid blinking if hovered onto popover\n graceTimeout: null,\n parentPopover: null,\n disableClickOutside: false,\n childrenShown: new Set()\n }\n },\n methods: {\n setAnchorEl (el) {\n this.anchorEl = el\n this.updateStyles()\n },\n containerBoundingClientRect () {\n const container = this.boundToSelector ? this.$el.closest(this.boundToSelector) : this.$el.offsetParent\n return container.getBoundingClientRect()\n },\n updateStyles () {\n if (this.hidden) {\n this.styles = {}\n return\n }\n\n // Popover will be anchored around this element, trigger ref is the container, so\n // its children are what are inside the slot. Expect only one v-slot:trigger.\n const anchorEl = this.anchorEl || (this.$refs.trigger && this.$refs.trigger.children[0]) || this.$el\n // SVGs don't have offsetWidth/Height, use fallback\n const anchorHeight = anchorEl.offsetHeight || anchorEl.clientHeight\n const anchorWidth = anchorEl.offsetWidth || anchorEl.clientWidth\n const anchorScreenBox = anchorEl.getBoundingClientRect()\n\n const anchorStyle = getComputedStyle(anchorEl)\n const topPadding = parseFloat(anchorStyle.paddingTop)\n const bottomPadding = parseFloat(anchorStyle.paddingBottom)\n const rightPadding = parseFloat(anchorStyle.paddingRight)\n const leftPadding = parseFloat(anchorStyle.paddingLeft)\n\n // Screen position of the origin point for popover = center of the anchor\n const origin = {\n x: anchorScreenBox.left + anchorWidth * 0.5,\n y: anchorScreenBox.top + anchorHeight * 0.5\n }\n const content = this.$refs.content\n const overlayCenter = this.overlayCenters\n ? this.$refs.content.querySelector(this.overlayCentersSelector)\n : null\n\n // Minor optimization, don't call a slow reflow call if we don't have to\n const parentScreenBox = this.boundTo &&\n (this.boundTo.x === 'container' || this.boundTo.y === 'container') &&\n this.containerBoundingClientRect()\n\n const margin = this.margin || {}\n\n // What are the screen bounds for the popover? Viewport vs container\n // when using viewport, using default margin values to dodge the navbar\n const xBounds = this.boundTo && this.boundTo.x === 'container'\n ? {\n min: parentScreenBox.left + (margin.left || 0),\n max: parentScreenBox.right - (margin.right || 0)\n }\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 ? {\n min: parentScreenBox.top + (margin.top || 0),\n max: parentScreenBox.bottom - (margin.bottom || 0)\n }\n : {\n min: 0 + (margin.top || 50),\n max: window.innerHeight - (margin.bottom || 5)\n }\n\n let horizOffset = 0\n let vertOffset = 0\n\n if (overlayCenter) {\n const box = content.getBoundingClientRect()\n const overlayCenterScreenBox = overlayCenter.getBoundingClientRect()\n const leftInnerOffset = overlayCenterScreenBox.left - box.left\n const topInnerOffset = overlayCenterScreenBox.top - box.top\n horizOffset = -leftInnerOffset - overlayCenter.offsetWidth * 0.5\n vertOffset = -topInnerOffset - overlayCenter.offsetHeight * 0.5\n } else {\n horizOffset = content.offsetWidth * -0.5\n vertOffset = content.offsetHeight * -0.5\n }\n\n const leftBorder = origin.x + horizOffset\n const rightBorder = leftBorder + content.offsetWidth\n const topBorder = origin.y + vertOffset\n const bottomBorder = topBorder + content.offsetHeight\n\n // If overflowing from left, move it so that it doesn't\n if (leftBorder < xBounds.min) {\n horizOffset += xBounds.min - leftBorder\n }\n\n // If overflowing from right, move it so that it doesn't\n if (rightBorder > xBounds.max) {\n horizOffset -= rightBorder - xBounds.max\n }\n\n // If overflowing from top, move it so that it doesn't\n if (topBorder < yBounds.min) {\n vertOffset += yBounds.min - topBorder\n }\n\n // If overflowing from bottom, move it so that it doesn't\n if (bottomBorder > yBounds.max) {\n vertOffset -= bottomBorder - yBounds.max\n }\n\n let translateX = 0\n let translateY = 0\n\n if (overlayCenter) {\n translateX = origin.x + horizOffset\n translateY = origin.y + vertOffset\n } else if (this.placement !== 'right' && this.placement !== 'left') {\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 const topBoundary = origin.y - anchorHeight * 0.5 + (this.removePadding ? topPadding : 0)\n const bottomBoundary = origin.y + anchorHeight * 0.5 - (this.removePadding ? bottomPadding : 0)\n if (bottomBoundary + content.offsetHeight > yBounds.max) usingTop = true\n if (topBoundary - content.offsetHeight < yBounds.min) usingTop = false\n\n const yOffset = (this.offset && this.offset.y) || 0\n translateY = usingTop\n ? topBoundary - yOffset - content.offsetHeight\n : bottomBoundary + yOffset\n\n const xOffset = (this.offset && this.offset.x) || 0\n translateX = origin.x + horizOffset + xOffset\n } else {\n // Default to whatever user wished with placement prop\n let usingRight = this.placement !== 'left'\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 const rightBoundary = origin.x - anchorWidth * 0.5 + (this.removePadding ? rightPadding : 0)\n const leftBoundary = origin.x + anchorWidth * 0.5 - (this.removePadding ? leftPadding : 0)\n if (leftBoundary + content.offsetWidth > xBounds.max) usingRight = true\n if (rightBoundary - content.offsetWidth < xBounds.min) usingRight = false\n\n const xOffset = (this.offset && this.offset.x) || 0\n translateX = usingRight\n ? rightBoundary - xOffset - content.offsetWidth\n : leftBoundary + xOffset\n\n const yOffset = (this.offset && this.offset.y) || 0\n translateY = origin.y + vertOffset + yOffset\n }\n\n this.styles = {\n left: `${Math.round(translateX)}px`,\n top: `${Math.round(translateY)}px`\n }\n\n if (this.popoversZLayer) {\n this.styles['--ZI_popover_override'] = `var(--ZI_${this.popoversZLayer}_popovers)`\n }\n if (parentScreenBox) {\n this.styles.maxWidth = `${Math.round(parentScreenBox.width)}px`\n }\n },\n showPopover () {\n if (this.disabled) return\n this.disableClickOutside = true\n setTimeout(() => {\n this.disableClickOutside = false\n }, 0)\n const wasHidden = this.hidden\n this.hidden = false\n this.parentPopover && this.parentPopover.onChildPopoverState(this, true)\n if (this.trigger === 'click' || this.stayOnClick) {\n document.addEventListener('click', this.onClickOutside)\n }\n this.scrollable.addEventListener('scroll', this.onScroll)\n this.scrollable.addEventListener('resize', this.onResize)\n this.$nextTick(() => {\n if (wasHidden) this.$emit('show')\n this.updateStyles()\n })\n },\n hidePopover () {\n if (this.disabled) return\n if (!this.hidden) this.$emit('close')\n this.hidden = true\n this.parentPopover && this.parentPopover.onChildPopoverState(this, false)\n if (this.trigger === 'click') {\n document.removeEventListener('click', this.onClickOutside)\n }\n this.scrollable.removeEventListener('scroll', this.onScroll)\n this.scrollable.removeEventListener('resize', this.onResize)\n },\n onMouseenter (e) {\n if (this.trigger === 'hover') {\n this.lockReEntry = false\n clearTimeout(this.graceTimeout)\n this.graceTimeout = null\n this.showPopover()\n }\n },\n onMouseleave (e) {\n if (this.trigger === 'hover' && this.childrenShown.size === 0) {\n this.graceTimeout = setTimeout(() => this.hidePopover(), 1)\n }\n },\n onMouseenterContent (e) {\n if (this.trigger === 'hover' && !this.lockReEntry) {\n this.lockReEntry = true\n clearTimeout(this.graceTimeout)\n this.graceTimeout = null\n this.showPopover()\n }\n },\n onMouseleaveContent (e) {\n if (this.trigger === 'hover' && this.childrenShown.size === 0) {\n this.graceTimeout = setTimeout(() => this.hidePopover(), 1)\n }\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.disableClickOutside) return\n if (this.hidden) return\n if (this.$refs.content && this.$refs.content.contains(e.target)) return\n if (this.$el.contains(e.target)) return\n if (this.childrenShown.size > 0) return\n this.hidePopover()\n if (this.parentPopover) this.parentPopover.onClickOutside(e)\n },\n onScroll (e) {\n this.updateStyles()\n },\n onResize (e) {\n this.updateStyles()\n },\n onChildPopoverState (childRef, state) {\n if (state) {\n this.childrenShown.add(childRef)\n } else {\n this.childrenShown.delete(childRef)\n }\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 mounted () {\n this.teleport = true\n let scrollable = this.$refs.trigger.closest('.column.-scrollable') ||\n this.$refs.trigger.closest('.mobile-notifications')\n if (!scrollable) scrollable = window\n this.scrollable = scrollable\n let parent = this.$parent\n while (parent && parent.$.type.name !== 'Popover') {\n parent = parent.$parent\n }\n this.parentPopover = parent\n },\n beforeUnmount () {\n this.hidePopover()\n }\n}\n\nexport default Popover\n","import { render } from \"./popover.vue?vue&type=template&id=5ac74c76\"\nimport script from \"./popover.js?vue&type=script&lang=js\"\nexport * from \"./popover.js?vue&type=script&lang=js\"\n\nimport \"./popover.vue?vue&type=style&index=0&id=5ac74c76&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <span\n @mouseenter=\"onMouseenter\"\n @mouseleave=\"onMouseleave\"\n >\n <button\n ref=\"trigger\"\n class=\"popover-trigger-button\"\n :class=\"normalButton ? 'button-default btn' : 'button-unstyled'\"\n type=\"button\"\n v-bind=\"triggerAttrs\"\n @click=\"onClick\"\n >\n <slot name=\"trigger\" />\n </button>\n <teleport\n :disabled=\"!teleport\"\n to=\"#popovers\"\n >\n <transition name=\"fade\">\n <div\n v-if=\"!hidden\"\n ref=\"content\"\n :style=\"styles\"\n class=\"popover\"\n :class=\"popoverClass || 'popover-default'\"\n @mouseenter=\"onMouseenterContent\"\n @mouseleave=\"onMouseleaveContent\"\n @click=\"onClickContent\"\n >\n <slot\n name=\"content\"\n class=\"popover-inner\"\n :close=\"hidePopover\"\n />\n </div>\n </transition>\n </teleport>\n </span>\n</template>\n\n<script src=\"./popover.js\" />\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.popover-trigger-button {\n display: inline-block;\n}\n\n.popover {\n z-index: var(--ZI_popover_override, var(--ZI_popovers));\n position: fixed;\n min-width: 0;\n max-width: calc(100vw - 20px);\n box-shadow: 2px 2px 3px rgb(0 0 0 / 50%);\n box-shadow: var(--popupShadow);\n}\n\n.popover-default {\n &::after {\n content: \"\";\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 3;\n box-shadow: 1px 1px 4px rgb(0 0 0 / 60%);\n box-shadow: var(--panelShadow);\n pointer-events: none;\n }\n\n border-radius: $fallback--btnRadius;\n border-radius: var(--btnRadius, $fallback--btnRadius);\n background-color: $fallback--bg;\n background-color: var(--popover, $fallback--bg);\n color: $fallback--text;\n color: var(--popoverText, $fallback--text);\n\n --faint: var(--popoverFaintText, $fallback--faint);\n --faintLink: var(--popoverFaintLink, $fallback--faint);\n --lightText: var(--popoverLightText, $fallback--lightText);\n --postLink: var(--popoverPostLink, $fallback--link);\n --postFaintLink: var(--popoverPostFaintLink, $fallback--link);\n --icon: var(--popoverIcon, $fallback--icon);\n}\n\n.dropdown-menu {\n display: block;\n padding: 0.5rem 0;\n font-size: 1em;\n text-align: left;\n list-style: none;\n max-width: 100vw;\n z-index: var(--ZI_popover_override, var(--ZI_popovers));\n white-space: nowrap;\n\n .dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid $fallback--border;\n border-top: 1px solid var(--border, $fallback--border);\n }\n\n .dropdown-item {\n line-height: 21px;\n overflow: hidden;\n display: block;\n padding: 0.5em 0.75em;\n clear: both;\n font-weight: 400;\n text-align: inherit;\n white-space: nowrap;\n border: none;\n border-radius: 0;\n background-color: transparent;\n box-shadow: none;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n\n --btnText: var(--popoverText, $fallback--text);\n\n &-icon {\n svg {\n width: 22px;\n margin-right: 0.75rem;\n color: var(--menuPopoverIcon, $fallback--icon);\n }\n }\n\n &.-has-submenu {\n .chevron-icon {\n margin-right: 0.25rem;\n margin-left: 2rem;\n }\n }\n\n &:active,\n &:hover {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenuPopover, $fallback--lightBg);\n box-shadow: none;\n\n --btnText: var(--selectedMenuPopoverText, $fallback--link);\n --faint: var(--selectedMenuPopoverFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuPopoverFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuPopoverLightText, $fallback--lightText);\n --icon: var(--selectedMenuPopoverIcon, $fallback--icon);\n\n svg {\n color: var(--selectedMenuPopoverIcon, $fallback--icon);\n\n --icon: var(--selectedMenuPopoverIcon, $fallback--icon);\n }\n }\n\n .menu-checkbox {\n display: inline-block;\n vertical-align: middle;\n min-width: 22px;\n max-width: 22px;\n min-height: 22px;\n max-height: 22px;\n line-height: 22px;\n text-align: center;\n border-radius: 0;\n background-color: $fallback--fg;\n background-color: var(--input, $fallback--fg);\n box-shadow: 0 0 2px black inset;\n box-shadow: var(--inputShadow);\n margin-right: 0.75em;\n\n &.menu-checkbox-checked::after {\n font-size: 1.25em;\n content: \"✓\";\n }\n\n &.-radio {\n border-radius: 9999px;\n\n &.menu-checkbox-checked::after {\n font-size: 2em;\n content: \"•\";\n }\n }\n }\n }\n\n .button-default.dropdown-item {\n &,\n i[class*=\"icon-\"] {\n color: $fallback--text;\n color: var(--btnText, $fallback--text);\n }\n\n &:active {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenuPopover, $fallback--lightBg);\n color: $fallback--link;\n color: var(--selectedMenuPopoverText, $fallback--link);\n }\n\n &:disabled {\n color: $fallback--text;\n color: var(--btnDisabledText, $fallback--text);\n }\n\n &.toggled {\n color: $fallback--text;\n color: var(--btnToggledText, $fallback--text);\n }\n }\n}\n</style>\n","<template>\n <div\n ref=\"form\"\n class=\"post-status-form\"\n >\n <form\n autocomplete=\"off\"\n @submit.prevent\n @dragover.prevent=\"fileDrag\"\n >\n <div class=\"form-group\">\n <i18n-t\n v-if=\"!$store.state.users.currentUser.locked && newStatus.visibility == 'private' && !disableLockWarning\"\n keypath=\"post_status.account_not_locked_warning\"\n tag=\"p\"\n class=\"visibility-notice\"\n scope=\"global\"\n >\n <button\n class=\"button-unstyled -link\"\n @click=\"openProfileTab\"\n >\n {{ $t('post_status.account_not_locked_warning_link') }}\n </button>\n </i18n-t>\n <p\n v-if=\"!hideScopeNotice && newStatus.visibility === 'public'\"\n class=\"visibility-notice notice-dismissible\"\n >\n <span>{{ $t('post_status.scope_notice.public') }}</span>\n <a\n class=\"fa-scale-110 fa-old-padding dismiss\"\n :title=\"$t('post_status.scope_notice_dismiss')\"\n role=\"button\"\n tabindex=\"0\"\n @click.prevent=\"dismissScopeNotice()\"\n >\n <FAIcon icon=\"times\" />\n </a>\n </p>\n <p\n v-else-if=\"!hideScopeNotice && newStatus.visibility === 'unlisted'\"\n class=\"visibility-notice notice-dismissible\"\n >\n <span>{{ $t('post_status.scope_notice.unlisted') }}</span>\n <a\n class=\"fa-scale-110 fa-old-padding dismiss\"\n :title=\"$t('post_status.scope_notice_dismiss')\"\n role=\"button\"\n tabindex=\"0\"\n @click.prevent=\"dismissScopeNotice()\"\n >\n <FAIcon icon=\"times\" />\n </a>\n </p>\n <p\n v-else-if=\"!hideScopeNotice && newStatus.visibility === 'private' && $store.state.users.currentUser.locked\"\n class=\"visibility-notice notice-dismissible\"\n >\n <span>{{ $t('post_status.scope_notice.private') }}</span>\n <a\n class=\"fa-scale-110 fa-old-padding dismiss\"\n :title=\"$t('post_status.scope_notice_dismiss')\"\n role=\"button\"\n tabindex=\"0\"\n @click.prevent=\"dismissScopeNotice()\"\n >\n <FAIcon icon=\"times\" />\n </a>\n </p>\n <p\n v-else-if=\"newStatus.visibility === 'direct'\"\n class=\"visibility-notice\"\n >\n <span v-if=\"safeDMEnabled\">{{ $t('post_status.direct_warning_to_first_only') }}</span>\n <span v-else>{{ $t('post_status.direct_warning_to_all') }}</span>\n </p>\n <div\n v-if=\"isEdit\"\n class=\"visibility-notice edit-warning\"\n >\n <p>{{ $t('post_status.edit_remote_warning') }}</p>\n <p>{{ $t('post_status.edit_unsupported_warning') }}</p>\n </div>\n <div\n v-if=\"!disablePreview\"\n class=\"preview-heading faint\"\n >\n <a\n class=\"preview-toggle faint\"\n @click.stop.prevent=\"togglePreview\"\n >\n {{ $t('post_status.preview') }}\n <FAIcon :icon=\"showPreview ? 'chevron-left' : 'chevron-right'\" />\n </a>\n <div\n v-show=\"previewLoading\"\n class=\"preview-spinner\"\n >\n <FAIcon\n class=\"fa-old-padding\"\n spin\n icon=\"circle-notch\"\n />\n </div>\n </div>\n <div\n v-if=\"showPreview\"\n class=\"preview-container\"\n >\n <div\n v-if=\"!preview\"\n class=\"preview-status\"\n >\n {{ $t('general.loading') }}\n </div>\n <div\n v-else-if=\"preview.error\"\n class=\"preview-status preview-error\"\n >\n {{ preview.error }}\n </div>\n <StatusContent\n v-else\n :status=\"preview\"\n class=\"preview-status\"\n />\n </div>\n <div\n v-if=\"quotable\"\n role=\"radiogroup\"\n class=\"btn-group reply-or-quote-selector\"\n >\n <button\n :id=\"`reply-or-quote-option-${randomSeed}-reply`\"\n class=\"btn button-default reply-or-quote-option\"\n :class=\"{ toggled: !newStatus.quoting }\"\n tabindex=\"0\"\n role=\"radio\"\n :aria-labelledby=\"`reply-or-quote-option-${randomSeed}-reply`\"\n :aria-checked=\"!newStatus.quoting\"\n @click=\"newStatus.quoting = false\"\n >\n {{ $t('post_status.reply_option') }}\n </button>\n <button\n :id=\"`reply-or-quote-option-${randomSeed}-quote`\"\n class=\"btn button-default reply-or-quote-option\"\n :class=\"{ toggled: newStatus.quoting }\"\n tabindex=\"0\"\n role=\"radio\"\n :aria-labelledby=\"`reply-or-quote-option-${randomSeed}-quote`\"\n :aria-checked=\"newStatus.quoting\"\n @click=\"newStatus.quoting = true\"\n >\n {{ $t('post_status.quote_option') }}\n </button>\n </div>\n <EmojiInput\n v-if=\"!disableSubject && (newStatus.spoilerText || alwaysShowSubject)\"\n v-model=\"newStatus.spoilerText\"\n enable-emoji-picker\n :suggest=\"emojiSuggestor\"\n class=\"form-control\"\n >\n <template #default=\"inputProps\">\n <input\n v-model=\"newStatus.spoilerText\"\n type=\"text\"\n :placeholder=\"$t('post_status.content_warning')\"\n :disabled=\"posting && !optimisticPosting\"\n v-bind=\"propsToNative(inputProps)\"\n size=\"1\"\n class=\"form-post-subject\"\n >\n </template>\n </EmojiInput>\n <EmojiInput\n ref=\"emoji-input\"\n v-model=\"newStatus.status\"\n :suggest=\"emojiUserSuggestor\"\n :placement=\"emojiPickerPlacement\"\n class=\"form-control main-input\"\n enable-emoji-picker\n hide-emoji-button\n :newline-on-ctrl-enter=\"submitOnEnter\"\n enable-sticker-picker\n @input=\"onEmojiInputInput\"\n @sticker-uploaded=\"addMediaFile\"\n @sticker-upload-failed=\"uploadFailed\"\n @shown=\"handleEmojiInputShow\"\n >\n <template #default=\"inputProps\">\n <textarea\n ref=\"textarea\"\n v-model=\"newStatus.status\"\n :placeholder=\"placeholder || $t('post_status.default')\"\n rows=\"1\"\n cols=\"1\"\n :disabled=\"posting && !optimisticPosting\"\n class=\"form-post-body\"\n :class=\"{ 'scrollable-form': !!maxHeight }\"\n v-bind=\"propsToNative(inputProps)\"\n @keydown.exact.enter=\"submitOnEnter && postStatus($event, newStatus)\"\n @keydown.meta.enter=\"postStatus($event, newStatus)\"\n @keydown.ctrl.enter=\"!submitOnEnter && postStatus($event, newStatus)\"\n @input=\"resize\"\n @compositionupdate=\"resize\"\n @paste=\"paste\"\n />\n <p\n v-if=\"hasStatusLengthLimit\"\n class=\"character-counter faint\"\n :class=\"{ error: isOverLengthLimit }\"\n >\n {{ charactersLeft }}\n </p>\n </template>\n </EmojiInput>\n <div\n v-if=\"!disableScopeSelector\"\n class=\"visibility-tray\"\n >\n <scope-selector\n v-if=\"!disableVisibilitySelector\"\n :show-all=\"showAllScopes\"\n :user-default=\"userDefaultScope\"\n :original-scope=\"copyMessageScope\"\n :initial-scope=\"newStatus.visibility\"\n :on-scope-change=\"changeVis\"\n />\n\n <div\n v-if=\"postFormats.length > 1\"\n class=\"text-format\"\n >\n <Select\n id=\"post-content-type\"\n v-model=\"newStatus.contentType\"\n class=\"form-control\"\n :attrs=\"{ 'aria-label': $t('post_status.content_type_selection') }\"\n >\n <option\n v-for=\"postFormat in postFormats\"\n :key=\"postFormat\"\n :value=\"postFormat\"\n >\n {{ $t(`post_status.content_type[\"${postFormat}\"]`) }}\n </option>\n </Select>\n </div>\n <div\n v-if=\"postFormats.length === 1 && postFormats[0] !== 'text/plain'\"\n class=\"text-format\"\n >\n <span class=\"only-format\">\n {{ $t(`post_status.content_type[\"${postFormats[0]}\"]`) }}\n </span>\n </div>\n </div>\n </div>\n <poll-form\n v-if=\"pollsAvailable\"\n ref=\"pollForm\"\n :visible=\"pollFormVisible\"\n @update-poll=\"setPoll\"\n />\n <div\n ref=\"bottom\"\n class=\"form-bottom\"\n >\n <div class=\"form-bottom-left\">\n <media-upload\n ref=\"mediaUpload\"\n class=\"media-upload-icon\"\n :drop-files=\"dropFiles\"\n :disabled=\"uploadFileLimitReached\"\n @uploading=\"startedUploadingFiles\"\n @uploaded=\"addMediaFile\"\n @upload-failed=\"uploadFailed\"\n @all-uploaded=\"finishedUploadingFiles\"\n />\n <button\n class=\"emoji-icon button-unstyled\"\n :title=\"$t('emoji.add_emoji')\"\n @click=\"showEmojiPicker\"\n >\n <FAIcon icon=\"smile-beam\" />\n </button>\n <button\n v-if=\"pollsAvailable\"\n class=\"poll-icon button-unstyled\"\n :class=\"{ selected: pollFormVisible }\"\n :title=\"$t('polls.add_poll')\"\n @click=\"togglePollForm\"\n >\n <FAIcon icon=\"poll-h\" />\n </button>\n </div>\n <button\n v-if=\"posting\"\n disabled\n class=\"btn button-default\"\n >\n {{ $t('post_status.posting') }}\n </button>\n <button\n v-else-if=\"isOverLengthLimit\"\n disabled\n class=\"btn button-default\"\n >\n {{ $t('post_status.post') }}\n </button>\n <button\n v-else\n :disabled=\"uploadingFiles || disableSubmit\"\n class=\"btn button-default\"\n @click.stop.prevent=\"postStatus($event, newStatus)\"\n >\n {{ $t('post_status.post') }}\n </button>\n </div>\n <div\n v-show=\"showDropIcon !== 'hide'\"\n :style=\"{ animation: showDropIcon === 'show' ? 'fade-in 0.25s' : 'fade-out 0.5s' }\"\n class=\"drop-indicator\"\n @dragleave=\"fileDragStop\"\n @drop.stop=\"fileDrop\"\n >\n <FAIcon :icon=\"uploadFileLimitReached ? 'ban' : 'upload'\" />\n </div>\n <div\n v-if=\"error\"\n class=\"alert error\"\n >\n Error: {{ error }}\n <button\n class=\"button-unstyled\"\n @click=\"clearError\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"times\"\n />\n </button>\n </div>\n <gallery\n v-if=\"newStatus.files && newStatus.files.length > 0\"\n class=\"attachments\"\n :grid=\"true\"\n :nsfw=\"false\"\n :attachments=\"newStatus.files\"\n :descriptions=\"newStatus.mediaDescriptions\"\n :set-media=\"() => $store.dispatch('setMedia', newStatus.files)\"\n :editable=\"true\"\n :edit-attachment=\"editAttachment\"\n :remove-attachment=\"removeMediaFile\"\n :shift-up-attachment=\"newStatus.files.length > 1 && shiftUpMediaFile\"\n :shift-dn-attachment=\"newStatus.files.length > 1 && shiftDnMediaFile\"\n @play=\"$emit('mediaplay', attachment.id)\"\n @pause=\"$emit('mediapause', attachment.id)\"\n />\n <div\n v-if=\"newStatus.files.length > 0 && !disableSensitivityCheckbox\"\n class=\"upload_settings\"\n >\n <Checkbox v-model=\"newStatus.nsfw\">\n {{ $t('post_status.attachments_sensitive') }}\n </Checkbox>\n </div>\n </form>\n </div>\n</template>\n\n<script src=\"./post_status_form.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.post-status-form {\n position: relative;\n\n .attachments {\n margin-bottom: 0.5em;\n }\n\n .form-bottom {\n display: flex;\n justify-content: space-between;\n padding: 0.5em;\n height: 2.5em;\n\n button {\n width: 10em;\n }\n\n p {\n margin: 0.35em;\n padding: 0.35em;\n display: flex;\n }\n }\n\n .form-bottom-left {\n display: flex;\n flex: 1;\n padding-right: 7px;\n margin-right: 7px;\n max-width: 10em;\n }\n\n .preview-heading {\n display: flex;\n padding-left: 0.5em;\n }\n\n .preview-toggle {\n flex: 1;\n cursor: pointer;\n user-select: none;\n\n &:hover {\n text-decoration: underline;\n }\n\n svg,\n i {\n margin-left: 0.2em;\n font-size: 0.8em;\n transform: rotate(90deg);\n }\n }\n\n .preview-container {\n margin-bottom: 1em;\n }\n\n .preview-error {\n font-style: italic;\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n }\n\n .preview-status {\n border: 1px solid $fallback--border;\n border: 1px solid var(--border, $fallback--border);\n border-radius: $fallback--tooltipRadius;\n border-radius: var(--tooltipRadius, $fallback--tooltipRadius);\n padding: 0.5em;\n margin: 0;\n }\n\n .reply-or-quote-selector {\n margin-bottom: 0.5em;\n }\n\n .text-format {\n .only-format {\n color: $fallback--faint;\n color: var(--faint, $fallback--faint);\n }\n }\n\n .visibility-tray {\n display: flex;\n justify-content: space-between;\n padding-top: 5px;\n align-items: baseline;\n }\n\n .visibility-notice.edit-warning {\n > :first-child {\n margin-top: 0;\n }\n\n > :last-child {\n margin-bottom: 0;\n }\n }\n\n // Order is not necessary but a good indicator\n .media-upload-icon {\n order: 1;\n justify-content: left;\n }\n\n .emoji-icon {\n order: 2;\n justify-content: center;\n }\n\n .poll-icon {\n order: 3;\n justify-content: right;\n }\n\n .media-upload-icon,\n .poll-icon,\n .emoji-icon {\n font-size: 1.85em;\n line-height: 1.1;\n flex: 1;\n padding: 0 0.1em;\n display: flex;\n align-items: center;\n\n &.selected,\n &:hover {\n // needs to be specific to override icon default color\n svg,\n i,\n label {\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n }\n }\n\n &.disabled {\n svg,\n i {\n cursor: not-allowed;\n color: $fallback--icon;\n color: var(--btnDisabledText, $fallback--icon);\n\n &:hover {\n color: $fallback--icon;\n color: var(--btnDisabledText, $fallback--icon);\n }\n }\n }\n }\n\n .error {\n text-align: center;\n }\n\n .media-upload-wrapper {\n margin-right: 0.2em;\n margin-bottom: 0.5em;\n width: 18em;\n\n img,\n video {\n object-fit: contain;\n max-height: 10em;\n }\n\n .video {\n max-height: 10em;\n }\n\n input {\n flex: 1;\n width: 100%;\n }\n }\n\n .status-input-wrapper {\n display: flex;\n position: relative;\n width: 100%;\n flex-direction: column;\n }\n\n .btn[disabled] {\n cursor: not-allowed;\n }\n\n form {\n display: flex;\n flex-direction: column;\n margin: 0.6em;\n position: relative;\n }\n\n .form-group {\n display: flex;\n flex-direction: column;\n padding: 0.25em 0.5em 0.5em;\n line-height: 1.85;\n }\n\n .form-post-body {\n // TODO: make a resizable textarea component?\n box-sizing: content-box; // needed for easier computation of dynamic size\n overflow: hidden;\n transition: min-height 200ms 100ms;\n // stock padding + 1 line of text (for counter)\n padding-bottom: calc(var(--_padding) + var(--post-line-height) * 1em);\n // two lines of text\n height: calc(var(--post-line-height) * 1em);\n min-height: calc(var(--post-line-height) * 1em);\n resize: none;\n\n &.scrollable-form {\n overflow-y: auto;\n }\n }\n\n .main-input {\n position: relative;\n }\n\n .character-counter {\n position: absolute;\n bottom: 0;\n right: 0;\n padding: 0;\n margin: 0 0.5em;\n\n &.error {\n color: $fallback--cRed;\n color: var(--cRed, $fallback--cRed);\n }\n }\n\n @keyframes fade-in {\n from { opacity: 0; }\n to { opacity: 0.6; }\n }\n\n @keyframes fade-out {\n from { opacity: 0.6; }\n to { opacity: 0; }\n }\n\n .drop-indicator {\n position: absolute;\n width: 100%;\n height: 100%;\n font-size: 5em;\n display: flex;\n align-items: center;\n justify-content: center;\n opacity: 0.6;\n color: $fallback--text;\n color: var(--text, $fallback--text);\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n border-radius: $fallback--tooltipRadius;\n border-radius: var(--tooltipRadius, $fallback--tooltipRadius);\n border: 2px dashed $fallback--text;\n border: 2px dashed var(--text, $fallback--text);\n }\n}\n</style>\n","<template>\n <div\n v-if=\"visible\"\n class=\"poll-form\"\n >\n <div\n v-for=\"(option, index) in options\"\n :key=\"index\"\n class=\"poll-option\"\n >\n <div class=\"input-container\">\n <input\n :id=\"`poll-${index}`\"\n v-model=\"options[index]\"\n size=\"1\"\n class=\"poll-option-input\"\n type=\"text\"\n :placeholder=\"$t('polls.option')\"\n :maxlength=\"maxLength\"\n @change=\"updatePollToParent\"\n @keydown.enter.stop.prevent=\"nextOption(index)\"\n >\n </div>\n <button\n v-if=\"options.length > 2\"\n class=\"delete-option button-unstyled -hover-highlight\"\n @click=\"deleteOption(index)\"\n >\n <FAIcon icon=\"times\" />\n </button>\n </div>\n <button\n v-if=\"options.length < maxOptions\"\n class=\"add-option faint button-unstyled -hover-highlight\"\n @click=\"addOption\"\n >\n <FAIcon\n icon=\"plus\"\n size=\"sm\"\n />\n\n {{ $t(\"polls.add_option\") }}\n </button>\n <div class=\"poll-type-expiry\">\n <div\n class=\"poll-type\"\n :title=\"$t('polls.type')\"\n >\n <Select\n v-model=\"pollType\"\n class=\"poll-type-select\"\n unstyled=\"true\"\n @change=\"updatePollToParent\"\n >\n <option value=\"single\">\n {{ $t('polls.single_choice') }}\n </option>\n <option value=\"multiple\">\n {{ $t('polls.multiple_choices') }}\n </option>\n </Select>\n </div>\n <div\n class=\"poll-expiry\"\n :title=\"$t('polls.expiry')\"\n >\n <input\n v-model=\"expiryAmount\"\n type=\"number\"\n class=\"expiry-amount hide-number-spinner\"\n :min=\"minExpirationInCurrentUnit\"\n :max=\"maxExpirationInCurrentUnit\"\n @change=\"expiryAmountChange\"\n >\n {{ ' ' }}\n <Select\n v-model=\"expiryUnit\"\n unstyled=\"true\"\n class=\"expiry-unit\"\n @change=\"expiryAmountChange\"\n >\n <option\n v-for=\"unit in expiryUnits\"\n :key=\"unit\"\n :value=\"unit\"\n >\n {{ $tc(`time.unit.${unit}_short`, expiryAmount, ['']) }}\n </option>\n </Select>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./poll_form.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.poll-form {\n display: flex;\n flex-direction: column;\n padding: 0 0.5em 0.5em;\n\n .add-option {\n align-self: flex-start;\n padding-top: 0.25em;\n padding-left: 0.1em;\n }\n\n .poll-option {\n display: flex;\n align-items: baseline;\n justify-content: space-between;\n margin-bottom: 0.25em;\n }\n\n .input-container {\n width: 100%;\n\n input {\n // Hack: dodge the floating X icon\n padding-right: 2.5em;\n width: 100%;\n }\n }\n\n .delete-option {\n // Hack: Move the icon over the input box\n width: 1.5em;\n margin-left: -1.5em;\n z-index: 1;\n }\n\n .poll-type-expiry {\n margin-top: 0.5em;\n display: flex;\n width: 100%;\n }\n\n .poll-type {\n margin-right: 0.75em;\n flex: 1 1 60%;\n\n .poll-type-select {\n padding-right: 0.75em;\n }\n }\n\n .poll-expiry {\n display: flex;\n\n .expiry-amount {\n width: 3em;\n text-align: right;\n }\n }\n}\n</style>\n","import * as DateUtils from 'src/services/date_utils/date_utils.js'\nimport { uniq } from 'lodash'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport Select from '../select/select.vue'\nimport {\n faTimes,\n faPlus\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faTimes,\n faPlus\n)\n\nexport default {\n components: {\n Select\n },\n name: 'PollForm',\n props: ['visible'],\n data: () => ({\n pollType: 'single',\n options: ['', ''],\n expiryAmount: 10,\n expiryUnit: 'minutes'\n }),\n computed: {\n pollLimits () {\n return this.$store.state.instance.pollLimits\n },\n maxOptions () {\n return this.pollLimits.max_options\n },\n maxLength () {\n return this.pollLimits.max_option_chars\n },\n expiryUnits () {\n const allUnits = ['minutes', 'hours', 'days']\n const expiry = this.convertExpiryFromUnit\n return allUnits.filter(\n unit => this.pollLimits.max_expiration >= expiry(unit, 1)\n )\n },\n minExpirationInCurrentUnit () {\n return Math.ceil(\n this.convertExpiryToUnit(\n this.expiryUnit,\n this.pollLimits.min_expiration\n )\n )\n },\n maxExpirationInCurrentUnit () {\n return Math.floor(\n this.convertExpiryToUnit(\n this.expiryUnit,\n this.pollLimits.max_expiration\n )\n )\n }\n },\n methods: {\n clear () {\n this.pollType = 'single'\n this.options = ['', '']\n this.expiryAmount = 10\n this.expiryUnit = 'minutes'\n },\n nextOption (index) {\n const element = this.$el.querySelector(`#poll-${index + 1}`)\n if (element) {\n element.focus()\n } else {\n // Try adding an option and try focusing on it\n const addedOption = this.addOption()\n if (addedOption) {\n this.$nextTick(function () {\n this.nextOption(index)\n })\n }\n }\n },\n addOption () {\n if (this.options.length < this.maxOptions) {\n this.options.push('')\n return true\n }\n return false\n },\n deleteOption (index, event) {\n if (this.options.length > 2) {\n this.options.splice(index, 1)\n this.updatePollToParent()\n }\n },\n convertExpiryToUnit (unit, amount) {\n // Note: we want seconds and not milliseconds\n return DateUtils.secondsToUnit(unit, amount)\n },\n convertExpiryFromUnit (unit, amount) {\n return DateUtils.unitToSeconds(unit, amount)\n },\n expiryAmountChange () {\n this.expiryAmount =\n Math.max(this.minExpirationInCurrentUnit, this.expiryAmount)\n this.expiryAmount =\n Math.min(this.maxExpirationInCurrentUnit, this.expiryAmount)\n this.updatePollToParent()\n },\n updatePollToParent () {\n const expiresIn = this.convertExpiryFromUnit(\n this.expiryUnit,\n this.expiryAmount\n )\n\n const options = uniq(this.options.filter(option => option !== ''))\n if (options.length < 2) {\n this.$emit('update-poll', { error: this.$t('polls.not_enough_options') })\n return\n }\n this.$emit('update-poll', {\n options,\n multiple: this.pollType === 'multiple',\n expiresIn\n })\n }\n }\n}\n","import { render } from \"./poll_form.vue?vue&type=template&id=24ea52c8\"\nimport script from \"./poll_form.js?vue&type=script&lang=js\"\nexport * from \"./poll_form.js?vue&type=script&lang=js\"\n\nimport \"./poll_form.vue?vue&type=style&index=0&id=24ea52c8&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import statusPoster from '../../services/status_poster/status_poster.service.js'\nimport genRandomSeed from '../../services/random_seed/random_seed.service.js'\nimport MediaUpload from '../media_upload/media_upload.vue'\nimport ScopeSelector from '../scope_selector/scope_selector.vue'\nimport EmojiInput from '../emoji_input/emoji_input.vue'\nimport PollForm from '../poll/poll_form.vue'\nimport Attachment from '../attachment/attachment.vue'\nimport Gallery from 'src/components/gallery/gallery.vue'\nimport StatusContent from '../status_content/status_content.vue'\nimport fileTypeService from '../../services/file_type/file_type.service.js'\nimport { findOffset } from '../../services/offset_finder/offset_finder.service.js'\nimport { propsToNative } from '../../services/attributes_helper/attributes_helper.service.js'\nimport { reject, map, uniqBy, debounce } from 'lodash'\nimport suggestor from '../emoji_input/suggestor.js'\nimport { mapGetters, mapState } from 'vuex'\nimport Checkbox from '../checkbox/checkbox.vue'\nimport Select from '../select/select.vue'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faSmileBeam,\n faPollH,\n faUpload,\n faBan,\n faTimes,\n faCircleNotch\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faSmileBeam,\n faPollH,\n faUpload,\n faBan,\n faTimes,\n faCircleNotch\n)\n\nconst buildMentionsString = ({ user, attentions = [] }, currentUser) => {\n let allAttentions = [...attentions]\n\n allAttentions.unshift(user)\n\n allAttentions = uniqBy(allAttentions, 'id')\n allAttentions = reject(allAttentions, { id: currentUser.id })\n\n const mentions = map(allAttentions, (attention) => {\n return `@${attention.screen_name}`\n })\n\n return mentions.length > 0 ? mentions.join(' ') + ' ' : ''\n}\n\n// Converts a string with px to a number like '2px' -> 2\nconst pxStringToNumber = (str) => {\n return Number(str.substring(0, str.length - 2))\n}\n\nconst PostStatusForm = {\n props: [\n 'statusId',\n 'statusText',\n 'statusIsSensitive',\n 'statusPoll',\n 'statusFiles',\n 'statusMediaDescriptions',\n 'statusScope',\n 'statusContentType',\n 'replyTo',\n 'repliedUser',\n 'attentions',\n 'copyMessageScope',\n 'subject',\n 'disableSubject',\n 'disableScopeSelector',\n 'disableVisibilitySelector',\n 'disableNotice',\n 'disableLockWarning',\n 'disablePolls',\n 'disableSensitivityCheckbox',\n 'disableSubmit',\n 'disablePreview',\n 'placeholder',\n 'maxHeight',\n 'postHandler',\n 'preserveFocus',\n 'autoFocus',\n 'fileLimit',\n 'submitOnEnter',\n 'emojiPickerPlacement',\n 'optimisticPosting'\n ],\n emits: [\n 'posted',\n 'resize',\n 'mediaplay',\n 'mediapause'\n ],\n components: {\n MediaUpload,\n EmojiInput,\n PollForm,\n ScopeSelector,\n Checkbox,\n Select,\n Attachment,\n StatusContent,\n Gallery\n },\n mounted () {\n this.updateIdempotencyKey()\n this.resize(this.$refs.textarea)\n\n if (this.replyTo) {\n const textLength = this.$refs.textarea.value.length\n this.$refs.textarea.setSelectionRange(textLength, textLength)\n }\n\n if (this.replyTo || this.autoFocus) {\n this.$refs.textarea.focus()\n }\n },\n data () {\n const preset = this.$route.query.message\n let statusText = preset || ''\n\n const { scopeCopy } = this.$store.getters.mergedConfig\n\n if (this.replyTo) {\n const currentUser = this.$store.state.users.currentUser\n statusText = buildMentionsString({ user: this.repliedUser, attentions: this.attentions }, currentUser)\n }\n\n const scope = ((this.copyMessageScope && scopeCopy) || this.copyMessageScope === 'direct')\n ? this.copyMessageScope\n : this.$store.state.users.currentUser.default_scope\n\n const { postContentType: contentType, sensitiveByDefault } = this.$store.getters.mergedConfig\n\n let statusParams = {\n spoilerText: this.subject || '',\n status: statusText,\n nsfw: !!sensitiveByDefault,\n files: [],\n poll: {},\n mediaDescriptions: {},\n visibility: scope,\n contentType\n }\n\n if (this.statusId) {\n const statusContentType = this.statusContentType || contentType\n statusParams = {\n spoilerText: this.subject || '',\n status: this.statusText || '',\n nsfw: this.statusIsSensitive || !!sensitiveByDefault,\n files: this.statusFiles || [],\n poll: this.statusPoll || {},\n mediaDescriptions: this.statusMediaDescriptions || {},\n visibility: this.statusScope || scope,\n contentType: statusContentType,\n quoting: false\n }\n }\n\n return {\n randomSeed: genRandomSeed(),\n dropFiles: [],\n uploadingFiles: false,\n error: null,\n posting: false,\n highlighted: 0,\n newStatus: statusParams,\n caret: 0,\n pollFormVisible: false,\n showDropIcon: 'hide',\n dropStopTimeout: null,\n preview: null,\n previewLoading: false,\n emojiInputShown: false,\n idempotencyKey: ''\n }\n },\n computed: {\n users () {\n return this.$store.state.users.users\n },\n userDefaultScope () {\n return this.$store.state.users.currentUser.default_scope\n },\n showAllScopes () {\n return !this.mergedConfig.minimalScopesMode\n },\n emojiUserSuggestor () {\n return suggestor({\n emoji: [\n ...this.$store.getters.standardEmojiList,\n ...this.$store.state.instance.customEmoji\n ],\n store: this.$store\n })\n },\n emojiSuggestor () {\n return suggestor({\n emoji: [\n ...this.$store.getters.standardEmojiList,\n ...this.$store.state.instance.customEmoji\n ]\n })\n },\n emoji () {\n return this.$store.getters.standardEmojiList || []\n },\n customEmoji () {\n return this.$store.state.instance.customEmoji || []\n },\n statusLength () {\n return this.newStatus.status.length\n },\n spoilerTextLength () {\n return this.newStatus.spoilerText.length\n },\n statusLengthLimit () {\n return this.$store.state.instance.textlimit\n },\n hasStatusLengthLimit () {\n return this.statusLengthLimit > 0\n },\n charactersLeft () {\n return this.statusLengthLimit - (this.statusLength + this.spoilerTextLength)\n },\n isOverLengthLimit () {\n return this.hasStatusLengthLimit && (this.charactersLeft < 0)\n },\n minimalScopesMode () {\n return this.$store.state.instance.minimalScopesMode\n },\n alwaysShowSubject () {\n return this.mergedConfig.alwaysShowSubjectInput\n },\n postFormats () {\n return this.$store.state.instance.postFormats || []\n },\n safeDMEnabled () {\n return this.$store.state.instance.safeDM\n },\n pollsAvailable () {\n return this.$store.state.instance.pollsAvailable &&\n this.$store.state.instance.pollLimits.max_options >= 2 &&\n this.disablePolls !== true\n },\n hideScopeNotice () {\n return this.disableNotice || this.$store.getters.mergedConfig.hideScopeNotice\n },\n pollContentError () {\n return this.pollFormVisible &&\n this.newStatus.poll &&\n this.newStatus.poll.error\n },\n showPreview () {\n return !this.disablePreview && (!!this.preview || this.previewLoading)\n },\n emptyStatus () {\n return this.newStatus.status.trim() === '' && this.newStatus.files.length === 0\n },\n uploadFileLimitReached () {\n return this.newStatus.files.length >= this.fileLimit\n },\n isEdit () {\n return typeof this.statusId !== 'undefined' && this.statusId.trim() !== ''\n },\n quotable () {\n if (!this.$store.state.instance.quotingAvailable) {\n return false\n }\n\n if (!this.replyTo) {\n return false\n }\n\n const repliedStatus = this.$store.state.statuses.allStatusesObject[this.replyTo]\n if (!repliedStatus) {\n return false\n }\n\n if (repliedStatus.visibility === 'public' ||\n repliedStatus.visibility === 'unlisted' ||\n repliedStatus.visibility === 'local') {\n return true\n } else if (repliedStatus.visibility === 'private') {\n return repliedStatus.user.id === this.$store.state.users.currentUser.id\n }\n\n return false\n },\n ...mapGetters(['mergedConfig']),\n ...mapState({\n mobileLayout: state => state.interface.mobileLayout\n })\n },\n watch: {\n newStatus: {\n deep: true,\n handler () {\n this.statusChanged()\n }\n }\n },\n methods: {\n statusChanged () {\n this.autoPreview()\n this.updateIdempotencyKey()\n },\n clearStatus () {\n const newStatus = this.newStatus\n this.newStatus = {\n status: '',\n spoilerText: '',\n files: [],\n visibility: newStatus.visibility,\n contentType: newStatus.contentType,\n poll: {},\n mediaDescriptions: {},\n quoting: false\n }\n this.pollFormVisible = false\n this.$refs.mediaUpload && this.$refs.mediaUpload.clearFile()\n this.clearPollForm()\n if (this.preserveFocus) {\n this.$nextTick(() => {\n this.$refs.textarea.focus()\n })\n }\n const el = this.$el.querySelector('textarea')\n el.style.height = 'auto'\n el.style.height = undefined\n this.error = null\n if (this.preview) this.previewStatus()\n },\n async postStatus (event, newStatus, opts = {}) {\n if (this.posting && !this.optimisticPosting) { return }\n if (this.disableSubmit) { return }\n if (this.emojiInputShown) { return }\n if (this.submitOnEnter) {\n event.stopPropagation()\n event.preventDefault()\n }\n\n if (this.optimisticPosting && (this.emptyStatus || this.isOverLengthLimit)) { return }\n\n if (this.emptyStatus) {\n this.error = this.$t('post_status.empty_status_error')\n return\n }\n\n const poll = this.pollFormVisible ? this.newStatus.poll : {}\n if (this.pollContentError) {\n this.error = this.pollContentError\n return\n }\n\n this.posting = true\n\n try {\n await this.setAllMediaDescriptions()\n } catch (e) {\n this.error = this.$t('post_status.media_description_error')\n this.posting = false\n return\n }\n\n const replyOrQuoteAttr = newStatus.quoting ? 'quoteId' : 'inReplyToStatusId'\n\n const postingOptions = {\n status: newStatus.status,\n spoilerText: newStatus.spoilerText || null,\n visibility: newStatus.visibility,\n sensitive: newStatus.nsfw,\n media: newStatus.files,\n store: this.$store,\n [replyOrQuoteAttr]: this.replyTo,\n contentType: newStatus.contentType,\n poll,\n idempotencyKey: this.idempotencyKey\n }\n\n const postHandler = this.postHandler ? this.postHandler : statusPoster.postStatus\n\n postHandler(postingOptions).then((data) => {\n if (!data.error) {\n this.clearStatus()\n this.$emit('posted', data)\n } else {\n this.error = data.error\n }\n this.posting = false\n })\n },\n previewStatus () {\n if (this.emptyStatus && this.newStatus.spoilerText.trim() === '') {\n this.preview = { error: this.$t('post_status.preview_empty') }\n this.previewLoading = false\n return\n }\n const newStatus = this.newStatus\n this.previewLoading = true\n const replyOrQuoteAttr = newStatus.quoting ? 'quoteId' : 'inReplyToStatusId'\n statusPoster.postStatus({\n status: newStatus.status,\n spoilerText: newStatus.spoilerText || null,\n visibility: newStatus.visibility,\n sensitive: newStatus.nsfw,\n media: [],\n store: this.$store,\n [replyOrQuoteAttr]: this.replyTo,\n contentType: newStatus.contentType,\n poll: {},\n preview: true\n }).then((data) => {\n // Don't apply preview if not loading, because it means\n // user has closed the preview manually.\n if (!this.previewLoading) return\n if (!data.error) {\n this.preview = data\n } else {\n this.preview = { error: data.error }\n }\n }).catch((error) => {\n this.preview = { error }\n }).finally(() => {\n this.previewLoading = false\n })\n },\n debouncePreviewStatus: debounce(function () { this.previewStatus() }, 500),\n autoPreview () {\n if (!this.preview) return\n this.previewLoading = true\n this.debouncePreviewStatus()\n },\n closePreview () {\n this.preview = null\n this.previewLoading = false\n },\n togglePreview () {\n if (this.showPreview) {\n this.closePreview()\n } else {\n this.previewStatus()\n }\n },\n addMediaFile (fileInfo) {\n this.newStatus.files.push(fileInfo)\n this.$emit('resize', { delayed: true })\n },\n removeMediaFile (fileInfo) {\n const index = this.newStatus.files.indexOf(fileInfo)\n this.newStatus.files.splice(index, 1)\n this.$emit('resize')\n },\n editAttachment (fileInfo, newText) {\n this.newStatus.mediaDescriptions[fileInfo.id] = newText\n },\n shiftUpMediaFile (fileInfo) {\n const { files } = this.newStatus\n const index = this.newStatus.files.indexOf(fileInfo)\n files.splice(index, 1)\n files.splice(index - 1, 0, fileInfo)\n },\n shiftDnMediaFile (fileInfo) {\n const { files } = this.newStatus\n const index = this.newStatus.files.indexOf(fileInfo)\n files.splice(index, 1)\n files.splice(index + 1, 0, fileInfo)\n },\n uploadFailed (errString, templateArgs) {\n templateArgs = templateArgs || {}\n this.error = this.$t('upload.error.base') + ' ' + this.$t('upload.error.' + errString, templateArgs)\n },\n startedUploadingFiles () {\n this.uploadingFiles = true\n },\n finishedUploadingFiles () {\n this.$emit('resize')\n this.uploadingFiles = false\n },\n type (fileInfo) {\n return fileTypeService.fileType(fileInfo.mimetype)\n },\n paste (e) {\n this.autoPreview()\n this.resize(e)\n if (e.clipboardData.files.length > 0) {\n // prevent pasting of file as text\n e.preventDefault()\n // Strangely, files property gets emptied after event propagation\n // Trying to wrap it in array doesn't work. Plus I doubt it's possible\n // to hold more than one file in clipboard.\n this.dropFiles = [e.clipboardData.files[0]]\n }\n },\n fileDrop (e) {\n if (e.dataTransfer && e.dataTransfer.types.includes('Files')) {\n e.preventDefault() // allow dropping text like before\n this.dropFiles = e.dataTransfer.files\n clearTimeout(this.dropStopTimeout)\n this.showDropIcon = 'hide'\n }\n },\n fileDragStop (e) {\n // The false-setting is done with delay because just using leave-events\n // directly caused unwanted flickering, this is not perfect either but\n // much less noticable.\n clearTimeout(this.dropStopTimeout)\n this.showDropIcon = 'fade'\n this.dropStopTimeout = setTimeout(() => (this.showDropIcon = 'hide'), 500)\n },\n fileDrag (e) {\n e.dataTransfer.dropEffect = this.uploadFileLimitReached ? 'none' : 'copy'\n if (e.dataTransfer && e.dataTransfer.types.includes('Files')) {\n clearTimeout(this.dropStopTimeout)\n this.showDropIcon = 'show'\n }\n },\n onEmojiInputInput (e) {\n this.$nextTick(() => {\n this.resize(this.$refs.textarea)\n })\n },\n resize (e) {\n const target = e.target || e\n if (!(target instanceof window.Element)) { return }\n\n // Reset to default height for empty form, nothing else to do here.\n if (target.value === '') {\n target.style.height = null\n this.$emit('resize')\n return\n }\n\n const formRef = this.$refs.form\n const bottomRef = this.$refs.bottom\n /* Scroller is either `window` (replies in TL), sidebar (main post form,\n * replies in notifs) or mobile post form. Note that getting and setting\n * scroll is different for `Window` and `Element`s\n */\n const bottomBottomPaddingStr = window.getComputedStyle(bottomRef)['padding-bottom']\n const bottomBottomPadding = pxStringToNumber(bottomBottomPaddingStr)\n\n const scrollerRef = this.$el.closest('.column.-scrollable') ||\n this.$el.closest('.post-form-modal-view') ||\n window\n\n // Getting info about padding we have to account for, removing 'px' part\n const topPaddingStr = window.getComputedStyle(target)['padding-top']\n const bottomPaddingStr = window.getComputedStyle(target)['padding-bottom']\n const topPadding = pxStringToNumber(topPaddingStr)\n const bottomPadding = pxStringToNumber(bottomPaddingStr)\n const vertPadding = topPadding + bottomPadding\n\n const oldHeight = pxStringToNumber(target.style.height)\n\n /* Explanation:\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight\n * scrollHeight returns element's scrollable content height, i.e. visible\n * element + overscrolled parts of it. We use it to determine when text\n * inside the textarea exceeded its height, so we can set height to prevent\n * overscroll, i.e. make textarea grow with the text. HOWEVER, since we\n * explicitly set new height, scrollHeight won't go below that, so we can't\n * SHRINK the textarea when there's extra space. To workaround that we set\n * height to 'auto' which makes textarea tiny again, so that scrollHeight\n * will match text height again. HOWEVER, shrinking textarea can screw with\n * the scroll since there might be not enough padding around form-bottom to even\n * warrant a scroll, so it will jump to 0 and refuse to move anywhere,\n * so we check current scroll position before shrinking and then restore it\n * with needed delta.\n */\n\n // this part has to be BEFORE the content size update\n const currentScroll = scrollerRef === window\n ? scrollerRef.scrollY\n : scrollerRef.scrollTop\n const scrollerHeight = scrollerRef === window\n ? scrollerRef.innerHeight\n : scrollerRef.offsetHeight\n const scrollerBottomBorder = currentScroll + scrollerHeight\n\n // BEGIN content size update\n target.style.height = 'auto'\n const heightWithoutPadding = Math.floor(target.scrollHeight - vertPadding)\n let newHeight = this.maxHeight ? Math.min(heightWithoutPadding, this.maxHeight) : heightWithoutPadding\n // This is a bit of a hack to combat target.scrollHeight being different on every other input\n // on some browsers for whatever reason. Don't change the height if difference is 1px or less.\n if (Math.abs(newHeight - oldHeight) <= 1) {\n newHeight = oldHeight\n }\n target.style.height = `${newHeight}px`\n this.$emit('resize', newHeight)\n // END content size update\n\n // We check where the bottom border of form-bottom element is, this uses findOffset\n // to find offset relative to scrollable container (scroller)\n const bottomBottomBorder = bottomRef.offsetHeight + findOffset(bottomRef, scrollerRef).top + bottomBottomPadding\n\n const isBottomObstructed = scrollerBottomBorder < bottomBottomBorder\n const isFormBiggerThanScroller = scrollerHeight < formRef.offsetHeight\n const bottomChangeDelta = bottomBottomBorder - scrollerBottomBorder\n // The intention is basically this;\n // Keep form-bottom always visible so that submit button is in view EXCEPT\n // if form element bigger than scroller and caret isn't at the end, so that\n // if you scroll up and edit middle of text you won't get scrolled back to bottom\n const shouldScrollToBottom = isBottomObstructed &&\n !(isFormBiggerThanScroller &&\n this.$refs.textarea.selectionStart !== this.$refs.textarea.value.length)\n const totalDelta = shouldScrollToBottom ? bottomChangeDelta : 0\n const targetScroll = Math.round(currentScroll + totalDelta)\n\n if (scrollerRef === window) {\n scrollerRef.scroll(0, targetScroll)\n } else {\n scrollerRef.scrollTop = targetScroll\n }\n },\n showEmojiPicker () {\n this.$refs.textarea.focus()\n this.$refs['emoji-input'].triggerShowPicker()\n },\n clearError () {\n this.error = null\n },\n changeVis (visibility) {\n this.newStatus.visibility = visibility\n },\n togglePollForm () {\n this.pollFormVisible = !this.pollFormVisible\n },\n setPoll (poll) {\n this.newStatus.poll = poll\n },\n clearPollForm () {\n if (this.$refs.pollForm) {\n this.$refs.pollForm.clear()\n }\n },\n dismissScopeNotice () {\n this.$store.dispatch('setOption', { name: 'hideScopeNotice', value: true })\n },\n setMediaDescription (id) {\n const description = this.newStatus.mediaDescriptions[id]\n if (!description || description.trim() === '') return\n return statusPoster.setMediaDescription({ store: this.$store, id, description })\n },\n setAllMediaDescriptions () {\n const ids = this.newStatus.files.map(file => file.id)\n return Promise.all(ids.map(id => this.setMediaDescription(id)))\n },\n handleEmojiInputShow (value) {\n this.emojiInputShown = value\n },\n updateIdempotencyKey () {\n this.idempotencyKey = Date.now().toString()\n },\n openProfileTab () {\n this.$store.dispatch('openSettingsModalTab', 'profile')\n },\n propsToNative (props) {\n return propsToNative(props)\n }\n }\n}\n\nexport default PostStatusForm\n","import { render } from \"./post_status_form.vue?vue&type=template&id=59414186\"\nimport script from \"./post_status_form.js?vue&type=script&lang=js\"\nexport * from \"./post_status_form.js?vue&type=script&lang=js\"\n\nimport \"./post_status_form.vue?vue&type=style&index=0&id=59414186&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<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","import { render } from \"./progress_button.vue?vue&type=template&id=9f751ae6\"\nimport script from \"./progress_button.vue?vue&type=script&lang=js\"\nexport * from \"./progress_button.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"remote-follow\">\n <form\n method=\"POST\"\n :action=\"subscribeUrl\"\n >\n <input\n type=\"hidden\"\n name=\"nickname\"\n :value=\"user.screen_name\"\n >\n <input\n type=\"hidden\"\n name=\"profile\"\n value=\"\"\n >\n <button\n click=\"submit\"\n class=\"button-default remote-button\"\n >\n {{ $t('user_card.remote_follow') }}\n </button>\n </form>\n </div>\n</template>\n\n<script src=\"./remote_follow.js\"></script>\n\n<style lang=\"scss\">\n.remote-follow {\n max-width: 220px;\n\n .remote-button {\n width: 100%;\n min-height: 2em;\n }\n}\n</style>\n","export default {\n props: ['user'],\n computed: {\n subscribeUrl () {\n // eslint-disable-next-line no-undef\n const serverUrl = new URL(this.user.statusnet_profile_url)\n return `${serverUrl.protocol}//${serverUrl.host}/main/ostatus`\n }\n }\n}\n","import { render } from \"./remote_follow.vue?vue&type=template&id=2aed8421\"\nimport script from \"./remote_follow.js?vue&type=script&lang=js\"\nexport * from \"./remote_follow.js?vue&type=script&lang=js\"\n\nimport \"./remote_follow.vue?vue&type=style&index=0&id=2aed8421&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n v-if=\"!showNothing\"\n class=\"ScopeSelector\"\n >\n <button\n v-if=\"showDirect\"\n class=\"button-unstyled scope\"\n :class=\"css.direct\"\n :title=\"$t('post_status.scope.direct')\"\n type=\"button\"\n @click=\"changeVis('direct')\"\n >\n <FAIcon\n icon=\"envelope\"\n class=\"fa-scale-110 fa-old-padding\"\n />\n </button>\n {{ ' ' }}\n <button\n v-if=\"showPrivate\"\n class=\"button-unstyled scope\"\n :class=\"css.private\"\n :title=\"$t('post_status.scope.private')\"\n type=\"button\"\n @click=\"changeVis('private')\"\n >\n <FAIcon\n icon=\"lock\"\n class=\"fa-scale-110 fa-old-padding\"\n />\n </button>\n {{ ' ' }}\n <button\n v-if=\"showUnlisted\"\n class=\"button-unstyled scope\"\n :class=\"css.unlisted\"\n :title=\"$t('post_status.scope.unlisted')\"\n type=\"button\"\n @click=\"changeVis('unlisted')\"\n >\n <FAIcon\n icon=\"lock-open\"\n class=\"fa-scale-110 fa-old-padding\"\n />\n </button>\n {{ ' ' }}\n <button\n v-if=\"showPublic\"\n class=\"button-unstyled scope\"\n :class=\"css.public\"\n :title=\"$t('post_status.scope.public')\"\n type=\"button\"\n @click=\"changeVis('public')\"\n >\n <FAIcon\n icon=\"globe\"\n class=\"fa-scale-110 fa-old-padding\"\n />\n </button>\n </div>\n</template>\n\n<script src=\"./scope_selector.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.ScopeSelector {\n .scope {\n display: inline-block;\n cursor: pointer;\n min-width: 1.3em;\n min-height: 1.3em;\n text-align: center;\n\n &.selected svg {\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n }\n }\n}\n</style>\n","import { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faEnvelope,\n faLock,\n faLockOpen,\n faGlobe\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faEnvelope,\n faGlobe,\n faLock,\n faLockOpen\n)\n\nconst ScopeSelector = {\n props: [\n 'showAll',\n 'userDefault',\n 'originalScope',\n 'initialScope',\n 'onScopeChange'\n ],\n data () {\n return {\n currentScope: this.initialScope\n }\n },\n computed: {\n showNothing () {\n return !this.showPublic && !this.showUnlisted && !this.showPrivate && !this.showDirect\n },\n showPublic () {\n return this.originalScope !== 'direct' && this.shouldShow('public')\n },\n 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","import { render } from \"./scope_selector.vue?vue&type=template&id=3b2dbc9a\"\nimport script from \"./scope_selector.js?vue&type=script&lang=js\"\nexport * from \"./scope_selector.js?vue&type=script&lang=js\"\n\nimport \"./scope_selector.vue?vue&type=style&index=0&id=3b2dbc9a&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faChevronDown\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faChevronDown\n)\n\nexport default {\n emits: ['update:modelValue'],\n props: [\n 'modelValue',\n 'disabled',\n 'unstyled',\n 'kind',\n 'attrs'\n ]\n}\n","import { render } from \"./select.vue?vue&type=template&id=1f77c9b6\"\nimport script from \"./select.js?vue&type=script&lang=js\"\nexport * from \"./select.js?vue&type=script&lang=js\"\n\nimport \"./select.vue?vue&type=style&index=0&id=1f77c9b6&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <label\n class=\"Select input\"\n :class=\"{ disabled, unstyled }\"\n >\n <select\n :disabled=\"disabled\"\n :value=\"modelValue\"\n v-bind=\"attrs\"\n @change=\"$emit('update:modelValue', $event.target.value)\"\n >\n <slot />\n </select>\n {{ ' ' }}\n <FAIcon\n class=\"select-down-icon\"\n icon=\"chevron-down\"\n />\n </label>\n</template>\n\n<script src=\"./select.js\"> </script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n/* TODO fix order of styles */\nlabel.Select {\n padding: 0;\n\n select {\n appearance: none;\n background: transparent;\n border: none;\n color: $fallback--text;\n color: var(--inputText, --text, $fallback--text);\n margin: 0;\n padding: 0 2em 0 0.2em;\n font-family: sans-serif;\n font-family: var(--inputFont, sans-serif);\n font-size: 1em;\n width: 100%;\n z-index: 1;\n height: 2em;\n line-height: 16px;\n }\n\n .select-down-icon {\n position: absolute;\n top: 0;\n bottom: 0;\n right: 5px;\n height: 100%;\n width: 0.875em;\n color: $fallback--text;\n color: var(--inputText, $fallback--text);\n line-height: 2;\n z-index: 0;\n pointer-events: none;\n }\n}\n</style>\n","<template>\n <div\n v-if=\"!hideStatus\"\n ref=\"root\"\n class=\"Status\"\n :class=\"[{ '-focused': isFocused }, { '-conversation': inlineExpanded }]\"\n >\n <div\n v-if=\"error\"\n class=\"alert error\"\n >\n {{ error }}\n <span\n class=\"fa-scale-110 fa-old-padding\"\n @click=\"clearError\"\n >\n <FAIcon icon=\"times\" />\n </span>\n </div>\n <template v-if=\"muted && !isPreview\">\n <div class=\"status-container muted\">\n <small class=\"status-username\">\n <FAIcon\n v-if=\"muted && retweet\"\n class=\"fa-scale-110 fa-old-padding repeat-icon\"\n icon=\"retweet\"\n />\n <user-link\n :user=\"status.user\"\n :at=\"false\"\n />\n </small>\n <small\n v-if=\"showReasonMutedThread\"\n class=\"mute-thread\"\n >\n {{ $t('status.thread_muted') }}\n </small>\n <small\n v-if=\"showReasonMutedThread && muteWordHits.length > 0\"\n class=\"mute-thread\"\n >\n {{ $t('status.thread_muted_and_words') }}\n </small>\n <small\n class=\"mute-words\"\n :title=\"muteWordHits.join(', ')\"\n >\n {{ muteWordHits.join(', ') }}\n </small>\n <button\n class=\"unmute button-unstyled\"\n @click.prevent=\"toggleMute\"\n >\n <FAIcon\n icon=\"eye-slash\"\n class=\"fa-scale-110 fa-old-padding\"\n />\n </button>\n </div>\n </template>\n <template v-else>\n <div\n v-if=\"showPinned\"\n class=\"pin\"\n >\n <FAIcon\n icon=\"thumbtack\"\n class=\"faint\"\n />\n <span class=\"faint\">{{ $t('status.pinned') }}</span>\n </div>\n <div\n v-if=\"retweet && !noHeading && !inConversation\"\n :class=\"[repeaterClass, { highlighted: repeaterStyle }]\"\n :style=\"[repeaterStyle]\"\n class=\"status-container repeat-info\"\n >\n <UserAvatar\n v-if=\"retweet\"\n class=\"left-side repeater-avatar\"\n :bot=\"rtBotIndicator\"\n :better-shadow=\"betterShadow\"\n :user=\"statusoid.user\"\n />\n <div class=\"right-side faint\">\n <bdi\n class=\"status-username repeater-name\"\n :title=\"retweeter\"\n >\n <router-link\n v-if=\"retweeterHtml\"\n :to=\"retweeterProfileLink\"\n >\n <RichContent\n :html=\"retweeterHtml\"\n :emoji=\"retweeterUser.emoji\"\n />\n </router-link>\n <router-link\n v-else\n :to=\"retweeterProfileLink\"\n >{{ retweeter }}</router-link>\n </bdi>\n {{ ' ' }}\n <FAIcon\n icon=\"retweet\"\n class=\"repeat-icon\"\n :title=\"$t('tool_tip.repeat')\"\n />\n {{ $t('timeline.repeated') }}\n </div>\n </div>\n\n <div\n v-if=\"!deleted\"\n :class=\"[userClass, { highlighted: userStyle, '-repeat': retweet && !inConversation }]\"\n :style=\"[ userStyle ]\"\n class=\"status-container\"\n :data-tags=\"tags\"\n >\n <div\n v-if=\"!noHeading\"\n class=\"left-side\"\n >\n <a\n :href=\"$router.resolve(userProfileLink).href\"\n @click.prevent\n >\n <UserPopover\n :user-id=\"status.user.id\"\n :overlay-centers=\"true\"\n >\n <UserAvatar\n class=\"post-avatar\"\n :bot=\"botIndicator\"\n :compact=\"compact\"\n :better-shadow=\"betterShadow\"\n :user=\"status.user\"\n />\n </UserPopover>\n </a>\n </div>\n <div class=\"right-side\">\n <div\n v-if=\"!noHeading\"\n class=\"status-heading\"\n >\n <div class=\"heading-name-row\">\n <div class=\"heading-left\">\n <h4\n v-if=\"status.user.name_html\"\n class=\"status-username\"\n :title=\"status.user.name\"\n >\n <RichContent\n :html=\"status.user.name\"\n :emoji=\"status.user.emoji\"\n />\n </h4>\n <h4\n v-else\n class=\"status-username\"\n :title=\"status.user.name\"\n >\n {{ status.user.name }}\n </h4>\n <user-link\n class=\"account-name\"\n :title=\"status.user.screen_name_ui\"\n :user=\"status.user\"\n :at=\"false\"\n />\n <img\n v-if=\"!!(status.user && status.user.favicon)\"\n class=\"status-favicon\"\n :src=\"status.user.favicon\"\n >\n </div>\n\n <span class=\"heading-right\">\n <router-link\n class=\"timeago faint-link\"\n :to=\"{ name: 'conversation', params: { id: status.id } }\"\n >\n <Timeago\n :time=\"status.created_at\"\n :auto-update=\"60\"\n />\n </router-link>\n <span\n v-if=\"status.visibility\"\n class=\"visibility-icon\"\n :title=\"visibilityLocalized\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110\"\n :icon=\"visibilityIcon(status.visibility)\"\n />\n </span>\n <button\n v-if=\"expandable && !isPreview\"\n class=\"button-unstyled\"\n :title=\"$t('status.expand')\"\n @click.prevent=\"toggleExpanded\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110\"\n icon=\"plus-square\"\n />\n </button>\n <button\n v-if=\"unmuted\"\n class=\"button-unstyled\"\n @click.prevent=\"toggleMute\"\n >\n <FAIcon\n fixed-width\n icon=\"eye-slash\"\n class=\"fa-scale-110\"\n />\n </button>\n <button\n v-if=\"inThreadForest && replies && replies.length && !simpleTree\"\n class=\"button-unstyled\"\n :title=\"threadShowing ? $t('status.thread_hide') : $t('status.thread_show')\"\n :aria-expanded=\"threadShowing ? 'true' : 'false'\"\n @click.prevent=\"toggleThreadDisplay\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110\"\n :icon=\"threadShowing ? 'chevron-up' : 'chevron-down'\"\n />\n </button>\n <button\n v-if=\"dive && !simpleTree\"\n class=\"button-unstyled\"\n :title=\"$t('status.show_only_conversation_under_this')\"\n @click.prevent=\"dive\"\n >\n <FAIcon\n fixed-width\n class=\"fa-scale-110\"\n :icon=\"'angle-double-right'\"\n />\n </button>\n </span>\n </div>\n <div\n v-if=\"isReply || hasMentionsLine\"\n class=\"heading-reply-row\"\n >\n <span\n v-if=\"isReply\"\n class=\"glued-label reply-glued-label\"\n >\n <StatusPopover\n v-if=\"!isPreview\"\n :status-id=\"status.parent_visible && status.in_reply_to_status_id\"\n class=\"reply-to-popover\"\n style=\"min-width: 0;\"\n :class=\"{ '-strikethrough': !status.parent_visible }\"\n >\n <button\n class=\"button-unstyled reply-to\"\n :aria-label=\"$t('tool_tip.reply')\"\n @click.prevent=\"gotoOriginal(status.in_reply_to_status_id)\"\n >\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"reply\"\n flip=\"horizontal\"\n />\n {{ ' ' }}\n <span\n class=\"reply-to-text\"\n >\n {{ $t('status.reply_to') }}\n </span>\n </button>\n </StatusPopover>\n\n <span\n v-else\n class=\"reply-to-no-popover\"\n >\n <span class=\"reply-to-text\">{{ $t('status.reply_to') }}</span>\n </span>\n <MentionLink\n :content=\"replyToName\"\n :url=\"replyProfileLink\"\n :user-id=\"status.in_reply_to_user_id\"\n :user-screen-name=\"status.in_reply_to_screen_name\"\n />\n </span>\n\n <!-- This little wrapper is made for sole purpose of \"gluing\" -->\n <!-- \"Mentions\" label to the first mention -->\n <span\n v-if=\"hasMentionsLine\"\n class=\"glued-label\"\n >\n <span\n class=\"mentions\"\n :aria-label=\"$t('tool_tip.mentions')\"\n @click.prevent=\"gotoOriginal(status.in_reply_to_status_id)\"\n >\n <span\n class=\"mentions-text\"\n >\n {{ $t('status.mentions') }}\n </span>\n </span>\n <MentionsLine\n v-if=\"hasMentionsLine\"\n :mentions=\"mentionsLine.slice(0, 1)\"\n class=\"mentions-line-first\"\n />\n </span>\n {{ ' ' }}\n <MentionsLine\n v-if=\"hasMentionsLine\"\n :mentions=\"mentionsLine.slice(1)\"\n class=\"mentions-line\"\n />\n </div>\n <div\n v-if=\"isEdited && editingAvailable && !isPreview\"\n class=\"heading-edited-row\"\n >\n <i18n-t\n keypath=\"status.edited_at\"\n tag=\"span\"\n >\n <template #time>\n <Timeago\n template-key=\"time.in_past\"\n :time=\"status.edited_at\"\n :auto-update=\"60\"\n :long-format=\"true\"\n />\n </template>\n </i18n-t>\n </div>\n </div>\n\n <StatusContent\n ref=\"content\"\n :status=\"status\"\n :no-heading=\"noHeading\"\n :highlight=\"highlight\"\n :focused=\"isFocused\"\n :controlled-showing-tall=\"controlledShowingTall\"\n :controlled-expanding-subject=\"controlledExpandingSubject\"\n :controlled-showing-long-subject=\"controlledShowingLongSubject\"\n :controlled-toggle-showing-tall=\"controlledToggleShowingTall\"\n :controlled-toggle-expanding-subject=\"controlledToggleExpandingSubject\"\n :controlled-toggle-showing-long-subject=\"controlledToggleShowingLongSubject\"\n @mediaplay=\"addMediaPlaying($event)\"\n @mediapause=\"removeMediaPlaying($event)\"\n @parseReady=\"setHeadTailLinks\"\n />\n\n <article\n v-if=\"hasVisibleQuote\"\n class=\"quoted-status\"\n >\n <button\n class=\"button-unstyled -link display-quoted-status-button\"\n :aria-expanded=\"shouldDisplayQuote\"\n @click=\"toggleDisplayQuote\"\n >\n {{ shouldDisplayQuote ? $t('status.hide_quote') : $t('status.display_quote') }}\n <FAIcon\n class=\"display-quoted-status-button-icon\"\n :icon=\"shouldDisplayQuote ? 'chevron-up' : 'chevron-down'\"\n />\n </button>\n <Status\n v-if=\"shouldDisplayQuote\"\n :statusoid=\"quotedStatus\"\n :in-quote=\"true\"\n />\n </article>\n <p\n v-else-if=\"hasInvisibleQuote\"\n class=\"quoted-status -unavailable-prompt\"\n >\n <i18n-t keypath=\"status.invisible_quote\">\n <template #link>\n <bdi>\n <a\n :href=\"status.quote_url\"\n target=\"_blank\"\n >\n {{ status.quote_url }}\n </a>\n </bdi>\n </template>\n </i18n-t>\n </p>\n\n <div\n v-if=\"inConversation && !isPreview && replies && replies.length\"\n class=\"replies\"\n >\n <button\n v-if=\"showOtherRepliesAsButton && replies.length > 1\"\n class=\"button-unstyled -link faint\"\n :title=\"$tc('status.ancestor_follow', replies.length - 1, { numReplies: replies.length - 1 })\"\n @click.prevent=\"dive\"\n >\n {{ $tc('status.replies_list_with_others', replies.length - 1, { numReplies: replies.length - 1 }) }}\n </button>\n <span\n v-else\n class=\"faint\"\n >\n {{ $t('status.replies_list') }}\n </span>\n <StatusPopover\n v-for=\"reply in replies\"\n :key=\"reply.id\"\n :status-id=\"reply.id\"\n >\n <button\n class=\"button-unstyled -link reply-link\"\n @click.prevent=\"gotoOriginal(reply.id)\"\n >\n {{ reply.name }}\n </button>\n </StatusPopover>\n </div>\n\n <transition name=\"fade\">\n <div\n v-if=\"!hidePostStats && isFocused && combinedFavsAndRepeatsUsers.length > 0\"\n class=\"favs-repeated-users\"\n >\n <div class=\"stats\">\n <UserListPopover\n v-if=\"statusFromGlobalRepository.rebloggedBy && statusFromGlobalRepository.rebloggedBy.length > 0\"\n :users=\"statusFromGlobalRepository.rebloggedBy\"\n >\n <div class=\"stat-count\">\n <a class=\"stat-title\">{{ $t('status.repeats') }}</a>\n <div class=\"stat-number\">\n {{ statusFromGlobalRepository.rebloggedBy.length }}\n </div>\n </div>\n </UserListPopover>\n <UserListPopover\n v-if=\"statusFromGlobalRepository.favoritedBy && statusFromGlobalRepository.favoritedBy.length > 0\"\n :users=\"statusFromGlobalRepository.favoritedBy\"\n >\n <div\n class=\"stat-count\"\n >\n <a class=\"stat-title\">{{ $t('status.favorites') }}</a>\n <div class=\"stat-number\">\n {{ statusFromGlobalRepository.favoritedBy.length }}\n </div>\n </div>\n </UserListPopover>\n <div class=\"avatar-row\">\n <AvatarList :users=\"combinedFavsAndRepeatsUsers\" />\n </div>\n </div>\n </div>\n </transition>\n\n <EmojiReactions\n v-if=\"(mergedConfig.emojiReactionsOnTimeline || isFocused) && (!noHeading && !isPreview)\"\n :status=\"status\"\n />\n\n <div\n v-if=\"!noHeading && !isPreview\"\n class=\"status-actions\"\n >\n <reply-button\n :replying=\"replying\"\n :status=\"status\"\n @toggle=\"toggleReplying\"\n />\n <retweet-button\n :visibility=\"status.visibility\"\n :logged-in=\"loggedIn\"\n :status=\"status\"\n />\n <favorite-button\n :logged-in=\"loggedIn\"\n :status=\"status\"\n />\n <ReactButton\n v-if=\"loggedIn\"\n :status=\"status\"\n />\n <extra-buttons\n :status=\"status\"\n @onError=\"showError\"\n @onSuccess=\"clearError\"\n />\n </div>\n </div>\n </div>\n <div\n v-else\n class=\"gravestone\"\n >\n <div class=\"left-side\">\n <UserAvatar\n class=\"post-avatar\"\n :compact=\"compact\"\n :bot=\"botIndicator\"\n />\n </div>\n <div class=\"right-side\">\n <div class=\"deleted-text\">\n {{ $t('status.status_deleted') }}\n </div>\n <reply-button\n v-if=\"replying\"\n :replying=\"replying\"\n :status=\"status\"\n @toggle=\"toggleReplying\"\n />\n </div>\n </div>\n <div\n v-if=\"replying\"\n class=\"status-container reply-form\"\n >\n <PostStatusForm\n class=\"reply-body\"\n :reply-to=\"status.id\"\n :attentions=\"status.attentions\"\n :replied-user=\"status.user\"\n :copy-message-scope=\"status.visibility\"\n :subject=\"replySubject\"\n @posted=\"toggleReplying\"\n />\n </div>\n </template>\n </div>\n</template>\n\n<script src=\"./status.js\"></script>\n\n<style src=\"./status.scss\" lang=\"scss\"></style>\n","<template>\n <div class=\"ReplyButton\">\n <button\n v-if=\"loggedIn\"\n class=\"button-unstyled interactive\"\n :class=\"{'-active': replying}\"\n :title=\"$t('tool_tip.reply')\"\n @click.prevent=\"$emit('toggle')\"\n >\n <FALayers class=\"fa-old-padding-layer\">\n <FAIcon\n class=\"fa-scale-110\"\n icon=\"reply\"\n />\n <FAIcon\n v-if=\"!replying\"\n class=\"focus-marker\"\n transform=\"shrink-6 up-8 right-11\"\n icon=\"plus\"\n />\n <FAIcon\n v-else\n class=\"focus-marker\"\n transform=\"shrink-6 up-8 right-11\"\n icon=\"times\"\n />\n </FALayers>\n </button>\n <a\n v-else\n class=\"button-unstyled interactive\"\n target=\"_blank\"\n role=\"button\"\n :href=\"remoteInteractionLink\"\n :title=\"$t('tool_tip.reply')\"\n >\n <FALayers class=\"fa-old-padding-layer\">\n <FAIcon\n class=\"fa-scale-110\"\n icon=\"reply\"\n />\n <FAIcon\n v-if=\"!replying\"\n class=\"focus-marker\"\n transform=\"shrink-6 up-8 right-16\"\n icon=\"plus\"\n />\n </FALayers>\n </a>\n <span\n v-if=\"status.replies_count > 0\"\n class=\"action-counter\"\n >\n {{ status.replies_count }}\n </span>\n </div>\n</template>\n\n<script src=\"./reply_button.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n@import \"../../mixins\";\n\n.ReplyButton {\n display: flex;\n\n > :first-child {\n padding: 10px;\n margin: -10px -8px -10px -10px;\n }\n\n .action-counter {\n pointer-events: none;\n user-select: none;\n }\n\n .interactive {\n &:hover .svg-inline--fa,\n &.-active .svg-inline--fa {\n color: $fallback--cBlue;\n color: var(--cBlue, $fallback--cBlue);\n }\n\n @include unfocused-style {\n .focus-marker {\n visibility: hidden;\n }\n }\n\n @include focused-style {\n .focus-marker {\n visibility: visible;\n }\n }\n }\n}\n</style>\n","import { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faReply,\n faPlus,\n faTimes\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faReply,\n faPlus,\n faTimes\n)\n\nconst ReplyButton = {\n name: 'ReplyButton',\n props: ['status', 'replying'],\n computed: {\n loggedIn () {\n return !!this.$store.state.users.currentUser\n },\n remoteInteractionLink () {\n return this.$store.getters.remoteInteractionLink({ statusId: this.status.id })\n }\n }\n}\n\nexport default ReplyButton\n","import { render } from \"./reply_button.vue?vue&type=template&id=a7dc5ddc\"\nimport script from \"./reply_button.js?vue&type=script&lang=js\"\nexport * from \"./reply_button.js?vue&type=script&lang=js\"\n\nimport \"./reply_button.vue?vue&type=style&index=0&id=a7dc5ddc&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"FavoriteButton\">\n <button\n v-if=\"loggedIn\"\n class=\"button-unstyled interactive\"\n :class=\"status.favorited && '-favorited'\"\n :title=\"$t('tool_tip.favorite')\"\n @click.prevent=\"favorite()\"\n >\n <FALayers class=\"fa-scale-110 fa-old-padding-layer\">\n <FAIcon\n class=\"fa-scale-110\"\n :icon=\"[status.favorited ? 'fas' : 'far', 'star']\"\n :spin=\"animated\"\n />\n <FAIcon\n v-if=\"status.favorited\"\n class=\"active-marker\"\n transform=\"shrink-6 up-9 right-12\"\n icon=\"check\"\n />\n <FAIcon\n v-if=\"!status.favorited\"\n class=\"focus-marker\"\n transform=\"shrink-6 up-9 right-12\"\n icon=\"plus\"\n />\n <FAIcon\n v-else\n class=\"focus-marker\"\n transform=\"shrink-6 up-9 right-12\"\n icon=\"minus\"\n />\n </FALayers>\n </button>\n <a\n v-else\n class=\"button-unstyled interactive\"\n target=\"_blank\"\n role=\"button\"\n :title=\"$t('tool_tip.favorite')\"\n :href=\"remoteInteractionLink\"\n >\n <FALayers class=\"fa-scale-110 fa-old-padding-layer\">\n <FAIcon\n class=\"fa-scale-110\"\n :icon=\"['far', 'star']\"\n />\n <FAIcon\n class=\"focus-marker\"\n transform=\"shrink-6 up-9 right-12\"\n icon=\"plus\"\n />\n </FALayers>\n </a>\n <span\n v-if=\"!mergedConfig.hidePostStats && status.fave_num > 0\"\n class=\"action-counter\"\n >\n {{ status.fave_num }}\n </span>\n </div>\n</template>\n\n<script src=\"./favorite_button.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n@import \"../../mixins\";\n\n.FavoriteButton {\n display: flex;\n\n > :first-child {\n padding: 10px;\n margin: -10px -8px -10px -10px;\n }\n\n .action-counter {\n pointer-events: none;\n user-select: none;\n }\n\n .interactive {\n .svg-inline--fa {\n animation-duration: 0.6s;\n }\n\n &:hover .svg-inline--fa,\n &.-favorited .svg-inline--fa {\n color: $fallback--cOrange;\n color: var(--cOrange, $fallback--cOrange);\n }\n\n @include unfocused-style {\n .focus-marker {\n visibility: hidden;\n }\n\n .active-marker {\n visibility: visible;\n }\n }\n\n @include focused-style {\n .focus-marker {\n visibility: visible;\n }\n\n .active-marker {\n visibility: hidden;\n }\n }\n }\n}\n</style>\n","import { mapGetters } from 'vuex'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faStar,\n faPlus,\n faMinus,\n faCheck\n} from '@fortawesome/free-solid-svg-icons'\nimport {\n faStar as faStarRegular\n} from '@fortawesome/free-regular-svg-icons'\n\nlibrary.add(\n faStar,\n faStarRegular,\n faPlus,\n faMinus,\n faCheck\n)\n\nconst FavoriteButton = {\n props: ['status', 'loggedIn'],\n data () {\n return {\n animated: false\n }\n },\n methods: {\n favorite () {\n if (!this.status.favorited) {\n this.$store.dispatch('favorite', { id: this.status.id })\n } else {\n this.$store.dispatch('unfavorite', { id: this.status.id })\n }\n this.animated = true\n setTimeout(() => {\n this.animated = false\n }, 500)\n }\n },\n computed: {\n ...mapGetters(['mergedConfig']),\n remoteInteractionLink () {\n return this.$store.getters.remoteInteractionLink({ statusId: this.status.id })\n }\n }\n}\n\nexport default FavoriteButton\n","import { render } from \"./favorite_button.vue?vue&type=template&id=195db34e\"\nimport script from \"./favorite_button.js?vue&type=script&lang=js\"\nexport * from \"./favorite_button.js?vue&type=script&lang=js\"\n\nimport \"./favorite_button.vue?vue&type=style&index=0&id=195db34e&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <span class=\"ReactButton\">\n <EmojiPicker\n ref=\"picker\"\n :enable-sticker-picker=\"enableStickerPicker\"\n :hide-custom-emoji=\"hideCustomEmoji\"\n class=\"emoji-picker-panel\"\n @emoji=\"addReaction\"\n @show=\"onShow\"\n @close=\"onClose\"\n />\n <span\n class=\"button-unstyled popover-trigger\"\n role=\"button\"\n :tabindex=\"0\"\n :title=\"$t('tool_tip.add_reaction')\"\n @click.stop.prevent=\"show\"\n >\n <FALayers>\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n :icon=\"['far', 'smile-beam']\"\n />\n <FAIcon\n v-show=\"!expanded\"\n class=\"focus-marker\"\n transform=\"shrink-6 up-9 right-17\"\n icon=\"plus\"\n />\n <FAIcon\n v-show=\"expanded\"\n class=\"focus-marker\"\n transform=\"shrink-6 up-9 right-17\"\n icon=\"times\"\n />\n </FALayers>\n </span>\n </span>\n</template>\n\n<script src=\"./react_button.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n@import \"../../mixins\";\n\n.ReactButton {\n .reaction-picker-filter {\n padding: 0.5em;\n display: flex;\n\n input {\n flex: 1;\n }\n }\n\n .reaction-picker-divider {\n height: 1px;\n width: 100%;\n margin: 0.5em;\n background-color: var(--border, $fallback--border);\n }\n\n .reaction-picker {\n width: 10em;\n height: 9em;\n font-size: 1.5em;\n overflow-y: scroll;\n display: flex;\n flex-wrap: wrap;\n padding: 0.5em;\n text-align: center;\n align-content: flex-start;\n user-select: none;\n mask:\n linear-gradient(to top, white 0, transparent 100%) bottom no-repeat,\n linear-gradient(to bottom, white 0, transparent 100%) top no-repeat,\n linear-gradient(to top, white, white);\n transition: mask-size 150ms;\n mask-size: 100% 20px, 100% 20px, auto;\n\n /* Autoprefixed seem to ignore this one, and also syntax is different */\n mask-composite: xor;\n mask-composite: exclude;\n\n .emoji-button {\n cursor: pointer;\n flex-basis: 20%;\n line-height: 1.5;\n align-content: center;\n\n &:hover {\n transform: scale(1.25);\n }\n }\n }\n\n .popover-trigger {\n padding: 10px;\n margin: -10px;\n\n &:hover .svg-inline--fa {\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n\n @include unfocused-style {\n .focus-marker {\n visibility: hidden;\n }\n }\n\n @include focused-style {\n .focus-marker {\n visibility: visible;\n }\n }\n }\n}\n\n</style>\n","import Popover from '../popover/popover.vue'\nimport EmojiPicker from '../emoji_picker/emoji_picker.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faPlus, faTimes } from '@fortawesome/free-solid-svg-icons'\nimport { faSmileBeam } from '@fortawesome/free-regular-svg-icons'\n\nlibrary.add(\n faPlus,\n faTimes,\n faSmileBeam\n)\n\nconst ReactButton = {\n props: ['status'],\n data () {\n return {\n filterWord: '',\n expanded: false\n }\n },\n components: {\n Popover,\n EmojiPicker\n },\n methods: {\n addReaction (event) {\n const emoji = event.insertion\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 },\n show () {\n if (!this.expanded) {\n this.$refs.picker.showPicker()\n }\n },\n onShow () {\n this.expanded = true\n },\n onClose () {\n this.expanded = false\n }\n },\n computed: {\n hideCustomEmoji () {\n return !this.$store.state.instance.pleromaCustomEmojiReactionsAvailable\n }\n }\n}\n\nexport default ReactButton\n","import { render } from \"./react_button.vue?vue&type=template&id=54e78625\"\nimport script from \"./react_button.js?vue&type=script&lang=js\"\nexport * from \"./react_button.js?vue&type=script&lang=js\"\n\nimport \"./react_button.vue?vue&type=style&index=0&id=54e78625&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"RetweetButton\">\n <button\n v-if=\"visibility !== 'private' && visibility !== 'direct' && loggedIn\"\n class=\"button-unstyled interactive\"\n :class=\"status.repeated && '-repeated'\"\n :title=\"$t('tool_tip.repeat')\"\n @click.prevent=\"retweet()\"\n >\n <FALayers class=\"fa-old-padding-layer\">\n <FAIcon\n class=\"fa-scale-110\"\n icon=\"retweet\"\n :spin=\"animated\"\n />\n <FAIcon\n v-if=\"status.repeated\"\n class=\"active-marker\"\n transform=\"shrink-6 up-9 right-12\"\n icon=\"check\"\n />\n <FAIcon\n v-if=\"!status.repeated\"\n class=\"focus-marker\"\n transform=\"shrink-6 up-9 right-12\"\n icon=\"plus\"\n />\n <FAIcon\n v-else\n class=\"focus-marker\"\n transform=\"shrink-6 up-9 right-12\"\n icon=\"minus\"\n />\n </FALayers>\n </button>\n <span v-else-if=\"loggedIn\">\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"lock\"\n :title=\"$t('timeline.no_retweet_hint')\"\n />\n </span>\n <a\n v-else\n class=\"button-unstyled interactive\"\n target=\"_blank\"\n role=\"button\"\n :title=\"$t('tool_tip.repeat')\"\n :href=\"remoteInteractionLink\"\n >\n <FALayers class=\"fa-old-padding-layer\">\n <FAIcon\n class=\"fa-scale-110\"\n icon=\"retweet\"\n />\n <FAIcon\n class=\"focus-marker\"\n transform=\"shrink-6 up-9 right-12\"\n icon=\"plus\"\n />\n </FALayers>\n </a>\n <span\n v-if=\"!mergedConfig.hidePostStats && status.repeat_num > 0\"\n class=\"no-event\"\n >\n {{ status.repeat_num }}\n </span>\n <teleport to=\"#modal\">\n <confirm-modal\n v-if=\"showingConfirmDialog\"\n :title=\"$t('status.repeat_confirm_title')\"\n :confirm-text=\"$t('status.repeat_confirm_accept_button')\"\n :cancel-text=\"$t('status.repeat_confirm_cancel_button')\"\n @accepted=\"doRetweet\"\n @cancelled=\"hideConfirmDialog\"\n >\n {{ $t('status.repeat_confirm') }}\n </confirm-modal>\n </teleport>\n </div>\n</template>\n\n<script src=\"./retweet_button.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n@import \"../../mixins\";\n\n.RetweetButton {\n display: flex;\n\n > :first-child {\n padding: 10px;\n margin: -10px -8px -10px -10px;\n }\n\n .action-counter {\n pointer-events: none;\n user-select: none;\n }\n\n .interactive {\n .svg-inline--fa {\n animation-duration: 0.6s;\n }\n\n &:hover .svg-inline--fa,\n &.-repeated .svg-inline--fa {\n color: $fallback--cGreen;\n color: var(--cGreen, $fallback--cGreen);\n }\n\n @include unfocused-style {\n .focus-marker {\n visibility: hidden;\n }\n\n .active-marker {\n visibility: visible;\n }\n }\n\n @include focused-style {\n .focus-marker {\n visibility: visible;\n }\n\n .active-marker {\n visibility: hidden;\n }\n }\n }\n}\n</style>\n","import ConfirmModal from '../confirm_modal/confirm_modal.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faRetweet,\n faPlus,\n faMinus,\n faCheck\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faRetweet,\n faPlus,\n faMinus,\n faCheck\n)\n\nconst RetweetButton = {\n props: ['status', 'loggedIn', 'visibility'],\n components: {\n ConfirmModal\n },\n data () {\n return {\n animated: false,\n showingConfirmDialog: false\n }\n },\n methods: {\n retweet () {\n if (!this.status.repeated && this.shouldConfirmRepeat) {\n this.showConfirmDialog()\n } else {\n this.doRetweet()\n }\n },\n doRetweet () {\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 this.hideConfirmDialog()\n },\n showConfirmDialog () {\n this.showingConfirmDialog = true\n },\n hideConfirmDialog () {\n this.showingConfirmDialog = false\n }\n },\n computed: {\n mergedConfig () {\n return this.$store.getters.mergedConfig\n },\n remoteInteractionLink () {\n return this.$store.getters.remoteInteractionLink({ statusId: this.status.id })\n },\n shouldConfirmRepeat () {\n return this.mergedConfig.modalOnRepeat\n }\n }\n}\n\nexport default RetweetButton\n","import { render } from \"./retweet_button.vue?vue&type=template&id=3a6122b4\"\nimport script from \"./retweet_button.js?vue&type=script&lang=js\"\nexport * from \"./retweet_button.js?vue&type=script&lang=js\"\n\nimport \"./retweet_button.vue?vue&type=style&index=0&id=3a6122b4&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Popover\n class=\"ExtraButtons\"\n trigger=\"click\"\n :trigger-attrs=\"triggerAttrs\"\n placement=\"top\"\n :offset=\"{ y: 5 }\"\n :bound-to=\"{ x: 'container' }\"\n remove-padding\n @show=\"onShow\"\n @close=\"onClose\"\n >\n <template #content=\"{close}\">\n <div\n class=\"dropdown-menu\"\n role=\"menu\"\n :id=\"`popup-menu-${randomSeed}`\"\n >\n <button\n v-if=\"canMute && !status.thread_muted\"\n class=\"button-default dropdown-item dropdown-item-icon\"\n role=\"menuitem\"\n @click.prevent=\"muteConversation\"\n >\n <FAIcon\n fixed-width\n icon=\"eye-slash\"\n /><span>{{ $t(\"status.mute_conversation\") }}</span>\n </button>\n <button\n v-if=\"canMute && status.thread_muted\"\n class=\"button-default dropdown-item dropdown-item-icon\"\n role=\"menuitem\"\n @click.prevent=\"unmuteConversation\"\n >\n <FAIcon\n fixed-width\n icon=\"eye-slash\"\n /><span>{{ $t(\"status.unmute_conversation\") }}</span>\n </button>\n <button\n v-if=\"!status.pinned && canPin\"\n class=\"button-default dropdown-item dropdown-item-icon\"\n role=\"menuitem\"\n @click.prevent=\"pinStatus\"\n @click=\"close\"\n >\n <FAIcon\n fixed-width\n icon=\"thumbtack\"\n /><span>{{ $t(\"status.pin\") }}</span>\n </button>\n <button\n v-if=\"status.pinned && canPin\"\n class=\"button-default dropdown-item dropdown-item-icon\"\n role=\"menuitem\"\n @click.prevent=\"unpinStatus\"\n @click=\"close\"\n >\n <FAIcon\n fixed-width\n icon=\"thumbtack\"\n /><span>{{ $t(\"status.unpin\") }}</span>\n </button>\n <template v-if=\"canBookmark\">\n <button\n v-if=\"!status.bookmarked\"\n class=\"button-default dropdown-item dropdown-item-icon\"\n role=\"menuitem\"\n @click.prevent=\"bookmarkStatus\"\n @click=\"close\"\n >\n <FAIcon\n fixed-width\n :icon=\"['far', 'bookmark']\"\n /><span>{{ $t(\"status.bookmark\") }}</span>\n </button>\n <button\n v-if=\"status.bookmarked\"\n class=\"button-default dropdown-item dropdown-item-icon\"\n role=\"menuitem\"\n @click.prevent=\"unbookmarkStatus\"\n @click=\"close\"\n >\n <FAIcon\n fixed-width\n icon=\"bookmark\"\n /><span>{{ $t(\"status.unbookmark\") }}</span>\n </button>\n </template>\n <button\n v-if=\"ownStatus && editingAvailable\"\n class=\"button-default dropdown-item dropdown-item-icon\"\n role=\"menuitem\"\n @click.prevent=\"editStatus\"\n @click=\"close\"\n >\n <FAIcon\n fixed-width\n icon=\"pen\"\n /><span>{{ $t(\"status.edit\") }}</span>\n </button>\n <button\n v-if=\"isEdited && editingAvailable\"\n class=\"button-default dropdown-item dropdown-item-icon\"\n role=\"menuitem\"\n @click.prevent=\"showStatusHistory\"\n @click=\"close\"\n >\n <FAIcon\n fixed-width\n icon=\"history\"\n /><span>{{ $t(\"status.status_history\") }}</span>\n </button>\n <button\n v-if=\"canDelete\"\n class=\"button-default dropdown-item dropdown-item-icon\"\n role=\"menuitem\"\n @click.prevent=\"deleteStatus\"\n @click=\"close\"\n >\n <FAIcon\n fixed-width\n icon=\"times\"\n /><span>{{ $t(\"status.delete\") }}</span>\n </button>\n <button\n class=\"button-default dropdown-item dropdown-item-icon\"\n role=\"menuitem\"\n @click.prevent=\"copyLink\"\n @click=\"close\"\n >\n <FAIcon\n fixed-width\n icon=\"share-alt\"\n /><span>{{ $t(\"status.copy_link\") }}</span>\n </button>\n <a\n v-if=\"!status.is_local\"\n class=\"button-default dropdown-item dropdown-item-icon\"\n role=\"menuitem\"\n title=\"Source\"\n :href=\"status.external_url\"\n target=\"_blank\"\n >\n <FAIcon\n fixed-width\n icon=\"external-link-alt\"\n /><span>{{ $t(\"status.external_source\") }}</span>\n </a>\n <button\n class=\"button-default dropdown-item dropdown-item-icon\"\n role=\"menuitem\"\n @click.prevent=\"reportStatus\"\n @click=\"close\"\n >\n <FAIcon\n fixed-width\n :icon=\"['far', 'flag']\"\n /><span>{{ $t(\"user_card.report\") }}</span>\n </button>\n </div>\n </template>\n <template #trigger>\n <span class=\"button-unstyled popover-trigger\">\n <FALayers class=\"fa-old-padding-layer\">\n <FAIcon\n class=\"fa-scale-110 \"\n icon=\"ellipsis-h\"\n />\n <FAIcon\n v-show=\"!expanded\"\n class=\"focus-marker\"\n transform=\"shrink-6 up-8 right-16\"\n icon=\"plus\"\n />\n <FAIcon\n v-show=\"expanded\"\n class=\"focus-marker\"\n transform=\"shrink-6 up-8 right-16\"\n icon=\"times\"\n />\n </FALayers>\n </span>\n <teleport to=\"#modal\">\n <ConfirmModal\n v-if=\"showingDeleteDialog\"\n :title=\"$t('status.delete_confirm_title')\"\n :cancel-text=\"$t('status.delete_confirm_cancel_button')\"\n :confirm-text=\"$t('status.delete_confirm_accept_button')\"\n @cancelled=\"hideDeleteStatusConfirmDialog\"\n @accepted=\"doDeleteStatus\"\n >\n {{ $t('status.delete_confirm') }}\n </ConfirmModal>\n </teleport>\n </template>\n </Popover>\n</template>\n\n<script src=\"./extra_buttons.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n@import \"../../mixins\";\n\n.ExtraButtons {\n .popover-trigger {\n position: static;\n padding: 10px;\n margin: -10px;\n\n &:hover .svg-inline--fa {\n color: $fallback--text;\n color: var(--text, $fallback--text);\n }\n }\n\n .popover-trigger-button {\n /* override of popover internal stuff */\n width: auto;\n\n @include unfocused-style {\n .focus-marker {\n visibility: hidden;\n }\n }\n\n @include focused-style {\n .focus-marker {\n visibility: visible;\n }\n }\n }\n}\n</style>\n","import Popover from '../popover/popover.vue'\nimport genRandomSeed from '../../services/random_seed/random_seed.service.js'\nimport ConfirmModal from '../confirm_modal/confirm_modal.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faEllipsisH,\n faBookmark,\n faEyeSlash,\n faThumbtack,\n faShareAlt,\n faExternalLinkAlt,\n faHistory,\n faPlus,\n faTimes\n} from '@fortawesome/free-solid-svg-icons'\nimport {\n faBookmark as faBookmarkReg,\n faFlag\n} from '@fortawesome/free-regular-svg-icons'\n\nlibrary.add(\n faEllipsisH,\n faBookmark,\n faBookmarkReg,\n faEyeSlash,\n faThumbtack,\n faShareAlt,\n faExternalLinkAlt,\n faFlag,\n faHistory,\n faPlus,\n faTimes\n)\n\nconst ExtraButtons = {\n props: ['status'],\n components: {\n Popover,\n ConfirmModal\n },\n data () {\n return {\n expanded: false,\n showingDeleteDialog: false,\n randomSeed: genRandomSeed()\n }\n },\n methods: {\n onShow () {\n this.expanded = true\n },\n onClose () {\n this.expanded = false\n },\n deleteStatus () {\n if (this.shouldConfirmDelete) {\n this.showDeleteStatusConfirmDialog()\n } else {\n this.doDeleteStatus()\n }\n },\n doDeleteStatus () {\n this.$store.dispatch('deleteStatus', { id: this.status.id })\n this.hideDeleteStatusConfirmDialog()\n },\n showDeleteStatusConfirmDialog () {\n this.showingDeleteDialog = true\n },\n hideDeleteStatusConfirmDialog () {\n this.showingDeleteDialog = false\n },\n pinStatus () {\n this.$store.dispatch('pinStatus', this.status.id)\n .then(() => this.$emit('onSuccess'))\n .catch(err => this.$emit('onError', err.error.error))\n },\n unpinStatus () {\n this.$store.dispatch('unpinStatus', this.status.id)\n .then(() => this.$emit('onSuccess'))\n .catch(err => this.$emit('onError', err.error.error))\n },\n muteConversation () {\n this.$store.dispatch('muteConversation', this.status.id)\n .then(() => this.$emit('onSuccess'))\n .catch(err => this.$emit('onError', err.error.error))\n },\n unmuteConversation () {\n this.$store.dispatch('unmuteConversation', this.status.id)\n .then(() => this.$emit('onSuccess'))\n .catch(err => this.$emit('onError', err.error.error))\n },\n copyLink () {\n navigator.clipboard.writeText(this.statusLink)\n .then(() => this.$emit('onSuccess'))\n .catch(err => this.$emit('onError', err.error.error))\n },\n bookmarkStatus () {\n this.$store.dispatch('bookmark', { id: this.status.id })\n .then(() => this.$emit('onSuccess'))\n .catch(err => this.$emit('onError', err.error.error))\n },\n unbookmarkStatus () {\n this.$store.dispatch('unbookmark', { id: this.status.id })\n .then(() => this.$emit('onSuccess'))\n .catch(err => this.$emit('onError', err.error.error))\n },\n reportStatus () {\n this.$store.dispatch('openUserReportingModal', { userId: this.status.user.id, statusIds: [this.status.id] })\n },\n editStatus () {\n this.$store.dispatch('fetchStatusSource', { id: this.status.id })\n .then(data => this.$store.dispatch('openEditStatusModal', {\n statusId: this.status.id,\n subject: data.spoiler_text,\n statusText: data.text,\n statusIsSensitive: this.status.nsfw,\n statusPoll: this.status.poll,\n statusFiles: [...this.status.attachments],\n visibility: this.status.visibility,\n statusContentType: data.content_type\n }))\n },\n showStatusHistory () {\n const originalStatus = { ...this.status }\n const stripFieldsList = ['attachments', 'created_at', 'emojis', 'text', 'raw_html', 'nsfw', 'poll', 'summary', 'summary_raw_html']\n stripFieldsList.forEach(p => delete originalStatus[p])\n this.$store.dispatch('openStatusHistoryModal', originalStatus)\n }\n },\n computed: {\n currentUser () { return this.$store.state.users.currentUser },\n canDelete () {\n if (!this.currentUser) { return }\n return this.currentUser.privileges.includes('messages_delete') || 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 canBookmark () {\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 isEdited () {\n return this.status.edited_at !== null\n },\n editingAvailable () { return this.$store.state.instance.editingAvailable },\n shouldConfirmDelete () {\n return this.$store.getters.mergedConfig.modalOnDelete\n },\n triggerAttrs () {\n return {\n title: this.$t('status.more_actions'),\n id: `popup-trigger-${this.randomSeed}`,\n 'aria-controls': `popup-menu-${this.randomSeed}`,\n 'aria-expanded': this.expanded,\n 'aria-haspopup': 'menu'\n }\n }\n }\n}\n\nexport default ExtraButtons\n","import { render } from \"./extra_buttons.vue?vue&type=template&id=36a61b40\"\nimport script from \"./extra_buttons.js?vue&type=script&lang=js\"\nexport * from \"./extra_buttons.js?vue&type=script&lang=js\"\n\nimport \"./extra_buttons.vue?vue&type=style&index=0&id=36a61b40&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Popover\n ref=\"popover\"\n trigger=\"hover\"\n :stay-on-click=\"true\"\n popover-class=\"popover-default status-popover\"\n :bound-to=\"{ x: 'container' }\"\n @show=\"enter\"\n >\n <template #trigger>\n <slot />\n </template>\n <template #content>\n <Status\n v-if=\"status\"\n :is-preview=\"true\"\n :statusoid=\"status\"\n :compact=\"true\"\n />\n <div\n v-else-if=\"error\"\n class=\"status-preview-no-content faint\"\n >\n {{ $t('status.status_unavailable') }}\n </div>\n <div\n v-else\n class=\"status-preview-no-content\"\n >\n <FAIcon\n icon=\"circle-notch\"\n spin\n size=\"2x\"\n />\n </div>\n </template>\n </Popover>\n</template>\n\n<script src=\"./status_popover.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n/* popover styles load on-demand, so we need to override */\n.status-popover.popover {\n font-size: 1rem;\n min-width: 15em;\n max-width: 95%;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n border-style: solid;\n border-width: 1px;\n border-radius: $fallback--tooltipRadius;\n border-radius: var(--tooltipRadius, $fallback--tooltipRadius);\n\n /* TODO cleanup this */\n .Status.Status {\n border: none;\n }\n\n .status-preview-no-content {\n padding: 1em;\n text-align: center;\n\n i {\n font-size: 2em;\n }\n }\n}\n\n</style>\n","import { find } from 'lodash'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faCircleNotch } from '@fortawesome/free-solid-svg-icons'\nimport { defineAsyncComponent } from 'vue'\n\nlibrary.add(\n faCircleNotch\n)\n\nconst StatusPopover = {\n name: 'StatusPopover',\n props: [\n 'statusId'\n ],\n data () {\n return {\n error: false\n }\n },\n computed: {\n status () {\n return find(this.$store.state.statuses.allStatuses, { id: this.statusId })\n }\n },\n components: {\n Status: defineAsyncComponent(() => import('../status/status.vue')),\n Popover: defineAsyncComponent(() => import('../popover/popover.vue'))\n },\n methods: {\n enter () {\n if (!this.status) {\n if (!this.statusId) {\n this.error = true\n return\n }\n this.$store.dispatch('fetchStatus', this.statusId)\n .then(data => (this.error = false))\n .catch(e => (this.error = true))\n }\n }\n },\n watch: {\n status (newStatus, oldStatus) {\n if (newStatus !== oldStatus) {\n this.$nextTick(() => this.$refs.popover.updateStyles())\n }\n }\n }\n}\n\nexport default StatusPopover\n","import { render } from \"./status_popover.vue?vue&type=template&id=0c237860\"\nimport script from \"./status_popover.js?vue&type=script&lang=js\"\nexport * from \"./status_popover.js?vue&type=script&lang=js\"\n\nimport \"./status_popover.vue?vue&type=style&index=0&id=0c237860&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Popover\n trigger=\"hover\"\n placement=\"top\"\n :offset=\"{ y: 5 }\"\n >\n <template #trigger>\n <slot />\n </template>\n <template #content>\n <div class=\"user-list-popover\">\n <template v-if=\"users.length\">\n <div\n v-for=\"(user) in usersCapped\"\n :key=\"user.id\"\n class=\"user-list-row\"\n >\n <UserAvatar\n :user=\"user\"\n class=\"avatar-small\"\n :compact=\"true\"\n />\n <div class=\"user-list-names\">\n <!-- eslint-disable vue/no-v-html -->\n <RichContent\n class=\"username\"\n :title=\"'@'+user.screen_name_ui\"\n :html=\"user.name_html\"\n :emoji=\"user.emoji\"\n />\n <!-- eslint-enable vue/no-v-html -->\n <span class=\"user-list-screen-name\">{{ user.screen_name_ui }}</span><UnicodeDomainIndicator :user=\"user\" />\n </div>\n </div>\n </template>\n <template v-else>\n <FAIcon\n icon=\"circle-notch\"\n spin\n size=\"3x\"\n />\n </template>\n </div>\n </template>\n </Popover>\n</template>\n\n<script src=\"./user_list_popover.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.user-list-popover {\n padding: 0.5em;\n\n --emoji-size: 16px;\n\n .user-list-row {\n padding: 0.25em;\n display: flex;\n flex-direction: row;\n\n .user-list-names {\n display: flex;\n flex-direction: column;\n margin-left: 0.5em;\n min-width: 5em;\n\n img {\n width: 1em;\n height: 1em;\n }\n }\n\n .user-list-screen-name {\n font-size: 0.65em;\n }\n }\n}\n\n</style>\n","import { defineAsyncComponent } from 'vue'\nimport RichContent from 'src/components/rich_content/rich_content.jsx'\nimport UnicodeDomainIndicator from '../unicode_domain_indicator/unicode_domain_indicator.vue'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faCircleNotch } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCircleNotch\n)\n\nconst UserListPopover = {\n name: 'UserListPopover',\n props: [\n 'users'\n ],\n components: {\n RichContent,\n UnicodeDomainIndicator,\n Popover: defineAsyncComponent(() => import('../popover/popover.vue')),\n UserAvatar: defineAsyncComponent(() => import('../user_avatar/user_avatar.vue'))\n },\n computed: {\n usersCapped () {\n return this.users.slice(0, 16)\n }\n }\n}\n\nexport default UserListPopover\n","import { render } from \"./user_list_popover.vue?vue&type=template&id=6fc1c392\"\nimport script from \"./user_list_popover.js?vue&type=script&lang=js\"\nexport * from \"./user_list_popover.js?vue&type=script&lang=js\"\n\nimport \"./user_list_popover.vue?vue&type=style&index=0&id=6fc1c392&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"EmojiReactions\">\n <span\n v-for=\"(reaction) in emojiReactions\"\n :key=\"reaction.url || reaction.name\"\n class=\"emoji-reaction-container btn-group\"\n >\n <component\n :is=\"loggedIn ? 'button' : 'a'\"\n v-bind=\"!loggedIn ? { href: remoteInteractionLink } : {}\"\n role=\"button\"\n class=\"emoji-reaction btn button-default\"\n :class=\"{ '-picked-reaction': reactedWith(reaction.name) }\"\n :title=\"reaction.url ? reaction.name : undefined\"\n :aria-pressed=\"reactedWith(reaction.name)\"\n @click=\"emojiOnClick(reaction.name, $event)\"\n >\n <span\n class=\"reaction-emoji\"\n >\n <img\n v-if=\"reaction.url\"\n :src=\"reaction.url\"\n class=\"reaction-emoji-content\"\n width=\"1em\"\n >\n <span\n v-else\n class=\"reaction-emoji reaction-emoji-content\"\n >{{ reaction.name }}</span>\n </span>\n <FALayers>\n <FAIcon\n v-if=\"reactedWith(reaction.name)\"\n class=\"active-marker\"\n transform=\"shrink-6 up-9\"\n icon=\"check\"\n />\n <FAIcon\n v-if=\"!reactedWith(reaction.name)\"\n class=\"focus-marker\"\n transform=\"shrink-6 up-9\"\n icon=\"plus\"\n />\n <FAIcon\n v-else\n class=\"focus-marker\"\n transform=\"shrink-6 up-9\"\n icon=\"minus\"\n />\n </FALayers>\n </component>\n <UserListPopover\n :users=\"accountsForEmoji[reaction.name]\"\n class=\"emoji-reaction-popover\"\n :trigger-attrs=\"counterTriggerAttrs(reaction)\"\n @show=\"fetchEmojiReactionsByIfMissing()\"\n >\n <span class=\"emoji-reaction-counts\">{{ reaction.count }}</span>\n </UserListPopover>\n </span>\n <a\n v-if=\"tooManyReactions\"\n class=\"emoji-reaction-expand faint\"\n href=\"javascript:void(0)\"\n @click=\"toggleShowAll\"\n >\n {{ showAll ? $t('general.show_less') : showMoreString }}\n </a>\n </div>\n</template>\n\n<script src=\"./emoji_reactions.js\"></script>\n<style lang=\"scss\">\n@import \"../../variables\";\n@import \"../../mixins\";\n\n.EmojiReactions {\n display: flex;\n margin-top: 0.25em;\n flex-wrap: wrap;\n\n --emoji-size: calc(1.25em * var(--emojiReactionsScale, 1));\n\n .emoji-reaction-container {\n display: flex;\n align-items: stretch;\n margin-top: 0.5em;\n margin-right: 0.5em;\n\n .emoji-reaction-popover {\n padding: 0;\n\n .emoji-reaction-count-button {\n background-color: var(--btn);\n margin: 0;\n height: 100%;\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n box-sizing: border-box;\n min-width: 2em;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n color: $fallback--text;\n color: var(--btnText, $fallback--text);\n\n &.-picked-reaction {\n border: 1px solid var(--accent, $fallback--link);\n margin-right: -1px;\n }\n }\n }\n }\n\n .emoji-reaction {\n padding-left: 0.5em;\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n margin: 0;\n\n .reaction-emoji {\n width: var(--emoji-size);\n height: var(--emoji-size);\n margin-right: 0.25em;\n line-height: var(--emoji-size);\n display: flex;\n justify-content: center;\n align-items: center;\n }\n\n .reaction-emoji-content {\n max-width: 100%;\n max-height: 100%;\n width: auto;\n height: auto;\n line-height: inherit;\n overflow: hidden;\n font-size: calc(var(--emoji-size) * 0.8);\n margin: 0;\n }\n\n &:focus {\n outline: none;\n }\n\n .svg-inline--fa {\n color: $fallback--text;\n color: var(--btnText, $fallback--text);\n }\n\n &.-picked-reaction {\n border: 1px solid var(--accent, $fallback--link);\n margin-left: -1px; // offset the border, can't use inset shadows either\n margin-right: -1px;\n\n .svg-inline--fa {\n color: $fallback--link;\n color: var(--accent, $fallback--link);\n }\n }\n\n @include unfocused-style {\n .focus-marker {\n visibility: hidden;\n }\n\n .active-marker {\n visibility: visible;\n }\n }\n\n @include focused-style {\n .svg-inline--fa {\n color: $fallback--link;\n color: var(--accent, $fallback--link);\n }\n\n .focus-marker {\n visibility: visible;\n }\n\n .active-marker {\n visibility: hidden;\n }\n }\n }\n\n .emoji-reaction-expand {\n padding: 0 0.5em;\n margin-right: 0.5em;\n margin-top: 0.5em;\n display: flex;\n align-items: center;\n justify-content: center;\n\n &:hover {\n text-decoration: underline;\n }\n }\n}\n</style>\n","import UserAvatar from '../user_avatar/user_avatar.vue'\nimport UserListPopover from '../user_list_popover/user_list_popover.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faPlus,\n faMinus,\n faCheck\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faPlus,\n faMinus,\n faCheck\n)\n\nconst EMOJI_REACTION_COUNT_CUTOFF = 12\n\nconst EmojiReactions = {\n name: 'EmojiReactions',\n components: {\n UserAvatar,\n UserListPopover\n },\n props: ['status'],\n data: () => ({\n showAll: false\n }),\n computed: {\n tooManyReactions () {\n return this.status.emoji_reactions.length > EMOJI_REACTION_COUNT_CUTOFF\n },\n emojiReactions () {\n return this.showAll\n ? this.status.emoji_reactions\n : this.status.emoji_reactions.slice(0, EMOJI_REACTION_COUNT_CUTOFF)\n },\n showMoreString () {\n return `+${this.status.emoji_reactions.length - EMOJI_REACTION_COUNT_CUTOFF}`\n },\n accountsForEmoji () {\n return this.status.emoji_reactions.reduce((acc, reaction) => {\n acc[reaction.name] = reaction.accounts || []\n return acc\n }, {})\n },\n loggedIn () {\n return !!this.$store.state.users.currentUser\n },\n remoteInteractionLink () {\n return this.$store.getters.remoteInteractionLink({ statusId: this.status.id })\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 async fetchEmojiReactionsByIfMissing () {\n const hasNoAccounts = this.status.emoji_reactions.find(r => !r.accounts)\n if (hasNoAccounts) {\n return await 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 async emojiOnClick (emoji, event) {\n if (!this.loggedIn) return\n\n await this.fetchEmojiReactionsByIfMissing()\n if (this.reactedWith(emoji)) {\n this.unreact(emoji)\n } else {\n this.reactWith(emoji)\n }\n },\n counterTriggerAttrs (reaction) {\n return {\n class: [\n 'btn',\n 'button-default',\n 'emoji-reaction-count-button',\n { '-picked-reaction': this.reactedWith(reaction.name) }\n ],\n 'aria-label': this.$tc('status.reaction_count_label', reaction.count, { num: reaction.count })\n }\n }\n }\n}\n\nexport default EmojiReactions\n","import { render } from \"./emoji_reactions.vue?vue&type=template&id=4be841f8\"\nimport script from \"./emoji_reactions.js?vue&type=script&lang=js\"\nexport * from \"./emoji_reactions.js?vue&type=script&lang=js\"\n\nimport \"./emoji_reactions.vue?vue&type=style&index=0&id=4be841f8&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import ReplyButton from '../reply_button/reply_button.vue'\nimport FavoriteButton from '../favorite_button/favorite_button.vue'\nimport ReactButton from '../react_button/react_button.vue'\nimport RetweetButton from '../retweet_button/retweet_button.vue'\nimport ExtraButtons from '../extra_buttons/extra_buttons.vue'\nimport PostStatusForm from '../post_status_form/post_status_form.vue'\nimport UserAvatar from '../user_avatar/user_avatar.vue'\nimport AvatarList from '../avatar_list/avatar_list.vue'\nimport Timeago from '../timeago/timeago.vue'\nimport StatusContent from '../status_content/status_content.vue'\nimport RichContent from 'src/components/rich_content/rich_content.jsx'\nimport StatusPopover from '../status_popover/status_popover.vue'\nimport UserPopover from '../user_popover/user_popover.vue'\nimport UserListPopover from '../user_list_popover/user_list_popover.vue'\nimport EmojiReactions from '../emoji_reactions/emoji_reactions.vue'\nimport UserLink from '../user_link/user_link.vue'\nimport MentionsLine from 'src/components/mentions_line/mentions_line.vue'\nimport MentionLink from 'src/components/mention_link/mention_link.vue'\nimport generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\nimport { highlightClass, highlightStyle } from '../../services/user_highlighter/user_highlighter.js'\nimport { muteWordHits } from '../../services/status_parser/status_parser.js'\nimport { unescape, uniqBy } from 'lodash'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faEnvelope,\n faLock,\n faLockOpen,\n faGlobe,\n faTimes,\n faRetweet,\n faReply,\n faPlusSquare,\n faSmileBeam,\n faEllipsisH,\n faStar,\n faEyeSlash,\n faEye,\n faThumbtack,\n faChevronUp,\n faChevronDown,\n faAngleDoubleRight\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faEnvelope,\n faGlobe,\n faLock,\n faLockOpen,\n faTimes,\n faRetweet,\n faReply,\n faPlusSquare,\n faStar,\n faSmileBeam,\n faEllipsisH,\n faEyeSlash,\n faEye,\n faThumbtack,\n faChevronUp,\n faChevronDown,\n faAngleDoubleRight\n)\n\nconst camelCase = name => name.charAt(0).toUpperCase() + name.slice(1)\n\nconst controlledOrUncontrolledGetters = list => list.reduce((res, name) => {\n const camelized = camelCase(name)\n const toggle = `controlledToggle${camelized}`\n const controlledName = `controlled${camelized}`\n const uncontrolledName = `uncontrolled${camelized}`\n res[name] = function () {\n return ((this.$data[toggle] !== undefined || this.$props[toggle] !== undefined) && this[toggle]) ? this[controlledName] : this[uncontrolledName]\n }\n return res\n}, {})\n\nconst controlledOrUncontrolledToggle = (obj, name) => {\n const camelized = camelCase(name)\n const toggle = `controlledToggle${camelized}`\n const uncontrolledName = `uncontrolled${camelized}`\n if (obj[toggle]) {\n obj[toggle]()\n } else {\n obj[uncontrolledName] = !obj[uncontrolledName]\n }\n}\n\nconst controlledOrUncontrolledSet = (obj, name, val) => {\n const camelized = camelCase(name)\n const set = `controlledSet${camelized}`\n const uncontrolledName = `uncontrolled${camelized}`\n if (obj[set]) {\n obj[set](val)\n } else {\n obj[uncontrolledName] = val\n }\n}\n\nconst Status = {\n name: 'Status',\n components: {\n ReplyButton,\n FavoriteButton,\n ReactButton,\n RetweetButton,\n ExtraButtons,\n PostStatusForm,\n UserAvatar,\n AvatarList,\n Timeago,\n StatusPopover,\n UserListPopover,\n EmojiReactions,\n StatusContent,\n RichContent,\n MentionLink,\n MentionsLine,\n UserPopover,\n UserLink\n },\n props: [\n 'statusoid',\n 'expandable',\n 'inConversation',\n 'focused',\n 'highlight',\n 'compact',\n 'replies',\n 'isPreview',\n 'noHeading',\n 'inlineExpanded',\n 'showPinned',\n 'inProfile',\n 'profileUserId',\n 'inQuote',\n\n 'simpleTree',\n 'controlledThreadDisplayStatus',\n 'controlledToggleThreadDisplay',\n 'showOtherRepliesAsButton',\n\n 'controlledShowingTall',\n 'controlledToggleShowingTall',\n 'controlledExpandingSubject',\n 'controlledToggleExpandingSubject',\n 'controlledShowingLongSubject',\n 'controlledToggleShowingLongSubject',\n 'controlledReplying',\n 'controlledToggleReplying',\n 'controlledMediaPlaying',\n 'controlledSetMediaPlaying',\n 'dive'\n ],\n data () {\n return {\n uncontrolledReplying: false,\n unmuted: false,\n userExpanded: false,\n uncontrolledMediaPlaying: [],\n suspendable: true,\n error: null,\n headTailLinks: null,\n displayQuote: !this.inQuote\n }\n },\n computed: {\n ...controlledOrUncontrolledGetters(['replying', 'mediaPlaying']),\n muteWords () {\n return this.mergedConfig.muteWords\n },\n showReasonMutedThread () {\n return (\n this.status.thread_muted ||\n (this.status.reblog && this.status.reblog.thread_muted)\n ) && !this.inConversation\n },\n repeaterClass () {\n const user = this.statusoid.user\n return highlightClass(user)\n },\n userClass () {\n const user = this.retweet ? (this.statusoid.retweeted_status.user) : this.statusoid.user\n return highlightClass(user)\n },\n deleted () {\n return this.statusoid.deleted\n },\n repeaterStyle () {\n const user = this.statusoid.user\n const highlight = this.mergedConfig.highlight\n return highlightStyle(highlight[user.screen_name])\n },\n userStyle () {\n if (this.noHeading) return\n const user = this.retweet ? (this.statusoid.retweeted_status.user) : this.statusoid.user\n const highlight = this.mergedConfig.highlight\n return highlightStyle(highlight[user.screen_name])\n },\n userProfileLink () {\n return this.generateUserProfileLink(this.status.user.id, this.status.user.screen_name)\n },\n replyProfileLink () {\n if (this.isReply) {\n const user = this.$store.getters.findUser(this.status.in_reply_to_user_id)\n // FIXME Why user not found sometimes???\n return user ? user.statusnet_profile_url : 'NOT_FOUND'\n }\n },\n retweet () { return !!this.statusoid.retweeted_status },\n retweeterUser () { return this.statusoid.user },\n retweeter () { return this.statusoid.user.name || this.statusoid.user.screen_name_ui },\n retweeterHtml () { return this.statusoid.user.name },\n retweeterProfileLink () { return this.generateUserProfileLink(this.statusoid.user.id, this.statusoid.user.screen_name) },\n status () {\n if (this.retweet) {\n return this.statusoid.retweeted_status\n } else {\n return this.statusoid\n }\n },\n statusFromGlobalRepository () {\n // NOTE: Consider to replace status with statusFromGlobalRepository\n return this.$store.state.statuses.allStatusesObject[this.status.id]\n },\n loggedIn () {\n return !!this.currentUser\n },\n muteWordHits () {\n return muteWordHits(this.status, this.muteWords)\n },\n rtBotStatus () {\n return this.statusoid.user.bot\n },\n botStatus () {\n return this.status.user.bot\n },\n botIndicator () {\n return this.botStatus && !this.hideBotIndication\n },\n rtBotIndicator () {\n return this.rtBotStatus && !this.hideBotIndication\n },\n mentionsLine () {\n if (!this.headTailLinks) return []\n const writtenSet = new Set(this.headTailLinks.writtenMentions.map(_ => _.url))\n return this.status.attentions.filter(attn => {\n // no reply user\n return attn.id !== this.status.in_reply_to_user_id &&\n // no self-replies\n attn.statusnet_profile_url !== this.status.user.statusnet_profile_url &&\n // don't include if mentions is written\n !writtenSet.has(attn.statusnet_profile_url)\n }).map(attn => ({\n url: attn.statusnet_profile_url,\n content: attn.screen_name,\n userId: attn.id\n }))\n },\n hasMentionsLine () {\n return this.mentionsLine.length > 0\n },\n muted () {\n if (this.statusoid.user.id === this.currentUser.id) return false\n const reasonsToMute = this.userIsMuted ||\n // Thread is muted\n status.thread_muted ||\n // Wordfiltered\n this.muteWordHits.length > 0 ||\n // bot status\n (this.muteBotStatuses && this.botStatus && !this.compact)\n return !this.unmuted && !this.shouldNotMute && reasonsToMute\n },\n userIsMuted () {\n if (this.statusoid.user.id === this.currentUser.id) return false\n const { status } = this\n const { reblog } = status\n const relationship = this.$store.getters.relationship(status.user.id)\n const relationshipReblog = reblog && this.$store.getters.relationship(reblog.user.id)\n return status.muted ||\n // Reprööt of a muted post according to BE\n (reblog && reblog.muted) ||\n // Muted user\n relationship.muting ||\n // Muted user of a reprööt\n (relationshipReblog && relationshipReblog.muting)\n },\n shouldNotMute () {\n const { status } = this\n const { reblog } = status\n return (\n (\n this.inProfile && (\n // Don't mute user's posts on user timeline (except reblogs)\n (!reblog && status.user.id === this.profileUserId) ||\n // Same as above but also allow self-reblogs\n (reblog && reblog.user.id === this.profileUserId)\n )\n ) ||\n // Don't mute statuses in muted conversation when said conversation is opened\n (this.inConversation && status.thread_muted)\n // No excuses if post has muted words\n ) && !this.muteWordHits.length > 0\n },\n hideMutedUsers () {\n return this.mergedConfig.hideMutedPosts\n },\n hideMutedThreads () {\n return this.mergedConfig.hideMutedThreads\n },\n hideFilteredStatuses () {\n return this.mergedConfig.hideFilteredStatuses\n },\n hideWordFilteredPosts () {\n return this.mergedConfig.hideWordFilteredPosts\n },\n hideStatus () {\n return (!this.shouldNotMute) && (\n (this.muted && this.hideFilteredStatuses) ||\n (this.userIsMuted && this.hideMutedUsers) ||\n (this.status.thread_muted && this.hideMutedThreads) ||\n (this.muteWordHits.length > 0 && this.hideWordFilteredPosts)\n )\n },\n isFocused () {\n // retweet or root of an expanded conversation\n if (this.focused) {\n return true\n } else if (!this.inConversation) {\n return false\n }\n // use conversation highlight only when in conversation\n return this.status.id === this.highlight\n },\n isReply () {\n return !!(this.status.in_reply_to_status_id && this.status.in_reply_to_user_id)\n },\n replyToName () {\n if (this.status.in_reply_to_screen_name) {\n return this.status.in_reply_to_screen_name\n } else {\n const user = this.$store.getters.findUser(this.status.in_reply_to_user_id)\n return user && user.screen_name_ui\n }\n },\n replySubject () {\n if (!this.status.summary) return ''\n const decodedSummary = unescape(this.status.summary)\n const behavior = this.mergedConfig.subjectLineBehavior\n const startsWithRe = decodedSummary.match(/^re[: ]/i)\n if ((behavior !== 'noop' && startsWithRe) || behavior === 'masto') {\n return decodedSummary\n } else if (behavior === 'email') {\n return 're: '.concat(decodedSummary)\n } else if (behavior === 'noop') {\n return ''\n }\n },\n combinedFavsAndRepeatsUsers () {\n // Use the status from the global status repository since favs and repeats are saved in it\n const combinedUsers = [].concat(\n this.statusFromGlobalRepository.favoritedBy,\n this.statusFromGlobalRepository.rebloggedBy\n )\n return uniqBy(combinedUsers, 'id')\n },\n tags () {\n // eslint-disable-next-line no-prototype-builtins\n return this.status.tags.filter(tagObj => tagObj.hasOwnProperty('name')).map(tagObj => tagObj.name).join(' ')\n },\n hidePostStats () {\n return this.mergedConfig.hidePostStats\n },\n muteBotStatuses () {\n return this.mergedConfig.muteBotStatuses\n },\n hideBotIndication () {\n return this.mergedConfig.hideBotIndication\n },\n currentUser () {\n return this.$store.state.users.currentUser\n },\n betterShadow () {\n return this.$store.state.interface.browserSupport.cssFilter\n },\n mergedConfig () {\n return this.$store.getters.mergedConfig\n },\n isSuspendable () {\n return !this.replying && this.mediaPlaying.length === 0\n },\n inThreadForest () {\n return !!this.controlledThreadDisplayStatus\n },\n threadShowing () {\n return this.controlledThreadDisplayStatus === 'showing'\n },\n visibilityLocalized () {\n return this.$i18n.t('general.scope_in_timeline.' + this.status.visibility)\n },\n isEdited () {\n return this.status.edited_at !== null\n },\n editingAvailable () {\n return this.$store.state.instance.editingAvailable\n },\n hasVisibleQuote () {\n return this.status.quote_url && this.status.quote_visible\n },\n hasInvisibleQuote () {\n return this.status.quote_url && !this.status.quote_visible\n },\n quotedStatus () {\n return this.status.quote_id ? this.$store.state.statuses.allStatusesObject[this.status.quote_id] : undefined\n },\n shouldDisplayQuote () {\n return this.quotedStatus && this.displayQuote\n }\n },\n methods: {\n visibilityIcon (visibility) {\n switch (visibility) {\n case 'private':\n return 'lock'\n case 'unlisted':\n return 'lock-open'\n case 'direct':\n return 'envelope'\n default:\n return 'globe'\n }\n },\n showError (error) {\n this.error = error\n },\n clearError () {\n this.error = undefined\n },\n toggleReplying () {\n controlledOrUncontrolledToggle(this, 'replying')\n },\n gotoOriginal (id) {\n if (this.inConversation) {\n this.$emit('goto', id)\n }\n },\n toggleExpanded () {\n this.$emit('toggleExpanded')\n },\n toggleMute () {\n this.unmuted = !this.unmuted\n },\n toggleUserExpanded () {\n this.userExpanded = !this.userExpanded\n },\n generateUserProfileLink (id, name) {\n return generateProfileLink(id, name, this.$store.state.instance.restrictedNicknames)\n },\n addMediaPlaying (id) {\n controlledOrUncontrolledSet(this, 'mediaPlaying', this.mediaPlaying.concat(id))\n },\n removeMediaPlaying (id) {\n controlledOrUncontrolledSet(this, 'mediaPlaying', this.mediaPlaying.filter(mediaId => mediaId !== id))\n },\n setHeadTailLinks (headTailLinks) {\n this.headTailLinks = headTailLinks\n },\n toggleThreadDisplay () {\n this.controlledToggleThreadDisplay()\n },\n scrollIfHighlighted (highlightId) {\n const id = highlightId\n if (this.status.id === id) {\n const 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 toggleDisplayQuote () {\n if (this.shouldDisplayQuote) {\n this.displayQuote = false\n } else if (!this.quotedStatus) {\n this.$store.dispatch('fetchStatus', this.status.quote_id)\n .then(() => {\n this.displayQuote = true\n })\n } else {\n this.displayQuote = true\n }\n }\n },\n watch: {\n highlight: function (id) {\n this.scrollIfHighlighted(id)\n },\n 'status.repeat_num': function (num) {\n // refetch repeats when repeat_num is changed in any way\n if (this.isFocused && this.statusFromGlobalRepository.rebloggedBy && this.statusFromGlobalRepository.rebloggedBy.length !== num) {\n this.$store.dispatch('fetchRepeats', this.status.id)\n }\n },\n 'status.fave_num': function (num) {\n // refetch favs when fave_num is changed in any way\n if (this.isFocused && this.statusFromGlobalRepository.favoritedBy && this.statusFromGlobalRepository.favoritedBy.length !== num) {\n this.$store.dispatch('fetchFavs', this.status.id)\n }\n },\n isSuspendable: function (val) {\n this.suspendable = val\n }\n }\n}\n\nexport default Status\n","import { render } from \"./status.vue?vue&type=template&id=0f15101e\"\nimport script from \"./status.js?vue&type=script&lang=js\"\nexport * from \"./status.js?vue&type=script&lang=js\"\n\nimport \"./status.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n class=\"StatusContent\"\n :class=\"{ '-compact': compact }\"\n >\n <slot name=\"header\" />\n <StatusBody\n :status=\"status\"\n :compact=\"compact\"\n :single-line=\"singleLine\"\n :showing-tall=\"showingTall\"\n :expanding-subject=\"expandingSubject\"\n :showing-long-subject=\"showingLongSubject\"\n :toggle-showing-tall=\"toggleShowingTall\"\n :toggle-expanding-subject=\"toggleExpandingSubject\"\n :toggle-showing-long-subject=\"toggleShowingLongSubject\"\n @parseReady=\"$emit('parseReady', $event)\"\n >\n <div v-if=\"status.poll && status.poll.options && !compact\">\n <Poll\n :base-poll=\"status.poll\"\n :emoji=\"status.emojis\"\n />\n </div>\n\n <div v-else-if=\"status.poll && status.poll.options && compact\">\n <FAIcon\n icon=\"poll-h\"\n size=\"2x\"\n />\n </div>\n\n <gallery\n v-if=\"status.attachments.length !== 0\"\n class=\"attachments media-body\"\n :compact=\"compact\"\n :nsfw=\"nsfwClickthrough\"\n :attachments=\"status.attachments\"\n :limit=\"compact ? 1 : 0\"\n :size=\"attachmentSize\"\n @play=\"$emit('mediaplay', attachment.id)\"\n @pause=\"$emit('mediapause', attachment.id)\"\n />\n\n <div\n v-if=\"statusCard && !noHeading && !compact\"\n class=\"link-preview media-body\"\n >\n <link-preview\n :card=\"status.card\"\n :size=\"attachmentSize\"\n :nsfw=\"nsfwClickthrough\"\n />\n </div>\n </StatusBody>\n <slot name=\"footer\" />\n </div>\n</template>\n\n<script src=\"./status_content.js\"></script>\n<style lang=\"scss\">\n.StatusContent {\n flex: 1;\n min-width: 0;\n}\n</style>\n","<template>\n <div\n class=\"poll\"\n :class=\"containerClass\"\n >\n <div\n :role=\"showResults ? 'section' : (poll.multiple ? 'group' : 'radiogroup')\"\n >\n <div\n v-for=\"(option, index) in options\"\n :key=\"index\"\n class=\"poll-option\"\n >\n <div\n v-if=\"showResults\"\n :title=\"resultTitle(option)\"\n class=\"option-result\"\n >\n <div class=\"option-result-label\">\n <span class=\"result-percentage\">\n {{ percentageForOption(option.votes_count) }}%\n </span>\n <RichContent\n :html=\"option.title_html\"\n :handle-links=\"false\"\n :emoji=\"emoji\"\n />\n </div>\n <div\n class=\"result-fill\"\n :style=\"{ 'width': `${percentageForOption(option.votes_count)}%` }\"\n />\n </div>\n <div\n v-else\n tabindex=\"0\"\n :role=\"poll.multiple ? 'checkbox' : 'radio'\"\n :aria-labelledby=\"`option-vote-${randomSeed}-${index}`\"\n :aria-checked=\"choices[index]\"\n @click=\"activateOption(index)\"\n >\n <input\n v-if=\"poll.multiple\"\n type=\"checkbox\"\n class=\"poll-checkbox\"\n :disabled=\"loading\"\n :value=\"index\"\n >\n <input\n v-else\n type=\"radio\"\n :disabled=\"loading\"\n :value=\"index\"\n >\n <label class=\"option-vote\">\n <RichContent\n :id=\"`option-vote-${randomSeed}-${index}`\"\n :html=\"option.title_html\"\n :handle-links=\"false\"\n :emoji=\"emoji\"\n />\n </label>\n </div>\n </div>\n </div>\n <div class=\"footer faint\">\n <button\n v-if=\"!showResults\"\n class=\"btn button-default poll-vote-button\"\n type=\"button\"\n :disabled=\"isDisabled\"\n @click=\"vote\"\n >\n {{ $t('polls.vote') }}\n </button>\n <div class=\"total\">\n <template v-if=\"typeof poll.voters_count === 'number'\">\n {{ $tc(\"polls.people_voted_count\", poll.voters_count, { count: poll.voters_count }) }}&nbsp;·&nbsp;\n </template>\n <template v-else>\n {{ $tc(\"polls.votes_count\", poll.votes_count, { count: poll.votes_count }) }}&nbsp;·&nbsp;\n </template>\n </div>\n <span>\n <i18n-t\n scope=\"global\"\n :keypath=\"expired ? 'polls.expired' : 'polls.expires_in'\"\n >\n <Timeago\n :time=\"expiresAt\"\n :auto-update=\"60\"\n :now-threshold=\"0\"\n />\n </i18n-t>\n </span>\n </div>\n </div>\n</template>\n\n<script src=\"./poll.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.poll {\n .votes {\n display: flex;\n flex-direction: column;\n margin: 0 0 0.5em;\n }\n\n .poll-option {\n margin: 0.75em 0.5em;\n }\n\n .option-result {\n height: 100%;\n display: flex;\n flex-direction: row;\n position: relative;\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n }\n\n .option-result-label {\n display: flex;\n align-items: center;\n padding: 0.1em 0.25em;\n z-index: 1;\n word-break: break-word;\n }\n\n .result-percentage {\n width: 3.5em;\n flex-shrink: 0;\n }\n\n .result-fill {\n height: 100%;\n position: absolute;\n color: $fallback--text;\n color: var(--pollText, $fallback--text);\n background-color: $fallback--lightBg;\n background-color: var(--poll, $fallback--lightBg);\n border-radius: $fallback--panelRadius;\n border-radius: var(--panelRadius, $fallback--panelRadius);\n top: 0;\n left: 0;\n transition: width 0.5s;\n }\n\n .option-vote {\n display: flex;\n align-items: center;\n }\n\n input {\n width: 3.5em;\n }\n\n .footer {\n display: flex;\n align-items: center;\n }\n\n &.loading * {\n cursor: progress;\n }\n\n .poll-vote-button {\n padding: 0 0.5em;\n margin-right: 0.5em;\n }\n\n .poll-checkbox {\n display: none;\n }\n}\n</style>\n","import Timeago from 'components/timeago/timeago.vue'\nimport genRandomSeed from '../../services/random_seed/random_seed.service.js'\nimport RichContent from 'components/rich_content/rich_content.jsx'\nimport { forEach, map } from 'lodash'\n\nexport default {\n name: 'Poll',\n props: ['basePoll', 'emoji'],\n components: {\n Timeago,\n RichContent\n },\n data () {\n return {\n loading: false,\n choices: [],\n randomSeed: genRandomSeed()\n }\n },\n created () {\n if (!this.$store.state.polls.pollsObject[this.pollId]) {\n this.$store.dispatch('mergeOrAddPoll', this.basePoll)\n }\n this.$store.dispatch('trackPoll', this.pollId)\n },\n unmounted () {\n this.$store.dispatch('untrackPoll', this.pollId)\n },\n computed: {\n pollId () {\n return this.basePoll.id\n },\n poll () {\n const storePoll = this.$store.state.polls.pollsObject[this.pollId]\n return storePoll || {}\n },\n options () {\n return (this.poll && this.poll.options) || []\n },\n expiresAt () {\n return (this.poll && this.poll.expires_at) || 0\n },\n expired () {\n return (this.poll && this.poll.expired) || false\n },\n loggedIn () {\n return this.$store.state.users.currentUser\n },\n showResults () {\n return this.poll.voted || this.expired || !this.loggedIn\n },\n totalVotesCount () {\n return this.poll.votes_count\n },\n containerClass () {\n return {\n loading: this.loading\n }\n },\n choiceIndices () {\n // Convert array of booleans into an array of indices of the\n // items that were 'true', so [true, false, false, true] becomes\n // [0, 3].\n return this.choices\n .map((entry, index) => entry && index)\n .filter(value => typeof value === 'number')\n },\n isDisabled () {\n const noChoice = this.choiceIndices.length === 0\n return this.loading || noChoice\n }\n },\n methods: {\n percentageForOption (count) {\n return this.totalVotesCount === 0 ? 0 : Math.round(count / this.totalVotesCount * 100)\n },\n resultTitle (option) {\n return `${option.votes_count}/${this.totalVotesCount} ${this.$t('polls.votes')}`\n },\n fetchPoll () {\n this.$store.dispatch('refreshPoll', { id: this.statusId, pollId: this.poll.id })\n },\n activateOption (index) {\n // forgive me father: doing checking the radio/checkboxes\n // in code because of customized input elements need either\n // a) an extra element for the actual graphic, or b) use a\n // pseudo element for the label. We use b) which mandates\n // using \"for\" and \"id\" matching which isn't nice when the\n // same poll appears multiple times on the site (notifs and\n // timeline for example). With code we can make sure it just\n // works without altering the pseudo element implementation.\n const allElements = this.$el.querySelectorAll('input')\n const clickedElement = this.$el.querySelector(`input[value=\"${index}\"]`)\n if (this.poll.multiple) {\n // Checkboxes, toggle only the clicked one\n clickedElement.checked = !clickedElement.checked\n } else {\n // Radio button, uncheck everything and check the clicked one\n forEach(allElements, element => { element.checked = false })\n clickedElement.checked = true\n }\n this.choices = map(allElements, e => e.checked)\n },\n optionId (index) {\n return `poll${this.poll.id}-${index}`\n },\n vote () {\n if (this.choiceIndices.length === 0) return\n this.loading = true\n this.$store.dispatch(\n 'votePoll',\n { id: this.statusId, pollId: this.poll.id, choices: this.choiceIndices }\n ).then(poll => {\n this.loading = false\n })\n }\n }\n}\n","import { render } from \"./poll.vue?vue&type=template&id=02c7de4c\"\nimport script from \"./poll.js?vue&type=script&lang=js\"\nexport * from \"./poll.js?vue&type=script&lang=js\"\n\nimport \"./poll.vue?vue&type=style&index=0&id=02c7de4c&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n class=\"StatusBody\"\n :class=\"{ '-compact': compact }\"\n >\n <div class=\"body\">\n <div\n v-if=\"status.summary_raw_html\"\n class=\"summary-wrapper\"\n :class=\"{ '-tall': (longSubject && !showingLongSubject) }\"\n >\n <RichContent\n class=\"media-body summary\"\n :html=\"status.summary_raw_html\"\n :emoji=\"status.emojis\"\n />\n <button\n v-show=\"longSubject && showingLongSubject\"\n class=\"button-unstyled -link tall-subject-hider\"\n @click.prevent=\"toggleShowingLongSubject\"\n >\n {{ $t(\"status.hide_full_subject\") }}\n </button>\n <button\n v-show=\"longSubject && !showingLongSubject\"\n class=\"button-unstyled -link tall-subject-hider\"\n @click.prevent=\"toggleShowingLongSubject\"\n >\n {{ $t(\"status.show_full_subject\") }}\n </button>\n </div>\n <div\n :class=\"{'-tall-status': hideTallStatus}\"\n class=\"text-wrapper\"\n >\n <button\n v-show=\"hideTallStatus\"\n class=\"button-unstyled -link tall-status-hider\"\n :class=\"{ '-focused': focused }\"\n @click.prevent=\"toggleShowMore\"\n >\n {{ $t(\"general.show_more\") }}\n </button>\n <RichContent\n v-if=\"!hideSubjectStatus && !(singleLine && status.summary_raw_html)\"\n :class=\"{ '-single-line': singleLine }\"\n class=\"text media-body\"\n :html=\"status.raw_html\"\n :emoji=\"status.emojis\"\n :handle-links=\"true\"\n :greentext=\"mergedConfig.greentext\"\n :attentions=\"status.attentions\"\n @parseReady=\"onParseReady\"\n />\n\n <button\n v-show=\"hideSubjectStatus\"\n class=\"button-unstyled -link cw-status-hider\"\n @click.prevent=\"toggleShowMore\"\n >\n {{ $t(\"status.show_content\") }}\n <FAIcon\n v-if=\"attachmentTypes.includes('image')\"\n icon=\"image\"\n />\n <FAIcon\n v-if=\"attachmentTypes.includes('video')\"\n icon=\"video\"\n />\n <FAIcon\n v-if=\"attachmentTypes.includes('audio')\"\n icon=\"music\"\n />\n <FAIcon\n v-if=\"attachmentTypes.includes('unknown')\"\n icon=\"file\"\n />\n <FAIcon\n v-if=\"status.poll && status.poll.options\"\n icon=\"poll-h\"\n />\n <FAIcon\n v-if=\"status.card\"\n icon=\"link\"\n />\n </button>\n <button\n v-show=\"showingMore && !fullContent\"\n class=\"button-unstyled -link status-unhider\"\n @click.prevent=\"toggleShowMore\"\n >\n {{ tallStatus ? $t(\"general.show_less\") : $t(\"status.hide_content\") }}\n </button>\n </div>\n </div>\n <slot v-if=\"!hideSubjectStatus\" />\n </div>\n</template>\n<script src=\"./status_body.js\"></script>\n<style lang=\"scss\" src=\"./status_body.scss\" />\n","import fileType from 'src/services/file_type/file_type.service'\nimport RichContent from 'src/components/rich_content/rich_content.jsx'\nimport { mapGetters } from 'vuex'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faFile,\n faMusic,\n faImage,\n faLink,\n faPollH\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faFile,\n faMusic,\n faImage,\n faLink,\n faPollH\n)\n\nconst StatusContent = {\n name: 'StatusContent',\n props: [\n 'compact',\n 'status',\n 'focused',\n 'noHeading',\n 'fullContent',\n 'singleLine',\n 'showingTall',\n 'expandingSubject',\n 'showingLongSubject',\n 'toggleShowingTall',\n 'toggleExpandingSubject',\n 'toggleShowingLongSubject'\n ],\n data () {\n return {\n postLength: this.status.text.length,\n parseReadyDone: false\n }\n },\n computed: {\n localCollapseSubjectDefault () {\n return this.mergedConfig.collapseMessageWithSubject\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 if (this.singleLine || this.compact) return false\n const lengthScore = this.status.raw_html.split(/<p|<br/).length + this.postLength / 80\n return lengthScore > 20\n },\n longSubject () {\n return this.status.summary.length > 240\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.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 attachmentTypes () {\n return this.status.attachments.map(file => fileType.fileType(file.mimetype))\n },\n ...mapGetters(['mergedConfig'])\n },\n components: {\n RichContent\n },\n mounted () {\n this.status.attentions && this.status.attentions.forEach(attn => {\n const { id } = attn\n this.$store.dispatch('fetchUserIfMissing', id)\n })\n },\n methods: {\n onParseReady (event) {\n if (this.parseReadyDone) return\n this.parseReadyDone = true\n this.$emit('parseReady', event)\n const { writtenMentions, invisibleMentions } = event\n writtenMentions\n .filter(mention => !mention.notifying)\n .forEach(mention => {\n const { content, url } = mention\n const cleanedString = content.replace(/<[^>]+?>/gi, '') // remove all tags\n if (!cleanedString.startsWith('@')) return\n const handle = cleanedString.slice(1)\n const host = url.replace(/^https?:\\/\\//, '').replace(/\\/.+?$/, '')\n this.$store.dispatch('fetchUserIfMissing', `${handle}@${host}`)\n })\n /* This is a bit of a hack to make current tall status detector work\n * with rich mentions. Invisible mentions are detected at RichContent level\n * and also we generate plaintext version of mentions by stripping tags\n * so here we subtract from post length by each mention that became invisible\n * via MentionsLine\n */\n this.postLength = invisibleMentions.reduce((acc, mention) => {\n return acc - mention.textContent.length - 1\n }, this.postLength)\n },\n toggleShowMore () {\n if (this.mightHideBecauseTall) {\n this.toggleShowingTall()\n } else if (this.mightHideBecauseSubject) {\n this.toggleExpandingSubject()\n }\n },\n generateTagLink (tag) {\n return `/tag/${tag}`\n }\n }\n}\n\nexport default StatusContent\n","import { render } from \"./status_body.vue?vue&type=template&id=7a590a2c\"\nimport script from \"./status_body.js?vue&type=script&lang=js\"\nexport * from \"./status_body.js?vue&type=script&lang=js\"\n\nimport \"./status_body.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import Attachment from '../attachment/attachment.vue'\nimport Poll from '../poll/poll.vue'\nimport Gallery from '../gallery/gallery.vue'\nimport StatusBody from 'src/components/status_body/status_body.vue'\nimport LinkPreview from '../link-preview/link-preview.vue'\nimport { mapGetters, mapState } from 'vuex'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faCircleNotch,\n faFile,\n faMusic,\n faImage,\n faLink,\n faPollH\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCircleNotch,\n faFile,\n faMusic,\n faImage,\n faLink,\n faPollH\n)\n\nconst camelCase = name => name.charAt(0).toUpperCase() + name.slice(1)\n\nconst controlledOrUncontrolledGetters = list => list.reduce((res, name) => {\n const camelized = camelCase(name)\n const toggle = `controlledToggle${camelized}`\n const controlledName = `controlled${camelized}`\n const uncontrolledName = `uncontrolled${camelized}`\n res[name] = function () {\n return ((this.$data[toggle] !== undefined || this.$props[toggle] !== undefined) && this[toggle]) ? this[controlledName] : this[uncontrolledName]\n }\n return res\n}, {})\n\nconst controlledOrUncontrolledToggle = (obj, name) => {\n const camelized = camelCase(name)\n const toggle = `controlledToggle${camelized}`\n const uncontrolledName = `uncontrolled${camelized}`\n if (obj[toggle]) {\n obj[toggle]()\n } else {\n obj[uncontrolledName] = !obj[uncontrolledName]\n }\n}\n\nconst StatusContent = {\n name: 'StatusContent',\n props: [\n 'status',\n 'compact',\n 'focused',\n 'noHeading',\n 'fullContent',\n 'singleLine',\n 'controlledShowingTall',\n 'controlledExpandingSubject',\n 'controlledToggleShowingTall',\n 'controlledToggleExpandingSubject',\n 'controlledShowingLongSubject',\n 'controlledToggleShowingLongSubject'\n ],\n data () {\n return {\n uncontrolledShowingTall: this.fullContent || (this.inConversation && this.focused),\n uncontrolledShowingLongSubject: false,\n // not as computed because it sets the initial state which will be changed later\n uncontrolledExpandingSubject: !this.$store.getters.mergedConfig.collapseMessageWithSubject\n }\n },\n computed: {\n ...controlledOrUncontrolledGetters(['showingTall', 'expandingSubject', 'showingLongSubject']),\n statusCard () {\n if (!this.status.card) return null\n return this.status.card.url === this.status.quote_url ? null : this.status.card\n },\n hideAttachments () {\n return (this.mergedConfig.hideAttachments && !this.inConversation) ||\n (this.mergedConfig.hideAttachmentsInConv && this.inConversation)\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.compact) {\n return 'small'\n } else if ((this.mergedConfig.hideAttachments && !this.inConversation) ||\n (this.mergedConfig.hideAttachmentsInConv && this.inConversation) ||\n (this.status.attachments.length > this.maxThumbnails)) {\n return 'hide'\n }\n return 'normal'\n },\n maxThumbnails () {\n return this.mergedConfig.maxThumbnails\n },\n ...mapGetters(['mergedConfig']),\n ...mapState({\n currentUser: state => state.users.currentUser\n })\n },\n components: {\n Attachment,\n Poll,\n Gallery,\n LinkPreview,\n StatusBody\n },\n methods: {\n toggleShowingTall () {\n controlledOrUncontrolledToggle(this, 'showingTall')\n },\n toggleExpandingSubject () {\n controlledOrUncontrolledToggle(this, 'expandingSubject')\n },\n toggleShowingLongSubject () {\n controlledOrUncontrolledToggle(this, 'showingLongSubject')\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","import { render } from \"./status_content.vue?vue&type=template&id=79c8e5d6\"\nimport script from \"./status_content.js?vue&type=script&lang=js\"\nexport * from \"./status_content.js?vue&type=script&lang=js\"\n\nimport \"./status_content.vue?vue&type=style&index=0&id=79c8e5d6&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n class=\"still-image\"\n :class=\"{ animated: animated }\"\n :style=\"style\"\n >\n <canvas\n v-if=\"animated\"\n ref=\"canvas\"\n />\n <!-- NOTE: key is required to force to re-render img tag when src is changed -->\n <img\n ref=\"src\"\n :key=\"realSrc\"\n :alt=\"alt\"\n :title=\"alt\"\n :data-src=\"dataSrc\"\n :src=\"realSrc\"\n :referrerpolicy=\"referrerpolicy\"\n :loading=\"loading\"\n @load=\"onLoad\"\n @error=\"onError\"\n >\n <slot />\n </div>\n</template>\n\n<script src=\"./still-image.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.still-image {\n position: relative;\n line-height: 0;\n overflow: hidden;\n display: inline-flex;\n align-items: center;\n\n canvas {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n width: 100%;\n height: 100%;\n object-fit: contain;\n visibility: var(--_still-image-canvas-visibility, visible);\n }\n\n img {\n width: 100%;\n height: 100%;\n object-fit: contain;\n }\n\n &.animated {\n &::before {\n zoom: var(--_still_image-label-scale, 1);\n content: \"gif\";\n position: absolute;\n line-height: 1;\n font-size: 0.7em;\n top: 0.5em;\n left: 0.5em;\n background: rgb(127 127 127 / 50%);\n color: #fff;\n display: block;\n padding: 2px 4px;\n border-radius: $fallback--tooltipRadius;\n border-radius: var(--tooltipRadius, $fallback--tooltipRadius);\n z-index: 2;\n visibility: var(--_still-image-label-visibility, visible);\n }\n\n &:hover canvas {\n display: none;\n }\n\n &:hover::before {\n visibility: var(--_still-image-label-visibility, hidden);\n }\n\n img {\n visibility: var(--_still-image-img-visibility, hidden);\n }\n\n &:hover img {\n visibility: visible;\n }\n }\n}\n</style>\n","const StillImage = {\n props: [\n 'src',\n 'referrerpolicy',\n 'mimetype',\n 'imageLoadError',\n 'imageLoadHandler',\n 'alt',\n 'height',\n 'width',\n 'dataSrc',\n 'loading'\n ],\n data () {\n return {\n // for lazy loading, see loadLazy()\n realSrc: this.src,\n stopGifs: this.$store.getters.mergedConfig.stopGifs\n }\n },\n computed: {\n animated () {\n if (!this.realSrc) {\n return false\n }\n\n return this.stopGifs && (this.mimetype === 'image/gif' || this.realSrc.endsWith('.gif'))\n },\n style () {\n const appendPx = (str) => /\\d$/.test(str) ? str + 'px' : str\n return {\n height: this.height ? appendPx(this.height) : null,\n width: this.width ? appendPx(this.width) : null\n }\n }\n },\n methods: {\n loadLazy () {\n if (this.dataSrc) {\n this.realSrc = this.dataSrc\n }\n },\n onLoad () {\n if (!this.realSrc) {\n return\n }\n const image = this.$refs.src\n if (!image) return\n this.imageLoadHandler && this.imageLoadHandler(image)\n const canvas = this.$refs.canvas\n if (!canvas) return\n const width = image.naturalWidth\n const height = image.naturalHeight\n canvas.width = width\n canvas.height = height\n canvas.getContext('2d').drawImage(image, 0, 0, width, height)\n },\n onError () {\n this.imageLoadError && this.imageLoadError()\n }\n },\n watch: {\n src () {\n this.realSrc = this.src\n },\n dataSrc () {\n this.$el.removeAttribute('data-loaded')\n }\n }\n}\n\nexport default StillImage\n","import { render } from \"./still-image.vue?vue&type=template&id=75385b10\"\nimport script from \"./still-image.js?vue&type=script&lang=js\"\nexport * from \"./still-image.js?vue&type=script&lang=js\"\n\nimport \"./still-image.vue?vue&type=style&index=0&id=75385b10&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <time\n :datetime=\"time\"\n :title=\"localeDateString\"\n >\n {{ relativeTimeString }}\n </time>\n</template>\n\n<script>\nimport * as DateUtils from 'src/services/date_utils/date_utils.js'\nimport localeService from 'src/services/locale/locale.service.js'\n\nexport default {\n name: 'Timeago',\n props: ['time', 'autoUpdate', 'longFormat', 'nowThreshold', 'templateKey'],\n data () {\n return {\n relativeTime: { key: 'time.now', num: 0 },\n interval: null\n }\n },\n computed: {\n localeDateString () {\n const browserLocale = localeService.internalToBrowserLocale(this.$i18n.locale)\n return typeof this.time === 'string'\n ? new Date(Date.parse(this.time)).toLocaleString(browserLocale)\n : this.time.toLocaleString(browserLocale)\n },\n relativeTimeString () {\n const timeString = this.$i18n.tc(this.relativeTime.key, this.relativeTime.num, [this.relativeTime.num])\n\n if (typeof this.templateKey === 'string' && this.relativeTime.key !== 'time.now') {\n return this.$i18n.t(this.templateKey, [timeString])\n }\n\n return timeString\n }\n },\n watch: {\n time (newVal, oldVal) {\n if (oldVal !== newVal) {\n clearTimeout(this.interval)\n this.refreshRelativeTimeObject()\n }\n }\n },\n created () {\n this.refreshRelativeTimeObject()\n },\n unmounted () {\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","import { render } from \"./timeago.vue?vue&type=template&id=3269671b\"\nimport script from \"./timeago.vue?vue&type=script&lang=js\"\nexport * from \"./timeago.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <FAIcon\n v-if=\"user && user.screen_name_ui_contains_non_ascii\"\n icon=\"code\"\n :title=\"$t('unicode_domain_indicator.tooltip')\"\n />\n</template>\n\n<script>\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faCode\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCode\n)\n\nconst UnicodeDomainIndicator = {\n props: {\n user: Object\n }\n}\n\nexport default UnicodeDomainIndicator\n</script>\n","import { render } from \"./unicode_domain_indicator.vue?vue&type=template&id=3e044e46\"\nimport script from \"./unicode_domain_indicator.vue?vue&type=script&lang=js\"\nexport * from \"./unicode_domain_indicator.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import StillImage from '../still-image/still-image.vue'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\n\nimport {\n faRobot\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faRobot\n)\n\nconst UserAvatar = {\n props: [\n 'user',\n 'betterShadow',\n 'compact',\n 'bot'\n ],\n data () {\n return {\n showPlaceholder: false,\n defaultAvatar: `${this.$store.state.instance.server + this.$store.state.instance.defaultAvatar}`\n }\n },\n components: {\n StillImage\n },\n methods: {\n imgSrc (src) {\n return (!src || this.showPlaceholder) ? this.defaultAvatar : src\n },\n imageLoadError () {\n this.showPlaceholder = true\n }\n }\n}\n\nexport default UserAvatar\n","import { render } from \"./user_avatar.vue?vue&type=template&id=9c4bf79e\"\nimport script from \"./user_avatar.js?vue&type=script&lang=js\"\nexport * from \"./user_avatar.js?vue&type=script&lang=js\"\n\nimport \"./user_avatar.vue?vue&type=style&index=0&id=9c4bf79e&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <span\n class=\"Avatar\"\n :class=\"{ '-compact': compact }\"\n >\n <StillImage\n v-if=\"user\"\n class=\"avatar\"\n :alt=\"user.screen_name_ui\"\n :title=\"user.screen_name_ui\"\n :src=\"imgSrc(user.profile_image_url_original)\"\n :image-load-error=\"imageLoadError\"\n :class=\"{ '-compact': compact, '-better-shadow': betterShadow }\"\n />\n <div\n v-else\n class=\"avatar -placeholder\"\n :class=\"{ '-compact': compact }\"\n />\n <FAIcon\n v-if=\"bot\"\n icon=\"robot\"\n class=\"bot-indicator\"\n />\n </span>\n</template>\n\n<script src=\"./user_avatar.js\"></script>\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.Avatar {\n --_avatarShadowBox: var(--avatarStatusShadow);\n --_avatarShadowFilter: var(--avatarStatusShadowFilter);\n --_avatarShadowInset: var(--avatarStatusShadowInset);\n --_still-image-label-visibility: hidden;\n\n display: inline-block;\n position: relative;\n width: 48px;\n height: 48px;\n\n &.-compact {\n width: 32px;\n height: 32px;\n border-radius: $fallback--avatarAltRadius;\n border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);\n }\n\n .avatar {\n width: 100%;\n height: 100%;\n box-shadow: var(--_avatarShadowBox);\n border-radius: $fallback--avatarRadius;\n border-radius: var(--avatarRadius, $fallback--avatarRadius);\n\n &.-better-shadow {\n box-shadow: var(--_avatarShadowInset);\n filter: var(--_avatarShadowFilter);\n }\n\n &.-animated::before {\n display: none;\n }\n\n &.-compact {\n border-radius: $fallback--avatarAltRadius;\n border-radius: var(--avatarAltRadius, $fallback--avatarAltRadius);\n }\n\n &.-placeholder {\n background-color: $fallback--fg;\n background-color: var(--fg, $fallback--fg);\n }\n }\n\n img {\n width: 100%;\n height: 100%;\n }\n\n .bot-indicator {\n position: absolute;\n bottom: 0;\n right: 0;\n margin: -0.2em;\n padding: 0.2em;\n background: rgb(127 127 127 / 50%);\n color: #fff;\n border-radius: var(--tooltipRadius);\n }\n}\n</style>\n","<template>\n <div\n class=\"user-card\"\n :class=\"classes\"\n >\n <div\n :class=\"{ 'hide-bio': hideBio }\"\n :style=\"style\"\n class=\"background-image\"\n />\n <div :class=\"onClose ? '' : panel-heading -flexible-height\">\n <div class=\"user-info\">\n <div class=\"container\">\n <a\n v-if=\"avatarAction === 'zoom'\"\n class=\"user-info-avatar -link\"\n @click=\"zoomAvatar\"\n >\n <UserAvatar\n :better-shadow=\"betterShadow\"\n :user=\"user\"\n />\n <div class=\"user-info-avatar -link -overlay\">\n <FAIcon\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"search-plus\"\n />\n </div>\n </a>\n <UserAvatar\n v-else-if=\"typeof avatarAction === 'function'\"\n class=\"user-info-avatar\"\n :better-shadow=\"betterShadow\"\n :user=\"user\"\n @click=\"avatarAction\"\n />\n <router-link\n v-else\n :to=\"userProfileLink(user)\"\n >\n <UserAvatar\n :better-shadow=\"betterShadow\"\n :user=\"user\"\n />\n </router-link>\n <div class=\"user-summary\">\n <div class=\"top-line\">\n <router-link\n :to=\"userProfileLink(user)\"\n class=\"user-name\"\n >\n <RichContent\n :title=\"user.name\"\n :html=\"user.name\"\n :emoji=\"user.emoji\"\n />\n </router-link>\n <button\n v-if=\"!isOtherUser && user.is_local\"\n class=\"button-unstyled edit-profile-button\"\n @click.stop=\"openProfileTab\"\n >\n <FAIcon\n fixed-width\n class=\"icon\"\n icon=\"edit\"\n :title=\"$t('user_card.edit_profile')\"\n />\n </button>\n <a\n v-if=\"isOtherUser && !user.is_local\"\n :href=\"user.statusnet_profile_url\"\n target=\"_blank\"\n class=\"button-unstyled external-link-button\"\n >\n <FAIcon\n class=\"icon\"\n icon=\"external-link-alt\"\n />\n </a>\n <AccountActions\n v-if=\"isOtherUser && loggedIn\"\n :user=\"user\"\n :relationship=\"relationship\"\n />\n <router-link\n v-if=\"onClose\"\n :to=\"userProfileLink(user)\"\n class=\"button-unstyled external-link-button\"\n @click=\"onClose\"\n >\n <FAIcon\n class=\"icon\"\n icon=\"expand-alt\"\n />\n </router-link>\n <button\n v-if=\"onClose\"\n class=\"button-unstyled external-link-button\"\n @click=\"onClose\"\n >\n <FAIcon\n class=\"icon\"\n icon=\"times\"\n />\n </button>\n </div>\n <div class=\"bottom-line\">\n <user-link\n class=\"user-screen-name\"\n :user=\"user\"\n />\n <template v-if=\"!hideBio\">\n <span\n v-if=\"user.deactivated\"\n class=\"alert user-role\"\n >\n {{ $t('user_card.deactivated') }}\n </span>\n <span\n v-if=\"!!visibleRole\"\n class=\"alert user-role\"\n >\n {{ $t(`general.role.${visibleRole}`) }}\n </span>\n <span\n v-if=\"user.bot\"\n class=\"alert user-role\"\n >\n {{ $t('user_card.bot') }}\n </span>\n </template>\n <span v-if=\"user.locked\">\n <FAIcon\n class=\"lock-icon\"\n icon=\"lock\"\n size=\"sm\"\n />\n </span>\n <span\n v-if=\"!mergedConfig.hideUserStats && !hideBio\"\n class=\"dailyAvg\"\n >{{ dailyAvg }} {{ $t('user_card.per_day') }}</span>\n </div>\n </div>\n </div>\n <div class=\"user-meta\">\n <div\n v-if=\"relationship.followed_by && loggedIn && isOtherUser\"\n class=\"following\"\n >\n {{ $t('user_card.follows_you') }}\n </div>\n <div\n v-if=\"isOtherUser && (loggedIn || !switcher)\"\n class=\"highlighter\"\n >\n <!-- id's need to be unique, otherwise vue confuses which user-card checkbox belongs to -->\n <input\n v-if=\"userHighlightType !== 'disabled'\"\n :id=\"'userHighlightColorTx'+user.id\"\n v-model=\"userHighlightColor\"\n class=\"userHighlightText\"\n type=\"text\"\n >\n <input\n v-if=\"userHighlightType !== 'disabled'\"\n :id=\"'userHighlightColor'+user.id\"\n v-model=\"userHighlightColor\"\n class=\"userHighlightCl\"\n type=\"color\"\n >\n {{ ' ' }}\n <Select\n :id=\"'userHighlightSel'+user.id\"\n v-model=\"userHighlightType\"\n class=\"userHighlightSel\"\n >\n <option value=\"disabled\">\n {{ $t('user_card.highlight.disabled') }}\n </option>\n <option value=\"solid\">\n {{ $t('user_card.highlight.solid') }}\n </option>\n <option value=\"striped\">\n {{ $t('user_card.highlight.striped') }}\n </option>\n <option value=\"side\">\n {{ $t('user_card.highlight.side') }}\n </option>\n </Select>\n </div>\n </div>\n <div\n v-if=\"loggedIn && isOtherUser\"\n class=\"user-interactions\"\n >\n <div class=\"btn-group\">\n <FollowButton\n :relationship=\"relationship\"\n :user=\"user\"\n />\n <template v-if=\"relationship.following\">\n <ProgressButton\n v-if=\"!relationship.subscribing\"\n class=\"btn button-default\"\n :click=\"subscribeUser\"\n :title=\"$t('user_card.subscribe')\"\n >\n <FAIcon icon=\"bell\" />\n </ProgressButton>\n <ProgressButton\n v-else\n class=\"btn button-default toggled\"\n :click=\"unsubscribeUser\"\n :title=\"$t('user_card.unsubscribe')\"\n >\n <FALayers>\n <FAIcon\n icon=\"rss\"\n transform=\"left-5 shrink-6 up-3 rotate-20\"\n flip=\"horizontal\"\n />\n <FAIcon\n icon=\"rss\"\n transform=\"right-5 shrink-6 up-3 rotate-20\"\n />\n <FAIcon icon=\"bell\" />\n </FALayers>\n </ProgressButton>\n </template>\n </div>\n <div>\n <button\n v-if=\"relationship.muting\"\n class=\"btn button-default btn-block toggled\"\n :disabled=\"user.deactivated\"\n @click=\"unmuteUser\"\n >\n {{ $t('user_card.muted') }}\n </button>\n <button\n v-else\n class=\"btn button-default btn-block\"\n :disabled=\"user.deactivated\"\n @click=\"muteUser\"\n >\n {{ $t('user_card.mute') }}\n </button>\n </div>\n <div>\n <button\n class=\"btn button-default btn-block\"\n :disabled=\"user.deactivated\"\n @click=\"mentionUser\"\n >\n {{ $t('user_card.mention') }}\n </button>\n </div>\n <ModerationTools\n v-if=\"showModerationMenu\"\n :user=\"user\"\n />\n </div>\n <div\n v-if=\"!loggedIn && user.is_local\"\n class=\"user-interactions\"\n >\n <RemoteFollow :user=\"user\" />\n </div>\n <UserNote\n v-if=\"loggedIn && isOtherUser && (hasNote || (hasNoteEditor && supportsNote))\"\n :user=\"user\"\n :relationship=\"relationship\"\n :editable=\"hasNoteEditor\"\n />\n </div>\n </div>\n <div\n v-if=\"!hideBio\"\n class=\"panel-body\"\n >\n <div\n v-if=\"!mergedConfig.hideUserStats && switcher\"\n class=\"user-counts\"\n >\n <div\n class=\"user-count\"\n @click.prevent=\"setProfileView('statuses')\"\n >\n <h5>{{ $t('user_card.statuses') }}</h5>\n <span>{{ user.statuses_count }} <br></span>\n </div>\n <div\n class=\"user-count\"\n @click.prevent=\"setProfileView('friends')\"\n >\n <h5>{{ $t('user_card.followees') }}</h5>\n <span>{{ hideFollowsCount ? $t('user_card.hidden') : user.friends_count }}</span>\n </div>\n <div\n class=\"user-count\"\n @click.prevent=\"setProfileView('followers')\"\n >\n <h5>{{ $t('user_card.followers') }}</h5>\n <span>{{ hideFollowersCount ? $t('user_card.hidden') : user.followers_count }}</span>\n </div>\n </div>\n <RichContent\n v-if=\"!hideBio\"\n class=\"user-card-bio\"\n :html=\"user.description_html\"\n :emoji=\"user.emoji\"\n :handle-links=\"true\"\n />\n </div>\n <teleport to=\"#modal\">\n <confirm-modal\n v-if=\"showingConfirmMute\"\n :title=\"$t('user_card.mute_confirm_title')\"\n :confirm-text=\"$t('user_card.mute_confirm_accept_button')\"\n :cancel-text=\"$t('user_card.mute_confirm_cancel_button')\"\n @accepted=\"doMuteUser\"\n @cancelled=\"hideConfirmMute\"\n >\n <i18n-t\n keypath=\"user_card.mute_confirm\"\n tag=\"div\"\n >\n <template #user>\n <span\n v-text=\"user.screen_name_ui\"\n />\n </template>\n </i18n-t>\n <div\n class=\"mute-expiry\"\n >\n <label>\n {{ $t('user_card.mute_duration_prompt') }}\n </label>\n <input\n v-model=\"muteExpiryAmount\"\n type=\"number\"\n class=\"expiry-amount hide-number-spinner\"\n :min=\"0\"\n >\n <Select\n v-model=\"muteExpiryUnit\"\n unstyled=\"true\"\n class=\"expiry-unit\"\n >\n <option\n v-for=\"unit in muteExpiryUnits\"\n :key=\"unit\"\n :value=\"unit\"\n >\n {{ $t(`time.${unit}_short`, ['']) }}\n </option>\n </Select>\n </div>\n </confirm-modal>\n </teleport>\n </div>\n</template>\n\n<script src=\"./user_card.js\"></script>\n\n<style lang=\"scss\" src=\"./user_card.scss\" />\n","<template>\n <div>\n <Popover\n trigger=\"click\"\n class=\"moderation-tools-popover\"\n placement=\"bottom\"\n :offset=\"{ y: 5 }\"\n @show=\"setToggled(true)\"\n @close=\"setToggled(false)\"\n >\n <template #content>\n <div class=\"dropdown-menu\">\n <span v-if=\"canGrantRole\">\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleRight(&quot;admin&quot;)\"\n >\n {{ $t(!!user.rights.admin ? 'user_card.admin_menu.revoke_admin' : 'user_card.admin_menu.grant_admin') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleRight(&quot;moderator&quot;)\"\n >\n {{ $t(!!user.rights.moderator ? 'user_card.admin_menu.revoke_moderator' : 'user_card.admin_menu.grant_moderator') }}\n </button>\n <div\n v-if=\"canChangeActivationState || canDeleteAccount\"\n role=\"separator\"\n class=\"dropdown-divider\"\n />\n </span>\n <button\n v-if=\"canChangeActivationState\"\n class=\"button-default dropdown-item\"\n @click=\"toggleActivationStatus()\"\n >\n {{ $t(!!user.deactivated ? 'user_card.admin_menu.activate_account' : 'user_card.admin_menu.deactivate_account') }}\n </button>\n <button\n v-if=\"canDeleteAccount\"\n class=\"button-default dropdown-item\"\n @click=\"deleteUserDialog(true)\"\n >\n {{ $t('user_card.admin_menu.delete_account') }}\n </button>\n <div\n v-if=\"canUseTagPolicy\"\n role=\"separator\"\n class=\"dropdown-divider\"\n />\n <span v-if=\"canUseTagPolicy\">\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleTag(tags.FORCE_NSFW)\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': hasTag(tags.FORCE_NSFW) }\"\n />\n {{ $t('user_card.admin_menu.force_nsfw') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleTag(tags.STRIP_MEDIA)\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': hasTag(tags.STRIP_MEDIA) }\"\n />\n {{ $t('user_card.admin_menu.strip_media') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleTag(tags.FORCE_UNLISTED)\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': hasTag(tags.FORCE_UNLISTED) }\"\n />\n {{ $t('user_card.admin_menu.force_unlisted') }}\n </button>\n <button\n class=\"button-default dropdown-item\"\n @click=\"toggleTag(tags.SANDBOX)\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': hasTag(tags.SANDBOX) }\"\n />\n {{ $t('user_card.admin_menu.sandbox') }}\n </button>\n <button\n v-if=\"user.is_local\"\n class=\"button-default dropdown-item\"\n @click=\"toggleTag(tags.DISABLE_REMOTE_SUBSCRIPTION)\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': hasTag(tags.DISABLE_REMOTE_SUBSCRIPTION) }\"\n />\n {{ $t('user_card.admin_menu.disable_remote_subscription') }}\n </button>\n <button\n v-if=\"user.is_local\"\n class=\"button-default dropdown-item\"\n @click=\"toggleTag(tags.DISABLE_ANY_SUBSCRIPTION)\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': hasTag(tags.DISABLE_ANY_SUBSCRIPTION) }\"\n />\n {{ $t('user_card.admin_menu.disable_any_subscription') }}\n </button>\n <button\n v-if=\"user.is_local\"\n class=\"button-default dropdown-item\"\n @click=\"toggleTag(tags.QUARANTINE)\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': hasTag(tags.QUARANTINE) }\"\n />\n {{ $t('user_card.admin_menu.quarantine') }}\n </button>\n </span>\n </div>\n </template>\n <template #trigger>\n <button\n class=\"btn button-default btn-block moderation-tools-button\"\n :class=\"{ toggled }\"\n >\n {{ $t('user_card.admin_menu.moderation') }}\n <FAIcon icon=\"chevron-down\" />\n </button>\n </template>\n </Popover>\n <teleport to=\"#modal\">\n <DialogModal\n v-if=\"showDeleteUserDialog\"\n :on-cancel=\"deleteUserDialog.bind(this, false)\"\n >\n <template #header>\n {{ $t('user_card.admin_menu.delete_user') }}\n </template>\n <p>{{ $t('user_card.admin_menu.delete_user_confirmation') }}</p>\n <template #footer>\n <button\n class=\"btn button-default\"\n @click=\"deleteUserDialog(false)\"\n >\n {{ $t('general.cancel') }}\n </button>\n <button\n class=\"btn button-default danger\"\n @click=\"deleteUser()\"\n >\n {{ $t('user_card.admin_menu.delete_user') }}\n </button>\n </template>\n </DialogModal>\n </teleport>\n </div>\n</template>\n\n<script src=\"./moderation_tools.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.moderation-tools-popover {\n height: 100%;\n\n .trigger {\n /* stylelint-disable-next-line declaration-no-important */\n display: flex !important;\n height: 100%;\n }\n}\n\n.moderation-tools-button {\n svg,\n i {\n font-size: 0.8em;\n }\n}\n</style>\n","import { library } from '@fortawesome/fontawesome-svg-core'\nimport { faChevronDown } from '@fortawesome/free-solid-svg-icons'\n\nimport DialogModal from '../dialog_modal/dialog_modal.vue'\nimport Popover from '../popover/popover.vue'\n\nlibrary.add(faChevronDown)\n\nconst FORCE_NSFW = 'mrf_tag:media-force-nsfw'\nconst STRIP_MEDIA = 'mrf_tag:media-strip'\nconst FORCE_UNLISTED = 'mrf_tag:force-unlisted'\nconst DISABLE_REMOTE_SUBSCRIPTION = 'mrf_tag:disable-remote-subscription'\nconst DISABLE_ANY_SUBSCRIPTION = 'mrf_tag:disable-any-subscription'\nconst SANDBOX = 'mrf_tag:sandbox'\nconst QUARANTINE = 'mrf_tag:quarantine'\n\nconst ModerationTools = {\n props: [\n 'user'\n ],\n data () {\n return {\n tags: {\n FORCE_NSFW,\n STRIP_MEDIA,\n FORCE_UNLISTED,\n DISABLE_REMOTE_SUBSCRIPTION,\n DISABLE_ANY_SUBSCRIPTION,\n SANDBOX,\n QUARANTINE\n },\n showDeleteUserDialog: false,\n toggled: false\n }\n },\n components: {\n DialogModal,\n Popover\n },\n computed: {\n tagsSet () {\n return new Set(this.user.tags)\n },\n canGrantRole () {\n return this.user.is_local && !this.user.deactivated && this.$store.state.users.currentUser.role === 'admin'\n },\n canChangeActivationState () {\n return this.privileged('users_manage_activation_state')\n },\n canDeleteAccount () {\n return this.privileged('users_delete')\n },\n canUseTagPolicy () {\n return this.$store.state.instance.tagPolicyAvailable && this.privileged('users_manage_tags')\n }\n },\n methods: {\n hasTag (tagName) {\n return this.tagsSet.has(tagName)\n },\n privileged (privilege) {\n return this.$store.state.users.currentUser.privileges.includes(privilege)\n },\n toggleTag (tag) {\n const store = this.$store\n if (this.tagsSet.has(tag)) {\n store.state.api.backendInteractor.untagUser({ user: this.user, tag }).then(response => {\n if (!response.ok) { return }\n store.commit('untagUser', { user: this.user, tag })\n })\n } else {\n store.state.api.backendInteractor.tagUser({ user: this.user, tag }).then(response => {\n if (!response.ok) { return }\n store.commit('tagUser', { user: this.user, tag })\n })\n }\n },\n toggleRight (right) {\n const store = this.$store\n if (this.user.rights[right]) {\n store.state.api.backendInteractor.deleteRight({ user: this.user, right }).then(response => {\n if (!response.ok) { return }\n store.commit('updateRight', { user: this.user, right, value: false })\n })\n } else {\n store.state.api.backendInteractor.addRight({ user: this.user, right }).then(response => {\n if (!response.ok) { return }\n store.commit('updateRight', { user: this.user, right, value: true })\n })\n }\n },\n toggleActivationStatus () {\n this.$store.dispatch('toggleActivationStatus', { user: this.user })\n },\n deleteUserDialog (show) {\n this.showDeleteUserDialog = show\n },\n deleteUser () {\n const store = this.$store\n const user = this.user\n const { id, name } = user\n store.state.api.backendInteractor.deleteUser({ user })\n .then(e => {\n this.$store.dispatch('markStatusesAsDeleted', status => user.id === status.user.id)\n const isProfile = this.$route.name === 'external-user-profile' || this.$route.name === 'user-profile'\n const isTargetUser = this.$route.params.name === name || this.$route.params.id === id\n if (isProfile && isTargetUser) {\n window.history.back()\n }\n })\n },\n setToggled (value) {\n this.toggled = value\n }\n }\n}\n\nexport default ModerationTools\n","import { render } from \"./moderation_tools.vue?vue&type=template&id=352f537c\"\nimport script from \"./moderation_tools.js?vue&type=script&lang=js\"\nexport * from \"./moderation_tools.js?vue&type=script&lang=js\"\n\nimport \"./moderation_tools.vue?vue&type=style&index=0&id=352f537c&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"AccountActions\">\n <Popover\n trigger=\"click\"\n placement=\"bottom\"\n :bound-to=\"{ x: 'container' }\"\n remove-padding\n >\n <template #content>\n <div class=\"dropdown-menu\">\n <template v-if=\"relationship.following\">\n <button\n v-if=\"relationship.showing_reblogs\"\n class=\"btn button-default dropdown-item\"\n @click=\"hideRepeats\"\n >\n {{ $t('user_card.hide_repeats') }}\n </button>\n <button\n v-if=\"!relationship.showing_reblogs\"\n class=\"btn button-default dropdown-item\"\n @click=\"showRepeats\"\n >\n {{ $t('user_card.show_repeats') }}\n </button>\n <div\n role=\"separator\"\n class=\"dropdown-divider\"\n />\n </template>\n <UserListMenu :user=\"user\" />\n <button\n v-if=\"relationship.followed_by\"\n class=\"btn button-default btn-block dropdown-item\"\n @click=\"removeUserFromFollowers\"\n >\n {{ $t('user_card.remove_follower') }}\n </button>\n <button\n v-if=\"relationship.blocking\"\n class=\"btn button-default btn-block dropdown-item\"\n @click=\"unblockUser\"\n >\n {{ $t('user_card.unblock') }}\n </button>\n <button\n v-else\n class=\"btn button-default btn-block dropdown-item\"\n @click=\"blockUser\"\n >\n {{ $t('user_card.block') }}\n </button>\n <button\n class=\"btn button-default btn-block dropdown-item\"\n @click=\"reportUser\"\n >\n {{ $t('user_card.report') }}\n </button>\n <button\n v-if=\"pleromaChatMessagesAvailable\"\n class=\"btn button-default btn-block dropdown-item\"\n @click=\"openChat\"\n >\n {{ $t('user_card.message') }}\n </button>\n </div>\n </template>\n <template #trigger>\n <button class=\"button-unstyled ellipsis-button\">\n <FAIcon\n class=\"icon\"\n icon=\"ellipsis-v\"\n />\n </button>\n </template>\n </Popover>\n <teleport to=\"#modal\">\n <confirm-modal\n v-if=\"showingConfirmBlock\"\n :title=\"$t('user_card.block_confirm_title')\"\n :confirm-text=\"$t('user_card.block_confirm_accept_button')\"\n :cancel-text=\"$t('user_card.block_confirm_cancel_button')\"\n @accepted=\"doBlockUser\"\n @cancelled=\"hideConfirmBlock\"\n >\n <i18n-t\n keypath=\"user_card.block_confirm\"\n tag=\"span\"\n >\n <template #user>\n <span\n v-text=\"user.screen_name_ui\"\n />\n </template>\n </i18n-t>\n </confirm-modal>\n </teleport>\n <teleport to=\"#modal\">\n <confirm-modal\n v-if=\"showingConfirmRemoveFollower\"\n :title=\"$t('user_card.remove_follower_confirm_title')\"\n :confirm-text=\"$t('user_card.remove_follower_confirm_accept_button')\"\n :cancel-text=\"$t('user_card.remove_follower_confirm_cancel_button')\"\n @accepted=\"doRemoveUserFromFollowers\"\n @cancelled=\"hideConfirmRemoveUserFromFollowers\"\n >\n <i18n-t\n keypath=\"user_card.remove_follower_confirm\"\n tag=\"span\"\n >\n <template #user>\n <span\n v-text=\"user.screen_name_ui\"\n />\n </template>\n </i18n-t>\n </confirm-modal>\n </teleport>\n </div>\n</template>\n\n<script src=\"./account_actions.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.AccountActions {\n .ellipsis-button {\n width: 2.5em;\n margin: -0.5em 0;\n padding: 0.5em 0;\n text-align: center;\n\n &:not(:hover) .icon {\n color: $fallback--lightText;\n color: var(--lightText, $fallback--lightText);\n }\n }\n}\n</style>\n","<template>\n <div class=\"UserListMenu\">\n <Popover\n trigger=\"hover\"\n placement=\"left\"\n remove-padding\n >\n <template #content>\n <div class=\"dropdown-menu\">\n <button\n v-for=\"list in lists\"\n :key=\"list.id\"\n class=\"button-default dropdown-item\"\n @click=\"toggleList(list.id)\"\n >\n <span\n class=\"menu-checkbox\"\n :class=\"{ 'menu-checkbox-checked': list.inList }\"\n />\n {{ list.title }}\n </button>\n </div>\n </template>\n <template #trigger>\n <button class=\"btn button-default dropdown-item -has-submenu\">\n {{ $t('lists.manage_lists') }}\n <FAIcon\n class=\"chevron-icon\"\n size=\"lg\"\n icon=\"chevron-right\"\n />\n </button>\n </template>\n </Popover>\n </div>\n</template>\n\n<script src=\"./user_list_menu.js\"></script>\n","import { library } from '@fortawesome/fontawesome-svg-core'\nimport { faChevronRight } from '@fortawesome/free-solid-svg-icons'\nimport { mapState } from 'vuex'\n\nimport DialogModal from '../dialog_modal/dialog_modal.vue'\nimport Popover from '../popover/popover.vue'\n\nlibrary.add(faChevronRight)\n\nconst UserListMenu = {\n props: [\n 'user'\n ],\n data () {\n return {}\n },\n components: {\n DialogModal,\n Popover\n },\n created () {\n this.$store.dispatch('fetchUserInLists', this.user.id)\n },\n computed: {\n ...mapState({\n allLists: state => state.lists.allLists\n }),\n inListsSet () {\n return new Set(this.user.inLists.map(x => x.id))\n },\n lists () {\n if (!this.user.inLists) return []\n return this.allLists.map(list => ({\n ...list,\n inList: this.inListsSet.has(list.id)\n }))\n }\n },\n methods: {\n toggleList (listId) {\n if (this.inListsSet.has(listId)) {\n this.$store.dispatch('removeListAccount', { accountId: this.user.id, listId }).then((response) => {\n if (!response.ok) { return }\n this.$store.dispatch('fetchUserInLists', this.user.id)\n })\n } else {\n this.$store.dispatch('addListAccount', { accountId: this.user.id, listId }).then((response) => {\n if (!response.ok) { return }\n this.$store.dispatch('fetchUserInLists', this.user.id)\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 UserListMenu\n","import { render } from \"./user_list_menu.vue?vue&type=template&id=aeea2640\"\nimport script from \"./user_list_menu.js?vue&type=script&lang=js\"\nexport * from \"./user_list_menu.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { mapState } from 'vuex'\nimport ProgressButton from '../progress_button/progress_button.vue'\nimport Popover from '../popover/popover.vue'\nimport UserListMenu from 'src/components/user_list_menu/user_list_menu.vue'\nimport ConfirmModal from '../confirm_modal/confirm_modal.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faEllipsisV\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faEllipsisV\n)\n\nconst AccountActions = {\n props: [\n 'user', 'relationship'\n ],\n data () {\n return {\n showingConfirmBlock: false,\n showingConfirmRemoveFollower: false\n }\n },\n components: {\n ProgressButton,\n Popover,\n UserListMenu,\n ConfirmModal\n },\n methods: {\n showConfirmBlock () {\n this.showingConfirmBlock = true\n },\n hideConfirmBlock () {\n this.showingConfirmBlock = false\n },\n showConfirmRemoveUserFromFollowers () {\n this.showingConfirmRemoveFollower = true\n },\n hideConfirmRemoveUserFromFollowers () {\n this.showingConfirmRemoveFollower = false\n },\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 if (!this.shouldConfirmBlock) {\n this.doBlockUser()\n } else {\n this.showConfirmBlock()\n }\n },\n doBlockUser () {\n this.$store.dispatch('blockUser', this.user.id)\n this.hideConfirmBlock()\n },\n unblockUser () {\n this.$store.dispatch('unblockUser', this.user.id)\n },\n removeUserFromFollowers () {\n if (!this.shouldConfirmRemoveUserFromFollowers) {\n this.doRemoveUserFromFollowers()\n } else {\n this.showConfirmRemoveUserFromFollowers()\n }\n },\n doRemoveUserFromFollowers () {\n this.$store.dispatch('removeUserFromFollowers', this.user.id)\n this.hideConfirmRemoveUserFromFollowers()\n },\n reportUser () {\n this.$store.dispatch('openUserReportingModal', { userId: this.user.id })\n },\n openChat () {\n this.$router.push({\n name: 'chat',\n params: { username: this.$store.state.users.currentUser.screen_name, recipient_id: this.user.id }\n })\n }\n },\n computed: {\n shouldConfirmBlock () {\n return this.$store.getters.mergedConfig.modalOnBlock\n },\n shouldConfirmRemoveUserFromFollowers () {\n return this.$store.getters.mergedConfig.modalOnRemoveUserFromFollowers\n },\n ...mapState({\n pleromaChatMessagesAvailable: state => state.instance.pleromaChatMessagesAvailable\n })\n }\n}\n\nexport default AccountActions\n","import { render } from \"./account_actions.vue?vue&type=template&id=2d1f537d\"\nimport script from \"./account_actions.js?vue&type=script&lang=js\"\nexport * from \"./account_actions.js?vue&type=script&lang=js\"\n\nimport \"./account_actions.vue?vue&type=style&index=0&id=2d1f537d&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n class=\"user-note\"\n >\n <div class=\"heading\">\n <span>{{ $t('user_card.note') }}</span>\n <div class=\"buttons\">\n <button\n v-show=\"!editing && editable\"\n class=\"button-default btn\"\n @click=\"startEditing\"\n >\n {{ $t('user_card.edit_note') }}\n </button>\n <button\n v-show=\"editing\"\n class=\"button-default btn\"\n :disabled=\"frozen\"\n @click=\"finalizeEditing\"\n >\n {{ $t('user_card.edit_note_apply') }}\n </button>\n <button\n v-show=\"editing\"\n class=\"button-default btn\"\n :disabled=\"frozen\"\n @click=\"cancelEditing\"\n >\n {{ $t('user_card.edit_note_cancel') }}\n </button>\n </div>\n </div>\n <textarea\n v-show=\"editing\"\n v-model=\"localNote\"\n class=\"note-text\"\n />\n <span\n v-show=\"!editing\"\n class=\"note-text\"\n :class=\"{ '-blank': !relationship.note }\"\n >\n {{ relationship.note || $t('user_card.note_blank') }}\n </span>\n </div>\n</template>\n\n<script src=\"./user_note.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n.user-note {\n display: flex;\n flex-direction: column;\n\n .heading {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 0.75em;\n\n .btn {\n min-width: 95px;\n }\n\n .buttons {\n display: flex;\n flex-direction: row;\n justify-content: right;\n\n .btn {\n margin-left: 0.5em;\n }\n }\n }\n\n .note-text {\n align-self: stretch;\n }\n\n .note-text.-blank {\n font-style: italic;\n color: var(--faint, $fallback--faint);\n }\n}\n</style>\n","const UserNote = {\n props: {\n user: Object,\n relationship: Object,\n editable: Boolean\n },\n data () {\n return {\n localNote: '',\n editing: false,\n frozen: false\n }\n },\n computed: {\n shouldShow () {\n return this.relationship.note || this.editing\n }\n },\n methods: {\n startEditing () {\n this.localNote = this.relationship.note\n this.editing = true\n },\n cancelEditing () {\n this.editing = false\n },\n finalizeEditing () {\n this.frozen = true\n\n this.$store.dispatch('editUserNote', {\n id: this.user.id,\n comment: this.localNote\n })\n .then(() => {\n this.frozen = false\n this.editing = false\n })\n .catch(() => {\n this.frozen = false\n })\n }\n }\n}\n\nexport default UserNote\n","import { render } from \"./user_note.vue?vue&type=template&id=3c543a1e\"\nimport script from \"./user_note.js?vue&type=script&lang=js\"\nexport * from \"./user_note.js?vue&type=script&lang=js\"\n\nimport \"./user_note.vue?vue&type=style&index=0&id=3c543a1e&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { unitToSeconds } from 'src/services/date_utils/date_utils.js'\nimport 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 UserNote from '../user_note/user_note.vue'\nimport Select from '../select/select.vue'\nimport UserLink from '../user_link/user_link.vue'\nimport RichContent from 'src/components/rich_content/rich_content.jsx'\nimport ConfirmModal from '../confirm_modal/confirm_modal.vue'\nimport generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\nimport { mapGetters } from 'vuex'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faBell,\n faRss,\n faSearchPlus,\n faExternalLinkAlt,\n faEdit,\n faTimes,\n faExpandAlt\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faRss,\n faBell,\n faSearchPlus,\n faExternalLinkAlt,\n faEdit,\n faTimes,\n faExpandAlt\n)\n\nexport default {\n props: [\n 'userId',\n 'switcher',\n 'selected',\n 'hideBio',\n 'rounded',\n 'bordered',\n 'avatarAction', // default - open profile, 'zoom' - zoom, function - call function\n 'onClose',\n 'hasNoteEditor'\n ],\n data () {\n return {\n followRequestInProgress: false,\n betterShadow: this.$store.state.interface.browserSupport.cssFilter,\n showingConfirmMute: false,\n muteExpiryAmount: 0,\n muteExpiryUnit: 'minutes'\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 '-rounded-t': this.rounded === 'top', // set border-top-left-radius and border-top-right-radius\n '-rounded': this.rounded === true, // set border-radius for all sides\n '-bordered': this.bordered === true, // set border for all sides\n '-popover': !!this.onClose // set popover rounding\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 showModerationMenu () {\n const privileges = this.loggedIn.privileges\n return this.loggedIn.role === 'admin' || privileges.includes('users_manage_activation_state') || privileges.includes('users_delete') || privileges.includes('users_manage_tags')\n },\n hasNote () {\n return this.relationship.note\n },\n supportsNote () {\n return 'note' in this.relationship\n },\n shouldConfirmMute () {\n return this.mergedConfig.modalOnMute\n },\n muteExpiryUnits () {\n return ['minutes', 'hours', 'days']\n },\n ...mapGetters(['mergedConfig'])\n },\n components: {\n UserAvatar,\n RemoteFollow,\n ModerationTools,\n AccountActions,\n ProgressButton,\n FollowButton,\n Select,\n RichContent,\n UserLink,\n UserNote,\n ConfirmModal\n },\n methods: {\n showConfirmMute () {\n this.showingConfirmMute = true\n },\n hideConfirmMute () {\n this.showingConfirmMute = false\n },\n muteUser () {\n if (!this.shouldConfirmMute) {\n this.doMuteUser()\n } else {\n this.showConfirmMute()\n }\n },\n doMuteUser () {\n this.$store.dispatch('muteUser', {\n id: this.user.id,\n expiresIn: this.shouldConfirmMute ? unitToSeconds(this.muteExpiryUnit, this.muteExpiryAmount) : 0\n })\n this.hideConfirmMute()\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 openProfileTab () {\n this.$store.dispatch('openSettingsModalTab', 'profile')\n },\n zoomAvatar () {\n const attachment = {\n url: this.user.profile_image_url_original,\n mimetype: 'image'\n }\n this.$store.dispatch('setMedia', [attachment])\n this.$store.dispatch('setCurrentMedia', attachment)\n },\n mentionUser () {\n this.$store.dispatch('openPostStatusModal', { replyTo: true, repliedUser: this.user })\n },\n onAvatarClickHandler (e) {\n if (this.onAvatarClick) {\n e.preventDefault()\n this.onAvatarClick()\n }\n }\n }\n}\n","import { render } from \"./user_card.vue?vue&type=template&id=bc098958\"\nimport script from \"./user_card.js?vue&type=script&lang=js\"\nexport * from \"./user_card.js?vue&type=script&lang=js\"\n\nimport \"./user_card.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <router-link\n :title=\"user.screen_name_ui\"\n :to=\"userProfileLink(user)\"\n >\n {{ at ? '@' : '' }}{{ user.screen_name_ui }}<UnicodeDomainIndicator\n :user=\"user\"\n />\n </router-link>\n</template>\n\n<script>\nimport UnicodeDomainIndicator from '../unicode_domain_indicator/unicode_domain_indicator.vue'\nimport generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'\n\nconst UserLink = {\n props: {\n user: Object,\n at: {\n type: Boolean,\n default: true\n }\n },\n components: {\n UnicodeDomainIndicator\n },\n methods: {\n userProfileLink (user) {\n return generateProfileLink(\n user.id, user.screen_name,\n this.$store.state.instance.restrictedNicknames\n )\n }\n }\n}\n\nexport default UserLink\n</script>\n","import { render } from \"./user_link.vue?vue&type=template&id=2cae9070\"\nimport script from \"./user_link.vue?vue&type=script&lang=js\"\nexport * from \"./user_link.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import UserCard from '../user_card/user_card.vue'\nimport { defineAsyncComponent } from 'vue'\n\nconst UserPopover = {\n name: 'UserPopover',\n props: [\n 'userId', 'overlayCenters', 'disabled', 'overlayCentersSelector'\n ],\n components: {\n UserCard,\n Popover: defineAsyncComponent(() => import('../popover/popover.vue'))\n },\n computed: {\n userPopoverAvatarAction () {\n return this.$store.getters.mergedConfig.userPopoverAvatarAction\n },\n userPopoverOverlay () {\n return this.$store.getters.mergedConfig.userPopoverOverlay\n }\n }\n}\n\nexport default UserPopover\n","import { render } from \"./user_popover.vue?vue&type=template&id=6d5beeb8\"\nimport script from \"./user_popover.js?vue&type=script&lang=js\"\nexport * from \"./user_popover.js?vue&type=script&lang=js\"\n\nimport \"./user_popover.vue?vue&type=style&index=0&id=6d5beeb8&lang=scss\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <Popover\n trigger=\"click\"\n popover-class=\"popover-default user-popover\"\n :overlay-centers-selector=\"overlayCentersSelector || '.user-info .Avatar'\"\n :overlay-centers=\"overlayCenters && userPopoverOverlay\"\n :disabled=\"disabled\"\n >\n <template #trigger>\n <slot />\n </template>\n <template #content=\"{close}\">\n <UserCard\n class=\"user-popover\"\n :user-id=\"userId\"\n :hide-bio=\"true\"\n :avatar-action=\"userPopoverAvatarAction == 'close' ? close : userPopoverAvatarAction\"\n :on-close=\"close\"\n />\n </template>\n </Popover>\n</template>\n\n<script src=\"./user_popover.js\"></script>\n\n<style lang=\"scss\">\n@import \"../../variables\";\n\n/* popover styles load on-demand, so we need to override */\n/* stylelint-disable block-no-empty */\n.user-popover.popover {\n}\n/* stylelint-enable block-no-empty */\n\n</style>\n","\nconst VideoAttachment = {\n props: ['attachment', 'controls'],\n data () {\n return {\n blocksSuspend: false,\n // Start from true because removing \"loop\" property seems buggy in Vue\n hasAudio: true\n }\n },\n computed: {\n loopVideo () {\n if (this.$store.getters.mergedConfig.loopVideoSilentOnly) {\n return !this.hasAudio\n }\n return this.$store.getters.mergedConfig.loopVideo\n }\n },\n methods: {\n onPlaying (e) {\n this.setHasAudio(e)\n if (this.loopVideo) {\n this.$emit('play', { looping: true })\n return\n }\n this.$emit('play')\n },\n onPaused (e) {\n this.$emit('pause')\n },\n setHasAudio (e) {\n const target = e.srcElement || e.target\n // If hasAudio is false, we've already marked this video to not have audio,\n // a video can't gain audio out of nowhere so don't bother checking again.\n if (!this.hasAudio) return\n if (typeof target.webkitAudioDecodedByteCount !== 'undefined') {\n // non-zero if video has audio track\n if (target.webkitAudioDecodedByteCount > 0) return\n }\n if (typeof target.mozHasAudio !== 'undefined') {\n // true if video has audio track\n if (target.mozHasAudio) return\n }\n if (typeof target.audioTracks !== 'undefined') {\n if (target.audioTracks.length > 0) return\n }\n this.hasAudio = false\n }\n }\n}\n\nexport default VideoAttachment\n","import { render } from \"./video_attachment.vue?vue&type=template&id=dda2841a\"\nimport script from \"./video_attachment.js?vue&type=script&lang=js\"\nexport * from \"./video_attachment.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/builds/pleroma/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <video\n class=\"video\"\n preload=\"metadata\"\n :src=\"attachment.url\"\n :loop=\"loopVideo\"\n :controls=\"controls\"\n :alt=\"attachment.description\"\n :title=\"attachment.description\"\n playsinline\n @playing=\"onPlaying\"\n @pause=\"onPaused\"\n />\n</template>\n\n<script src=\"./video_attachment.js\"></script>\n","var map = {\n\t\"./ar.json\": [\n\t\t36224,\n\t\t7808\n\t],\n\t\"./ca.json\": [\n\t\t49394,\n\t\t6234\n\t],\n\t\"./cs.json\": [\n\t\t87436,\n\t\t7433\n\t],\n\t\"./de.json\": [\n\t\t25195,\n\t\t9459\n\t],\n\t\"./en.json\": [\n\t\t88797\n\t],\n\t\"./eo.json\": [\n\t\t97898,\n\t\t4646\n\t],\n\t\"./es.json\": [\n\t\t98559,\n\t\t3968\n\t],\n\t\"./et.json\": [\n\t\t13230,\n\t\t4451\n\t],\n\t\"./eu.json\": [\n\t\t84826,\n\t\t4542\n\t],\n\t\"./fa.json\": [\n\t\t52006,\n\t\t2953\n\t],\n\t\"./fi.json\": [\n\t\t70823,\n\t\t9738\n\t],\n\t\"./fr.json\": [\n\t\t61341,\n\t\t3746\n\t],\n\t\"./ga.json\": [\n\t\t41647,\n\t\t830\n\t],\n\t\"./he.json\": [\n\t\t92215,\n\t\t379\n\t],\n\t\"./hu.json\": [\n\t\t95028,\n\t\t5494\n\t],\n\t\"./id.json\": [\n\t\t62263,\n\t\t2513\n\t],\n\t\"./it.json\": [\n\t\t2533,\n\t\t1159\n\t],\n\t\"./ja_easy.json\": [\n\t\t8439,\n\t\t8714\n\t],\n\t\"./ja_pedantic.json\": [\n\t\t22838,\n\t\t325\n\t],\n\t\"./ko.json\": [\n\t\t10707,\n\t\t9670\n\t],\n\t\"./nan-TW.json\": [\n\t\t42101,\n\t\t9862\n\t],\n\t\"./nb.json\": [\n\t\t72358,\n\t\t7845\n\t],\n\t\"./nl.json\": [\n\t\t49922,\n\t\t6256\n\t],\n\t\"./oc.json\": [\n\t\t47297,\n\t\t617\n\t],\n\t\"./pl.json\": [\n\t\t82098,\n\t\t5571\n\t],\n\t\"./pt.json\": [\n\t\t94465,\n\t\t4047\n\t],\n\t\"./ro.json\": [\n\t\t64367,\n\t\t6342\n\t],\n\t\"./ru.json\": [\n\t\t73289,\n\t\t5964\n\t],\n\t\"./sk.json\": [\n\t\t31478,\n\t\t1547\n\t],\n\t\"./te.json\": [\n\t\t32781,\n\t\t2044\n\t],\n\t\"./uk.json\": [\n\t\t8411,\n\t\t5253\n\t],\n\t\"./vi.json\": [\n\t\t6294,\n\t\t4975\n\t],\n\t\"./zh.json\": [\n\t\t4425,\n\t\t5929\n\t],\n\t\"./zh_Hant.json\": [\n\t\t37644,\n\t\t6544\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(() => {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 27650;\nmodule.exports = webpackAsyncContext;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + ({\"50\":\"emoji-annotations/en_GB-json\",\"227\":\"emoji-annotations/ha-json\",\"278\":\"emoji-annotations/kn-json\",\"313\":\"emoji-annotations/tg-json\",\"325\":\"i18n/ja_pedantic-json\",\"346\":\"emoji-annotations/rw-json\",\"379\":\"i18n/he-json\",\"420\":\"emoji-annotations/fi-json\",\"457\":\"emoji-annotations/zh-json\",\"577\":\"emoji-annotations/en_001-json\",\"617\":\"i18n/oc-json\",\"625\":\"emoji-annotations/so-json\",\"678\":\"emoji-annotations/ps-json\",\"786\":\"emoji-annotations/xh-json\",\"830\":\"i18n/ga-json\",\"1012\":\"emoji-annotations/or-json\",\"1044\":\"emoji-annotations/zh_Hant_HK-json\",\"1056\":\"emoji-annotations/uz-json\",\"1095\":\"emoji-annotations/pl-json\",\"1159\":\"i18n/it-json\",\"1162\":\"emoji-annotations/ccp-json\",\"1236\":\"emoji-annotations/fil-json\",\"1290\":\"emoji-annotations/ja-json\",\"1404\":\"emoji-annotations/km-json\",\"1452\":\"emoji-annotations/yue-json\",\"1546\":\"emoji-annotations/pt_PT-json\",\"1547\":\"i18n/sk-json\",\"1553\":\"emoji-annotations/sl-json\",\"1584\":\"emoji-annotations/to-json\",\"1596\":\"emoji-annotations/da-json\",\"1613\":\"emoji-annotations/mai-json\",\"1780\":\"emoji-annotations/tk-json\",\"1790\":\"emoji-annotations/dsb-json\",\"1821\":\"emoji-annotations/fr_CA-json\",\"1911\":\"emoji-annotations/mr-json\",\"1959\":\"emoji-annotations/su-json\",\"2044\":\"i18n/te-json\",\"2223\":\"emoji-annotations/fr-json\",\"2243\":\"emoji-annotations/sa-json\",\"2342\":\"emoji-annotations/az-json\",\"2350\":\"emoji-annotations/sk-json\",\"2397\":\"emoji-annotations/kl-json\",\"2479\":\"emoji-annotations/jv-json\",\"2513\":\"i18n/id-json\",\"2569\":\"emoji-annotations/tt-json\",\"2599\":\"emoji-annotations/kok-json\",\"2656\":\"emoji-annotations/ckb-json\",\"2685\":\"emoji-annotations/ml-json\",\"2699\":\"emoji-annotations/es_MX-json\",\"2767\":\"emoji-annotations/zh_Hant-json\",\"2861\":\"emoji-annotations/hr-json\",\"2873\":\"emoji-annotations/kk-json\",\"2874\":\"emoji-annotations/sc-json\",\"2883\":\"emoji-annotations/ku-json\",\"2953\":\"i18n/fa-json\",\"2966\":\"emoji-annotations/ko-json\",\"2992\":\"emoji-annotations/eu-json\",\"3056\":\"emoji-annotations/hi_Latn-json\",\"3241\":\"emoji-annotations/sv-json\",\"3276\":\"emoji-annotations/et-json\",\"3313\":\"emoji-annotations/es_US-json\",\"3377\":\"emoji-annotations/as-json\",\"3568\":\"emoji-annotations/ti-json\",\"3687\":\"emoji\",\"3746\":\"i18n/fr-json\",\"3887\":\"emoji-annotations/sr-json\",\"3951\":\"emoji-annotations/th-json\",\"3968\":\"i18n/es-json\",\"3974\":\"emoji-annotations/bg-json\",\"3994\":\"emoji-annotations/sw_KE-json\",\"4047\":\"i18n/pt-json\",\"4209\":\"emoji-annotations/doi-json\",\"4354\":\"emoji-annotations/si-json\",\"4368\":\"emoji-annotations/sq-json\",\"4424\":\"emoji-annotations/yue_Hans-json\",\"4451\":\"i18n/et-json\",\"4542\":\"i18n/eu-json\",\"4571\":\"emoji-annotations/ga-json\",\"4646\":\"i18n/eo-json\",\"4691\":\"emoji-annotations/ca-json\",\"4710\":\"emoji-annotations/cs-json\",\"4718\":\"emoji-annotations/mn-json\",\"4770\":\"emoji-annotations/lb-json\",\"4785\":\"emoji-annotations/ky-json\",\"4786\":\"emoji-annotations/te-json\",\"4879\":\"emoji-annotations/en_CA-json\",\"4902\":\"emoji-annotations/hu-json\",\"4975\":\"i18n/vi-json\",\"5041\":\"emoji-annotations/pt-json\",\"5104\":\"emoji-annotations/pcm-json\",\"5115\":\"emoji-annotations/sr_Latn_BA-json\",\"5119\":\"emoji-annotations/am-json\",\"5224\":\"emoji-annotations/vi-json\",\"5253\":\"i18n/uk-json\",\"5304\":\"emoji-annotations/ha_NE-json\",\"5401\":\"emoji-annotations/mni-json\",\"5494\":\"i18n/hu-json\",\"5521\":\"emoji-annotations/fa-json\",\"5548\":\"emoji-annotations/he-json\",\"5571\":\"i18n/pl-json\",\"5728\":\"emoji-annotations/en-json\",\"5887\":\"emoji-annotations/rm-json\",\"5929\":\"i18n/zh-json\",\"5964\":\"i18n/ru-json\",\"5968\":\"emoji-annotations/hi-json\",\"6060\":\"emoji-annotations/sr_Cyrl_BA-json\",\"6068\":\"emoji-annotations/ka-json\",\"6116\":\"emoji-annotations/gd-json\",\"6126\":\"emoji-annotations/gl-json\",\"6148\":\"emoji-annotations/br-json\",\"6226\":\"emoji-annotations/de-json\",\"6234\":\"i18n/ca-json\",\"6256\":\"i18n/nl-json\",\"6272\":\"emoji-annotations/cy-json\",\"6342\":\"i18n/ro-json\",\"6344\":\"emoji-annotations/hy-json\",\"6355\":\"emoji-annotations/af-json\",\"6544\":\"i18n/zh_Hant-json\",\"6701\":\"emoji-annotations/mi-json\",\"6773\":\"emoji-annotations/nl-json\",\"6790\":\"emoji-annotations/my-json\",\"6797\":\"emoji-annotations/ur-json\",\"6826\":\"emoji-annotations/sd-json\",\"6831\":\"emoji-annotations/es-json\",\"6869\":\"emoji-annotations/chr-json\",\"6936\":\"emoji-annotations/ia-json\",\"6946\":\"emoji-annotations/pa-json\",\"7164\":\"emoji-annotations/de_CH-json\",\"7169\":\"emoji-annotations/lt-json\",\"7261\":\"emoji-annotations/gu-json\",\"7300\":\"emoji-annotations/is-json\",\"7303\":\"emoji-annotations/wo-json\",\"7304\":\"emoji-annotations/be-json\",\"7360\":\"emoji-annotations/ar_SA-json\",\"7433\":\"i18n/cs-json\",\"7464\":\"emoji-annotations/lo-json\",\"7569\":\"emoji-annotations/ast-json\",\"7585\":\"emoji-annotations/sw-json\",\"7808\":\"i18n/ar-json\",\"7845\":\"i18n/nb-json\",\"7855\":\"emoji-annotations/sat-json\",\"7879\":\"emoji-annotations/el-json\",\"7897\":\"emoji-annotations/ta-json\",\"8015\":\"emoji-annotations/hsb-json\",\"8031\":\"emoji-annotations/qu-json\",\"8134\":\"emoji-annotations/bs-json\",\"8395\":\"emoji-annotations/ru-json\",\"8681\":\"emoji-annotations/sr_Latn-json\",\"8714\":\"i18n/ja_easy-json\",\"8732\":\"emoji-annotations/yo-json\",\"8873\":\"emoji-annotations/es_419-json\",\"8898\":\"emoji-annotations/lv-json\",\"8970\":\"emoji-annotations/it-json\",\"8988\":\"emoji-annotations/en_IN-json\",\"8995\":\"emoji-annotations/fo-json\",\"9064\":\"emoji-annotations/bn-json\",\"9319\":\"emoji-annotations/zu-json\",\"9360\":\"emoji-annotations/en_AU-json\",\"9377\":\"emoji-annotations/ne-json\",\"9399\":\"emoji-annotations/mt-json\",\"9414\":\"emoji-annotations/nn-json\",\"9459\":\"i18n/de-json\",\"9465\":\"emoji-annotations/id-json\",\"9670\":\"i18n/ko-json\",\"9738\":\"i18n/fi-json\",\"9757\":\"emoji-annotations/ug-json\",\"9780\":\"emoji-annotations/kab-json\",\"9790\":\"emoji-annotations/ceb-json\",\"9862\":\"i18n/nan-TW-json\",\"9864\":\"emoji-annotations/ro-json\",\"9871\":\"emoji-annotations/uk-json\",\"9873\":\"emoji-annotations/ar-json\",\"9895\":\"emoji-annotations/ig-json\",\"9921\":\"emoji-annotations/mk-json\",\"9924\":\"emoji-annotations/ms-json\",\"9926\":\"emoji-annotations/yo_BJ-json\",\"9978\":\"emoji-annotations/tr-json\",\"9979\":\"emoji-annotations/no-json\",\"9994\":\"emoji-annotations/pa_Arab-json\"}[chunkId] || chunkId) + \".\" + {\"48\":\"b5ecdbc517423af07ca4\",\"50\":\"bd687f904492facc81d1\",\"159\":\"903e90c9de8ef6c67077\",\"227\":\"2a08912b38925c10f970\",\"278\":\"efdac8ac0cb00991ba1e\",\"313\":\"9647f559a4477d7d8e96\",\"325\":\"b52fa70f0bf89ae01cfb\",\"346\":\"031838c5374676191131\",\"379\":\"03c5d271a4034de06e6f\",\"420\":\"0f254bb4b0faaba4abcc\",\"457\":\"e42a28127d5c1aff6c85\",\"577\":\"72d8c47269350f59aa9f\",\"617\":\"4f52bf1b6e3213acc33c\",\"625\":\"f75abd16637c8924c075\",\"678\":\"a0d9eea5b81bcad11e64\",\"786\":\"21e88c05ad3113dfc7f2\",\"830\":\"3f1981817977a16f1d7e\",\"1012\":\"b007c2f6f92dcc95efac\",\"1044\":\"7eee03c705347a21c612\",\"1056\":\"ac43f4c54d4587324a20\",\"1095\":\"e9e8f1ed84dc6c169516\",\"1159\":\"99a21d5c98376af17141\",\"1162\":\"02836537ffe2b02291cb\",\"1236\":\"4fca833f178d1b889b69\",\"1290\":\"0bd51f8c40c106355b0e\",\"1404\":\"9bc922b2e0faa64b4c53\",\"1452\":\"15102c0ddfdf19bdfb4c\",\"1546\":\"c381b13e323f91b0e6b3\",\"1547\":\"d8d0eba80f94e6f55145\",\"1553\":\"a40c5548da34fce6f1d0\",\"1584\":\"50ac37d101caaf592c94\",\"1596\":\"8d074e27df71edafc543\",\"1613\":\"302386b3358f4d34f9c8\",\"1780\":\"23a9a6229829921704ad\",\"1790\":\"7635686ffd8d62264466\",\"1821\":\"59ed6b59e2ca68707292\",\"1911\":\"cb0a87d9aabf8a52161d\",\"1959\":\"daff15251020cbecea7d\",\"2044\":\"ce6db28261b2f824064f\",\"2223\":\"da49ed0d1a6622fe1c67\",\"2243\":\"21b06234a08c7469ccb4\",\"2342\":\"9a32f2941d9c4d1f834c\",\"2350\":\"5d96bdb4da82655d0314\",\"2397\":\"87ab8661b4bdecd09faf\",\"2479\":\"1c8d5ffcff22b46b6214\",\"2513\":\"e5c9ee768155f88128b9\",\"2569\":\"4c089389ba9983ec8ef7\",\"2599\":\"116e4f72db3bfb846233\",\"2656\":\"13dc83db1e15aa76051a\",\"2685\":\"3f2902a84240faff1b48\",\"2699\":\"ee359d4b611fdb1aeb33\",\"2767\":\"9cbb765c181d443828a9\",\"2861\":\"fe847ade1f18a60e513c\",\"2873\":\"a20b59d47bdfe99786ad\",\"2874\":\"c84c9c47d2e104c43e4c\",\"2883\":\"2173ed87f8d7372ee209\",\"2953\":\"a19100f6a5a9431e2adb\",\"2966\":\"d175900fe48f48ce87c8\",\"2992\":\"931b429f5fcc141549a5\",\"3056\":\"3cb73c456f31261f1908\",\"3241\":\"8b0374cbca3a77519876\",\"3276\":\"c42e3f186a55ecb061cd\",\"3313\":\"280bdb036dfd651d079a\",\"3377\":\"34cf67edc1cecd195738\",\"3568\":\"5b173bd33bb960be805b\",\"3687\":\"33eab91b64f59431137d\",\"3746\":\"36ef21ccb1203d3e65ae\",\"3887\":\"e29a20e59a708df0c6a8\",\"3951\":\"34709bae223bb9d2587c\",\"3968\":\"4a302899a65e1f67d8a2\",\"3974\":\"7c69c52572a7bf87e1db\",\"3994\":\"f3563cbeac1c158563d5\",\"4047\":\"3fc5593e030268bcd291\",\"4209\":\"7841c3f3ceb4e3da0bd1\",\"4354\":\"841b356da03623c10dbf\",\"4368\":\"bcf154ed8a6138aa089c\",\"4424\":\"cc60bb10d32fab3d8207\",\"4451\":\"580b101d6bb83a8aee75\",\"4542\":\"d2eab39b0427995fc314\",\"4571\":\"cb3f9e613a8c445aea23\",\"4646\":\"6c62eef99e850912498b\",\"4691\":\"ce029e860b10b242c6a5\",\"4710\":\"48d8bba230dc9fe6b3dc\",\"4718\":\"764169f1168d0432640f\",\"4770\":\"499c526f3a653618ea9b\",\"4785\":\"310bda579c819eda9472\",\"4786\":\"8a69a10f62cdf626244e\",\"4879\":\"5de965778a6b8a5a4bb4\",\"4902\":\"1faf52040deda872b416\",\"4975\":\"703c1e731be6e857bbf3\",\"5041\":\"2b2512ee44291bdb2ae7\",\"5104\":\"eac3a5ad0b4b5b33289d\",\"5115\":\"72933405032b81344754\",\"5119\":\"94388548f7c18233fec3\",\"5224\":\"f6a364b2add7f8c8bc67\",\"5253\":\"003908af9b15becdd382\",\"5304\":\"e4855d92aaccfdd6ba57\",\"5401\":\"7db7f76ab1ce34e3683d\",\"5494\":\"0487899ca7a7a8505ed8\",\"5521\":\"819c7f263c8594ccf4fa\",\"5548\":\"a3d7631f32182b0955a2\",\"5571\":\"c963247822381b05579b\",\"5728\":\"6c3947f7c49c3952084d\",\"5887\":\"985d4934f386fd05a75c\",\"5929\":\"a0a26f6d62ddbe0b49cc\",\"5964\":\"b913eb7f7e9f0c642438\",\"5968\":\"04bc5f73dc2169def97e\",\"6060\":\"83c7c64b9696ae2339f2\",\"6068\":\"567e7b051d90a37003f3\",\"6116\":\"e3d0aea3725be774ad81\",\"6126\":\"ce89036f0ae72224c994\",\"6148\":\"c7175423d8965ed10bae\",\"6226\":\"e1443c01a191af1665e1\",\"6234\":\"1eb24bc001efa3c0627f\",\"6256\":\"3fb9758b10c29434b613\",\"6272\":\"e09dd13da5ad56530ead\",\"6342\":\"3fd9977ed1c1413059ae\",\"6344\":\"2d819f7faabfeba8457f\",\"6355\":\"96c988285a6a2cce6246\",\"6464\":\"eb9c90a1c948cde554e9\",\"6544\":\"f7e1d0f4b873c60d6396\",\"6701\":\"9efe6f146ecd8987f80a\",\"6773\":\"52f4b93b8fa5e22cb585\",\"6790\":\"8e7dd1485813d15bba7e\",\"6797\":\"983c02109444c883a18f\",\"6826\":\"8f2a6a06dc3cf185f79d\",\"6831\":\"f593b0dc2367a9d7fb30\",\"6869\":\"e7e542ab5a74167dec10\",\"6936\":\"8e8365e2bf41779e2beb\",\"6946\":\"7d60d69762a108270669\",\"7164\":\"b4a5891ea2f38d616ec0\",\"7169\":\"ced4d5e70edc60127df6\",\"7261\":\"8a899f364cf260376905\",\"7300\":\"62e220c65215b034533d\",\"7303\":\"e0d689e22cda0dd77e9a\",\"7304\":\"f92f80669873a4100c69\",\"7360\":\"4a6f4402931a867070f0\",\"7433\":\"5eedbe9f7084c349fbe8\",\"7464\":\"ecb06d61465a355b8157\",\"7569\":\"7e4da8cb7e539c19a9b9\",\"7585\":\"d5f350641b9cbcc0e126\",\"7586\":\"628f729b9c8b2e6f4e1f\",\"7808\":\"4916f840147303aa65fe\",\"7845\":\"a54af3b1f47d576ad4aa\",\"7855\":\"71e92700b2aaca8e021c\",\"7879\":\"b36610f2ea16d56c2314\",\"7897\":\"675cc6c7607449d4a91b\",\"7962\":\"e25d40b042f8ee7389c3\",\"8015\":\"438721731b4171bc6fc3\",\"8031\":\"55f4df57e71076dbad9f\",\"8134\":\"48ef42da1c7976cf083c\",\"8395\":\"a81d0df34460837ccacc\",\"8681\":\"ff27d1f455bf2afb8d70\",\"8714\":\"1d5ea7e755b066ac2cdd\",\"8732\":\"ea1150d6bc360dd86f2e\",\"8859\":\"c76b0a0c3a4b5acbef11\",\"8873\":\"d81991295392b6ed83bb\",\"8898\":\"5600c2eb6d59fa0aa2e2\",\"8970\":\"9c1758f4fd3391f7f61a\",\"8988\":\"002faa48c09121928fca\",\"8995\":\"9b060e8009b3a8be4597\",\"9060\":\"24271e167e0471a1a732\",\"9064\":\"657aac057f36ad06c58d\",\"9319\":\"e0cb7cd3890583fd0f6d\",\"9360\":\"33aac9bbd887273a34b1\",\"9377\":\"a0118dca2096a101b8e8\",\"9399\":\"3ddf7dbc114adf90c500\",\"9414\":\"7293cd5d7205681cf48c\",\"9459\":\"bfa48615ac92f87ff37a\",\"9465\":\"55f83c46d753b0b69330\",\"9670\":\"9029d09084bb22d8b705\",\"9738\":\"d1934c18f12d80493ab1\",\"9757\":\"bf768bd32e9ff02b0a8a\",\"9780\":\"1a2de4774f4ddc2b51dd\",\"9790\":\"9db0336f168aa77ee395\",\"9862\":\"7f2789d8a461e86d1734\",\"9864\":\"cb62f86ce78c94d1e813\",\"9871\":\"af110c8eef232638fc4d\",\"9873\":\"5527466d349f2954d49b\",\"9895\":\"f19fa5fe3582463ba73c\",\"9921\":\"a254cabb8570419cc426\",\"9924\":\"272ee4735aabc37015dd\",\"9926\":\"650318c25fe4da92bad8\",\"9978\":\"6462e8cfd5006cf5b6cf\",\"9979\":\"22bdbbc77cc3c14ada58\",\"9994\":\"5ae021308b1c5f6dd8a7\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/css/\" + chunkId + \".\" + {\"159\":\"1d523a00378ebd68c5b3\",\"6464\":\"169260b661120cc50815\",\"7586\":\"0d43f70bc6240422f179\",\"7962\":\"76663e78ad5ea0bb0b90\",\"8859\":\"d26a3b0841a7beb8fd4a\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","if (typeof document === \"undefined\") return;\nvar createStylesheet = (chunkId, fullhref, oldTag, resolve, reject) => {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = (event) => {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tif (linkTag.parentNode) linkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tif (oldTag) {\n\t\toldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling);\n\t} else {\n\t\tdocument.head.appendChild(linkTag);\n\t}\n\treturn linkTag;\n};\nvar findStylesheet = (href, fullhref) => {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = (chunkId) => {\n\treturn new Promise((resolve, reject) => {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, null, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t2143: 0\n};\n\n__webpack_require__.f.miniCss = (chunkId, promises) => {\n\tvar cssChunks = {\"159\":1,\"6464\":1,\"7586\":1,\"7962\":1,\"8859\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(() => {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, (e) => {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t2143: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\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\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkpleroma_fe\"] = self[\"webpackChunkpleroma_fe\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [3733], () => (__webpack_require__(35930)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","leafPrototypes","getProto","inProgress","dataWebpackPrefix","ctx","normalize","_normalize","interpolate","_interpolate","named","_named","list","_list","plural","_plural","map","webpackAsyncContext","req","__webpack_require__","o","Promise","resolve","then","e","Error","code","ids","id","t","keys","Object","module","exports","data","emojiCurry","suggestEmoji","emoji","usersCurry","store","suggestUsers","input","nameKeywordLocalizer","firstChar","emojis","noPrefix","toLowerCase","substr","_objectSpread","filter","names","concat","keywords","kw","match","length","k","score","Math","max","apply","_toConsumableArray","name","imageUrl","startsWith","displayText","sort","a","b","alphabetically","_ref","dispatch","state","suggestions","previousQuery","timeout","cancelUserSearch","debounceUserSearch","query","reject","setTimeout","userSearch","clearTimeout","_ref2","_asyncToGenerator","_regeneratorRuntime","_callee","newSuggestions","_context","prev","next","abrupt","includes","users","user","screen_name","slice","aScore","bScore","screen_name_ui","detailText","profile_image_url_original","replacement","stop","_x","arguments","getTagName","tag","result","exec","getAttrs","innertag","substring","replace","RegExp","trim","attrs","Array","from","matchAll","_slicedToArray","_ref3","_ref4","v","fromEntries","_ref5","_ref6","attrKey","processTextForEmoji","text","processor","buffer","textBuffer","i","char","_step","found","_iterator","_createForOfIteratorHelper","s","n","done","value","shortcode","err","f","push","class","props","url","required","type","String","content","default","methods","onClick","decoded","this","decodeURI","link","generateTagLink","$router","window","open","_createElementBlock","_hoisted_1","_createElementVNode","href","_ctx","target","_cache","_withModifiers","innerHTML","MAYBE_LINE_BREAKING_ELEMENTS","components","MentionsLine","HashtagLink","html","attentions","handleLinks","Boolean","greentext","render","_this","preProcessPerLine","newHtml","currentMentions","lastSpacing","lastTags","writtenMentions","invisibleMentions","writtenTags","mentionIndex","tagsIndex","encounteredTextReverse","pass1","undefined","emptyElements","Set","levels","tagBuffer","getCurrentBuffer","flushText","handleSelfClosing","handleOpen","curBuf","newLevel","_unescape","handleClose","currentTag","pop","tagFull","tagName","has","convertHtmlToTree","processItem","item","index","array","what","emptyText","_createVNode","StillImage","isArray","_item","_item2","opener","children","closer","Tag","fullAttrs","mentionsLinePadding","_mergeProps","linkData","getLinkData","notifying","some","statusnet_profile_url","MENTIONS_LIMIT","renderMention","pass2","reverse","processItemReverse","_item3","rel","_getLinkData","_objectWithoutProperties","_excluded","renderHashtag","newChildren","prototype","toString","call","_isVNode","event","$emit","textContent","stripTags","join","_flattenDeep","greentextHandle","lines","blockElements","linebreakElements","visualLineElements","values","nonEmptyElements","elem","allElements","level","flush","handleBr","unshift","shift","convertHtmlToLines","string","every","l","cleanedString","findFirstUsable","slots","findIndex","_","renderOnlyFocused","onSwitch","Function","activeTab","scrollableTabs","sideTabBar","bodyScrollLock","active","computed","activeIndex","slot","key","isActive","_this2","tabName","$slots","beforeUpdate","clickTab","_this3","preventDefault","setTab","Fragment","$refs","contents","scrollTop","_this4","tabs","classesTab","classesWrapper","image","disabled","label","icon","FAIcon","classes","fullHeight","renderSlot","_withDirectives","_resolveDirective","library","faCircleNotch","fetch","select","unmounted","_ref$childPropName","childPropName","_ref$additionalPropNa","additionalPropNames","WrappedComponent","getComponentProps","loading","bottomedOut","error","entries","created","addEventListener","scrollLoad","fetchEntries","removeEventListener","$props","$store","updateEntries","newEntries","isEmpty","bodyBRect","document","body","getBoundingClientRect","height","y","$el","offsetHeight","innerHeight","pageYOffset","_defineProperty","$t","specialJsonName","ja","languages","langCodeToJsonName","langCodeToCldrName","ensureFinalFallback","codes","codeList","allowArrayLike","it","Symbol","iterator","minLen","_arrayLikeToArray","constructor","test","_unsupportedIterableToArray","F","_e","TypeError","normalCompletion","didErr","step","_e2","arr","len","arr2","_setLanguage","loadLanguageFile","en","require","setLanguage","i18n","language","_languages","first","rest","lang","_messages","_toArray","locale","_isEqual","fallbackLocale","messages","sent","setLocaleMessage","t0","finish","_x2","EventTarget","EventTargetPolyfill","settingsModalState","settingsModalLoadedUser","settingsModalLoadedAdmin","settingsModalTargetTab","settingsModalMode","settings","currentSaveStateNotice","noticeClearTimeout","notificationPermission","browserSupport","cssFilter","CSS","supports","layoutType","globalNotices","layoutHeight","lastTimeline","mutations","settingsSaved","success","errorData","setNotificationPermission","permission","setLayoutType","closeSettingsModal","togglePeekSettingsModal","openSettingsModal","setSettingsModalTargetTab","pushGlobalNotice","notice","removeGlobalNotice","setLayoutHeight","setLayoutWidth","layoutWidth","setLastTimeline","actions","setPageTitle","rootState","option","title","instance","commit","_ref7","_ref8","clearSettingsModalTargetTab","_ref9","openSettingsModalTab","_ref10","_ref11","_ref12","messageKey","_ref12$messageArgs","messageArgs","_ref12$level","_ref12$timeout","newNotice","_ref13","_ref14","_ref15","rootGetters","width","normalOrMobile","mergedConfig","thirdColumnMode","currentUser","_ref16","SORTED_EMOJI_GROUP_IDS","REGIONAL_INDICATORS","start","A","codePointAt","res","end","letter","fromCodePoint","displayTextI18n","args","loadAnnotations","injectAnnotations","annotations","availableLangs","reduce","acc","cur","registrationOpen","server","textlimit","themeData","vapidPublicKey","alwaysShowSubjectInput","defaultAvatar","defaultBanner","background","collapseMessageWithSubject","useAtIcon","mentionLinkDisplay","mentionLinkShowTooltip","mentionLinkShowAvatar","mentionLinkFadeDomain","mentionLinkShowYous","mentionLinkBoldenYou","hideFilteredStatuses","hideMutedPosts","hideMutedThreads","hideWordFilteredPosts","hidePostStats","hideBotIndication","hideSitename","hideUserStats","muteBotStatuses","modalOnRepeat","modalOnUnfollow","modalOnBlock","modalOnMute","modalOnDelete","modalOnLogout","modalOnApproveFollow","modalOnDenyFollow","modalOnRemoveUserFromFollowers","loginMethod","logo","logoMargin","logoMask","logoLeft","disableUpdateNotification","minimalScopesMode","nsfwCensorImage","postContentType","redirectRootLogin","redirectRootNoLogin","scopeCopy","showFeaturesPanel","showInstanceSpecificPanel","sidebarRight","subjectLineBehavior","theme","virtualScrolling","sensitiveByDefault","conversationDisplay","conversationTreeAdvanced","conversationOtherRepliesButton","conversationTreeFadeAncestors","maxDepthInThread","autocompleteSelect","customEmoji","customEmojiFetched","emojiFetched","unicodeEmojiAnnotations","pleromaBackend","postFormats","restrictedNicknames","safeDM","knownDomains","birthdayRequired","birthdayMinAge","shoutAvailable","pleromaChatMessagesAvailable","pleromaCustomEmojiReactionsAvailable","gopherAvailable","mediaProxyAvailable","suggestionsEnabled","suggestionsWeb","quotingAvailable","instanceSpecificPanelContent","tos","backendVersion","frontendVersion","pollsAvailable","pollLimits","max_options","max_option_chars","min_expiration","max_expiration","setInstanceOption","setKnownDomains","domains","setUnicodeEmojiAnnotations","getters","instanceDefaultConfig","instanceDefaultProperties","groupedCustomEmojis","packs","tags","packName","packsOf","forEach","packId","standardEmojiList","groupId","standardEmojiGroupList","instanceDomain","URL","hostname","remoteInteractionLink","endsWith","statusId","nickname","getStaticEmoji","slug","groups","_groups$symbols","symbols","console","warn","loadUnicodeEmojiData","langList","all","_callee2","_context2","getCustomEmoji","_callee3","caseInsensitiveStrCmp","noPackLast","byPackThenByName","_context3","ok","json","assign","la","lb","aNull","bNull","packOf","packOfA","packOfB","image_url","setTheme","themeName","getPreset","config","customTheme","themeSource","source","themeEngineVersion","CURRENT_VERSION","applyTheme","fetchEmoji","getKnownDomains","_ref17","_callee4","_context4","apiService","credentials","emptyTl","userId","statuses","statusesObject","faves","visibleStatuses","visibleStatusesObject","newStatusCount","maxId","minId","minVisibleId","followers","friends","flushMarker","emptyNotifications","desktopNotificationSilence","Number","POSITIVE_INFINITY","idStore","defaultState","allStatuses","allStatusesObject","conversationsObject","notifications","favorites","timelines","mentions","public","media","publicAndExternal","dms","bookmarks","mergeOrAdd","obj","oldItem","_merge","_omitBy","attachments","splice","new","status","deleted","prepareStatus","sortById","seqA","seqB","isSeqA","isNaN","isSeqB","sortTimeline","timeline","_last","addStatusToGlobalStorage","conversationId","statusnet_conversation_id","updateNotificationsMinMaxId","notification","addNewStatuses","_ref2$showImmediately","showImmediately","_ref2$user","_ref2$noIdUpdate","noIdUpdate","_ref2$pagination","pagination","_isArray","timelineObject","minNew","_minBy","maxNew","_maxBy","newer","older","addStatus","resultForCurrentTimeline","addToTimeline","_find","visibility","quote","processors","edit","retweet","retweetedStatus","retweeted_status","favorite","add","counter","in_reply_to_status_id","favorited","fave_num","favoriteStatus","deletion","uri","_remove","action","removeStatusFromGlobalStorage","follow","unknown","log","_each","addNewNotifications","newNotificationSideEffects","visibleNotificationTypes","isValidNotification","isStatusNotification","report","hasOwnProperty","seen","removeStatus","_first","showNewStatuses","oldTimeline","_slice","resetStatuses","emptyState","clearTimeline","_ref8$excludeUserId","excludeUserId","clearNotifications","setFavorited","newStatus","setFavoritedConfirm","_findIndex","favoritedBy","setMutedStatus","thread_muted","setRetweeted","repeated","repeat_num","setRetweetedConfirm","rebloggedBy","setBookmarked","bookmarked","setBookmarkedConfirm","setDeleted","setManyDeleted","condition","setLoading","setNsfw","nsfw","setNotificationsLoading","_ref18","setNotificationsSilence","_ref19","markNotificationsAsSeen","markSingleNotificationAsSeen","_ref20","dismissNotification","_ref21","dismissNotifications","_ref22","finder","updateNotification","_ref23","updater","queueFlush","_ref24","queueFlushAll","addRepeats","_ref25","rebloggedByUsers","find","_ref26","addFavs","_ref27","favoritedByUsers","_ref28","addEmojiReactionsBy","_ref29","emojiReactions","emoji_reactions","addOwnReaction","_ref30","reactionIndex","reaction","count","accounts","newReaction","me","removeOwnReaction","_ref31","r","updateStatusWithPoll","_ref32","poll","setVirtualHeight","_ref33","virtualHeight","_ref34","_ref35","_ref35$showImmediatel","_ref35$timeline","_ref35$noIdUpdate","_ref36","maybeShowNotification","_ref37","_ref38","_ref39","_ref40","fetchStatus","_ref41","api","backendInteractor","fetchStatusSource","_ref42","fetchStatusHistory","_ref43","deleteStatus","_ref44","message","deleteStatusById","_ref45","markStatusesAsDeleted","_ref46","_ref47","unfavorite","_ref48","fetchPinnedStatuses","_ref49","pinStatus","_ref50","pinOwnStatus","unpinStatus","_ref51","unpinOwnStatus","muteConversation","_ref52","unmuteConversation","_ref53","_ref54","unretweet","_ref55","bookmark","_ref56","bookmarkStatus","unbookmark","_ref57","unbookmarkStatus","_ref58","_ref59","_ref60","_ref61","_ref62","_ref63","single","dismissNotificationLocal","_ref64","_ref65","_ref66","_ref67","_ref68","_ref69","fetchFavsAndRepeats","_ref70","fetchFavoritedByUsers","fetchRebloggedByUsers","_ref71","_ref72","reactWithEmoji","_ref73","_ref74","unreactWithEmoji","_ref75","_ref76","fetchEmojiReactionsBy","_ref77","fetchEmojiReactions","fetchFavs","_ref78","fetchRepeats","_ref79","search","_ref80","q","limit","offset","following","search2","u","_ref81","_ref82","setLists","allLists","setList","listId","allListsObject","accountIds","entry","setListAccounts","addListAccount","accountId","removeListAccount","set","deleteList","lists","createList","fetchList","getList","fetchListAccounts","getListAccounts","updateList","saved","added","removed","addAccountsToList","removeAccountsFromList","findListTitle","findListAccounts","fetchAndUpdate","_ref2$timeline","_ref2$older","_ref2$userId","_ref2$listId","_ref2$tag","until","since","timelineData","_camelCase","_getters$mergedConfig","replyVisibility","loggedIn","withMuted","numStatusesBeforeFetch","response","errors","statusText","ccTimeline","update","timelineFetcher","startFetching","_ref3$timeline","_ref3$userId","_ref3$listId","_ref3$tag","promiseInterval","boundFetchAndUpdate","requests","listsFetcher","startFetchingTimeline","_ref$userId","_ref$listId","fetchTimeline","startFetchingNotifications","notificationsFetcher","fetchNotifications","startFetchingFollowRequests","followRequestFetcher","startFetchingLists","startUserSocket","getMastodonSocketURI","stream","ProcessedWS","func","verifyCredentials","windowWidth","innerWidth","documentElement","clientWidth","windowHeight","clientHeight","REDIRECT_URI","location","origin","getOrCreateApp","clientId","clientSecret","form","FormData","append","___pleromafe_commit_hash","Date","toISOString","method","app","client_id","client_secret","getClientToken","oauth","login","response_type","redirect_uri","scope","dataString","_reduce","encoded","encodeURIComponent","getToken","getTokenWithCredentials","username","password","verifyOTPCode","mfaToken","verifyRecoveryCode","revokeToken","token","isPushSupported","navigator","getOrCreateServiceWorker","runtime","deleteSubscriptionFromBackEnd","headers","Authorization","mergeArrayLength","oldValue","newValue","_mergeWith","blockUser","relationship","unblockUser","muteUser","_typeof","expiresIn","predictedRelationship","relationships","muting","unmuteUser","muteDomain","domain","unmuteDomain","tagUser","usersObject","newTags","untagUser","updateRight","right","newRights","rights","updateActivationStatus","deactivated","setCurrentUser","lastLoginName","clearCurrentUser","beginLogin","loggingIn","endLogin","saveFriendIds","friendIds","_uniq","_concat","saveFollowerIds","followerIds","clearFriends","clearFollowers","addNewUsers","usersByNameObject","updateUserRelationship","updateUserInLists","inLists","saveBlockIds","blockIds","addBlockId","blockId","indexOf","setBlockIdsMaxId","blockIdsMaxId","saveMuteIds","muteIds","setMuteIdsMaxId","muteIdsMaxId","addMuteId","muteId","saveDomainMutes","domainMutes","addDomainMute","removeDomainMute","setPinnedToUser","pinnedStatusIds","pinned","setUserForStatus","setUserForNotification","from_profile","setColor","highlighted","highlight","signUpPending","signUpErrors","signUpSuccess","signUpFailure","findUser","findUserByName","findUserByUrl","fetchUserIfMissing","fetchUser","fetchUserByName","fetchUserRelationship","fetchUserInLists","fetchBlocks","reset","blocks","_map","removeUserFromFollowers","blockUsers","unblockUsers","editUserNote","comment","fetchMutes","mutes","hideReblogs","followUser","reblogs","showReblogs","muteUsers","unmuteUsers","fetchDomainMutes","muteDomains","unmuteDomains","fetchFriends","fetchFollowers","subscribeUser","unsubscribeUser","toggleActivationStatus","activateUser","deactivateUser","is_active","registerPushNotifications","isEnabled","notificationVisibility","registration","base64String","base64","rawData","subscribeOptions","userVisibleOnly","applicationServerKey","repeat","atob","Uint8Array","charCodeAt","pushManager","subscribe","subscribePush","subscription","JSON","stringify","alerts","follows","favourite","likes","mention","reblog","repeats","move","moves","responseData","sendSubscriptionToBackEnd","webPushNotifications","unregisterPushNotifications","getSubscription","subscribtion","unsubscribe","unsubscribePush","unregister","retweetedUsers","_compact","targetUsers","notificationIds","notificationsObject","relevantNotifications","searchUsers","signUp","userInfo","register","params","access_token","getCaptcha","logout","_store$rootState","oauthApi","userToken","backendInteractorService","loginUser","accessToken","Notification","requestPermission","locked","useStreamingApi","latest","maybeShowChatNotification","chat","lastMessage","chats","currentChatId","hidden","account_id","opts","account","profile_image_url","attachment","preview_url","showDesktopNotification","retryMultiplier","fetchers","socket","mastoUserSocket","mastoUserSocketStatus","followRequests","followRequestCount","setBackendInteractor","addFetcher","fetcherName","fetcher","removeFetcher","setWsToken","wsToken","setSocket","setFollowRequests","setMastoUserSocketStatus","incrementRetryMultiplier","resetRetryMultiplier","enableMastoSockets","initial","WebSocket","CLOSED","CLOSING","getState","WSConnectionStatus","disableMastoSockets","startMastoUserSocket","detail","chatId","chatUpdate","closeEvent","ignoreCodes","debug","stopMastoUserSocket","close","_ref7$timeline","_ref7$tag","_ref7$userId","_ref7$listId","stopFetchingTimeline","stopFetchingNotifications","_extends","_objectDestructuringEmpty","stopFetchingFollowRequests","removeFollowRequest","request","stopFetchingLists","initializeSocket","Socket","connect","disconnectFromSocket","disconnect","defaultApi","path","_set","updateProfile","notificationsApi","updateNotificationSettings","settingsMap","defaultScope","defaultNSFW","stripRichContent","get","acceptChatMessages","allowFollowingMove","discoverable","hideFavorites","hideFollowers","hideFollows","hideFollowersCount","hideFollowsCount","webPushHideContents","blockNotificationsFromStrangers","profileConfig","confirmProfileOption","wipeProfileOption","wipeAllProfileOptions","_value$get","_get","_original","setProfileOption","_map$set","_map$api","faTimes","Modal","NEW_USER_DATE","COMMAND_TRIM_FLAGS_AND_RESET","dirty","flagStorage","updateCounter","prefsStorage","_journal","simple","dontShowUpdateNotifs","collapseNav","collections","pinnedNavItems","raw","cache","newUserFlags","_moveItemInArray","movement","oldIndex","newIndex","newArray","_clamp","_wrapData","userName","_user","_timestamp","now","_version","_checkValidity","_verifyPrefs","_mergeJournal","_len","journals","_key","allJournals","_flatten","j","grouped","_groupBy","trimmedGrouped","journal","timestamp","remainder","lastRemoveIndex","_findLastIndex","operation","_uniqWith","_takeRight","clearServerSideStorage","userData","_cloneDeep","setServerSideStorage","live","storage","fqn","_getRecentData2","recent","stale","needUpload","cacheValid","liveValid","_getRecentData","_PLEROMA_HOTPATCH","reverseMigrations","to","_doMigrations","needsUpload","userNew","created_at","flagsTemplate","_recent","recentData","_excluded2","staleData","_excluded3","totalFlags","totalPrefs","allFlagKeys","toRaw","_getAllFlags","flag","recentFlag","staleFlag","_mergeFlags","recentJournal","staleJournal","resultOutput","totalJournal","command","newSet","_args","_mergePrefs","knownKeys","knownKeysSet","_resetFlags","min","setFlag","setPreference","addCollectionPreference","collection","removeCollectionPreference","reorderCollectionPreference","newCollection","updateCache","pushServerSideStorage","_ref16$force","force","needPush","pleroma_settings_store","frontends","loaded","needsReboot","modifiedPaths","descriptions","draft","dbConfigEnabled","adminSettingsStorage","setInstanceAdminNoDbConfig","setAvailableFrontends","installedRefs","installed_refs","refs","ref","updateAdminSettings","updateAdminDescriptions","updateAdminDraft","_path","parent","resetAdminDraft","loadFrontendsStuff","fetchAvailableFrontends","loadAdminStuff","fetchInstanceDBConfig","backendDbConfig","errorJson","fetchInstanceConfigDescriptions","backendDescriptions","setInstanceAdminSettings","configs","c","group","db","x","convert","tuple","setInstanceAdminDescriptions","description","_ref11$key","newPath","d","pushAdminDraft","changed","lv1data","eConfig","eDraft","_differenceWith","pushInstanceDBConfig","payload","pushAdminSetting","split","clone","resetAdminSetting","_path$split","_path$split2","subkey","delete","subkeys","channel","joined","setChannel","addMessage","setMessages","setJoined","initializeShout","joinPush","receive","onClose","onError","on","msg","appToken","setClientData","setAppToken","setToken","clearToken","getUserToken","PASSWORD_STRATEGY","TOKEN_STRATEGY","TOTP_STRATEGY","RECOVERY_STRATEGY","resetState","strategy","initStrategy","namespaced","requiredPassword","requiredToken","requiredTOTP","requiredRecovery","setInitialStrategy","requirePassword","requireToken","requireMFA","requireRecovery","requireTOTP","abortMFA","root","supportedTypes","mediaViewer","currentIndex","activated","setMedia","setCurrentMedia","fileTypeService","mimetype","current","closeMediaViewer","tokens","fetchTokens","fetchOAuthTokens","revokeOAuthToken","swapTokens","reports","reportModal","preTickedIds","openUserReportingModal","closeUserReportingModal","setReportState","reportsState","addReport","_ref4$statusIds","statusIds","preTickedStatuses","oldState","trackedPolls","pollsObject","mergeOrAddPoll","existingPoll","expired","parse","expires_at","trackPoll","pollId","currentValue","untrackPoll","updateTrackedPoll","fetchPoll","polls","votePoll","choices","vote","modalActivated","openPostStatusModal","closePostStatusModal","resetPostStatusModal","openEditStatusModal","closeEditStatusModal","openStatusHistoryModal","closeStatusHistoryModal","ChatService","newMessages","_ref$updateMaxId","updateMaxId","_loop","chat_id","fakeId","fakeMessage","idIndex","pending","idempotency_key","idempotencyKeyIndex","isConfirmation","lastSeenMessageId","newMessageCount","_ret","empty","getView","currentMessageChainId","_orderBy","firstMessage","previousMessage","date","setHours","getTime","afterDate","nextMessage","isTail","object","messageChainId","_uniqueId","isHead","deleteMessage","messageId","m","cullOlderMessages","maxIndex","minIndex","_sortBy","_step2","_iterator2","resetNewMessageCount","clear","failedMessageIds","handleMessageError","isRetry","lastPersistedMessage","oldId","chatList","chatListFetcher","openedChats","reactive","openedChatMessageServices","lastReadMessageId","getChatById","currentChat","currentChatMessageService","findOpenedChatByRecipientId","recipientId","sortedChatList","unreadChatCount","_sumBy","startFetchingChats","stopFetchingChats","fetchChats","addNewChats","newChatMessageSideEffects","updateChat","startFetchingCurrentChat","setCurrentChatFetcher","addOpenedChat","parseChat","addChatMessages","resetChatNewMessageCount","clearCurrentChat","readChat","lastReadId","isNewMessage","deleteChatMessage","resetChats","clearOpenedChats","setChatListFetcher","prevFetcher","_dispatch","chatService","setCurrentChatId","updatedChat","unread","updated_at","_rootGetters","deleteChat","conversation","last_status","setChatsLoading","chatMessageService","parseChatMessage","_value","announcements","supportsAnnouncements","fetchAnnouncementsTimer","setAnnouncements","setAnnouncementRead","read","setFetchAnnouncementsTimer","timer","setSupportsAnnouncements","unreadAnnouncementCount","_getters","announcement","inactive","fetchAnnouncements","isAdmin","privileges","getAnnouncements","visible","visibleObject","getWithinVisible","adminFetchAnnouncements","visibleAnnouncement","statusCode","markAnnouncementAsRead","dismissAnnouncement","startFetchingAnnouncements","interval","setInterval","stopFetchingAnnouncements","clearInterval","postAnnouncement","startsAt","endsAt","allDay","editAnnouncement","deleteAnnouncement","defaultReducer","paths","substate","saveImmedeatelyActions","defaultStorage","localforage","createPersistedState","_ref$key","_ref$paths","_ref$getState","getItem","_ref$setState","setState","setItem","_ref$reducer","reducer","_ref$storage","_ref$subscriber","subscriber","handler","savedState","usersState","replaceState","merge","mutation","webPushNotification","isUserMutation","isVapidMutation","isPermMutation","isUserConfigMutation","isVisibilityMutation","for","isPasswordAuth","isTokenAuth","mapState","mapGetters","mapMutations","mapActions","submit","submitToken","submitPassword","_this$oauth","identifier","passwordResetRequested","focusOnPasswordInput","clearError","passwordInput","focus","setSelectionRange","_hoisted_2","_toDisplayString","_hoisted_3","onSubmit","_Fragment","_hoisted_4","_hoisted_5","$event","placeholder","_hoisted_7","_hoisted_8","_hoisted_10","_component_router_link","_hoisted_11","_hoisted_12","_hoisted_13","_createBlock","_hoisted_14","_hoisted_15","_hoisted_16","_component_FAIcon","mfa","authSettings","mfa_token","mfaApi","_hoisted_6","_hoisted_9","size","h","resolveComponent","authForm","MFARecoveryForm","MFATOTPForm","LoginForm","signedIn","AuthForm","PostStatusForm","UserCard","_component_UserCard","rounded","_component_PostStatusForm","_component_auth_form","USERNAME_ROUTES","TIMELINES","home","route","criteria","anon","twkn","routeObject","tab","ROOT_ITEMS","interactions","badgeGetter","friendRequests","about","routeTo","anonRoute","custom","_renderSlot","_normalizeProps","_guardReactiveProps","faThumbtack","OptionalRouterLink","isPinned","pinnedItems","togglePin","serverSideStorage","_component_OptionalRouterLink","ass","navigate","$attrs","_resolveDynamicComponent","iconLetter","labelRaw","showPin","_normalizeClass","transform","filterNavigation","hasChats","hasAnnouncements","isFederating","isPrivate","getListEntries","ListsMenuContent","NavigationEntry","privateMode","federating","_renderList","_component_NavigationEntry","faUsers","faGlobe","faBookmark","faEnvelope","faComments","faBell","faInfoCircle","faStream","faList","getRouteTo","pinnedList","faChevronDown","faChevronUp","faBullhorn","NavigationPins","Checkbox","editMode","showTimelines","showLists","timelinesList","rootList","toggleTimelines","toggleLists","toggleEditMode","toggleCollapse","collapsed","timelinesItems","rootItems","forceExpand","_component_NavigationPins","forceEditMode","_component_ListsMenuContent","shout","pleromaChatMessages","gopher","whoToFollow","mediaProxy","uploadlimit","fileSizeFormatService","num","unit","getWhoToFollow","panel","usersToFollow","toFollow","reply","shuffled","_shuffle","img","avatar","acct","externalUser","showWhoToFollow","userProfileLink","generateProfileLink","watch","oldUser","mounted","fill","src","currentMessage","togglePanel","newVal","scrollEl","querySelector","scrollHeight","$nextTick","floating","author","rows","onKeyup","_withKeys","setTransform","scale","PinchZoom","_toHandlers","$listeners","deltaCoord","oldCoord","newCoord","touchEventCoord","touch","touches","screenX","screenY","pointerEventCoord","clientX","clientY","vectorLength","sqrt","perpendicular","dotProduct","v1","v2","project","scalar","DIRECTION_LEFT","DIRECTION_RIGHT","DIRECTION_UP","DIRECTION_DOWN","swipeGesture","direction","onSwipe","threshold","perpendicularTolerance","_startPos","_swiping","beginSwipe","gesture","updateSwipe","delta","towardsDir","perpendicularDir","towardsPerpendicular","SwipeAndClickGesture","swipePreviewCallback","swipeEndCallback","swipeCancelCallback","swipelessClickCallback","_ref$threshold","_ref$perpendicularTol","_ref$disableClickThre","disableClickThreshold","_classCallCheck","nop","_reset","_createClass","_pointerId","_swiped","_preventNextClick","button","pointerId","coord","sign","isPositive","pointerType","handlePointerDown","$gesture","handlePointerMove","handlePointerUp","handlePointerCancel","cancel","handleNativeClick","click","preview","offsets","GestureService","onPointerdown","onPointermove","onPointerup","onPointercancel","faChevronLeft","faChevronRight","VideoAttachment","SwipeClick","Flash","swipeDirection","swipeThreshold","pinchZoomMinScale","pinchZoomScaleResetLimit","showing","currentMedia","canNavigate","getType","swipeDisableClickThreshold","hide","hideIfNotSwiped","comp","swipeClick","goPrev","prevIndex","newMedia","goNext","nextIndex","onImageLoaded","handleSwipePreview","pinchZoom","handleSwipeEnd","handleKeyupEvent","keyCode","handleKeydownEvent","_component_Modal","onBackdropClicked","_component_SwipeClick","onPreviewRequested","onSwipeFinished","onSwipelessClicked","_component_PinchZoom","selector","alt","onLoad","_component_VideoAttachment","controls","_component_Flash","$tc","total","spin","faSignInAlt","faSignOutAlt","faHome","faUserPlus","faSearch","faTachometerAlt","faCog","faCompass","closed","closeGesture","toggleDrawer","unseenNotifications","unseenNotificationsFromStore","unseenNotificationsCount","sitename","timelinesRoute","doLogout","touchStart","touchMove","openAdminModal","onTouchstart","onTouchmove","style","role","faPen","HIDDEN_FOR_PAGES","scrollingDown","inputActive","oldScrollPos","amountScrolled","autohideFloatingPostButton","activateFloatingPostButtonAutohide","handleOSK","deactivateFloatingPostButtonAutohide","isLoggedIn","isHidden","$route","isPersistent","alwaysShowNewPostButton","handleScrollStart","handleScrollEnd","openPostForm","smallPhone","smallPhoneKbOpen","biggerPhoneKbOpen","_debounce","scrollY","leading","trailing","faBars","faArrowUp","faMinus","SideDrawer","Notifications","ConfirmModal","notificationsCloseGesture","notificationsOpen","notificationsAtTop","showingConfirmLogout","closeMobileNotifications","isChat","chatsPinned","shouldConfirmLogout","toggleMobileSidebar","sideDrawer","openMobileNotifications","markRead","notificationsTouchStart","notificationsTouchMove","scrollToTop","scrollTo","scrollMobileNotificationsToTop","mobileNotifications","showConfirmLogout","hideConfirmLogout","onScroll","_ref$target","fetchOlderNotifications","_component_FALayers","_component_SideDrawer","_Teleport","_component_confirm_modal","onAccepted","onCancelled","searchTerm","searchInput","toggleHidden","SearchBar","searchBarHidden","supportsMask","enableMask","logoStyle","logoMaskStyle","logoBgStyle","margin","opacity","onSearchBarToggled","_normalizeStyle","_component_search_bar","onToggled","Status","List","UserLink","forward","statusIdsToReport","processing","isOpen","remoteInstance","is_local","closeModal","reportUser","isChecked","toggleStatus","checked","resize","Element","_component_i18n_t","keypath","_component_UserLink","onInput","_component_Checkbox","_component_List","items","_withCtx","_component_Status","focused","statusoid","resettingForm","editStatus","isFormVisible","oldVal","val","doEditStatus","spoilerText","sensitive","contentType","statusPosterService","onPosted","postStatus","resetAndClose","statusHistory","historyCount","history","newStatusId","resetHistory","_component_status","notices","closeNotice","UserPanel","NavPanel","defineAsyncComponent","InstanceSpecificPanel","FeaturesPanel","WhoToFollowPanel","ShoutPanel","MediaModal","MobilePostStatusButton","MobileNav","DesktopNav","SettingsModal","UpdateNotification","UserReportingModal","PostStatusModal","EditStatusModal","StatusHistoryModal","GlobalNoticeList","mobileActivePanel","interfaceLanguage","updateMobileState","reverseLayout","noSticky","newPostButtonShown","navClasses","navbarColumnStretch","userBackground","background_image","instanceBackground","hideInstanceWallpaper","bgStyle","hideISP","isChats","isListEdit","editingAvailable","shoutboxPosition","hideShoutbox","_this$$store$getters$","reverseSetting","disableStickyHeaders","showScrollbars","_component_MobileNav","_component_DesktopNav","_component_Notifications","_component_user_panel","_component_nav_panel","_component_instance_specific_panel","_component_features_panel","_component_who_to_follow_panel","_component_router_view","_component_MediaModal","_component_shout_panel","_component_MobilePostStatusButton","_component_UserReportingModal","_component_PostStatusModal","_component_EditStatusModal","_component_StatusHistoryModal","_component_SettingsModal","_component_UpdateNotification","_component_GlobalNoticeList","faAngleDoubleDown","faAngleDoubleRight","depth","inProfile","collapsable","isExpanded","pinnedStatusIdsObject","profileUserId","getReplies","setHighlight","toggleExpanded","toggleThreadDisplay","threadDisplayStatus","showThreadRecursively","totalReplyCount","totalReplyDepth","statusContentProperties","setStatusContentProperty","toggleStatusContentProperty","dive","suspendable","selfSuspendable","statusComponent","childComponent","reverseLookupTable","table","currentReplies","statusById","threadShowing","currentProp","collapseThread","showThread","showAllSubthreads","toggleCurrentProp","setCurrentProp","expandable","replies","showingTall","expandingSubject","showingLongSubject","replying","mediaPlaying","onGoto","onToggleExpanded","replyStatus","_component_thread_tree","numStatus","faFilter","faFont","faWrench","Popover","setReplyVisibility","openTab","replyVisibilitySelf","replyVisibilityFollowing","replyVisibilityAll","hideMedia","hideAttachments","hideAttachmentsInConv","_component_Popover","trigger","faFolderTree","setConversationDisplay","autoUpdate","streaming","collapseWithSubjects","showUserAvatars","faAngleDoubleLeft","idA","idB","expanded","threadDisplayStatusObject","statusContentPropertiesObject","inlineDivePosition","isPage","fetchConversation","maxDepthToShowByDefault","maxDepth","streamingEnabled","displayStyle","isTreeView","isLinearView","treeViewIsSimple","shouldFadeAncestors","otherRepliesButtonPosition","showOtherRepliesButtonBelowStatus","showOtherRepliesButtonInsideStatus","prop","hideStatus","virtualHidden","originalStatusId","getConversationId","_clone","statusIndex","_filter","sortAndFilterConversation","statusMap","threadTree","linearized","walk","forest","topLevel","processed","replyIds","sizes","subTreeSizeFor","cid","depths","subTreeDepthFor","_this5","tl","otherTopLevelCount","showingTopLevel","canDive","diveRoot","parentOf","diveDepth","diveMode","shouldShowAllConversationButton","shouldShowAncestors","ancestorsOf","irid","hiddenStyle","_this6","_this7","def","isReplying","_this8","maybeHighlight","ThreadTree","QuickFilterSettings","QuickViewSettings","newConversationId","oldConversationId","resetDisplayState","_this9","ancestors","descendants","getHighlight","setThreadDisplay","nextStatus","setThreadDisplayRecursively","_this10","leastVisibleAncestor","diveIntoStatus","preventScroll","tryScrollTo","diveToTopLevel","topLevelAncestorOrSelfId","undive","_this11","goToCurrent","parentId","parentOrSelf","_component_QuickFilterSettings","_component_QuickViewSettings","numReplies","useListsMenu","openMenu","blockOpen","stopPropagation","timelineName","i18nkey","onShow","faCirclePlus","faCheck","Timeline","showScrollTop","paused","unfocused","virtualScrollIndex","blockingClicks","Conversation","TimelineMenu","filteredVisibleStatuses","filteredPinnedStatusIds","showLoadButton","loadButtonString","mobileLoadButtonString","rootClasses","embedded","header","footer","_keyBy","statusesToDisplay","amount","statusesPerSide","ceil","nonPinnedIndex","virtualScrollingEnabled","mobileLayout","handleScroll","handleVisibilityChange","handleShortKey","determineVisibleStatuses","top","offsetTop","stopBlockingClicks","blockClicksTemporarily","fetchOlderStatuses","_throttle","cappedScrollIndex","centerOfScreen","approxIndex","floor","virtualScrollIndexY","abs","doc","clientTop","pauseOnUnfocused","_component_TimelineMenu","_component_conversation","footerSlipgate","_component_Timeline","tabModeDict","reactions","allow_following_move","filterMode","canSeeReports","onModeSwitch","TabSwitcher","_component_tab_switcher","UserAvatar","RichContent","UserPopover","htmlTitle","name_html","withAvatar","_component_UserPopover","_component_UserAvatar","_component_RichContent","AvatarList","Timeago","ChatTitle","StatusBody","attachmentInfo","types","file","fileType","messageForStatusContent","messageEmojis","isYou","messagePreview","summary","raw_html","openChat","recipient_id","_component_ChatTitle","_component_Timeago","time","_component_StatusBody","chatNew","BasicUserCard","userIds","availableUsers","goBack","goToChat","addUser","selectedUserIds","removeUser","_component_BasicUserCard","ChatListItem","ChatNew","isNew","cancelNewChat","newChat","_component_ChatNew","onCancel","_component_ChatListItem","compact","displayDate","today","toLocaleDateString","localeService","$i18n","day","month","$options","faEllipsisH","emits","Attachment","StatusContent","Gallery","LinkPreview","ChatMessageDate","createdAt","chatViewItem","toLocaleTimeString","hour","minute","hour12","isCurrentUser","isMessage","hasAttachment","betterShadow","popoverMarginStyle","left","hovered","menuOpened","onHover","bool","isHovered","confirm","hoveredMessageChain","onMouseover","onMouseleave","onMouseenter","placement","_component_StatusContent","_component_ChatMessageDate","getScrollPosition","Chat","ChatMessage","jumpToBottomButtonVisible","hoveredMessageChainId","lastScrollPosition","scrollableContainerHeight","errorLoadingChat","messageRetriers","handleResize","recipient","formPlaceholder","chatViewItems","bottomedOutBeforeUpdate","scrollDown","fetchChat","isFirstFetch","onMessageHover","onFilesDropped","forceRead","_opts$delayed","delayed","_getScrollPosition$of","diff","scrollBy","trunc","options","_options$behavior","behavior","_options$forceRead","isBottomedOut","reachedTop","cullOlderCheck","handleScrollUp","positionBeforeLoading","previousPosition","newPosition","positionAfterLoading","_ref2$isFirstFetch","_ref2$fetchLatest","fetchLatest","fetchOlderMessages","sinceId","chatMessages","positionBeforeUpdate","getOrCreateChat","doStartFetching","handleAttachmentPosting","sendMessage","_this12","idempotencyKey","mediaId","isNormalized","buildFakeMessage","doSendMessage","retriesLeft","_this13","_ref4$retriesLeft","sendChatMessage","pow","_component_ChatMessage","onResize","showingConfirmRemoveFollower","shouldConfirmRemoveUserFromFollowers","showConfirmRemoveUserFromFollowers","hideConfirmRemoveUserFromFollowers","doRemoveUserFromFollowers","toggled","RemoteFollow","FollowButton","RemoveFollowerButton","isMe","_component_basic_user_card","noFollowsYou","followed_by","_component_FollowButton","_component_RemoveFollowerButton","_component_RemoteFollow","faBirthdayCake","FollowerList","withLoadMore","destroy","FriendList","defaultTabKey","footerRef","routeParams","load","stopFetching","isUs","isExternal","followsTabVisible","hide_follows","followersTabVisible","hide_followers","formattedBirthday","browserLocale","birthday","timeZone","year","setFooterRef","el","userNameOrId","loadById","maybeId","maybeName","reason","errorMessage","switchUser","onTabSwitch","linkClicked","parentNode","FollowCard","switcher","selected","viewing","fields_html","field","fields_text","statuses_count","friends_count","_component_FriendList","_component_FollowCard","followers_count","_component_FollowerList","hashtags","currenResultTab","statusesOffset","lastStatusFetchCount","lastQuery","newQuery","searchType","blur","oldLength","_uniqBy","getActiveTab","resultCount","onResultTabSwitch","lastHistoryRecord","hashtag","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","uses","_hoisted_26","setup","v$","useVuelidate","email","fullname","captcha","InterfaceLanguageSwitcher","validations","requiredIf","accountActivationRequired","sameAs","maxValue","birthdayMin","accountApprovalRequired","setCaptcha","bioPlaceholder","replaceNewlines","reasonPlaceholder","minAge","setUTCMilliseconds","setUTCSeconds","setUTCMinutes","setUTCHours","minDate","setTime","DAY","birthdayMinAttr","toJSON","birthdayMinFormatted","isPending","serverValidationErrors","termsOfService","captcha_solution","solution","captcha_token","captcha_answer_data","answer_data","$touch","$invalid","cpt","str","$error","$model","$dirty","bio","_hoisted_27","_hoisted_28","_hoisted_29","_hoisted_30","_hoisted_32","_hoisted_33","_hoisted_34","_component_interface_language_switcher","_hoisted_35","_hoisted_36","_hoisted_38","_hoisted_39","autocomplete","autocorrect","autocapitalize","spellcheck","_hoisted_42","_hoisted_43","_hoisted_44","_hoisted_45","_hoisted_47","_hoisted_48","passwordReset","throttled","mailerEnabled","dismissError","passwordResetApi","showingApproveConfirmDialog","showingDenyConfirmDialog","findFollowRequestNotificationId","notif","notificationsFromStore","showApproveConfirmDialog","hideApproveConfirmDialog","showDenyConfirmDialog","hideDenyConfirmDialog","approveUser","shouldConfirmApprove","doApprove","notifId","denyUser","shouldConfirmDeny","doDeny","FollowRequestCard","_component_FollowRequestCard","_this$$store$state$oa","staffAccounts","groupedStaffAccounts","groupBy","admin","moderator","toInstanceReasonObject","instances","info","federationPolicy","mrfPolicies","quarantineInstances","acceptInstances","rejectInstances","ftlRemovalInstances","mediaNsfwInstances","mediaRemovalInstances","keywordsFtlRemoval","keywordsReject","keywordsReplace","hasInstanceSpecificPolicies","hasKeywordPolicies","TermsOfServicePanel","StaffPanel","MRFTransparencyPanel","policy","keyword","pattern","_component_staff_panel","_component_terms_of_service_panel","_component_MRFTransparencyPanel","redirect","ListsCard","cancelNewList","newList","_component_ListsCard","followingOnly","onChange","ListsNew","ListsUserSearch","PanelLoading","titleDraft","membersUserIds","removedUserIds","searchUserIds","addedUserIds","searchLoading","reallyDelete","membersUsers","toggleRemoveMember","toggleAddFromSearch","isRemoved","isAdded","onSearchLoading","results","onSearchLoadingDone","onSearchResults","updateListTitle","_ctx$$router","back","listTitle","_component_ListsUserSearch","onResults","onLoading","onLoadingDone","_component_PanelLoading","cols","AnnouncementEditor","editing","editedAnnouncement","editError","canEditAnnouncement","isRead","publishedAt","published_at","formatTimeOrDate","starts_at","ends_at","markAsRead","all_day","toLocaleString","enterEditMode","pleroma","raw_content","submitEdit","cancelEdit","Announcement","_component_announcement_editor","_component_rich_content","newAnnouncement","posting","canPostAnnouncement","_component_announcement","validateAuthenticatedRoute","routes","_to","component","PublicAndExternalTimeline","PublicTimeline","FriendsTimeline","beforeEnter","TagTimeline","BookmarkTimeline","ConversationPage","meta","dontScroll","RemoteUserResolver","UserProfile","Interactions","DMs","Registration","PasswordReset","FollowRequests","disableTeleport","OAuthCallback","Search","WhoToFollow","About","AnnouncementsPage","Lists","ListsTimeline","ListsEdit","ChatList","previousNavPaddingRight","previousAppBgWrapperRight","lockerEls","disableBodyScroll","scrollBarGap","reserveScrollBarGap","navEl","getElementById","getComputedStyle","getPropertyValue","paddingRight","appBgWrapperEl","classList","enableBodyScroll","remove","directive","binding","updated","Vue","staticInitialResults","decodeUTF8Base64","TextDecoder","decode","preloadFetch","requestData","getInstanceConfig","max_toot_chars","vapid_public_key","approval_required","metadata","birthday_required","birthday_min_age","getBackendProvidedConfig","pleroma_fe","_x3","getStaticConfig","setSettings","_callee5","apiConfig","staticConfig","overrides","env","copyInstanceOption","_context5","___pleromafe_dev_overrides","___pleromafe_mode","NODE_ENV","staticConfigPreference","_x4","getTOS","_callee6","_context6","_x5","getInstancePanel","_callee7","_context7","_x6","getStickers","_callee9","stickers","_context9","_callee8","resPack","_context8","pack","_x8","localeCompare","_x7","getAppSecret","_callee10","_context10","_x9","resolveStaffAccounts","nicknames","getNodeInfo","_callee11","features","uploadLimits","software","priv","federation","_context11","nodeName","openRegistrations","parseInt","general","banner","fieldsLimits","enabled","web","version","mrf_policies","_x10","setConfig","_callee12","configInfos","_context12","_x11","checkOAuthToken","_callee14","_context14","_callee13","_context13","_x13","_x14","_x12","_callee15","_store$state$config","customThemeSource","router","_context15","FaviconService","applyConfig","createRouter","createWebHistory","scrollBehavior","_from","savedPosition","matched","createApp","App","use","vClickOutside","VBodyScrollLock","VueVirtualScroller","FontAwesomeIcon","FontAwesomeLayers","unwrapInjectedRef","mount","_x15","currentLocale","createI18n","global","persistedStateOptions","storageError","plugins","persistedState","pushNotifications","createStore","modules","interface","interfaceModule","instanceModule","usersModule","statusesModule","listsModule","apiModule","configModule","profileConfigModule","serverSideStorageModule","adminSettings","adminSettingsModule","shoutModule","oauthModule","authFlow","authFlowModule","mediaViewerModule","oauthTokens","oauthTokensModule","reportsModule","pollsModule","postStatusModule","editStatusModule","statusHistoryModule","chatsModule","announcementsModule","strict","afterStoreSetup","process","COMMIT_HASH","DEV_OVERRIDES","expertLevel","colors","padEmoji","maxThumbnails","hideNsfw","preloadImage","loopVideo","loopVideoSilentOnly","emojiReactionsOnTimeline","stopGifs","followRequest","chatMention","muteWords","hideScopeNotice","playVideosInModal","useOneClickNsfw","useContainFit","userPopoverAvatarAction","userPopoverOverlay","sidebarColumnWidth","contentColumnWidth","notifsColumnWidth","emojiReactionsScale","defaultConfig","setOption","color","loadSettings","presentKeys","intersection","setPreset","Cookies","StatusCodeError","captureStackTrace","create","RegistrationError","_Error","_inherits","_super","_assertThisInitialized","errorContents","ap_id","errs","_capitalize","_wrapNativeSuper","ALIASES_URL","TAG_USER_URL","PERMISSION_GROUP_URL","screenName","MASTODON_DISMISS_NOTIFICATION_URL","MASTODON_FAVORITE_URL","MASTODON_UNFAVORITE_URL","MASTODON_RETWEET_URL","MASTODON_UNRETWEET_URL","MASTODON_DELETE_URL","MASTODON_PUBLIC_TIMELINE","MASTODON_STATUS_URL","MASTODON_USER_TIMELINE_URL","MASTODON_LIST_URL","MASTODON_LIST_TIMELINE_URL","MASTODON_LIST_ACCOUNTS_URL","MASTODON_TAG_TIMELINE_URL","MASTODON_MUTE_USER_URL","MASTODON_UNMUTE_USER_URL","MASTODON_SUBSCRIBE_USER","MASTODON_UNSUBSCRIBE_USER","MASTODON_USER_NOTE_URL","MASTODON_BOOKMARK_STATUS_URL","MASTODON_UNBOOKMARK_STATUS_URL","MASTODON_MEDIA_UPLOAD_URL","MASTODON_STATUS_FAVORITEDBY_URL","MASTODON_STATUS_REBLOGGEDBY_URL","MASTODON_PROFILE_UPDATE_URL","MASTODON_PIN_OWN_STATUS","MASTODON_UNPIN_OWN_STATUS","MASTODON_MUTE_CONVERSATION","MASTODON_UNMUTE_CONVERSATION","MASTODON_DOMAIN_BLOCKS_URL","MASTODON_ANNOUNCEMENTS_DISMISS_URL","PLEROMA_EMOJI_REACTIONS_URL","PLEROMA_EMOJI_REACT_URL","PLEROMA_EMOJI_UNREACT_URL","PLEROMA_CHAT_MESSAGES_URL","PLEROMA_CHAT_READ_URL","PLEROMA_DELETE_CHAT_MESSAGE_URL","PLEROMA_BACKUP_URL","PLEROMA_EDIT_ANNOUNCEMENT_URL","PLEROMA_DELETE_ANNOUNCEMENT_URL","PLEROMA_ADMIN_CONFIG_URL","oldfetch","fullUrl","promisedRequest","_ref$headers","Accept","authHeaders","parseUser","_ref24$limit","MASTODON_FOLLOWING_URL","announcementToPayload","_ref109","_ref113","_ref113$args","_ref114","_ref115","MASTODON_STREAMING","MASTODON_STREAMING_EVENTS","PLEROMA_STREAMING_EVENTS","_ref116","_ref116$preprocessor","preprocessor","handleMastoWS","_ref116$id","eventTarget","proxy","original","eventName","eventData","dispatchEvent","CustomEvent","wsEvent","readyState","parsedEvent","parseStatus","parseNotification","freeze","JOINED","ERROR","DISABLED","STARTING","STARTING_INITIAL","_ref50$since","_ref50$until","_ref50$userId","_ref50$listId","_ref50$tag","_ref50$withMuted","_ref50$replyVisibilit","_ref50$includeTypes","includeTypes","isNotifications","queryString","param","parseLinkHeaderPagination","flakeId","urlContext","MASTODON_STATUS_CONTEXT_URL","MASTODON_STATUS_SOURCE_URL","parseSource","originalStatus","exportFriends","more","_ref27$limit","MASTODON_FOLLOWERS_URL","MASTODON_FOLLOW_URL","unfollowUser","MASTODON_UNFOLLOW_URL","MASTODON_BLOCK_USER_URL","MASTODON_UNBLOCK_USER_URL","MASTODON_REMOVE_USER_FROM_FOLLOWERS","_ref59$mediaIds","mediaIds","inReplyToStatusId","quoteId","pollOptions","normalizedPoll","expires_in","multiple","postHeaders","_ref60$mediaIds","putHeaders","uploadMedia","formData","parseAttachment","setMediaDescription","URLSearchParams","with_relationships","_ref83","_ref84","_ref87","_ref88","deleteUser","addRight","deleteRight","agreement","resp","updateProfileImages","_ref5$avatar","_ref5$avatarName","avatarName","_ref5$banner","_ref5$background","importMutes","importBlocks","importFollows","deleteAccount","changeEmail","moveAccount","targetAccount","addAlias","alias","deleteAlias","listAliases","_cacheBooster","changePassword","newPassword","newPasswordConfirmation","settingsMFA","mfaDisableOTP","generateMfaBackupCodes","mfaSetupOTP","mfaConfirmOTP","addBackup","_ref85","listBackups","_ref86","fetchFollowRequests","fetchLists","MASTODON_LISTS_URL","account_ids","MASTODON_APPROVE_USER_URL","MASTODON_DENY_USER_URL","_ref89","_ref90","_ref90$single","_ref105","_ref91","_ref92","_ref93","_ref94","_ref95","_ref96","_ref97","_ref98","status_ids","_ref100","_ref99","fetchKnownDomains","_ref101","_ref102","_ref103","_ref104","_ref117","_ref118","_ref119","_ref119$limit","_ref120","_ref120$mediaId","media_id","_ref121","last_read_id","_ref122","_ref123","MASTODON_USER_IN_LISTS","_ref107","_ref108","_ref110","_ref111","_ref112","_ref106","_ref124","_ref125","_ref126","_ref127","installFrontend","_ref128","propsToNative","_kebabCase","rgb2hex","g","_r","_map2","relativeLuminance","srgb","_srgbToLinear","bit","c2linear","srgbToLinear","getContrastRatio","getContrastRatioLayers","layers","bedrock","alphaBlendLayers","alphaBlend","fg","fga","bg","hex2rgb","hex","mixrgb","rgba2css","rgba","getTextColor","preserve","base","invertLightness","rgb","contrastRatio","getCssColor","Component","isFunction","getComponentOptions","SECOND","MINUTE","HOUR","WEEK","MONTH","YEAR","relativeTime","nowThreshold","round","relativeTimeShort","unitToSeconds","secondsToUnit","desktopNotificationOpts","desktopNotification","bind","output","masto","mastoShort","escape","display_name","name_unescaped","note","description_html","fields","unescape","cover_photo","following_count","bot","settings_store","favicon","chat_token","hide_follows_count","hide_followers_count","is_moderator","is_admin","default_scope","privacy","no_rich_text","show_role","show_birthday","delete_others_notice","muted","blocking","statusnet_blocking","follows_you","follow_request_count","notification_settings","unread_chat_count","parts","unicodeDomain","punycode","screen_name_ui_contains_non_ascii","mime_type","large_thumb_url","spoiler_text","content_type","favourited","favourites_count","reblogged","reblogs_count","edited_at","conversation_id","local","in_reply_to_screen_name","in_reply_to_account_acct","parent_visible","quote_id","quote_url","quote_visible","in_reply_to_id","in_reply_to_user_id","in_reply_to_account_id","replies_count","summary_raw_html","external_url","title_html","is_post_verb","qvitter_delete_notice","activity_type","qvitterStatusType","isNsfw","statusnet_html","summary_html","card","media_attachments","parsedNotice","ntype","is_seen","favorited_status","emoji_url","actor","linkHeader","parsedLinkHeader","parseLinkHeader","max_id","min_id","last_message","favicons","faviconWidth","faviconHeight","isImageLoaded","clearFaviconBadge","complete","naturalHeight","initFaviconService","querySelectorAll","favcanvas","createElement","favimg","Image","crossOrigin","favcontext","getContext","clearRect","drawImage","toDataURL","drawFaviconBadge","badgeColor","fillStyle","beginPath","arc","PI","fileSizeFormat","numArg","units","exponent","toFixed","fileTypeExt","fileMatchesSomeType","specialLanguageCodes","ja_easy","zh_Hant","zh","internalToBrowserLocale","internalToBackendLocale","getLanguageName","languageName","ISO6391","charAt","toLocaleUpperCase","languagesObject","internalToBackendLocaleMulti","visibleTypes","statusNotifications","_includes","muteWordHits","isMutedNotification","notificationObject","prepareNotificationObject","filteredNotificationsFromStore","sortedNotifications","i18nString","notifObj","mastoApiNotificationTypes","readNotifsIds","findOffset","child","_ref$top","_ref$left","ignorePadding","offsetLeft","_findPadding","findPadding","topPadding","leftPadding","offsetParent","position","contains","_findPadding2","topPaddingStr","leftPaddingStr","promiseCall","stopped","promise","random","statusSummary","muteWord","_ref$media","_ref$inReplyToStatusI","_ref$quoteId","_ref$contentType","_ref$preview","_ref$idempotencyKey","_ref2$media","_ref2$contentType","rules","generatePreset","head","styleEl","appendChild","styleSheet","sheet","insertRule","radii","shadows","fonts","configColumns","defaultConfigColumns","columns","getCssShadow","usesDropShadow","inset","shad","spread","alpha","getCssShadowFilter","generateColors","sourceColors","colors2to3","_getColors","getColors","htmlColors","solid","generateRadii","inputRadii","btnRadius","btn","checkbox","avatarAlt","tooltip","chatMessage","generateFonts","family","post","postCode","border","shadow","buttonInsetFakeBorders","inputInsetFakeBorders","hoverGlow","DEFAULT_SHADOWS","topBar","popup","avatarStatus","panelHeader","buttonHover","buttonPressed","generateShadows","hackContextDict","cleanInputShadows","shadowDef","inputShadows","shadows2to3","shadowsAcc","slotName","shadowDefs","slotFirstWord","colorSlotName","mod","newShadow","shadowAcc","computeDynamicColor","variableSlot","composePreset","getThemes","themes","promises","statePositionAcc","_ref48$color","getOpacitySlot","isV1","cRed","cGreen","cBlue","cOrange","LAYERS","undelay","badge","profileTint","popover","selectedMenu","btnPanel","btnTopBar","inputPanel","inputTopBar","alert","alertPanel","chatBg","DEFAULT_OPACITY","faint","underlay","alertPopup","SLOT_INHERITANCE","depends","priority","wallpaper","brightness","layer","accent","faintLink","postFaintLink","profileBg","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","postGreentext","postCyantext","copacity","pollText","inheritsOpacity","fgText","fgLink","panelText","panelFaint","panelLink","topBarText","topBarLink","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","alertSuccess","alertSuccessText","alertSuccessPanelText","alertNeutral","alertNeutralText","alertNeutralPanelText","alertPopupError","alertPopupErrorText","alertPopupWarning","alertPopupWarningText","alertPopupSuccess","alertPopupSuccessText","alertPopupNeutral","alertPopupNeutralText","badgeNotification","badgeNotificationText","badgeNeutral","badgeNeutralText","chatMessageIncomingBg","chatMessageIncomingText","chatMessageIncomingLink","chatMessageIncomingBorder","chatMessageOutgoingBg","chatMessageOutgoingText","chatMessageOutgoingLink","chatMessageOutgoingBorder","getLayersArray","getLayers","opacitySlot","currentLayer","getDependencies","inheritance","layerDeps","expandSlotValue","getDeps","findInheritedOpacity","visited","depSlot","dependency","getLayerSlot","findInheritedLayer","SLOT_ORDERED","allKeys","whites","grays","blacks","unprocessed","node","ai","bi","depsA","depsB","topoSort","aV","bV","OPACITIES","defaultValue","affectedSlots","sourceColor","getColor","targetColor","_sourceColor$split$ma","_sourceColor$split$ma2","variable","modifier","parseFloat","sourceOpacity","backgroundColor","deps","isTextColor","outputColor","colorFunc","dep","ownOpacitySlot","opacityOverriden","dependencySlot","dependencyColor","highlightStyle","prefs","solidColor","tintColor","tintColor2","customProps","backgroundImage","backgroundPosition","highlightClass","complicated","faFile","faMusic","faImage","faVideo","faPlayCircle","faStop","faSearchPlus","faTrashAlt","faPencilAlt","faAlignRight","localDescription","nsfwImage","hideNsfwLocal","modalOpen","showHidden","flashLoaded","showDescription","classNames","usePlaceholder","placeholderName","toUpperCase","placeholderIconClass","referrerpolicy","oembed","useModal","modalTypes","videoTag","onEdit","openModal","openModalForce","onRemove","onShiftUp","shiftUp","onShiftDn","shiftDn","stopFlash","flash","closePlayer","setFlashLoaded","toggleDescription","onload","onImageLoad","naturalWidth","hideDescription","onKeydown","_component_StillImage","onPlay","onPause","thumb_url","oembedHTML","onPlayerOpened","onPlayerClosed","slicedUsers","_component_user_link","vm","indeterminateTransitionFix","indeterminate","onTransitionEnd","modelValue","DialogModal","cancelText","confirmText","onAccept","_component_dialog_modal","darkOverlay","addPositionToWords","words","word","previous","splitByWhitespaceBoundary","currentWord","currentChar","pos","wordsWithPosition","toReplace","ariaLive","defualt","currentText","announce","_textAtCaret","faSmileBeam","suggest","enableEmojiPicker","hideEmojiButton","enableStickerPicker","newlineOnCtrlEnter","randomSeed","genRandomSeed","caretEl","caret","blurTimeout","temporarilyHideSuggestions","disableClickOutside","overlayStyle","pickerShown","EmojiPicker","UnicodeDomainIndicator","ScreenReaderNotice","defaultCandidateIndex","preText","postText","showSuggestions","textAtCaret","_this$wordAtCaret","wordAtCaret","Completion","maybeLocalizedEmojiNamesAndKeywords","_emoji$annotations$la","_emoji$annotations$la2","maybeLocalizedEmojiName","_emoji$annotations$la3","onInputScroll","hiddenOverlay","scrollLeft","suggestionListId","suggestionItemId","_this$$refs","hiddenOverlayCaret","suggestorPopover","setAnchorEl","picker","padding","lineHeight","fontFamily","fontSize","wordWrap","whiteSpace","onBlur","onFocus","onPaste","onKeyUp","onKeyDown","onClickInput","onTransition","showPopover","hidePopover","newWord","firstchar","matchedSuggestions","_take","screenReaderNotice","number","triggerShowPicker","showPicker","scrollIntoView","togglePicker","hidePicker","startEmojiLoad","insert","insertion","keepOpen","_ref2$surroundingSpac","surroundingSpace","before","after","isSpaceRegex","spaceBefore","spaceAfter","replaceText","suggestion","cycleBackward","cycleForward","rootRef","scrollerRef","closest","currentScroll","scrollerBottomBorder","rootBottomBorder","targetScroll","scroll","bottom","onPickerShown","onPickerClosed","setCaret","ctrlKey","shiftKey","onStickerUploaded","onStickerUploadFailed","selectionStart","updateStyles","autoCompleteItemLabel","ariaOwns","ariaAutocomplete","ariaExpanded","ariaActivedescendant","_component_screen_reader_notice","_component_EmojiPicker","onEmoji","_component_UnicodeDomainIndicator","at","faBoxOpen","faStickyNote","faSmile","faUser","faPaw","faIceCream","faBus","faBasketballBall","faLightbulb","faCode","faFlag","UNICODE_EMOJI_GROUP_ICON","activities","objects","flags","maybeLocalizedKeywords","nameLocalizer","hideCustomEmoji","inject","activeGroup","showingStickers","groupsScrolledClass","customEmojiTimeout","contentLoaded","groupRefs","emojiRefs","filteredEmojiGroups","StickerPicker","onShowing","setGroupRef","onPopoverShown","onPopoverClosed","startIndex","endIndex","visibleStartIndex","visibleEndIndex","scrolledGroup","emojiItems","headerId","parentElement","getOffset","scrollHeader","headerRef","offsetWidth","headerCont","currentScrollRight","setScroll","setShowStickers","indexInList","scrollToItem","updateScrolledClass","scrollTopMax","toggleStickers","filterByKeyword","keywordLowercase","orderedEmojiList","indices","indexOfKeyword","flat","oldContentLoaded","recalculateItemPerRow","getFilteredEmojiGroups","defaultGroup","allEmojiGroups","_trim","debouncedHandleKeywordChange","allCustomGroups","minItemSize","emojiHeight","emojiWidth","itemPerRow","activeGroupView","stickersAvailable","unpacked","unicodeEmojiGroups","stickerPickerEnabled","_chunk","isFirstRow","isInModal","popoversZLayer","tabindex","_component_still_image","composing","_component_DynamicScroller","onUpdate","onVisible","_component_DynamicScrollerItem","_component_sticker_picker","onUploaded","onUploadFailed","ruffleInstance","getRuffle","RufflePlayer","polyfills","publicPath","script","onerror","onabort","oncancel","faExclamationTriangle","player","openPlayer","RuffleService","ruffle","newest","createPlayer","letterbox","container","fetchRelationship","attempt","requested","requestFollow","showingConfirmUnfollow","shouldConfirmUnfollow","isPressed","labelFollowing","showConfirmUnfollow","hideConfirmUnfollow","unfollow","doUnfollow","requestUnfollow","hidingLong","minimal","grid","audio","attachmentsRemaining","currentRow","attachmentsDimensionalScore","row","tooManyAttachments","editable","onNaturalSizeLoad","rowStyle","itemStyle","getAspectRatio","flex","toggleHidingLong","openGallery","onMedia","rowIndex","attachmentIndex","_component_Attachment","removeAttachment","shiftUpAttachment","shiftDnAttachment","editAttachment","onSetMedia","Select","promptText","controlledLanguage","addLanguage","setLanguageAt","removeLanguageAt","_component_Select","imageLoaded","useImage","censored","hideNsfwConfig","useDescription","newImg","provider_name","getKey","faUpload","uploadCount","uploadReady","uploading","uploadFile","self","filesize","allowedsize","filesizeunit","allowedsizeunit","fileData","decreaseUploadCount","clearFile","multiUpload","files","change","dropFiles","normalButton","acceptTypes","fileInfos","accept","faAt","userScreenName","hasSelection","shouldShowTooltip","handleSelection","getSelection","containsNode","full","userNameFullUi","serverName","userNameFull","highlightType","_highlightStyle","classnames","shouldBoldenYou","isRemote","shouldShowFullUserName","conf","shouldShowAvatar","shouldShowYous","shouldFadeDomain","MentionLink","mentionsComputed","extraMentions","manyMentions","toggleShowMore","_component_MentionLink","provide","noBackground","reportId","generateUserProfileLink","_component_status_content","notes","faStar","faRetweet","faEyeSlash","faSuitcaseRolling","faExpandAlt","faCompressAlt","statusExpanded","unmuted","Report","toggleStatusExpanded","getUser","toggleMute","userClass","userStyle","targetUser","targetUserProfileLink","needMute","botIndicator","_component_Report","filters","toggleNotificationFilter","NotificationFilters","minimalMode","seenToDisplayCount","mainClass","filteredNotifications","unseenCount","unseenCountTitle","noHeading","teleportTarget","wide","mobile","notificationsToDisplay","updateScrollPosition","markAsSeen","seenCount","notifs","_component_NotificationFilters","unseen","_component_notification","boundTo","boundToSelector","popoverClass","removePadding","overlayCenters","overlayCentersSelector","stayOnClick","triggerAttrs","anchorEl","teleport","lockReEntry","styles","oldSize","scrollable","graceTimeout","parentPopover","childrenShown","containerBoundingClientRect","anchorHeight","anchorWidth","anchorScreenBox","anchorStyle","paddingTop","bottomPadding","paddingBottom","rightPadding","paddingLeft","overlayCenter","parentScreenBox","xBounds","yBounds","horizOffset","vertOffset","box","overlayCenterScreenBox","leftInnerOffset","topInnerOffset","leftBorder","rightBorder","topBorder","bottomBorder","translateX","translateY","usingTop","topBoundary","bottomBoundary","yOffset","usingRight","rightBoundary","leftBoundary","xOffset","maxWidth","wasHidden","onChildPopoverState","onClickOutside","onMouseenterContent","onMouseleaveContent","childRef","$parent","$","beforeUnmount","_Transition","onClickContent","faPlus","pollType","expiryAmount","expiryUnit","maxOptions","maxLength","expiryUnits","expiry","convertExpiryFromUnit","minExpirationInCurrentUnit","convertExpiryToUnit","maxExpirationInCurrentUnit","nextOption","element","addOption","deleteOption","updatePollToParent","DateUtils","expiryAmountChange","maxlength","unstyled","faPollH","faBan","pxStringToNumber","MediaUpload","EmojiInput","PollForm","ScopeSelector","updateIdempotencyKey","textarea","replyTo","textLength","autoFocus","_ref$attentions","allAttentions","_reject","attention","buildMentionsString","repliedUser","copyMessageScope","statusParams","subject","mediaDescriptions","statusContentType","statusIsSensitive","statusFiles","statusPoll","statusMediaDescriptions","statusScope","quoting","uploadingFiles","pollFormVisible","showDropIcon","dropStopTimeout","previewLoading","emojiInputShown","userDefaultScope","showAllScopes","emojiUserSuggestor","suggestor","emojiSuggestor","statusLength","spoilerTextLength","statusLengthLimit","hasStatusLengthLimit","charactersLeft","isOverLengthLimit","alwaysShowSubject","safeDMEnabled","disablePolls","disableNotice","pollContentError","showPreview","disablePreview","emptyStatus","uploadFileLimitReached","fileLimit","isEdit","quotable","repliedStatus","deep","statusChanged","autoPreview","clearStatus","mediaUpload","clearPollForm","preserveFocus","previewStatus","_arguments","_postingOptions","replyOrQuoteAttr","postingOptions","optimisticPosting","disableSubmit","submitOnEnter","setAllMediaDescriptions","postHandler","statusPoster","_statusPoster$postSta","debouncePreviewStatus","closePreview","togglePreview","addMediaFile","fileInfo","removeMediaFile","newText","shiftUpMediaFile","shiftDnMediaFile","uploadFailed","errString","templateArgs","startedUploadingFiles","finishedUploadingFiles","paste","clipboardData","fileDrop","dataTransfer","fileDragStop","fileDrag","dropEffect","onEmojiInputInput","formRef","bottomRef","bottomBottomPaddingStr","bottomBottomPadding","bottomPaddingStr","vertPadding","oldHeight","scrollerHeight","heightWithoutPadding","newHeight","maxHeight","bottomBottomBorder","isBottomObstructed","isFormBiggerThanScroller","bottomChangeDelta","totalDelta","showEmojiPicker","changeVis","togglePollForm","setPoll","pollForm","dismissScopeNotice","handleEmojiInputShow","openProfileTab","onDragover","disableLockWarning","disableSubject","_component_EmojiInput","inputProps","emojiPickerPlacement","onShown","onCompositionupdate","disableScopeSelector","disableVisibilitySelector","_component_scope_selector","postFormat","_component_poll_form","onUpdatePoll","_component_media_upload","onUploading","onAllUploaded","animation","onDragleave","onDrop","_component_gallery","disableSensitivityCheckbox","progress","$data","subscribeUrl","serverUrl","protocol","host","faLock","faLockOpen","currentScope","initialScope","showNothing","showPublic","showUnlisted","showPrivate","showDirect","originalScope","shouldShow","css","unlisted","private","direct","showAll","userDefault","onScopeChange","faReply","faStarRegular","animated","filterWord","addReaction","existingReaction","show","showingConfirmDialog","shouldConfirmRepeat","showConfirmDialog","doRetweet","hideConfirmDialog","faBookmarkReg","faShareAlt","faExternalLinkAlt","faHistory","showingDeleteDialog","shouldConfirmDelete","showDeleteStatusConfirmDialog","doDeleteStatus","hideDeleteStatusConfirmDialog","copyLink","clipboard","writeText","statusLink","reportStatus","showStatusHistory","p","canDelete","ownStatus","canPin","canMute","canBookmark","isEdited","_component_ConfirmModal","enter","oldStatus","usersCapped","UserListPopover","tooManyReactions","showMoreString","accountsForEmoji","toggleShowAll","reactedWith","fetchEmojiReactionsByIfMissing","reactWith","unreact","emojiOnClick","counterTriggerAttrs","_component_UserListPopover","faPlusSquare","faEye","camelCase","controlledOrUncontrolledSet","camelized","uncontrolledName","ReplyButton","FavoriteButton","ReactButton","RetweetButton","ExtraButtons","StatusPopover","EmojiReactions","uncontrolledReplying","userExpanded","uncontrolledMediaPlaying","headTailLinks","displayQuote","inQuote","toggle","controlledName","showReasonMutedThread","inConversation","repeaterClass","repeaterStyle","replyProfileLink","isReply","retweeterUser","retweeter","retweeterHtml","retweeterProfileLink","statusFromGlobalRepository","rtBotStatus","botStatus","rtBotIndicator","mentionsLine","writtenSet","attn","hasMentionsLine","reasonsToMute","userIsMuted","shouldNotMute","relationshipReblog","hideMutedUsers","isFocused","replyToName","replySubject","decodedSummary","startsWithRe","combinedFavsAndRepeatsUsers","combinedUsers","tagObj","isSuspendable","inThreadForest","controlledThreadDisplayStatus","visibilityLocalized","hasVisibleQuote","hasInvisibleQuote","quotedStatus","shouldDisplayQuote","visibilityIcon","showError","toggleReplying","gotoOriginal","toggleUserExpanded","addMediaPlaying","removeMediaPlaying","setHeadTailLinks","controlledToggleThreadDisplay","scrollIfHighlighted","highlightId","rect","toggleDisplayQuote","inlineExpanded","isPreview","showPinned","_hoisted_54","_hoisted_55","_hoisted_56","_hoisted_57","_component_reply_button","onToggle","simpleTree","_hoisted_31","_component_StatusPopover","flip","_component_MentionsLine","controlledShowingTall","controlledExpandingSubject","controlledShowingLongSubject","controlledToggleShowingTall","controlledToggleExpandingSubject","controlledToggleShowingLongSubject","onMediaplay","onMediapause","onParseReady","_hoisted_40","showOtherRepliesAsButton","_hoisted_41","_hoisted_46","_hoisted_49","_hoisted_50","_hoisted_51","_hoisted_52","_component_AvatarList","_component_EmojiReactions","_hoisted_53","_component_retweet_button","_component_favorite_button","_component_ReactButton","_component_extra_buttons","onOnError","onOnSuccess","_hoisted_58","basePoll","expiresAt","showResults","voted","totalVotesCount","votes_count","containerClass","choiceIndices","isDisabled","noChoice","percentageForOption","resultTitle","activateOption","clickedElement","_forEach","optionId","voters_count","faLink","postLength","parseReadyDone","localCollapseSubjectDefault","tallStatus","singleLine","longSubject","mightHideBecauseSubject","mightHideBecauseTall","hideSubjectStatus","hideTallStatus","showingMore","attachmentTypes","handle","toggleShowingTall","toggleExpandingSubject","toggleShowingLongSubject","fullContent","controlledOrUncontrolledToggle","uncontrolledShowingTall","uncontrolledShowingLongSubject","uncontrolledExpandingSubject","statusCard","nsfwClickthrough","attachmentSize","Poll","galleryAttachments","_component_Poll","_component_link_preview","realSrc","appendPx","loadLazy","dataSrc","imageLoadHandler","canvas","imageLoadError","removeAttribute","localeDateString","relativeTimeString","timeString","tc","templateKey","refreshRelativeTimeObject","longFormat","datetime","faRobot","showPlaceholder","imgSrc","FORCE_NSFW","STRIP_MEDIA","FORCE_UNLISTED","DISABLE_REMOTE_SUBSCRIPTION","DISABLE_ANY_SUBSCRIPTION","SANDBOX","QUARANTINE","showDeleteUserDialog","tagsSet","canGrantRole","canChangeActivationState","privileged","canDeleteAccount","canUseTagPolicy","tagPolicyAvailable","hasTag","privilege","toggleTag","toggleRight","deleteUserDialog","isProfile","isTargetUser","setToggled","_component_DialogModal","inListsSet","inList","toggleList","faEllipsisV","showingConfirmBlock","ProgressButton","UserListMenu","showConfirmBlock","hideConfirmBlock","showRepeats","hideRepeats","shouldConfirmBlock","doBlockUser","showing_reblogs","_component_UserListMenu","localNote","frozen","startEditing","cancelEditing","finalizeEditing","faRss","faEdit","followRequestInProgress","showingConfirmMute","muteExpiryAmount","muteExpiryUnit","bordered","isOtherUser","dailyAvg","days","userHighlightType","userHighlightColor","visibleRole","validRole","roleTitle","showModerationMenu","hasNote","supportsNote","shouldConfirmMute","muteExpiryUnits","ModerationTools","AccountActions","UserNote","showConfirmMute","hideConfirmMute","doMuteUser","setProfileView","zoomAvatar","mentionUser","onAvatarClickHandler","onAvatarClick","hideBio","heading","flexible","avatarAction","_component_AccountActions","subscribing","_component_ProgressButton","_component_ModerationTools","hasNoteEditor","_component_UserNote","blocksSuspend","hasAudio","onPlaying","setHasAudio","looping","onPaused","srcElement","webkitAudioDecodedByteCount","mozHasAudio","audioTracks","preload","loop","playsinline","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","O","chunkIds","fn","notFulfilled","Infinity","fulfilled","getter","__esModule","getPrototypeOf","mode","ns","getOwnPropertyNames","definition","defineProperty","enumerable","chunkId","miniCssF","globalThis","needAttach","scripts","getElementsByTagName","getAttribute","charset","nc","setAttribute","onScriptComplete","doneFns","removeChild","toStringTag","nmd","installedCssChunks","miniCss","fullhref","existingLinkTags","dataHref","existingStyleTags","findStylesheet","oldTag","linkTag","errorType","realHref","createStylesheet","loadStylesheet","installedChunks","installedChunkData","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file
diff --git a/priv/static/static/js/i18n/zh-json.5831b903c3e6d281f122.js.map b/priv/static/static/js/i18n/zh-json.5831b903c3e6d281f122.js.map
deleted file mode 100644
index a844ccca1..000000000
--- a/priv/static/static/js/i18n/zh-json.5831b903c3e6d281f122.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/js/i18n/zh-json.5831b903c3e6d281f122.js","mappings":"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","sources":["webpack://pleroma_fe/./src/i18n/zh.json"],"sourcesContent":["export default {\n \"chat\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"聊天\"])}\n },\n \"exporter\": {\n \"export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"导出\"])},\n \"processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"正在处理,稍后会提示您下载文件\"])}\n },\n \"features_panel\": {\n \"chat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"聊天\"])},\n \"gopher\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gopher\"])},\n \"media_proxy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"媒体代理\"])},\n \"scope_options\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"可见范围设置\"])},\n \"text_limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"文字数量限制\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"功能\"])},\n \"who_to_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"推荐关注\"])},\n \"pleroma_chat_messages\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pleroma 聊天\"])},\n \"upload_limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"上传限制\"])},\n \"shout\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"留言板\"])}\n },\n \"finder\": {\n \"error_fetching_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"获取用户时发生错误\"])},\n \"find_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"寻找用户\"])}\n },\n \"general\": {\n \"apply\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"应用\"])},\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提交\"])},\n \"more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"更多\"])},\n \"generic_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"发生了一个错误\"])},\n \"optional\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"可选\"])},\n \"show_more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"展开\"])},\n \"show_less\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"收起\"])},\n \"cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消\"])},\n \"disable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"禁用\"])},\n \"enable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"启用\"])},\n \"confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"确认\"])},\n \"verify\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"验证\"])},\n \"dismiss\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"忽略\"])},\n \"peek\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"预览\"])},\n \"close\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关闭\"])},\n \"retry\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"重试\"])},\n \"error_retry\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"请重试\"])},\n \"loading\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"载入中…\"])},\n \"role\": {\n \"moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"监察员\"])},\n \"admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"管理员\"])}\n },\n \"flash_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"点击以使用 Ruffle 显示 Flash 内容(实验性,可能无效)。\"])},\n \"flash_security\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"注意这可能有潜在的危险,因为 Flash 内容仍然是任意的代码。\"])},\n \"flash_fail\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Flash 内容加载失败,请在控制台查看详情。\"])},\n \"scope_in_timeline\": {\n \"public\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"公开\"])},\n \"direct\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"私讯\"])},\n \"private\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"仅关注者\"])},\n \"unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"列外\"])}\n },\n \"scroll_to_top\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"滚动至顶\"])},\n \"generic_error_message\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"发生一个错误:\", _interpolate(_list(0))])},\n \"never_show_again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不再显示\"])},\n \"undo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"撤销\"])},\n \"yes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"是\"])},\n \"no\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"否\"])},\n \"unpin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消固定该项\"])},\n \"pin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"固定该项\"])}\n },\n \"image_cropper\": {\n \"crop_picture\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"裁剪图片\"])},\n \"save\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保存\"])},\n \"save_without_cropping\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保存未经裁剪的图片\"])},\n \"cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消\"])}\n },\n \"importer\": {\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提交\"])},\n \"success\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"导入成功。\"])},\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"导入此文件时出现一个错误。\"])}\n },\n \"login\": {\n \"login\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"登录\"])},\n \"description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用 OAuth 登录\"])},\n \"logout\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"登出\"])},\n \"password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"密码\"])},\n \"placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"例如:lain\"])},\n \"register\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"注册\"])},\n \"username\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户名\"])},\n \"hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"登录后加入讨论\"])},\n \"authentication_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"验证码\"])},\n \"enter_recovery_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"输入一个恢复码\"])},\n \"enter_two_factor_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"输入一个双重因素验证码\"])},\n \"recovery_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"恢复码\"])},\n \"heading\": {\n \"totp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"双重因素验证\"])},\n \"recovery\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"双重因素恢复\"])}\n },\n \"logout_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不要登出\"])},\n \"logout_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"确认登出\"])},\n \"logout_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"登出\"])},\n \"logout_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您确定要登出吗?\"])}\n },\n \"media_modal\": {\n \"previous\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"往前\"])},\n \"next\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"往后\"])},\n \"hide\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关闭媒体查看器\"])},\n \"counter\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"current\")), \" / \", _interpolate(_named(\"total\"))])}\n },\n \"nav\": {\n \"about\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关于\"])},\n \"back\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"后退\"])},\n \"chat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本站聊天\"])},\n \"friend_requests\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关注请求\"])},\n \"mentions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提及\"])},\n \"interactions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"互动\"])},\n \"dms\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"私信\"])},\n \"public_tl\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"公共时间线\"])},\n \"timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"时间线\"])},\n \"twkn\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已知网络\"])},\n \"user_search\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户搜索\"])},\n \"search\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"搜索\"])},\n \"who_to_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"推荐关注\"])},\n \"preferences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"偏好设置\"])},\n \"administration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"管理员\"])},\n \"chats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"聊天\"])},\n \"timelines\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"时间线\"])},\n \"bookmarks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"书签\"])},\n \"home_timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"主页时间线\"])},\n \"lists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"列表\"])},\n \"edit_finish\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"完成编辑\"])},\n \"mobile_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"打开通知(有未读的)\"])},\n \"mobile_notifications_close\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关闭通知\"])},\n \"announcements\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"公告\"])},\n \"edit_nav_mobile\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"自定义导航栏\"])},\n \"edit_pinned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"编辑固定的项目\"])},\n \"mobile_sidebar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"切换移动设备侧栏\"])},\n \"search_close\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关闭搜索栏\"])}\n },\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"未知的状态,正在搜索中…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"喜欢了你的状态\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关注了你\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"加载更早的通知\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"通知\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已阅!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"转发了你的状态\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"没有更多的通知\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"作出了 \", _interpolate(_list(0)), \" 的反应\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"迁移到了\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"想要关注你\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"取得通知时发生错误:\", _interpolate(_list(0))])},\n \"poll_ended\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"投票结束了\"])},\n \"submitted_report\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提交举报\"])}\n },\n \"polls\": {\n \"add_poll\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"增加投票\"])},\n \"add_option\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"增加选项\"])},\n \"option\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"选项\"])},\n \"votes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"投票\"])},\n \"vote\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"投票\"])},\n \"type\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"投票类型\"])},\n \"single_choice\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"单选\"])},\n \"multiple_choices\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"多选\"])},\n \"expiry\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"投票期限\"])},\n \"expires_in\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"投票于 \", _interpolate(_list(0)), \" 后结束\"])},\n \"expired\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"投票 \", _interpolate(_list(0)), \" 前已结束\"])},\n \"not_enough_options\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"投票的选项太少\"])},\n \"votes_count\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"count\")), \" 票\"]), _normalize([_interpolate(_named(\"count\")), \" 票\"])])},\n \"people_voted_count\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"count\")), \" 人已投票\"]), _normalize([_interpolate(_named(\"count\")), \" 人已投票\"])])}\n },\n \"stickers\": {\n \"add_sticker\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"添加贴纸\"])}\n },\n \"interactions\": {\n \"favs_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"转发和喜欢\"])},\n \"follows\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"新的关注者\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"加载更早的互动\"])},\n \"moves\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户迁移\"])},\n \"reports\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"举报\"])},\n \"emoji_reactions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"表情回应\"])}\n },\n \"post_status\": {\n \"new_status\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"发布新状态\"])},\n \"account_not_locked_warning\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"你的帐号没有 \", _interpolate(_list(0)), \"。任何人都可以关注你并浏览你的上锁内容。\"])},\n \"account_not_locked_warning_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"上锁\"])},\n \"attachments_sensitive\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"标记附件为敏感内容\"])},\n \"content_type\": {\n \"text/plain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"纯文本\"])},\n \"text/html\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"HTML\"])},\n \"text/markdown\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Markdown\"])},\n \"text/bbcode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"BBCode\"])}\n },\n \"content_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"主题(可选)\"])},\n \"default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"刚刚抵达上海。\"])},\n \"direct_warning_to_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本条内容只有被提及的用户能够看到。\"])},\n \"direct_warning_to_first_only\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本条内容只有被在消息开始处提及的用户能够看到。\"])},\n \"posting\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"发送中\"])},\n \"scope_notice\": {\n \"public\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本条内容可以被所有人看到\"])},\n \"private\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关注你的人才能看到本条内容\"])},\n \"unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本条内容既不在公共时间线,也不会在所有已知网络上可见\"])}\n },\n \"scope\": {\n \"direct\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"私信 - 只发送给被提及的用户\"])},\n \"private\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"仅关注者 - 只有关注了你的人能看到\"])},\n \"public\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"公共 - 发送到公共时间轴\"])},\n \"unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不公开 - 不会发送到公共时间轴\"])}\n },\n \"preview_empty\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"空的\"])},\n \"preview\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"预览\"])},\n \"media_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"媒体描述\"])},\n \"media_description_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"更新媒体失败,请重试\"])},\n \"empty_status_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不能发布没有内容、没有附件的发文\"])},\n \"post\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"发送\"])},\n \"edit_remote_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"其它远程实例可能不支持编辑并且无法接收您的帖子的最新版本。\"])},\n \"edit_unsupported_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pleroma 不支持对提及或投票进行编辑。\"])},\n \"edit_status\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"编辑状态\"])},\n \"content_type_selection\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"发帖格式\"])},\n \"scope_notice_dismiss\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关闭此提示\"])}\n },\n \"registration\": {\n \"bio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"简介\"])},\n \"email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"电子邮箱\"])},\n \"fullname\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示名称\"])},\n \"password_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"确认密码\"])},\n \"registration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"注册\"])},\n \"token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"邀请码\"])},\n \"captcha\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"CAPTCHA\"])},\n \"new_captcha\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"点击图片获取新的验证码\"])},\n \"username_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"例如:lain\"])},\n \"fullname_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"例如:岩仓玲音\"])},\n \"bio_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"例如:\\n你好,我是玲音。\\n我是一个住在日本郊区的动画少女。你可能在 Wired 见过我。\"])},\n \"validations\": {\n \"username_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不能留空\"])},\n \"fullname_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不能留空\"])},\n \"email_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不能留空\"])},\n \"password_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不能留空\"])},\n \"password_confirmation_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不能留空\"])},\n \"password_confirmation_match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"密码不一致\"])},\n \"birthday_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不能为空\"])},\n \"birthday_min_age\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"必须在 \", _interpolate(_named(\"date\")), \" 或之前\"])}\n },\n \"reason_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"此实例的注册需要手动批准。\\n请让管理员知道您为什么想要注册。\"])},\n \"reason\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"注册理由\"])},\n \"register\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"注册\"])},\n \"email_language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"你想从服务器收到什么语言的邮件?\"])},\n \"bio_optional\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"介绍(可选)\"])},\n \"email_optional\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"电子邮件(可选)\"])},\n \"birthday\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"生日:\"])},\n \"birthday_optional\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"生日(可选):\"])}\n },\n \"selectable_list\": {\n \"select_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"选择全部\"])}\n },\n \"settings\": {\n \"app_name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"App 名称\"])},\n \"security\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"安全\"])},\n \"enter_current_password_to_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"输入您当前的密码来确认您的身份\"])},\n \"mfa\": {\n \"otp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OTP\"])},\n \"setup_otp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"设置 OTP\"])},\n \"wait_pre_setup_otp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"预设 OTP\"])},\n \"confirm_and_enable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"确认并启用 OTP\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"双因素验证\"])},\n \"generate_new_recovery_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"生成新的恢复码\"])},\n \"warning_of_generate_new_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"当您生成新的恢复码时,您旧的恢复码将会失效。\"])},\n \"recovery_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"恢复码。\"])},\n \"waiting_a_recovery_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"正在接收备份码…\"])},\n \"recovery_codes_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"抄写这些号码,或者将其保存在安全的地方。这些号码不会再次显示。如果您无法访问您的 2FA app,也丢失了您的恢复码,您就再也无法登录您的账号了。\"])},\n \"authentication_methods\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"身份验证方法\"])},\n \"scan\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"扫一下\"])},\n \"desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"使用您的双因素验证 app,扫描这个二维码,或者输入这些文字密钥:\"])},\n \"secret_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"密钥\"])}\n },\n \"verify\": {\n \"desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"要启用双因素验证,请输入您的双因素验证 app 里的数字:\"])}\n }\n },\n \"attachmentRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"附件\"])},\n \"attachments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"附件\"])},\n \"avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"头像\"])},\n \"avatarAltRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"头像(通知)\"])},\n \"avatarRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"头像\"])},\n \"background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"背景\"])},\n \"bio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"简介\"])},\n \"block_export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"屏蔽名单导出\"])},\n \"block_export_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"导出你的屏蔽名单到一个 csv 文件\"])},\n \"block_import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"屏蔽名单导入\"])},\n \"block_import_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"导入屏蔽名单出错\"])},\n \"blocks_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"屏蔽名单导入成功!需要一点时间来处理。\"])},\n \"blocks_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"屏蔽\"])},\n \"btnRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"按钮\"])},\n \"cBlue\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"蓝色(回复,关注)\"])},\n \"cGreen\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"绿色(转发)\"])},\n \"cOrange\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"橙色(喜欢)\"])},\n \"cRed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"红色(取消)\"])},\n \"change_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"修改密码\"])},\n \"change_password_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"修改密码的时候出了点问题。\"])},\n \"changed_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"成功修改了密码!\"])},\n \"collapse_subject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"折叠带主题的内容\"])},\n \"composing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"撰写\"])},\n \"confirm_new_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"确认新密码\"])},\n \"current_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"当前头像\"])},\n \"current_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"当前密码\"])},\n \"current_profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您当前的横幅图片\"])},\n \"data_import_export_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"数据导入/导出\"])},\n \"default_vis\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"默认可见范围\"])},\n \"delete_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"删除账户\"])},\n \"delete_account_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"永久删除你的帐号和所有数据。\"])},\n \"delete_account_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"删除账户时发生错误,如果一直删除不了,请联系实例管理员。\"])},\n \"delete_account_instructions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在下面输入您的密码来确认删除账户。\"])},\n \"avatar_size_instruction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"推荐的头像图片最小尺寸为 150x150 像素。\"])},\n \"export_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"导出预置主题\"])},\n \"filtering\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"过滤器\"])},\n \"filtering_explanation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"所有包含以下词汇的内容都会被隐藏,一行一个\"])},\n \"follow_export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"导出关注\"])},\n \"follow_export_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"将关注导出成 csv 文件\"])},\n \"follow_import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"导入关注\"])},\n \"follow_import_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"导入关注时错误\"])},\n \"follows_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关注已导入!尚需要一些时间来处理。\"])},\n \"foreground\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"前景\"])},\n \"general\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"通用\"])},\n \"hide_attachments_in_convo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在对话中隐藏附件\"])},\n \"hide_attachments_in_tl\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在时间线上隐藏附件\"])},\n \"hide_muted_posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不显示被隐藏的用户的帖子\"])},\n \"max_thumbnails\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"每个帖子最多能显示的缩略图数量\"])},\n \"hide_isp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏实例独有的面板\"])},\n \"preload_images\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"预载图片\"])},\n \"use_one_click_nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"点击一次以打开工作场所不适宜(NSFW)的附件\"])},\n \"hide_post_stats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏帖子的统计数据(例如:喜欢的次数)\"])},\n \"hide_user_stats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏用户的统计数据(例如:关注者的数量)\"])},\n \"hide_filtered_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏过滤的状态\"])},\n \"import_blocks_from_a_csv_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"从 csv 文件中导入拉黑名单\"])},\n \"import_followers_from_a_csv_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"从 csv 文件中导入关注\"])},\n \"import_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"导入预置主题\"])},\n \"inputRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"输入框\"])},\n \"checkboxRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"复选框\"])},\n \"instance_default\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"(默认:\", _interpolate(_named(\"value\")), \")\"])},\n \"instance_default_simple\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(默认)\"])},\n \"interface\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"界面\"])},\n \"interfaceLanguage\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"界面语言\"])},\n \"invalid_theme_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您所选择的主题文件不被 Pleroma 支持,因此主题未被修改。\"])},\n \"limited_availability\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在您的浏览器中无法使用\"])},\n \"links\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"链接\"])},\n \"lock_account_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您需要手动审核关注请求\"])},\n \"loop_video\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"循环视频\"])},\n \"loop_video_silent_only\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"只循环没有声音的视频(例如:Mastodon 里的“GIF”)\"])},\n \"mutes_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏\"])},\n \"play_videos_in_modal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在弹出框内播放视频\"])},\n \"use_contain_fit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"生成缩略图时不要裁剪附件\"])},\n \"name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"名字\"])},\n \"name_bio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"名字及简介\"])},\n \"new_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"新密码\"])},\n \"notification_visibility\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"要显示的通知类型\"])},\n \"notification_visibility_follows\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关注\"])},\n \"notification_visibility_likes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"喜欢\"])},\n \"notification_visibility_mentions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提及\"])},\n \"notification_visibility_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"转发\"])},\n \"no_rich_text_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不显示富文本格式\"])},\n \"no_blocks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"没有屏蔽\"])},\n \"no_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"没有隐藏\"])},\n \"hide_follows_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不要显示我所关注的人\"])},\n \"hide_followers_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不要显示关注我的人\"])},\n \"show_admin_badge\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在我的个人资料中显示“管理员”徽章\"])},\n \"show_moderator_badge\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在我的个人资料中显示“监察员”徽章\"])},\n \"nsfw_clickthrough\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"将不和谐附件和链接预览隐藏,点击才会显示\"])},\n \"oauth_tokens\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OAuth令牌\"])},\n \"token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"令牌\"])},\n \"refresh_token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"刷新令牌\"])},\n \"valid_until\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"有效期至\"])},\n \"revoke_token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"撤消\"])},\n \"panelRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"面板\"])},\n \"pause_on_unfocused\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在离开页面时暂停时间线推送\"])},\n \"presets\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"预置\"])},\n \"profile_background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"个人背景图\"])},\n \"profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"横幅图片\"])},\n \"profile_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"个人资料\"])},\n \"radii_help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"设置界面边缘的圆角 (单位:像素)\"])},\n \"replies_in_timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"时间线中的回复\"])},\n \"reply_visibility_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示所有回复\"])},\n \"reply_visibility_following\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"只显示发送给我的回复/发送给我关注的用户的回复\"])},\n \"reply_visibility_self\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"只显示发送给我的回复\"])},\n \"autohide_floating_post_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"自动隐藏新帖子的按钮(移动设备)\"])},\n \"saving_err\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保存设置时发生错误\"])},\n \"saving_ok\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"设置已保存\"])},\n \"search_user_to_block\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"搜索你想屏蔽的用户\"])},\n \"search_user_to_mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"搜索你想要隐藏的用户\"])},\n \"security_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"安全\"])},\n \"scope_copy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"回复时复制可见范围(私信中永远会复制)\"])},\n \"minimal_scopes_mode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"使发文可见范围的选项最少化\"])},\n \"set_new_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"设置新头像\"])},\n \"set_new_profile_background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"设置新的个人资料背景\"])},\n \"set_new_profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"设置新的横幅图片\"])},\n \"settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"设置\"])},\n \"subject_input_always_show\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"总是显示主题框\"])},\n \"subject_line_behavior\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"回复时复制主题\"])},\n \"subject_line_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"类似电子邮件: \\\"re: 主题\\\"\"])},\n \"subject_line_mastodon\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"类似 mastodon: 与原主题相同\"])},\n \"subject_line_noop\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不要复制\"])},\n \"post_status_content_type\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"发文状态内容类型\"])},\n \"stop_gifs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"鼠标悬停时播放GIF\"])},\n \"streaming\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"滚动到顶部时自动推送新内容\"])},\n \"text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"文本\"])},\n \"theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"主题\"])},\n \"theme_help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"使用十六进制代码(#rrggbb)来设置主题颜色。\"])},\n \"theme_help_v2_1\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您也可以通过选中复选框来覆盖某些组件的颜色和透明度。使用“清除所有”按钮来清除所有覆盖设置。\"])},\n \"theme_help_v2_2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"某些条目下的图标是背景或文本对比指示器,鼠标悬停可以获取详细信息。请记住,使用透明度来显示最差的情况。\"])},\n \"tooltipRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提醒\"])},\n \"upload_a_photo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"上传照片\"])},\n \"user_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户设置\"])},\n \"values\": {\n \"false\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"否\"])},\n \"true\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"是\"])}\n },\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"通知\"])},\n \"notification_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"要停止收到某个指定的用户的通知,请使用隐藏功能。\"])},\n \"notification_blocks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"屏蔽一个用户会停止接收来自该用户的所有通知,并且会取消对该用户的关注。\"])},\n \"enable_web_push_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"启用 web 推送通知\"])},\n \"style\": {\n \"switcher\": {\n \"keep_color\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保留颜色\"])},\n \"keep_shadows\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保留阴影\"])},\n \"keep_opacity\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保留透明度\"])},\n \"keep_roundness\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保留圆角\"])},\n \"keep_fonts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保留字体\"])},\n \"save_load_hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"\\\"保留\\\" 选项在选择或加载主题时保留当前设置的选项,在导出主题时还会存储上述选项。当所有复选框未设置时,导出主题将保存所有内容。\"])},\n \"reset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"重置\"])},\n \"clear_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"清除全部\"])},\n \"clear_opacity\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"清除透明度\"])},\n \"load_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"加载主题\"])},\n \"help\": {\n \"upgraded_from_v2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"PleromaFE 已升级,主题会与您记忆中的不太一样。\"])},\n \"older_version_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您导入的文件来自旧版本的 FE。\"])},\n \"future_version_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您导入的文件来自更高版本的 FE。\"])},\n \"v2_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您导入的文件是旧版 FE 的。我们尽可能保持兼容性,但还是可能出现不一致的情况。\"])},\n \"snapshot_source_mismatch\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"版本冲突:很有可能是 FE 版本回滚后再次升级了,如果您使用旧版本的 FE 更改了主题那么您可能需要使用旧版本,否则请使用新版本。\"])},\n \"migration_napshot_gone\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不知出于何种原因,主题快照缺失了,一些地方可能与您印象中的不符。\"])},\n \"migration_snapshot_ok\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"为保万无一失,加载了主题快照。您可以试着加载主题数据。\"])},\n \"fe_downgraded\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"PleromaFE 的版本回滚了。\"])},\n \"fe_upgraded\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"PleromaFE 的主题引擎随着版本更新升级了。\"])},\n \"snapshot_missing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在文件中没有主题快照,所以网站外观可能会与原来预想的不同。\"])},\n \"snapshot_present\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"主题快照已加载,因此所有的值均被覆盖。您可以改为加载主题的实际数据。\"])}\n },\n \"use_source\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"新版本\"])},\n \"use_snapshot\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"老版本\"])},\n \"keep_as_is\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保持原状\"])}\n },\n \"common\": {\n \"color\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"颜色\"])},\n \"opacity\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"透明度\"])},\n \"contrast\": {\n \"hint\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"对比度是 \", _interpolate(_named(\"ratio\")), \", 它 \", _interpolate(_named(\"level\")), \" \", _interpolate(_named(\"context\"))])},\n \"level\": {\n \"aa\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"符合 AA 等级准则(最低)\"])},\n \"aaa\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"符合 AAA 等级准则(推荐)\"])},\n \"bad\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不符合任何辅助功能指南\"])}\n },\n \"context\": {\n \"18pt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"大字文本 (18pt+)\"])},\n \"text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"文本\"])}\n }\n }\n },\n \"common_colors\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"常规\"])},\n \"main\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"常用颜色\"])},\n \"foreground_hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"点击”高级“ 标签进行细致的控制\"])},\n \"rgbo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"图标,强调,徽章\"])}\n },\n \"advanced_colors\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"高级\"])},\n \"alert\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提醒或警告背景色\"])},\n \"alert_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"错误\"])},\n \"badge\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"徽章背景\"])},\n \"badge_notification\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"通知\"])},\n \"panel_header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"面板标题\"])},\n \"top_bar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"顶栏\"])},\n \"borders\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"边框\"])},\n \"buttons\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"按钮\"])},\n \"inputs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"输入框\"])},\n \"faint_text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"灰度文字\"])},\n \"chat\": {\n \"border\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"边框\"])},\n \"outgoing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"发出的\"])},\n \"incoming\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"收到的\"])}\n },\n \"disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"禁用的\"])},\n \"pressed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"压下的\"])},\n \"highlight\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"强调元素\"])},\n \"selectedMenu\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"选中的菜单项\"])},\n \"selectedPost\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"选中的发布内容\"])},\n \"icons\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"图标\"])},\n \"poll\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"投票统计图\"])},\n \"popover\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提示框,菜单,弹出框\"])},\n \"post\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"发布内容/用户简介\"])},\n \"alert_neutral\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"中性\"])},\n \"alert_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"警告\"])},\n \"tabs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"标签页\"])},\n \"underlay\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"底衬\"])},\n \"toggled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"按下的\"])},\n \"wallpaper\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"壁纸\"])}\n },\n \"radii\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"圆角\"])}\n },\n \"shadows\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"阴影和照明\"])},\n \"component\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"组件\"])},\n \"override\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"覆盖\"])},\n \"shadow_id\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"阴影 #\", _interpolate(_named(\"value\"))])},\n \"blur\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"模糊\"])},\n \"spread\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"扩散\"])},\n \"inset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"内阴影\"])},\n \"hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"对于阴影你还可以使用 --variable 作为颜色值来使用 CSS3 变量。请注意,这种情况下,透明设置将不起作用。\"])},\n \"filter_hint\": {\n \"always_drop_shadow\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"警告,此阴影设置会总是使用 \", _interpolate(_list(0)), \" ,如果浏览器支持的话。\"])},\n \"drop_shadow_syntax\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 不支持参数 \", _interpolate(_list(1)), \" 和关键词 \", _interpolate(_list(2)), \" 。\"])},\n \"avatar_inset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"请注意组合两个内部和非内部的阴影到头像上,在透明头像上可能会有意料之外的效果。\"])},\n \"spread_zero\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"阴影的扩散 > 0 会同设置成零一样\"])},\n \"inset_classic\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"内阴影会使用 \", _interpolate(_list(0))])}\n },\n \"components\": {\n \"panel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"面板\"])},\n \"panelHeader\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"面板标题\"])},\n \"topBar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"顶栏\"])},\n \"avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户头像(在个人资料栏)\"])},\n \"avatarStatus\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户头像(在帖子显示栏)\"])},\n \"popup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"弹窗与工具提示\"])},\n \"button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"按钮\"])},\n \"buttonHover\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"按钮(悬停)\"])},\n \"buttonPressed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"按钮(压下)\"])},\n \"buttonPressedHover\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"按钮(压下和悬停)\"])},\n \"input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"输入框\"])}\n },\n \"hintV3\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"对于阴影,您还可以使用 \", _interpolate(_list(0)), \" 表示法来使用其它颜色插槽。\"])}\n },\n \"fonts\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"字体\"])},\n \"help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"为用户界面的元素选择字体。若选择 “自选”,您必须输入与系统显示完全一致的字体名称。\"])},\n \"components\": {\n \"interface\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"界面\"])},\n \"input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"输入框\"])},\n \"post\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"发帖文字\"])},\n \"postCode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"帖子中使用等间距文字(富文本)\"])}\n },\n \"family\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"字体名称\"])},\n \"size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"大小 (in px)\"])},\n \"weight\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"字重 (粗体)\"])},\n \"custom\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"自选\"])}\n },\n \"preview\": {\n \"header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"预览\"])},\n \"content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"内容\"])},\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"错误示例\"])},\n \"button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"按钮\"])},\n \"text\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"有堆 \", _interpolate(_list(0)), \" 和 \", _interpolate(_list(1))])},\n \"mono\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"monospace 内容\"])},\n \"input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"刚刚抵达上海。\"])},\n \"faint_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"帮助手册\"])},\n \"fine_print\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"阅读我们的 \", _interpolate(_list(0)), \" ,然而什么也学不到!\"])},\n \"header_faint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"这很正常\"])},\n \"checkbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"我已经浏览了条款及细则\"])},\n \"link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"一个棒棒的小小链接\"])}\n }\n },\n \"version\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"版本\"])},\n \"backend_version\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"后端版本\"])},\n \"frontend_version\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"前端版本\"])}\n },\n \"notification_setting_filters\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"过滤器\"])},\n \"domain_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"域名\"])},\n \"changed_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"邮箱修改成功!\"])},\n \"change_email_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"修改您的电子邮箱时发生错误。\"])},\n \"change_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"修改电子邮箱\"])},\n \"allow_following_move\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"正在关注的账号迁移时自动重新关注\"])},\n \"notification_setting_privacy_option\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在通知推送中隐藏发送者和内容\"])},\n \"notification_setting_privacy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐私\"])},\n \"hide_follows_count_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不显示关注数\"])},\n \"notification_visibility_emoji_reactions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"互动\"])},\n \"notification_visibility_moves\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户迁移\"])},\n \"new_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"新邮箱\"])},\n \"emoji_reactions_on_timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在时间线上显示表情符号互动\"])},\n \"notification_setting_hide_notification_contents\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏推送通知中的发送者与内容信息\"])},\n \"notification_setting_block_from_strangers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"屏蔽来自你没有关注的用户的通知\"])},\n \"type_domains_to_mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"搜索需要隐藏的域名\"])},\n \"useStreamingApi\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"实时接收帖子和通知\"])},\n \"user_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户\"])},\n \"reset_background_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您确定要重置背景图吗?\"])},\n \"reset_banner_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您确定要重置横幅图片吗?\"])},\n \"reset_avatar_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您确定要重置头像吗?\"])},\n \"reset_profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"重置横幅图片\"])},\n \"reset_profile_background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"重置个人背景图\"])},\n \"reset_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"重置头像\"])},\n \"hide_followers_count_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不显示关注者数量\"])},\n \"profile_fields\": {\n \"value\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"内容\"])},\n \"name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"标签\"])},\n \"add_field\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"添加字段\"])},\n \"label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"个人资料元数据\"])}\n },\n \"accent\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"强调色\"])},\n \"pad_emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"从表情符号选择器插入表情符号时,在表情两侧插入空格\"])},\n \"discoverable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"允许通过搜索检索等服务找到此账号\"])},\n \"mutes_and_blocks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏与屏蔽\"])},\n \"bot\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"这是一个机器人账号\"])},\n \"fun\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"趣味\"])},\n \"useStreamingApiWarning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(不推荐使用,试验性,已知会跳过一些帖子)\"])},\n \"chatMessageRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"聊天消息\"])},\n \"greentext\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Meme 箭头\"])},\n \"virtual_scrolling\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"优化时间线渲染\"])},\n \"import_mutes_from_a_csv_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"从 csv 文件导入隐藏名单\"])},\n \"mutes_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏名单导入成功!处理它们将需要一段时间。\"])},\n \"mute_import_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"导入隐藏名单出错\"])},\n \"mute_import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏名单导入\"])},\n \"mute_export_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"导出你的隐藏名单到一个 csv 文件\"])},\n \"mute_export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏名单导出\"])},\n \"hide_wallpaper\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏实例壁纸\"])},\n \"setting_changed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"与默认设置不同\"])},\n \"more_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"更多设置\"])},\n \"sensitive_by_default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"默认标记发文为敏感内容\"])},\n \"reply_visibility_self_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"只显示对我本人的回复\"])},\n \"reply_visibility_following_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示对我关注的人的回复\"])},\n \"hide_all_muted_posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不显示已隐藏的发文\"])},\n \"hide_media_previews\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏媒体预览\"])},\n \"word_filter\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"词语过滤\"])},\n \"save\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保存更改\"])},\n \"file_export_import\": {\n \"errors\": {\n \"file_slightly_new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"文件的小版本不同,有些设置可能无法加载\"])},\n \"file_too_old\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"不兼容的主版本:\", _interpolate(_named(\"fileMajor\")), \",文件版本过旧,不受支持(最小设置版本 \", _interpolate(_named(\"feMajor\")), \")\"])},\n \"file_too_new\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"不兼容的主版本:\", _interpolate(_named(\"fileMajor\")), \",此 PleromaFE(设置版本 \", _interpolate(_named(\"feMajor\")), \")过旧,无法处理\"])},\n \"invalid_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"所选文件不是受支持的 Pleroma 设置备份。没有进行任何更改。\"])}\n },\n \"restore_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"从文件恢复设置\"])},\n \"backup_settings_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"备份设置和主题到文件\"])},\n \"backup_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"备份设置到文件\"])},\n \"backup_restore\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"设置备份\"])}\n },\n \"right_sidebar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"反转分栏的顺序\"])},\n \"hide_shoutbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏实例留言板\"])},\n \"expert_mode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示高级\"])},\n \"download_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"下载\"])},\n \"mention_links\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提及链接\"])},\n \"account_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"账号备份\"])},\n \"account_backup_table_head\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"备份\"])},\n \"remove_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"移除\"])},\n \"list_backups_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"获取备份列表出错:\", _interpolate(_named(\"error\"))])},\n \"add_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"创建一个新备份\"])},\n \"added_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"创建了一个新备份。\"])},\n \"account_alias\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"账号别名\"])},\n \"account_alias_table_head\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"别名\"])},\n \"list_aliases_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"获取别名时出错:\", _interpolate(_named(\"error\"))])},\n \"hide_list_aliases_error_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关闭\"])},\n \"remove_alias\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"移除这个别名\"])},\n \"new_alias_target\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"添加一个新别名(例如 \", _interpolate(_named(\"example\")), \")\"])},\n \"added_alias\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"别名添加好了。\"])},\n \"move_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"移动账号\"])},\n \"move_account_target\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"目标账号(例如 \", _interpolate(_named(\"example\")), \")\"])},\n \"moved_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"账号移动好了。\"])},\n \"move_account_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"移动账号时出错:\", _interpolate(_named(\"error\"))])},\n \"setting_server_side\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"这个设置是捆绑到你的个人资料的,能影响所有会话和客户端\"])},\n \"post_look_feel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"文章的样子跟感受\"])},\n \"email_language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"从服务器收邮件的语言\"])},\n \"account_backup_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"这个允许你下载一份账号信息和文章的存档,但是现在还不能导入到 Pleroma 账号里。\"])},\n \"backup_not_ready\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"备份还没准备好。\"])},\n \"add_backup_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"添加新备份时出错:\", _interpolate(_named(\"error\"))])},\n \"add_alias_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"添加别名时出错:\", _interpolate(_named(\"error\"))])},\n \"move_account_notes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"如果你想把账号移动到别的地方,你必须去目标账号,然后加一个指向这里的别名。\"])},\n \"wordfilter\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"词语过滤器\"])},\n \"user_profiles\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户资料\"])},\n \"third_column_mode_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"通知栏\"])},\n \"backup_running\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([\"此备份正在进行,已处理 \", _interpolate(_named(\"number\")), \" 条记录。\"]), _normalize([\"此备份正在进行,已处理 \", _interpolate(_named(\"number\")), \" 条记录。\"])])},\n \"lists_navigation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在导航中显示列表\"])},\n \"word_filter_and_more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"词过滤器及其它...\"])},\n \"backup_failed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"此备份已失败。\"])},\n \"birthday\": {\n \"label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"生日\"])},\n \"show_birthday\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"展示我的生日\"])}\n },\n \"hide_favorites_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不显示我的喜欢列表(人们仍然会收到通知)\"])},\n \"third_column_mode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"当有足够的空间时,显示第三栏包含\"])},\n \"third_column_mode_postform\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"主要的发文形式和导航\"])},\n \"columns\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"分栏\"])},\n \"user_popover_avatar_overlay\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在用户头像上显示用户弹出窗口\"])},\n \"navbar_column_stretch\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"延伸导航栏至分栏宽度\"])},\n \"posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"帖子\"])},\n \"conversation_display_linear_quick\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"线性视图\"])},\n \"conversation_other_replies_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示 “其它回复” 按钮\"])},\n \"confirm_dialogs_delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"删除状态\"])},\n \"confirm_dialogs_mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏用户\"])},\n \"column_sizes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"分栏大小\"])},\n \"column_sizes_sidebar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"侧栏\"])},\n \"column_sizes_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"內容\"])},\n \"column_sizes_notifs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"通知\"])},\n \"conversation_other_replies_button_below\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在状态下方\"])},\n \"conversation_other_replies_button_inside\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在状态中\"])},\n \"auto_update\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"自动显示新的帖子\"])},\n \"use_websockets\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"使用 websockets(实时更新)\"])},\n \"max_depth_in_thread\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"默认显示同主题帖子中的最大层数\"])},\n \"hide_wordfiltered_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏经过词语过滤的状态\"])},\n \"hide_muted_threads\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不显示已隐藏的同主题帖子\"])},\n \"notification_visibility_polls\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"你所投的投票的结束于\"])},\n \"tree_advanced\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"允许在树状视图中进行更灵活的导航\"])},\n \"tree_fade_ancestors\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"以模糊的文字显示当前状态的上级\"])},\n \"conversation_display_linear\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"线性样式\"])},\n \"mention_link_fade_domain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"淡化域名(例如:\", \"@\", \"example.org 中的 \", \"@\", \"foo\", \"@\", \"example.org)\"])},\n \"mention_link_bolden_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"当你被提及时突出显示提及你\"])},\n \"user_popover_avatar_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"弹出式头像点击动作\"])},\n \"user_popover_avatar_action_zoom\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"缩放头像\"])},\n \"user_popover_avatar_action_close\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关闭弹出窗口\"])},\n \"show_yous\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示 (You)s\"])},\n \"add_language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"添加备用语言\"])},\n \"remove_language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"移除\"])},\n \"primary_language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"主要语言:\"])},\n \"fallback_language\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"备用语言 \", _interpolate(_named(\"index\")), \":\"])},\n \"account_privacy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐私\"])},\n \"conversation_display\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"对话显示样式\"])},\n \"conversation_display_tree\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"树状样式\"])},\n \"conversation_display_tree_quick\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"树状视图\"])},\n \"disable_sticky_headers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不要把分栏的顶栏固定在屏幕的顶部\"])},\n \"confirm_dialogs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"请求确认于\"])},\n \"confirm_dialogs_logout\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"登出\"])},\n \"confirm_dialogs_deny_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"拒绝关注请求\"])},\n \"confirm_dialogs_approve_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"批准关注请求\"])},\n \"confirm_dialogs_block\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"屏蔽用户\"])},\n \"confirm_dialogs_unfollow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消关注用户\"])},\n \"confirm_dialogs_repeat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"转发状态\"])},\n \"confirm_dialogs_remove_follower\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"移除关注者\"])},\n \"mute_bot_posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏机器人的帖子\"])},\n \"hide_bot_indication\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏帖子中的机器人提示\"])},\n \"always_show_post_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"始终显示浮动的新帖子按钮\"])},\n \"show_scrollbars\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示侧栏的滚动条\"])},\n \"third_column_mode_none\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"完全不显示第三栏\"])},\n \"use_at_icon\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"将 \", \"@\", \" 符号显示为图标而不是文本\"])},\n \"mention_link_display\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示提及链接\"])},\n \"mention_link_display_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"始终以简称的形式出现(例如:\", \"@\", \"foo)\"])},\n \"mention_link_display_full_for_remote\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"仅远程实例用户以全名的形式出现(例如:\", \"@\", \"foo\", \"@\", \"example.org)\"])},\n \"mention_link_display_full\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"始终以全名的形式出现(例如:\", \"@\", \"foo\", \"@\", \"example.org)\"])},\n \"mention_link_use_tooltip\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"点击提及链接时显示用户卡片\"])},\n \"mention_link_show_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在链接旁边显示用户头像\"])},\n \"mention_link_show_avatar_quick\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在提及内容旁边显示用户头像\"])},\n \"user_popover_avatar_action_open\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"打开个人资料\"])},\n \"autocomplete_select_first\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"当有自动完成的结果时,自动选择第一个候选项\"])},\n \"url\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"URL\"])},\n \"preview\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"预览\"])},\n \"commit_value\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保存\"])},\n \"commit_value_tooltip\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"当前值未保存,请按此按钮以提交你的修改\"])},\n \"reset_value\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"重置\"])},\n \"reset_value_tooltip\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"重置草稿\"])},\n \"hard_reset_value\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"硬重置\"])},\n \"hard_reset_value_tooltip\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"从存储中移除设置,强制使用默认值\"])},\n \"emoji_reactions_scale\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"表情回应比例系数\"])}\n },\n \"time\": {\n \"day\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 天\"])},\n \"days\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 天\"])},\n \"day_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"d\"])},\n \"days_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"d\"])},\n \"hour\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 小时\"])},\n \"hours\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 小时\"])},\n \"hour_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"h\"])},\n \"hours_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"h\"])},\n \"in_future\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"还有 \", _interpolate(_list(0))])},\n \"in_past\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 之前\"])},\n \"minute\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 分钟\"])},\n \"minutes\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 分钟\"])},\n \"minute_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"min\"])},\n \"minutes_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"min\"])},\n \"month\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 月\"])},\n \"months\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 月\"])},\n \"month_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"mo\"])},\n \"months_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"mo\"])},\n \"now\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"刚刚\"])},\n \"now_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"刚刚\"])},\n \"second\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 秒\"])},\n \"seconds\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 秒\"])},\n \"second_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"s\"])},\n \"seconds_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"s\"])},\n \"week\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 周\"])},\n \"weeks\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 周\"])},\n \"week_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"w\"])},\n \"weeks_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"w\"])},\n \"year\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 年\"])},\n \"years\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 年\"])},\n \"year_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"y\"])},\n \"years_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"y\"])},\n \"unit\": {\n \"days_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 天\"])},\n \"hours\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 小时\"])},\n \"hours_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 时\"])},\n \"minutes\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 分\"])},\n \"minutes_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 分\"])},\n \"months\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 个月\"])},\n \"months_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 月\"])},\n \"seconds\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 秒\"])},\n \"seconds_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 秒\"])},\n \"weeks_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 周\"])},\n \"years\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 年\"])},\n \"years_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 年\"])},\n \"weeks\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 周\"])},\n \"days\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 天\"])}\n }\n },\n \"timeline\": {\n \"collapse\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"折叠\"])},\n \"conversation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"对话\"])},\n \"error_fetching\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"获取更新时发生错误\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"加载更早的状态\"])},\n \"no_retweet_hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"这条内容仅关注者可见,或者是私信,因此不能转发\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"转发了\"])},\n \"show_new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示新内容\"])},\n \"up_to_date\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已是最新\"])},\n \"no_more_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"没有更多的状态\"])},\n \"no_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"没有状态更新\"])},\n \"reload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"重新载入\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"取得时间轴时发生错误:\", _interpolate(_list(0))])},\n \"socket_broke\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"丢失实时连接:CloseEvent code \", _interpolate(_list(0))])},\n \"socket_reconnected\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已建立实时连接\"])},\n \"quick_view_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"快速视图设置\"])},\n \"quick_filter_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"快速过滤设置\"])}\n },\n \"status\": {\n \"favorites\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"喜欢\"])},\n \"repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"转发\"])},\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"删除状态\"])},\n \"pin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在个人资料置顶\"])},\n \"unpin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消在个人资料置顶\"])},\n \"pinned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"置顶\"])},\n \"delete_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您确定要删除这条状态吗?\"])},\n \"reply_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"回复\"])},\n \"replies_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"回复:\"])},\n \"mute_conversation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏对话\"])},\n \"unmute_conversation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"对话取消隐藏\"])},\n \"hide_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏内容\"])},\n \"show_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示内容\"])},\n \"hide_full_subject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏此部分标题\"])},\n \"show_full_subject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示全部标题\"])},\n \"thread_muted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"同主题帖子已被隐藏\"])},\n \"copy_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"复制状态链接\"])},\n \"status_unavailable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"状态不可取得\"])},\n \"unbookmark\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消书签\"])},\n \"bookmark\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"书签\"])},\n \"thread_muted_and_words\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\",含有过滤词:\"])},\n \"status_deleted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"该状态已被删除\"])},\n \"nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NSFW\"])},\n \"external_source\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"外部来源\"])},\n \"expand\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"展开\"])},\n \"you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(你)\"])},\n \"plus_more\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"还有 \", _interpolate(_named(\"number\")), \" 个\"])},\n \"many_attachments\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"文章有 \", _interpolate(_named(\"number\")), \" 个附件\"])},\n \"collapse_attachments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"折起附件\"])},\n \"show_all_attachments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示所有附件\"])},\n \"show_attachment_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"预览描述(打开附件能看完整描述)\"])},\n \"hide_attachment\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏附件\"])},\n \"remove_attachment\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"移除附件\"])},\n \"attachment_stop_flash\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"停止 Flash 播放器\"])},\n \"move_up\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"把附件左移\"])},\n \"open_gallery\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"打开图库\"])},\n \"thread_hide\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏这个同主题帖子\"])},\n \"thread_show\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示这个同主题帖子\"])},\n \"thread_show_full_with_icon\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"icon\")), \" \", _interpolate(_named(\"text\"))])},\n \"thread_follow\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"查看这个同主题帖子的剩余部分(一共有 \", _interpolate(_named(\"numStatus\")), \" 个状态)\"])},\n \"thread_follow_with_icon\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"icon\")), \" \", _interpolate(_named(\"text\"))])},\n \"ancestor_follow\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"查看这个状态下的别的 \", _interpolate(_named(\"numReplies\")), \" 个回复\"])},\n \"ancestor_follow_with_icon\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"icon\")), \" \", _interpolate(_named(\"text\"))])},\n \"show_all_conversation_with_icon\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"icon\")), \" \", _interpolate(_named(\"text\"))])},\n \"show_all_conversation\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"显示完整对话(还有 \", _interpolate(_named(\"numStatus\")), \" 个状态)\"])},\n \"mentions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提及\"])},\n \"replies_list_with_others\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"回复(另外 +\", _interpolate(_named(\"numReplies\")), \" 个):\"])},\n \"move_down\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"把附件右移\"])},\n \"thread_show_full\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"显示这个同主题帖子下的所有东西(一共有 \", _interpolate(_named(\"numStatus\")), \" 个状态,最大深度 \", _interpolate(_named(\"depth\")), \")\"])},\n \"show_only_conversation_under_this\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"只显示这个状态的回复\"])},\n \"repeat_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您确定要转发这条状态吗?\"])},\n \"repeat_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"确认转发\"])},\n \"repeat_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"转发\"])},\n \"repeat_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不要转发\"])},\n \"edit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"编辑状态\"])},\n \"edited_at\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"(最后编辑于 \", _interpolate(_named(\"time\")), \")\"])},\n \"delete_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"确认删除\"])},\n \"delete_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"删除\"])},\n \"delete_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保留\"])},\n \"show_attachment_in_modal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在媒体模式中显示\"])},\n \"status_history\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"状态历史\"])},\n \"delete_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"删除状态时出错:\", _interpolate(_list(0))])},\n \"reaction_count_label\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"num\")), \" 人作出了表情回应\"])}\n },\n \"user_card\": {\n \"approve\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"核准\"])},\n \"block\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"屏蔽\"])},\n \"blocked\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已屏蔽!\"])},\n \"deny\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"拒绝\"])},\n \"favorites\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"喜欢\"])},\n \"follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关注\"])},\n \"follow_sent\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"请求已发送!\"])},\n \"follow_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"请求中…\"])},\n \"follow_unfollow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消关注\"])},\n \"followees\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"正在关注\"])},\n \"followers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关注者\"])},\n \"following\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"正在关注!\"])},\n \"follows_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关注了你!\"])},\n \"its_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"就是你!\"])},\n \"media\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"媒体\"])},\n \"mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏\"])},\n \"muted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已隐藏\"])},\n \"per_day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"每天\"])},\n \"remote_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"跨站关注\"])},\n \"report\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"报告\"])},\n \"statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"状态\"])},\n \"subscribe\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"订阅\"])},\n \"unsubscribe\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"退订\"])},\n \"unblock\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消屏蔽\"])},\n \"unblock_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"正在取消屏蔽…\"])},\n \"block_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"正在屏蔽…\"])},\n \"unmute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消隐藏\"])},\n \"unmute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消隐藏中…\"])},\n \"mute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏中…\"])},\n \"admin_menu\": {\n \"moderation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"仲裁\"])},\n \"grant_admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"赋予管理权限\"])},\n \"revoke_admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"撤销管理权限\"])},\n \"grant_moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"赋予监察员权限\"])},\n \"revoke_moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"撤销监察员权限\"])},\n \"activate_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"激活账号\"])},\n \"deactivate_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关闭账号\"])},\n \"delete_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"删除账号\"])},\n \"force_nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"标记所有的帖子都是 - 工作场合不适\"])},\n \"strip_media\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"从帖子里删除媒体文件\"])},\n \"force_unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"强制帖子为不公开\"])},\n \"sandbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"强制帖子为只有关注者可看\"])},\n \"disable_remote_subscription\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"禁止从远程实例关注用户\"])},\n \"disable_any_subscription\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"完全禁止关注用户\"])},\n \"quarantine\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"从联合实例中禁止用户帖子\"])},\n \"delete_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"删除用户\"])},\n \"delete_user_data_and_deactivate_confirmation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"这将永久删除该账户的数据并停用该账户。你完全确定吗?\"])}\n },\n \"hidden\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已隐藏\"])},\n \"show_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示转发\"])},\n \"hide_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏转发\"])},\n \"message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"消息\"])},\n \"mention\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提及\"])},\n \"bot\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"机器人\"])},\n \"highlight\": {\n \"side\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"侧边条纹\"])},\n \"striped\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"条纹背景\"])},\n \"solid\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"单一颜色背景\"])},\n \"disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不突出显示\"])}\n },\n \"edit_profile\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"编辑个人资料\"])},\n \"approve_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"确认批准\"])},\n \"approve_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"批准\"])},\n \"block_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"屏蔽\"])},\n \"block_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不要屏蔽\"])},\n \"deactivated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已停用\"])},\n \"deny_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"确认拒绝\"])},\n \"deny_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"拒绝\"])},\n \"deny_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不要拒绝\"])},\n \"deny_confirm\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"您是否要拒绝 \", _interpolate(_named(\"user\")), \" 的关注请求?\"])},\n \"follow_cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消请求\"])},\n \"unfollow_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"确认取消关注\"])},\n \"unfollow_confirm\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"您确定要取消关注 \", _interpolate(_named(\"user\")), \" 吗?\"])},\n \"unfollow_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消关注\"])},\n \"unfollow_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不要取消关注\"])},\n \"mute_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"确认隐藏\"])},\n \"mute_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏\"])},\n \"mute_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不要隐藏\"])},\n \"mute_duration_prompt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"让这个用户隐藏(0表示无限期):\"])},\n \"remove_follower\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"移除关注者\"])},\n \"remove_follower_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"确认移除关注者\"])},\n \"remove_follower_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保留\"])},\n \"remove_follower_confirm\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"您确定要将 \", _interpolate(_named(\"user\")), \" 从您的关注者里移除吗?\"])},\n \"birthday\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"生于 \", _interpolate(_named(\"birthday\"))])},\n \"note\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"备注\"])},\n \"approve_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不要批准\"])},\n \"approve_confirm\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"您是否要批准 \", _interpolate(_named(\"user\")), \" 的关注请求?\"])},\n \"block_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"确认屏蔽\"])},\n \"block_confirm\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"您确定要屏蔽 \", _interpolate(_named(\"user\")), \" 吗?\"])},\n \"mute_confirm\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"您确定要隐藏 \", _interpolate(_named(\"user\")), \" 吗?\"])},\n \"remove_follower_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"移除\"])},\n \"note_blank\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(空)\"])},\n \"edit_note\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"编辑备注\"])},\n \"edit_note_apply\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"应用\"])},\n \"edit_note_cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消\"])}\n },\n \"user_profile\": {\n \"timeline_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户时间线\"])},\n \"profile_does_not_exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"抱歉,此个人资料不存在。\"])},\n \"profile_loading_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"抱歉,载入个人资料时出错。\"])}\n },\n \"user_reporting\": {\n \"title\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"报告 \", _interpolate(_list(0))])},\n \"add_comment_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"此报告会发送给您的实例监察员。您可以在下面提供更多详细信息解释报告的缘由:\"])},\n \"additional_comments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"其它信息\"])},\n \"forward_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"这个账号来自另一个服务器。是否同时发送一份报告副本到那里?\"])},\n \"forward_to\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"转发 \", _interpolate(_list(0))])},\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提交\"])},\n \"generic_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"当处理您的请求时,发生了一个错误。\"])}\n },\n \"who_to_follow\": {\n \"more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"更多\"])},\n \"who_to_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"推荐关注\"])}\n },\n \"tool_tip\": {\n \"media_upload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"上传媒体\"])},\n \"repeat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"转发\"])},\n \"reply\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"回复\"])},\n \"favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"喜欢\"])},\n \"user_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户设置\"])},\n \"reject_follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"拒绝关注请求\"])},\n \"add_reaction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"添加互动\"])},\n \"bookmark\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"书签\"])},\n \"accept_follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"接受关注请求\"])},\n \"toggle_expand\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"展开或折叠通知以显示帖子全文\"])},\n \"toggle_mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"展开或折叠通知以显示已隐藏的内容\"])},\n \"autocomplete_available\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"共有 \", _interpolate(_named(\"number\")), \" 个结果可用。使用向上和向下键浏览它们。\"])}\n },\n \"upload\": {\n \"error\": {\n \"base\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"上传不成功。\"])},\n \"file_too_big\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"文件太大了 [\", _interpolate(_named(\"filesize\")), _interpolate(_named(\"filesizeunit\")), \" / \", _interpolate(_named(\"allowedsize\")), _interpolate(_named(\"allowedsizeunit\")), \"]\"])},\n \"default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"迟些再试\"])},\n \"message\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"上传错误:\", _interpolate(_list(0))])}\n },\n \"file_size_units\": {\n \"B\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"B\"])},\n \"KiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"KiB\"])},\n \"MiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"MiB\"])},\n \"GiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"GiB\"])},\n \"TiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"TiB\"])}\n }\n },\n \"search\": {\n \"people\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"人\"])},\n \"hashtags\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"话题标签\"])},\n \"person_talking\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"count\")), \" 人正在讨论\"])},\n \"people_talking\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"count\")), \" 人正在讨论\"])},\n \"no_results\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"没有搜索结果\"])},\n \"no_more_results\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"没有更多结果\"])},\n \"load_more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"加载更多结果\"])}\n },\n \"password_reset\": {\n \"forgot_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"忘记密码了?\"])},\n \"password_reset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"重置密码\"])},\n \"instruction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"输入您的电邮地址或者用户名,我们将发送一个链接到您的邮箱,用于重置密码。\"])},\n \"placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您的电邮地址或者用户名\"])},\n \"check_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"检查您的邮箱,会有一个链接用于重置密码。\"])},\n \"return_home\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"回到首页\"])},\n \"too_many_requests\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您达到了尝试次数的上限,请稍后再试。\"])},\n \"password_reset_disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"密码重置已被禁用。请联系您的实例管理员。\"])},\n \"password_reset_required_but_mailer_is_disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您必须重置密码,但是密码重置被禁用了。请联系您所在实例的管理员。\"])},\n \"password_reset_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您必须重置密码才能登陆。\"])}\n },\n \"remote_user_resolver\": {\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"未找到。\"])},\n \"searching_for\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"搜索\"])},\n \"remote_user_resolver\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"远程用户解析器\"])}\n },\n \"emoji\": {\n \"keep_open\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"选择器保持打开\"])},\n \"stickers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"贴纸\"])},\n \"unicode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unicode 表情符号\"])},\n \"custom\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"自定义表情符号\"])},\n \"add_emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"插入表情符号\"])},\n \"search_emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"搜索表情符号\"])},\n \"emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"表情符号\"])},\n \"load_all\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"加载所有表情符号(共 \", _interpolate(_named(\"emojiAmount\")), \" 个)\"])},\n \"load_all_hint\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"最先加载的 \", _interpolate(_named(\"saneAmount\")), \" 表情符号,加载全部表情符号可能会带来性能问题。\"])},\n \"unicode_groups\": {\n \"flags\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"旗帜\"])},\n \"food-and-drink\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"饮食\"])},\n \"objects\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"物件\"])},\n \"people-and-body\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"人和身体\"])},\n \"symbols\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"符号\"])},\n \"travel-and-places\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"旅行和地点\"])},\n \"activities\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"活动\"])},\n \"animals-and-nature\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"动物和自然\"])},\n \"smileys-and-emotion\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"表情与情感\"])}\n },\n \"regional_indicator\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"地区指示符 \", _interpolate(_named(\"letter\"))])},\n \"unpacked\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"未分组的表情符号\"])}\n },\n \"about\": {\n \"mrf\": {\n \"simple\": {\n \"quarantine_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本实例向以下实例仅发送公开的帖子:\"])},\n \"quarantine\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隔离\"])},\n \"reject_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本实例不会接收来自下列实例的消息:\"])},\n \"reject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"拒绝\"])},\n \"accept_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本实例只接收来自下列实例的消息:\"])},\n \"simple_policies\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"对于特定实例的策略\"])},\n \"accept\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"接受\"])},\n \"media_removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"移除媒体\"])},\n \"media_nsfw_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本实例将来自以下实例的媒体内容强制设置为敏感内容:\"])},\n \"media_nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"强制设置媒体为敏感内容\"])},\n \"media_removal_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本实例移除来自以下实例的媒体内容:\"])},\n \"ftl_removal_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"该实例在从“已知网络”时间线上移除了下列实例:\"])},\n \"ftl_removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"从“已知网络”时间线上移除\"])},\n \"reason\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"理由\"])},\n \"not_applicable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"无\"])},\n \"instance\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"实例\"])}\n },\n \"mrf_policies_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"MRF 策略会影响本实例的互通行为。以下策略已启用:\"])},\n \"mrf_policies\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已启用的 MRF 策略\"])},\n \"keyword\": {\n \"ftl_removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"从“全部已知网络”时间线上移除\"])},\n \"keyword_policies\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关键词策略\"])},\n \"is_replaced_by\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"→\"])},\n \"replace\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"替换\"])},\n \"reject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"拒绝\"])}\n },\n \"federation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"联邦互通\"])}\n },\n \"staff\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"管理人员\"])}\n },\n \"domain_mute_card\": {\n \"unmute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"正在取消隐藏…\"])},\n \"unmute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消隐藏\"])},\n \"mute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏中…\"])},\n \"mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏\"])}\n },\n \"errors\": {\n \"storage_unavailable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pleroma 无法访问浏览器储存。您的登陆以及本地设置将不会被保存,您也可能遇到未知问题。请尝试启用 cookies。\"])}\n },\n \"shoutbox\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"留言板\"])}\n },\n \"display_date\": {\n \"today\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"今天\"])}\n },\n \"file_type\": {\n \"file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"文件\"])},\n \"image\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"图片\"])},\n \"video\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"视频\"])},\n \"audio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"音频\"])}\n },\n \"chats\": {\n \"empty_chat_list_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您还没有任何聊天记录。开始聊天吧!\"])},\n \"error_sending_message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"发送消息时出了点问题。\"])},\n \"error_loading_chat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"加载聊天时出了点问题。\"])},\n \"delete_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您确定要删除此消息吗?\"])},\n \"more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"更多\"])},\n \"empty_message_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"无法发布空消息\"])},\n \"new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"新聊天\"])},\n \"chats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"聊天\"])},\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"删除\"])},\n \"message_user\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"发消息给 \", _interpolate(_named(\"nickname\"))])},\n \"you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"你:\"])}\n },\n \"announcements\": {\n \"page_header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"公告\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"公告\"])},\n \"mark_as_read_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"标为已读\"])},\n \"post_form_header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"发布公告\"])},\n \"post_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在这里输入公告内容...\"])},\n \"post_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"发布\"])},\n \"post_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"错误:\", _interpolate(_named(\"error\"))])},\n \"close_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关闭\"])},\n \"delete_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"删除\"])},\n \"start_time_prompt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"起始时间: \"])},\n \"end_time_prompt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"终止时间: \"])},\n \"all_day_prompt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"这是全天的事件\"])},\n \"published_time_display\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"发表于 \", _interpolate(_named(\"time\"))])},\n \"start_time_display\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"开始于 \", _interpolate(_named(\"time\"))])},\n \"end_time_display\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"结束于 \", _interpolate(_named(\"time\"))])},\n \"edit_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"编辑\"])},\n \"submit_edit_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提交\"])},\n \"cancel_edit_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消\"])},\n \"inactive_message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"这个公告不活跃\"])}\n },\n \"report\": {\n \"reported_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"被举报者:\"])},\n \"state_closed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已关闭\"])},\n \"state_resolved\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已解决\"])},\n \"reporter\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"举报者:\"])},\n \"state_open\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"开启\"])},\n \"reported_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已举报的状态:\"])},\n \"notes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"备注:\"])},\n \"state\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"状态:\"])}\n },\n \"unicode_domain_indicator\": {\n \"tooltip\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"此域名包含非 ascii 字符。\"])}\n },\n \"update\": {\n \"update_bugs_gitlab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pleroma GitLab\"])},\n \"update_changelog\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"关于变化的更多细节,请参见 \", _interpolate(_named(\"theFullChangelog\")), \" 。\"])},\n \"update_changelog_here\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"完整的更新日志\"])},\n \"big_update_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"请忍耐一下\"])},\n \"big_update_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"我们已经有一段时间没有发布发行版,所以事情的外观和感觉可能与你习惯的不一样。\"])},\n \"update_bugs\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"请在 \", _interpolate(_named(\"pleromaGitlab\")), \" 上报告任何问题和bug,因为我们已经改变了很多,虽然我们进行了彻底的测试,并且自己使用了开发版本,但我们可能错过了一些东西。我们欢迎你对你可能遇到的问题或如何改进Pleroma和Pleroma-FE提出反馈和建议。\"])},\n \"art_by\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Art by \", _interpolate(_named(\"linkToArtist\"))])}\n },\n \"lists\": {\n \"search\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"搜索用户\"])},\n \"create\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"创建\"])},\n \"save\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保存更改\"])},\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"删除列表\"])},\n \"following_only\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"限制于正在关注\"])},\n \"manage_lists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"管理列表\"])},\n \"manage_members\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"管理列表成员\"])},\n \"add_members\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"搜索更多用户\"])},\n \"remove_from_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"从列表中移除\"])},\n \"add_to_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"添加到列表\"])},\n \"is_in_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已在列表中\"])},\n \"editing_list\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"正在编辑列表 \", _interpolate(_named(\"listTitle\"))])},\n \"creating_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"正在创建新的列表\"])},\n \"update_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保存标题\"])},\n \"really_delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"真的要删除列表吗?\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"操作列表时出错:\", _interpolate(_list(0))])},\n \"lists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"列表\"])},\n \"new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"新的列表\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"列表标题\"])}\n },\n \"admin_dash\": {\n \"window_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"管理员\"])},\n \"old_ui_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"旧的管理界面在此处\"])},\n \"reset_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"重置全部\"])},\n \"commit_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保存全部\"])},\n \"tabs\": {\n \"nodb\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"无数据库配置\"])},\n \"instance\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"实例\"])},\n \"limits\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"限制\"])},\n \"frontends\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"前端\"])}\n },\n \"nodb\": {\n \"heading\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"数据库配置已禁用\"])},\n \"documentation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"文档\"])},\n \"text2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"大多数配置选项将不可用。\"])},\n \"text\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"你需要修改后端配置文件,以便将 \", _interpolate(_named(\"property\")), \" 设置为 \", _interpolate(_named(\"value\")), \",更多内容请参见 \", _interpolate(_named(\"documentation\")), \"。\"])}\n },\n \"captcha\": {\n \"native\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本地\"])},\n \"kocaptcha\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"KoCaptcha\"])}\n },\n \"instance\": {\n \"instance\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"实例信息\"])},\n \"registrations\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户注册\"])},\n \"captcha_header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"验证码\"])},\n \"kocaptcha\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"KoCaptcha 设置\"])},\n \"access\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"实例访问\"])},\n \"restrict\": {\n \"header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"限制匿名访客的访问\"])},\n \"timelines\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"时间线访问\"])},\n \"profiles\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户个人资料访问\"])},\n \"activities\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"状态/活动访问\"])},\n \"description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"允许/不允许访问特定 API 的详细设置。默认情况下(不确定状态),如果实例不是公开的,它将拒绝访问;勾选复选框意味着即使实例是公开的,也拒绝访问;不勾选意味着即使实例是私有的,也允许访问。请注意,如果某些设置被设定,可能会发生意想不到的行为,例如,如果个人资料访问被禁用,显示的帖文将不包含个人资料信息。\"])}\n }\n },\n \"limits\": {\n \"arbitrary_limits\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"任意限制\"])},\n \"posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"帖文限制\"])},\n \"uploads\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"附件限制\"])},\n \"users\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户个人资料限制\"])},\n \"profile_fields\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"个人资料字段限制\"])},\n \"user_uploads\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"个人资料媒体限制\"])}\n },\n \"frontend\": {\n \"repository\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"存储库链接\"])},\n \"versions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"可用版本\"])},\n \"build_url\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"构建产物 URL\"])},\n \"reinstall\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"重新安装\"])},\n \"is_default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(默认)\"])},\n \"is_default_custom\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"(默认,版本:\", _interpolate(_named(\"version\")), \")\"])},\n \"install\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"安装\"])},\n \"install_version\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"安装版本 \", _interpolate(_named(\"version\"))])},\n \"more_install_options\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"更多安装选项\"])},\n \"more_default_options\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"更多默认设置选项\"])},\n \"set_default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"设为默认\"])},\n \"set_default_version\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"将版本 \", _interpolate(_named(\"version\")), \" 设为默认\"])},\n \"wip_notice\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"请注意,此部分是一个WIP,缺乏某些功能,因为前端管理的后台实现并不完整。\"])},\n \"default_frontend\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"默认前端\"])},\n \"default_frontend_tip\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"默认的前端将显示给所有用户。目前还没有办法让用户选择个人的前端。如果你不使用 PleromaFE,你很可能不得不使用旧的和有问题的 AdminFE 来进行实例配置,直到我们替换它。\"])},\n \"default_frontend_tip2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WIP: 由于 Pleroma 后端没有正确列出所有已安装的前端,你必须手动输入名称和引用。下面的列表提供了填写这些值的快捷方式。\"])},\n \"available_frontends\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"可供安装\"])}\n },\n \"temp_overrides\": {\n \":pleroma\": {\n \":instance\": {\n \":public\": {\n \"label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"实例是公开的\"])},\n \"description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"禁用此功能将使所有的 API 只能被已登录用户访问,这将使公共和联邦时间线无法被匿名访客访问。\"])}\n },\n \":limit_to_local_content\": {\n \"label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"将搜索限于本地内容\"])},\n \"description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"禁用未认证用户(默认)、所有用户或无人的全局网络搜索\"])}\n },\n \":description_limit\": {\n \"label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"限制\"])},\n \"description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"附件描述的字数限制\"])}\n },\n \":background_image\": {\n \"label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"背景图片\"])},\n \"description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"背景图片(主要使用于 PleromaFE)\"])}\n }\n }\n }\n },\n \"wip_notice\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"此管理仪表板是实验性和 WIP 的,\", _interpolate(_named(\"adminFeLink\")), \"。\"])}\n }\n}"],"names":["ctx","normalize","_normalize","interpolate","_interpolate","list","_list","named","_named","plural","_plural"],"sourceRoot":""} \ No newline at end of file
diff --git a/priv/static/static/js/i18n/zh-json.5831b903c3e6d281f122.js b/priv/static/static/js/i18n/zh-json.a0a26f6d62ddbe0b49cc.js
index 6e2fbf61f..0733dd25c 100644
--- a/priv/static/static/js/i18n/zh-json.5831b903c3e6d281f122.js
+++ b/priv/static/static/js/i18n/zh-json.a0a26f6d62ddbe0b49cc.js
@@ -1,2 +1,2 @@
-"use strict";(self.webpackChunkpleroma_fe=self.webpackChunkpleroma_fe||[]).push([[5929],{4425:(r,n,e)=>{e.r(n),e.d(n,{default:()=>t});const t={chat:{title:r=>{const{normalize:n}=r;return n(["聊天"])}},exporter:{export:r=>{const{normalize:n}=r;return n(["导出"])},processing:r=>{const{normalize:n}=r;return n(["正在处理,稍后会提示您下载文件"])}},features_panel:{chat:r=>{const{normalize:n}=r;return n(["聊天"])},gopher:r=>{const{normalize:n}=r;return n(["Gopher"])},media_proxy:r=>{const{normalize:n}=r;return n(["媒体代理"])},scope_options:r=>{const{normalize:n}=r;return n(["可见范围设置"])},text_limit:r=>{const{normalize:n}=r;return n(["文字数量限制"])},title:r=>{const{normalize:n}=r;return n(["功能"])},who_to_follow:r=>{const{normalize:n}=r;return n(["推荐关注"])},pleroma_chat_messages:r=>{const{normalize:n}=r;return n(["Pleroma 聊天"])},upload_limit:r=>{const{normalize:n}=r;return n(["上传限制"])},shout:r=>{const{normalize:n}=r;return n(["留言板"])}},finder:{error_fetching_user:r=>{const{normalize:n}=r;return n(["获取用户时发生错误"])},find_user:r=>{const{normalize:n}=r;return n(["寻找用户"])}},general:{apply:r=>{const{normalize:n}=r;return n(["应用"])},submit:r=>{const{normalize:n}=r;return n(["提交"])},more:r=>{const{normalize:n}=r;return n(["更多"])},generic_error:r=>{const{normalize:n}=r;return n(["发生了一个错误"])},optional:r=>{const{normalize:n}=r;return n(["可选"])},show_more:r=>{const{normalize:n}=r;return n(["展开"])},show_less:r=>{const{normalize:n}=r;return n(["收起"])},cancel:r=>{const{normalize:n}=r;return n(["取消"])},disable:r=>{const{normalize:n}=r;return n(["禁用"])},enable:r=>{const{normalize:n}=r;return n(["启用"])},confirm:r=>{const{normalize:n}=r;return n(["确认"])},verify:r=>{const{normalize:n}=r;return n(["验证"])},dismiss:r=>{const{normalize:n}=r;return n(["忽略"])},peek:r=>{const{normalize:n}=r;return n(["预览"])},close:r=>{const{normalize:n}=r;return n(["关闭"])},retry:r=>{const{normalize:n}=r;return n(["重试"])},error_retry:r=>{const{normalize:n}=r;return n(["请重试"])},loading:r=>{const{normalize:n}=r;return n(["载入中…"])},role:{moderator:r=>{const{normalize:n}=r;return n(["监察员"])},admin:r=>{const{normalize:n}=r;return n(["管理员"])}},flash_content:r=>{const{normalize:n}=r;return n(["点击以使用 Ruffle 显示 Flash 内容(实验性,可能无效)。"])},flash_security:r=>{const{normalize:n}=r;return n(["注意这可能有潜在的危险,因为 Flash 内容仍然是任意的代码。"])},flash_fail:r=>{const{normalize:n}=r;return n(["Flash 内容加载失败,请在控制台查看详情。"])},scope_in_timeline:{public:r=>{const{normalize:n}=r;return n(["公开"])},direct:r=>{const{normalize:n}=r;return n(["私讯"])},private:r=>{const{normalize:n}=r;return n(["仅关注者"])},unlisted:r=>{const{normalize:n}=r;return n(["列外"])}},scroll_to_top:r=>{const{normalize:n}=r;return n(["滚动至顶"])},generic_error_message:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["发生一个错误:",e(t(0))])},never_show_again:r=>{const{normalize:n}=r;return n(["不再显示"])},undo:r=>{const{normalize:n}=r;return n(["撤销"])},yes:r=>{const{normalize:n}=r;return n(["是"])},no:r=>{const{normalize:n}=r;return n(["否"])},unpin:r=>{const{normalize:n}=r;return n(["取消固定该项"])},pin:r=>{const{normalize:n}=r;return n(["固定该项"])}},image_cropper:{crop_picture:r=>{const{normalize:n}=r;return n(["裁剪图片"])},save:r=>{const{normalize:n}=r;return n(["保存"])},save_without_cropping:r=>{const{normalize:n}=r;return n(["保存未经裁剪的图片"])},cancel:r=>{const{normalize:n}=r;return n(["取消"])}},importer:{submit:r=>{const{normalize:n}=r;return n(["提交"])},success:r=>{const{normalize:n}=r;return n(["导入成功。"])},error:r=>{const{normalize:n}=r;return n(["导入此文件时出现一个错误。"])}},login:{login:r=>{const{normalize:n}=r;return n(["登录"])},description:r=>{const{normalize:n}=r;return n(["用 OAuth 登录"])},logout:r=>{const{normalize:n}=r;return n(["登出"])},password:r=>{const{normalize:n}=r;return n(["密码"])},placeholder:r=>{const{normalize:n}=r;return n(["例如:lain"])},register:r=>{const{normalize:n}=r;return n(["注册"])},username:r=>{const{normalize:n}=r;return n(["用户名"])},hint:r=>{const{normalize:n}=r;return n(["登录后加入讨论"])},authentication_code:r=>{const{normalize:n}=r;return n(["验证码"])},enter_recovery_code:r=>{const{normalize:n}=r;return n(["输入一个恢复码"])},enter_two_factor_code:r=>{const{normalize:n}=r;return n(["输入一个双重因素验证码"])},recovery_code:r=>{const{normalize:n}=r;return n(["恢复码"])},heading:{totp:r=>{const{normalize:n}=r;return n(["双重因素验证"])},recovery:r=>{const{normalize:n}=r;return n(["双重因素恢复"])}},logout_confirm_cancel_button:r=>{const{normalize:n}=r;return n(["不要登出"])},logout_confirm_title:r=>{const{normalize:n}=r;return n(["确认登出"])},logout_confirm_accept_button:r=>{const{normalize:n}=r;return n(["登出"])},logout_confirm:r=>{const{normalize:n}=r;return n(["您确定要登出吗?"])}},media_modal:{previous:r=>{const{normalize:n}=r;return n(["往前"])},next:r=>{const{normalize:n}=r;return n(["往后"])},hide:r=>{const{normalize:n}=r;return n(["关闭媒体查看器"])},counter:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("current"))," / ",e(t("total"))])}},nav:{about:r=>{const{normalize:n}=r;return n(["关于"])},back:r=>{const{normalize:n}=r;return n(["后退"])},chat:r=>{const{normalize:n}=r;return n(["本站聊天"])},friend_requests:r=>{const{normalize:n}=r;return n(["关注请求"])},mentions:r=>{const{normalize:n}=r;return n(["提及"])},interactions:r=>{const{normalize:n}=r;return n(["互动"])},dms:r=>{const{normalize:n}=r;return n(["私信"])},public_tl:r=>{const{normalize:n}=r;return n(["公共时间线"])},timeline:r=>{const{normalize:n}=r;return n(["时间线"])},twkn:r=>{const{normalize:n}=r;return n(["已知网络"])},user_search:r=>{const{normalize:n}=r;return n(["用户搜索"])},search:r=>{const{normalize:n}=r;return n(["搜索"])},who_to_follow:r=>{const{normalize:n}=r;return n(["推荐关注"])},preferences:r=>{const{normalize:n}=r;return n(["偏好设置"])},administration:r=>{const{normalize:n}=r;return n(["管理员"])},chats:r=>{const{normalize:n}=r;return n(["聊天"])},timelines:r=>{const{normalize:n}=r;return n(["时间线"])},bookmarks:r=>{const{normalize:n}=r;return n(["书签"])},home_timeline:r=>{const{normalize:n}=r;return n(["主页时间线"])},lists:r=>{const{normalize:n}=r;return n(["列表"])},edit_finish:r=>{const{normalize:n}=r;return n(["完成编辑"])},mobile_notifications:r=>{const{normalize:n}=r;return n(["打开通知(有未读的)"])},mobile_notifications_close:r=>{const{normalize:n}=r;return n(["关闭通知"])},announcements:r=>{const{normalize:n}=r;return n(["公告"])},edit_nav_mobile:r=>{const{normalize:n}=r;return n(["自定义导航栏"])},edit_pinned:r=>{const{normalize:n}=r;return n(["编辑固定的项目"])},mobile_sidebar:r=>{const{normalize:n}=r;return n(["切换移动设备侧栏"])},search_close:r=>{const{normalize:n}=r;return n(["关闭搜索栏"])}},notifications:{broken_favorite:r=>{const{normalize:n}=r;return n(["未知的状态,正在搜索中…"])},favorited_you:r=>{const{normalize:n}=r;return n(["喜欢了你的状态"])},followed_you:r=>{const{normalize:n}=r;return n(["关注了你"])},load_older:r=>{const{normalize:n}=r;return n(["加载更早的通知"])},notifications:r=>{const{normalize:n}=r;return n(["通知"])},read:r=>{const{normalize:n}=r;return n(["已阅!"])},repeated_you:r=>{const{normalize:n}=r;return n(["转发了你的状态"])},no_more_notifications:r=>{const{normalize:n}=r;return n(["没有更多的通知"])},reacted_with:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["作出了 ",e(t(0))," 的反应"])},migrated_to:r=>{const{normalize:n}=r;return n(["迁移到了"])},follow_request:r=>{const{normalize:n}=r;return n(["想要关注你"])},error:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["取得通知时发生错误:",e(t(0))])},poll_ended:r=>{const{normalize:n}=r;return n(["投票结束了"])},submitted_report:r=>{const{normalize:n}=r;return n(["提交举报"])}},polls:{add_poll:r=>{const{normalize:n}=r;return n(["增加投票"])},add_option:r=>{const{normalize:n}=r;return n(["增加选项"])},option:r=>{const{normalize:n}=r;return n(["选项"])},votes:r=>{const{normalize:n}=r;return n(["投票"])},vote:r=>{const{normalize:n}=r;return n(["投票"])},type:r=>{const{normalize:n}=r;return n(["投票类型"])},single_choice:r=>{const{normalize:n}=r;return n(["单选"])},multiple_choices:r=>{const{normalize:n}=r;return n(["多选"])},expiry:r=>{const{normalize:n}=r;return n(["投票期限"])},expires_in:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["投票于 ",e(t(0))," 后结束"])},expired:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["投票 ",e(t(0))," 前已结束"])},not_enough_options:r=>{const{normalize:n}=r;return n(["投票的选项太少"])},votes_count:r=>{const{normalize:n,interpolate:e,named:t,plural:o}=r;return o([n([e(t("count"))," 票"]),n([e(t("count"))," 票"])])},people_voted_count:r=>{const{normalize:n,interpolate:e,named:t,plural:o}=r;return o([n([e(t("count"))," 人已投票"]),n([e(t("count"))," 人已投票"])])}},stickers:{add_sticker:r=>{const{normalize:n}=r;return n(["添加贴纸"])}},interactions:{favs_repeats:r=>{const{normalize:n}=r;return n(["转发和喜欢"])},follows:r=>{const{normalize:n}=r;return n(["新的关注者"])},load_older:r=>{const{normalize:n}=r;return n(["加载更早的互动"])},moves:r=>{const{normalize:n}=r;return n(["用户迁移"])},reports:r=>{const{normalize:n}=r;return n(["举报"])},emoji_reactions:r=>{const{normalize:n}=r;return n(["表情回应"])}},post_status:{new_status:r=>{const{normalize:n}=r;return n(["发布新状态"])},account_not_locked_warning:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["你的帐号没有 ",e(t(0)),"。任何人都可以关注你并浏览你的上锁内容。"])},account_not_locked_warning_link:r=>{const{normalize:n}=r;return n(["上锁"])},attachments_sensitive:r=>{const{normalize:n}=r;return n(["标记附件为敏感内容"])},content_type:{"text/plain":r=>{const{normalize:n}=r;return n(["纯文本"])},"text/html":r=>{const{normalize:n}=r;return n(["HTML"])},"text/markdown":r=>{const{normalize:n}=r;return n(["Markdown"])},"text/bbcode":r=>{const{normalize:n}=r;return n(["BBCode"])}},content_warning:r=>{const{normalize:n}=r;return n(["主题(可选)"])},default:r=>{const{normalize:n}=r;return n(["刚刚抵达上海。"])},direct_warning_to_all:r=>{const{normalize:n}=r;return n(["本条内容只有被提及的用户能够看到。"])},direct_warning_to_first_only:r=>{const{normalize:n}=r;return n(["本条内容只有被在消息开始处提及的用户能够看到。"])},posting:r=>{const{normalize:n}=r;return n(["发送中"])},scope_notice:{public:r=>{const{normalize:n}=r;return n(["本条内容可以被所有人看到"])},private:r=>{const{normalize:n}=r;return n(["关注你的人才能看到本条内容"])},unlisted:r=>{const{normalize:n}=r;return n(["本条内容既不在公共时间线,也不会在所有已知网络上可见"])}},scope:{direct:r=>{const{normalize:n}=r;return n(["私信 - 只发送给被提及的用户"])},private:r=>{const{normalize:n}=r;return n(["仅关注者 - 只有关注了你的人能看到"])},public:r=>{const{normalize:n}=r;return n(["公共 - 发送到公共时间轴"])},unlisted:r=>{const{normalize:n}=r;return n(["不公开 - 不会发送到公共时间轴"])}},preview_empty:r=>{const{normalize:n}=r;return n(["空的"])},preview:r=>{const{normalize:n}=r;return n(["预览"])},media_description:r=>{const{normalize:n}=r;return n(["媒体描述"])},media_description_error:r=>{const{normalize:n}=r;return n(["更新媒体失败,请重试"])},empty_status_error:r=>{const{normalize:n}=r;return n(["不能发布没有内容、没有附件的发文"])},post:r=>{const{normalize:n}=r;return n(["发送"])},edit_remote_warning:r=>{const{normalize:n}=r;return n(["其它远程实例可能不支持编辑并且无法接收您的帖子的最新版本。"])},edit_unsupported_warning:r=>{const{normalize:n}=r;return n(["Pleroma 不支持对提及或投票进行编辑。"])},edit_status:r=>{const{normalize:n}=r;return n(["编辑状态"])},content_type_selection:r=>{const{normalize:n}=r;return n(["发帖格式"])},scope_notice_dismiss:r=>{const{normalize:n}=r;return n(["关闭此提示"])}},registration:{bio:r=>{const{normalize:n}=r;return n(["简介"])},email:r=>{const{normalize:n}=r;return n(["电子邮箱"])},fullname:r=>{const{normalize:n}=r;return n(["显示名称"])},password_confirm:r=>{const{normalize:n}=r;return n(["确认密码"])},registration:r=>{const{normalize:n}=r;return n(["注册"])},token:r=>{const{normalize:n}=r;return n(["邀请码"])},captcha:r=>{const{normalize:n}=r;return n(["CAPTCHA"])},new_captcha:r=>{const{normalize:n}=r;return n(["点击图片获取新的验证码"])},username_placeholder:r=>{const{normalize:n}=r;return n(["例如:lain"])},fullname_placeholder:r=>{const{normalize:n}=r;return n(["例如:岩仓玲音"])},bio_placeholder:r=>{const{normalize:n}=r;return n(["例如:\n你好,我是玲音。\n我是一个住在日本郊区的动画少女。你可能在 Wired 见过我。"])},validations:{username_required:r=>{const{normalize:n}=r;return n(["不能留空"])},fullname_required:r=>{const{normalize:n}=r;return n(["不能留空"])},email_required:r=>{const{normalize:n}=r;return n(["不能留空"])},password_required:r=>{const{normalize:n}=r;return n(["不能留空"])},password_confirmation_required:r=>{const{normalize:n}=r;return n(["不能留空"])},password_confirmation_match:r=>{const{normalize:n}=r;return n(["密码不一致"])},birthday_required:r=>{const{normalize:n}=r;return n(["不能为空"])},birthday_min_age:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["必须在 ",e(t("date"))," 或之前"])}},reason_placeholder:r=>{const{normalize:n}=r;return n(["此实例的注册需要手动批准。\n请让管理员知道您为什么想要注册。"])},reason:r=>{const{normalize:n}=r;return n(["注册理由"])},register:r=>{const{normalize:n}=r;return n(["注册"])},email_language:r=>{const{normalize:n}=r;return n(["你想从服务器收到什么语言的邮件?"])},bio_optional:r=>{const{normalize:n}=r;return n(["介绍(可选)"])},email_optional:r=>{const{normalize:n}=r;return n(["电子邮件(可选)"])},birthday:r=>{const{normalize:n}=r;return n(["生日:"])},birthday_optional:r=>{const{normalize:n}=r;return n(["生日(可选):"])}},selectable_list:{select_all:r=>{const{normalize:n}=r;return n(["选择全部"])}},settings:{app_name:r=>{const{normalize:n}=r;return n(["App 名称"])},security:r=>{const{normalize:n}=r;return n(["安全"])},enter_current_password_to_confirm:r=>{const{normalize:n}=r;return n(["输入您当前的密码来确认您的身份"])},mfa:{otp:r=>{const{normalize:n}=r;return n(["OTP"])},setup_otp:r=>{const{normalize:n}=r;return n(["设置 OTP"])},wait_pre_setup_otp:r=>{const{normalize:n}=r;return n(["预设 OTP"])},confirm_and_enable:r=>{const{normalize:n}=r;return n(["确认并启用 OTP"])},title:r=>{const{normalize:n}=r;return n(["双因素验证"])},generate_new_recovery_codes:r=>{const{normalize:n}=r;return n(["生成新的恢复码"])},warning_of_generate_new_codes:r=>{const{normalize:n}=r;return n(["当您生成新的恢复码时,您旧的恢复码将会失效。"])},recovery_codes:r=>{const{normalize:n}=r;return n(["恢复码。"])},waiting_a_recovery_codes:r=>{const{normalize:n}=r;return n(["正在接收备份码…"])},recovery_codes_warning:r=>{const{normalize:n}=r;return n(["抄写这些号码,或者将其保存在安全的地方。这些号码不会再次显示。如果您无法访问您的 2FA app,也丢失了您的恢复码,您就再也无法登录您的账号了。"])},authentication_methods:r=>{const{normalize:n}=r;return n(["身份验证方法"])},scan:{title:r=>{const{normalize:n}=r;return n(["扫一下"])},desc:r=>{const{normalize:n}=r;return n(["使用您的双因素验证 app,扫描这个二维码,或者输入这些文字密钥:"])},secret_code:r=>{const{normalize:n}=r;return n(["密钥"])}},verify:{desc:r=>{const{normalize:n}=r;return n(["要启用双因素验证,请输入您的双因素验证 app 里的数字:"])}}},attachmentRadius:r=>{const{normalize:n}=r;return n(["附件"])},attachments:r=>{const{normalize:n}=r;return n(["附件"])},avatar:r=>{const{normalize:n}=r;return n(["头像"])},avatarAltRadius:r=>{const{normalize:n}=r;return n(["头像(通知)"])},avatarRadius:r=>{const{normalize:n}=r;return n(["头像"])},background:r=>{const{normalize:n}=r;return n(["背景"])},bio:r=>{const{normalize:n}=r;return n(["简介"])},block_export:r=>{const{normalize:n}=r;return n(["屏蔽名单导出"])},block_export_button:r=>{const{normalize:n}=r;return n(["导出你的屏蔽名单到一个 csv 文件"])},block_import:r=>{const{normalize:n}=r;return n(["屏蔽名单导入"])},block_import_error:r=>{const{normalize:n}=r;return n(["导入屏蔽名单出错"])},blocks_imported:r=>{const{normalize:n}=r;return n(["屏蔽名单导入成功!需要一点时间来处理。"])},blocks_tab:r=>{const{normalize:n}=r;return n(["屏蔽"])},btnRadius:r=>{const{normalize:n}=r;return n(["按钮"])},cBlue:r=>{const{normalize:n}=r;return n(["蓝色(回复,关注)"])},cGreen:r=>{const{normalize:n}=r;return n(["绿色(转发)"])},cOrange:r=>{const{normalize:n}=r;return n(["橙色(喜欢)"])},cRed:r=>{const{normalize:n}=r;return n(["红色(取消)"])},change_password:r=>{const{normalize:n}=r;return n(["修改密码"])},change_password_error:r=>{const{normalize:n}=r;return n(["修改密码的时候出了点问题。"])},changed_password:r=>{const{normalize:n}=r;return n(["成功修改了密码!"])},collapse_subject:r=>{const{normalize:n}=r;return n(["折叠带主题的内容"])},composing:r=>{const{normalize:n}=r;return n(["撰写"])},confirm_new_password:r=>{const{normalize:n}=r;return n(["确认新密码"])},current_avatar:r=>{const{normalize:n}=r;return n(["当前头像"])},current_password:r=>{const{normalize:n}=r;return n(["当前密码"])},current_profile_banner:r=>{const{normalize:n}=r;return n(["您当前的横幅图片"])},data_import_export_tab:r=>{const{normalize:n}=r;return n(["数据导入/导出"])},default_vis:r=>{const{normalize:n}=r;return n(["默认可见范围"])},delete_account:r=>{const{normalize:n}=r;return n(["删除账户"])},delete_account_description:r=>{const{normalize:n}=r;return n(["永久删除你的帐号和所有数据。"])},delete_account_error:r=>{const{normalize:n}=r;return n(["删除账户时发生错误,如果一直删除不了,请联系实例管理员。"])},delete_account_instructions:r=>{const{normalize:n}=r;return n(["在下面输入您的密码来确认删除账户。"])},avatar_size_instruction:r=>{const{normalize:n}=r;return n(["推荐的头像图片最小尺寸为 150x150 像素。"])},export_theme:r=>{const{normalize:n}=r;return n(["导出预置主题"])},filtering:r=>{const{normalize:n}=r;return n(["过滤器"])},filtering_explanation:r=>{const{normalize:n}=r;return n(["所有包含以下词汇的内容都会被隐藏,一行一个"])},follow_export:r=>{const{normalize:n}=r;return n(["导出关注"])},follow_export_button:r=>{const{normalize:n}=r;return n(["将关注导出成 csv 文件"])},follow_import:r=>{const{normalize:n}=r;return n(["导入关注"])},follow_import_error:r=>{const{normalize:n}=r;return n(["导入关注时错误"])},follows_imported:r=>{const{normalize:n}=r;return n(["关注已导入!尚需要一些时间来处理。"])},foreground:r=>{const{normalize:n}=r;return n(["前景"])},general:r=>{const{normalize:n}=r;return n(["通用"])},hide_attachments_in_convo:r=>{const{normalize:n}=r;return n(["在对话中隐藏附件"])},hide_attachments_in_tl:r=>{const{normalize:n}=r;return n(["在时间线上隐藏附件"])},hide_muted_posts:r=>{const{normalize:n}=r;return n(["不显示被隐藏的用户的帖子"])},max_thumbnails:r=>{const{normalize:n}=r;return n(["每个帖子最多能显示的缩略图数量"])},hide_isp:r=>{const{normalize:n}=r;return n(["隐藏实例独有的面板"])},preload_images:r=>{const{normalize:n}=r;return n(["预载图片"])},use_one_click_nsfw:r=>{const{normalize:n}=r;return n(["点击一次以打开工作场所不适宜(NSFW)的附件"])},hide_post_stats:r=>{const{normalize:n}=r;return n(["隐藏帖子的统计数据(例如:喜欢的次数)"])},hide_user_stats:r=>{const{normalize:n}=r;return n(["隐藏用户的统计数据(例如:关注者的数量)"])},hide_filtered_statuses:r=>{const{normalize:n}=r;return n(["隐藏过滤的状态"])},import_blocks_from_a_csv_file:r=>{const{normalize:n}=r;return n(["从 csv 文件中导入拉黑名单"])},import_followers_from_a_csv_file:r=>{const{normalize:n}=r;return n(["从 csv 文件中导入关注"])},import_theme:r=>{const{normalize:n}=r;return n(["导入预置主题"])},inputRadius:r=>{const{normalize:n}=r;return n(["输入框"])},checkboxRadius:r=>{const{normalize:n}=r;return n(["复选框"])},instance_default:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["(默认:",e(t("value")),")"])},instance_default_simple:r=>{const{normalize:n}=r;return n(["(默认)"])},interface:r=>{const{normalize:n}=r;return n(["界面"])},interfaceLanguage:r=>{const{normalize:n}=r;return n(["界面语言"])},invalid_theme_imported:r=>{const{normalize:n}=r;return n(["您所选择的主题文件不被 Pleroma 支持,因此主题未被修改。"])},limited_availability:r=>{const{normalize:n}=r;return n(["在您的浏览器中无法使用"])},links:r=>{const{normalize:n}=r;return n(["链接"])},lock_account_description:r=>{const{normalize:n}=r;return n(["您需要手动审核关注请求"])},loop_video:r=>{const{normalize:n}=r;return n(["循环视频"])},loop_video_silent_only:r=>{const{normalize:n}=r;return n(["只循环没有声音的视频(例如:Mastodon 里的“GIF”)"])},mutes_tab:r=>{const{normalize:n}=r;return n(["隐藏"])},play_videos_in_modal:r=>{const{normalize:n}=r;return n(["在弹出框内播放视频"])},use_contain_fit:r=>{const{normalize:n}=r;return n(["生成缩略图时不要裁剪附件"])},name:r=>{const{normalize:n}=r;return n(["名字"])},name_bio:r=>{const{normalize:n}=r;return n(["名字及简介"])},new_password:r=>{const{normalize:n}=r;return n(["新密码"])},notification_visibility:r=>{const{normalize:n}=r;return n(["要显示的通知类型"])},notification_visibility_follows:r=>{const{normalize:n}=r;return n(["关注"])},notification_visibility_likes:r=>{const{normalize:n}=r;return n(["喜欢"])},notification_visibility_mentions:r=>{const{normalize:n}=r;return n(["提及"])},notification_visibility_repeats:r=>{const{normalize:n}=r;return n(["转发"])},no_rich_text_description:r=>{const{normalize:n}=r;return n(["不显示富文本格式"])},no_blocks:r=>{const{normalize:n}=r;return n(["没有屏蔽"])},no_mutes:r=>{const{normalize:n}=r;return n(["没有隐藏"])},hide_follows_description:r=>{const{normalize:n}=r;return n(["不要显示我所关注的人"])},hide_followers_description:r=>{const{normalize:n}=r;return n(["不要显示关注我的人"])},show_admin_badge:r=>{const{normalize:n}=r;return n(["在我的个人资料中显示“管理员”徽章"])},show_moderator_badge:r=>{const{normalize:n}=r;return n(["在我的个人资料中显示“监察员”徽章"])},nsfw_clickthrough:r=>{const{normalize:n}=r;return n(["将不和谐附件和链接预览隐藏,点击才会显示"])},oauth_tokens:r=>{const{normalize:n}=r;return n(["OAuth令牌"])},token:r=>{const{normalize:n}=r;return n(["令牌"])},refresh_token:r=>{const{normalize:n}=r;return n(["刷新令牌"])},valid_until:r=>{const{normalize:n}=r;return n(["有效期至"])},revoke_token:r=>{const{normalize:n}=r;return n(["撤消"])},panelRadius:r=>{const{normalize:n}=r;return n(["面板"])},pause_on_unfocused:r=>{const{normalize:n}=r;return n(["在离开页面时暂停时间线推送"])},presets:r=>{const{normalize:n}=r;return n(["预置"])},profile_background:r=>{const{normalize:n}=r;return n(["个人背景图"])},profile_banner:r=>{const{normalize:n}=r;return n(["横幅图片"])},profile_tab:r=>{const{normalize:n}=r;return n(["个人资料"])},radii_help:r=>{const{normalize:n}=r;return n(["设置界面边缘的圆角 (单位:像素)"])},replies_in_timeline:r=>{const{normalize:n}=r;return n(["时间线中的回复"])},reply_visibility_all:r=>{const{normalize:n}=r;return n(["显示所有回复"])},reply_visibility_following:r=>{const{normalize:n}=r;return n(["只显示发送给我的回复/发送给我关注的用户的回复"])},reply_visibility_self:r=>{const{normalize:n}=r;return n(["只显示发送给我的回复"])},autohide_floating_post_button:r=>{const{normalize:n}=r;return n(["自动隐藏新帖子的按钮(移动设备)"])},saving_err:r=>{const{normalize:n}=r;return n(["保存设置时发生错误"])},saving_ok:r=>{const{normalize:n}=r;return n(["设置已保存"])},search_user_to_block:r=>{const{normalize:n}=r;return n(["搜索你想屏蔽的用户"])},search_user_to_mute:r=>{const{normalize:n}=r;return n(["搜索你想要隐藏的用户"])},security_tab:r=>{const{normalize:n}=r;return n(["安全"])},scope_copy:r=>{const{normalize:n}=r;return n(["回复时复制可见范围(私信中永远会复制)"])},minimal_scopes_mode:r=>{const{normalize:n}=r;return n(["使发文可见范围的选项最少化"])},set_new_avatar:r=>{const{normalize:n}=r;return n(["设置新头像"])},set_new_profile_background:r=>{const{normalize:n}=r;return n(["设置新的个人资料背景"])},set_new_profile_banner:r=>{const{normalize:n}=r;return n(["设置新的横幅图片"])},settings:r=>{const{normalize:n}=r;return n(["设置"])},subject_input_always_show:r=>{const{normalize:n}=r;return n(["总是显示主题框"])},subject_line_behavior:r=>{const{normalize:n}=r;return n(["回复时复制主题"])},subject_line_email:r=>{const{normalize:n}=r;return n(['类似电子邮件: "re: 主题"'])},subject_line_mastodon:r=>{const{normalize:n}=r;return n(["类似 mastodon: 与原主题相同"])},subject_line_noop:r=>{const{normalize:n}=r;return n(["不要复制"])},post_status_content_type:r=>{const{normalize:n}=r;return n(["发文状态内容类型"])},stop_gifs:r=>{const{normalize:n}=r;return n(["鼠标悬停时播放GIF"])},streaming:r=>{const{normalize:n}=r;return n(["滚动到顶部时自动推送新内容"])},text:r=>{const{normalize:n}=r;return n(["文本"])},theme:r=>{const{normalize:n}=r;return n(["主题"])},theme_help:r=>{const{normalize:n}=r;return n(["使用十六进制代码(#rrggbb)来设置主题颜色。"])},theme_help_v2_1:r=>{const{normalize:n}=r;return n(["您也可以通过选中复选框来覆盖某些组件的颜色和透明度。使用“清除所有”按钮来清除所有覆盖设置。"])},theme_help_v2_2:r=>{const{normalize:n}=r;return n(["某些条目下的图标是背景或文本对比指示器,鼠标悬停可以获取详细信息。请记住,使用透明度来显示最差的情况。"])},tooltipRadius:r=>{const{normalize:n}=r;return n(["提醒"])},upload_a_photo:r=>{const{normalize:n}=r;return n(["上传照片"])},user_settings:r=>{const{normalize:n}=r;return n(["用户设置"])},values:{false:r=>{const{normalize:n}=r;return n(["否"])},true:r=>{const{normalize:n}=r;return n(["是"])}},notifications:r=>{const{normalize:n}=r;return n(["通知"])},notification_mutes:r=>{const{normalize:n}=r;return n(["要停止收到某个指定的用户的通知,请使用隐藏功能。"])},notification_blocks:r=>{const{normalize:n}=r;return n(["屏蔽一个用户会停止接收来自该用户的所有通知,并且会取消对该用户的关注。"])},enable_web_push_notifications:r=>{const{normalize:n}=r;return n(["启用 web 推送通知"])},style:{switcher:{keep_color:r=>{const{normalize:n}=r;return n(["保留颜色"])},keep_shadows:r=>{const{normalize:n}=r;return n(["保留阴影"])},keep_opacity:r=>{const{normalize:n}=r;return n(["保留透明度"])},keep_roundness:r=>{const{normalize:n}=r;return n(["保留圆角"])},keep_fonts:r=>{const{normalize:n}=r;return n(["保留字体"])},save_load_hint:r=>{const{normalize:n}=r;return n(['"保留" 选项在选择或加载主题时保留当前设置的选项,在导出主题时还会存储上述选项。当所有复选框未设置时,导出主题将保存所有内容。'])},reset:r=>{const{normalize:n}=r;return n(["重置"])},clear_all:r=>{const{normalize:n}=r;return n(["清除全部"])},clear_opacity:r=>{const{normalize:n}=r;return n(["清除透明度"])},load_theme:r=>{const{normalize:n}=r;return n(["加载主题"])},help:{upgraded_from_v2:r=>{const{normalize:n}=r;return n(["PleromaFE 已升级,主题会与您记忆中的不太一样。"])},older_version_imported:r=>{const{normalize:n}=r;return n(["您导入的文件来自旧版本的 FE。"])},future_version_imported:r=>{const{normalize:n}=r;return n(["您导入的文件来自更高版本的 FE。"])},v2_imported:r=>{const{normalize:n}=r;return n(["您导入的文件是旧版 FE 的。我们尽可能保持兼容性,但还是可能出现不一致的情况。"])},snapshot_source_mismatch:r=>{const{normalize:n}=r;return n(["版本冲突:很有可能是 FE 版本回滚后再次升级了,如果您使用旧版本的 FE 更改了主题那么您可能需要使用旧版本,否则请使用新版本。"])},migration_napshot_gone:r=>{const{normalize:n}=r;return n(["不知出于何种原因,主题快照缺失了,一些地方可能与您印象中的不符。"])},migration_snapshot_ok:r=>{const{normalize:n}=r;return n(["为保万无一失,加载了主题快照。您可以试着加载主题数据。"])},fe_downgraded:r=>{const{normalize:n}=r;return n(["PleromaFE 的版本回滚了。"])},fe_upgraded:r=>{const{normalize:n}=r;return n(["PleromaFE 的主题引擎随着版本更新升级了。"])},snapshot_missing:r=>{const{normalize:n}=r;return n(["在文件中没有主题快照,所以网站外观可能会与原来预想的不同。"])},snapshot_present:r=>{const{normalize:n}=r;return n(["主题快照已加载,因此所有的值均被覆盖。您可以改为加载主题的实际数据。"])}},use_source:r=>{const{normalize:n}=r;return n(["新版本"])},use_snapshot:r=>{const{normalize:n}=r;return n(["老版本"])},keep_as_is:r=>{const{normalize:n}=r;return n(["保持原状"])}},common:{color:r=>{const{normalize:n}=r;return n(["颜色"])},opacity:r=>{const{normalize:n}=r;return n(["透明度"])},contrast:{hint:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["对比度是 ",e(t("ratio")),", 它 ",e(t("level"))," ",e(t("context"))])},level:{aa:r=>{const{normalize:n}=r;return n(["符合 AA 等级准则(最低)"])},aaa:r=>{const{normalize:n}=r;return n(["符合 AAA 等级准则(推荐)"])},bad:r=>{const{normalize:n}=r;return n(["不符合任何辅助功能指南"])}},context:{"18pt":r=>{const{normalize:n}=r;return n(["大字文本 (18pt+)"])},text:r=>{const{normalize:n}=r;return n(["文本"])}}}},common_colors:{_tab_label:r=>{const{normalize:n}=r;return n(["常规"])},main:r=>{const{normalize:n}=r;return n(["常用颜色"])},foreground_hint:r=>{const{normalize:n}=r;return n(["点击”高级“ 标签进行细致的控制"])},rgbo:r=>{const{normalize:n}=r;return n(["图标,强调,徽章"])}},advanced_colors:{_tab_label:r=>{const{normalize:n}=r;return n(["高级"])},alert:r=>{const{normalize:n}=r;return n(["提醒或警告背景色"])},alert_error:r=>{const{normalize:n}=r;return n(["错误"])},badge:r=>{const{normalize:n}=r;return n(["徽章背景"])},badge_notification:r=>{const{normalize:n}=r;return n(["通知"])},panel_header:r=>{const{normalize:n}=r;return n(["面板标题"])},top_bar:r=>{const{normalize:n}=r;return n(["顶栏"])},borders:r=>{const{normalize:n}=r;return n(["边框"])},buttons:r=>{const{normalize:n}=r;return n(["按钮"])},inputs:r=>{const{normalize:n}=r;return n(["输入框"])},faint_text:r=>{const{normalize:n}=r;return n(["灰度文字"])},chat:{border:r=>{const{normalize:n}=r;return n(["边框"])},outgoing:r=>{const{normalize:n}=r;return n(["发出的"])},incoming:r=>{const{normalize:n}=r;return n(["收到的"])}},disabled:r=>{const{normalize:n}=r;return n(["禁用的"])},pressed:r=>{const{normalize:n}=r;return n(["压下的"])},highlight:r=>{const{normalize:n}=r;return n(["强调元素"])},selectedMenu:r=>{const{normalize:n}=r;return n(["选中的菜单项"])},selectedPost:r=>{const{normalize:n}=r;return n(["选中的发布内容"])},icons:r=>{const{normalize:n}=r;return n(["图标"])},poll:r=>{const{normalize:n}=r;return n(["投票统计图"])},popover:r=>{const{normalize:n}=r;return n(["提示框,菜单,弹出框"])},post:r=>{const{normalize:n}=r;return n(["发布内容/用户简介"])},alert_neutral:r=>{const{normalize:n}=r;return n(["中性"])},alert_warning:r=>{const{normalize:n}=r;return n(["警告"])},tabs:r=>{const{normalize:n}=r;return n(["标签页"])},underlay:r=>{const{normalize:n}=r;return n(["底衬"])},toggled:r=>{const{normalize:n}=r;return n(["按下的"])},wallpaper:r=>{const{normalize:n}=r;return n(["壁纸"])}},radii:{_tab_label:r=>{const{normalize:n}=r;return n(["圆角"])}},shadows:{_tab_label:r=>{const{normalize:n}=r;return n(["阴影和照明"])},component:r=>{const{normalize:n}=r;return n(["组件"])},override:r=>{const{normalize:n}=r;return n(["覆盖"])},shadow_id:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["阴影 #",e(t("value"))])},blur:r=>{const{normalize:n}=r;return n(["模糊"])},spread:r=>{const{normalize:n}=r;return n(["扩散"])},inset:r=>{const{normalize:n}=r;return n(["内阴影"])},hint:r=>{const{normalize:n}=r;return n(["对于阴影你还可以使用 --variable 作为颜色值来使用 CSS3 变量。请注意,这种情况下,透明设置将不起作用。"])},filter_hint:{always_drop_shadow:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["警告,此阴影设置会总是使用 ",e(t(0))," ,如果浏览器支持的话。"])},drop_shadow_syntax:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 不支持参数 ",e(t(1))," 和关键词 ",e(t(2))," 。"])},avatar_inset:r=>{const{normalize:n}=r;return n(["请注意组合两个内部和非内部的阴影到头像上,在透明头像上可能会有意料之外的效果。"])},spread_zero:r=>{const{normalize:n}=r;return n(["阴影的扩散 > 0 会同设置成零一样"])},inset_classic:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["内阴影会使用 ",e(t(0))])}},components:{panel:r=>{const{normalize:n}=r;return n(["面板"])},panelHeader:r=>{const{normalize:n}=r;return n(["面板标题"])},topBar:r=>{const{normalize:n}=r;return n(["顶栏"])},avatar:r=>{const{normalize:n}=r;return n(["用户头像(在个人资料栏)"])},avatarStatus:r=>{const{normalize:n}=r;return n(["用户头像(在帖子显示栏)"])},popup:r=>{const{normalize:n}=r;return n(["弹窗与工具提示"])},button:r=>{const{normalize:n}=r;return n(["按钮"])},buttonHover:r=>{const{normalize:n}=r;return n(["按钮(悬停)"])},buttonPressed:r=>{const{normalize:n}=r;return n(["按钮(压下)"])},buttonPressedHover:r=>{const{normalize:n}=r;return n(["按钮(压下和悬停)"])},input:r=>{const{normalize:n}=r;return n(["输入框"])}},hintV3:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["对于阴影,您还可以使用 ",e(t(0))," 表示法来使用其它颜色插槽。"])}},fonts:{_tab_label:r=>{const{normalize:n}=r;return n(["字体"])},help:r=>{const{normalize:n}=r;return n(["为用户界面的元素选择字体。若选择 “自选”,您必须输入与系统显示完全一致的字体名称。"])},components:{interface:r=>{const{normalize:n}=r;return n(["界面"])},input:r=>{const{normalize:n}=r;return n(["输入框"])},post:r=>{const{normalize:n}=r;return n(["发帖文字"])},postCode:r=>{const{normalize:n}=r;return n(["帖子中使用等间距文字(富文本)"])}},family:r=>{const{normalize:n}=r;return n(["字体名称"])},size:r=>{const{normalize:n}=r;return n(["大小 (in px)"])},weight:r=>{const{normalize:n}=r;return n(["字重 (粗体)"])},custom:r=>{const{normalize:n}=r;return n(["自选"])}},preview:{header:r=>{const{normalize:n}=r;return n(["预览"])},content:r=>{const{normalize:n}=r;return n(["内容"])},error:r=>{const{normalize:n}=r;return n(["错误示例"])},button:r=>{const{normalize:n}=r;return n(["按钮"])},text:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["有堆 ",e(t(0))," 和 ",e(t(1))])},mono:r=>{const{normalize:n}=r;return n(["monospace 内容"])},input:r=>{const{normalize:n}=r;return n(["刚刚抵达上海。"])},faint_link:r=>{const{normalize:n}=r;return n(["帮助手册"])},fine_print:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["阅读我们的 ",e(t(0))," ,然而什么也学不到!"])},header_faint:r=>{const{normalize:n}=r;return n(["这很正常"])},checkbox:r=>{const{normalize:n}=r;return n(["我已经浏览了条款及细则"])},link:r=>{const{normalize:n}=r;return n(["一个棒棒的小小链接"])}}},version:{title:r=>{const{normalize:n}=r;return n(["版本"])},backend_version:r=>{const{normalize:n}=r;return n(["后端版本"])},frontend_version:r=>{const{normalize:n}=r;return n(["前端版本"])}},notification_setting_filters:r=>{const{normalize:n}=r;return n(["过滤器"])},domain_mutes:r=>{const{normalize:n}=r;return n(["域名"])},changed_email:r=>{const{normalize:n}=r;return n(["邮箱修改成功!"])},change_email_error:r=>{const{normalize:n}=r;return n(["修改您的电子邮箱时发生错误。"])},change_email:r=>{const{normalize:n}=r;return n(["修改电子邮箱"])},allow_following_move:r=>{const{normalize:n}=r;return n(["正在关注的账号迁移时自动重新关注"])},notification_setting_privacy_option:r=>{const{normalize:n}=r;return n(["在通知推送中隐藏发送者和内容"])},notification_setting_privacy:r=>{const{normalize:n}=r;return n(["隐私"])},hide_follows_count_description:r=>{const{normalize:n}=r;return n(["不显示关注数"])},notification_visibility_emoji_reactions:r=>{const{normalize:n}=r;return n(["互动"])},notification_visibility_moves:r=>{const{normalize:n}=r;return n(["用户迁移"])},new_email:r=>{const{normalize:n}=r;return n(["新邮箱"])},emoji_reactions_on_timeline:r=>{const{normalize:n}=r;return n(["在时间线上显示表情符号互动"])},notification_setting_hide_notification_contents:r=>{const{normalize:n}=r;return n(["隐藏推送通知中的发送者与内容信息"])},notification_setting_block_from_strangers:r=>{const{normalize:n}=r;return n(["屏蔽来自你没有关注的用户的通知"])},type_domains_to_mute:r=>{const{normalize:n}=r;return n(["搜索需要隐藏的域名"])},useStreamingApi:r=>{const{normalize:n}=r;return n(["实时接收帖子和通知"])},user_mutes:r=>{const{normalize:n}=r;return n(["用户"])},reset_background_confirm:r=>{const{normalize:n}=r;return n(["您确定要重置背景图吗?"])},reset_banner_confirm:r=>{const{normalize:n}=r;return n(["您确定要重置横幅图片吗?"])},reset_avatar_confirm:r=>{const{normalize:n}=r;return n(["您确定要重置头像吗?"])},reset_profile_banner:r=>{const{normalize:n}=r;return n(["重置横幅图片"])},reset_profile_background:r=>{const{normalize:n}=r;return n(["重置个人背景图"])},reset_avatar:r=>{const{normalize:n}=r;return n(["重置头像"])},hide_followers_count_description:r=>{const{normalize:n}=r;return n(["不显示关注者数量"])},profile_fields:{value:r=>{const{normalize:n}=r;return n(["内容"])},name:r=>{const{normalize:n}=r;return n(["标签"])},add_field:r=>{const{normalize:n}=r;return n(["添加字段"])},label:r=>{const{normalize:n}=r;return n(["个人资料元数据"])}},accent:r=>{const{normalize:n}=r;return n(["强调色"])},pad_emoji:r=>{const{normalize:n}=r;return n(["从表情符号选择器插入表情符号时,在表情两侧插入空格"])},discoverable:r=>{const{normalize:n}=r;return n(["允许通过搜索检索等服务找到此账号"])},mutes_and_blocks:r=>{const{normalize:n}=r;return n(["隐藏与屏蔽"])},bot:r=>{const{normalize:n}=r;return n(["这是一个机器人账号"])},fun:r=>{const{normalize:n}=r;return n(["趣味"])},useStreamingApiWarning:r=>{const{normalize:n}=r;return n(["(不推荐使用,试验性,已知会跳过一些帖子)"])},chatMessageRadius:r=>{const{normalize:n}=r;return n(["聊天消息"])},greentext:r=>{const{normalize:n}=r;return n(["Meme 箭头"])},virtual_scrolling:r=>{const{normalize:n}=r;return n(["优化时间线渲染"])},import_mutes_from_a_csv_file:r=>{const{normalize:n}=r;return n(["从 csv 文件导入隐藏名单"])},mutes_imported:r=>{const{normalize:n}=r;return n(["隐藏名单导入成功!处理它们将需要一段时间。"])},mute_import_error:r=>{const{normalize:n}=r;return n(["导入隐藏名单出错"])},mute_import:r=>{const{normalize:n}=r;return n(["隐藏名单导入"])},mute_export_button:r=>{const{normalize:n}=r;return n(["导出你的隐藏名单到一个 csv 文件"])},mute_export:r=>{const{normalize:n}=r;return n(["隐藏名单导出"])},hide_wallpaper:r=>{const{normalize:n}=r;return n(["隐藏实例壁纸"])},setting_changed:r=>{const{normalize:n}=r;return n(["与默认设置不同"])},more_settings:r=>{const{normalize:n}=r;return n(["更多设置"])},sensitive_by_default:r=>{const{normalize:n}=r;return n(["默认标记发文为敏感内容"])},reply_visibility_self_short:r=>{const{normalize:n}=r;return n(["只显示对我本人的回复"])},reply_visibility_following_short:r=>{const{normalize:n}=r;return n(["显示对我关注的人的回复"])},hide_all_muted_posts:r=>{const{normalize:n}=r;return n(["不显示已隐藏的发文"])},hide_media_previews:r=>{const{normalize:n}=r;return n(["隐藏媒体预览"])},word_filter:r=>{const{normalize:n}=r;return n(["词语过滤"])},save:r=>{const{normalize:n}=r;return n(["保存更改"])},file_export_import:{errors:{file_slightly_new:r=>{const{normalize:n}=r;return n(["文件的小版本不同,有些设置可能无法加载"])},file_too_old:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["不兼容的主版本:",e(t("fileMajor")),",文件版本过旧,不受支持(最小设置版本 ",e(t("feMajor")),")"])},file_too_new:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["不兼容的主版本:",e(t("fileMajor")),",此 PleromaFE(设置版本 ",e(t("feMajor")),")过旧,无法处理"])},invalid_file:r=>{const{normalize:n}=r;return n(["所选文件不是受支持的 Pleroma 设置备份。没有进行任何更改。"])}},restore_settings:r=>{const{normalize:n}=r;return n(["从文件恢复设置"])},backup_settings_theme:r=>{const{normalize:n}=r;return n(["备份设置和主题到文件"])},backup_settings:r=>{const{normalize:n}=r;return n(["备份设置到文件"])},backup_restore:r=>{const{normalize:n}=r;return n(["设置备份"])}},right_sidebar:r=>{const{normalize:n}=r;return n(["反转分栏的顺序"])},hide_shoutbox:r=>{const{normalize:n}=r;return n(["隐藏实例留言板"])},expert_mode:r=>{const{normalize:n}=r;return n(["显示高级"])},download_backup:r=>{const{normalize:n}=r;return n(["下载"])},mention_links:r=>{const{normalize:n}=r;return n(["提及链接"])},account_backup:r=>{const{normalize:n}=r;return n(["账号备份"])},account_backup_table_head:r=>{const{normalize:n}=r;return n(["备份"])},remove_backup:r=>{const{normalize:n}=r;return n(["移除"])},list_backups_error:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["获取备份列表出错:",e(t("error"))])},add_backup:r=>{const{normalize:n}=r;return n(["创建一个新备份"])},added_backup:r=>{const{normalize:n}=r;return n(["创建了一个新备份。"])},account_alias:r=>{const{normalize:n}=r;return n(["账号别名"])},account_alias_table_head:r=>{const{normalize:n}=r;return n(["别名"])},list_aliases_error:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["获取别名时出错:",e(t("error"))])},hide_list_aliases_error_action:r=>{const{normalize:n}=r;return n(["关闭"])},remove_alias:r=>{const{normalize:n}=r;return n(["移除这个别名"])},new_alias_target:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["添加一个新别名(例如 ",e(t("example")),")"])},added_alias:r=>{const{normalize:n}=r;return n(["别名添加好了。"])},move_account:r=>{const{normalize:n}=r;return n(["移动账号"])},move_account_target:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["目标账号(例如 ",e(t("example")),")"])},moved_account:r=>{const{normalize:n}=r;return n(["账号移动好了。"])},move_account_error:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["移动账号时出错:",e(t("error"))])},setting_server_side:r=>{const{normalize:n}=r;return n(["这个设置是捆绑到你的个人资料的,能影响所有会话和客户端"])},post_look_feel:r=>{const{normalize:n}=r;return n(["文章的样子跟感受"])},email_language:r=>{const{normalize:n}=r;return n(["从服务器收邮件的语言"])},account_backup_description:r=>{const{normalize:n}=r;return n(["这个允许你下载一份账号信息和文章的存档,但是现在还不能导入到 Pleroma 账号里。"])},backup_not_ready:r=>{const{normalize:n}=r;return n(["备份还没准备好。"])},add_backup_error:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["添加新备份时出错:",e(t("error"))])},add_alias_error:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["添加别名时出错:",e(t("error"))])},move_account_notes:r=>{const{normalize:n}=r;return n(["如果你想把账号移动到别的地方,你必须去目标账号,然后加一个指向这里的别名。"])},wordfilter:r=>{const{normalize:n}=r;return n(["词语过滤器"])},user_profiles:r=>{const{normalize:n}=r;return n(["用户资料"])},third_column_mode_notifications:r=>{const{normalize:n}=r;return n(["通知栏"])},backup_running:r=>{const{normalize:n,interpolate:e,named:t,plural:o}=r;return o([n(["此备份正在进行,已处理 ",e(t("number"))," 条记录。"]),n(["此备份正在进行,已处理 ",e(t("number"))," 条记录。"])])},lists_navigation:r=>{const{normalize:n}=r;return n(["在导航中显示列表"])},word_filter_and_more:r=>{const{normalize:n}=r;return n(["词过滤器及其它..."])},backup_failed:r=>{const{normalize:n}=r;return n(["此备份已失败。"])},birthday:{label:r=>{const{normalize:n}=r;return n(["生日"])},show_birthday:r=>{const{normalize:n}=r;return n(["展示我的生日"])}},hide_favorites_description:r=>{const{normalize:n}=r;return n(["不显示我的喜欢列表(人们仍然会收到通知)"])},third_column_mode:r=>{const{normalize:n}=r;return n(["当有足够的空间时,显示第三栏包含"])},third_column_mode_postform:r=>{const{normalize:n}=r;return n(["主要的发文形式和导航"])},columns:r=>{const{normalize:n}=r;return n(["分栏"])},user_popover_avatar_overlay:r=>{const{normalize:n}=r;return n(["在用户头像上显示用户弹出窗口"])},navbar_column_stretch:r=>{const{normalize:n}=r;return n(["延伸导航栏至分栏宽度"])},posts:r=>{const{normalize:n}=r;return n(["帖子"])},conversation_display_linear_quick:r=>{const{normalize:n}=r;return n(["线性视图"])},conversation_other_replies_button:r=>{const{normalize:n}=r;return n(["显示 “其它回复” 按钮"])},confirm_dialogs_delete:r=>{const{normalize:n}=r;return n(["删除状态"])},confirm_dialogs_mute:r=>{const{normalize:n}=r;return n(["隐藏用户"])},column_sizes:r=>{const{normalize:n}=r;return n(["分栏大小"])},column_sizes_sidebar:r=>{const{normalize:n}=r;return n(["侧栏"])},column_sizes_content:r=>{const{normalize:n}=r;return n(["內容"])},column_sizes_notifs:r=>{const{normalize:n}=r;return n(["通知"])},conversation_other_replies_button_below:r=>{const{normalize:n}=r;return n(["在状态下方"])},conversation_other_replies_button_inside:r=>{const{normalize:n}=r;return n(["在状态中"])},auto_update:r=>{const{normalize:n}=r;return n(["自动显示新的帖子"])},use_websockets:r=>{const{normalize:n}=r;return n(["使用 websockets(实时更新)"])},max_depth_in_thread:r=>{const{normalize:n}=r;return n(["默认显示同主题帖子中的最大层数"])},hide_wordfiltered_statuses:r=>{const{normalize:n}=r;return n(["隐藏经过词语过滤的状态"])},hide_muted_threads:r=>{const{normalize:n}=r;return n(["不显示已隐藏的同主题帖子"])},notification_visibility_polls:r=>{const{normalize:n}=r;return n(["你所投的投票的结束于"])},tree_advanced:r=>{const{normalize:n}=r;return n(["允许在树状视图中进行更灵活的导航"])},tree_fade_ancestors:r=>{const{normalize:n}=r;return n(["以模糊的文字显示当前状态的上级"])},conversation_display_linear:r=>{const{normalize:n}=r;return n(["线性样式"])},mention_link_fade_domain:r=>{const{normalize:n}=r;return n(["淡化域名(例如:","@","example.org 中的 ","@","foo","@","example.org)"])},mention_link_bolden_you:r=>{const{normalize:n}=r;return n(["当你被提及时突出显示提及你"])},user_popover_avatar_action:r=>{const{normalize:n}=r;return n(["弹出式头像点击动作"])},user_popover_avatar_action_zoom:r=>{const{normalize:n}=r;return n(["缩放头像"])},user_popover_avatar_action_close:r=>{const{normalize:n}=r;return n(["关闭弹出窗口"])},show_yous:r=>{const{normalize:n}=r;return n(["显示 (You)s"])},add_language:r=>{const{normalize:n}=r;return n(["添加备用语言"])},remove_language:r=>{const{normalize:n}=r;return n(["移除"])},primary_language:r=>{const{normalize:n}=r;return n(["主要语言:"])},fallback_language:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["备用语言 ",e(t("index")),":"])},account_privacy:r=>{const{normalize:n}=r;return n(["隐私"])},conversation_display:r=>{const{normalize:n}=r;return n(["对话显示样式"])},conversation_display_tree:r=>{const{normalize:n}=r;return n(["树状样式"])},conversation_display_tree_quick:r=>{const{normalize:n}=r;return n(["树状视图"])},disable_sticky_headers:r=>{const{normalize:n}=r;return n(["不要把分栏的顶栏固定在屏幕的顶部"])},confirm_dialogs:r=>{const{normalize:n}=r;return n(["请求确认于"])},confirm_dialogs_logout:r=>{const{normalize:n}=r;return n(["登出"])},confirm_dialogs_deny_follow:r=>{const{normalize:n}=r;return n(["拒绝关注请求"])},confirm_dialogs_approve_follow:r=>{const{normalize:n}=r;return n(["批准关注请求"])},confirm_dialogs_block:r=>{const{normalize:n}=r;return n(["屏蔽用户"])},confirm_dialogs_unfollow:r=>{const{normalize:n}=r;return n(["取消关注用户"])},confirm_dialogs_repeat:r=>{const{normalize:n}=r;return n(["转发状态"])},confirm_dialogs_remove_follower:r=>{const{normalize:n}=r;return n(["移除关注者"])},mute_bot_posts:r=>{const{normalize:n}=r;return n(["隐藏机器人的帖子"])},hide_bot_indication:r=>{const{normalize:n}=r;return n(["隐藏帖子中的机器人提示"])},always_show_post_button:r=>{const{normalize:n}=r;return n(["始终显示浮动的新帖子按钮"])},show_scrollbars:r=>{const{normalize:n}=r;return n(["显示侧栏的滚动条"])},third_column_mode_none:r=>{const{normalize:n}=r;return n(["完全不显示第三栏"])},use_at_icon:r=>{const{normalize:n}=r;return n(["将 ","@"," 符号显示为图标而不是文本"])},mention_link_display:r=>{const{normalize:n}=r;return n(["显示提及链接"])},mention_link_display_short:r=>{const{normalize:n}=r;return n(["始终以简称的形式出现(例如:","@","foo)"])},mention_link_display_full_for_remote:r=>{const{normalize:n}=r;return n(["仅远程实例用户以全名的形式出现(例如:","@","foo","@","example.org)"])},mention_link_display_full:r=>{const{normalize:n}=r;return n(["始终以全名的形式出现(例如:","@","foo","@","example.org)"])},mention_link_use_tooltip:r=>{const{normalize:n}=r;return n(["点击提及链接时显示用户卡片"])},mention_link_show_avatar:r=>{const{normalize:n}=r;return n(["在链接旁边显示用户头像"])},mention_link_show_avatar_quick:r=>{const{normalize:n}=r;return n(["在提及内容旁边显示用户头像"])},user_popover_avatar_action_open:r=>{const{normalize:n}=r;return n(["打开个人资料"])},autocomplete_select_first:r=>{const{normalize:n}=r;return n(["当有自动完成的结果时,自动选择第一个候选项"])},url:r=>{const{normalize:n}=r;return n(["URL"])},preview:r=>{const{normalize:n}=r;return n(["预览"])},commit_value:r=>{const{normalize:n}=r;return n(["保存"])},commit_value_tooltip:r=>{const{normalize:n}=r;return n(["当前值未保存,请按此按钮以提交你的修改"])},reset_value:r=>{const{normalize:n}=r;return n(["重置"])},reset_value_tooltip:r=>{const{normalize:n}=r;return n(["重置草稿"])},hard_reset_value:r=>{const{normalize:n}=r;return n(["硬重置"])},hard_reset_value_tooltip:r=>{const{normalize:n}=r;return n(["从存储中移除设置,强制使用默认值"])},emoji_reactions_scale:r=>{const{normalize:n}=r;return n(["表情回应比例系数"])}},time:{day:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 天"])},days:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 天"])},day_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"d"])},days_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"d"])},hour:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 小时"])},hours:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 小时"])},hour_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"h"])},hours_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"h"])},in_future:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["还有 ",e(t(0))])},in_past:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 之前"])},minute:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 分钟"])},minutes:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 分钟"])},minute_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"min"])},minutes_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"min"])},month:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 月"])},months:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 月"])},month_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"mo"])},months_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"mo"])},now:r=>{const{normalize:n}=r;return n(["刚刚"])},now_short:r=>{const{normalize:n}=r;return n(["刚刚"])},second:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 秒"])},seconds:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 秒"])},second_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"s"])},seconds_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"s"])},week:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 周"])},weeks:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 周"])},week_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"w"])},weeks_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"w"])},year:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 年"])},years:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 年"])},year_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"y"])},years_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"y"])},unit:{days_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 天"])},hours:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 小时"])},hours_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 时"])},minutes:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 分"])},minutes_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 分"])},months:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 个月"])},months_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 月"])},seconds:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 秒"])},seconds_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 秒"])},weeks_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 周"])},years:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 年"])},years_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 年"])},weeks:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 周"])},days:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 天"])}}},timeline:{collapse:r=>{const{normalize:n}=r;return n(["折叠"])},conversation:r=>{const{normalize:n}=r;return n(["对话"])},error_fetching:r=>{const{normalize:n}=r;return n(["获取更新时发生错误"])},load_older:r=>{const{normalize:n}=r;return n(["加载更早的状态"])},no_retweet_hint:r=>{const{normalize:n}=r;return n(["这条内容仅关注者可见,或者是私信,因此不能转发"])},repeated:r=>{const{normalize:n}=r;return n(["转发了"])},show_new:r=>{const{normalize:n}=r;return n(["显示新内容"])},up_to_date:r=>{const{normalize:n}=r;return n(["已是最新"])},no_more_statuses:r=>{const{normalize:n}=r;return n(["没有更多的状态"])},no_statuses:r=>{const{normalize:n}=r;return n(["没有状态更新"])},reload:r=>{const{normalize:n}=r;return n(["重新载入"])},error:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["取得时间轴时发生错误:",e(t(0))])},socket_broke:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["丢失实时连接:CloseEvent code ",e(t(0))])},socket_reconnected:r=>{const{normalize:n}=r;return n(["已建立实时连接"])},quick_view_settings:r=>{const{normalize:n}=r;return n(["快速视图设置"])},quick_filter_settings:r=>{const{normalize:n}=r;return n(["快速过滤设置"])}},status:{favorites:r=>{const{normalize:n}=r;return n(["喜欢"])},repeats:r=>{const{normalize:n}=r;return n(["转发"])},delete:r=>{const{normalize:n}=r;return n(["删除状态"])},pin:r=>{const{normalize:n}=r;return n(["在个人资料置顶"])},unpin:r=>{const{normalize:n}=r;return n(["取消在个人资料置顶"])},pinned:r=>{const{normalize:n}=r;return n(["置顶"])},delete_confirm:r=>{const{normalize:n}=r;return n(["您确定要删除这条状态吗?"])},reply_to:r=>{const{normalize:n}=r;return n(["回复"])},replies_list:r=>{const{normalize:n}=r;return n(["回复:"])},mute_conversation:r=>{const{normalize:n}=r;return n(["隐藏对话"])},unmute_conversation:r=>{const{normalize:n}=r;return n(["对话取消隐藏"])},hide_content:r=>{const{normalize:n}=r;return n(["隐藏内容"])},show_content:r=>{const{normalize:n}=r;return n(["显示内容"])},hide_full_subject:r=>{const{normalize:n}=r;return n(["隐藏此部分标题"])},show_full_subject:r=>{const{normalize:n}=r;return n(["显示全部标题"])},thread_muted:r=>{const{normalize:n}=r;return n(["同主题帖子已被隐藏"])},copy_link:r=>{const{normalize:n}=r;return n(["复制状态链接"])},status_unavailable:r=>{const{normalize:n}=r;return n(["状态不可取得"])},unbookmark:r=>{const{normalize:n}=r;return n(["取消书签"])},bookmark:r=>{const{normalize:n}=r;return n(["书签"])},thread_muted_and_words:r=>{const{normalize:n}=r;return n([",含有过滤词:"])},status_deleted:r=>{const{normalize:n}=r;return n(["该状态已被删除"])},nsfw:r=>{const{normalize:n}=r;return n(["NSFW"])},external_source:r=>{const{normalize:n}=r;return n(["外部来源"])},expand:r=>{const{normalize:n}=r;return n(["展开"])},you:r=>{const{normalize:n}=r;return n(["(你)"])},plus_more:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["还有 ",e(t("number"))," 个"])},many_attachments:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["文章有 ",e(t("number"))," 个附件"])},collapse_attachments:r=>{const{normalize:n}=r;return n(["折起附件"])},show_all_attachments:r=>{const{normalize:n}=r;return n(["显示所有附件"])},show_attachment_description:r=>{const{normalize:n}=r;return n(["预览描述(打开附件能看完整描述)"])},hide_attachment:r=>{const{normalize:n}=r;return n(["隐藏附件"])},remove_attachment:r=>{const{normalize:n}=r;return n(["移除附件"])},attachment_stop_flash:r=>{const{normalize:n}=r;return n(["停止 Flash 播放器"])},move_up:r=>{const{normalize:n}=r;return n(["把附件左移"])},open_gallery:r=>{const{normalize:n}=r;return n(["打开图库"])},thread_hide:r=>{const{normalize:n}=r;return n(["隐藏这个同主题帖子"])},thread_show:r=>{const{normalize:n}=r;return n(["显示这个同主题帖子"])},thread_show_full_with_icon:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("icon"))," ",e(t("text"))])},thread_follow:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["查看这个同主题帖子的剩余部分(一共有 ",e(t("numStatus"))," 个状态)"])},thread_follow_with_icon:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("icon"))," ",e(t("text"))])},ancestor_follow:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["查看这个状态下的别的 ",e(t("numReplies"))," 个回复"])},ancestor_follow_with_icon:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("icon"))," ",e(t("text"))])},show_all_conversation_with_icon:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("icon"))," ",e(t("text"))])},show_all_conversation:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["显示完整对话(还有 ",e(t("numStatus"))," 个状态)"])},mentions:r=>{const{normalize:n}=r;return n(["提及"])},replies_list_with_others:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["回复(另外 +",e(t("numReplies"))," 个):"])},move_down:r=>{const{normalize:n}=r;return n(["把附件右移"])},thread_show_full:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["显示这个同主题帖子下的所有东西(一共有 ",e(t("numStatus"))," 个状态,最大深度 ",e(t("depth")),")"])},show_only_conversation_under_this:r=>{const{normalize:n}=r;return n(["只显示这个状态的回复"])},repeat_confirm:r=>{const{normalize:n}=r;return n(["您确定要转发这条状态吗?"])},repeat_confirm_title:r=>{const{normalize:n}=r;return n(["确认转发"])},repeat_confirm_accept_button:r=>{const{normalize:n}=r;return n(["转发"])},repeat_confirm_cancel_button:r=>{const{normalize:n}=r;return n(["不要转发"])},edit:r=>{const{normalize:n}=r;return n(["编辑状态"])},edited_at:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["(最后编辑于 ",e(t("time")),")"])},delete_confirm_title:r=>{const{normalize:n}=r;return n(["确认删除"])},delete_confirm_accept_button:r=>{const{normalize:n}=r;return n(["删除"])},delete_confirm_cancel_button:r=>{const{normalize:n}=r;return n(["保留"])},show_attachment_in_modal:r=>{const{normalize:n}=r;return n(["在媒体模式中显示"])},status_history:r=>{const{normalize:n}=r;return n(["状态历史"])},delete_error:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["删除状态时出错:",e(t(0))])},reaction_count_label:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("num"))," 人作出了表情回应"])}},user_card:{approve:r=>{const{normalize:n}=r;return n(["核准"])},block:r=>{const{normalize:n}=r;return n(["屏蔽"])},blocked:r=>{const{normalize:n}=r;return n(["已屏蔽!"])},deny:r=>{const{normalize:n}=r;return n(["拒绝"])},favorites:r=>{const{normalize:n}=r;return n(["喜欢"])},follow:r=>{const{normalize:n}=r;return n(["关注"])},follow_sent:r=>{const{normalize:n}=r;return n(["请求已发送!"])},follow_progress:r=>{const{normalize:n}=r;return n(["请求中…"])},follow_unfollow:r=>{const{normalize:n}=r;return n(["取消关注"])},followees:r=>{const{normalize:n}=r;return n(["正在关注"])},followers:r=>{const{normalize:n}=r;return n(["关注者"])},following:r=>{const{normalize:n}=r;return n(["正在关注!"])},follows_you:r=>{const{normalize:n}=r;return n(["关注了你!"])},its_you:r=>{const{normalize:n}=r;return n(["就是你!"])},media:r=>{const{normalize:n}=r;return n(["媒体"])},mute:r=>{const{normalize:n}=r;return n(["隐藏"])},muted:r=>{const{normalize:n}=r;return n(["已隐藏"])},per_day:r=>{const{normalize:n}=r;return n(["每天"])},remote_follow:r=>{const{normalize:n}=r;return n(["跨站关注"])},report:r=>{const{normalize:n}=r;return n(["报告"])},statuses:r=>{const{normalize:n}=r;return n(["状态"])},subscribe:r=>{const{normalize:n}=r;return n(["订阅"])},unsubscribe:r=>{const{normalize:n}=r;return n(["退订"])},unblock:r=>{const{normalize:n}=r;return n(["取消屏蔽"])},unblock_progress:r=>{const{normalize:n}=r;return n(["正在取消屏蔽…"])},block_progress:r=>{const{normalize:n}=r;return n(["正在屏蔽…"])},unmute:r=>{const{normalize:n}=r;return n(["取消隐藏"])},unmute_progress:r=>{const{normalize:n}=r;return n(["取消隐藏中…"])},mute_progress:r=>{const{normalize:n}=r;return n(["隐藏中…"])},admin_menu:{moderation:r=>{const{normalize:n}=r;return n(["仲裁"])},grant_admin:r=>{const{normalize:n}=r;return n(["赋予管理权限"])},revoke_admin:r=>{const{normalize:n}=r;return n(["撤销管理权限"])},grant_moderator:r=>{const{normalize:n}=r;return n(["赋予监察员权限"])},revoke_moderator:r=>{const{normalize:n}=r;return n(["撤销监察员权限"])},activate_account:r=>{const{normalize:n}=r;return n(["激活账号"])},deactivate_account:r=>{const{normalize:n}=r;return n(["关闭账号"])},delete_account:r=>{const{normalize:n}=r;return n(["删除账号"])},force_nsfw:r=>{const{normalize:n}=r;return n(["标记所有的帖子都是 - 工作场合不适"])},strip_media:r=>{const{normalize:n}=r;return n(["从帖子里删除媒体文件"])},force_unlisted:r=>{const{normalize:n}=r;return n(["强制帖子为不公开"])},sandbox:r=>{const{normalize:n}=r;return n(["强制帖子为只有关注者可看"])},disable_remote_subscription:r=>{const{normalize:n}=r;return n(["禁止从远程实例关注用户"])},disable_any_subscription:r=>{const{normalize:n}=r;return n(["完全禁止关注用户"])},quarantine:r=>{const{normalize:n}=r;return n(["从联合实例中禁止用户帖子"])},delete_user:r=>{const{normalize:n}=r;return n(["删除用户"])},delete_user_data_and_deactivate_confirmation:r=>{const{normalize:n}=r;return n(["这将永久删除该账户的数据并停用该账户。你完全确定吗?"])}},hidden:r=>{const{normalize:n}=r;return n(["已隐藏"])},show_repeats:r=>{const{normalize:n}=r;return n(["显示转发"])},hide_repeats:r=>{const{normalize:n}=r;return n(["隐藏转发"])},message:r=>{const{normalize:n}=r;return n(["消息"])},mention:r=>{const{normalize:n}=r;return n(["提及"])},bot:r=>{const{normalize:n}=r;return n(["机器人"])},highlight:{side:r=>{const{normalize:n}=r;return n(["侧边条纹"])},striped:r=>{const{normalize:n}=r;return n(["条纹背景"])},solid:r=>{const{normalize:n}=r;return n(["单一颜色背景"])},disabled:r=>{const{normalize:n}=r;return n(["不突出显示"])}},edit_profile:r=>{const{normalize:n}=r;return n(["编辑个人资料"])},approve_confirm_title:r=>{const{normalize:n}=r;return n(["确认批准"])},approve_confirm_accept_button:r=>{const{normalize:n}=r;return n(["批准"])},block_confirm_accept_button:r=>{const{normalize:n}=r;return n(["屏蔽"])},block_confirm_cancel_button:r=>{const{normalize:n}=r;return n(["不要屏蔽"])},deactivated:r=>{const{normalize:n}=r;return n(["已停用"])},deny_confirm_title:r=>{const{normalize:n}=r;return n(["确认拒绝"])},deny_confirm_accept_button:r=>{const{normalize:n}=r;return n(["拒绝"])},deny_confirm_cancel_button:r=>{const{normalize:n}=r;return n(["不要拒绝"])},deny_confirm:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["您是否要拒绝 ",e(t("user"))," 的关注请求?"])},follow_cancel:r=>{const{normalize:n}=r;return n(["取消请求"])},unfollow_confirm_title:r=>{const{normalize:n}=r;return n(["确认取消关注"])},unfollow_confirm:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["您确定要取消关注 ",e(t("user"))," 吗?"])},unfollow_confirm_accept_button:r=>{const{normalize:n}=r;return n(["取消关注"])},unfollow_confirm_cancel_button:r=>{const{normalize:n}=r;return n(["不要取消关注"])},mute_confirm_title:r=>{const{normalize:n}=r;return n(["确认隐藏"])},mute_confirm_accept_button:r=>{const{normalize:n}=r;return n(["隐藏"])},mute_confirm_cancel_button:r=>{const{normalize:n}=r;return n(["不要隐藏"])},mute_duration_prompt:r=>{const{normalize:n}=r;return n(["让这个用户隐藏(0表示无限期):"])},remove_follower:r=>{const{normalize:n}=r;return n(["移除关注者"])},remove_follower_confirm_title:r=>{const{normalize:n}=r;return n(["确认移除关注者"])},remove_follower_confirm_cancel_button:r=>{const{normalize:n}=r;return n(["保留"])},remove_follower_confirm:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["您确定要将 ",e(t("user"))," 从您的关注者里移除吗?"])},birthday:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["生于 ",e(t("birthday"))])},note:r=>{const{normalize:n}=r;return n(["备注"])},approve_confirm_cancel_button:r=>{const{normalize:n}=r;return n(["不要批准"])},approve_confirm:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["您是否要批准 ",e(t("user"))," 的关注请求?"])},block_confirm_title:r=>{const{normalize:n}=r;return n(["确认屏蔽"])},block_confirm:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["您确定要屏蔽 ",e(t("user"))," 吗?"])},mute_confirm:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["您确定要隐藏 ",e(t("user"))," 吗?"])},remove_follower_confirm_accept_button:r=>{const{normalize:n}=r;return n(["移除"])},note_blank:r=>{const{normalize:n}=r;return n(["(空)"])},edit_note:r=>{const{normalize:n}=r;return n(["编辑备注"])},edit_note_apply:r=>{const{normalize:n}=r;return n(["应用"])},edit_note_cancel:r=>{const{normalize:n}=r;return n(["取消"])}},user_profile:{timeline_title:r=>{const{normalize:n}=r;return n(["用户时间线"])},profile_does_not_exist:r=>{const{normalize:n}=r;return n(["抱歉,此个人资料不存在。"])},profile_loading_error:r=>{const{normalize:n}=r;return n(["抱歉,载入个人资料时出错。"])}},user_reporting:{title:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["报告 ",e(t(0))])},add_comment_description:r=>{const{normalize:n}=r;return n(["此报告会发送给您的实例监察员。您可以在下面提供更多详细信息解释报告的缘由:"])},additional_comments:r=>{const{normalize:n}=r;return n(["其它信息"])},forward_description:r=>{const{normalize:n}=r;return n(["这个账号来自另一个服务器。是否同时发送一份报告副本到那里?"])},forward_to:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["转发 ",e(t(0))])},submit:r=>{const{normalize:n}=r;return n(["提交"])},generic_error:r=>{const{normalize:n}=r;return n(["当处理您的请求时,发生了一个错误。"])}},who_to_follow:{more:r=>{const{normalize:n}=r;return n(["更多"])},who_to_follow:r=>{const{normalize:n}=r;return n(["推荐关注"])}},tool_tip:{media_upload:r=>{const{normalize:n}=r;return n(["上传媒体"])},repeat:r=>{const{normalize:n}=r;return n(["转发"])},reply:r=>{const{normalize:n}=r;return n(["回复"])},favorite:r=>{const{normalize:n}=r;return n(["喜欢"])},user_settings:r=>{const{normalize:n}=r;return n(["用户设置"])},reject_follow_request:r=>{const{normalize:n}=r;return n(["拒绝关注请求"])},add_reaction:r=>{const{normalize:n}=r;return n(["添加互动"])},bookmark:r=>{const{normalize:n}=r;return n(["书签"])},accept_follow_request:r=>{const{normalize:n}=r;return n(["接受关注请求"])},toggle_expand:r=>{const{normalize:n}=r;return n(["展开或折叠通知以显示帖子全文"])},toggle_mute:r=>{const{normalize:n}=r;return n(["展开或折叠通知以显示已隐藏的内容"])},autocomplete_available:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["共有 ",e(t("number"))," 个结果可用。使用向上和向下键浏览它们。"])}},upload:{error:{base:r=>{const{normalize:n}=r;return n(["上传不成功。"])},file_too_big:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["文件太大了 [",e(t("filesize")),e(t("filesizeunit"))," / ",e(t("allowedsize")),e(t("allowedsizeunit")),"]"])},default:r=>{const{normalize:n}=r;return n(["迟些再试"])},message:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["上传错误:",e(t(0))])}},file_size_units:{B:r=>{const{normalize:n}=r;return n(["B"])},KiB:r=>{const{normalize:n}=r;return n(["KiB"])},MiB:r=>{const{normalize:n}=r;return n(["MiB"])},GiB:r=>{const{normalize:n}=r;return n(["GiB"])},TiB:r=>{const{normalize:n}=r;return n(["TiB"])}}},search:{people:r=>{const{normalize:n}=r;return n(["人"])},hashtags:r=>{const{normalize:n}=r;return n(["话题标签"])},person_talking:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("count"))," 人正在讨论"])},people_talking:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("count"))," 人正在讨论"])},no_results:r=>{const{normalize:n}=r;return n(["没有搜索结果"])},no_more_results:r=>{const{normalize:n}=r;return n(["没有更多结果"])},load_more:r=>{const{normalize:n}=r;return n(["加载更多结果"])}},password_reset:{forgot_password:r=>{const{normalize:n}=r;return n(["忘记密码了?"])},password_reset:r=>{const{normalize:n}=r;return n(["重置密码"])},instruction:r=>{const{normalize:n}=r;return n(["输入您的电邮地址或者用户名,我们将发送一个链接到您的邮箱,用于重置密码。"])},placeholder:r=>{const{normalize:n}=r;return n(["您的电邮地址或者用户名"])},check_email:r=>{const{normalize:n}=r;return n(["检查您的邮箱,会有一个链接用于重置密码。"])},return_home:r=>{const{normalize:n}=r;return n(["回到首页"])},too_many_requests:r=>{const{normalize:n}=r;return n(["您达到了尝试次数的上限,请稍后再试。"])},password_reset_disabled:r=>{const{normalize:n}=r;return n(["密码重置已被禁用。请联系您的实例管理员。"])},password_reset_required_but_mailer_is_disabled:r=>{const{normalize:n}=r;return n(["您必须重置密码,但是密码重置被禁用了。请联系您所在实例的管理员。"])},password_reset_required:r=>{const{normalize:n}=r;return n(["您必须重置密码才能登陆。"])}},remote_user_resolver:{error:r=>{const{normalize:n}=r;return n(["未找到。"])},searching_for:r=>{const{normalize:n}=r;return n(["搜索"])},remote_user_resolver:r=>{const{normalize:n}=r;return n(["远程用户解析器"])}},emoji:{keep_open:r=>{const{normalize:n}=r;return n(["选择器保持打开"])},stickers:r=>{const{normalize:n}=r;return n(["贴纸"])},unicode:r=>{const{normalize:n}=r;return n(["Unicode 表情符号"])},custom:r=>{const{normalize:n}=r;return n(["自定义表情符号"])},add_emoji:r=>{const{normalize:n}=r;return n(["插入表情符号"])},search_emoji:r=>{const{normalize:n}=r;return n(["搜索表情符号"])},emoji:r=>{const{normalize:n}=r;return n(["表情符号"])},load_all:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["加载所有表情符号(共 ",e(t("emojiAmount"))," 个)"])},load_all_hint:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["最先加载的 ",e(t("saneAmount"))," 表情符号,加载全部表情符号可能会带来性能问题。"])},unicode_groups:{flags:r=>{const{normalize:n}=r;return n(["旗帜"])},"food-and-drink":r=>{const{normalize:n}=r;return n(["饮食"])},objects:r=>{const{normalize:n}=r;return n(["物件"])},"people-and-body":r=>{const{normalize:n}=r;return n(["人和身体"])},symbols:r=>{const{normalize:n}=r;return n(["符号"])},"travel-and-places":r=>{const{normalize:n}=r;return n(["旅行和地点"])},activities:r=>{const{normalize:n}=r;return n(["活动"])},"animals-and-nature":r=>{const{normalize:n}=r;return n(["动物和自然"])},"smileys-and-emotion":r=>{const{normalize:n}=r;return n(["表情与情感"])}},regional_indicator:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["地区指示符 ",e(t("letter"))])},unpacked:r=>{const{normalize:n}=r;return n(["未分组的表情符号"])}},about:{mrf:{simple:{quarantine_desc:r=>{const{normalize:n}=r;return n(["本实例向以下实例仅发送公开的帖子:"])},quarantine:r=>{const{normalize:n}=r;return n(["隔离"])},reject_desc:r=>{const{normalize:n}=r;return n(["本实例不会接收来自下列实例的消息:"])},reject:r=>{const{normalize:n}=r;return n(["拒绝"])},accept_desc:r=>{const{normalize:n}=r;return n(["本实例只接收来自下列实例的消息:"])},simple_policies:r=>{const{normalize:n}=r;return n(["对于特定实例的策略"])},accept:r=>{const{normalize:n}=r;return n(["接受"])},media_removal:r=>{const{normalize:n}=r;return n(["移除媒体"])},media_nsfw_desc:r=>{const{normalize:n}=r;return n(["本实例将来自以下实例的媒体内容强制设置为敏感内容:"])},media_nsfw:r=>{const{normalize:n}=r;return n(["强制设置媒体为敏感内容"])},media_removal_desc:r=>{const{normalize:n}=r;return n(["本实例移除来自以下实例的媒体内容:"])},ftl_removal_desc:r=>{const{normalize:n}=r;return n(["该实例在从“已知网络”时间线上移除了下列实例:"])},ftl_removal:r=>{const{normalize:n}=r;return n(["从“已知网络”时间线上移除"])},reason:r=>{const{normalize:n}=r;return n(["理由"])},not_applicable:r=>{const{normalize:n}=r;return n(["无"])},instance:r=>{const{normalize:n}=r;return n(["实例"])}},mrf_policies_desc:r=>{const{normalize:n}=r;return n(["MRF 策略会影响本实例的互通行为。以下策略已启用:"])},mrf_policies:r=>{const{normalize:n}=r;return n(["已启用的 MRF 策略"])},keyword:{ftl_removal:r=>{const{normalize:n}=r;return n(["从“全部已知网络”时间线上移除"])},keyword_policies:r=>{const{normalize:n}=r;return n(["关键词策略"])},is_replaced_by:r=>{const{normalize:n}=r;return n(["→"])},replace:r=>{const{normalize:n}=r;return n(["替换"])},reject:r=>{const{normalize:n}=r;return n(["拒绝"])}},federation:r=>{const{normalize:n}=r;return n(["联邦互通"])}},staff:r=>{const{normalize:n}=r;return n(["管理人员"])}},domain_mute_card:{unmute_progress:r=>{const{normalize:n}=r;return n(["正在取消隐藏…"])},unmute:r=>{const{normalize:n}=r;return n(["取消隐藏"])},mute_progress:r=>{const{normalize:n}=r;return n(["隐藏中…"])},mute:r=>{const{normalize:n}=r;return n(["隐藏"])}},errors:{storage_unavailable:r=>{const{normalize:n}=r;return n(["Pleroma 无法访问浏览器储存。您的登陆以及本地设置将不会被保存,您也可能遇到未知问题。请尝试启用 cookies。"])}},shoutbox:{title:r=>{const{normalize:n}=r;return n(["留言板"])}},display_date:{today:r=>{const{normalize:n}=r;return n(["今天"])}},file_type:{file:r=>{const{normalize:n}=r;return n(["文件"])},image:r=>{const{normalize:n}=r;return n(["图片"])},video:r=>{const{normalize:n}=r;return n(["视频"])},audio:r=>{const{normalize:n}=r;return n(["音频"])}},chats:{empty_chat_list_placeholder:r=>{const{normalize:n}=r;return n(["您还没有任何聊天记录。开始聊天吧!"])},error_sending_message:r=>{const{normalize:n}=r;return n(["发送消息时出了点问题。"])},error_loading_chat:r=>{const{normalize:n}=r;return n(["加载聊天时出了点问题。"])},delete_confirm:r=>{const{normalize:n}=r;return n(["您确定要删除此消息吗?"])},more:r=>{const{normalize:n}=r;return n(["更多"])},empty_message_error:r=>{const{normalize:n}=r;return n(["无法发布空消息"])},new:r=>{const{normalize:n}=r;return n(["新聊天"])},chats:r=>{const{normalize:n}=r;return n(["聊天"])},delete:r=>{const{normalize:n}=r;return n(["删除"])},message_user:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["发消息给 ",e(t("nickname"))])},you:r=>{const{normalize:n}=r;return n(["你:"])}},announcements:{page_header:r=>{const{normalize:n}=r;return n(["公告"])},title:r=>{const{normalize:n}=r;return n(["公告"])},mark_as_read_action:r=>{const{normalize:n}=r;return n(["标为已读"])},post_form_header:r=>{const{normalize:n}=r;return n(["发布公告"])},post_placeholder:r=>{const{normalize:n}=r;return n(["在这里输入公告内容..."])},post_action:r=>{const{normalize:n}=r;return n(["发布"])},post_error:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["错误:",e(t("error"))])},close_error:r=>{const{normalize:n}=r;return n(["关闭"])},delete_action:r=>{const{normalize:n}=r;return n(["删除"])},start_time_prompt:r=>{const{normalize:n}=r;return n(["起始时间: "])},end_time_prompt:r=>{const{normalize:n}=r;return n(["终止时间: "])},all_day_prompt:r=>{const{normalize:n}=r;return n(["这是全天的事件"])},published_time_display:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["发表于 ",e(t("time"))])},start_time_display:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["开始于 ",e(t("time"))])},end_time_display:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["结束于 ",e(t("time"))])},edit_action:r=>{const{normalize:n}=r;return n(["编辑"])},submit_edit_action:r=>{const{normalize:n}=r;return n(["提交"])},cancel_edit_action:r=>{const{normalize:n}=r;return n(["取消"])},inactive_message:r=>{const{normalize:n}=r;return n(["这个公告不活跃"])}},report:{reported_user:r=>{const{normalize:n}=r;return n(["被举报者:"])},state_closed:r=>{const{normalize:n}=r;return n(["已关闭"])},state_resolved:r=>{const{normalize:n}=r;return n(["已解决"])},reporter:r=>{const{normalize:n}=r;return n(["举报者:"])},state_open:r=>{const{normalize:n}=r;return n(["开启"])},reported_statuses:r=>{const{normalize:n}=r;return n(["已举报的状态:"])},notes:r=>{const{normalize:n}=r;return n(["备注:"])},state:r=>{const{normalize:n}=r;return n(["状态:"])}},unicode_domain_indicator:{tooltip:r=>{const{normalize:n}=r;return n(["此域名包含非 ascii 字符。"])}},update:{update_bugs_gitlab:r=>{const{normalize:n}=r;return n(["Pleroma GitLab"])},update_changelog:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["关于变化的更多细节,请参见 ",e(t("theFullChangelog"))," 。"])},update_changelog_here:r=>{const{normalize:n}=r;return n(["完整的更新日志"])},big_update_title:r=>{const{normalize:n}=r;return n(["请忍耐一下"])},big_update_content:r=>{const{normalize:n}=r;return n(["我们已经有一段时间没有发布发行版,所以事情的外观和感觉可能与你习惯的不一样。"])},update_bugs:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["请在 ",e(t("pleromaGitlab"))," 上报告任何问题和bug,因为我们已经改变了很多,虽然我们进行了彻底的测试,并且自己使用了开发版本,但我们可能错过了一些东西。我们欢迎你对你可能遇到的问题或如何改进Pleroma和Pleroma-FE提出反馈和建议。"])},art_by:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["Art by ",e(t("linkToArtist"))])}},lists:{search:r=>{const{normalize:n}=r;return n(["搜索用户"])},create:r=>{const{normalize:n}=r;return n(["创建"])},save:r=>{const{normalize:n}=r;return n(["保存更改"])},delete:r=>{const{normalize:n}=r;return n(["删除列表"])},following_only:r=>{const{normalize:n}=r;return n(["限制于正在关注"])},manage_lists:r=>{const{normalize:n}=r;return n(["管理列表"])},manage_members:r=>{const{normalize:n}=r;return n(["管理列表成员"])},add_members:r=>{const{normalize:n}=r;return n(["搜索更多用户"])},remove_from_list:r=>{const{normalize:n}=r;return n(["从列表中移除"])},add_to_list:r=>{const{normalize:n}=r;return n(["添加到列表"])},is_in_list:r=>{const{normalize:n}=r;return n(["已在列表中"])},editing_list:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["正在编辑列表 ",e(t("listTitle"))])},creating_list:r=>{const{normalize:n}=r;return n(["正在创建新的列表"])},update_title:r=>{const{normalize:n}=r;return n(["保存标题"])},really_delete:r=>{const{normalize:n}=r;return n(["真的要删除列表吗?"])},error:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["操作列表时出错:",e(t(0))])},lists:r=>{const{normalize:n}=r;return n(["列表"])},new:r=>{const{normalize:n}=r;return n(["新的列表"])},title:r=>{const{normalize:n}=r;return n(["列表标题"])}},admin_dash:{window_title:r=>{const{normalize:n}=r;return n(["管理员"])},old_ui_link:r=>{const{normalize:n}=r;return n(["旧的管理界面在此处"])},reset_all:r=>{const{normalize:n}=r;return n(["重置全部"])},commit_all:r=>{const{normalize:n}=r;return n(["保存全部"])},tabs:{nodb:r=>{const{normalize:n}=r;return n(["无数据库配置"])},instance:r=>{const{normalize:n}=r;return n(["实例"])},limits:r=>{const{normalize:n}=r;return n(["限制"])},frontends:r=>{const{normalize:n}=r;return n(["前端"])}},nodb:{heading:r=>{const{normalize:n}=r;return n(["数据库配置已禁用"])},documentation:r=>{const{normalize:n}=r;return n(["文档"])},text2:r=>{const{normalize:n}=r;return n(["大多数配置选项将不可用。"])},text:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["你需要修改后端配置文件,以便将 ",e(t("property"))," 设置为 ",e(t("value")),",更多内容请参见 ",e(t("documentation")),"。"])}},captcha:{native:r=>{const{normalize:n}=r;return n(["本地"])},kocaptcha:r=>{const{normalize:n}=r;return n(["KoCaptcha"])}},instance:{instance:r=>{const{normalize:n}=r;return n(["实例信息"])},registrations:r=>{const{normalize:n}=r;return n(["用户注册"])},captcha_header:r=>{const{normalize:n}=r;return n(["验证码"])},kocaptcha:r=>{const{normalize:n}=r;return n(["KoCaptcha 设置"])},access:r=>{const{normalize:n}=r;return n(["实例访问"])},restrict:{header:r=>{const{normalize:n}=r;return n(["限制匿名访客的访问"])},timelines:r=>{const{normalize:n}=r;return n(["时间线访问"])},profiles:r=>{const{normalize:n}=r;return n(["用户个人资料访问"])},activities:r=>{const{normalize:n}=r;return n(["状态/活动访问"])},description:r=>{const{normalize:n}=r;return n(["允许/不允许访问特定 API 的详细设置。默认情况下(不确定状态),如果实例不是公开的,它将拒绝访问;勾选复选框意味着即使实例是公开的,也拒绝访问;不勾选意味着即使实例是私有的,也允许访问。请注意,如果某些设置被设定,可能会发生意想不到的行为,例如,如果个人资料访问被禁用,显示的帖文将不包含个人资料信息。"])}}},limits:{arbitrary_limits:r=>{const{normalize:n}=r;return n(["任意限制"])},posts:r=>{const{normalize:n}=r;return n(["帖文限制"])},uploads:r=>{const{normalize:n}=r;return n(["附件限制"])},users:r=>{const{normalize:n}=r;return n(["用户个人资料限制"])},profile_fields:r=>{const{normalize:n}=r;return n(["个人资料字段限制"])},user_uploads:r=>{const{normalize:n}=r;return n(["个人资料媒体限制"])}},frontend:{repository:r=>{const{normalize:n}=r;return n(["存储库链接"])},versions:r=>{const{normalize:n}=r;return n(["可用版本"])},build_url:r=>{const{normalize:n}=r;return n(["构建产物 URL"])},reinstall:r=>{const{normalize:n}=r;return n(["重新安装"])},is_default:r=>{const{normalize:n}=r;return n(["(默认)"])},is_default_custom:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["(默认,版本:",e(t("version")),")"])},install:r=>{const{normalize:n}=r;return n(["安装"])},install_version:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["安装版本 ",e(t("version"))])},more_install_options:r=>{const{normalize:n}=r;return n(["更多安装选项"])},more_default_options:r=>{const{normalize:n}=r;return n(["更多默认设置选项"])},set_default:r=>{const{normalize:n}=r;return n(["设为默认"])},set_default_version:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["将版本 ",e(t("version"))," 设为默认"])},wip_notice:r=>{const{normalize:n}=r;return n(["请注意,此部分是一个WIP,缺乏某些功能,因为前端管理的后台实现并不完整。"])},default_frontend:r=>{const{normalize:n}=r;return n(["默认前端"])},default_frontend_tip:r=>{const{normalize:n}=r;return n(["默认的前端将显示给所有用户。目前还没有办法让用户选择个人的前端。如果你不使用 PleromaFE,你很可能不得不使用旧的和有问题的 AdminFE 来进行实例配置,直到我们替换它。"])},default_frontend_tip2:r=>{const{normalize:n}=r;return n(["WIP: 由于 Pleroma 后端没有正确列出所有已安装的前端,你必须手动输入名称和引用。下面的列表提供了填写这些值的快捷方式。"])},available_frontends:r=>{const{normalize:n}=r;return n(["可供安装"])}},temp_overrides:{":pleroma":{":instance":{":public":{label:r=>{const{normalize:n}=r;return n(["实例是公开的"])},description:r=>{const{normalize:n}=r;return n(["禁用此功能将使所有的 API 只能被已登录用户访问,这将使公共和联邦时间线无法被匿名访客访问。"])}},":limit_to_local_content":{label:r=>{const{normalize:n}=r;return n(["将搜索限于本地内容"])},description:r=>{const{normalize:n}=r;return n(["禁用未认证用户(默认)、所有用户或无人的全局网络搜索"])}},":description_limit":{label:r=>{const{normalize:n}=r;return n(["限制"])},description:r=>{const{normalize:n}=r;return n(["附件描述的字数限制"])}},":background_image":{label:r=>{const{normalize:n}=r;return n(["背景图片"])},description:r=>{const{normalize:n}=r;return n(["背景图片(主要使用于 PleromaFE)"])}}}}},wip_notice:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["此管理仪表板是实验性和 WIP 的,",e(t("adminFeLink")),"。"])}}}}}]);
-//# sourceMappingURL=zh-json.5831b903c3e6d281f122.js.map \ No newline at end of file
+"use strict";(self.webpackChunkpleroma_fe=self.webpackChunkpleroma_fe||[]).push([[5929],{4425:(r,n,e)=>{e.r(n),e.d(n,{default:()=>t});const t={chat:{title:r=>{const{normalize:n}=r;return n(["聊天"])}},exporter:{export:r=>{const{normalize:n}=r;return n(["导出"])},processing:r=>{const{normalize:n}=r;return n(["正在处理,稍后会提示您下载文件"])}},features_panel:{chat:r=>{const{normalize:n}=r;return n(["聊天"])},gopher:r=>{const{normalize:n}=r;return n(["Gopher"])},media_proxy:r=>{const{normalize:n}=r;return n(["媒体代理"])},scope_options:r=>{const{normalize:n}=r;return n(["可见范围设置"])},text_limit:r=>{const{normalize:n}=r;return n(["文字数量限制"])},title:r=>{const{normalize:n}=r;return n(["功能"])},who_to_follow:r=>{const{normalize:n}=r;return n(["推荐关注"])},pleroma_chat_messages:r=>{const{normalize:n}=r;return n(["Pleroma 聊天"])},upload_limit:r=>{const{normalize:n}=r;return n(["上传限制"])},shout:r=>{const{normalize:n}=r;return n(["留言板"])}},finder:{error_fetching_user:r=>{const{normalize:n}=r;return n(["获取用户时发生错误"])},find_user:r=>{const{normalize:n}=r;return n(["寻找用户"])}},general:{apply:r=>{const{normalize:n}=r;return n(["应用"])},submit:r=>{const{normalize:n}=r;return n(["提交"])},more:r=>{const{normalize:n}=r;return n(["更多"])},generic_error:r=>{const{normalize:n}=r;return n(["发生了一个错误"])},optional:r=>{const{normalize:n}=r;return n(["可选"])},show_more:r=>{const{normalize:n}=r;return n(["展开"])},show_less:r=>{const{normalize:n}=r;return n(["收起"])},cancel:r=>{const{normalize:n}=r;return n(["取消"])},disable:r=>{const{normalize:n}=r;return n(["禁用"])},enable:r=>{const{normalize:n}=r;return n(["启用"])},confirm:r=>{const{normalize:n}=r;return n(["确认"])},verify:r=>{const{normalize:n}=r;return n(["验证"])},dismiss:r=>{const{normalize:n}=r;return n(["忽略"])},peek:r=>{const{normalize:n}=r;return n(["预览"])},close:r=>{const{normalize:n}=r;return n(["关闭"])},retry:r=>{const{normalize:n}=r;return n(["重试"])},error_retry:r=>{const{normalize:n}=r;return n(["请重试"])},loading:r=>{const{normalize:n}=r;return n(["载入中…"])},role:{moderator:r=>{const{normalize:n}=r;return n(["监察员"])},admin:r=>{const{normalize:n}=r;return n(["管理员"])}},flash_content:r=>{const{normalize:n}=r;return n(["点击以使用 Ruffle 显示 Flash 内容(实验性,可能无效)。"])},flash_security:r=>{const{normalize:n}=r;return n(["注意这可能有潜在的危险,因为 Flash 内容仍然是任意的代码。"])},flash_fail:r=>{const{normalize:n}=r;return n(["Flash 内容加载失败,请在控制台查看详情。"])},scope_in_timeline:{public:r=>{const{normalize:n}=r;return n(["公开"])},direct:r=>{const{normalize:n}=r;return n(["私讯"])},private:r=>{const{normalize:n}=r;return n(["仅关注者"])},unlisted:r=>{const{normalize:n}=r;return n(["列外"])}},scroll_to_top:r=>{const{normalize:n}=r;return n(["滚动至顶"])},generic_error_message:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["发生一个错误:",e(t(0))])},never_show_again:r=>{const{normalize:n}=r;return n(["不再显示"])},undo:r=>{const{normalize:n}=r;return n(["撤销"])},yes:r=>{const{normalize:n}=r;return n(["是"])},no:r=>{const{normalize:n}=r;return n(["否"])},unpin:r=>{const{normalize:n}=r;return n(["取消固定该项"])},pin:r=>{const{normalize:n}=r;return n(["固定该项"])}},image_cropper:{crop_picture:r=>{const{normalize:n}=r;return n(["裁剪图片"])},save:r=>{const{normalize:n}=r;return n(["保存"])},save_without_cropping:r=>{const{normalize:n}=r;return n(["保存未经裁剪的图片"])},cancel:r=>{const{normalize:n}=r;return n(["取消"])}},importer:{submit:r=>{const{normalize:n}=r;return n(["提交"])},success:r=>{const{normalize:n}=r;return n(["导入成功。"])},error:r=>{const{normalize:n}=r;return n(["导入此文件时出现一个错误。"])}},login:{login:r=>{const{normalize:n}=r;return n(["登录"])},description:r=>{const{normalize:n}=r;return n(["用 OAuth 登录"])},logout:r=>{const{normalize:n}=r;return n(["登出"])},password:r=>{const{normalize:n}=r;return n(["密码"])},placeholder:r=>{const{normalize:n}=r;return n(["例如:lain"])},register:r=>{const{normalize:n}=r;return n(["注册"])},username:r=>{const{normalize:n}=r;return n(["用户名"])},hint:r=>{const{normalize:n}=r;return n(["登录后加入讨论"])},authentication_code:r=>{const{normalize:n}=r;return n(["验证码"])},enter_recovery_code:r=>{const{normalize:n}=r;return n(["输入一个恢复码"])},enter_two_factor_code:r=>{const{normalize:n}=r;return n(["输入一个双重因素验证码"])},recovery_code:r=>{const{normalize:n}=r;return n(["恢复码"])},heading:{totp:r=>{const{normalize:n}=r;return n(["双重因素验证"])},recovery:r=>{const{normalize:n}=r;return n(["双重因素恢复"])}},logout_confirm_cancel_button:r=>{const{normalize:n}=r;return n(["不要登出"])},logout_confirm_title:r=>{const{normalize:n}=r;return n(["确认登出"])},logout_confirm_accept_button:r=>{const{normalize:n}=r;return n(["登出"])},logout_confirm:r=>{const{normalize:n}=r;return n(["您确定要登出吗?"])}},media_modal:{previous:r=>{const{normalize:n}=r;return n(["往前"])},next:r=>{const{normalize:n}=r;return n(["往后"])},hide:r=>{const{normalize:n}=r;return n(["关闭媒体查看器"])},counter:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("current"))," / ",e(t("total"))])}},nav:{about:r=>{const{normalize:n}=r;return n(["关于"])},back:r=>{const{normalize:n}=r;return n(["后退"])},chat:r=>{const{normalize:n}=r;return n(["本站聊天"])},friend_requests:r=>{const{normalize:n}=r;return n(["关注请求"])},mentions:r=>{const{normalize:n}=r;return n(["提及"])},interactions:r=>{const{normalize:n}=r;return n(["互动"])},dms:r=>{const{normalize:n}=r;return n(["私信"])},public_tl:r=>{const{normalize:n}=r;return n(["公共时间线"])},timeline:r=>{const{normalize:n}=r;return n(["时间线"])},twkn:r=>{const{normalize:n}=r;return n(["已知网络"])},user_search:r=>{const{normalize:n}=r;return n(["用户搜索"])},search:r=>{const{normalize:n}=r;return n(["搜索"])},who_to_follow:r=>{const{normalize:n}=r;return n(["推荐关注"])},preferences:r=>{const{normalize:n}=r;return n(["偏好设置"])},administration:r=>{const{normalize:n}=r;return n(["管理员"])},chats:r=>{const{normalize:n}=r;return n(["聊天"])},timelines:r=>{const{normalize:n}=r;return n(["时间线"])},bookmarks:r=>{const{normalize:n}=r;return n(["书签"])},home_timeline:r=>{const{normalize:n}=r;return n(["主页时间线"])},lists:r=>{const{normalize:n}=r;return n(["列表"])},edit_finish:r=>{const{normalize:n}=r;return n(["完成编辑"])},mobile_notifications:r=>{const{normalize:n}=r;return n(["打开通知(有未读的)"])},mobile_notifications_close:r=>{const{normalize:n}=r;return n(["关闭通知"])},announcements:r=>{const{normalize:n}=r;return n(["公告"])},edit_nav_mobile:r=>{const{normalize:n}=r;return n(["自定义导航栏"])},edit_pinned:r=>{const{normalize:n}=r;return n(["编辑固定的项目"])},mobile_sidebar:r=>{const{normalize:n}=r;return n(["切换移动设备侧栏"])},search_close:r=>{const{normalize:n}=r;return n(["关闭搜索栏"])}},notifications:{broken_favorite:r=>{const{normalize:n}=r;return n(["未知的状态,正在搜索中…"])},favorited_you:r=>{const{normalize:n}=r;return n(["喜欢了你的状态"])},followed_you:r=>{const{normalize:n}=r;return n(["关注了你"])},load_older:r=>{const{normalize:n}=r;return n(["加载更早的通知"])},notifications:r=>{const{normalize:n}=r;return n(["通知"])},read:r=>{const{normalize:n}=r;return n(["已阅!"])},repeated_you:r=>{const{normalize:n}=r;return n(["转发了你的状态"])},no_more_notifications:r=>{const{normalize:n}=r;return n(["没有更多的通知"])},reacted_with:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["作出了 ",e(t(0))," 的反应"])},migrated_to:r=>{const{normalize:n}=r;return n(["迁移到了"])},follow_request:r=>{const{normalize:n}=r;return n(["想要关注你"])},error:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["取得通知时发生错误:",e(t(0))])},poll_ended:r=>{const{normalize:n}=r;return n(["投票结束了"])},submitted_report:r=>{const{normalize:n}=r;return n(["提交举报"])}},polls:{add_poll:r=>{const{normalize:n}=r;return n(["增加投票"])},add_option:r=>{const{normalize:n}=r;return n(["增加选项"])},option:r=>{const{normalize:n}=r;return n(["选项"])},votes:r=>{const{normalize:n}=r;return n(["投票"])},vote:r=>{const{normalize:n}=r;return n(["投票"])},type:r=>{const{normalize:n}=r;return n(["投票类型"])},single_choice:r=>{const{normalize:n}=r;return n(["单选"])},multiple_choices:r=>{const{normalize:n}=r;return n(["多选"])},expiry:r=>{const{normalize:n}=r;return n(["投票期限"])},expires_in:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["投票于 ",e(t(0))," 后结束"])},expired:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["投票 ",e(t(0))," 前已结束"])},not_enough_options:r=>{const{normalize:n}=r;return n(["投票的选项太少"])},votes_count:r=>{const{normalize:n,interpolate:e,named:t,plural:o}=r;return o([n([e(t("count"))," 票"]),n([e(t("count"))," 票"])])},people_voted_count:r=>{const{normalize:n,interpolate:e,named:t,plural:o}=r;return o([n([e(t("count"))," 人已投票"]),n([e(t("count"))," 人已投票"])])}},stickers:{add_sticker:r=>{const{normalize:n}=r;return n(["添加贴纸"])}},interactions:{favs_repeats:r=>{const{normalize:n}=r;return n(["转发和喜欢"])},follows:r=>{const{normalize:n}=r;return n(["新的关注者"])},load_older:r=>{const{normalize:n}=r;return n(["加载更早的互动"])},moves:r=>{const{normalize:n}=r;return n(["用户迁移"])},reports:r=>{const{normalize:n}=r;return n(["举报"])},emoji_reactions:r=>{const{normalize:n}=r;return n(["表情回应"])}},post_status:{new_status:r=>{const{normalize:n}=r;return n(["发布新状态"])},account_not_locked_warning:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["你的帐号没有 ",e(t(0)),"。任何人都可以关注你并浏览你的上锁内容。"])},account_not_locked_warning_link:r=>{const{normalize:n}=r;return n(["上锁"])},attachments_sensitive:r=>{const{normalize:n}=r;return n(["标记附件为敏感内容"])},content_type:{"text/plain":r=>{const{normalize:n}=r;return n(["纯文本"])},"text/html":r=>{const{normalize:n}=r;return n(["HTML"])},"text/markdown":r=>{const{normalize:n}=r;return n(["Markdown"])},"text/bbcode":r=>{const{normalize:n}=r;return n(["BBCode"])}},content_warning:r=>{const{normalize:n}=r;return n(["主题(可选)"])},default:r=>{const{normalize:n}=r;return n(["刚刚抵达上海。"])},direct_warning_to_all:r=>{const{normalize:n}=r;return n(["本条内容只有被提及的用户能够看到。"])},direct_warning_to_first_only:r=>{const{normalize:n}=r;return n(["本条内容只有被在消息开始处提及的用户能够看到。"])},posting:r=>{const{normalize:n}=r;return n(["发送中"])},scope_notice:{public:r=>{const{normalize:n}=r;return n(["本条内容可以被所有人看到"])},private:r=>{const{normalize:n}=r;return n(["关注你的人才能看到本条内容"])},unlisted:r=>{const{normalize:n}=r;return n(["本条内容既不在公共时间线,也不会在所有已知网络上可见"])}},scope:{direct:r=>{const{normalize:n}=r;return n(["私信 - 只发送给被提及的用户"])},private:r=>{const{normalize:n}=r;return n(["仅关注者 - 只有关注了你的人能看到"])},public:r=>{const{normalize:n}=r;return n(["公共 - 发送到公共时间轴"])},unlisted:r=>{const{normalize:n}=r;return n(["不公开 - 不会发送到公共时间轴"])}},preview_empty:r=>{const{normalize:n}=r;return n(["空的"])},preview:r=>{const{normalize:n}=r;return n(["预览"])},media_description:r=>{const{normalize:n}=r;return n(["媒体描述"])},media_description_error:r=>{const{normalize:n}=r;return n(["更新媒体失败,请重试"])},empty_status_error:r=>{const{normalize:n}=r;return n(["不能发布没有内容、没有附件的发文"])},post:r=>{const{normalize:n}=r;return n(["发送"])},edit_remote_warning:r=>{const{normalize:n}=r;return n(["其它远程实例可能不支持编辑并且无法接收您的帖子的最新版本。"])},edit_unsupported_warning:r=>{const{normalize:n}=r;return n(["Pleroma 不支持对提及或投票进行编辑。"])},edit_status:r=>{const{normalize:n}=r;return n(["编辑状态"])},content_type_selection:r=>{const{normalize:n}=r;return n(["发帖格式"])},scope_notice_dismiss:r=>{const{normalize:n}=r;return n(["关闭此提示"])}},registration:{bio:r=>{const{normalize:n}=r;return n(["简介"])},email:r=>{const{normalize:n}=r;return n(["电子邮箱"])},fullname:r=>{const{normalize:n}=r;return n(["显示名称"])},password_confirm:r=>{const{normalize:n}=r;return n(["确认密码"])},registration:r=>{const{normalize:n}=r;return n(["注册"])},token:r=>{const{normalize:n}=r;return n(["邀请码"])},captcha:r=>{const{normalize:n}=r;return n(["CAPTCHA"])},new_captcha:r=>{const{normalize:n}=r;return n(["点击图片获取新的验证码"])},username_placeholder:r=>{const{normalize:n}=r;return n(["例如:lain"])},fullname_placeholder:r=>{const{normalize:n}=r;return n(["例如:岩仓玲音"])},bio_placeholder:r=>{const{normalize:n}=r;return n(["例如:\n你好,我是玲音。\n我是一个住在日本郊区的动画少女。你可能在 Wired 见过我。"])},validations:{username_required:r=>{const{normalize:n}=r;return n(["不能留空"])},fullname_required:r=>{const{normalize:n}=r;return n(["不能留空"])},email_required:r=>{const{normalize:n}=r;return n(["不能留空"])},password_required:r=>{const{normalize:n}=r;return n(["不能留空"])},password_confirmation_required:r=>{const{normalize:n}=r;return n(["不能留空"])},password_confirmation_match:r=>{const{normalize:n}=r;return n(["密码不一致"])},birthday_required:r=>{const{normalize:n}=r;return n(["不能为空"])},birthday_min_age:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["必须在 ",e(t("date"))," 或之前"])}},reason_placeholder:r=>{const{normalize:n}=r;return n(["此实例的注册需要手动批准。\n请让管理员知道您为什么想要注册。"])},reason:r=>{const{normalize:n}=r;return n(["注册理由"])},register:r=>{const{normalize:n}=r;return n(["注册"])},email_language:r=>{const{normalize:n}=r;return n(["你想从服务器收到什么语言的邮件?"])},bio_optional:r=>{const{normalize:n}=r;return n(["介绍(可选)"])},email_optional:r=>{const{normalize:n}=r;return n(["电子邮件(可选)"])},birthday:r=>{const{normalize:n}=r;return n(["生日:"])},birthday_optional:r=>{const{normalize:n}=r;return n(["生日(可选):"])}},selectable_list:{select_all:r=>{const{normalize:n}=r;return n(["选择全部"])}},settings:{app_name:r=>{const{normalize:n}=r;return n(["App 名称"])},security:r=>{const{normalize:n}=r;return n(["安全"])},enter_current_password_to_confirm:r=>{const{normalize:n}=r;return n(["输入您当前的密码来确认您的身份"])},mfa:{otp:r=>{const{normalize:n}=r;return n(["OTP"])},setup_otp:r=>{const{normalize:n}=r;return n(["设置 OTP"])},wait_pre_setup_otp:r=>{const{normalize:n}=r;return n(["预设 OTP"])},confirm_and_enable:r=>{const{normalize:n}=r;return n(["确认并启用 OTP"])},title:r=>{const{normalize:n}=r;return n(["双因素验证"])},generate_new_recovery_codes:r=>{const{normalize:n}=r;return n(["生成新的恢复码"])},warning_of_generate_new_codes:r=>{const{normalize:n}=r;return n(["当您生成新的恢复码时,您旧的恢复码将会失效。"])},recovery_codes:r=>{const{normalize:n}=r;return n(["恢复码。"])},waiting_a_recovery_codes:r=>{const{normalize:n}=r;return n(["正在接收备份码…"])},recovery_codes_warning:r=>{const{normalize:n}=r;return n(["抄写这些号码,或者将其保存在安全的地方。这些号码不会再次显示。如果您无法访问您的 2FA app,也丢失了您的恢复码,您就再也无法登录您的账号了。"])},authentication_methods:r=>{const{normalize:n}=r;return n(["身份验证方法"])},scan:{title:r=>{const{normalize:n}=r;return n(["扫一下"])},desc:r=>{const{normalize:n}=r;return n(["使用您的双因素验证 app,扫描这个二维码,或者输入这些文字密钥:"])},secret_code:r=>{const{normalize:n}=r;return n(["密钥"])}},verify:{desc:r=>{const{normalize:n}=r;return n(["要启用双因素验证,请输入您的双因素验证 app 里的数字:"])}}},attachmentRadius:r=>{const{normalize:n}=r;return n(["附件"])},attachments:r=>{const{normalize:n}=r;return n(["附件"])},avatar:r=>{const{normalize:n}=r;return n(["头像"])},avatarAltRadius:r=>{const{normalize:n}=r;return n(["头像(通知)"])},avatarRadius:r=>{const{normalize:n}=r;return n(["头像"])},background:r=>{const{normalize:n}=r;return n(["背景"])},bio:r=>{const{normalize:n}=r;return n(["简介"])},block_export:r=>{const{normalize:n}=r;return n(["屏蔽名单导出"])},block_export_button:r=>{const{normalize:n}=r;return n(["导出你的屏蔽名单到一个 csv 文件"])},block_import:r=>{const{normalize:n}=r;return n(["屏蔽名单导入"])},block_import_error:r=>{const{normalize:n}=r;return n(["导入屏蔽名单出错"])},blocks_imported:r=>{const{normalize:n}=r;return n(["屏蔽名单导入成功!需要一点时间来处理。"])},blocks_tab:r=>{const{normalize:n}=r;return n(["屏蔽"])},btnRadius:r=>{const{normalize:n}=r;return n(["按钮"])},cBlue:r=>{const{normalize:n}=r;return n(["蓝色(回复,关注)"])},cGreen:r=>{const{normalize:n}=r;return n(["绿色(转发)"])},cOrange:r=>{const{normalize:n}=r;return n(["橙色(喜欢)"])},cRed:r=>{const{normalize:n}=r;return n(["红色(取消)"])},change_password:r=>{const{normalize:n}=r;return n(["修改密码"])},change_password_error:r=>{const{normalize:n}=r;return n(["修改密码的时候出了点问题。"])},changed_password:r=>{const{normalize:n}=r;return n(["成功修改了密码!"])},collapse_subject:r=>{const{normalize:n}=r;return n(["折叠带主题的内容"])},composing:r=>{const{normalize:n}=r;return n(["撰写"])},confirm_new_password:r=>{const{normalize:n}=r;return n(["确认新密码"])},current_avatar:r=>{const{normalize:n}=r;return n(["当前头像"])},current_password:r=>{const{normalize:n}=r;return n(["当前密码"])},current_profile_banner:r=>{const{normalize:n}=r;return n(["您当前的横幅图片"])},data_import_export_tab:r=>{const{normalize:n}=r;return n(["数据导入/导出"])},default_vis:r=>{const{normalize:n}=r;return n(["默认可见范围"])},delete_account:r=>{const{normalize:n}=r;return n(["删除账户"])},delete_account_description:r=>{const{normalize:n}=r;return n(["永久删除你的帐号和所有数据。"])},delete_account_error:r=>{const{normalize:n}=r;return n(["删除账户时发生错误,如果一直删除不了,请联系实例管理员。"])},delete_account_instructions:r=>{const{normalize:n}=r;return n(["在下面输入您的密码来确认删除账户。"])},avatar_size_instruction:r=>{const{normalize:n}=r;return n(["推荐的头像图片最小尺寸为 150x150 像素。"])},export_theme:r=>{const{normalize:n}=r;return n(["导出预置主题"])},filtering:r=>{const{normalize:n}=r;return n(["过滤器"])},filtering_explanation:r=>{const{normalize:n}=r;return n(["所有包含以下词汇的内容都会被隐藏,一行一个"])},follow_export:r=>{const{normalize:n}=r;return n(["导出关注"])},follow_export_button:r=>{const{normalize:n}=r;return n(["将关注导出成 csv 文件"])},follow_import:r=>{const{normalize:n}=r;return n(["导入关注"])},follow_import_error:r=>{const{normalize:n}=r;return n(["导入关注时错误"])},follows_imported:r=>{const{normalize:n}=r;return n(["关注已导入!尚需要一些时间来处理。"])},foreground:r=>{const{normalize:n}=r;return n(["前景"])},general:r=>{const{normalize:n}=r;return n(["通用"])},hide_attachments_in_convo:r=>{const{normalize:n}=r;return n(["在对话中隐藏附件"])},hide_attachments_in_tl:r=>{const{normalize:n}=r;return n(["在时间线上隐藏附件"])},hide_muted_posts:r=>{const{normalize:n}=r;return n(["不显示被隐藏的用户的帖子"])},max_thumbnails:r=>{const{normalize:n}=r;return n(["每个帖子最多能显示的缩略图数量"])},hide_isp:r=>{const{normalize:n}=r;return n(["隐藏实例独有的面板"])},preload_images:r=>{const{normalize:n}=r;return n(["预载图片"])},use_one_click_nsfw:r=>{const{normalize:n}=r;return n(["点击一次以打开工作场所不适宜(NSFW)的附件"])},hide_post_stats:r=>{const{normalize:n}=r;return n(["隐藏帖子的统计数据(例如:喜欢的次数)"])},hide_user_stats:r=>{const{normalize:n}=r;return n(["隐藏用户的统计数据(例如:关注者的数量)"])},hide_filtered_statuses:r=>{const{normalize:n}=r;return n(["隐藏过滤的状态"])},import_blocks_from_a_csv_file:r=>{const{normalize:n}=r;return n(["从 csv 文件中导入拉黑名单"])},import_followers_from_a_csv_file:r=>{const{normalize:n}=r;return n(["从 csv 文件中导入关注"])},import_theme:r=>{const{normalize:n}=r;return n(["导入预置主题"])},inputRadius:r=>{const{normalize:n}=r;return n(["输入框"])},checkboxRadius:r=>{const{normalize:n}=r;return n(["复选框"])},instance_default:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["(默认:",e(t("value")),")"])},instance_default_simple:r=>{const{normalize:n}=r;return n(["(默认)"])},interface:r=>{const{normalize:n}=r;return n(["界面"])},interfaceLanguage:r=>{const{normalize:n}=r;return n(["界面语言"])},invalid_theme_imported:r=>{const{normalize:n}=r;return n(["您所选择的主题文件不被 Pleroma 支持,因此主题未被修改。"])},limited_availability:r=>{const{normalize:n}=r;return n(["在您的浏览器中无法使用"])},links:r=>{const{normalize:n}=r;return n(["链接"])},lock_account_description:r=>{const{normalize:n}=r;return n(["您需要手动审核关注请求"])},loop_video:r=>{const{normalize:n}=r;return n(["循环视频"])},loop_video_silent_only:r=>{const{normalize:n}=r;return n(["只循环没有声音的视频(例如:Mastodon 里的“GIF”)"])},mutes_tab:r=>{const{normalize:n}=r;return n(["隐藏"])},play_videos_in_modal:r=>{const{normalize:n}=r;return n(["在弹出框内播放视频"])},use_contain_fit:r=>{const{normalize:n}=r;return n(["生成缩略图时不要裁剪附件"])},name:r=>{const{normalize:n}=r;return n(["名字"])},name_bio:r=>{const{normalize:n}=r;return n(["名字及简介"])},new_password:r=>{const{normalize:n}=r;return n(["新密码"])},notification_visibility:r=>{const{normalize:n}=r;return n(["要显示的通知类型"])},notification_visibility_follows:r=>{const{normalize:n}=r;return n(["关注"])},notification_visibility_likes:r=>{const{normalize:n}=r;return n(["喜欢"])},notification_visibility_mentions:r=>{const{normalize:n}=r;return n(["提及"])},notification_visibility_repeats:r=>{const{normalize:n}=r;return n(["转发"])},no_rich_text_description:r=>{const{normalize:n}=r;return n(["不显示富文本格式"])},no_blocks:r=>{const{normalize:n}=r;return n(["没有屏蔽"])},no_mutes:r=>{const{normalize:n}=r;return n(["没有隐藏"])},hide_follows_description:r=>{const{normalize:n}=r;return n(["不要显示我所关注的人"])},hide_followers_description:r=>{const{normalize:n}=r;return n(["不要显示关注我的人"])},show_admin_badge:r=>{const{normalize:n}=r;return n(["在我的个人资料中显示“管理员”徽章"])},show_moderator_badge:r=>{const{normalize:n}=r;return n(["在我的个人资料中显示“监察员”徽章"])},nsfw_clickthrough:r=>{const{normalize:n}=r;return n(["将不和谐附件和链接预览隐藏,点击才会显示"])},oauth_tokens:r=>{const{normalize:n}=r;return n(["OAuth令牌"])},token:r=>{const{normalize:n}=r;return n(["令牌"])},refresh_token:r=>{const{normalize:n}=r;return n(["刷新令牌"])},valid_until:r=>{const{normalize:n}=r;return n(["有效期至"])},revoke_token:r=>{const{normalize:n}=r;return n(["撤消"])},panelRadius:r=>{const{normalize:n}=r;return n(["面板"])},pause_on_unfocused:r=>{const{normalize:n}=r;return n(["在离开页面时暂停时间线推送"])},presets:r=>{const{normalize:n}=r;return n(["预置"])},profile_background:r=>{const{normalize:n}=r;return n(["个人背景图"])},profile_banner:r=>{const{normalize:n}=r;return n(["横幅图片"])},profile_tab:r=>{const{normalize:n}=r;return n(["个人资料"])},radii_help:r=>{const{normalize:n}=r;return n(["设置界面边缘的圆角 (单位:像素)"])},replies_in_timeline:r=>{const{normalize:n}=r;return n(["时间线中的回复"])},reply_visibility_all:r=>{const{normalize:n}=r;return n(["显示所有回复"])},reply_visibility_following:r=>{const{normalize:n}=r;return n(["只显示发送给我的回复/发送给我关注的用户的回复"])},reply_visibility_self:r=>{const{normalize:n}=r;return n(["只显示发送给我的回复"])},autohide_floating_post_button:r=>{const{normalize:n}=r;return n(["自动隐藏新帖子的按钮(移动设备)"])},saving_err:r=>{const{normalize:n}=r;return n(["保存设置时发生错误"])},saving_ok:r=>{const{normalize:n}=r;return n(["设置已保存"])},search_user_to_block:r=>{const{normalize:n}=r;return n(["搜索你想屏蔽的用户"])},search_user_to_mute:r=>{const{normalize:n}=r;return n(["搜索你想要隐藏的用户"])},security_tab:r=>{const{normalize:n}=r;return n(["安全"])},scope_copy:r=>{const{normalize:n}=r;return n(["回复时复制可见范围(私信中永远会复制)"])},minimal_scopes_mode:r=>{const{normalize:n}=r;return n(["使发文可见范围的选项最少化"])},set_new_avatar:r=>{const{normalize:n}=r;return n(["设置新头像"])},set_new_profile_background:r=>{const{normalize:n}=r;return n(["设置新的个人资料背景"])},set_new_profile_banner:r=>{const{normalize:n}=r;return n(["设置新的横幅图片"])},settings:r=>{const{normalize:n}=r;return n(["设置"])},subject_input_always_show:r=>{const{normalize:n}=r;return n(["总是显示主题框"])},subject_line_behavior:r=>{const{normalize:n}=r;return n(["回复时复制主题"])},subject_line_email:r=>{const{normalize:n}=r;return n(['类似电子邮件: "re: 主题"'])},subject_line_mastodon:r=>{const{normalize:n}=r;return n(["类似 mastodon: 与原主题相同"])},subject_line_noop:r=>{const{normalize:n}=r;return n(["不要复制"])},post_status_content_type:r=>{const{normalize:n}=r;return n(["发文状态内容类型"])},stop_gifs:r=>{const{normalize:n}=r;return n(["鼠标悬停时播放GIF"])},streaming:r=>{const{normalize:n}=r;return n(["滚动到顶部时自动推送新内容"])},text:r=>{const{normalize:n}=r;return n(["文本"])},theme:r=>{const{normalize:n}=r;return n(["主题"])},theme_help:r=>{const{normalize:n}=r;return n(["使用十六进制代码(#rrggbb)来设置主题颜色。"])},theme_help_v2_1:r=>{const{normalize:n}=r;return n(["您也可以通过选中复选框来覆盖某些组件的颜色和透明度。使用“清除所有”按钮来清除所有覆盖设置。"])},theme_help_v2_2:r=>{const{normalize:n}=r;return n(["某些条目下的图标是背景或文本对比指示器,鼠标悬停可以获取详细信息。请记住,使用透明度来显示最差的情况。"])},tooltipRadius:r=>{const{normalize:n}=r;return n(["提醒"])},upload_a_photo:r=>{const{normalize:n}=r;return n(["上传照片"])},user_settings:r=>{const{normalize:n}=r;return n(["用户设置"])},values:{false:r=>{const{normalize:n}=r;return n(["否"])},true:r=>{const{normalize:n}=r;return n(["是"])}},notifications:r=>{const{normalize:n}=r;return n(["通知"])},notification_mutes:r=>{const{normalize:n}=r;return n(["要停止收到某个指定的用户的通知,请使用隐藏功能。"])},notification_blocks:r=>{const{normalize:n}=r;return n(["屏蔽一个用户会停止接收来自该用户的所有通知,并且会取消对该用户的关注。"])},enable_web_push_notifications:r=>{const{normalize:n}=r;return n(["启用 web 推送通知"])},style:{switcher:{keep_color:r=>{const{normalize:n}=r;return n(["保留颜色"])},keep_shadows:r=>{const{normalize:n}=r;return n(["保留阴影"])},keep_opacity:r=>{const{normalize:n}=r;return n(["保留透明度"])},keep_roundness:r=>{const{normalize:n}=r;return n(["保留圆角"])},keep_fonts:r=>{const{normalize:n}=r;return n(["保留字体"])},save_load_hint:r=>{const{normalize:n}=r;return n(['"保留" 选项在选择或加载主题时保留当前设置的选项,在导出主题时还会存储上述选项。当所有复选框未设置时,导出主题将保存所有内容。'])},reset:r=>{const{normalize:n}=r;return n(["重置"])},clear_all:r=>{const{normalize:n}=r;return n(["清除全部"])},clear_opacity:r=>{const{normalize:n}=r;return n(["清除透明度"])},load_theme:r=>{const{normalize:n}=r;return n(["加载主题"])},help:{upgraded_from_v2:r=>{const{normalize:n}=r;return n(["PleromaFE 已升级,主题会与您记忆中的不太一样。"])},older_version_imported:r=>{const{normalize:n}=r;return n(["您导入的文件来自旧版本的 FE。"])},future_version_imported:r=>{const{normalize:n}=r;return n(["您导入的文件来自更高版本的 FE。"])},v2_imported:r=>{const{normalize:n}=r;return n(["您导入的文件是旧版 FE 的。我们尽可能保持兼容性,但还是可能出现不一致的情况。"])},snapshot_source_mismatch:r=>{const{normalize:n}=r;return n(["版本冲突:很有可能是 FE 版本回滚后再次升级了,如果您使用旧版本的 FE 更改了主题那么您可能需要使用旧版本,否则请使用新版本。"])},migration_napshot_gone:r=>{const{normalize:n}=r;return n(["不知出于何种原因,主题快照缺失了,一些地方可能与您印象中的不符。"])},migration_snapshot_ok:r=>{const{normalize:n}=r;return n(["为保万无一失,加载了主题快照。您可以试着加载主题数据。"])},fe_downgraded:r=>{const{normalize:n}=r;return n(["PleromaFE 的版本回滚了。"])},fe_upgraded:r=>{const{normalize:n}=r;return n(["PleromaFE 的主题引擎随着版本更新升级了。"])},snapshot_missing:r=>{const{normalize:n}=r;return n(["在文件中没有主题快照,所以网站外观可能会与原来预想的不同。"])},snapshot_present:r=>{const{normalize:n}=r;return n(["主题快照已加载,因此所有的值均被覆盖。您可以改为加载主题的实际数据。"])}},use_source:r=>{const{normalize:n}=r;return n(["新版本"])},use_snapshot:r=>{const{normalize:n}=r;return n(["老版本"])},keep_as_is:r=>{const{normalize:n}=r;return n(["保持原状"])}},common:{color:r=>{const{normalize:n}=r;return n(["颜色"])},opacity:r=>{const{normalize:n}=r;return n(["透明度"])},contrast:{hint:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["对比度是 ",e(t("ratio")),", 它 ",e(t("level"))," ",e(t("context"))])},level:{aa:r=>{const{normalize:n}=r;return n(["符合 AA 等级准则(最低)"])},aaa:r=>{const{normalize:n}=r;return n(["符合 AAA 等级准则(推荐)"])},bad:r=>{const{normalize:n}=r;return n(["不符合任何辅助功能指南"])}},context:{"18pt":r=>{const{normalize:n}=r;return n(["大字文本 (18pt+)"])},text:r=>{const{normalize:n}=r;return n(["文本"])}}}},common_colors:{_tab_label:r=>{const{normalize:n}=r;return n(["常规"])},main:r=>{const{normalize:n}=r;return n(["常用颜色"])},foreground_hint:r=>{const{normalize:n}=r;return n(["点击”高级“ 标签进行细致的控制"])},rgbo:r=>{const{normalize:n}=r;return n(["图标,强调,徽章"])}},advanced_colors:{_tab_label:r=>{const{normalize:n}=r;return n(["高级"])},alert:r=>{const{normalize:n}=r;return n(["提醒或警告背景色"])},alert_error:r=>{const{normalize:n}=r;return n(["错误"])},badge:r=>{const{normalize:n}=r;return n(["徽章背景"])},badge_notification:r=>{const{normalize:n}=r;return n(["通知"])},panel_header:r=>{const{normalize:n}=r;return n(["面板标题"])},top_bar:r=>{const{normalize:n}=r;return n(["顶栏"])},borders:r=>{const{normalize:n}=r;return n(["边框"])},buttons:r=>{const{normalize:n}=r;return n(["按钮"])},inputs:r=>{const{normalize:n}=r;return n(["输入框"])},faint_text:r=>{const{normalize:n}=r;return n(["灰度文字"])},chat:{border:r=>{const{normalize:n}=r;return n(["边框"])},outgoing:r=>{const{normalize:n}=r;return n(["发出的"])},incoming:r=>{const{normalize:n}=r;return n(["收到的"])}},disabled:r=>{const{normalize:n}=r;return n(["禁用的"])},pressed:r=>{const{normalize:n}=r;return n(["压下的"])},highlight:r=>{const{normalize:n}=r;return n(["强调元素"])},selectedMenu:r=>{const{normalize:n}=r;return n(["选中的菜单项"])},selectedPost:r=>{const{normalize:n}=r;return n(["选中的发布内容"])},icons:r=>{const{normalize:n}=r;return n(["图标"])},poll:r=>{const{normalize:n}=r;return n(["投票统计图"])},popover:r=>{const{normalize:n}=r;return n(["提示框,菜单,弹出框"])},post:r=>{const{normalize:n}=r;return n(["发布内容/用户简介"])},alert_neutral:r=>{const{normalize:n}=r;return n(["中性"])},alert_warning:r=>{const{normalize:n}=r;return n(["警告"])},tabs:r=>{const{normalize:n}=r;return n(["标签页"])},underlay:r=>{const{normalize:n}=r;return n(["底衬"])},toggled:r=>{const{normalize:n}=r;return n(["按下的"])},wallpaper:r=>{const{normalize:n}=r;return n(["壁纸"])}},radii:{_tab_label:r=>{const{normalize:n}=r;return n(["圆角"])}},shadows:{_tab_label:r=>{const{normalize:n}=r;return n(["阴影和照明"])},component:r=>{const{normalize:n}=r;return n(["组件"])},override:r=>{const{normalize:n}=r;return n(["覆盖"])},shadow_id:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["阴影 #",e(t("value"))])},blur:r=>{const{normalize:n}=r;return n(["模糊"])},spread:r=>{const{normalize:n}=r;return n(["扩散"])},inset:r=>{const{normalize:n}=r;return n(["内阴影"])},hint:r=>{const{normalize:n}=r;return n(["对于阴影你还可以使用 --variable 作为颜色值来使用 CSS3 变量。请注意,这种情况下,透明设置将不起作用。"])},filter_hint:{always_drop_shadow:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["警告,此阴影设置会总是使用 ",e(t(0))," ,如果浏览器支持的话。"])},drop_shadow_syntax:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 不支持参数 ",e(t(1))," 和关键词 ",e(t(2))," 。"])},avatar_inset:r=>{const{normalize:n}=r;return n(["请注意组合两个内部和非内部的阴影到头像上,在透明头像上可能会有意料之外的效果。"])},spread_zero:r=>{const{normalize:n}=r;return n(["阴影的扩散 > 0 会同设置成零一样"])},inset_classic:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["内阴影会使用 ",e(t(0))])}},components:{panel:r=>{const{normalize:n}=r;return n(["面板"])},panelHeader:r=>{const{normalize:n}=r;return n(["面板标题"])},topBar:r=>{const{normalize:n}=r;return n(["顶栏"])},avatar:r=>{const{normalize:n}=r;return n(["用户头像(在个人资料栏)"])},avatarStatus:r=>{const{normalize:n}=r;return n(["用户头像(在帖子显示栏)"])},popup:r=>{const{normalize:n}=r;return n(["弹窗与工具提示"])},button:r=>{const{normalize:n}=r;return n(["按钮"])},buttonHover:r=>{const{normalize:n}=r;return n(["按钮(悬停)"])},buttonPressed:r=>{const{normalize:n}=r;return n(["按钮(压下)"])},buttonPressedHover:r=>{const{normalize:n}=r;return n(["按钮(压下和悬停)"])},input:r=>{const{normalize:n}=r;return n(["输入框"])}},hintV3:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["对于阴影,您还可以使用 ",e(t(0))," 表示法来使用其它颜色插槽。"])}},fonts:{_tab_label:r=>{const{normalize:n}=r;return n(["字体"])},help:r=>{const{normalize:n}=r;return n(["为用户界面的元素选择字体。若选择 “自选”,您必须输入与系统显示完全一致的字体名称。"])},components:{interface:r=>{const{normalize:n}=r;return n(["界面"])},input:r=>{const{normalize:n}=r;return n(["输入框"])},post:r=>{const{normalize:n}=r;return n(["发帖文字"])},postCode:r=>{const{normalize:n}=r;return n(["帖子中使用等间距文字(富文本)"])}},family:r=>{const{normalize:n}=r;return n(["字体名称"])},size:r=>{const{normalize:n}=r;return n(["大小 (in px)"])},weight:r=>{const{normalize:n}=r;return n(["字重 (粗体)"])},custom:r=>{const{normalize:n}=r;return n(["自选"])}},preview:{header:r=>{const{normalize:n}=r;return n(["预览"])},content:r=>{const{normalize:n}=r;return n(["内容"])},error:r=>{const{normalize:n}=r;return n(["错误示例"])},button:r=>{const{normalize:n}=r;return n(["按钮"])},text:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["有堆 ",e(t(0))," 和 ",e(t(1))])},mono:r=>{const{normalize:n}=r;return n(["monospace 内容"])},input:r=>{const{normalize:n}=r;return n(["刚刚抵达上海。"])},faint_link:r=>{const{normalize:n}=r;return n(["帮助手册"])},fine_print:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["阅读我们的 ",e(t(0))," ,然而什么也学不到!"])},header_faint:r=>{const{normalize:n}=r;return n(["这很正常"])},checkbox:r=>{const{normalize:n}=r;return n(["我已经浏览了条款及细则"])},link:r=>{const{normalize:n}=r;return n(["一个棒棒的小小链接"])}}},version:{title:r=>{const{normalize:n}=r;return n(["版本"])},backend_version:r=>{const{normalize:n}=r;return n(["后端版本"])},frontend_version:r=>{const{normalize:n}=r;return n(["前端版本"])}},notification_setting_filters:r=>{const{normalize:n}=r;return n(["过滤器"])},domain_mutes:r=>{const{normalize:n}=r;return n(["域名"])},changed_email:r=>{const{normalize:n}=r;return n(["邮箱修改成功!"])},change_email_error:r=>{const{normalize:n}=r;return n(["修改您的电子邮箱时发生错误。"])},change_email:r=>{const{normalize:n}=r;return n(["修改电子邮箱"])},allow_following_move:r=>{const{normalize:n}=r;return n(["正在关注的账号迁移时自动重新关注"])},notification_setting_privacy_option:r=>{const{normalize:n}=r;return n(["在通知推送中隐藏发送者和内容"])},notification_setting_privacy:r=>{const{normalize:n}=r;return n(["隐私"])},hide_follows_count_description:r=>{const{normalize:n}=r;return n(["不显示关注数"])},notification_visibility_emoji_reactions:r=>{const{normalize:n}=r;return n(["互动"])},notification_visibility_moves:r=>{const{normalize:n}=r;return n(["用户迁移"])},new_email:r=>{const{normalize:n}=r;return n(["新邮箱"])},emoji_reactions_on_timeline:r=>{const{normalize:n}=r;return n(["在时间线上显示表情符号互动"])},notification_setting_hide_notification_contents:r=>{const{normalize:n}=r;return n(["隐藏推送通知中的发送者与内容信息"])},notification_setting_block_from_strangers:r=>{const{normalize:n}=r;return n(["屏蔽来自你没有关注的用户的通知"])},type_domains_to_mute:r=>{const{normalize:n}=r;return n(["搜索需要隐藏的域名"])},useStreamingApi:r=>{const{normalize:n}=r;return n(["实时接收帖子和通知"])},user_mutes:r=>{const{normalize:n}=r;return n(["用户"])},reset_background_confirm:r=>{const{normalize:n}=r;return n(["您确定要重置背景图吗?"])},reset_banner_confirm:r=>{const{normalize:n}=r;return n(["您确定要重置横幅图片吗?"])},reset_avatar_confirm:r=>{const{normalize:n}=r;return n(["您确定要重置头像吗?"])},reset_profile_banner:r=>{const{normalize:n}=r;return n(["重置横幅图片"])},reset_profile_background:r=>{const{normalize:n}=r;return n(["重置个人背景图"])},reset_avatar:r=>{const{normalize:n}=r;return n(["重置头像"])},hide_followers_count_description:r=>{const{normalize:n}=r;return n(["不显示关注者数量"])},profile_fields:{value:r=>{const{normalize:n}=r;return n(["内容"])},name:r=>{const{normalize:n}=r;return n(["标签"])},add_field:r=>{const{normalize:n}=r;return n(["添加字段"])},label:r=>{const{normalize:n}=r;return n(["个人资料元数据"])}},accent:r=>{const{normalize:n}=r;return n(["强调色"])},pad_emoji:r=>{const{normalize:n}=r;return n(["从表情符号选择器插入表情符号时,在表情两侧插入空格"])},discoverable:r=>{const{normalize:n}=r;return n(["允许通过搜索检索等服务找到此账号"])},mutes_and_blocks:r=>{const{normalize:n}=r;return n(["隐藏与屏蔽"])},bot:r=>{const{normalize:n}=r;return n(["这是一个机器人账号"])},fun:r=>{const{normalize:n}=r;return n(["趣味"])},useStreamingApiWarning:r=>{const{normalize:n}=r;return n(["(不推荐使用,试验性,已知会跳过一些帖子)"])},chatMessageRadius:r=>{const{normalize:n}=r;return n(["聊天消息"])},greentext:r=>{const{normalize:n}=r;return n(["Meme 箭头"])},virtual_scrolling:r=>{const{normalize:n}=r;return n(["优化时间线渲染"])},import_mutes_from_a_csv_file:r=>{const{normalize:n}=r;return n(["从 csv 文件导入隐藏名单"])},mutes_imported:r=>{const{normalize:n}=r;return n(["隐藏名单导入成功!处理它们将需要一段时间。"])},mute_import_error:r=>{const{normalize:n}=r;return n(["导入隐藏名单出错"])},mute_import:r=>{const{normalize:n}=r;return n(["隐藏名单导入"])},mute_export_button:r=>{const{normalize:n}=r;return n(["导出你的隐藏名单到一个 csv 文件"])},mute_export:r=>{const{normalize:n}=r;return n(["隐藏名单导出"])},hide_wallpaper:r=>{const{normalize:n}=r;return n(["隐藏实例壁纸"])},setting_changed:r=>{const{normalize:n}=r;return n(["与默认设置不同"])},more_settings:r=>{const{normalize:n}=r;return n(["更多设置"])},sensitive_by_default:r=>{const{normalize:n}=r;return n(["默认标记发文为敏感内容"])},reply_visibility_self_short:r=>{const{normalize:n}=r;return n(["只显示对我本人的回复"])},reply_visibility_following_short:r=>{const{normalize:n}=r;return n(["显示对我关注的人的回复"])},hide_all_muted_posts:r=>{const{normalize:n}=r;return n(["不显示已隐藏的发文"])},hide_media_previews:r=>{const{normalize:n}=r;return n(["隐藏媒体预览"])},word_filter:r=>{const{normalize:n}=r;return n(["词语过滤"])},save:r=>{const{normalize:n}=r;return n(["保存更改"])},file_export_import:{errors:{file_slightly_new:r=>{const{normalize:n}=r;return n(["文件的小版本不同,有些设置可能无法加载"])},file_too_old:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["不兼容的主版本:",e(t("fileMajor")),",文件版本过旧,不受支持(最小设置版本 ",e(t("feMajor")),")"])},file_too_new:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["不兼容的主版本:",e(t("fileMajor")),",此 PleromaFE(设置版本 ",e(t("feMajor")),")过旧,无法处理"])},invalid_file:r=>{const{normalize:n}=r;return n(["所选文件不是受支持的 Pleroma 设置备份。没有进行任何更改。"])}},restore_settings:r=>{const{normalize:n}=r;return n(["从文件恢复设置"])},backup_settings_theme:r=>{const{normalize:n}=r;return n(["备份设置和主题到文件"])},backup_settings:r=>{const{normalize:n}=r;return n(["备份设置到文件"])},backup_restore:r=>{const{normalize:n}=r;return n(["设置备份"])}},right_sidebar:r=>{const{normalize:n}=r;return n(["反转分栏的顺序"])},hide_shoutbox:r=>{const{normalize:n}=r;return n(["隐藏实例留言板"])},expert_mode:r=>{const{normalize:n}=r;return n(["显示高级"])},download_backup:r=>{const{normalize:n}=r;return n(["下载"])},mention_links:r=>{const{normalize:n}=r;return n(["提及链接"])},account_backup:r=>{const{normalize:n}=r;return n(["账号备份"])},account_backup_table_head:r=>{const{normalize:n}=r;return n(["备份"])},remove_backup:r=>{const{normalize:n}=r;return n(["移除"])},list_backups_error:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["获取备份列表出错:",e(t("error"))])},add_backup:r=>{const{normalize:n}=r;return n(["创建一个新备份"])},added_backup:r=>{const{normalize:n}=r;return n(["创建了一个新备份。"])},account_alias:r=>{const{normalize:n}=r;return n(["账号别名"])},account_alias_table_head:r=>{const{normalize:n}=r;return n(["别名"])},list_aliases_error:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["获取别名时出错:",e(t("error"))])},hide_list_aliases_error_action:r=>{const{normalize:n}=r;return n(["关闭"])},remove_alias:r=>{const{normalize:n}=r;return n(["移除这个别名"])},new_alias_target:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["添加一个新别名(例如 ",e(t("example")),")"])},added_alias:r=>{const{normalize:n}=r;return n(["别名添加好了。"])},move_account:r=>{const{normalize:n}=r;return n(["移动账号"])},move_account_target:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["目标账号(例如 ",e(t("example")),")"])},moved_account:r=>{const{normalize:n}=r;return n(["账号移动好了。"])},move_account_error:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["移动账号时出错:",e(t("error"))])},setting_server_side:r=>{const{normalize:n}=r;return n(["这个设置是捆绑到你的个人资料的,能影响所有会话和客户端"])},post_look_feel:r=>{const{normalize:n}=r;return n(["文章的样子跟感受"])},email_language:r=>{const{normalize:n}=r;return n(["从服务器收邮件的语言"])},account_backup_description:r=>{const{normalize:n}=r;return n(["这个允许你下载一份账号信息和文章的存档,但是现在还不能导入到 Pleroma 账号里。"])},backup_not_ready:r=>{const{normalize:n}=r;return n(["备份还没准备好。"])},add_backup_error:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["添加新备份时出错:",e(t("error"))])},add_alias_error:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["添加别名时出错:",e(t("error"))])},move_account_notes:r=>{const{normalize:n}=r;return n(["如果你想把账号移动到别的地方,你必须去目标账号,然后加一个指向这里的别名。"])},wordfilter:r=>{const{normalize:n}=r;return n(["词语过滤器"])},user_profiles:r=>{const{normalize:n}=r;return n(["用户资料"])},third_column_mode_notifications:r=>{const{normalize:n}=r;return n(["通知栏"])},backup_running:r=>{const{normalize:n,interpolate:e,named:t,plural:o}=r;return o([n(["此备份正在进行,已处理 ",e(t("number"))," 条记录。"]),n(["此备份正在进行,已处理 ",e(t("number"))," 条记录。"])])},lists_navigation:r=>{const{normalize:n}=r;return n(["在导航中显示列表"])},word_filter_and_more:r=>{const{normalize:n}=r;return n(["词过滤器及其它..."])},backup_failed:r=>{const{normalize:n}=r;return n(["此备份已失败。"])},birthday:{label:r=>{const{normalize:n}=r;return n(["生日"])},show_birthday:r=>{const{normalize:n}=r;return n(["展示我的生日"])}},hide_favorites_description:r=>{const{normalize:n}=r;return n(["不显示我的喜欢列表(人们仍然会收到通知)"])},third_column_mode:r=>{const{normalize:n}=r;return n(["当有足够的空间时,显示第三栏包含"])},third_column_mode_postform:r=>{const{normalize:n}=r;return n(["主要的发文形式和导航"])},columns:r=>{const{normalize:n}=r;return n(["分栏"])},user_popover_avatar_overlay:r=>{const{normalize:n}=r;return n(["在用户头像上显示用户弹出窗口"])},navbar_column_stretch:r=>{const{normalize:n}=r;return n(["延伸导航栏至分栏宽度"])},posts:r=>{const{normalize:n}=r;return n(["帖子"])},conversation_display_linear_quick:r=>{const{normalize:n}=r;return n(["线性视图"])},conversation_other_replies_button:r=>{const{normalize:n}=r;return n(["显示 “其它回复” 按钮"])},confirm_dialogs_delete:r=>{const{normalize:n}=r;return n(["删除状态"])},confirm_dialogs_mute:r=>{const{normalize:n}=r;return n(["隐藏用户"])},column_sizes:r=>{const{normalize:n}=r;return n(["分栏大小"])},column_sizes_sidebar:r=>{const{normalize:n}=r;return n(["侧栏"])},column_sizes_content:r=>{const{normalize:n}=r;return n(["內容"])},column_sizes_notifs:r=>{const{normalize:n}=r;return n(["通知"])},conversation_other_replies_button_below:r=>{const{normalize:n}=r;return n(["在状态下方"])},conversation_other_replies_button_inside:r=>{const{normalize:n}=r;return n(["在状态中"])},auto_update:r=>{const{normalize:n}=r;return n(["自动显示新的帖子"])},use_websockets:r=>{const{normalize:n}=r;return n(["使用 websockets(实时更新)"])},max_depth_in_thread:r=>{const{normalize:n}=r;return n(["默认显示同主题帖子中的最大层数"])},hide_wordfiltered_statuses:r=>{const{normalize:n}=r;return n(["隐藏经过词语过滤的状态"])},hide_muted_threads:r=>{const{normalize:n}=r;return n(["不显示已隐藏的同主题帖子"])},notification_visibility_polls:r=>{const{normalize:n}=r;return n(["你所投的投票的结束于"])},tree_advanced:r=>{const{normalize:n}=r;return n(["允许在树状视图中进行更灵活的导航"])},tree_fade_ancestors:r=>{const{normalize:n}=r;return n(["以模糊的文字显示当前状态的上级"])},conversation_display_linear:r=>{const{normalize:n}=r;return n(["线性样式"])},mention_link_fade_domain:r=>{const{normalize:n}=r;return n(["淡化域名(例如:","@","example.org 中的 ","@","foo","@","example.org)"])},mention_link_bolden_you:r=>{const{normalize:n}=r;return n(["当你被提及时突出显示提及你"])},user_popover_avatar_action:r=>{const{normalize:n}=r;return n(["弹出式头像点击动作"])},user_popover_avatar_action_zoom:r=>{const{normalize:n}=r;return n(["缩放头像"])},user_popover_avatar_action_close:r=>{const{normalize:n}=r;return n(["关闭弹出窗口"])},show_yous:r=>{const{normalize:n}=r;return n(["显示 (You)s"])},add_language:r=>{const{normalize:n}=r;return n(["添加备用语言"])},remove_language:r=>{const{normalize:n}=r;return n(["移除"])},primary_language:r=>{const{normalize:n}=r;return n(["主要语言:"])},fallback_language:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["备用语言 ",e(t("index")),":"])},account_privacy:r=>{const{normalize:n}=r;return n(["隐私"])},conversation_display:r=>{const{normalize:n}=r;return n(["对话显示样式"])},conversation_display_tree:r=>{const{normalize:n}=r;return n(["树状样式"])},conversation_display_tree_quick:r=>{const{normalize:n}=r;return n(["树状视图"])},disable_sticky_headers:r=>{const{normalize:n}=r;return n(["不要把分栏的顶栏固定在屏幕的顶部"])},confirm_dialogs:r=>{const{normalize:n}=r;return n(["请求确认于"])},confirm_dialogs_logout:r=>{const{normalize:n}=r;return n(["登出"])},confirm_dialogs_deny_follow:r=>{const{normalize:n}=r;return n(["拒绝关注请求"])},confirm_dialogs_approve_follow:r=>{const{normalize:n}=r;return n(["批准关注请求"])},confirm_dialogs_block:r=>{const{normalize:n}=r;return n(["屏蔽用户"])},confirm_dialogs_unfollow:r=>{const{normalize:n}=r;return n(["取消关注用户"])},confirm_dialogs_repeat:r=>{const{normalize:n}=r;return n(["转发状态"])},confirm_dialogs_remove_follower:r=>{const{normalize:n}=r;return n(["移除关注者"])},mute_bot_posts:r=>{const{normalize:n}=r;return n(["隐藏机器人的帖子"])},hide_bot_indication:r=>{const{normalize:n}=r;return n(["隐藏帖子中的机器人提示"])},always_show_post_button:r=>{const{normalize:n}=r;return n(["始终显示浮动的新帖子按钮"])},show_scrollbars:r=>{const{normalize:n}=r;return n(["显示侧栏的滚动条"])},third_column_mode_none:r=>{const{normalize:n}=r;return n(["完全不显示第三栏"])},use_at_icon:r=>{const{normalize:n}=r;return n(["将 ","@"," 符号显示为图标而不是文本"])},mention_link_display:r=>{const{normalize:n}=r;return n(["显示提及链接"])},mention_link_display_short:r=>{const{normalize:n}=r;return n(["始终以简称的形式出现(例如:","@","foo)"])},mention_link_display_full_for_remote:r=>{const{normalize:n}=r;return n(["仅远程实例用户以全名的形式出现(例如:","@","foo","@","example.org)"])},mention_link_display_full:r=>{const{normalize:n}=r;return n(["始终以全名的形式出现(例如:","@","foo","@","example.org)"])},mention_link_use_tooltip:r=>{const{normalize:n}=r;return n(["点击提及链接时显示用户卡片"])},mention_link_show_avatar:r=>{const{normalize:n}=r;return n(["在链接旁边显示用户头像"])},mention_link_show_avatar_quick:r=>{const{normalize:n}=r;return n(["在提及内容旁边显示用户头像"])},user_popover_avatar_action_open:r=>{const{normalize:n}=r;return n(["打开个人资料"])},autocomplete_select_first:r=>{const{normalize:n}=r;return n(["当有自动完成的结果时,自动选择第一个候选项"])},url:r=>{const{normalize:n}=r;return n(["URL"])},preview:r=>{const{normalize:n}=r;return n(["预览"])},commit_value:r=>{const{normalize:n}=r;return n(["保存"])},commit_value_tooltip:r=>{const{normalize:n}=r;return n(["当前值未保存,请按此按钮以提交你的修改"])},reset_value:r=>{const{normalize:n}=r;return n(["重置"])},reset_value_tooltip:r=>{const{normalize:n}=r;return n(["重置草稿"])},hard_reset_value:r=>{const{normalize:n}=r;return n(["硬重置"])},hard_reset_value_tooltip:r=>{const{normalize:n}=r;return n(["从存储中移除设置,强制使用默认值"])},emoji_reactions_scale:r=>{const{normalize:n}=r;return n(["表情回应比例系数"])}},time:{day:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 天"])},days:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 天"])},day_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"d"])},days_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"d"])},hour:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 小时"])},hours:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 小时"])},hour_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"h"])},hours_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"h"])},in_future:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["还有 ",e(t(0))])},in_past:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 之前"])},minute:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 分钟"])},minutes:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 分钟"])},minute_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"min"])},minutes_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"min"])},month:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 月"])},months:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 月"])},month_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"mo"])},months_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"mo"])},now:r=>{const{normalize:n}=r;return n(["刚刚"])},now_short:r=>{const{normalize:n}=r;return n(["刚刚"])},second:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 秒"])},seconds:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 秒"])},second_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"s"])},seconds_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"s"])},week:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 周"])},weeks:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 周"])},week_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"w"])},weeks_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"w"])},year:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 年"])},years:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 年"])},year_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"y"])},years_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0)),"y"])},unit:{days_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 天"])},hours:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 小时"])},hours_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 时"])},minutes:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 分"])},minutes_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 分"])},months:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 个月"])},months_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 月"])},seconds:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 秒"])},seconds_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 秒"])},weeks_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 周"])},years:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 年"])},years_short:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 年"])},weeks:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 周"])},days:r=>{const{normalize:n,interpolate:e,list:t}=r;return n([e(t(0))," 天"])}}},timeline:{collapse:r=>{const{normalize:n}=r;return n(["折叠"])},conversation:r=>{const{normalize:n}=r;return n(["对话"])},error_fetching:r=>{const{normalize:n}=r;return n(["获取更新时发生错误"])},load_older:r=>{const{normalize:n}=r;return n(["加载更早的状态"])},no_retweet_hint:r=>{const{normalize:n}=r;return n(["这条内容仅关注者可见,或者是私信,因此不能转发"])},repeated:r=>{const{normalize:n}=r;return n(["转发了"])},show_new:r=>{const{normalize:n}=r;return n(["显示新内容"])},up_to_date:r=>{const{normalize:n}=r;return n(["已是最新"])},no_more_statuses:r=>{const{normalize:n}=r;return n(["没有更多的状态"])},no_statuses:r=>{const{normalize:n}=r;return n(["没有状态更新"])},reload:r=>{const{normalize:n}=r;return n(["重新载入"])},error:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["取得时间轴时发生错误:",e(t(0))])},socket_broke:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["丢失实时连接:CloseEvent code ",e(t(0))])},socket_reconnected:r=>{const{normalize:n}=r;return n(["已建立实时连接"])},quick_view_settings:r=>{const{normalize:n}=r;return n(["快速视图设置"])},quick_filter_settings:r=>{const{normalize:n}=r;return n(["快速过滤设置"])}},status:{favorites:r=>{const{normalize:n}=r;return n(["喜欢"])},repeats:r=>{const{normalize:n}=r;return n(["转发"])},delete:r=>{const{normalize:n}=r;return n(["删除状态"])},pin:r=>{const{normalize:n}=r;return n(["在个人资料置顶"])},unpin:r=>{const{normalize:n}=r;return n(["取消在个人资料置顶"])},pinned:r=>{const{normalize:n}=r;return n(["置顶"])},delete_confirm:r=>{const{normalize:n}=r;return n(["您确定要删除这条状态吗?"])},reply_to:r=>{const{normalize:n}=r;return n(["回复"])},replies_list:r=>{const{normalize:n}=r;return n(["回复:"])},mute_conversation:r=>{const{normalize:n}=r;return n(["隐藏对话"])},unmute_conversation:r=>{const{normalize:n}=r;return n(["对话取消隐藏"])},hide_content:r=>{const{normalize:n}=r;return n(["隐藏内容"])},show_content:r=>{const{normalize:n}=r;return n(["显示内容"])},hide_full_subject:r=>{const{normalize:n}=r;return n(["隐藏此部分标题"])},show_full_subject:r=>{const{normalize:n}=r;return n(["显示全部标题"])},thread_muted:r=>{const{normalize:n}=r;return n(["同主题帖子已被隐藏"])},copy_link:r=>{const{normalize:n}=r;return n(["复制状态链接"])},status_unavailable:r=>{const{normalize:n}=r;return n(["状态不可取得"])},unbookmark:r=>{const{normalize:n}=r;return n(["取消书签"])},bookmark:r=>{const{normalize:n}=r;return n(["书签"])},thread_muted_and_words:r=>{const{normalize:n}=r;return n([",含有过滤词:"])},status_deleted:r=>{const{normalize:n}=r;return n(["该状态已被删除"])},nsfw:r=>{const{normalize:n}=r;return n(["NSFW"])},external_source:r=>{const{normalize:n}=r;return n(["外部来源"])},expand:r=>{const{normalize:n}=r;return n(["展开"])},you:r=>{const{normalize:n}=r;return n(["(你)"])},plus_more:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["还有 ",e(t("number"))," 个"])},many_attachments:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["文章有 ",e(t("number"))," 个附件"])},collapse_attachments:r=>{const{normalize:n}=r;return n(["折起附件"])},show_all_attachments:r=>{const{normalize:n}=r;return n(["显示所有附件"])},show_attachment_description:r=>{const{normalize:n}=r;return n(["预览描述(打开附件能看完整描述)"])},hide_attachment:r=>{const{normalize:n}=r;return n(["隐藏附件"])},remove_attachment:r=>{const{normalize:n}=r;return n(["移除附件"])},attachment_stop_flash:r=>{const{normalize:n}=r;return n(["停止 Flash 播放器"])},move_up:r=>{const{normalize:n}=r;return n(["把附件左移"])},open_gallery:r=>{const{normalize:n}=r;return n(["打开图库"])},thread_hide:r=>{const{normalize:n}=r;return n(["隐藏这个同主题帖子"])},thread_show:r=>{const{normalize:n}=r;return n(["显示这个同主题帖子"])},thread_show_full_with_icon:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("icon"))," ",e(t("text"))])},thread_follow:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["查看这个同主题帖子的剩余部分(一共有 ",e(t("numStatus"))," 个状态)"])},thread_follow_with_icon:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("icon"))," ",e(t("text"))])},ancestor_follow:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["查看这个状态下的别的 ",e(t("numReplies"))," 个回复"])},ancestor_follow_with_icon:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("icon"))," ",e(t("text"))])},show_all_conversation_with_icon:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("icon"))," ",e(t("text"))])},show_all_conversation:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["显示完整对话(还有 ",e(t("numStatus"))," 个状态)"])},mentions:r=>{const{normalize:n}=r;return n(["提及"])},replies_list_with_others:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["回复(另外 +",e(t("numReplies"))," 个):"])},move_down:r=>{const{normalize:n}=r;return n(["把附件右移"])},thread_show_full:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["显示这个同主题帖子下的所有东西(一共有 ",e(t("numStatus"))," 个状态,最大深度 ",e(t("depth")),")"])},show_only_conversation_under_this:r=>{const{normalize:n}=r;return n(["只显示这个状态的回复"])},repeat_confirm:r=>{const{normalize:n}=r;return n(["您确定要转发这条状态吗?"])},repeat_confirm_title:r=>{const{normalize:n}=r;return n(["确认转发"])},repeat_confirm_accept_button:r=>{const{normalize:n}=r;return n(["转发"])},repeat_confirm_cancel_button:r=>{const{normalize:n}=r;return n(["不要转发"])},edit:r=>{const{normalize:n}=r;return n(["编辑状态"])},edited_at:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["(最后编辑于 ",e(t("time")),")"])},delete_confirm_title:r=>{const{normalize:n}=r;return n(["确认删除"])},delete_confirm_accept_button:r=>{const{normalize:n}=r;return n(["删除"])},delete_confirm_cancel_button:r=>{const{normalize:n}=r;return n(["保留"])},show_attachment_in_modal:r=>{const{normalize:n}=r;return n(["在媒体模式中显示"])},status_history:r=>{const{normalize:n}=r;return n(["状态历史"])},delete_error:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["删除状态时出错:",e(t(0))])},reaction_count_label:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("num"))," 人作出了表情回应"])}},user_card:{approve:r=>{const{normalize:n}=r;return n(["核准"])},block:r=>{const{normalize:n}=r;return n(["屏蔽"])},blocked:r=>{const{normalize:n}=r;return n(["已屏蔽!"])},deny:r=>{const{normalize:n}=r;return n(["拒绝"])},favorites:r=>{const{normalize:n}=r;return n(["喜欢"])},follow:r=>{const{normalize:n}=r;return n(["关注"])},follow_sent:r=>{const{normalize:n}=r;return n(["请求已发送!"])},follow_progress:r=>{const{normalize:n}=r;return n(["请求中…"])},follow_unfollow:r=>{const{normalize:n}=r;return n(["取消关注"])},followees:r=>{const{normalize:n}=r;return n(["正在关注"])},followers:r=>{const{normalize:n}=r;return n(["关注者"])},following:r=>{const{normalize:n}=r;return n(["正在关注!"])},follows_you:r=>{const{normalize:n}=r;return n(["关注了你!"])},its_you:r=>{const{normalize:n}=r;return n(["就是你!"])},media:r=>{const{normalize:n}=r;return n(["媒体"])},mute:r=>{const{normalize:n}=r;return n(["隐藏"])},muted:r=>{const{normalize:n}=r;return n(["已隐藏"])},per_day:r=>{const{normalize:n}=r;return n(["每天"])},remote_follow:r=>{const{normalize:n}=r;return n(["跨站关注"])},report:r=>{const{normalize:n}=r;return n(["报告"])},statuses:r=>{const{normalize:n}=r;return n(["状态"])},subscribe:r=>{const{normalize:n}=r;return n(["订阅"])},unsubscribe:r=>{const{normalize:n}=r;return n(["退订"])},unblock:r=>{const{normalize:n}=r;return n(["取消屏蔽"])},unblock_progress:r=>{const{normalize:n}=r;return n(["正在取消屏蔽…"])},block_progress:r=>{const{normalize:n}=r;return n(["正在屏蔽…"])},unmute:r=>{const{normalize:n}=r;return n(["取消隐藏"])},unmute_progress:r=>{const{normalize:n}=r;return n(["取消隐藏中…"])},mute_progress:r=>{const{normalize:n}=r;return n(["隐藏中…"])},admin_menu:{moderation:r=>{const{normalize:n}=r;return n(["仲裁"])},grant_admin:r=>{const{normalize:n}=r;return n(["赋予管理权限"])},revoke_admin:r=>{const{normalize:n}=r;return n(["撤销管理权限"])},grant_moderator:r=>{const{normalize:n}=r;return n(["赋予监察员权限"])},revoke_moderator:r=>{const{normalize:n}=r;return n(["撤销监察员权限"])},activate_account:r=>{const{normalize:n}=r;return n(["激活账号"])},deactivate_account:r=>{const{normalize:n}=r;return n(["关闭账号"])},delete_account:r=>{const{normalize:n}=r;return n(["删除账号"])},force_nsfw:r=>{const{normalize:n}=r;return n(["标记所有的帖子都是 - 工作场合不适"])},strip_media:r=>{const{normalize:n}=r;return n(["从帖子里删除媒体文件"])},force_unlisted:r=>{const{normalize:n}=r;return n(["强制帖子为不公开"])},sandbox:r=>{const{normalize:n}=r;return n(["强制帖子为只有关注者可看"])},disable_remote_subscription:r=>{const{normalize:n}=r;return n(["禁止从远程实例关注用户"])},disable_any_subscription:r=>{const{normalize:n}=r;return n(["完全禁止关注用户"])},quarantine:r=>{const{normalize:n}=r;return n(["从联合实例中禁止用户帖子"])},delete_user:r=>{const{normalize:n}=r;return n(["删除用户"])},delete_user_data_and_deactivate_confirmation:r=>{const{normalize:n}=r;return n(["这将永久删除该账户的数据并停用该账户。你完全确定吗?"])}},hidden:r=>{const{normalize:n}=r;return n(["已隐藏"])},show_repeats:r=>{const{normalize:n}=r;return n(["显示转发"])},hide_repeats:r=>{const{normalize:n}=r;return n(["隐藏转发"])},message:r=>{const{normalize:n}=r;return n(["消息"])},mention:r=>{const{normalize:n}=r;return n(["提及"])},bot:r=>{const{normalize:n}=r;return n(["机器人"])},highlight:{side:r=>{const{normalize:n}=r;return n(["侧边条纹"])},striped:r=>{const{normalize:n}=r;return n(["条纹背景"])},solid:r=>{const{normalize:n}=r;return n(["单一颜色背景"])},disabled:r=>{const{normalize:n}=r;return n(["不突出显示"])}},edit_profile:r=>{const{normalize:n}=r;return n(["编辑个人资料"])},approve_confirm_title:r=>{const{normalize:n}=r;return n(["确认批准"])},approve_confirm_accept_button:r=>{const{normalize:n}=r;return n(["批准"])},block_confirm_accept_button:r=>{const{normalize:n}=r;return n(["屏蔽"])},block_confirm_cancel_button:r=>{const{normalize:n}=r;return n(["不要屏蔽"])},deactivated:r=>{const{normalize:n}=r;return n(["已停用"])},deny_confirm_title:r=>{const{normalize:n}=r;return n(["确认拒绝"])},deny_confirm_accept_button:r=>{const{normalize:n}=r;return n(["拒绝"])},deny_confirm_cancel_button:r=>{const{normalize:n}=r;return n(["不要拒绝"])},deny_confirm:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["您是否要拒绝 ",e(t("user"))," 的关注请求?"])},follow_cancel:r=>{const{normalize:n}=r;return n(["取消请求"])},unfollow_confirm_title:r=>{const{normalize:n}=r;return n(["确认取消关注"])},unfollow_confirm:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["您确定要取消关注 ",e(t("user"))," 吗?"])},unfollow_confirm_accept_button:r=>{const{normalize:n}=r;return n(["取消关注"])},unfollow_confirm_cancel_button:r=>{const{normalize:n}=r;return n(["不要取消关注"])},mute_confirm_title:r=>{const{normalize:n}=r;return n(["确认隐藏"])},mute_confirm_accept_button:r=>{const{normalize:n}=r;return n(["隐藏"])},mute_confirm_cancel_button:r=>{const{normalize:n}=r;return n(["不要隐藏"])},mute_duration_prompt:r=>{const{normalize:n}=r;return n(["让这个用户隐藏(0表示无限期):"])},remove_follower:r=>{const{normalize:n}=r;return n(["移除关注者"])},remove_follower_confirm_title:r=>{const{normalize:n}=r;return n(["确认移除关注者"])},remove_follower_confirm_cancel_button:r=>{const{normalize:n}=r;return n(["保留"])},remove_follower_confirm:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["您确定要将 ",e(t("user"))," 从您的关注者里移除吗?"])},birthday:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["生于 ",e(t("birthday"))])},note:r=>{const{normalize:n}=r;return n(["备注"])},approve_confirm_cancel_button:r=>{const{normalize:n}=r;return n(["不要批准"])},approve_confirm:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["您是否要批准 ",e(t("user"))," 的关注请求?"])},block_confirm_title:r=>{const{normalize:n}=r;return n(["确认屏蔽"])},block_confirm:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["您确定要屏蔽 ",e(t("user"))," 吗?"])},mute_confirm:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["您确定要隐藏 ",e(t("user"))," 吗?"])},remove_follower_confirm_accept_button:r=>{const{normalize:n}=r;return n(["移除"])},note_blank:r=>{const{normalize:n}=r;return n(["(空)"])},edit_note:r=>{const{normalize:n}=r;return n(["编辑备注"])},edit_note_apply:r=>{const{normalize:n}=r;return n(["应用"])},edit_note_cancel:r=>{const{normalize:n}=r;return n(["取消"])}},user_profile:{timeline_title:r=>{const{normalize:n}=r;return n(["用户时间线"])},profile_does_not_exist:r=>{const{normalize:n}=r;return n(["抱歉,此个人资料不存在。"])},profile_loading_error:r=>{const{normalize:n}=r;return n(["抱歉,载入个人资料时出错。"])}},user_reporting:{title:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["报告 ",e(t(0))])},add_comment_description:r=>{const{normalize:n}=r;return n(["此报告会发送给您的实例监察员。您可以在下面提供更多详细信息解释报告的缘由:"])},additional_comments:r=>{const{normalize:n}=r;return n(["其它信息"])},forward_description:r=>{const{normalize:n}=r;return n(["这个账号来自另一个服务器。是否同时发送一份报告副本到那里?"])},forward_to:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["转发 ",e(t(0))])},submit:r=>{const{normalize:n}=r;return n(["提交"])},generic_error:r=>{const{normalize:n}=r;return n(["当处理您的请求时,发生了一个错误。"])}},who_to_follow:{more:r=>{const{normalize:n}=r;return n(["更多"])},who_to_follow:r=>{const{normalize:n}=r;return n(["推荐关注"])}},tool_tip:{media_upload:r=>{const{normalize:n}=r;return n(["上传媒体"])},repeat:r=>{const{normalize:n}=r;return n(["转发"])},reply:r=>{const{normalize:n}=r;return n(["回复"])},favorite:r=>{const{normalize:n}=r;return n(["喜欢"])},user_settings:r=>{const{normalize:n}=r;return n(["用户设置"])},reject_follow_request:r=>{const{normalize:n}=r;return n(["拒绝关注请求"])},add_reaction:r=>{const{normalize:n}=r;return n(["添加互动"])},bookmark:r=>{const{normalize:n}=r;return n(["书签"])},accept_follow_request:r=>{const{normalize:n}=r;return n(["接受关注请求"])},toggle_expand:r=>{const{normalize:n}=r;return n(["展开或折叠通知以显示帖子全文"])},toggle_mute:r=>{const{normalize:n}=r;return n(["展开或折叠通知以显示已隐藏的内容"])},autocomplete_available:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["共有 ",e(t("number"))," 个结果可用。使用向上和向下键浏览它们。"])}},upload:{error:{base:r=>{const{normalize:n}=r;return n(["上传不成功。"])},file_too_big:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["文件太大了 [",e(t("filesize")),e(t("filesizeunit"))," / ",e(t("allowedsize")),e(t("allowedsizeunit")),"]"])},default:r=>{const{normalize:n}=r;return n(["迟些再试"])},message:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["上传错误:",e(t(0))])}},file_size_units:{B:r=>{const{normalize:n}=r;return n(["B"])},KiB:r=>{const{normalize:n}=r;return n(["KiB"])},MiB:r=>{const{normalize:n}=r;return n(["MiB"])},GiB:r=>{const{normalize:n}=r;return n(["GiB"])},TiB:r=>{const{normalize:n}=r;return n(["TiB"])}}},search:{people:r=>{const{normalize:n}=r;return n(["人"])},hashtags:r=>{const{normalize:n}=r;return n(["话题标签"])},person_talking:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("count"))," 人正在讨论"])},people_talking:r=>{const{normalize:n,interpolate:e,named:t}=r;return n([e(t("count"))," 人正在讨论"])},no_results:r=>{const{normalize:n}=r;return n(["没有搜索结果"])},no_more_results:r=>{const{normalize:n}=r;return n(["没有更多结果"])},load_more:r=>{const{normalize:n}=r;return n(["加载更多结果"])}},password_reset:{forgot_password:r=>{const{normalize:n}=r;return n(["忘记密码了?"])},password_reset:r=>{const{normalize:n}=r;return n(["重置密码"])},instruction:r=>{const{normalize:n}=r;return n(["输入您的电邮地址或者用户名,我们将发送一个链接到您的邮箱,用于重置密码。"])},placeholder:r=>{const{normalize:n}=r;return n(["您的电邮地址或者用户名"])},check_email:r=>{const{normalize:n}=r;return n(["检查您的邮箱,会有一个链接用于重置密码。"])},return_home:r=>{const{normalize:n}=r;return n(["回到首页"])},too_many_requests:r=>{const{normalize:n}=r;return n(["您达到了尝试次数的上限,请稍后再试。"])},password_reset_disabled:r=>{const{normalize:n}=r;return n(["密码重置已被禁用。请联系您的实例管理员。"])},password_reset_required_but_mailer_is_disabled:r=>{const{normalize:n}=r;return n(["您必须重置密码,但是密码重置被禁用了。请联系您所在实例的管理员。"])},password_reset_required:r=>{const{normalize:n}=r;return n(["您必须重置密码才能登陆。"])}},remote_user_resolver:{error:r=>{const{normalize:n}=r;return n(["未找到。"])},searching_for:r=>{const{normalize:n}=r;return n(["搜索"])},remote_user_resolver:r=>{const{normalize:n}=r;return n(["远程用户解析器"])}},emoji:{keep_open:r=>{const{normalize:n}=r;return n(["选择器保持打开"])},stickers:r=>{const{normalize:n}=r;return n(["贴纸"])},unicode:r=>{const{normalize:n}=r;return n(["Unicode 表情符号"])},custom:r=>{const{normalize:n}=r;return n(["自定义表情符号"])},add_emoji:r=>{const{normalize:n}=r;return n(["插入表情符号"])},search_emoji:r=>{const{normalize:n}=r;return n(["搜索表情符号"])},emoji:r=>{const{normalize:n}=r;return n(["表情符号"])},load_all:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["加载所有表情符号(共 ",e(t("emojiAmount"))," 个)"])},load_all_hint:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["最先加载的 ",e(t("saneAmount"))," 表情符号,加载全部表情符号可能会带来性能问题。"])},unicode_groups:{flags:r=>{const{normalize:n}=r;return n(["旗帜"])},"food-and-drink":r=>{const{normalize:n}=r;return n(["饮食"])},objects:r=>{const{normalize:n}=r;return n(["物件"])},"people-and-body":r=>{const{normalize:n}=r;return n(["人和身体"])},symbols:r=>{const{normalize:n}=r;return n(["符号"])},"travel-and-places":r=>{const{normalize:n}=r;return n(["旅行和地点"])},activities:r=>{const{normalize:n}=r;return n(["活动"])},"animals-and-nature":r=>{const{normalize:n}=r;return n(["动物和自然"])},"smileys-and-emotion":r=>{const{normalize:n}=r;return n(["表情与情感"])}},regional_indicator:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["地区指示符 ",e(t("letter"))])},unpacked:r=>{const{normalize:n}=r;return n(["未分组的表情符号"])}},about:{mrf:{simple:{quarantine_desc:r=>{const{normalize:n}=r;return n(["本实例向以下实例仅发送公开的帖子:"])},quarantine:r=>{const{normalize:n}=r;return n(["隔离"])},reject_desc:r=>{const{normalize:n}=r;return n(["本实例不会接收来自下列实例的消息:"])},reject:r=>{const{normalize:n}=r;return n(["拒绝"])},accept_desc:r=>{const{normalize:n}=r;return n(["本实例只接收来自下列实例的消息:"])},simple_policies:r=>{const{normalize:n}=r;return n(["对于特定实例的策略"])},accept:r=>{const{normalize:n}=r;return n(["接受"])},media_removal:r=>{const{normalize:n}=r;return n(["移除媒体"])},media_nsfw_desc:r=>{const{normalize:n}=r;return n(["本实例将来自以下实例的媒体内容强制设置为敏感内容:"])},media_nsfw:r=>{const{normalize:n}=r;return n(["强制设置媒体为敏感内容"])},media_removal_desc:r=>{const{normalize:n}=r;return n(["本实例移除来自以下实例的媒体内容:"])},ftl_removal_desc:r=>{const{normalize:n}=r;return n(["该实例在从“已知网络”时间线上移除了下列实例:"])},ftl_removal:r=>{const{normalize:n}=r;return n(["从“已知网络”时间线上移除"])},reason:r=>{const{normalize:n}=r;return n(["理由"])},not_applicable:r=>{const{normalize:n}=r;return n(["无"])},instance:r=>{const{normalize:n}=r;return n(["实例"])}},mrf_policies_desc:r=>{const{normalize:n}=r;return n(["MRF 策略会影响本实例的互通行为。以下策略已启用:"])},mrf_policies:r=>{const{normalize:n}=r;return n(["已启用的 MRF 策略"])},keyword:{ftl_removal:r=>{const{normalize:n}=r;return n(["从“全部已知网络”时间线上移除"])},keyword_policies:r=>{const{normalize:n}=r;return n(["关键词策略"])},is_replaced_by:r=>{const{normalize:n}=r;return n(["→"])},replace:r=>{const{normalize:n}=r;return n(["替换"])},reject:r=>{const{normalize:n}=r;return n(["拒绝"])}},federation:r=>{const{normalize:n}=r;return n(["联邦互通"])}},staff:r=>{const{normalize:n}=r;return n(["管理人员"])}},domain_mute_card:{unmute_progress:r=>{const{normalize:n}=r;return n(["正在取消隐藏…"])},unmute:r=>{const{normalize:n}=r;return n(["取消隐藏"])},mute_progress:r=>{const{normalize:n}=r;return n(["隐藏中…"])},mute:r=>{const{normalize:n}=r;return n(["隐藏"])}},errors:{storage_unavailable:r=>{const{normalize:n}=r;return n(["Pleroma 无法访问浏览器储存。您的登陆以及本地设置将不会被保存,您也可能遇到未知问题。请尝试启用 cookies。"])}},shoutbox:{title:r=>{const{normalize:n}=r;return n(["留言板"])}},display_date:{today:r=>{const{normalize:n}=r;return n(["今天"])}},file_type:{file:r=>{const{normalize:n}=r;return n(["文件"])},image:r=>{const{normalize:n}=r;return n(["图片"])},video:r=>{const{normalize:n}=r;return n(["视频"])},audio:r=>{const{normalize:n}=r;return n(["音频"])}},chats:{empty_chat_list_placeholder:r=>{const{normalize:n}=r;return n(["您还没有任何聊天记录。开始聊天吧!"])},error_sending_message:r=>{const{normalize:n}=r;return n(["发送消息时出了点问题。"])},error_loading_chat:r=>{const{normalize:n}=r;return n(["加载聊天时出了点问题。"])},delete_confirm:r=>{const{normalize:n}=r;return n(["您确定要删除此消息吗?"])},more:r=>{const{normalize:n}=r;return n(["更多"])},empty_message_error:r=>{const{normalize:n}=r;return n(["无法发布空消息"])},new:r=>{const{normalize:n}=r;return n(["新聊天"])},chats:r=>{const{normalize:n}=r;return n(["聊天"])},delete:r=>{const{normalize:n}=r;return n(["删除"])},message_user:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["发消息给 ",e(t("nickname"))])},you:r=>{const{normalize:n}=r;return n(["你:"])}},announcements:{page_header:r=>{const{normalize:n}=r;return n(["公告"])},title:r=>{const{normalize:n}=r;return n(["公告"])},mark_as_read_action:r=>{const{normalize:n}=r;return n(["标为已读"])},post_form_header:r=>{const{normalize:n}=r;return n(["发布公告"])},post_placeholder:r=>{const{normalize:n}=r;return n(["在这里输入公告内容..."])},post_action:r=>{const{normalize:n}=r;return n(["发布"])},post_error:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["错误:",e(t("error"))])},close_error:r=>{const{normalize:n}=r;return n(["关闭"])},delete_action:r=>{const{normalize:n}=r;return n(["删除"])},start_time_prompt:r=>{const{normalize:n}=r;return n(["起始时间: "])},end_time_prompt:r=>{const{normalize:n}=r;return n(["终止时间: "])},all_day_prompt:r=>{const{normalize:n}=r;return n(["这是全天的事件"])},published_time_display:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["发表于 ",e(t("time"))])},start_time_display:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["开始于 ",e(t("time"))])},end_time_display:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["结束于 ",e(t("time"))])},edit_action:r=>{const{normalize:n}=r;return n(["编辑"])},submit_edit_action:r=>{const{normalize:n}=r;return n(["提交"])},cancel_edit_action:r=>{const{normalize:n}=r;return n(["取消"])},inactive_message:r=>{const{normalize:n}=r;return n(["这个公告不活跃"])}},report:{reported_user:r=>{const{normalize:n}=r;return n(["被举报者:"])},state_closed:r=>{const{normalize:n}=r;return n(["已关闭"])},state_resolved:r=>{const{normalize:n}=r;return n(["已解决"])},reporter:r=>{const{normalize:n}=r;return n(["举报者:"])},state_open:r=>{const{normalize:n}=r;return n(["开启"])},reported_statuses:r=>{const{normalize:n}=r;return n(["已举报的状态:"])},notes:r=>{const{normalize:n}=r;return n(["备注:"])},state:r=>{const{normalize:n}=r;return n(["状态:"])}},unicode_domain_indicator:{tooltip:r=>{const{normalize:n}=r;return n(["此域名包含非 ascii 字符。"])}},update:{update_bugs_gitlab:r=>{const{normalize:n}=r;return n(["Pleroma GitLab"])},update_changelog:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["关于变化的更多细节,请参见 ",e(t("theFullChangelog"))," 。"])},update_changelog_here:r=>{const{normalize:n}=r;return n(["完整的更新日志"])},big_update_title:r=>{const{normalize:n}=r;return n(["请忍耐一下"])},big_update_content:r=>{const{normalize:n}=r;return n(["我们已经有一段时间没有发布发行版,所以事情的外观和感觉可能与你习惯的不一样。"])},update_bugs:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["请在 ",e(t("pleromaGitlab"))," 上报告任何问题和bug,因为我们已经改变了很多,虽然我们进行了彻底的测试,并且自己使用了开发版本,但我们可能错过了一些东西。我们欢迎你对你可能遇到的问题或如何改进Pleroma和Pleroma-FE提出反馈和建议。"])},art_by:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["Art by ",e(t("linkToArtist"))])}},lists:{search:r=>{const{normalize:n}=r;return n(["搜索用户"])},create:r=>{const{normalize:n}=r;return n(["创建"])},save:r=>{const{normalize:n}=r;return n(["保存更改"])},delete:r=>{const{normalize:n}=r;return n(["删除列表"])},following_only:r=>{const{normalize:n}=r;return n(["限制于正在关注"])},manage_lists:r=>{const{normalize:n}=r;return n(["管理列表"])},manage_members:r=>{const{normalize:n}=r;return n(["管理列表成员"])},add_members:r=>{const{normalize:n}=r;return n(["搜索更多用户"])},remove_from_list:r=>{const{normalize:n}=r;return n(["从列表中移除"])},add_to_list:r=>{const{normalize:n}=r;return n(["添加到列表"])},is_in_list:r=>{const{normalize:n}=r;return n(["已在列表中"])},editing_list:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["正在编辑列表 ",e(t("listTitle"))])},creating_list:r=>{const{normalize:n}=r;return n(["正在创建新的列表"])},update_title:r=>{const{normalize:n}=r;return n(["保存标题"])},really_delete:r=>{const{normalize:n}=r;return n(["真的要删除列表吗?"])},error:r=>{const{normalize:n,interpolate:e,list:t}=r;return n(["操作列表时出错:",e(t(0))])},lists:r=>{const{normalize:n}=r;return n(["列表"])},new:r=>{const{normalize:n}=r;return n(["新的列表"])},title:r=>{const{normalize:n}=r;return n(["列表标题"])}},admin_dash:{window_title:r=>{const{normalize:n}=r;return n(["管理员"])},old_ui_link:r=>{const{normalize:n}=r;return n(["旧的管理界面在此处"])},reset_all:r=>{const{normalize:n}=r;return n(["重置全部"])},commit_all:r=>{const{normalize:n}=r;return n(["保存全部"])},tabs:{nodb:r=>{const{normalize:n}=r;return n(["无数据库配置"])},instance:r=>{const{normalize:n}=r;return n(["实例"])},limits:r=>{const{normalize:n}=r;return n(["限制"])},frontends:r=>{const{normalize:n}=r;return n(["前端"])}},nodb:{heading:r=>{const{normalize:n}=r;return n(["数据库配置已禁用"])},documentation:r=>{const{normalize:n}=r;return n(["文档"])},text2:r=>{const{normalize:n}=r;return n(["大多数配置选项将不可用。"])},text:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["你需要修改后端配置文件,以便将 ",e(t("property"))," 设置为 ",e(t("value")),",更多内容请参见 ",e(t("documentation")),"。"])}},captcha:{native:r=>{const{normalize:n}=r;return n(["本地"])},kocaptcha:r=>{const{normalize:n}=r;return n(["KoCaptcha"])}},instance:{instance:r=>{const{normalize:n}=r;return n(["实例信息"])},registrations:r=>{const{normalize:n}=r;return n(["用户注册"])},captcha_header:r=>{const{normalize:n}=r;return n(["验证码"])},kocaptcha:r=>{const{normalize:n}=r;return n(["KoCaptcha 设置"])},access:r=>{const{normalize:n}=r;return n(["实例访问"])},restrict:{header:r=>{const{normalize:n}=r;return n(["限制匿名访客的访问"])},timelines:r=>{const{normalize:n}=r;return n(["时间线访问"])},profiles:r=>{const{normalize:n}=r;return n(["用户个人资料访问"])},activities:r=>{const{normalize:n}=r;return n(["状态/活动访问"])},description:r=>{const{normalize:n}=r;return n(["允许/不允许访问特定 API 的详细设置。默认情况下(不确定状态),如果实例不是公开的,它将拒绝访问;勾选复选框意味着即使实例是公开的,也拒绝访问;不勾选意味着即使实例是私有的,也允许访问。请注意,如果某些设置被设定,可能会发生意想不到的行为,例如,如果个人资料访问被禁用,显示的帖文将不包含个人资料信息。"])}}},limits:{arbitrary_limits:r=>{const{normalize:n}=r;return n(["任意限制"])},posts:r=>{const{normalize:n}=r;return n(["帖文限制"])},uploads:r=>{const{normalize:n}=r;return n(["附件限制"])},users:r=>{const{normalize:n}=r;return n(["用户个人资料限制"])},profile_fields:r=>{const{normalize:n}=r;return n(["个人资料字段限制"])},user_uploads:r=>{const{normalize:n}=r;return n(["个人资料媒体限制"])}},frontend:{repository:r=>{const{normalize:n}=r;return n(["存储库链接"])},versions:r=>{const{normalize:n}=r;return n(["可用版本"])},build_url:r=>{const{normalize:n}=r;return n(["构建产物 URL"])},reinstall:r=>{const{normalize:n}=r;return n(["重新安装"])},is_default:r=>{const{normalize:n}=r;return n(["(默认)"])},is_default_custom:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["(默认,版本:",e(t("version")),")"])},install:r=>{const{normalize:n}=r;return n(["安装"])},install_version:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["安装版本 ",e(t("version"))])},more_install_options:r=>{const{normalize:n}=r;return n(["更多安装选项"])},more_default_options:r=>{const{normalize:n}=r;return n(["更多默认设置选项"])},set_default:r=>{const{normalize:n}=r;return n(["设为默认"])},set_default_version:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["将版本 ",e(t("version"))," 设为默认"])},wip_notice:r=>{const{normalize:n}=r;return n(["请注意,此部分是一个WIP,缺乏某些功能,因为前端管理的后台实现并不完整。"])},default_frontend:r=>{const{normalize:n}=r;return n(["默认前端"])},default_frontend_tip:r=>{const{normalize:n}=r;return n(["默认的前端将显示给所有用户。目前还没有办法让用户选择个人的前端。如果你不使用 PleromaFE,你很可能不得不使用旧的和有问题的 AdminFE 来进行实例配置,直到我们替换它。"])},available_frontends:r=>{const{normalize:n}=r;return n(["可供安装"])}},temp_overrides:{":pleroma":{":instance":{":public":{label:r=>{const{normalize:n}=r;return n(["实例是公开的"])},description:r=>{const{normalize:n}=r;return n(["禁用此功能将使所有的 API 只能被已登录用户访问,这将使公共和联邦时间线无法被匿名访客访问。"])}},":limit_to_local_content":{label:r=>{const{normalize:n}=r;return n(["将搜索限于本地内容"])},description:r=>{const{normalize:n}=r;return n(["禁用未认证用户(默认)、所有用户或无人的全局网络搜索"])}},":description_limit":{label:r=>{const{normalize:n}=r;return n(["限制"])},description:r=>{const{normalize:n}=r;return n(["附件描述的字数限制"])}},":background_image":{label:r=>{const{normalize:n}=r;return n(["背景图片"])},description:r=>{const{normalize:n}=r;return n(["背景图片(主要使用于 PleromaFE)"])}}}}},wip_notice:r=>{const{normalize:n,interpolate:e,named:t}=r;return n(["此管理仪表板是实验性和 WIP 的,",e(t("adminFeLink")),"。"])}}}}}]);
+//# sourceMappingURL=zh-json.a0a26f6d62ddbe0b49cc.js.map \ No newline at end of file
diff --git a/priv/static/static/js/i18n/zh-json.a0a26f6d62ddbe0b49cc.js.map b/priv/static/static/js/i18n/zh-json.a0a26f6d62ddbe0b49cc.js.map
new file mode 100644
index 000000000..1a62ad493
--- /dev/null
+++ b/priv/static/static/js/i18n/zh-json.a0a26f6d62ddbe0b49cc.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/js/i18n/zh-json.a0a26f6d62ddbe0b49cc.js","mappings":"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","sources":["webpack://pleroma_fe/./src/i18n/zh.json"],"sourcesContent":["export default {\n \"chat\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"聊天\"])}\n },\n \"exporter\": {\n \"export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"导出\"])},\n \"processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"正在处理,稍后会提示您下载文件\"])}\n },\n \"features_panel\": {\n \"chat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"聊天\"])},\n \"gopher\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gopher\"])},\n \"media_proxy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"媒体代理\"])},\n \"scope_options\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"可见范围设置\"])},\n \"text_limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"文字数量限制\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"功能\"])},\n \"who_to_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"推荐关注\"])},\n \"pleroma_chat_messages\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pleroma 聊天\"])},\n \"upload_limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"上传限制\"])},\n \"shout\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"留言板\"])}\n },\n \"finder\": {\n \"error_fetching_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"获取用户时发生错误\"])},\n \"find_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"寻找用户\"])}\n },\n \"general\": {\n \"apply\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"应用\"])},\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提交\"])},\n \"more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"更多\"])},\n \"generic_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"发生了一个错误\"])},\n \"optional\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"可选\"])},\n \"show_more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"展开\"])},\n \"show_less\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"收起\"])},\n \"cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消\"])},\n \"disable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"禁用\"])},\n \"enable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"启用\"])},\n \"confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"确认\"])},\n \"verify\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"验证\"])},\n \"dismiss\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"忽略\"])},\n \"peek\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"预览\"])},\n \"close\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关闭\"])},\n \"retry\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"重试\"])},\n \"error_retry\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"请重试\"])},\n \"loading\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"载入中…\"])},\n \"role\": {\n \"moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"监察员\"])},\n \"admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"管理员\"])}\n },\n \"flash_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"点击以使用 Ruffle 显示 Flash 内容(实验性,可能无效)。\"])},\n \"flash_security\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"注意这可能有潜在的危险,因为 Flash 内容仍然是任意的代码。\"])},\n \"flash_fail\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Flash 内容加载失败,请在控制台查看详情。\"])},\n \"scope_in_timeline\": {\n \"public\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"公开\"])},\n \"direct\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"私讯\"])},\n \"private\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"仅关注者\"])},\n \"unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"列外\"])}\n },\n \"scroll_to_top\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"滚动至顶\"])},\n \"generic_error_message\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"发生一个错误:\", _interpolate(_list(0))])},\n \"never_show_again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不再显示\"])},\n \"undo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"撤销\"])},\n \"yes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"是\"])},\n \"no\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"否\"])},\n \"unpin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消固定该项\"])},\n \"pin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"固定该项\"])}\n },\n \"image_cropper\": {\n \"crop_picture\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"裁剪图片\"])},\n \"save\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保存\"])},\n \"save_without_cropping\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保存未经裁剪的图片\"])},\n \"cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消\"])}\n },\n \"importer\": {\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提交\"])},\n \"success\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"导入成功。\"])},\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"导入此文件时出现一个错误。\"])}\n },\n \"login\": {\n \"login\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"登录\"])},\n \"description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用 OAuth 登录\"])},\n \"logout\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"登出\"])},\n \"password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"密码\"])},\n \"placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"例如:lain\"])},\n \"register\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"注册\"])},\n \"username\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户名\"])},\n \"hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"登录后加入讨论\"])},\n \"authentication_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"验证码\"])},\n \"enter_recovery_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"输入一个恢复码\"])},\n \"enter_two_factor_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"输入一个双重因素验证码\"])},\n \"recovery_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"恢复码\"])},\n \"heading\": {\n \"totp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"双重因素验证\"])},\n \"recovery\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"双重因素恢复\"])}\n },\n \"logout_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不要登出\"])},\n \"logout_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"确认登出\"])},\n \"logout_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"登出\"])},\n \"logout_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您确定要登出吗?\"])}\n },\n \"media_modal\": {\n \"previous\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"往前\"])},\n \"next\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"往后\"])},\n \"hide\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关闭媒体查看器\"])},\n \"counter\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"current\")), \" / \", _interpolate(_named(\"total\"))])}\n },\n \"nav\": {\n \"about\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关于\"])},\n \"back\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"后退\"])},\n \"chat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本站聊天\"])},\n \"friend_requests\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关注请求\"])},\n \"mentions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提及\"])},\n \"interactions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"互动\"])},\n \"dms\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"私信\"])},\n \"public_tl\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"公共时间线\"])},\n \"timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"时间线\"])},\n \"twkn\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已知网络\"])},\n \"user_search\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户搜索\"])},\n \"search\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"搜索\"])},\n \"who_to_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"推荐关注\"])},\n \"preferences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"偏好设置\"])},\n \"administration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"管理员\"])},\n \"chats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"聊天\"])},\n \"timelines\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"时间线\"])},\n \"bookmarks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"书签\"])},\n \"home_timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"主页时间线\"])},\n \"lists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"列表\"])},\n \"edit_finish\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"完成编辑\"])},\n \"mobile_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"打开通知(有未读的)\"])},\n \"mobile_notifications_close\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关闭通知\"])},\n \"announcements\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"公告\"])},\n \"edit_nav_mobile\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"自定义导航栏\"])},\n \"edit_pinned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"编辑固定的项目\"])},\n \"mobile_sidebar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"切换移动设备侧栏\"])},\n \"search_close\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关闭搜索栏\"])}\n },\n \"notifications\": {\n \"broken_favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"未知的状态,正在搜索中…\"])},\n \"favorited_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"喜欢了你的状态\"])},\n \"followed_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关注了你\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"加载更早的通知\"])},\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"通知\"])},\n \"read\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已阅!\"])},\n \"repeated_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"转发了你的状态\"])},\n \"no_more_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"没有更多的通知\"])},\n \"reacted_with\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"作出了 \", _interpolate(_list(0)), \" 的反应\"])},\n \"migrated_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"迁移到了\"])},\n \"follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"想要关注你\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"取得通知时发生错误:\", _interpolate(_list(0))])},\n \"poll_ended\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"投票结束了\"])},\n \"submitted_report\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提交举报\"])}\n },\n \"polls\": {\n \"add_poll\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"增加投票\"])},\n \"add_option\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"增加选项\"])},\n \"option\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"选项\"])},\n \"votes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"投票\"])},\n \"vote\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"投票\"])},\n \"type\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"投票类型\"])},\n \"single_choice\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"单选\"])},\n \"multiple_choices\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"多选\"])},\n \"expiry\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"投票期限\"])},\n \"expires_in\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"投票于 \", _interpolate(_list(0)), \" 后结束\"])},\n \"expired\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"投票 \", _interpolate(_list(0)), \" 前已结束\"])},\n \"not_enough_options\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"投票的选项太少\"])},\n \"votes_count\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"count\")), \" 票\"]), _normalize([_interpolate(_named(\"count\")), \" 票\"])])},\n \"people_voted_count\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([_interpolate(_named(\"count\")), \" 人已投票\"]), _normalize([_interpolate(_named(\"count\")), \" 人已投票\"])])}\n },\n \"stickers\": {\n \"add_sticker\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"添加贴纸\"])}\n },\n \"interactions\": {\n \"favs_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"转发和喜欢\"])},\n \"follows\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"新的关注者\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"加载更早的互动\"])},\n \"moves\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户迁移\"])},\n \"reports\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"举报\"])},\n \"emoji_reactions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"表情回应\"])}\n },\n \"post_status\": {\n \"new_status\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"发布新状态\"])},\n \"account_not_locked_warning\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"你的帐号没有 \", _interpolate(_list(0)), \"。任何人都可以关注你并浏览你的上锁内容。\"])},\n \"account_not_locked_warning_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"上锁\"])},\n \"attachments_sensitive\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"标记附件为敏感内容\"])},\n \"content_type\": {\n \"text/plain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"纯文本\"])},\n \"text/html\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"HTML\"])},\n \"text/markdown\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Markdown\"])},\n \"text/bbcode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"BBCode\"])}\n },\n \"content_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"主题(可选)\"])},\n \"default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"刚刚抵达上海。\"])},\n \"direct_warning_to_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本条内容只有被提及的用户能够看到。\"])},\n \"direct_warning_to_first_only\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本条内容只有被在消息开始处提及的用户能够看到。\"])},\n \"posting\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"发送中\"])},\n \"scope_notice\": {\n \"public\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本条内容可以被所有人看到\"])},\n \"private\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关注你的人才能看到本条内容\"])},\n \"unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本条内容既不在公共时间线,也不会在所有已知网络上可见\"])}\n },\n \"scope\": {\n \"direct\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"私信 - 只发送给被提及的用户\"])},\n \"private\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"仅关注者 - 只有关注了你的人能看到\"])},\n \"public\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"公共 - 发送到公共时间轴\"])},\n \"unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不公开 - 不会发送到公共时间轴\"])}\n },\n \"preview_empty\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"空的\"])},\n \"preview\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"预览\"])},\n \"media_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"媒体描述\"])},\n \"media_description_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"更新媒体失败,请重试\"])},\n \"empty_status_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不能发布没有内容、没有附件的发文\"])},\n \"post\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"发送\"])},\n \"edit_remote_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"其它远程实例可能不支持编辑并且无法接收您的帖子的最新版本。\"])},\n \"edit_unsupported_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pleroma 不支持对提及或投票进行编辑。\"])},\n \"edit_status\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"编辑状态\"])},\n \"content_type_selection\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"发帖格式\"])},\n \"scope_notice_dismiss\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关闭此提示\"])}\n },\n \"registration\": {\n \"bio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"简介\"])},\n \"email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"电子邮箱\"])},\n \"fullname\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示名称\"])},\n \"password_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"确认密码\"])},\n \"registration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"注册\"])},\n \"token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"邀请码\"])},\n \"captcha\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"CAPTCHA\"])},\n \"new_captcha\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"点击图片获取新的验证码\"])},\n \"username_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"例如:lain\"])},\n \"fullname_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"例如:岩仓玲音\"])},\n \"bio_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"例如:\\n你好,我是玲音。\\n我是一个住在日本郊区的动画少女。你可能在 Wired 见过我。\"])},\n \"validations\": {\n \"username_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不能留空\"])},\n \"fullname_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不能留空\"])},\n \"email_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不能留空\"])},\n \"password_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不能留空\"])},\n \"password_confirmation_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不能留空\"])},\n \"password_confirmation_match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"密码不一致\"])},\n \"birthday_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不能为空\"])},\n \"birthday_min_age\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"必须在 \", _interpolate(_named(\"date\")), \" 或之前\"])}\n },\n \"reason_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"此实例的注册需要手动批准。\\n请让管理员知道您为什么想要注册。\"])},\n \"reason\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"注册理由\"])},\n \"register\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"注册\"])},\n \"email_language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"你想从服务器收到什么语言的邮件?\"])},\n \"bio_optional\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"介绍(可选)\"])},\n \"email_optional\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"电子邮件(可选)\"])},\n \"birthday\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"生日:\"])},\n \"birthday_optional\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"生日(可选):\"])}\n },\n \"selectable_list\": {\n \"select_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"选择全部\"])}\n },\n \"settings\": {\n \"app_name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"App 名称\"])},\n \"security\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"安全\"])},\n \"enter_current_password_to_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"输入您当前的密码来确认您的身份\"])},\n \"mfa\": {\n \"otp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OTP\"])},\n \"setup_otp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"设置 OTP\"])},\n \"wait_pre_setup_otp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"预设 OTP\"])},\n \"confirm_and_enable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"确认并启用 OTP\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"双因素验证\"])},\n \"generate_new_recovery_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"生成新的恢复码\"])},\n \"warning_of_generate_new_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"当您生成新的恢复码时,您旧的恢复码将会失效。\"])},\n \"recovery_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"恢复码。\"])},\n \"waiting_a_recovery_codes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"正在接收备份码…\"])},\n \"recovery_codes_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"抄写这些号码,或者将其保存在安全的地方。这些号码不会再次显示。如果您无法访问您的 2FA app,也丢失了您的恢复码,您就再也无法登录您的账号了。\"])},\n \"authentication_methods\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"身份验证方法\"])},\n \"scan\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"扫一下\"])},\n \"desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"使用您的双因素验证 app,扫描这个二维码,或者输入这些文字密钥:\"])},\n \"secret_code\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"密钥\"])}\n },\n \"verify\": {\n \"desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"要启用双因素验证,请输入您的双因素验证 app 里的数字:\"])}\n }\n },\n \"attachmentRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"附件\"])},\n \"attachments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"附件\"])},\n \"avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"头像\"])},\n \"avatarAltRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"头像(通知)\"])},\n \"avatarRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"头像\"])},\n \"background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"背景\"])},\n \"bio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"简介\"])},\n \"block_export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"屏蔽名单导出\"])},\n \"block_export_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"导出你的屏蔽名单到一个 csv 文件\"])},\n \"block_import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"屏蔽名单导入\"])},\n \"block_import_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"导入屏蔽名单出错\"])},\n \"blocks_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"屏蔽名单导入成功!需要一点时间来处理。\"])},\n \"blocks_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"屏蔽\"])},\n \"btnRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"按钮\"])},\n \"cBlue\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"蓝色(回复,关注)\"])},\n \"cGreen\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"绿色(转发)\"])},\n \"cOrange\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"橙色(喜欢)\"])},\n \"cRed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"红色(取消)\"])},\n \"change_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"修改密码\"])},\n \"change_password_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"修改密码的时候出了点问题。\"])},\n \"changed_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"成功修改了密码!\"])},\n \"collapse_subject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"折叠带主题的内容\"])},\n \"composing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"撰写\"])},\n \"confirm_new_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"确认新密码\"])},\n \"current_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"当前头像\"])},\n \"current_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"当前密码\"])},\n \"current_profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您当前的横幅图片\"])},\n \"data_import_export_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"数据导入/导出\"])},\n \"default_vis\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"默认可见范围\"])},\n \"delete_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"删除账户\"])},\n \"delete_account_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"永久删除你的帐号和所有数据。\"])},\n \"delete_account_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"删除账户时发生错误,如果一直删除不了,请联系实例管理员。\"])},\n \"delete_account_instructions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在下面输入您的密码来确认删除账户。\"])},\n \"avatar_size_instruction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"推荐的头像图片最小尺寸为 150x150 像素。\"])},\n \"export_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"导出预置主题\"])},\n \"filtering\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"过滤器\"])},\n \"filtering_explanation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"所有包含以下词汇的内容都会被隐藏,一行一个\"])},\n \"follow_export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"导出关注\"])},\n \"follow_export_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"将关注导出成 csv 文件\"])},\n \"follow_import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"导入关注\"])},\n \"follow_import_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"导入关注时错误\"])},\n \"follows_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关注已导入!尚需要一些时间来处理。\"])},\n \"foreground\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"前景\"])},\n \"general\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"通用\"])},\n \"hide_attachments_in_convo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在对话中隐藏附件\"])},\n \"hide_attachments_in_tl\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在时间线上隐藏附件\"])},\n \"hide_muted_posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不显示被隐藏的用户的帖子\"])},\n \"max_thumbnails\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"每个帖子最多能显示的缩略图数量\"])},\n \"hide_isp\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏实例独有的面板\"])},\n \"preload_images\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"预载图片\"])},\n \"use_one_click_nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"点击一次以打开工作场所不适宜(NSFW)的附件\"])},\n \"hide_post_stats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏帖子的统计数据(例如:喜欢的次数)\"])},\n \"hide_user_stats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏用户的统计数据(例如:关注者的数量)\"])},\n \"hide_filtered_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏过滤的状态\"])},\n \"import_blocks_from_a_csv_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"从 csv 文件中导入拉黑名单\"])},\n \"import_followers_from_a_csv_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"从 csv 文件中导入关注\"])},\n \"import_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"导入预置主题\"])},\n \"inputRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"输入框\"])},\n \"checkboxRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"复选框\"])},\n \"instance_default\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"(默认:\", _interpolate(_named(\"value\")), \")\"])},\n \"instance_default_simple\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(默认)\"])},\n \"interface\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"界面\"])},\n \"interfaceLanguage\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"界面语言\"])},\n \"invalid_theme_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您所选择的主题文件不被 Pleroma 支持,因此主题未被修改。\"])},\n \"limited_availability\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在您的浏览器中无法使用\"])},\n \"links\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"链接\"])},\n \"lock_account_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您需要手动审核关注请求\"])},\n \"loop_video\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"循环视频\"])},\n \"loop_video_silent_only\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"只循环没有声音的视频(例如:Mastodon 里的“GIF”)\"])},\n \"mutes_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏\"])},\n \"play_videos_in_modal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在弹出框内播放视频\"])},\n \"use_contain_fit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"生成缩略图时不要裁剪附件\"])},\n \"name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"名字\"])},\n \"name_bio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"名字及简介\"])},\n \"new_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"新密码\"])},\n \"notification_visibility\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"要显示的通知类型\"])},\n \"notification_visibility_follows\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关注\"])},\n \"notification_visibility_likes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"喜欢\"])},\n \"notification_visibility_mentions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提及\"])},\n \"notification_visibility_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"转发\"])},\n \"no_rich_text_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不显示富文本格式\"])},\n \"no_blocks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"没有屏蔽\"])},\n \"no_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"没有隐藏\"])},\n \"hide_follows_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不要显示我所关注的人\"])},\n \"hide_followers_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不要显示关注我的人\"])},\n \"show_admin_badge\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在我的个人资料中显示“管理员”徽章\"])},\n \"show_moderator_badge\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在我的个人资料中显示“监察员”徽章\"])},\n \"nsfw_clickthrough\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"将不和谐附件和链接预览隐藏,点击才会显示\"])},\n \"oauth_tokens\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OAuth令牌\"])},\n \"token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"令牌\"])},\n \"refresh_token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"刷新令牌\"])},\n \"valid_until\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"有效期至\"])},\n \"revoke_token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"撤消\"])},\n \"panelRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"面板\"])},\n \"pause_on_unfocused\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在离开页面时暂停时间线推送\"])},\n \"presets\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"预置\"])},\n \"profile_background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"个人背景图\"])},\n \"profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"横幅图片\"])},\n \"profile_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"个人资料\"])},\n \"radii_help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"设置界面边缘的圆角 (单位:像素)\"])},\n \"replies_in_timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"时间线中的回复\"])},\n \"reply_visibility_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示所有回复\"])},\n \"reply_visibility_following\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"只显示发送给我的回复/发送给我关注的用户的回复\"])},\n \"reply_visibility_self\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"只显示发送给我的回复\"])},\n \"autohide_floating_post_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"自动隐藏新帖子的按钮(移动设备)\"])},\n \"saving_err\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保存设置时发生错误\"])},\n \"saving_ok\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"设置已保存\"])},\n \"search_user_to_block\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"搜索你想屏蔽的用户\"])},\n \"search_user_to_mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"搜索你想要隐藏的用户\"])},\n \"security_tab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"安全\"])},\n \"scope_copy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"回复时复制可见范围(私信中永远会复制)\"])},\n \"minimal_scopes_mode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"使发文可见范围的选项最少化\"])},\n \"set_new_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"设置新头像\"])},\n \"set_new_profile_background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"设置新的个人资料背景\"])},\n \"set_new_profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"设置新的横幅图片\"])},\n \"settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"设置\"])},\n \"subject_input_always_show\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"总是显示主题框\"])},\n \"subject_line_behavior\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"回复时复制主题\"])},\n \"subject_line_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"类似电子邮件: \\\"re: 主题\\\"\"])},\n \"subject_line_mastodon\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"类似 mastodon: 与原主题相同\"])},\n \"subject_line_noop\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不要复制\"])},\n \"post_status_content_type\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"发文状态内容类型\"])},\n \"stop_gifs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"鼠标悬停时播放GIF\"])},\n \"streaming\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"滚动到顶部时自动推送新内容\"])},\n \"text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"文本\"])},\n \"theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"主题\"])},\n \"theme_help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"使用十六进制代码(#rrggbb)来设置主题颜色。\"])},\n \"theme_help_v2_1\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您也可以通过选中复选框来覆盖某些组件的颜色和透明度。使用“清除所有”按钮来清除所有覆盖设置。\"])},\n \"theme_help_v2_2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"某些条目下的图标是背景或文本对比指示器,鼠标悬停可以获取详细信息。请记住,使用透明度来显示最差的情况。\"])},\n \"tooltipRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提醒\"])},\n \"upload_a_photo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"上传照片\"])},\n \"user_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户设置\"])},\n \"values\": {\n \"false\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"否\"])},\n \"true\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"是\"])}\n },\n \"notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"通知\"])},\n \"notification_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"要停止收到某个指定的用户的通知,请使用隐藏功能。\"])},\n \"notification_blocks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"屏蔽一个用户会停止接收来自该用户的所有通知,并且会取消对该用户的关注。\"])},\n \"enable_web_push_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"启用 web 推送通知\"])},\n \"style\": {\n \"switcher\": {\n \"keep_color\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保留颜色\"])},\n \"keep_shadows\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保留阴影\"])},\n \"keep_opacity\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保留透明度\"])},\n \"keep_roundness\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保留圆角\"])},\n \"keep_fonts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保留字体\"])},\n \"save_load_hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"\\\"保留\\\" 选项在选择或加载主题时保留当前设置的选项,在导出主题时还会存储上述选项。当所有复选框未设置时,导出主题将保存所有内容。\"])},\n \"reset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"重置\"])},\n \"clear_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"清除全部\"])},\n \"clear_opacity\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"清除透明度\"])},\n \"load_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"加载主题\"])},\n \"help\": {\n \"upgraded_from_v2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"PleromaFE 已升级,主题会与您记忆中的不太一样。\"])},\n \"older_version_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您导入的文件来自旧版本的 FE。\"])},\n \"future_version_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您导入的文件来自更高版本的 FE。\"])},\n \"v2_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您导入的文件是旧版 FE 的。我们尽可能保持兼容性,但还是可能出现不一致的情况。\"])},\n \"snapshot_source_mismatch\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"版本冲突:很有可能是 FE 版本回滚后再次升级了,如果您使用旧版本的 FE 更改了主题那么您可能需要使用旧版本,否则请使用新版本。\"])},\n \"migration_napshot_gone\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不知出于何种原因,主题快照缺失了,一些地方可能与您印象中的不符。\"])},\n \"migration_snapshot_ok\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"为保万无一失,加载了主题快照。您可以试着加载主题数据。\"])},\n \"fe_downgraded\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"PleromaFE 的版本回滚了。\"])},\n \"fe_upgraded\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"PleromaFE 的主题引擎随着版本更新升级了。\"])},\n \"snapshot_missing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在文件中没有主题快照,所以网站外观可能会与原来预想的不同。\"])},\n \"snapshot_present\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"主题快照已加载,因此所有的值均被覆盖。您可以改为加载主题的实际数据。\"])}\n },\n \"use_source\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"新版本\"])},\n \"use_snapshot\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"老版本\"])},\n \"keep_as_is\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保持原状\"])}\n },\n \"common\": {\n \"color\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"颜色\"])},\n \"opacity\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"透明度\"])},\n \"contrast\": {\n \"hint\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"对比度是 \", _interpolate(_named(\"ratio\")), \", 它 \", _interpolate(_named(\"level\")), \" \", _interpolate(_named(\"context\"))])},\n \"level\": {\n \"aa\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"符合 AA 等级准则(最低)\"])},\n \"aaa\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"符合 AAA 等级准则(推荐)\"])},\n \"bad\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不符合任何辅助功能指南\"])}\n },\n \"context\": {\n \"18pt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"大字文本 (18pt+)\"])},\n \"text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"文本\"])}\n }\n }\n },\n \"common_colors\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"常规\"])},\n \"main\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"常用颜色\"])},\n \"foreground_hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"点击”高级“ 标签进行细致的控制\"])},\n \"rgbo\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"图标,强调,徽章\"])}\n },\n \"advanced_colors\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"高级\"])},\n \"alert\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提醒或警告背景色\"])},\n \"alert_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"错误\"])},\n \"badge\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"徽章背景\"])},\n \"badge_notification\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"通知\"])},\n \"panel_header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"面板标题\"])},\n \"top_bar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"顶栏\"])},\n \"borders\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"边框\"])},\n \"buttons\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"按钮\"])},\n \"inputs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"输入框\"])},\n \"faint_text\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"灰度文字\"])},\n \"chat\": {\n \"border\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"边框\"])},\n \"outgoing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"发出的\"])},\n \"incoming\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"收到的\"])}\n },\n \"disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"禁用的\"])},\n \"pressed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"压下的\"])},\n \"highlight\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"强调元素\"])},\n \"selectedMenu\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"选中的菜单项\"])},\n \"selectedPost\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"选中的发布内容\"])},\n \"icons\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"图标\"])},\n \"poll\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"投票统计图\"])},\n \"popover\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提示框,菜单,弹出框\"])},\n \"post\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"发布内容/用户简介\"])},\n \"alert_neutral\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"中性\"])},\n \"alert_warning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"警告\"])},\n \"tabs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"标签页\"])},\n \"underlay\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"底衬\"])},\n \"toggled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"按下的\"])},\n \"wallpaper\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"壁纸\"])}\n },\n \"radii\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"圆角\"])}\n },\n \"shadows\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"阴影和照明\"])},\n \"component\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"组件\"])},\n \"override\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"覆盖\"])},\n \"shadow_id\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"阴影 #\", _interpolate(_named(\"value\"))])},\n \"blur\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"模糊\"])},\n \"spread\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"扩散\"])},\n \"inset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"内阴影\"])},\n \"hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"对于阴影你还可以使用 --variable 作为颜色值来使用 CSS3 变量。请注意,这种情况下,透明设置将不起作用。\"])},\n \"filter_hint\": {\n \"always_drop_shadow\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"警告,此阴影设置会总是使用 \", _interpolate(_list(0)), \" ,如果浏览器支持的话。\"])},\n \"drop_shadow_syntax\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 不支持参数 \", _interpolate(_list(1)), \" 和关键词 \", _interpolate(_list(2)), \" 。\"])},\n \"avatar_inset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"请注意组合两个内部和非内部的阴影到头像上,在透明头像上可能会有意料之外的效果。\"])},\n \"spread_zero\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"阴影的扩散 > 0 会同设置成零一样\"])},\n \"inset_classic\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"内阴影会使用 \", _interpolate(_list(0))])}\n },\n \"components\": {\n \"panel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"面板\"])},\n \"panelHeader\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"面板标题\"])},\n \"topBar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"顶栏\"])},\n \"avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户头像(在个人资料栏)\"])},\n \"avatarStatus\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户头像(在帖子显示栏)\"])},\n \"popup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"弹窗与工具提示\"])},\n \"button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"按钮\"])},\n \"buttonHover\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"按钮(悬停)\"])},\n \"buttonPressed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"按钮(压下)\"])},\n \"buttonPressedHover\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"按钮(压下和悬停)\"])},\n \"input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"输入框\"])}\n },\n \"hintV3\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"对于阴影,您还可以使用 \", _interpolate(_list(0)), \" 表示法来使用其它颜色插槽。\"])}\n },\n \"fonts\": {\n \"_tab_label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"字体\"])},\n \"help\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"为用户界面的元素选择字体。若选择 “自选”,您必须输入与系统显示完全一致的字体名称。\"])},\n \"components\": {\n \"interface\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"界面\"])},\n \"input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"输入框\"])},\n \"post\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"发帖文字\"])},\n \"postCode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"帖子中使用等间距文字(富文本)\"])}\n },\n \"family\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"字体名称\"])},\n \"size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"大小 (in px)\"])},\n \"weight\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"字重 (粗体)\"])},\n \"custom\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"自选\"])}\n },\n \"preview\": {\n \"header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"预览\"])},\n \"content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"内容\"])},\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"错误示例\"])},\n \"button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"按钮\"])},\n \"text\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"有堆 \", _interpolate(_list(0)), \" 和 \", _interpolate(_list(1))])},\n \"mono\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"monospace 内容\"])},\n \"input\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"刚刚抵达上海。\"])},\n \"faint_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"帮助手册\"])},\n \"fine_print\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"阅读我们的 \", _interpolate(_list(0)), \" ,然而什么也学不到!\"])},\n \"header_faint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"这很正常\"])},\n \"checkbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"我已经浏览了条款及细则\"])},\n \"link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"一个棒棒的小小链接\"])}\n }\n },\n \"version\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"版本\"])},\n \"backend_version\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"后端版本\"])},\n \"frontend_version\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"前端版本\"])}\n },\n \"notification_setting_filters\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"过滤器\"])},\n \"domain_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"域名\"])},\n \"changed_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"邮箱修改成功!\"])},\n \"change_email_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"修改您的电子邮箱时发生错误。\"])},\n \"change_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"修改电子邮箱\"])},\n \"allow_following_move\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"正在关注的账号迁移时自动重新关注\"])},\n \"notification_setting_privacy_option\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在通知推送中隐藏发送者和内容\"])},\n \"notification_setting_privacy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐私\"])},\n \"hide_follows_count_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不显示关注数\"])},\n \"notification_visibility_emoji_reactions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"互动\"])},\n \"notification_visibility_moves\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户迁移\"])},\n \"new_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"新邮箱\"])},\n \"emoji_reactions_on_timeline\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在时间线上显示表情符号互动\"])},\n \"notification_setting_hide_notification_contents\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏推送通知中的发送者与内容信息\"])},\n \"notification_setting_block_from_strangers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"屏蔽来自你没有关注的用户的通知\"])},\n \"type_domains_to_mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"搜索需要隐藏的域名\"])},\n \"useStreamingApi\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"实时接收帖子和通知\"])},\n \"user_mutes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户\"])},\n \"reset_background_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您确定要重置背景图吗?\"])},\n \"reset_banner_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您确定要重置横幅图片吗?\"])},\n \"reset_avatar_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您确定要重置头像吗?\"])},\n \"reset_profile_banner\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"重置横幅图片\"])},\n \"reset_profile_background\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"重置个人背景图\"])},\n \"reset_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"重置头像\"])},\n \"hide_followers_count_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不显示关注者数量\"])},\n \"profile_fields\": {\n \"value\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"内容\"])},\n \"name\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"标签\"])},\n \"add_field\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"添加字段\"])},\n \"label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"个人资料元数据\"])}\n },\n \"accent\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"强调色\"])},\n \"pad_emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"从表情符号选择器插入表情符号时,在表情两侧插入空格\"])},\n \"discoverable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"允许通过搜索检索等服务找到此账号\"])},\n \"mutes_and_blocks\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏与屏蔽\"])},\n \"bot\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"这是一个机器人账号\"])},\n \"fun\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"趣味\"])},\n \"useStreamingApiWarning\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(不推荐使用,试验性,已知会跳过一些帖子)\"])},\n \"chatMessageRadius\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"聊天消息\"])},\n \"greentext\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Meme 箭头\"])},\n \"virtual_scrolling\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"优化时间线渲染\"])},\n \"import_mutes_from_a_csv_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"从 csv 文件导入隐藏名单\"])},\n \"mutes_imported\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏名单导入成功!处理它们将需要一段时间。\"])},\n \"mute_import_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"导入隐藏名单出错\"])},\n \"mute_import\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏名单导入\"])},\n \"mute_export_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"导出你的隐藏名单到一个 csv 文件\"])},\n \"mute_export\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏名单导出\"])},\n \"hide_wallpaper\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏实例壁纸\"])},\n \"setting_changed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"与默认设置不同\"])},\n \"more_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"更多设置\"])},\n \"sensitive_by_default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"默认标记发文为敏感内容\"])},\n \"reply_visibility_self_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"只显示对我本人的回复\"])},\n \"reply_visibility_following_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示对我关注的人的回复\"])},\n \"hide_all_muted_posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不显示已隐藏的发文\"])},\n \"hide_media_previews\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏媒体预览\"])},\n \"word_filter\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"词语过滤\"])},\n \"save\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保存更改\"])},\n \"file_export_import\": {\n \"errors\": {\n \"file_slightly_new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"文件的小版本不同,有些设置可能无法加载\"])},\n \"file_too_old\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"不兼容的主版本:\", _interpolate(_named(\"fileMajor\")), \",文件版本过旧,不受支持(最小设置版本 \", _interpolate(_named(\"feMajor\")), \")\"])},\n \"file_too_new\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"不兼容的主版本:\", _interpolate(_named(\"fileMajor\")), \",此 PleromaFE(设置版本 \", _interpolate(_named(\"feMajor\")), \")过旧,无法处理\"])},\n \"invalid_file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"所选文件不是受支持的 Pleroma 设置备份。没有进行任何更改。\"])}\n },\n \"restore_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"从文件恢复设置\"])},\n \"backup_settings_theme\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"备份设置和主题到文件\"])},\n \"backup_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"备份设置到文件\"])},\n \"backup_restore\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"设置备份\"])}\n },\n \"right_sidebar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"反转分栏的顺序\"])},\n \"hide_shoutbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏实例留言板\"])},\n \"expert_mode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示高级\"])},\n \"download_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"下载\"])},\n \"mention_links\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提及链接\"])},\n \"account_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"账号备份\"])},\n \"account_backup_table_head\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"备份\"])},\n \"remove_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"移除\"])},\n \"list_backups_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"获取备份列表出错:\", _interpolate(_named(\"error\"))])},\n \"add_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"创建一个新备份\"])},\n \"added_backup\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"创建了一个新备份。\"])},\n \"account_alias\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"账号别名\"])},\n \"account_alias_table_head\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"别名\"])},\n \"list_aliases_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"获取别名时出错:\", _interpolate(_named(\"error\"))])},\n \"hide_list_aliases_error_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关闭\"])},\n \"remove_alias\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"移除这个别名\"])},\n \"new_alias_target\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"添加一个新别名(例如 \", _interpolate(_named(\"example\")), \")\"])},\n \"added_alias\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"别名添加好了。\"])},\n \"move_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"移动账号\"])},\n \"move_account_target\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"目标账号(例如 \", _interpolate(_named(\"example\")), \")\"])},\n \"moved_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"账号移动好了。\"])},\n \"move_account_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"移动账号时出错:\", _interpolate(_named(\"error\"))])},\n \"setting_server_side\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"这个设置是捆绑到你的个人资料的,能影响所有会话和客户端\"])},\n \"post_look_feel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"文章的样子跟感受\"])},\n \"email_language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"从服务器收邮件的语言\"])},\n \"account_backup_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"这个允许你下载一份账号信息和文章的存档,但是现在还不能导入到 Pleroma 账号里。\"])},\n \"backup_not_ready\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"备份还没准备好。\"])},\n \"add_backup_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"添加新备份时出错:\", _interpolate(_named(\"error\"))])},\n \"add_alias_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"添加别名时出错:\", _interpolate(_named(\"error\"))])},\n \"move_account_notes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"如果你想把账号移动到别的地方,你必须去目标账号,然后加一个指向这里的别名。\"])},\n \"wordfilter\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"词语过滤器\"])},\n \"user_profiles\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户资料\"])},\n \"third_column_mode_notifications\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"通知栏\"])},\n \"backup_running\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named, plural: _plural } = ctx;return _plural([_normalize([\"此备份正在进行,已处理 \", _interpolate(_named(\"number\")), \" 条记录。\"]), _normalize([\"此备份正在进行,已处理 \", _interpolate(_named(\"number\")), \" 条记录。\"])])},\n \"lists_navigation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在导航中显示列表\"])},\n \"word_filter_and_more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"词过滤器及其它...\"])},\n \"backup_failed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"此备份已失败。\"])},\n \"birthday\": {\n \"label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"生日\"])},\n \"show_birthday\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"展示我的生日\"])}\n },\n \"hide_favorites_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不显示我的喜欢列表(人们仍然会收到通知)\"])},\n \"third_column_mode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"当有足够的空间时,显示第三栏包含\"])},\n \"third_column_mode_postform\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"主要的发文形式和导航\"])},\n \"columns\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"分栏\"])},\n \"user_popover_avatar_overlay\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在用户头像上显示用户弹出窗口\"])},\n \"navbar_column_stretch\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"延伸导航栏至分栏宽度\"])},\n \"posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"帖子\"])},\n \"conversation_display_linear_quick\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"线性视图\"])},\n \"conversation_other_replies_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示 “其它回复” 按钮\"])},\n \"confirm_dialogs_delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"删除状态\"])},\n \"confirm_dialogs_mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏用户\"])},\n \"column_sizes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"分栏大小\"])},\n \"column_sizes_sidebar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"侧栏\"])},\n \"column_sizes_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"內容\"])},\n \"column_sizes_notifs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"通知\"])},\n \"conversation_other_replies_button_below\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在状态下方\"])},\n \"conversation_other_replies_button_inside\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在状态中\"])},\n \"auto_update\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"自动显示新的帖子\"])},\n \"use_websockets\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"使用 websockets(实时更新)\"])},\n \"max_depth_in_thread\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"默认显示同主题帖子中的最大层数\"])},\n \"hide_wordfiltered_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏经过词语过滤的状态\"])},\n \"hide_muted_threads\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不显示已隐藏的同主题帖子\"])},\n \"notification_visibility_polls\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"你所投的投票的结束于\"])},\n \"tree_advanced\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"允许在树状视图中进行更灵活的导航\"])},\n \"tree_fade_ancestors\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"以模糊的文字显示当前状态的上级\"])},\n \"conversation_display_linear\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"线性样式\"])},\n \"mention_link_fade_domain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"淡化域名(例如:\", \"@\", \"example.org 中的 \", \"@\", \"foo\", \"@\", \"example.org)\"])},\n \"mention_link_bolden_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"当你被提及时突出显示提及你\"])},\n \"user_popover_avatar_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"弹出式头像点击动作\"])},\n \"user_popover_avatar_action_zoom\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"缩放头像\"])},\n \"user_popover_avatar_action_close\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关闭弹出窗口\"])},\n \"show_yous\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示 (You)s\"])},\n \"add_language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"添加备用语言\"])},\n \"remove_language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"移除\"])},\n \"primary_language\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"主要语言:\"])},\n \"fallback_language\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"备用语言 \", _interpolate(_named(\"index\")), \":\"])},\n \"account_privacy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐私\"])},\n \"conversation_display\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"对话显示样式\"])},\n \"conversation_display_tree\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"树状样式\"])},\n \"conversation_display_tree_quick\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"树状视图\"])},\n \"disable_sticky_headers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不要把分栏的顶栏固定在屏幕的顶部\"])},\n \"confirm_dialogs\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"请求确认于\"])},\n \"confirm_dialogs_logout\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"登出\"])},\n \"confirm_dialogs_deny_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"拒绝关注请求\"])},\n \"confirm_dialogs_approve_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"批准关注请求\"])},\n \"confirm_dialogs_block\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"屏蔽用户\"])},\n \"confirm_dialogs_unfollow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消关注用户\"])},\n \"confirm_dialogs_repeat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"转发状态\"])},\n \"confirm_dialogs_remove_follower\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"移除关注者\"])},\n \"mute_bot_posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏机器人的帖子\"])},\n \"hide_bot_indication\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏帖子中的机器人提示\"])},\n \"always_show_post_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"始终显示浮动的新帖子按钮\"])},\n \"show_scrollbars\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示侧栏的滚动条\"])},\n \"third_column_mode_none\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"完全不显示第三栏\"])},\n \"use_at_icon\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"将 \", \"@\", \" 符号显示为图标而不是文本\"])},\n \"mention_link_display\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示提及链接\"])},\n \"mention_link_display_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"始终以简称的形式出现(例如:\", \"@\", \"foo)\"])},\n \"mention_link_display_full_for_remote\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"仅远程实例用户以全名的形式出现(例如:\", \"@\", \"foo\", \"@\", \"example.org)\"])},\n \"mention_link_display_full\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"始终以全名的形式出现(例如:\", \"@\", \"foo\", \"@\", \"example.org)\"])},\n \"mention_link_use_tooltip\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"点击提及链接时显示用户卡片\"])},\n \"mention_link_show_avatar\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在链接旁边显示用户头像\"])},\n \"mention_link_show_avatar_quick\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在提及内容旁边显示用户头像\"])},\n \"user_popover_avatar_action_open\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"打开个人资料\"])},\n \"autocomplete_select_first\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"当有自动完成的结果时,自动选择第一个候选项\"])},\n \"url\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"URL\"])},\n \"preview\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"预览\"])},\n \"commit_value\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保存\"])},\n \"commit_value_tooltip\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"当前值未保存,请按此按钮以提交你的修改\"])},\n \"reset_value\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"重置\"])},\n \"reset_value_tooltip\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"重置草稿\"])},\n \"hard_reset_value\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"硬重置\"])},\n \"hard_reset_value_tooltip\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"从存储中移除设置,强制使用默认值\"])},\n \"emoji_reactions_scale\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"表情回应比例系数\"])}\n },\n \"time\": {\n \"day\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 天\"])},\n \"days\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 天\"])},\n \"day_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"d\"])},\n \"days_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"d\"])},\n \"hour\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 小时\"])},\n \"hours\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 小时\"])},\n \"hour_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"h\"])},\n \"hours_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"h\"])},\n \"in_future\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"还有 \", _interpolate(_list(0))])},\n \"in_past\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 之前\"])},\n \"minute\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 分钟\"])},\n \"minutes\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 分钟\"])},\n \"minute_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"min\"])},\n \"minutes_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"min\"])},\n \"month\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 月\"])},\n \"months\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 月\"])},\n \"month_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"mo\"])},\n \"months_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"mo\"])},\n \"now\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"刚刚\"])},\n \"now_short\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"刚刚\"])},\n \"second\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 秒\"])},\n \"seconds\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 秒\"])},\n \"second_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"s\"])},\n \"seconds_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"s\"])},\n \"week\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 周\"])},\n \"weeks\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 周\"])},\n \"week_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"w\"])},\n \"weeks_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"w\"])},\n \"year\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 年\"])},\n \"years\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 年\"])},\n \"year_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"y\"])},\n \"years_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \"y\"])},\n \"unit\": {\n \"days_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 天\"])},\n \"hours\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 小时\"])},\n \"hours_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 时\"])},\n \"minutes\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 分\"])},\n \"minutes_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 分\"])},\n \"months\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 个月\"])},\n \"months_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 月\"])},\n \"seconds\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 秒\"])},\n \"seconds_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 秒\"])},\n \"weeks_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 周\"])},\n \"years\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 年\"])},\n \"years_short\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 年\"])},\n \"weeks\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 周\"])},\n \"days\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" 天\"])}\n }\n },\n \"timeline\": {\n \"collapse\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"折叠\"])},\n \"conversation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"对话\"])},\n \"error_fetching\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"获取更新时发生错误\"])},\n \"load_older\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"加载更早的状态\"])},\n \"no_retweet_hint\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"这条内容仅关注者可见,或者是私信,因此不能转发\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"转发了\"])},\n \"show_new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示新内容\"])},\n \"up_to_date\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已是最新\"])},\n \"no_more_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"没有更多的状态\"])},\n \"no_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"没有状态更新\"])},\n \"reload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"重新载入\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"取得时间轴时发生错误:\", _interpolate(_list(0))])},\n \"socket_broke\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"丢失实时连接:CloseEvent code \", _interpolate(_list(0))])},\n \"socket_reconnected\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已建立实时连接\"])},\n \"quick_view_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"快速视图设置\"])},\n \"quick_filter_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"快速过滤设置\"])}\n },\n \"status\": {\n \"favorites\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"喜欢\"])},\n \"repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"转发\"])},\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"删除状态\"])},\n \"pin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在个人资料置顶\"])},\n \"unpin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消在个人资料置顶\"])},\n \"pinned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"置顶\"])},\n \"delete_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您确定要删除这条状态吗?\"])},\n \"reply_to\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"回复\"])},\n \"replies_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"回复:\"])},\n \"mute_conversation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏对话\"])},\n \"unmute_conversation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"对话取消隐藏\"])},\n \"hide_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏内容\"])},\n \"show_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示内容\"])},\n \"hide_full_subject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏此部分标题\"])},\n \"show_full_subject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示全部标题\"])},\n \"thread_muted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"同主题帖子已被隐藏\"])},\n \"copy_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"复制状态链接\"])},\n \"status_unavailable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"状态不可取得\"])},\n \"unbookmark\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消书签\"])},\n \"bookmark\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"书签\"])},\n \"thread_muted_and_words\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\",含有过滤词:\"])},\n \"status_deleted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"该状态已被删除\"])},\n \"nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NSFW\"])},\n \"external_source\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"外部来源\"])},\n \"expand\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"展开\"])},\n \"you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(你)\"])},\n \"plus_more\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"还有 \", _interpolate(_named(\"number\")), \" 个\"])},\n \"many_attachments\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"文章有 \", _interpolate(_named(\"number\")), \" 个附件\"])},\n \"collapse_attachments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"折起附件\"])},\n \"show_all_attachments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示所有附件\"])},\n \"show_attachment_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"预览描述(打开附件能看完整描述)\"])},\n \"hide_attachment\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏附件\"])},\n \"remove_attachment\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"移除附件\"])},\n \"attachment_stop_flash\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"停止 Flash 播放器\"])},\n \"move_up\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"把附件左移\"])},\n \"open_gallery\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"打开图库\"])},\n \"thread_hide\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏这个同主题帖子\"])},\n \"thread_show\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示这个同主题帖子\"])},\n \"thread_show_full_with_icon\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"icon\")), \" \", _interpolate(_named(\"text\"))])},\n \"thread_follow\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"查看这个同主题帖子的剩余部分(一共有 \", _interpolate(_named(\"numStatus\")), \" 个状态)\"])},\n \"thread_follow_with_icon\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"icon\")), \" \", _interpolate(_named(\"text\"))])},\n \"ancestor_follow\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"查看这个状态下的别的 \", _interpolate(_named(\"numReplies\")), \" 个回复\"])},\n \"ancestor_follow_with_icon\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"icon\")), \" \", _interpolate(_named(\"text\"))])},\n \"show_all_conversation_with_icon\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"icon\")), \" \", _interpolate(_named(\"text\"))])},\n \"show_all_conversation\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"显示完整对话(还有 \", _interpolate(_named(\"numStatus\")), \" 个状态)\"])},\n \"mentions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提及\"])},\n \"replies_list_with_others\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"回复(另外 +\", _interpolate(_named(\"numReplies\")), \" 个):\"])},\n \"move_down\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"把附件右移\"])},\n \"thread_show_full\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"显示这个同主题帖子下的所有东西(一共有 \", _interpolate(_named(\"numStatus\")), \" 个状态,最大深度 \", _interpolate(_named(\"depth\")), \")\"])},\n \"show_only_conversation_under_this\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"只显示这个状态的回复\"])},\n \"repeat_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您确定要转发这条状态吗?\"])},\n \"repeat_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"确认转发\"])},\n \"repeat_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"转发\"])},\n \"repeat_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不要转发\"])},\n \"edit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"编辑状态\"])},\n \"edited_at\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"(最后编辑于 \", _interpolate(_named(\"time\")), \")\"])},\n \"delete_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"确认删除\"])},\n \"delete_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"删除\"])},\n \"delete_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保留\"])},\n \"show_attachment_in_modal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在媒体模式中显示\"])},\n \"status_history\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"状态历史\"])},\n \"delete_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"删除状态时出错:\", _interpolate(_list(0))])},\n \"reaction_count_label\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"num\")), \" 人作出了表情回应\"])}\n },\n \"user_card\": {\n \"approve\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"核准\"])},\n \"block\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"屏蔽\"])},\n \"blocked\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已屏蔽!\"])},\n \"deny\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"拒绝\"])},\n \"favorites\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"喜欢\"])},\n \"follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关注\"])},\n \"follow_sent\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"请求已发送!\"])},\n \"follow_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"请求中…\"])},\n \"follow_unfollow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消关注\"])},\n \"followees\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"正在关注\"])},\n \"followers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关注者\"])},\n \"following\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"正在关注!\"])},\n \"follows_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关注了你!\"])},\n \"its_you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"就是你!\"])},\n \"media\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"媒体\"])},\n \"mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏\"])},\n \"muted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已隐藏\"])},\n \"per_day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"每天\"])},\n \"remote_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"跨站关注\"])},\n \"report\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"报告\"])},\n \"statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"状态\"])},\n \"subscribe\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"订阅\"])},\n \"unsubscribe\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"退订\"])},\n \"unblock\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消屏蔽\"])},\n \"unblock_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"正在取消屏蔽…\"])},\n \"block_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"正在屏蔽…\"])},\n \"unmute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消隐藏\"])},\n \"unmute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消隐藏中…\"])},\n \"mute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏中…\"])},\n \"admin_menu\": {\n \"moderation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"仲裁\"])},\n \"grant_admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"赋予管理权限\"])},\n \"revoke_admin\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"撤销管理权限\"])},\n \"grant_moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"赋予监察员权限\"])},\n \"revoke_moderator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"撤销监察员权限\"])},\n \"activate_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"激活账号\"])},\n \"deactivate_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关闭账号\"])},\n \"delete_account\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"删除账号\"])},\n \"force_nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"标记所有的帖子都是 - 工作场合不适\"])},\n \"strip_media\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"从帖子里删除媒体文件\"])},\n \"force_unlisted\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"强制帖子为不公开\"])},\n \"sandbox\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"强制帖子为只有关注者可看\"])},\n \"disable_remote_subscription\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"禁止从远程实例关注用户\"])},\n \"disable_any_subscription\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"完全禁止关注用户\"])},\n \"quarantine\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"从联合实例中禁止用户帖子\"])},\n \"delete_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"删除用户\"])},\n \"delete_user_data_and_deactivate_confirmation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"这将永久删除该账户的数据并停用该账户。你完全确定吗?\"])}\n },\n \"hidden\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已隐藏\"])},\n \"show_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"显示转发\"])},\n \"hide_repeats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏转发\"])},\n \"message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"消息\"])},\n \"mention\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提及\"])},\n \"bot\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"机器人\"])},\n \"highlight\": {\n \"side\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"侧边条纹\"])},\n \"striped\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"条纹背景\"])},\n \"solid\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"单一颜色背景\"])},\n \"disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不突出显示\"])}\n },\n \"edit_profile\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"编辑个人资料\"])},\n \"approve_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"确认批准\"])},\n \"approve_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"批准\"])},\n \"block_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"屏蔽\"])},\n \"block_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不要屏蔽\"])},\n \"deactivated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已停用\"])},\n \"deny_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"确认拒绝\"])},\n \"deny_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"拒绝\"])},\n \"deny_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不要拒绝\"])},\n \"deny_confirm\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"您是否要拒绝 \", _interpolate(_named(\"user\")), \" 的关注请求?\"])},\n \"follow_cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消请求\"])},\n \"unfollow_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"确认取消关注\"])},\n \"unfollow_confirm\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"您确定要取消关注 \", _interpolate(_named(\"user\")), \" 吗?\"])},\n \"unfollow_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消关注\"])},\n \"unfollow_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不要取消关注\"])},\n \"mute_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"确认隐藏\"])},\n \"mute_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏\"])},\n \"mute_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不要隐藏\"])},\n \"mute_duration_prompt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"让这个用户隐藏(0表示无限期):\"])},\n \"remove_follower\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"移除关注者\"])},\n \"remove_follower_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"确认移除关注者\"])},\n \"remove_follower_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保留\"])},\n \"remove_follower_confirm\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"您确定要将 \", _interpolate(_named(\"user\")), \" 从您的关注者里移除吗?\"])},\n \"birthday\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"生于 \", _interpolate(_named(\"birthday\"))])},\n \"note\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"备注\"])},\n \"approve_confirm_cancel_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"不要批准\"])},\n \"approve_confirm\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"您是否要批准 \", _interpolate(_named(\"user\")), \" 的关注请求?\"])},\n \"block_confirm_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"确认屏蔽\"])},\n \"block_confirm\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"您确定要屏蔽 \", _interpolate(_named(\"user\")), \" 吗?\"])},\n \"mute_confirm\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"您确定要隐藏 \", _interpolate(_named(\"user\")), \" 吗?\"])},\n \"remove_follower_confirm_accept_button\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"移除\"])},\n \"note_blank\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(空)\"])},\n \"edit_note\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"编辑备注\"])},\n \"edit_note_apply\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"应用\"])},\n \"edit_note_cancel\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消\"])}\n },\n \"user_profile\": {\n \"timeline_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户时间线\"])},\n \"profile_does_not_exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"抱歉,此个人资料不存在。\"])},\n \"profile_loading_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"抱歉,载入个人资料时出错。\"])}\n },\n \"user_reporting\": {\n \"title\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"报告 \", _interpolate(_list(0))])},\n \"add_comment_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"此报告会发送给您的实例监察员。您可以在下面提供更多详细信息解释报告的缘由:\"])},\n \"additional_comments\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"其它信息\"])},\n \"forward_description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"这个账号来自另一个服务器。是否同时发送一份报告副本到那里?\"])},\n \"forward_to\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"转发 \", _interpolate(_list(0))])},\n \"submit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提交\"])},\n \"generic_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"当处理您的请求时,发生了一个错误。\"])}\n },\n \"who_to_follow\": {\n \"more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"更多\"])},\n \"who_to_follow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"推荐关注\"])}\n },\n \"tool_tip\": {\n \"media_upload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"上传媒体\"])},\n \"repeat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"转发\"])},\n \"reply\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"回复\"])},\n \"favorite\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"喜欢\"])},\n \"user_settings\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户设置\"])},\n \"reject_follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"拒绝关注请求\"])},\n \"add_reaction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"添加互动\"])},\n \"bookmark\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"书签\"])},\n \"accept_follow_request\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"接受关注请求\"])},\n \"toggle_expand\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"展开或折叠通知以显示帖子全文\"])},\n \"toggle_mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"展开或折叠通知以显示已隐藏的内容\"])},\n \"autocomplete_available\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"共有 \", _interpolate(_named(\"number\")), \" 个结果可用。使用向上和向下键浏览它们。\"])}\n },\n \"upload\": {\n \"error\": {\n \"base\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"上传不成功。\"])},\n \"file_too_big\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"文件太大了 [\", _interpolate(_named(\"filesize\")), _interpolate(_named(\"filesizeunit\")), \" / \", _interpolate(_named(\"allowedsize\")), _interpolate(_named(\"allowedsizeunit\")), \"]\"])},\n \"default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"迟些再试\"])},\n \"message\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"上传错误:\", _interpolate(_list(0))])}\n },\n \"file_size_units\": {\n \"B\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"B\"])},\n \"KiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"KiB\"])},\n \"MiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"MiB\"])},\n \"GiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"GiB\"])},\n \"TiB\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"TiB\"])}\n }\n },\n \"search\": {\n \"people\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"人\"])},\n \"hashtags\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"话题标签\"])},\n \"person_talking\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"count\")), \" 人正在讨论\"])},\n \"people_talking\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([_interpolate(_named(\"count\")), \" 人正在讨论\"])},\n \"no_results\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"没有搜索结果\"])},\n \"no_more_results\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"没有更多结果\"])},\n \"load_more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"加载更多结果\"])}\n },\n \"password_reset\": {\n \"forgot_password\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"忘记密码了?\"])},\n \"password_reset\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"重置密码\"])},\n \"instruction\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"输入您的电邮地址或者用户名,我们将发送一个链接到您的邮箱,用于重置密码。\"])},\n \"placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您的电邮地址或者用户名\"])},\n \"check_email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"检查您的邮箱,会有一个链接用于重置密码。\"])},\n \"return_home\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"回到首页\"])},\n \"too_many_requests\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您达到了尝试次数的上限,请稍后再试。\"])},\n \"password_reset_disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"密码重置已被禁用。请联系您的实例管理员。\"])},\n \"password_reset_required_but_mailer_is_disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您必须重置密码,但是密码重置被禁用了。请联系您所在实例的管理员。\"])},\n \"password_reset_required\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您必须重置密码才能登陆。\"])}\n },\n \"remote_user_resolver\": {\n \"error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"未找到。\"])},\n \"searching_for\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"搜索\"])},\n \"remote_user_resolver\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"远程用户解析器\"])}\n },\n \"emoji\": {\n \"keep_open\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"选择器保持打开\"])},\n \"stickers\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"贴纸\"])},\n \"unicode\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unicode 表情符号\"])},\n \"custom\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"自定义表情符号\"])},\n \"add_emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"插入表情符号\"])},\n \"search_emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"搜索表情符号\"])},\n \"emoji\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"表情符号\"])},\n \"load_all\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"加载所有表情符号(共 \", _interpolate(_named(\"emojiAmount\")), \" 个)\"])},\n \"load_all_hint\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"最先加载的 \", _interpolate(_named(\"saneAmount\")), \" 表情符号,加载全部表情符号可能会带来性能问题。\"])},\n \"unicode_groups\": {\n \"flags\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"旗帜\"])},\n \"food-and-drink\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"饮食\"])},\n \"objects\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"物件\"])},\n \"people-and-body\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"人和身体\"])},\n \"symbols\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"符号\"])},\n \"travel-and-places\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"旅行和地点\"])},\n \"activities\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"活动\"])},\n \"animals-and-nature\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"动物和自然\"])},\n \"smileys-and-emotion\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"表情与情感\"])}\n },\n \"regional_indicator\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"地区指示符 \", _interpolate(_named(\"letter\"))])},\n \"unpacked\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"未分组的表情符号\"])}\n },\n \"about\": {\n \"mrf\": {\n \"simple\": {\n \"quarantine_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本实例向以下实例仅发送公开的帖子:\"])},\n \"quarantine\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隔离\"])},\n \"reject_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本实例不会接收来自下列实例的消息:\"])},\n \"reject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"拒绝\"])},\n \"accept_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本实例只接收来自下列实例的消息:\"])},\n \"simple_policies\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"对于特定实例的策略\"])},\n \"accept\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"接受\"])},\n \"media_removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"移除媒体\"])},\n \"media_nsfw_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本实例将来自以下实例的媒体内容强制设置为敏感内容:\"])},\n \"media_nsfw\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"强制设置媒体为敏感内容\"])},\n \"media_removal_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本实例移除来自以下实例的媒体内容:\"])},\n \"ftl_removal_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"该实例在从“已知网络”时间线上移除了下列实例:\"])},\n \"ftl_removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"从“已知网络”时间线上移除\"])},\n \"reason\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"理由\"])},\n \"not_applicable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"无\"])},\n \"instance\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"实例\"])}\n },\n \"mrf_policies_desc\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"MRF 策略会影响本实例的互通行为。以下策略已启用:\"])},\n \"mrf_policies\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已启用的 MRF 策略\"])},\n \"keyword\": {\n \"ftl_removal\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"从“全部已知网络”时间线上移除\"])},\n \"keyword_policies\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关键词策略\"])},\n \"is_replaced_by\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"→\"])},\n \"replace\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"替换\"])},\n \"reject\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"拒绝\"])}\n },\n \"federation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"联邦互通\"])}\n },\n \"staff\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"管理人员\"])}\n },\n \"domain_mute_card\": {\n \"unmute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"正在取消隐藏…\"])},\n \"unmute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消隐藏\"])},\n \"mute_progress\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏中…\"])},\n \"mute\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"隐藏\"])}\n },\n \"errors\": {\n \"storage_unavailable\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pleroma 无法访问浏览器储存。您的登陆以及本地设置将不会被保存,您也可能遇到未知问题。请尝试启用 cookies。\"])}\n },\n \"shoutbox\": {\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"留言板\"])}\n },\n \"display_date\": {\n \"today\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"今天\"])}\n },\n \"file_type\": {\n \"file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"文件\"])},\n \"image\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"图片\"])},\n \"video\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"视频\"])},\n \"audio\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"音频\"])}\n },\n \"chats\": {\n \"empty_chat_list_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您还没有任何聊天记录。开始聊天吧!\"])},\n \"error_sending_message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"发送消息时出了点问题。\"])},\n \"error_loading_chat\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"加载聊天时出了点问题。\"])},\n \"delete_confirm\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"您确定要删除此消息吗?\"])},\n \"more\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"更多\"])},\n \"empty_message_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"无法发布空消息\"])},\n \"new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"新聊天\"])},\n \"chats\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"聊天\"])},\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"删除\"])},\n \"message_user\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"发消息给 \", _interpolate(_named(\"nickname\"))])},\n \"you\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"你:\"])}\n },\n \"announcements\": {\n \"page_header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"公告\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"公告\"])},\n \"mark_as_read_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"标为已读\"])},\n \"post_form_header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"发布公告\"])},\n \"post_placeholder\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"在这里输入公告内容...\"])},\n \"post_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"发布\"])},\n \"post_error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"错误:\", _interpolate(_named(\"error\"))])},\n \"close_error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"关闭\"])},\n \"delete_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"删除\"])},\n \"start_time_prompt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"起始时间: \"])},\n \"end_time_prompt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"终止时间: \"])},\n \"all_day_prompt\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"这是全天的事件\"])},\n \"published_time_display\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"发表于 \", _interpolate(_named(\"time\"))])},\n \"start_time_display\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"开始于 \", _interpolate(_named(\"time\"))])},\n \"end_time_display\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"结束于 \", _interpolate(_named(\"time\"))])},\n \"edit_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"编辑\"])},\n \"submit_edit_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"提交\"])},\n \"cancel_edit_action\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"取消\"])},\n \"inactive_message\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"这个公告不活跃\"])}\n },\n \"report\": {\n \"reported_user\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"被举报者:\"])},\n \"state_closed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已关闭\"])},\n \"state_resolved\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已解决\"])},\n \"reporter\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"举报者:\"])},\n \"state_open\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"开启\"])},\n \"reported_statuses\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已举报的状态:\"])},\n \"notes\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"备注:\"])},\n \"state\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"状态:\"])}\n },\n \"unicode_domain_indicator\": {\n \"tooltip\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"此域名包含非 ascii 字符。\"])}\n },\n \"update\": {\n \"update_bugs_gitlab\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pleroma GitLab\"])},\n \"update_changelog\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"关于变化的更多细节,请参见 \", _interpolate(_named(\"theFullChangelog\")), \" 。\"])},\n \"update_changelog_here\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"完整的更新日志\"])},\n \"big_update_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"请忍耐一下\"])},\n \"big_update_content\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"我们已经有一段时间没有发布发行版,所以事情的外观和感觉可能与你习惯的不一样。\"])},\n \"update_bugs\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"请在 \", _interpolate(_named(\"pleromaGitlab\")), \" 上报告任何问题和bug,因为我们已经改变了很多,虽然我们进行了彻底的测试,并且自己使用了开发版本,但我们可能错过了一些东西。我们欢迎你对你可能遇到的问题或如何改进Pleroma和Pleroma-FE提出反馈和建议。\"])},\n \"art_by\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"Art by \", _interpolate(_named(\"linkToArtist\"))])}\n },\n \"lists\": {\n \"search\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"搜索用户\"])},\n \"create\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"创建\"])},\n \"save\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保存更改\"])},\n \"delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"删除列表\"])},\n \"following_only\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"限制于正在关注\"])},\n \"manage_lists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"管理列表\"])},\n \"manage_members\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"管理列表成员\"])},\n \"add_members\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"搜索更多用户\"])},\n \"remove_from_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"从列表中移除\"])},\n \"add_to_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"添加到列表\"])},\n \"is_in_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"已在列表中\"])},\n \"editing_list\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"正在编辑列表 \", _interpolate(_named(\"listTitle\"))])},\n \"creating_list\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"正在创建新的列表\"])},\n \"update_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保存标题\"])},\n \"really_delete\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"真的要删除列表吗?\"])},\n \"error\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"操作列表时出错:\", _interpolate(_list(0))])},\n \"lists\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"列表\"])},\n \"new\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"新的列表\"])},\n \"title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"列表标题\"])}\n },\n \"admin_dash\": {\n \"window_title\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"管理员\"])},\n \"old_ui_link\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"旧的管理界面在此处\"])},\n \"reset_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"重置全部\"])},\n \"commit_all\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"保存全部\"])},\n \"tabs\": {\n \"nodb\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"无数据库配置\"])},\n \"instance\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"实例\"])},\n \"limits\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"限制\"])},\n \"frontends\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"前端\"])}\n },\n \"nodb\": {\n \"heading\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"数据库配置已禁用\"])},\n \"documentation\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"文档\"])},\n \"text2\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"大多数配置选项将不可用。\"])},\n \"text\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"你需要修改后端配置文件,以便将 \", _interpolate(_named(\"property\")), \" 设置为 \", _interpolate(_named(\"value\")), \",更多内容请参见 \", _interpolate(_named(\"documentation\")), \"。\"])}\n },\n \"captcha\": {\n \"native\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"本地\"])},\n \"kocaptcha\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"KoCaptcha\"])}\n },\n \"instance\": {\n \"instance\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"实例信息\"])},\n \"registrations\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户注册\"])},\n \"captcha_header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"验证码\"])},\n \"kocaptcha\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"KoCaptcha 设置\"])},\n \"access\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"实例访问\"])},\n \"restrict\": {\n \"header\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"限制匿名访客的访问\"])},\n \"timelines\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"时间线访问\"])},\n \"profiles\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户个人资料访问\"])},\n \"activities\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"状态/活动访问\"])},\n \"description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"允许/不允许访问特定 API 的详细设置。默认情况下(不确定状态),如果实例不是公开的,它将拒绝访问;勾选复选框意味着即使实例是公开的,也拒绝访问;不勾选意味着即使实例是私有的,也允许访问。请注意,如果某些设置被设定,可能会发生意想不到的行为,例如,如果个人资料访问被禁用,显示的帖文将不包含个人资料信息。\"])}\n }\n },\n \"limits\": {\n \"arbitrary_limits\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"任意限制\"])},\n \"posts\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"帖文限制\"])},\n \"uploads\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"附件限制\"])},\n \"users\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"用户个人资料限制\"])},\n \"profile_fields\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"个人资料字段限制\"])},\n \"user_uploads\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"个人资料媒体限制\"])}\n },\n \"frontend\": {\n \"repository\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"存储库链接\"])},\n \"versions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"可用版本\"])},\n \"build_url\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"构建产物 URL\"])},\n \"reinstall\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"重新安装\"])},\n \"is_default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"(默认)\"])},\n \"is_default_custom\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"(默认,版本:\", _interpolate(_named(\"version\")), \")\"])},\n \"install\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"安装\"])},\n \"install_version\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"安装版本 \", _interpolate(_named(\"version\"))])},\n \"more_install_options\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"更多安装选项\"])},\n \"more_default_options\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"更多默认设置选项\"])},\n \"set_default\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"设为默认\"])},\n \"set_default_version\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"将版本 \", _interpolate(_named(\"version\")), \" 设为默认\"])},\n \"wip_notice\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"请注意,此部分是一个WIP,缺乏某些功能,因为前端管理的后台实现并不完整。\"])},\n \"default_frontend\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"默认前端\"])},\n \"default_frontend_tip\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"默认的前端将显示给所有用户。目前还没有办法让用户选择个人的前端。如果你不使用 PleromaFE,你很可能不得不使用旧的和有问题的 AdminFE 来进行实例配置,直到我们替换它。\"])},\n \"available_frontends\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"可供安装\"])}\n },\n \"temp_overrides\": {\n \":pleroma\": {\n \":instance\": {\n \":public\": {\n \"label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"实例是公开的\"])},\n \"description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"禁用此功能将使所有的 API 只能被已登录用户访问,这将使公共和联邦时间线无法被匿名访客访问。\"])}\n },\n \":limit_to_local_content\": {\n \"label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"将搜索限于本地内容\"])},\n \"description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"禁用未认证用户(默认)、所有用户或无人的全局网络搜索\"])}\n },\n \":description_limit\": {\n \"label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"限制\"])},\n \"description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"附件描述的字数限制\"])}\n },\n \":background_image\": {\n \"label\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"背景图片\"])},\n \"description\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"背景图片(主要使用于 PleromaFE)\"])}\n }\n }\n }\n },\n \"wip_notice\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, named: _named } = ctx;return _normalize([\"此管理仪表板是实验性和 WIP 的,\", _interpolate(_named(\"adminFeLink\")), \"。\"])}\n }\n}"],"names":["ctx","normalize","_normalize","interpolate","_interpolate","list","_list","named","_named","plural","_plural"],"sourceRoot":""} \ No newline at end of file
diff --git a/priv/static/sw-pleroma.js b/priv/static/sw-pleroma.js
index d3273e6e4..ed9257cd2 100644
--- a/priv/static/sw-pleroma.js
+++ b/priv/static/sw-pleroma.js
@@ -1,4 +1,4 @@
-var serviceWorkerOption = {"assets":["/sw-pleroma.js.LICENSE.txt","/static/js/app.7c4b412b26221a7c8572.js","/static/img/nsfw.2958239.png","/static/img/pleromatan_apology.f9d5180.png","/static/img/pleromatan_apology_fox.038b0bb.png","/static/js/emoji.33eab91b64f59431137d.js","/static/js/i18n/ar-json.4916f840147303aa65fe.js","/static/js/i18n/ca-json.1eb24bc001efa3c0627f.js","/static/js/i18n/cs-json.5eedbe9f7084c349fbe8.js","/static/js/i18n/de-json.bfa48615ac92f87ff37a.js","/static/js/i18n/eo-json.6c62eef99e850912498b.js","/static/js/i18n/es-json.4a302899a65e1f67d8a2.js","/static/js/i18n/et-json.580b101d6bb83a8aee75.js","/static/js/i18n/eu-json.d2eab39b0427995fc314.js","/static/js/i18n/fa-json.a19100f6a5a9431e2adb.js","/static/js/i18n/fi-json.d1934c18f12d80493ab1.js","/static/js/i18n/fr-json.36ef21ccb1203d3e65ae.js","/static/js/i18n/ga-json.3f1981817977a16f1d7e.js","/static/js/i18n/he-json.03c5d271a4034de06e6f.js","/static/js/i18n/hu-json.0487899ca7a7a8505ed8.js","/static/js/i18n/id-json.e5c9ee768155f88128b9.js","/static/js/i18n/it-json.99a21d5c98376af17141.js","/static/js/i18n/ja_easy-json.1d5ea7e755b066ac2cdd.js","/static/js/i18n/ja_pedantic-json.b52fa70f0bf89ae01cfb.js","/static/js/i18n/ko-json.9029d09084bb22d8b705.js","/static/js/i18n/nan-TW-json.7f2789d8a461e86d1734.js","/static/js/i18n/nb-json.a54af3b1f47d576ad4aa.js","/static/js/i18n/nl-json.3fb9758b10c29434b613.js","/static/js/i18n/oc-json.4f52bf1b6e3213acc33c.js","/static/js/i18n/pl-json.c963247822381b05579b.js","/static/js/i18n/pt-json.3fc5593e030268bcd291.js","/static/js/i18n/ro-json.3fd9977ed1c1413059ae.js","/static/js/i18n/ru-json.b913eb7f7e9f0c642438.js","/static/js/i18n/sk-json.d8d0eba80f94e6f55145.js","/static/js/i18n/te-json.ce6db28261b2f824064f.js","/static/js/i18n/uk-json.003908af9b15becdd382.js","/static/js/i18n/vi-json.703c1e731be6e857bbf3.js","/static/js/i18n/zh-json.5831b903c3e6d281f122.js","/static/js/i18n/zh_Hant-json.f7e1d0f4b873c60d6396.js","/static/js/emoji-annotations/af-json.96c988285a6a2cce6246.js","/static/js/emoji-annotations/am-json.94388548f7c18233fec3.js","/static/js/emoji-annotations/ar-json.5527466d349f2954d49b.js","/static/js/emoji-annotations/ar_SA-json.4a6f4402931a867070f0.js","/static/js/emoji-annotations/as-json.34cf67edc1cecd195738.js","/static/js/emoji-annotations/ast-json.7e4da8cb7e539c19a9b9.js","/static/js/emoji-annotations/az-json.9a32f2941d9c4d1f834c.js","/static/js/emoji-annotations/be-json.f92f80669873a4100c69.js","/static/js/emoji-annotations/bg-json.7c69c52572a7bf87e1db.js","/static/js/emoji-annotations/bn-json.657aac057f36ad06c58d.js","/static/js/emoji-annotations/br-json.c7175423d8965ed10bae.js","/static/js/emoji-annotations/bs-json.48ef42da1c7976cf083c.js","/static/js/emoji-annotations/ca-json.ce029e860b10b242c6a5.js","/static/js/emoji-annotations/ccp-json.02836537ffe2b02291cb.js","/static/js/emoji-annotations/ceb-json.9db0336f168aa77ee395.js","/static/js/emoji-annotations/chr-json.e7e542ab5a74167dec10.js","/static/js/emoji-annotations/ckb-json.13dc83db1e15aa76051a.js","/static/js/emoji-annotations/cs-json.48d8bba230dc9fe6b3dc.js","/static/js/emoji-annotations/cy-json.e09dd13da5ad56530ead.js","/static/js/emoji-annotations/da-json.8d074e27df71edafc543.js","/static/js/emoji-annotations/de-json.e1443c01a191af1665e1.js","/static/js/emoji-annotations/de_CH-json.b4a5891ea2f38d616ec0.js","/static/js/emoji-annotations/doi-json.7841c3f3ceb4e3da0bd1.js","/static/js/emoji-annotations/dsb-json.7635686ffd8d62264466.js","/static/js/emoji-annotations/el-json.b36610f2ea16d56c2314.js","/static/js/emoji-annotations/en-json.6c3947f7c49c3952084d.js","/static/js/emoji-annotations/en_001-json.72d8c47269350f59aa9f.js","/static/js/emoji-annotations/en_AU-json.33aac9bbd887273a34b1.js","/static/js/emoji-annotations/en_CA-json.5de965778a6b8a5a4bb4.js","/static/js/emoji-annotations/en_GB-json.bd687f904492facc81d1.js","/static/js/emoji-annotations/en_IN-json.002faa48c09121928fca.js","/static/js/emoji-annotations/es-json.f593b0dc2367a9d7fb30.js","/static/js/emoji-annotations/es_419-json.d81991295392b6ed83bb.js","/static/js/emoji-annotations/es_MX-json.ee359d4b611fdb1aeb33.js","/static/js/emoji-annotations/es_US-json.280bdb036dfd651d079a.js","/static/js/emoji-annotations/et-json.c42e3f186a55ecb061cd.js","/static/js/emoji-annotations/eu-json.931b429f5fcc141549a5.js","/static/js/emoji-annotations/fa-json.819c7f263c8594ccf4fa.js","/static/js/emoji-annotations/fi-json.0f254bb4b0faaba4abcc.js","/static/js/emoji-annotations/fil-json.4fca833f178d1b889b69.js","/static/js/emoji-annotations/fo-json.9b060e8009b3a8be4597.js","/static/js/emoji-annotations/fr-json.da49ed0d1a6622fe1c67.js","/static/js/emoji-annotations/fr_CA-json.59ed6b59e2ca68707292.js","/static/js/emoji-annotations/ga-json.cb3f9e613a8c445aea23.js","/static/js/emoji-annotations/gd-json.e3d0aea3725be774ad81.js","/static/js/emoji-annotations/gl-json.ce89036f0ae72224c994.js","/static/js/emoji-annotations/gu-json.8a899f364cf260376905.js","/static/js/emoji-annotations/ha-json.2a08912b38925c10f970.js","/static/js/emoji-annotations/ha_NE-json.e4855d92aaccfdd6ba57.js","/static/js/emoji-annotations/he-json.a3d7631f32182b0955a2.js","/static/js/emoji-annotations/hi-json.04bc5f73dc2169def97e.js","/static/js/emoji-annotations/hi_Latn-json.3cb73c456f31261f1908.js","/static/js/emoji-annotations/hr-json.fe847ade1f18a60e513c.js","/static/js/emoji-annotations/hsb-json.438721731b4171bc6fc3.js","/static/js/emoji-annotations/hu-json.1faf52040deda872b416.js","/static/js/emoji-annotations/hy-json.2d819f7faabfeba8457f.js","/static/js/emoji-annotations/ia-json.8e8365e2bf41779e2beb.js","/static/js/emoji-annotations/id-json.55f83c46d753b0b69330.js","/static/js/emoji-annotations/ig-json.f19fa5fe3582463ba73c.js","/static/js/emoji-annotations/is-json.62e220c65215b034533d.js","/static/js/emoji-annotations/it-json.9c1758f4fd3391f7f61a.js","/static/js/emoji-annotations/ja-json.0bd51f8c40c106355b0e.js","/static/js/emoji-annotations/jv-json.1c8d5ffcff22b46b6214.js","/static/js/emoji-annotations/ka-json.567e7b051d90a37003f3.js","/static/js/emoji-annotations/kab-json.1a2de4774f4ddc2b51dd.js","/static/js/emoji-annotations/kk-json.a20b59d47bdfe99786ad.js","/static/js/emoji-annotations/kl-json.87ab8661b4bdecd09faf.js","/static/js/emoji-annotations/km-json.9bc922b2e0faa64b4c53.js","/static/js/emoji-annotations/kn-json.efdac8ac0cb00991ba1e.js","/static/js/emoji-annotations/ko-json.d175900fe48f48ce87c8.js","/static/js/emoji-annotations/kok-json.116e4f72db3bfb846233.js","/static/js/emoji-annotations/ku-json.2173ed87f8d7372ee209.js","/static/js/emoji-annotations/ky-json.310bda579c819eda9472.js","/static/js/emoji-annotations/lb-json.499c526f3a653618ea9b.js","/static/js/emoji-annotations/lo-json.ecb06d61465a355b8157.js","/static/js/emoji-annotations/lt-json.ced4d5e70edc60127df6.js","/static/js/emoji-annotations/lv-json.5600c2eb6d59fa0aa2e2.js","/static/js/emoji-annotations/mai-json.302386b3358f4d34f9c8.js","/static/js/emoji-annotations/mi-json.9efe6f146ecd8987f80a.js","/static/js/emoji-annotations/mk-json.a254cabb8570419cc426.js","/static/js/emoji-annotations/ml-json.3f2902a84240faff1b48.js","/static/js/emoji-annotations/mn-json.764169f1168d0432640f.js","/static/js/emoji-annotations/mni-json.7db7f76ab1ce34e3683d.js","/static/js/emoji-annotations/mr-json.cb0a87d9aabf8a52161d.js","/static/js/emoji-annotations/ms-json.272ee4735aabc37015dd.js","/static/js/emoji-annotations/mt-json.3ddf7dbc114adf90c500.js","/static/js/emoji-annotations/my-json.8e7dd1485813d15bba7e.js","/static/js/emoji-annotations/ne-json.a0118dca2096a101b8e8.js","/static/js/emoji-annotations/nl-json.52f4b93b8fa5e22cb585.js","/static/js/emoji-annotations/nn-json.7293cd5d7205681cf48c.js","/static/js/emoji-annotations/no-json.22bdbbc77cc3c14ada58.js","/static/js/emoji-annotations/or-json.b007c2f6f92dcc95efac.js","/static/js/emoji-annotations/pa-json.7d60d69762a108270669.js","/static/js/emoji-annotations/pa_Arab-json.5ae021308b1c5f6dd8a7.js","/static/js/emoji-annotations/pcm-json.eac3a5ad0b4b5b33289d.js","/static/js/emoji-annotations/pl-json.e9e8f1ed84dc6c169516.js","/static/js/emoji-annotations/ps-json.a0d9eea5b81bcad11e64.js","/static/js/emoji-annotations/pt-json.2b2512ee44291bdb2ae7.js","/static/js/emoji-annotations/pt_PT-json.c381b13e323f91b0e6b3.js","/static/js/emoji-annotations/qu-json.55f4df57e71076dbad9f.js","/static/js/emoji-annotations/rm-json.985d4934f386fd05a75c.js","/static/js/emoji-annotations/ro-json.cb62f86ce78c94d1e813.js","/static/js/emoji-annotations/ru-json.a81d0df34460837ccacc.js","/static/js/emoji-annotations/rw-json.031838c5374676191131.js","/static/js/emoji-annotations/sa-json.21b06234a08c7469ccb4.js","/static/js/emoji-annotations/sat-json.71e92700b2aaca8e021c.js","/static/js/emoji-annotations/sc-json.c84c9c47d2e104c43e4c.js","/static/js/emoji-annotations/sd-json.8f2a6a06dc3cf185f79d.js","/static/js/emoji-annotations/si-json.841b356da03623c10dbf.js","/static/js/emoji-annotations/sk-json.5d96bdb4da82655d0314.js","/static/js/emoji-annotations/sl-json.a40c5548da34fce6f1d0.js","/static/js/emoji-annotations/so-json.f75abd16637c8924c075.js","/static/js/emoji-annotations/sq-json.bcf154ed8a6138aa089c.js","/static/js/emoji-annotations/sr-json.e29a20e59a708df0c6a8.js","/static/js/emoji-annotations/sr_Cyrl_BA-json.83c7c64b9696ae2339f2.js","/static/js/emoji-annotations/sr_Latn-json.ff27d1f455bf2afb8d70.js","/static/js/emoji-annotations/sr_Latn_BA-json.72933405032b81344754.js","/static/js/emoji-annotations/su-json.daff15251020cbecea7d.js","/static/js/emoji-annotations/sv-json.8b0374cbca3a77519876.js","/static/js/emoji-annotations/sw-json.d5f350641b9cbcc0e126.js","/static/js/emoji-annotations/sw_KE-json.f3563cbeac1c158563d5.js","/static/js/emoji-annotations/ta-json.675cc6c7607449d4a91b.js","/static/js/emoji-annotations/te-json.8a69a10f62cdf626244e.js","/static/js/emoji-annotations/tg-json.9647f559a4477d7d8e96.js","/static/js/emoji-annotations/th-json.34709bae223bb9d2587c.js","/static/js/emoji-annotations/ti-json.5b173bd33bb960be805b.js","/static/js/emoji-annotations/tk-json.23a9a6229829921704ad.js","/static/js/emoji-annotations/to-json.50ac37d101caaf592c94.js","/static/js/emoji-annotations/tr-json.6462e8cfd5006cf5b6cf.js","/static/js/emoji-annotations/tt-json.4c089389ba9983ec8ef7.js","/static/js/emoji-annotations/ug-json.bf768bd32e9ff02b0a8a.js","/static/js/emoji-annotations/uk-json.af110c8eef232638fc4d.js","/static/js/emoji-annotations/ur-json.983c02109444c883a18f.js","/static/js/emoji-annotations/uz-json.ac43f4c54d4587324a20.js","/static/js/emoji-annotations/vi-json.f6a364b2add7f8c8bc67.js","/static/js/emoji-annotations/wo-json.e0d689e22cda0dd77e9a.js","/static/js/emoji-annotations/xh-json.21e88c05ad3113dfc7f2.js","/static/js/emoji-annotations/yo-json.ea1150d6bc360dd86f2e.js","/static/js/emoji-annotations/yo_BJ-json.650318c25fe4da92bad8.js","/static/js/emoji-annotations/yue-json.15102c0ddfdf19bdfb4c.js","/static/js/emoji-annotations/yue_Hans-json.cc60bb10d32fab3d8207.js","/static/js/emoji-annotations/zh-json.e42a28127d5c1aff6c85.js","/static/js/emoji-annotations/zh_Hant-json.9cbb765c181d443828a9.js","/static/js/emoji-annotations/zh_Hant_HK-json.7eee03c705347a21c612.js","/static/js/emoji-annotations/zu-json.e0cb7cd3890583fd0f6d.js","/static/js/7586.981b2305a0019f6042a5.js","/static/js/6464.eb9c90a1c948cde554e9.js","/static/js/159.903e90c9de8ef6c67077.js","/static/js/7962.e25d40b042f8ee7389c3.js","/static/js/9801.99ace6b5dc657bf1a65b.js","/static/js/3733.7060d1e6bca813125a0c.js","/static/js/48.b5ecdbc517423af07ca4.js","/static/js/9060.24271e167e0471a1a732.js","/static/ruffle/56f009143a5a7685fad9.wasm","/static/ruffle/92614a5efc3434baeaa9.wasm","/static/ruffle/LICENSE_APACHE","/static/ruffle/LICENSE_MIT","/static/ruffle/README.md","/static/ruffle/core.ruffle.61b3dd915983ae8a8b16.js","/static/ruffle/core.ruffle.848d766d6fc336164c2f.js","/static/ruffle/package.json","/static/ruffle/ruffle.js","/static/js/3733.7060d1e6bca813125a0c.js.LICENSE.txt","/static/js/48.b5ecdbc517423af07ca4.js.LICENSE.txt","/index.html","/static/css/app.c18a2c80794a1b699a61.css","/static/css/7586.0d43f70bc6240422f179.css","/static/css/6464.169260b661120cc50815.css","/static/css/159.1d523a00378ebd68c5b3.css","/static/css/7962.76663e78ad5ea0bb0b90.css","/static/css/9801.cfe503d4c949ae0c3813.css"]};
+var serviceWorkerOption = {"assets":["/sw-pleroma.js.LICENSE.txt","/static/js/app.d42ab31e1d50a3265a82.js","/static/img/nsfw.2958239.png","/static/img/pleromatan_apology.f9d5180.png","/static/img/pleromatan_apology_fox.038b0bb.png","/static/js/emoji.33eab91b64f59431137d.js","/static/js/i18n/ar-json.4916f840147303aa65fe.js","/static/js/i18n/ca-json.1eb24bc001efa3c0627f.js","/static/js/i18n/cs-json.5eedbe9f7084c349fbe8.js","/static/js/i18n/de-json.bfa48615ac92f87ff37a.js","/static/js/i18n/eo-json.6c62eef99e850912498b.js","/static/js/i18n/es-json.4a302899a65e1f67d8a2.js","/static/js/i18n/et-json.580b101d6bb83a8aee75.js","/static/js/i18n/eu-json.d2eab39b0427995fc314.js","/static/js/i18n/fa-json.a19100f6a5a9431e2adb.js","/static/js/i18n/fi-json.d1934c18f12d80493ab1.js","/static/js/i18n/fr-json.36ef21ccb1203d3e65ae.js","/static/js/i18n/ga-json.3f1981817977a16f1d7e.js","/static/js/i18n/he-json.03c5d271a4034de06e6f.js","/static/js/i18n/hu-json.0487899ca7a7a8505ed8.js","/static/js/i18n/id-json.e5c9ee768155f88128b9.js","/static/js/i18n/it-json.99a21d5c98376af17141.js","/static/js/i18n/ja_easy-json.1d5ea7e755b066ac2cdd.js","/static/js/i18n/ja_pedantic-json.b52fa70f0bf89ae01cfb.js","/static/js/i18n/ko-json.9029d09084bb22d8b705.js","/static/js/i18n/nan-TW-json.7f2789d8a461e86d1734.js","/static/js/i18n/nb-json.a54af3b1f47d576ad4aa.js","/static/js/i18n/nl-json.3fb9758b10c29434b613.js","/static/js/i18n/oc-json.4f52bf1b6e3213acc33c.js","/static/js/i18n/pl-json.c963247822381b05579b.js","/static/js/i18n/pt-json.3fc5593e030268bcd291.js","/static/js/i18n/ro-json.3fd9977ed1c1413059ae.js","/static/js/i18n/ru-json.b913eb7f7e9f0c642438.js","/static/js/i18n/sk-json.d8d0eba80f94e6f55145.js","/static/js/i18n/te-json.ce6db28261b2f824064f.js","/static/js/i18n/uk-json.003908af9b15becdd382.js","/static/js/i18n/vi-json.703c1e731be6e857bbf3.js","/static/js/i18n/zh-json.a0a26f6d62ddbe0b49cc.js","/static/js/i18n/zh_Hant-json.f7e1d0f4b873c60d6396.js","/static/js/emoji-annotations/af-json.96c988285a6a2cce6246.js","/static/js/emoji-annotations/am-json.94388548f7c18233fec3.js","/static/js/emoji-annotations/ar-json.5527466d349f2954d49b.js","/static/js/emoji-annotations/ar_SA-json.4a6f4402931a867070f0.js","/static/js/emoji-annotations/as-json.34cf67edc1cecd195738.js","/static/js/emoji-annotations/ast-json.7e4da8cb7e539c19a9b9.js","/static/js/emoji-annotations/az-json.9a32f2941d9c4d1f834c.js","/static/js/emoji-annotations/be-json.f92f80669873a4100c69.js","/static/js/emoji-annotations/bg-json.7c69c52572a7bf87e1db.js","/static/js/emoji-annotations/bn-json.657aac057f36ad06c58d.js","/static/js/emoji-annotations/br-json.c7175423d8965ed10bae.js","/static/js/emoji-annotations/bs-json.48ef42da1c7976cf083c.js","/static/js/emoji-annotations/ca-json.ce029e860b10b242c6a5.js","/static/js/emoji-annotations/ccp-json.02836537ffe2b02291cb.js","/static/js/emoji-annotations/ceb-json.9db0336f168aa77ee395.js","/static/js/emoji-annotations/chr-json.e7e542ab5a74167dec10.js","/static/js/emoji-annotations/ckb-json.13dc83db1e15aa76051a.js","/static/js/emoji-annotations/cs-json.48d8bba230dc9fe6b3dc.js","/static/js/emoji-annotations/cy-json.e09dd13da5ad56530ead.js","/static/js/emoji-annotations/da-json.8d074e27df71edafc543.js","/static/js/emoji-annotations/de-json.e1443c01a191af1665e1.js","/static/js/emoji-annotations/de_CH-json.b4a5891ea2f38d616ec0.js","/static/js/emoji-annotations/doi-json.7841c3f3ceb4e3da0bd1.js","/static/js/emoji-annotations/dsb-json.7635686ffd8d62264466.js","/static/js/emoji-annotations/el-json.b36610f2ea16d56c2314.js","/static/js/emoji-annotations/en-json.6c3947f7c49c3952084d.js","/static/js/emoji-annotations/en_001-json.72d8c47269350f59aa9f.js","/static/js/emoji-annotations/en_AU-json.33aac9bbd887273a34b1.js","/static/js/emoji-annotations/en_CA-json.5de965778a6b8a5a4bb4.js","/static/js/emoji-annotations/en_GB-json.bd687f904492facc81d1.js","/static/js/emoji-annotations/en_IN-json.002faa48c09121928fca.js","/static/js/emoji-annotations/es-json.f593b0dc2367a9d7fb30.js","/static/js/emoji-annotations/es_419-json.d81991295392b6ed83bb.js","/static/js/emoji-annotations/es_MX-json.ee359d4b611fdb1aeb33.js","/static/js/emoji-annotations/es_US-json.280bdb036dfd651d079a.js","/static/js/emoji-annotations/et-json.c42e3f186a55ecb061cd.js","/static/js/emoji-annotations/eu-json.931b429f5fcc141549a5.js","/static/js/emoji-annotations/fa-json.819c7f263c8594ccf4fa.js","/static/js/emoji-annotations/fi-json.0f254bb4b0faaba4abcc.js","/static/js/emoji-annotations/fil-json.4fca833f178d1b889b69.js","/static/js/emoji-annotations/fo-json.9b060e8009b3a8be4597.js","/static/js/emoji-annotations/fr-json.da49ed0d1a6622fe1c67.js","/static/js/emoji-annotations/fr_CA-json.59ed6b59e2ca68707292.js","/static/js/emoji-annotations/ga-json.cb3f9e613a8c445aea23.js","/static/js/emoji-annotations/gd-json.e3d0aea3725be774ad81.js","/static/js/emoji-annotations/gl-json.ce89036f0ae72224c994.js","/static/js/emoji-annotations/gu-json.8a899f364cf260376905.js","/static/js/emoji-annotations/ha-json.2a08912b38925c10f970.js","/static/js/emoji-annotations/ha_NE-json.e4855d92aaccfdd6ba57.js","/static/js/emoji-annotations/he-json.a3d7631f32182b0955a2.js","/static/js/emoji-annotations/hi-json.04bc5f73dc2169def97e.js","/static/js/emoji-annotations/hi_Latn-json.3cb73c456f31261f1908.js","/static/js/emoji-annotations/hr-json.fe847ade1f18a60e513c.js","/static/js/emoji-annotations/hsb-json.438721731b4171bc6fc3.js","/static/js/emoji-annotations/hu-json.1faf52040deda872b416.js","/static/js/emoji-annotations/hy-json.2d819f7faabfeba8457f.js","/static/js/emoji-annotations/ia-json.8e8365e2bf41779e2beb.js","/static/js/emoji-annotations/id-json.55f83c46d753b0b69330.js","/static/js/emoji-annotations/ig-json.f19fa5fe3582463ba73c.js","/static/js/emoji-annotations/is-json.62e220c65215b034533d.js","/static/js/emoji-annotations/it-json.9c1758f4fd3391f7f61a.js","/static/js/emoji-annotations/ja-json.0bd51f8c40c106355b0e.js","/static/js/emoji-annotations/jv-json.1c8d5ffcff22b46b6214.js","/static/js/emoji-annotations/ka-json.567e7b051d90a37003f3.js","/static/js/emoji-annotations/kab-json.1a2de4774f4ddc2b51dd.js","/static/js/emoji-annotations/kk-json.a20b59d47bdfe99786ad.js","/static/js/emoji-annotations/kl-json.87ab8661b4bdecd09faf.js","/static/js/emoji-annotations/km-json.9bc922b2e0faa64b4c53.js","/static/js/emoji-annotations/kn-json.efdac8ac0cb00991ba1e.js","/static/js/emoji-annotations/ko-json.d175900fe48f48ce87c8.js","/static/js/emoji-annotations/kok-json.116e4f72db3bfb846233.js","/static/js/emoji-annotations/ku-json.2173ed87f8d7372ee209.js","/static/js/emoji-annotations/ky-json.310bda579c819eda9472.js","/static/js/emoji-annotations/lb-json.499c526f3a653618ea9b.js","/static/js/emoji-annotations/lo-json.ecb06d61465a355b8157.js","/static/js/emoji-annotations/lt-json.ced4d5e70edc60127df6.js","/static/js/emoji-annotations/lv-json.5600c2eb6d59fa0aa2e2.js","/static/js/emoji-annotations/mai-json.302386b3358f4d34f9c8.js","/static/js/emoji-annotations/mi-json.9efe6f146ecd8987f80a.js","/static/js/emoji-annotations/mk-json.a254cabb8570419cc426.js","/static/js/emoji-annotations/ml-json.3f2902a84240faff1b48.js","/static/js/emoji-annotations/mn-json.764169f1168d0432640f.js","/static/js/emoji-annotations/mni-json.7db7f76ab1ce34e3683d.js","/static/js/emoji-annotations/mr-json.cb0a87d9aabf8a52161d.js","/static/js/emoji-annotations/ms-json.272ee4735aabc37015dd.js","/static/js/emoji-annotations/mt-json.3ddf7dbc114adf90c500.js","/static/js/emoji-annotations/my-json.8e7dd1485813d15bba7e.js","/static/js/emoji-annotations/ne-json.a0118dca2096a101b8e8.js","/static/js/emoji-annotations/nl-json.52f4b93b8fa5e22cb585.js","/static/js/emoji-annotations/nn-json.7293cd5d7205681cf48c.js","/static/js/emoji-annotations/no-json.22bdbbc77cc3c14ada58.js","/static/js/emoji-annotations/or-json.b007c2f6f92dcc95efac.js","/static/js/emoji-annotations/pa-json.7d60d69762a108270669.js","/static/js/emoji-annotations/pa_Arab-json.5ae021308b1c5f6dd8a7.js","/static/js/emoji-annotations/pcm-json.eac3a5ad0b4b5b33289d.js","/static/js/emoji-annotations/pl-json.e9e8f1ed84dc6c169516.js","/static/js/emoji-annotations/ps-json.a0d9eea5b81bcad11e64.js","/static/js/emoji-annotations/pt-json.2b2512ee44291bdb2ae7.js","/static/js/emoji-annotations/pt_PT-json.c381b13e323f91b0e6b3.js","/static/js/emoji-annotations/qu-json.55f4df57e71076dbad9f.js","/static/js/emoji-annotations/rm-json.985d4934f386fd05a75c.js","/static/js/emoji-annotations/ro-json.cb62f86ce78c94d1e813.js","/static/js/emoji-annotations/ru-json.a81d0df34460837ccacc.js","/static/js/emoji-annotations/rw-json.031838c5374676191131.js","/static/js/emoji-annotations/sa-json.21b06234a08c7469ccb4.js","/static/js/emoji-annotations/sat-json.71e92700b2aaca8e021c.js","/static/js/emoji-annotations/sc-json.c84c9c47d2e104c43e4c.js","/static/js/emoji-annotations/sd-json.8f2a6a06dc3cf185f79d.js","/static/js/emoji-annotations/si-json.841b356da03623c10dbf.js","/static/js/emoji-annotations/sk-json.5d96bdb4da82655d0314.js","/static/js/emoji-annotations/sl-json.a40c5548da34fce6f1d0.js","/static/js/emoji-annotations/so-json.f75abd16637c8924c075.js","/static/js/emoji-annotations/sq-json.bcf154ed8a6138aa089c.js","/static/js/emoji-annotations/sr-json.e29a20e59a708df0c6a8.js","/static/js/emoji-annotations/sr_Cyrl_BA-json.83c7c64b9696ae2339f2.js","/static/js/emoji-annotations/sr_Latn-json.ff27d1f455bf2afb8d70.js","/static/js/emoji-annotations/sr_Latn_BA-json.72933405032b81344754.js","/static/js/emoji-annotations/su-json.daff15251020cbecea7d.js","/static/js/emoji-annotations/sv-json.8b0374cbca3a77519876.js","/static/js/emoji-annotations/sw-json.d5f350641b9cbcc0e126.js","/static/js/emoji-annotations/sw_KE-json.f3563cbeac1c158563d5.js","/static/js/emoji-annotations/ta-json.675cc6c7607449d4a91b.js","/static/js/emoji-annotations/te-json.8a69a10f62cdf626244e.js","/static/js/emoji-annotations/tg-json.9647f559a4477d7d8e96.js","/static/js/emoji-annotations/th-json.34709bae223bb9d2587c.js","/static/js/emoji-annotations/ti-json.5b173bd33bb960be805b.js","/static/js/emoji-annotations/tk-json.23a9a6229829921704ad.js","/static/js/emoji-annotations/to-json.50ac37d101caaf592c94.js","/static/js/emoji-annotations/tr-json.6462e8cfd5006cf5b6cf.js","/static/js/emoji-annotations/tt-json.4c089389ba9983ec8ef7.js","/static/js/emoji-annotations/ug-json.bf768bd32e9ff02b0a8a.js","/static/js/emoji-annotations/uk-json.af110c8eef232638fc4d.js","/static/js/emoji-annotations/ur-json.983c02109444c883a18f.js","/static/js/emoji-annotations/uz-json.ac43f4c54d4587324a20.js","/static/js/emoji-annotations/vi-json.f6a364b2add7f8c8bc67.js","/static/js/emoji-annotations/wo-json.e0d689e22cda0dd77e9a.js","/static/js/emoji-annotations/xh-json.21e88c05ad3113dfc7f2.js","/static/js/emoji-annotations/yo-json.ea1150d6bc360dd86f2e.js","/static/js/emoji-annotations/yo_BJ-json.650318c25fe4da92bad8.js","/static/js/emoji-annotations/yue-json.15102c0ddfdf19bdfb4c.js","/static/js/emoji-annotations/yue_Hans-json.cc60bb10d32fab3d8207.js","/static/js/emoji-annotations/zh-json.e42a28127d5c1aff6c85.js","/static/js/emoji-annotations/zh_Hant-json.9cbb765c181d443828a9.js","/static/js/emoji-annotations/zh_Hant_HK-json.7eee03c705347a21c612.js","/static/js/emoji-annotations/zu-json.e0cb7cd3890583fd0f6d.js","/static/js/7586.628f729b9c8b2e6f4e1f.js","/static/js/6464.eb9c90a1c948cde554e9.js","/static/js/159.903e90c9de8ef6c67077.js","/static/js/7962.e25d40b042f8ee7389c3.js","/static/js/8859.c76b0a0c3a4b5acbef11.js","/static/js/3733.7060d1e6bca813125a0c.js","/static/js/48.b5ecdbc517423af07ca4.js","/static/js/9060.24271e167e0471a1a732.js","/static/ruffle/56f009143a5a7685fad9.wasm","/static/ruffle/92614a5efc3434baeaa9.wasm","/static/ruffle/LICENSE_APACHE","/static/ruffle/LICENSE_MIT","/static/ruffle/README.md","/static/ruffle/core.ruffle.61b3dd915983ae8a8b16.js","/static/ruffle/core.ruffle.848d766d6fc336164c2f.js","/static/ruffle/package.json","/static/ruffle/ruffle.js","/static/js/3733.7060d1e6bca813125a0c.js.LICENSE.txt","/static/js/48.b5ecdbc517423af07ca4.js.LICENSE.txt","/index.html","/static/css/app.a7f63ee9107a77599942.css","/static/css/7586.0d43f70bc6240422f179.css","/static/css/6464.169260b661120cc50815.css","/static/css/159.1d523a00378ebd68c5b3.css","/static/css/7962.76663e78ad5ea0bb0b90.css","/static/css/8859.d26a3b0841a7beb8fd4a.css"]};
/*! For license information please see sw-pleroma.js.LICENSE.txt */
(()=>{var e={5464:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["منشور مجهول، جارٍ البحث عنه…"])},favorited_you:e=>{const{normalize:t}=e;return t(["أعجِب بمنشورك"])},followed_you:e=>{const{normalize:t}=e;return t(["يُتابعك"])},load_older:e=>{const{normalize:t}=e;return t(["تحميل الإشعارات الأقدم"])},notifications:e=>{const{normalize:t}=e;return t(["الاشعارات"])},read:e=>{const{normalize:t}=e;return t(["مقروء!"])},repeated_you:e=>{const{normalize:t}=e;return t(["شارَك منشورك"])},error:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["خطأ أثناء جلب الاشعارات: ",r(n(0))])},follow_request:e=>{const{normalize:t}=e;return t(["يريد متابعتك"])},poll_ended:e=>{const{normalize:t}=e;return t(["انتهى الاستطلاع"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["لا مزيد من الإشعارات"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["تفاعل بـ",r(n(0))])},submitted_report:e=>{const{normalize:t}=e;return t(["أرسل بلاغًا"])},migrated_to:e=>{const{normalize:t}=e;return t(["انتقلَ إلى"])}}}},3708:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Publicació desconeguda, s'està cercant…"])},favorited_you:e=>{const{normalize:t}=e;return t(["ha marcat un estat teu"])},followed_you:e=>{const{normalize:t}=e;return t(["ha començat a seguir-te"])},load_older:e=>{const{normalize:t}=e;return t(["Carrega més notificacions"])},notifications:e=>{const{normalize:t}=e;return t(["Notificacions"])},read:e=>{const{normalize:t}=e;return t(["Llegit!"])},repeated_you:e=>{const{normalize:t}=e;return t(["ha repetit el teu estat"])},migrated_to:e=>{const{normalize:t}=e;return t(["migrat a"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["No més notificacions"])},follow_request:e=>{const{normalize:t}=e;return t(["et vol seguir"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["ha reaccionat amb ",r(n(0))])},error:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["Error obtenint notificacions: ",r(n(0))])}}}},122:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Neznámý příspěvek, hledám jej…"])},favorited_you:e=>{const{normalize:t}=e;return t(["si oblíbil/a váš příspěvek"])},followed_you:e=>{const{normalize:t}=e;return t(["vás nyní sleduje"])},load_older:e=>{const{normalize:t}=e;return t(["Načíst starší oznámení"])},notifications:e=>{const{normalize:t}=e;return t(["Oznámení"])},read:e=>{const{normalize:t}=e;return t(["Číst!"])},repeated_you:e=>{const{normalize:t}=e;return t(["zopakoval/a váš příspěvek"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["Žádná další oznámení"])}}}},414:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Unbekannte Nachricht, suche danach…"])},favorited_you:e=>{const{normalize:t}=e;return t(["favorisierte deine Nachricht"])},followed_you:e=>{const{normalize:t}=e;return t(["folgt dir"])},load_older:e=>{const{normalize:t}=e;return t(["Ältere Benachrichtigungen laden"])},notifications:e=>{const{normalize:t}=e;return t(["Benachrichtigungen"])},read:e=>{const{normalize:t}=e;return t(["Gelesen!"])},repeated_you:e=>{const{normalize:t}=e;return t(["wiederholte deine Nachricht"])},follow_request:e=>{const{normalize:t}=e;return t(["möchte dir folgen"])},migrated_to:e=>{const{normalize:t}=e;return t(["migrierte zu"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["reagierte mit ",r(n(0))])},no_more_notifications:e=>{const{normalize:t}=e;return t(["Keine Benachrichtigungen mehr"])},error:e=>{const{normalize:t}=e;return t(["Error beim laden von Neuigkeiten"])}}}},2551:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Unknown status, searching for it…"])},error:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["Error fetching notifications: ",r(n(0))])},favorited_you:e=>{const{normalize:t}=e;return t(["favorited your status"])},followed_you:e=>{const{normalize:t}=e;return t(["followed you"])},follow_request:e=>{const{normalize:t}=e;return t(["wants to follow you"])},load_older:e=>{const{normalize:t}=e;return t(["Load older notifications"])},notifications:e=>{const{normalize:t}=e;return t(["Notifications"])},read:e=>{const{normalize:t}=e;return t(["Read!"])},repeated_you:e=>{const{normalize:t}=e;return t(["repeated your status"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["No more notifications"])},migrated_to:e=>{const{normalize:t}=e;return t(["migrated to"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["reacted with ",r(n(0))])},submitted_report:e=>{const{normalize:t}=e;return t(["submitted a report"])},poll_ended:e=>{const{normalize:t}=e;return t(["poll has ended"])}}}},5775:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Nekonata afiŝo, serĉante ĝin…"])},favorited_you:e=>{const{normalize:t}=e;return t(["ŝatis vian afiŝon"])},followed_you:e=>{const{normalize:t}=e;return t(["ekabonis vin"])},load_older:e=>{const{normalize:t}=e;return t(["Enlegi pli malnovajn sciigojn"])},notifications:e=>{const{normalize:t}=e;return t(["Sciigoj"])},read:e=>{const{normalize:t}=e;return t(["Legite!"])},repeated_you:e=>{const{normalize:t}=e;return t(["ripetis vian afiŝon"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["Neniuj pliaj sciigoj"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["reagis per ",r(n(0))])},migrated_to:e=>{const{normalize:t}=e;return t(["migris al"])},follow_request:e=>{const{normalize:t}=e;return t(["volas vin aboni"])},error:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["Eraris akirado de sciigoj: ",r(n(0))])},submitted_report:e=>{const{normalize:t}=e;return t(["sendis raporton"])},poll_ended:e=>{const{normalize:t}=e;return t(["enketo finiĝis"])}}}},8438:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Estado desconocido, buscándolo…"])},favorited_you:e=>{const{normalize:t}=e;return t(["le gusta tu estado"])},followed_you:e=>{const{normalize:t}=e;return t(["empezó a seguirte"])},load_older:e=>{const{normalize:t}=e;return t(["Cargar notificaciones antiguas"])},notifications:e=>{const{normalize:t}=e;return t(["Notificaciones"])},read:e=>{const{normalize:t}=e;return t(["¡Leído!"])},repeated_you:e=>{const{normalize:t}=e;return t(["repitió tu estado"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["No hay más notificaciones"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["reaccionó con ",r(n(0))])},migrated_to:e=>{const{normalize:t}=e;return t(["migrado a"])},follow_request:e=>{const{normalize:t}=e;return t(["quiere seguirte"])},error:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["Error obteniendo notificaciones:",r(n(0))])}}}},9997:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{followed_you:e=>{const{normalize:t}=e;return t(["alustas sinu jälgimist"])},notifications:e=>{const{normalize:t}=e;return t(["Teated"])},read:e=>{const{normalize:t}=e;return t(["Loe!"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["reageeris ",r(n(0))])},migrated_to:e=>{const{normalize:t}=e;return t(["kolis"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["Rohkem teateid ei ole"])},repeated_you:e=>{const{normalize:t}=e;return t(["taaspostitas su staatuse"])},load_older:e=>{const{normalize:t}=e;return t(["Laadi vanemad teated"])},follow_request:e=>{const{normalize:t}=e;return t(["soovib Teid jälgida"])},favorited_you:e=>{const{normalize:t}=e;return t(["lisas su staatuse lemmikuks"])},broken_favorite:e=>{const{normalize:t}=e;return t(["Tundmatu staatus, otsin…"])}}}},9975:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Egoera ezezaguna, bilatzen…"])},favorited_you:e=>{const{normalize:t}=e;return t(["zure mezua gogoko du"])},followed_you:e=>{const{normalize:t}=e;return t(["Zu jarraitzen zaitu"])},load_older:e=>{const{normalize:t}=e;return t(["Kargatu jakinarazpen zaharragoak"])},notifications:e=>{const{normalize:t}=e;return t(["Jakinarazpenak"])},read:e=>{const{normalize:t}=e;return t(["Irakurrita!"])},repeated_you:e=>{const{normalize:t}=e;return t(["zure mezua errepikatu du"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["Ez dago jakinarazpen gehiago"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t([r(n(0)),"kin erreakzionatu zuen"])},migrated_to:e=>{const{normalize:t}=e;return t(["hona migratua:"])},follow_request:e=>{const{normalize:t}=e;return t(["jarraitu nahi zaitu"])},error:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["Errorea jakinarazpenak eskuratzean: ",r(n(0))])}}}},9923:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Viestiä ei löydetty…"])},favorited_you:e=>{const{normalize:t}=e;return t(["tykkäsi viestistäsi"])},followed_you:e=>{const{normalize:t}=e;return t(["seuraa sinua"])},load_older:e=>{const{normalize:t}=e;return t(["Lataa vanhempia ilmoituksia"])},notifications:e=>{const{normalize:t}=e;return t(["Ilmoitukset"])},read:e=>{const{normalize:t}=e;return t(["Lue!"])},repeated_you:e=>{const{normalize:t}=e;return t(["toisti viestisi"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["Ei enempää ilmoituksia"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["lisäsi reaktion ",r(n(0))])},migrated_to:e=>{const{normalize:t}=e;return t(["siirtyi sivulle"])},follow_request:e=>{const{normalize:t}=e;return t(["haluaa seurata sinua"])}}}},8375:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Message inconnu, recherche en cours…"])},favorited_you:e=>{const{normalize:t}=e;return t(["a aimé votre statut"])},followed_you:e=>{const{normalize:t}=e;return t(["vous suit"])},load_older:e=>{const{normalize:t}=e;return t(["Charger les notifications précédentes"])},notifications:e=>{const{normalize:t}=e;return t(["Notifications"])},read:e=>{const{normalize:t}=e;return t(["Lu !"])},repeated_you:e=>{const{normalize:t}=e;return t(["a partagé votre statut"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["Aucune notification supplémentaire"])},migrated_to:e=>{const{normalize:t}=e;return t(["a migré à"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["a réagi avec ",r(n(0))])},follow_request:e=>{const{normalize:t}=e;return t(["veut vous suivre"])},error:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["Erreur de chargement des notifications : ",r(n(0))])},poll_ended:e=>{const{normalize:t}=e;return t(["Sondage terminé"])},submitted_report:e=>{const{normalize:t}=e;return t(["Rapport envoyé"])}}}},1746:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Post anaithnid. Cuardach dó…"])},favorited_you:e=>{const{normalize:t}=e;return t(["toghadh le do phost"])},followed_you:e=>{const{normalize:t}=e;return t(["lean tú"])},load_older:e=>{const{normalize:t}=e;return t(["Luchtaigh fógraí aosta"])},notifications:e=>{const{normalize:t}=e;return t(["Fógraí"])},read:e=>{const{normalize:t}=e;return t(["Léigh!"])},repeated_you:e=>{const{normalize:t}=e;return t(["athphostáil tú"])}}}},9369:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["סטאטוס לא ידוע, מחפש…"])},favorited_you:e=>{const{normalize:t}=e;return t(["אהב את הסטטוס שלך"])},followed_you:e=>{const{normalize:t}=e;return t(["עקב אחריך"])},load_older:e=>{const{normalize:t}=e;return t(["טען התראות ישנות"])},notifications:e=>{const{normalize:t}=e;return t(["התראות"])},read:e=>{const{normalize:t}=e;return t(["קרא!"])},repeated_you:e=>{const{normalize:t}=e;return t(["חזר על הסטטוס שלך"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["לא עוד התראות"])}}}},377:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{followed_you:e=>{const{normalize:t}=e;return t(["követ téged"])},notifications:e=>{const{normalize:t}=e;return t(["Értesítések"])},read:e=>{const{normalize:t}=e;return t(["Olvasva!"])}}}},6710:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{followed_you:e=>{const{normalize:t}=e;return t(["ti segue"])},notifications:e=>{const{normalize:t}=e;return t(["Notifiche"])},read:e=>{const{normalize:t}=e;return t(["Letto!"])},broken_favorite:e=>{const{normalize:t}=e;return t(["Stato sconosciuto, lo sto cercando…"])},favorited_you:e=>{const{normalize:t}=e;return t(["ha gradito"])},load_older:e=>{const{normalize:t}=e;return t(["Carica notifiche precedenti"])},repeated_you:e=>{const{normalize:t}=e;return t(["ha condiviso il tuo messaggio"])},follow_request:e=>{const{normalize:t}=e;return t(["vuole seguirti"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["Fine delle notifiche"])},migrated_to:e=>{const{normalize:t}=e;return t(["è migrato verso"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["ha reagito con ",r(n(0))])},error:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["Errore nel caricare le notifiche: ",r(n(0))])}}}},6534:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["ステータスがみつかりません。さがしています…"])},favorited_you:e=>{const{normalize:t}=e;return t(["あなたのステータスがおきにいりされました"])},followed_you:e=>{const{normalize:t}=e;return t(["フォローされました"])},load_older:e=>{const{normalize:t}=e;return t(["ふるいつうちをみる"])},notifications:e=>{const{normalize:t}=e;return t(["つうち"])},read:e=>{const{normalize:t}=e;return t(["よんだ!"])},repeated_you:e=>{const{normalize:t}=e;return t(["あなたのステータスがリピートされました"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["つうちはありません"])},error:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["つうちをとりにいくことに、しっぱいしました: ",r(n(0))])},follow_request:e=>{const{normalize:t}=e;return t(["あなたをフォローしたいです"])},migrated_to:e=>{const{normalize:t}=e;return t(["インスタンスを、ひっこしました"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t([r(n(0))," でリアクションしました"])},poll_ended:e=>{const{normalize:t}=e;return t(["とうひょうが、おわりました"])},submitted_report:e=>{const{normalize:t}=e;return t(["つうほうしました"])}}}},333:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["ステータスが見つかりません。探しています…"])},favorited_you:e=>{const{normalize:t}=e;return t(["あなたのステータスがお気に入りされました"])},followed_you:e=>{const{normalize:t}=e;return t(["フォローされました"])},load_older:e=>{const{normalize:t}=e;return t(["古い通知をみる"])},notifications:e=>{const{normalize:t}=e;return t(["通知"])},read:e=>{const{normalize:t}=e;return t(["読んだ!"])},repeated_you:e=>{const{normalize:t}=e;return t(["あなたのステータスがリピートされました"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["通知はありません"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t([r(n(0))," でリアクションしました"])},migrated_to:e=>{const{normalize:t}=e;return t(["インスタンスを引っ越しました"])},follow_request:e=>{const{normalize:t}=e;return t(["あなたをフォローしたいです"])},error:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["通知の取得に失敗しました: ",r(n(0))])}}}},7379:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["알 수 없는 게시물입니다, 검색합니다…"])},favorited_you:e=>{const{normalize:t}=e;return t(["관심을 가짐"])},followed_you:e=>{const{normalize:t}=e;return t(["팔로우함"])},load_older:e=>{const{normalize:t}=e;return t(["이전 알림 불러오기"])},notifications:e=>{const{normalize:t}=e;return t(["알림"])},read:e=>{const{normalize:t}=e;return t(["읽음!"])},repeated_you:e=>{const{normalize:t}=e;return t(["리핏함"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["알림이 없습니다"])},migrated_to:e=>{const{normalize:t}=e;return t(["이사했습니다"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t([r(n(0))," 로 반응했습니다"])},error:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["알림 불러오기 실패: ",r(n(0))])},follow_request:e=>{const{normalize:t}=e;return t(["팔로우 요청"])},submitted_report:e=>{const{normalize:t}=e;return t(["신고 내용을 전송함"])},poll_ended:e=>{const{normalize:t}=e;return t(["투표가 끝남"])}}}},8103:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Ukjent status, leter etter den…"])},favorited_you:e=>{const{normalize:t}=e;return t(["likte din status"])},followed_you:e=>{const{normalize:t}=e;return t(["fulgte deg"])},load_older:e=>{const{normalize:t}=e;return t(["Last eldre varsler"])},notifications:e=>{const{normalize:t}=e;return t(["Varslinger"])},read:e=>{const{normalize:t}=e;return t(["Les!"])},repeated_you:e=>{const{normalize:t}=e;return t(["Gjentok din status"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["Ingen gjenstående varsler"])},follow_request:e=>{const{normalize:t}=e;return t(["ønsker å følge deg"])}}}},728:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Onbekend bericht, aan het zoeken…"])},favorited_you:e=>{const{normalize:t}=e;return t(["vond je bericht leuk"])},followed_you:e=>{const{normalize:t}=e;return t(["volgt jou"])},load_older:e=>{const{normalize:t}=e;return t(["Oudere meldingen laden"])},notifications:e=>{const{normalize:t}=e;return t(["Meldingen"])},read:e=>{const{normalize:t}=e;return t(["Gelezen!"])},repeated_you:e=>{const{normalize:t}=e;return t(["herhaalde je bericht"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["Geen meldingen meer"])},migrated_to:e=>{const{normalize:t}=e;return t(["is gemigreerd naar"])},follow_request:e=>{const{normalize:t}=e;return t(["wil je volgen"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["reageerde met ",r(n(0))])},error:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["Fout bij ophalen van meldingen: ",r(n(0))])},poll_ended:e=>{const{normalize:t}=e;return t(["peiling is beëindigd"])}}}},3932:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Estatut desconegut, sèm a lo cercar..."])},favorited_you:e=>{const{normalize:t}=e;return t(["a aimat vòstre estatut"])},followed_you:e=>{const{normalize:t}=e;return t(["vos a seguit"])},load_older:e=>{const{normalize:t}=e;return t(["Cargar las notificacions mai ancianas"])},notifications:e=>{const{normalize:t}=e;return t(["Notficacions"])},read:e=>{const{normalize:t}=e;return t(["Legit !"])},repeated_you:e=>{const{normalize:t}=e;return t(["a repetit vòstre estatut"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["Pas mai de notificacions"])}}}},7028:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Nieznany status, szukam go…"])},favorited_you:e=>{const{normalize:t}=e;return t(["dodał(-a) twój status do ulubionych"])},followed_you:e=>{const{normalize:t}=e;return t(["obserwuje cię"])},load_older:e=>{const{normalize:t}=e;return t(["Załaduj starsze powiadomienia"])},notifications:e=>{const{normalize:t}=e;return t(["Powiadomienia"])},read:e=>{const{normalize:t}=e;return t(["Przeczytane!"])},repeated_you:e=>{const{normalize:t}=e;return t(["powtórzył(-a) twój status"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["Nie masz więcej powiadomień"])},migrated_to:e=>{const{normalize:t}=e;return t(["wyemigrował do"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["zareagował z ",r(n(0))])},follow_request:e=>{const{normalize:t}=e;return t(["chce ciebie obserwować"])},error:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["Błąd pobierania powiadomień: ",r(n(0))])}}}},789:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Publicação desconhecida, a procurar…"])},favorited_you:e=>{const{normalize:t}=e;return t(["gostou do teu post"])},followed_you:e=>{const{normalize:t}=e;return t(["seguiu-te"])},load_older:e=>{const{normalize:t}=e;return t(["Carregar notificações antigas"])},notifications:e=>{const{normalize:t}=e;return t(["Notificações"])},read:e=>{const{normalize:t}=e;return t(["Lido!"])},repeated_you:e=>{const{normalize:t}=e;return t(["partilhou o teu post"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["Sem mais notificações"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["reagiu com ",r(n(0))])},migrated_to:e=>{const{normalize:t}=e;return t(["migrou para"])},follow_request:e=>{const{normalize:t}=e;return t(["quer seguir-te"])},error:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["Erro ao obter notificações: ",r(n(0))])}}}},5032:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{followed_you:e=>{const{normalize:t}=e;return t(["te-a urmărit"])},notifications:e=>{const{normalize:t}=e;return t(["Notificări"])},read:e=>{const{normalize:t}=e;return t(["Citit!"])}}}},3460:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Неизвестный статус, ищем…"])},favorited_you:e=>{const{normalize:t}=e;return t(["нравится ваш статус"])},followed_you:e=>{const{normalize:t}=e;return t(["начал(а) читать вас"])},load_older:e=>{const{normalize:t}=e;return t(["Загрузить старые уведомления"])},notifications:e=>{const{normalize:t}=e;return t(["Уведомления"])},read:e=>{const{normalize:t}=e;return t(["Прочесть"])},repeated_you:e=>{const{normalize:t}=e;return t(["повторил(а) ваш статус"])},follow_request:e=>{const{normalize:t}=e;return t(["хочет читать вас"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["добавил(а) реакцию: ",r(n(0))])},migrated_to:e=>{const{normalize:t}=e;return t(["перехал на"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["Нет дальнейших уведомлений"])},error:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["Ошибка при обновлении уведомлений: ",r(n(0))])}}}},6139:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["Neznáma správa, dohľadávam ju…"])},error:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["Chyba získavania upozornení: ",r(n(0))])},favorited_you:e=>{const{normalize:t}=e;return t(["si obľúbil tvoju správu"])},followed_you:e=>{const{normalize:t}=e;return t(["ťa nasleduje"])},follow_request:e=>{const{normalize:t}=e;return t(["ťa chce nasledovať"])},load_older:e=>{const{normalize:t}=e;return t(["Nahrať staršie upozornenia"])},notifications:e=>{const{normalize:t}=e;return t(["Upozornenia"])},read:e=>{const{normalize:t}=e;return t(["Prečítané!"])},repeated_you:e=>{const{normalize:t}=e;return t(["zopakoval tvoju správu"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["Žiadne ďalšie upozornenia"])},migrated_to:e=>{const{normalize:t}=e;return t(["sa presťahoval na"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["reagoval nasledovne ",r(n(0))])}}}},5751:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{}}},4389:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>n});const n={notifications:{broken_favorite:e=>{const{normalize:t}=e;return t(["未知的状态,正在搜索中…"])},favorited_you:e=>{const{normalize:t}=e;return t(["喜欢了你的状态"])},followed_you:e=>{const{normalize:t}=e;return t(["关注了你"])},load_older:e=>{const{normalize:t}=e;return t(["加载更早的通知"])},notifications:e=>{const{normalize:t}=e;return t(["通知"])},read:e=>{const{normalize:t}=e;return t(["已阅!"])},repeated_you:e=>{const{normalize:t}=e;return t(["转发了你的状态"])},no_more_notifications:e=>{const{normalize:t}=e;return t(["没有更多的通知"])},reacted_with:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["作出了 ",r(n(0))," 的反应"])},migrated_to:e=>{const{normalize:t}=e;return t(["迁移到了"])},follow_request:e=>{const{normalize:t}=e;return t(["想要关注你"])},error:e=>{const{normalize:t,interpolate:r,list:n}=e;return t(["取得通知时发生错误:",r(n(0))])},poll_ended:e=>{const{normalize:t}=e;return t(["投票结束了"])},submitted_report:e=>{const{normalize:t}=e;return t(["提交举报"])}}}},5573:e=>{"use strict";var t=/["'&<>]/;e.exports=function(e){var r,n=""+e,o=t.exec(n);if(!o)return n;var a="",i=0,s=0;for(i=o.index;i<n.length;i++){switch(n.charCodeAt(i)){case 34:r="&quot;";break;case 38:r="&amp;";break;case 39:r="&#39;";break;case 60:r="&lt;";break;case 62:r="&gt;";break;default:continue}s!==i&&(a+=n.substring(s,i)),s=i+1,a+=r}return s!==i?a+n.substring(s,i):a}},9483:function(e,t){!function(r){"object"==typeof t&&void 0!==e?e.exports=r():"function"==typeof define&&define.amd?define([],r):("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).localforage=r()}((function(){return function e(t,r,n){function o(i,s){if(!r[i]){if(!t[i]){var l="function"==typeof require&&require;if(!s&&l)return l(i,!0);if(a)return a(i,!0);var c=new Error("Cannot find module '"+i+"'");throw c.code="MODULE_NOT_FOUND",c}var u=r[i]={exports:{}};t[i][0].call(u.exports,(function(e){return o(t[i][1][e]||e)}),u,u.exports,e,t,r,n)}return r[i].exports}for(var a="function"==typeof require&&require,i=0;i<n.length;i++)o(n[i]);return o}({1:[function(e,t,r){(function(e){"use strict";var r,n,o=e.MutationObserver||e.WebKitMutationObserver;if(o){var a=0,i=new o(u),s=e.document.createTextNode("");i.observe(s,{characterData:!0}),r=function(){s.data=a=++a%2}}else if(e.setImmediate||void 0===e.MessageChannel)r="document"in e&&"onreadystatechange"in e.document.createElement("script")?function(){var t=e.document.createElement("script");t.onreadystatechange=function(){u(),t.onreadystatechange=null,t.parentNode.removeChild(t),t=null},e.document.documentElement.appendChild(t)}:function(){setTimeout(u,0)};else{var l=new e.MessageChannel;l.port1.onmessage=u,r=function(){l.port2.postMessage(0)}}var c=[];function u(){var e,t;n=!0;for(var r=c.length;r;){for(t=c,c=[],e=-1;++e<r;)t[e]();r=c.length}n=!1}t.exports=function(e){1!==c.push(e)||n||r()}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],2:[function(e,t,r){"use strict";var n=e(1);function o(){}var a={},i=["REJECTED"],s=["FULFILLED"],l=["PENDING"];function c(e){if("function"!=typeof e)throw new TypeError("resolver must be a function");this.state=l,this.queue=[],this.outcome=void 0,e!==o&&d(this,e)}function u(e,t,r){this.promise=e,"function"==typeof t&&(this.onFulfilled=t,this.callFulfilled=this.otherCallFulfilled),"function"==typeof r&&(this.onRejected=r,this.callRejected=this.otherCallRejected)}function f(e,t,r){n((function(){var n;try{n=t(r)}catch(t){return a.reject(e,t)}n===e?a.reject(e,new TypeError("Cannot resolve promise with itself")):a.resolve(e,n)}))}function p(e){var t=e&&e.then;if(e&&("object"==typeof e||"function"==typeof e)&&"function"==typeof t)return function(){t.apply(e,arguments)}}function d(e,t){var r=!1;function n(t){r||(r=!0,a.reject(e,t))}function o(t){r||(r=!0,a.resolve(e,t))}var i=m((function(){t(o,n)}));"error"===i.status&&n(i.value)}function m(e,t){var r={};try{r.value=e(t),r.status="success"}catch(e){r.status="error",r.value=e}return r}t.exports=c,c.prototype.catch=function(e){return this.then(null,e)},c.prototype.then=function(e,t){if("function"!=typeof e&&this.state===s||"function"!=typeof t&&this.state===i)return this;var r=new this.constructor(o);return this.state!==l?f(r,this.state===s?e:t,this.outcome):this.queue.push(new u(r,e,t)),r},u.prototype.callFulfilled=function(e){a.resolve(this.promise,e)},u.prototype.otherCallFulfilled=function(e){f(this.promise,this.onFulfilled,e)},u.prototype.callRejected=function(e){a.reject(this.promise,e)},u.prototype.otherCallRejected=function(e){f(this.promise,this.onRejected,e)},a.resolve=function(e,t){var r=m(p,t);if("error"===r.status)return a.reject(e,r.value);var n=r.value;if(n)d(e,n);else{e.state=s,e.outcome=t;for(var o=-1,i=e.queue.length;++o<i;)e.queue[o].callFulfilled(t)}return e},a.reject=function(e,t){e.state=i,e.outcome=t;for(var r=-1,n=e.queue.length;++r<n;)e.queue[r].callRejected(t);return e},c.resolve=function(e){return e instanceof this?e:a.resolve(new this(o),e)},c.reject=function(e){var t=new this(o);return a.reject(t,e)},c.all=function(e){var t=this;if("[object Array]"!==Object.prototype.toString.call(e))return this.reject(new TypeError("must be an array"));var r=e.length,n=!1;if(!r)return this.resolve([]);for(var i=new Array(r),s=0,l=-1,c=new this(o);++l<r;)u(e[l],l);return c;function u(e,o){t.resolve(e).then((function(e){i[o]=e,++s!==r||n||(n=!0,a.resolve(c,i))}),(function(e){n||(n=!0,a.reject(c,e))}))}},c.race=function(e){if("[object Array]"!==Object.prototype.toString.call(e))return this.reject(new TypeError("must be an array"));var t=e.length,r=!1;if(!t)return this.resolve([]);for(var n,i=-1,s=new this(o);++i<t;)n=e[i],this.resolve(n).then((function(e){r||(r=!0,a.resolve(s,e))}),(function(e){r||(r=!0,a.reject(s,e))}));return s}},{1:1}],3:[function(e,t,r){(function(t){"use strict";"function"!=typeof t.Promise&&(t.Promise=e(2))}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{2:2}],4:[function(e,t,r){"use strict";var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=function(){try{if("undefined"!=typeof indexedDB)return indexedDB;if("undefined"!=typeof webkitIndexedDB)return webkitIndexedDB;if("undefined"!=typeof mozIndexedDB)return mozIndexedDB;if("undefined"!=typeof OIndexedDB)return OIndexedDB;if("undefined"!=typeof msIndexedDB)return msIndexedDB}catch(e){return}}();function a(e,t){e=e||[],t=t||{};try{return new Blob(e,t)}catch(o){if("TypeError"!==o.name)throw o;for(var r=new("undefined"!=typeof BlobBuilder?BlobBuilder:"undefined"!=typeof MSBlobBuilder?MSBlobBuilder:"undefined"!=typeof MozBlobBuilder?MozBlobBuilder:WebKitBlobBuilder),n=0;n<e.length;n+=1)r.append(e[n]);return r.getBlob(t.type)}}"undefined"==typeof Promise&&e(3);var i=Promise;function s(e,t){t&&e.then((function(e){t(null,e)}),(function(e){t(e)}))}function l(e,t,r){"function"==typeof t&&e.then(t),"function"==typeof r&&e.catch(r)}function c(e){return"string"!=typeof e&&(console.warn(e+" used as a key, but it is not a string."),e=String(e)),e}function u(){if(arguments.length&&"function"==typeof arguments[arguments.length-1])return arguments[arguments.length-1]}var f="local-forage-detect-blob-support",p=void 0,d={},m=Object.prototype.toString,h="readonly",_="readwrite";function v(e){var t=d[e.name],r={};r.promise=new i((function(e,t){r.resolve=e,r.reject=t})),t.deferredOperations.push(r),t.dbReady?t.dbReady=t.dbReady.then((function(){return r.promise})):t.dbReady=r.promise}function g(e){var t=d[e.name].deferredOperations.pop();if(t)return t.resolve(),t.promise}function y(e,t){var r=d[e.name].deferredOperations.pop();if(r)return r.reject(t),r.promise}function b(e,t){return new i((function(r,n){if(d[e.name]=d[e.name]||{forages:[],db:null,dbReady:null,deferredOperations:[]},e.db){if(!t)return r(e.db);v(e),e.db.close()}var a=[e.name];t&&a.push(e.version);var i=o.open.apply(o,a);t&&(i.onupgradeneeded=function(t){var r=i.result;try{r.createObjectStore(e.storeName),t.oldVersion<=1&&r.createObjectStore(f)}catch(r){if("ConstraintError"!==r.name)throw r;console.warn('The database "'+e.name+'" has been upgraded from version '+t.oldVersion+" to version "+t.newVersion+', but the storage "'+e.storeName+'" already exists.')}}),i.onerror=function(e){e.preventDefault(),n(i.error)},i.onsuccess=function(){var t=i.result;t.onversionchange=function(e){e.target.close()},r(t),g(e)}}))}function w(e){return b(e,!1)}function x(e){return b(e,!0)}function z(e,t){if(!e.db)return!0;var r=!e.db.objectStoreNames.contains(e.storeName),n=e.version<e.db.version,o=e.version>e.db.version;if(n&&(e.version!==t&&console.warn('The database "'+e.name+"\" can't be downgraded from version "+e.db.version+" to version "+e.version+"."),e.version=e.db.version),o||r){if(r){var a=e.db.version+1;a>e.version&&(e.version=a)}return!0}return!1}function k(e){return a([function(e){for(var t=e.length,r=new ArrayBuffer(t),n=new Uint8Array(r),o=0;o<t;o++)n[o]=e.charCodeAt(o);return r}(atob(e.data))],{type:e.type})}function O(e){return e&&e.__local_forage_encoded_blob}function j(e){var t=this,r=t._initReady().then((function(){var e=d[t._dbInfo.name];if(e&&e.dbReady)return e.dbReady}));return l(r,e,e),r}function E(e,t,r,n){void 0===n&&(n=1);try{var o=e.db.transaction(e.storeName,t);r(null,o)}catch(o){if(n>0&&(!e.db||"InvalidStateError"===o.name||"NotFoundError"===o.name))return i.resolve().then((function(){if(!e.db||"NotFoundError"===o.name&&!e.db.objectStoreNames.contains(e.storeName)&&e.version<=e.db.version)return e.db&&(e.version=e.db.version+1),x(e)})).then((function(){return function(e){v(e);for(var t=d[e.name],r=t.forages,n=0;n<r.length;n++){var o=r[n];o._dbInfo.db&&(o._dbInfo.db.close(),o._dbInfo.db=null)}return e.db=null,w(e).then((function(t){return e.db=t,z(e)?x(e):t})).then((function(n){e.db=t.db=n;for(var o=0;o<r.length;o++)r[o]._dbInfo.db=n})).catch((function(t){throw y(e,t),t}))}(e).then((function(){E(e,t,r,n-1)}))})).catch(r);r(o)}}var I={_driver:"asyncStorage",_initStorage:function(e){var t=this,r={db:null};if(e)for(var n in e)r[n]=e[n];var o=d[r.name];o||(o={forages:[],db:null,dbReady:null,deferredOperations:[]},d[r.name]=o),o.forages.push(t),t._initReady||(t._initReady=t.ready,t.ready=j);var a=[];function s(){return i.resolve()}for(var l=0;l<o.forages.length;l++){var c=o.forages[l];c!==t&&a.push(c._initReady().catch(s))}var u=o.forages.slice(0);return i.all(a).then((function(){return r.db=o.db,w(r)})).then((function(e){return r.db=e,z(r,t._defaultConfig.version)?x(r):e})).then((function(e){r.db=o.db=e,t._dbInfo=r;for(var n=0;n<u.length;n++){var a=u[n];a!==t&&(a._dbInfo.db=r.db,a._dbInfo.version=r.version)}}))},_support:function(){try{if(!o||!o.open)return!1;var e="undefined"!=typeof openDatabase&&/(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent)&&!/Chrome/.test(navigator.userAgent)&&!/BlackBerry/.test(navigator.platform),t="function"==typeof fetch&&-1!==fetch.toString().indexOf("[native code");return(!e||t)&&"undefined"!=typeof indexedDB&&"undefined"!=typeof IDBKeyRange}catch(e){return!1}}(),iterate:function(e,t){var r=this,n=new i((function(t,n){r.ready().then((function(){E(r._dbInfo,h,(function(o,a){if(o)return n(o);try{var i=a.objectStore(r._dbInfo.storeName).openCursor(),s=1;i.onsuccess=function(){var r=i.result;if(r){var n=r.value;O(n)&&(n=k(n));var o=e(n,r.key,s++);void 0!==o?t(o):r.continue()}else t()},i.onerror=function(){n(i.error)}}catch(e){n(e)}}))})).catch(n)}));return s(n,t),n},getItem:function(e,t){var r=this;e=c(e);var n=new i((function(t,n){r.ready().then((function(){E(r._dbInfo,h,(function(o,a){if(o)return n(o);try{var i=a.objectStore(r._dbInfo.storeName).get(e);i.onsuccess=function(){var e=i.result;void 0===e&&(e=null),O(e)&&(e=k(e)),t(e)},i.onerror=function(){n(i.error)}}catch(e){n(e)}}))})).catch(n)}));return s(n,t),n},setItem:function(e,t,r){var n=this;e=c(e);var o=new i((function(r,o){var s;n.ready().then((function(){return s=n._dbInfo,"[object Blob]"===m.call(t)?function(e){return"boolean"==typeof p?i.resolve(p):function(e){return new i((function(t){var r=e.transaction(f,_),n=a([""]);r.objectStore(f).put(n,"key"),r.onabort=function(e){e.preventDefault(),e.stopPropagation(),t(!1)},r.oncomplete=function(){var e=navigator.userAgent.match(/Chrome\/(\d+)/),r=navigator.userAgent.match(/Edge\//);t(r||!e||parseInt(e[1],10)>=43)}})).catch((function(){return!1}))}(e).then((function(e){return p=e}))}(s.db).then((function(e){return e?t:(r=t,new i((function(e,t){var n=new FileReader;n.onerror=t,n.onloadend=function(t){var n=btoa(t.target.result||"");e({__local_forage_encoded_blob:!0,data:n,type:r.type})},n.readAsBinaryString(r)})));var r})):t})).then((function(t){E(n._dbInfo,_,(function(a,i){if(a)return o(a);try{var s=i.objectStore(n._dbInfo.storeName);null===t&&(t=void 0);var l=s.put(t,e);i.oncomplete=function(){void 0===t&&(t=null),r(t)},i.onabort=i.onerror=function(){var e=l.error?l.error:l.transaction.error;o(e)}}catch(e){o(e)}}))})).catch(o)}));return s(o,r),o},removeItem:function(e,t){var r=this;e=c(e);var n=new i((function(t,n){r.ready().then((function(){E(r._dbInfo,_,(function(o,a){if(o)return n(o);try{var i=a.objectStore(r._dbInfo.storeName).delete(e);a.oncomplete=function(){t()},a.onerror=function(){n(i.error)},a.onabort=function(){var e=i.error?i.error:i.transaction.error;n(e)}}catch(e){n(e)}}))})).catch(n)}));return s(n,t),n},clear:function(e){var t=this,r=new i((function(e,r){t.ready().then((function(){E(t._dbInfo,_,(function(n,o){if(n)return r(n);try{var a=o.objectStore(t._dbInfo.storeName).clear();o.oncomplete=function(){e()},o.onabort=o.onerror=function(){var e=a.error?a.error:a.transaction.error;r(e)}}catch(e){r(e)}}))})).catch(r)}));return s(r,e),r},length:function(e){var t=this,r=new i((function(e,r){t.ready().then((function(){E(t._dbInfo,h,(function(n,o){if(n)return r(n);try{var a=o.objectStore(t._dbInfo.storeName).count();a.onsuccess=function(){e(a.result)},a.onerror=function(){r(a.error)}}catch(e){r(e)}}))})).catch(r)}));return s(r,e),r},key:function(e,t){var r=this,n=new i((function(t,n){e<0?t(null):r.ready().then((function(){E(r._dbInfo,h,(function(o,a){if(o)return n(o);try{var i=a.objectStore(r._dbInfo.storeName),s=!1,l=i.openKeyCursor();l.onsuccess=function(){var r=l.result;r?0===e||s?t(r.key):(s=!0,r.advance(e)):t(null)},l.onerror=function(){n(l.error)}}catch(e){n(e)}}))})).catch(n)}));return s(n,t),n},keys:function(e){var t=this,r=new i((function(e,r){t.ready().then((function(){E(t._dbInfo,h,(function(n,o){if(n)return r(n);try{var a=o.objectStore(t._dbInfo.storeName).openKeyCursor(),i=[];a.onsuccess=function(){var t=a.result;t?(i.push(t.key),t.continue()):e(i)},a.onerror=function(){r(a.error)}}catch(e){r(e)}}))})).catch(r)}));return s(r,e),r},dropInstance:function(e,t){t=u.apply(this,arguments);var r=this.config();(e="function"!=typeof e&&e||{}).name||(e.name=e.name||r.name,e.storeName=e.storeName||r.storeName);var n,a=this;if(e.name){var l=e.name===r.name&&a._dbInfo.db,c=l?i.resolve(a._dbInfo.db):w(e).then((function(t){var r=d[e.name],n=r.forages;r.db=t;for(var o=0;o<n.length;o++)n[o]._dbInfo.db=t;return t}));n=e.storeName?c.then((function(t){if(t.objectStoreNames.contains(e.storeName)){var r=t.version+1;v(e);var n=d[e.name],a=n.forages;t.close();for(var s=0;s<a.length;s++){var l=a[s];l._dbInfo.db=null,l._dbInfo.version=r}var c=new i((function(t,n){var a=o.open(e.name,r);a.onerror=function(e){a.result.close(),n(e)},a.onupgradeneeded=function(){a.result.deleteObjectStore(e.storeName)},a.onsuccess=function(){var e=a.result;e.close(),t(e)}}));return c.then((function(e){n.db=e;for(var t=0;t<a.length;t++){var r=a[t];r._dbInfo.db=e,g(r._dbInfo)}})).catch((function(t){throw(y(e,t)||i.resolve()).catch((function(){})),t}))}})):c.then((function(t){v(e);var r=d[e.name],n=r.forages;t.close();for(var a=0;a<n.length;a++)n[a]._dbInfo.db=null;var s=new i((function(t,r){var n=o.deleteDatabase(e.name);n.onerror=function(){var e=n.result;e&&e.close(),r(n.error)},n.onblocked=function(){console.warn('dropInstance blocked for database "'+e.name+'" until all open connections are closed')},n.onsuccess=function(){var e=n.result;e&&e.close(),t(e)}}));return s.then((function(e){r.db=e;for(var t=0;t<n.length;t++)g(n[t]._dbInfo)})).catch((function(t){throw(y(e,t)||i.resolve()).catch((function(){})),t}))}))}else n=i.reject("Invalid arguments");return s(n,t),n}},S="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",N=/^~~local_forage_type~([^~]+)~/,L="__lfsc__:",R=L.length,F="arbf",A="blob",T="si08",C="ui08",P="uic8",D="si16",M="si32",W="ur16",U="ui32",$="fl32",q="fl64",V=R+F.length,B=Object.prototype.toString;function H(e){var t,r,n,o,a,i=.75*e.length,s=e.length,l=0;"="===e[e.length-1]&&(i--,"="===e[e.length-2]&&i--);var c=new ArrayBuffer(i),u=new Uint8Array(c);for(t=0;t<s;t+=4)r=S.indexOf(e[t]),n=S.indexOf(e[t+1]),o=S.indexOf(e[t+2]),a=S.indexOf(e[t+3]),u[l++]=r<<2|n>>4,u[l++]=(15&n)<<4|o>>2,u[l++]=(3&o)<<6|63&a;return c}function G(e){var t,r=new Uint8Array(e),n="";for(t=0;t<r.length;t+=3)n+=S[r[t]>>2],n+=S[(3&r[t])<<4|r[t+1]>>4],n+=S[(15&r[t+1])<<2|r[t+2]>>6],n+=S[63&r[t+2]];return r.length%3==2?n=n.substring(0,n.length-1)+"=":r.length%3==1&&(n=n.substring(0,n.length-2)+"=="),n}var Y={serialize:function(e,t){var r="";if(e&&(r=B.call(e)),e&&("[object ArrayBuffer]"===r||e.buffer&&"[object ArrayBuffer]"===B.call(e.buffer))){var n,o=L;e instanceof ArrayBuffer?(n=e,o+=F):(n=e.buffer,"[object Int8Array]"===r?o+=T:"[object Uint8Array]"===r?o+=C:"[object Uint8ClampedArray]"===r?o+=P:"[object Int16Array]"===r?o+=D:"[object Uint16Array]"===r?o+=W:"[object Int32Array]"===r?o+=M:"[object Uint32Array]"===r?o+=U:"[object Float32Array]"===r?o+=$:"[object Float64Array]"===r?o+=q:t(new Error("Failed to get type for BinaryArray"))),t(o+G(n))}else if("[object Blob]"===r){var a=new FileReader;a.onload=function(){var r="~~local_forage_type~"+e.type+"~"+G(this.result);t("__lfsc__:blob"+r)},a.readAsArrayBuffer(e)}else try{t(JSON.stringify(e))}catch(r){console.error("Couldn't convert value into a JSON string: ",e),t(null,r)}},deserialize:function(e){if(e.substring(0,R)!==L)return JSON.parse(e);var t,r=e.substring(V),n=e.substring(R,V);if(n===A&&N.test(r)){var o=r.match(N);t=o[1],r=r.substring(o[0].length)}var i=H(r);switch(n){case F:return i;case A:return a([i],{type:t});case T:return new Int8Array(i);case C:return new Uint8Array(i);case P:return new Uint8ClampedArray(i);case D:return new Int16Array(i);case W:return new Uint16Array(i);case M:return new Int32Array(i);case U:return new Uint32Array(i);case $:return new Float32Array(i);case q:return new Float64Array(i);default:throw new Error("Unkown type: "+n)}},stringToBuffer:H,bufferToString:G};function X(e,t,r,n){e.executeSql("CREATE TABLE IF NOT EXISTS "+t.storeName+" (id INTEGER PRIMARY KEY, key unique, value)",[],r,n)}function K(e,t,r,n,o,a){e.executeSql(r,n,o,(function(e,i){i.code===i.SYNTAX_ERR?e.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name = ?",[t.storeName],(function(e,s){s.rows.length?a(e,i):X(e,t,(function(){e.executeSql(r,n,o,a)}),a)}),a):a(e,i)}),a)}function J(e,t,r,n){var o=this;e=c(e);var a=new i((function(a,i){o.ready().then((function(){void 0===t&&(t=null);var s=t,l=o._dbInfo;l.serializer.serialize(t,(function(t,c){c?i(c):l.db.transaction((function(r){K(r,l,"INSERT OR REPLACE INTO "+l.storeName+" (key, value) VALUES (?, ?)",[e,t],(function(){a(s)}),(function(e,t){i(t)}))}),(function(t){if(t.code===t.QUOTA_ERR){if(n>0)return void a(J.apply(o,[e,s,r,n-1]));i(t)}}))}))})).catch(i)}));return s(a,r),a}function Q(e){return new i((function(t,r){e.transaction((function(n){n.executeSql("SELECT name FROM sqlite_master WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'",[],(function(r,n){for(var o=[],a=0;a<n.rows.length;a++)o.push(n.rows.item(a).name);t({db:e,storeNames:o})}),(function(e,t){r(t)}))}),(function(e){r(e)}))}))}var Z={_driver:"webSQLStorage",_initStorage:function(e){var t=this,r={db:null};if(e)for(var n in e)r[n]="string"!=typeof e[n]?e[n].toString():e[n];var o=new i((function(e,n){try{r.db=openDatabase(r.name,String(r.version),r.description,r.size)}catch(e){return n(e)}r.db.transaction((function(o){X(o,r,(function(){t._dbInfo=r,e()}),(function(e,t){n(t)}))}),n)}));return r.serializer=Y,o},_support:"function"==typeof openDatabase,iterate:function(e,t){var r=this,n=new i((function(t,n){r.ready().then((function(){var o=r._dbInfo;o.db.transaction((function(r){K(r,o,"SELECT * FROM "+o.storeName,[],(function(r,n){for(var a=n.rows,i=a.length,s=0;s<i;s++){var l=a.item(s),c=l.value;if(c&&(c=o.serializer.deserialize(c)),void 0!==(c=e(c,l.key,s+1)))return void t(c)}t()}),(function(e,t){n(t)}))}))})).catch(n)}));return s(n,t),n},getItem:function(e,t){var r=this;e=c(e);var n=new i((function(t,n){r.ready().then((function(){var o=r._dbInfo;o.db.transaction((function(r){K(r,o,"SELECT * FROM "+o.storeName+" WHERE key = ? LIMIT 1",[e],(function(e,r){var n=r.rows.length?r.rows.item(0).value:null;n&&(n=o.serializer.deserialize(n)),t(n)}),(function(e,t){n(t)}))}))})).catch(n)}));return s(n,t),n},setItem:function(e,t,r){return J.apply(this,[e,t,r,1])},removeItem:function(e,t){var r=this;e=c(e);var n=new i((function(t,n){r.ready().then((function(){var o=r._dbInfo;o.db.transaction((function(r){K(r,o,"DELETE FROM "+o.storeName+" WHERE key = ?",[e],(function(){t()}),(function(e,t){n(t)}))}))})).catch(n)}));return s(n,t),n},clear:function(e){var t=this,r=new i((function(e,r){t.ready().then((function(){var n=t._dbInfo;n.db.transaction((function(t){K(t,n,"DELETE FROM "+n.storeName,[],(function(){e()}),(function(e,t){r(t)}))}))})).catch(r)}));return s(r,e),r},length:function(e){var t=this,r=new i((function(e,r){t.ready().then((function(){var n=t._dbInfo;n.db.transaction((function(t){K(t,n,"SELECT COUNT(key) as c FROM "+n.storeName,[],(function(t,r){var n=r.rows.item(0).c;e(n)}),(function(e,t){r(t)}))}))})).catch(r)}));return s(r,e),r},key:function(e,t){var r=this,n=new i((function(t,n){r.ready().then((function(){var o=r._dbInfo;o.db.transaction((function(r){K(r,o,"SELECT key FROM "+o.storeName+" WHERE id = ? LIMIT 1",[e+1],(function(e,r){var n=r.rows.length?r.rows.item(0).key:null;t(n)}),(function(e,t){n(t)}))}))})).catch(n)}));return s(n,t),n},keys:function(e){var t=this,r=new i((function(e,r){t.ready().then((function(){var n=t._dbInfo;n.db.transaction((function(t){K(t,n,"SELECT key FROM "+n.storeName,[],(function(t,r){for(var n=[],o=0;o<r.rows.length;o++)n.push(r.rows.item(o).key);e(n)}),(function(e,t){r(t)}))}))})).catch(r)}));return s(r,e),r},dropInstance:function(e,t){t=u.apply(this,arguments);var r=this.config();(e="function"!=typeof e&&e||{}).name||(e.name=e.name||r.name,e.storeName=e.storeName||r.storeName);var n,o=this;return s(n=e.name?new i((function(t){var n;n=e.name===r.name?o._dbInfo.db:openDatabase(e.name,"","",0),e.storeName?t({db:n,storeNames:[e.storeName]}):t(Q(n))})).then((function(e){return new i((function(t,r){e.db.transaction((function(n){function o(e){return new i((function(t,r){n.executeSql("DROP TABLE IF EXISTS "+e,[],(function(){t()}),(function(e,t){r(t)}))}))}for(var a=[],s=0,l=e.storeNames.length;s<l;s++)a.push(o(e.storeNames[s]));i.all(a).then((function(){t()})).catch((function(e){r(e)}))}),(function(e){r(e)}))}))})):i.reject("Invalid arguments"),t),n}};function ee(e,t){var r=e.name+"/";return e.storeName!==t.storeName&&(r+=e.storeName+"/"),r}var te={_driver:"localStorageWrapper",_initStorage:function(e){var t={};if(e)for(var r in e)t[r]=e[r];return t.keyPrefix=ee(e,this._defaultConfig),!function(){var e="_localforage_support_test";try{return localStorage.setItem(e,!0),localStorage.removeItem(e),!1}catch(e){return!0}}()||localStorage.length>0?(this._dbInfo=t,t.serializer=Y,i.resolve()):i.reject()},_support:function(){try{return"undefined"!=typeof localStorage&&"setItem"in localStorage&&!!localStorage.setItem}catch(e){return!1}}(),iterate:function(e,t){var r=this,n=r.ready().then((function(){for(var t=r._dbInfo,n=t.keyPrefix,o=n.length,a=localStorage.length,i=1,s=0;s<a;s++){var l=localStorage.key(s);if(0===l.indexOf(n)){var c=localStorage.getItem(l);if(c&&(c=t.serializer.deserialize(c)),void 0!==(c=e(c,l.substring(o),i++)))return c}}}));return s(n,t),n},getItem:function(e,t){var r=this;e=c(e);var n=r.ready().then((function(){var t=r._dbInfo,n=localStorage.getItem(t.keyPrefix+e);return n&&(n=t.serializer.deserialize(n)),n}));return s(n,t),n},setItem:function(e,t,r){var n=this;e=c(e);var o=n.ready().then((function(){void 0===t&&(t=null);var r=t;return new i((function(o,a){var i=n._dbInfo;i.serializer.serialize(t,(function(t,n){if(n)a(n);else try{localStorage.setItem(i.keyPrefix+e,t),o(r)}catch(e){"QuotaExceededError"!==e.name&&"NS_ERROR_DOM_QUOTA_REACHED"!==e.name||a(e),a(e)}}))}))}));return s(o,r),o},removeItem:function(e,t){var r=this;e=c(e);var n=r.ready().then((function(){var t=r._dbInfo;localStorage.removeItem(t.keyPrefix+e)}));return s(n,t),n},clear:function(e){var t=this,r=t.ready().then((function(){for(var e=t._dbInfo.keyPrefix,r=localStorage.length-1;r>=0;r--){var n=localStorage.key(r);0===n.indexOf(e)&&localStorage.removeItem(n)}}));return s(r,e),r},length:function(e){var t=this.keys().then((function(e){return e.length}));return s(t,e),t},key:function(e,t){var r=this,n=r.ready().then((function(){var t,n=r._dbInfo;try{t=localStorage.key(e)}catch(e){t=null}return t&&(t=t.substring(n.keyPrefix.length)),t}));return s(n,t),n},keys:function(e){var t=this,r=t.ready().then((function(){for(var e=t._dbInfo,r=localStorage.length,n=[],o=0;o<r;o++){var a=localStorage.key(o);0===a.indexOf(e.keyPrefix)&&n.push(a.substring(e.keyPrefix.length))}return n}));return s(r,e),r},dropInstance:function(e,t){if(t=u.apply(this,arguments),!(e="function"!=typeof e&&e||{}).name){var r=this.config();e.name=e.name||r.name,e.storeName=e.storeName||r.storeName}var n,o=this;return s(n=e.name?new i((function(t){e.storeName?t(ee(e,o._defaultConfig)):t(e.name+"/")})).then((function(e){for(var t=localStorage.length-1;t>=0;t--){var r=localStorage.key(t);0===r.indexOf(e)&&localStorage.removeItem(r)}})):i.reject("Invalid arguments"),t),n}},re=function(e,t){for(var r,n,o=e.length,a=0;a<o;){if((r=e[a])===(n=t)||"number"==typeof r&&"number"==typeof n&&isNaN(r)&&isNaN(n))return!0;a++}return!1},ne=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},oe={},ae={},ie={INDEXEDDB:I,WEBSQL:Z,LOCALSTORAGE:te},se=[ie.INDEXEDDB._driver,ie.WEBSQL._driver,ie.LOCALSTORAGE._driver],le=["dropInstance"],ce=["clear","getItem","iterate","key","keys","length","removeItem","setItem"].concat(le),ue={description:"",driver:se.slice(),name:"localforage",size:4980736,storeName:"keyvaluepairs",version:1};function fe(e,t){e[t]=function(){var r=arguments;return e.ready().then((function(){return e[t].apply(e,r)}))}}function pe(){for(var e=1;e<arguments.length;e++){var t=arguments[e];if(t)for(var r in t)t.hasOwnProperty(r)&&(ne(t[r])?arguments[0][r]=t[r].slice():arguments[0][r]=t[r])}return arguments[0]}var de=function(){function e(t){for(var r in function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),ie)if(ie.hasOwnProperty(r)){var n=ie[r],o=n._driver;this[r]=o,oe[o]||this.defineDriver(n)}this._defaultConfig=pe({},ue),this._config=pe({},this._defaultConfig,t),this._driverSet=null,this._initDriver=null,this._ready=!1,this._dbInfo=null,this._wrapLibraryMethodsWithReady(),this.setDriver(this._config.driver).catch((function(){}))}return e.prototype.config=function(e){if("object"===(void 0===e?"undefined":n(e))){if(this._ready)return new Error("Can't call config() after localforage has been used.");for(var t in e){if("storeName"===t&&(e[t]=e[t].replace(/\W/g,"_")),"version"===t&&"number"!=typeof e[t])return new Error("Database version must be a number.");this._config[t]=e[t]}return!("driver"in e)||!e.driver||this.setDriver(this._config.driver)}return"string"==typeof e?this._config[e]:this._config},e.prototype.defineDriver=function(e,t,r){var n=new i((function(t,r){try{var n=e._driver,o=new Error("Custom driver not compliant; see https://mozilla.github.io/localForage/#definedriver");if(!e._driver)return void r(o);for(var a=ce.concat("_initStorage"),l=0,c=a.length;l<c;l++){var u=a[l];if((!re(le,u)||e[u])&&"function"!=typeof e[u])return void r(o)}!function(){for(var t=function(e){return function(){var t=new Error("Method "+e+" is not implemented by the current driver"),r=i.reject(t);return s(r,arguments[arguments.length-1]),r}},r=0,n=le.length;r<n;r++){var o=le[r];e[o]||(e[o]=t(o))}}();var f=function(r){oe[n]&&console.info("Redefining LocalForage driver: "+n),oe[n]=e,ae[n]=r,t()};"_support"in e?e._support&&"function"==typeof e._support?e._support().then(f,r):f(!!e._support):f(!0)}catch(e){r(e)}}));return l(n,t,r),n},e.prototype.driver=function(){return this._driver||null},e.prototype.getDriver=function(e,t,r){var n=oe[e]?i.resolve(oe[e]):i.reject(new Error("Driver not found."));return l(n,t,r),n},e.prototype.getSerializer=function(e){var t=i.resolve(Y);return l(t,e),t},e.prototype.ready=function(e){var t=this,r=t._driverSet.then((function(){return null===t._ready&&(t._ready=t._initDriver()),t._ready}));return l(r,e,e),r},e.prototype.setDriver=function(e,t,r){var n=this;ne(e)||(e=[e]);var o=this._getSupportedDrivers(e);function a(){n._config.driver=n.driver()}function s(e){return n._extend(e),a(),n._ready=n._initStorage(n._config),n._ready}var c=null!==this._driverSet?this._driverSet.catch((function(){return i.resolve()})):i.resolve();return this._driverSet=c.then((function(){var e=o[0];return n._dbInfo=null,n._ready=null,n.getDriver(e).then((function(e){n._driver=e._driver,a(),n._wrapLibraryMethodsWithReady(),n._initDriver=function(e){return function(){var t=0;return function r(){for(;t<e.length;){var o=e[t];return t++,n._dbInfo=null,n._ready=null,n.getDriver(o).then(s).catch(r)}a();var l=new Error("No available storage method found.");return n._driverSet=i.reject(l),n._driverSet}()}}(o)}))})).catch((function(){a();var e=new Error("No available storage method found.");return n._driverSet=i.reject(e),n._driverSet})),l(this._driverSet,t,r),this._driverSet},e.prototype.supports=function(e){return!!ae[e]},e.prototype._extend=function(e){pe(this,e)},e.prototype._getSupportedDrivers=function(e){for(var t=[],r=0,n=e.length;r<n;r++){var o=e[r];this.supports(o)&&t.push(o)}return t},e.prototype._wrapLibraryMethodsWithReady=function(){for(var e=0,t=ce.length;e<t;e++)fe(this,ce[e])},e.prototype.createInstance=function(t){return new e(t)},e}(),me=new de;t.exports=me},{3:3}]},{},[4])(4)}))},8552:(e,t,r)=>{var n=r(852)(r(5639),"DataView");e.exports=n},1989:(e,t,r)=>{var n=r(1789),o=r(401),a=r(7667),i=r(1327),s=r(1866);function l(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}l.prototype.clear=n,l.prototype.delete=o,l.prototype.get=a,l.prototype.has=i,l.prototype.set=s,e.exports=l},8407:(e,t,r)=>{var n=r(7040),o=r(4125),a=r(2117),i=r(3755),s=r(4705);function l(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}l.prototype.clear=n,l.prototype.delete=o,l.prototype.get=a,l.prototype.has=i,l.prototype.set=s,e.exports=l},7071:(e,t,r)=>{var n=r(852)(r(5639),"Map");e.exports=n},3369:(e,t,r)=>{var n=r(4785),o=r(1285),a=r(6e3),i=r(9916),s=r(5265);function l(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}l.prototype.clear=n,l.prototype.delete=o,l.prototype.get=a,l.prototype.has=i,l.prototype.set=s,e.exports=l},3818:(e,t,r)=>{var n=r(852)(r(5639),"Promise");e.exports=n},8525:(e,t,r)=>{var n=r(852)(r(5639),"Set");e.exports=n},8668:(e,t,r)=>{var n=r(3369),o=r(619),a=r(2385);function i(e){var t=-1,r=null==e?0:e.length;for(this.__data__=new n;++t<r;)this.add(e[t])}i.prototype.add=i.prototype.push=o,i.prototype.has=a,e.exports=i},6384:(e,t,r)=>{var n=r(8407),o=r(7465),a=r(3779),i=r(7599),s=r(4758),l=r(4309);function c(e){var t=this.__data__=new n(e);this.size=t.size}c.prototype.clear=o,c.prototype.delete=a,c.prototype.get=i,c.prototype.has=s,c.prototype.set=l,e.exports=c},2705:(e,t,r)=>{var n=r(5639).Symbol;e.exports=n},1149:(e,t,r)=>{var n=r(5639).Uint8Array;e.exports=n},577:(e,t,r)=>{var n=r(852)(r(5639),"WeakMap");e.exports=n},6874:e=>{e.exports=function(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}},4963:e=>{e.exports=function(e,t){for(var r=-1,n=null==e?0:e.length,o=0,a=[];++r<n;){var i=e[r];t(i,r,e)&&(a[o++]=i)}return a}},4636:(e,t,r)=>{var n=r(2545),o=r(5694),a=r(1469),i=r(4144),s=r(5776),l=r(6719),c=Object.prototype.hasOwnProperty;e.exports=function(e,t){var r=a(e),u=!r&&o(e),f=!r&&!u&&i(e),p=!r&&!u&&!f&&l(e),d=r||u||f||p,m=d?n(e.length,String):[],h=m.length;for(var _ in e)!t&&!c.call(e,_)||d&&("length"==_||f&&("offset"==_||"parent"==_)||p&&("buffer"==_||"byteLength"==_||"byteOffset"==_)||s(_,h))||m.push(_);return m}},9932:e=>{e.exports=function(e,t){for(var r=-1,n=null==e?0:e.length,o=Array(n);++r<n;)o[r]=t(e[r],r,e);return o}},2488:e=>{e.exports=function(e,t){for(var r=-1,n=t.length,o=e.length;++r<n;)e[o+r]=t[r];return e}},2908:e=>{e.exports=function(e,t){for(var r=-1,n=null==e?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1}},8470:(e,t,r)=>{var n=r(7813);e.exports=function(e,t){for(var r=e.length;r--;)if(n(e[r][0],t))return r;return-1}},9881:(e,t,r)=>{var n=r(7816),o=r(9291)(n);e.exports=o},760:(e,t,r)=>{var n=r(9881);e.exports=function(e,t){var r=[];return n(e,(function(e,n,o){t(e,n,o)&&r.push(e)})),r}},1848:e=>{e.exports=function(e,t,r,n){for(var o=e.length,a=r+(n?1:-1);n?a--:++a<o;)if(t(e[a],a,e))return a;return-1}},1078:(e,t,r)=>{var n=r(2488),o=r(7285);e.exports=function e(t,r,a,i,s){var l=-1,c=t.length;for(a||(a=o),s||(s=[]);++l<c;){var u=t[l];r>0&&a(u)?r>1?e(u,r-1,a,i,s):n(s,u):i||(s[s.length]=u)}return s}},8483:(e,t,r)=>{var n=r(5063)();e.exports=n},7816:(e,t,r)=>{var n=r(8483),o=r(3674);e.exports=function(e,t){return e&&n(e,t,o)}},7786:(e,t,r)=>{var n=r(1811),o=r(327);e.exports=function(e,t){for(var r=0,a=(t=n(t,e)).length;null!=e&&r<a;)e=e[o(t[r++])];return r&&r==a?e:void 0}},8866:(e,t,r)=>{var n=r(2488),o=r(1469);e.exports=function(e,t,r){var a=t(e);return o(e)?a:n(a,r(e))}},4239:(e,t,r)=>{var n=r(2705),o=r(9607),a=r(2333),i=n?n.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":i&&i in Object(e)?o(e):a(e)}},13:e=>{e.exports=function(e,t){return null!=e&&t in Object(e)}},2118:(e,t,r)=>{var n=r(1848),o=r(2722),a=r(2351);e.exports=function(e,t,r){return t==t?a(e,t,r):n(e,o,r)}},9454:(e,t,r)=>{var n=r(4239),o=r(7005);e.exports=function(e){return o(e)&&"[object Arguments]"==n(e)}},939:(e,t,r)=>{var n=r(2492),o=r(7005);e.exports=function e(t,r,a,i,s){return t===r||(null==t||null==r||!o(t)&&!o(r)?t!=t&&r!=r:n(t,r,a,i,e,s))}},2492:(e,t,r)=>{var n=r(6384),o=r(7114),a=r(8351),i=r(6096),s=r(4160),l=r(1469),c=r(4144),u=r(6719),f="[object Arguments]",p="[object Array]",d="[object Object]",m=Object.prototype.hasOwnProperty;e.exports=function(e,t,r,h,_,v){var g=l(e),y=l(t),b=g?p:s(e),w=y?p:s(t),x=(b=b==f?d:b)==d,z=(w=w==f?d:w)==d,k=b==w;if(k&&c(e)){if(!c(t))return!1;g=!0,x=!1}if(k&&!x)return v||(v=new n),g||u(e)?o(e,t,r,h,_,v):a(e,t,b,r,h,_,v);if(!(1&r)){var O=x&&m.call(e,"__wrapped__"),j=z&&m.call(t,"__wrapped__");if(O||j){var E=O?e.value():e,I=j?t.value():t;return v||(v=new n),_(E,I,r,h,v)}}return!!k&&(v||(v=new n),i(e,t,r,h,_,v))}},2958:(e,t,r)=>{var n=r(6384),o=r(939);e.exports=function(e,t,r,a){var i=r.length,s=i,l=!a;if(null==e)return!s;for(e=Object(e);i--;){var c=r[i];if(l&&c[2]?c[1]!==e[c[0]]:!(c[0]in e))return!1}for(;++i<s;){var u=(c=r[i])[0],f=e[u],p=c[1];if(l&&c[2]){if(void 0===f&&!(u in e))return!1}else{var d=new n;if(a)var m=a(f,p,u,e,t,d);if(!(void 0===m?o(p,f,3,a,d):m))return!1}}return!0}},2722:e=>{e.exports=function(e){return e!=e}},8458:(e,t,r)=>{var n=r(3560),o=r(5346),a=r(3218),i=r(346),s=/^\[object .+?Constructor\]$/,l=Function.prototype,c=Object.prototype,u=l.toString,f=c.hasOwnProperty,p=RegExp("^"+u.call(f).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!a(e)||o(e))&&(n(e)?p:s).test(i(e))}},8749:(e,t,r)=>{var n=r(4239),o=r(1780),a=r(7005),i={};i["[object Float32Array]"]=i["[object Float64Array]"]=i["[object Int8Array]"]=i["[object Int16Array]"]=i["[object Int32Array]"]=i["[object Uint8Array]"]=i["[object Uint8ClampedArray]"]=i["[object Uint16Array]"]=i["[object Uint32Array]"]=!0,i["[object Arguments]"]=i["[object Array]"]=i["[object ArrayBuffer]"]=i["[object Boolean]"]=i["[object DataView]"]=i["[object Date]"]=i["[object Error]"]=i["[object Function]"]=i["[object Map]"]=i["[object Number]"]=i["[object Object]"]=i["[object RegExp]"]=i["[object Set]"]=i["[object String]"]=i["[object WeakMap]"]=!1,e.exports=function(e){return a(e)&&o(e.length)&&!!i[n(e)]}},7206:(e,t,r)=>{var n=r(1573),o=r(6432),a=r(6557),i=r(1469),s=r(9601);e.exports=function(e){return"function"==typeof e?e:null==e?a:"object"==typeof e?i(e)?o(e[0],e[1]):n(e):s(e)}},280:(e,t,r)=>{var n=r(5726),o=r(6916),a=Object.prototype.hasOwnProperty;e.exports=function(e){if(!n(e))return o(e);var t=[];for(var r in Object(e))a.call(e,r)&&"constructor"!=r&&t.push(r);return t}},9199:(e,t,r)=>{var n=r(9881),o=r(8612);e.exports=function(e,t){var r=-1,a=o(e)?Array(e.length):[];return n(e,(function(e,n,o){a[++r]=t(e,n,o)})),a}},1573:(e,t,r)=>{var n=r(2958),o=r(1499),a=r(2634);e.exports=function(e){var t=o(e);return 1==t.length&&t[0][2]?a(t[0][0],t[0][1]):function(r){return r===e||n(r,e,t)}}},6432:(e,t,r)=>{var n=r(939),o=r(7361),a=r(9095),i=r(5403),s=r(9162),l=r(2634),c=r(327);e.exports=function(e,t){return i(e)&&s(t)?l(c(e),t):function(r){var i=o(r,e);return void 0===i&&i===t?a(r,e):n(t,i,3)}}},2689:(e,t,r)=>{var n=r(9932),o=r(7786),a=r(7206),i=r(9199),s=r(1131),l=r(7518),c=r(5022),u=r(6557),f=r(1469);e.exports=function(e,t,r){t=t.length?n(t,(function(e){return f(e)?function(t){return o(t,1===e.length?e[0]:e)}:e})):[u];var p=-1;t=n(t,l(a));var d=i(e,(function(e,r,o){return{criteria:n(t,(function(t){return t(e)})),index:++p,value:e}}));return s(d,(function(e,t){return c(e,t,r)}))}},371:e=>{e.exports=function(e){return function(t){return null==t?void 0:t[e]}}},9152:(e,t,r)=>{var n=r(7786);e.exports=function(e){return function(t){return n(t,e)}}},5976:(e,t,r)=>{var n=r(6557),o=r(5357),a=r(61);e.exports=function(e,t){return a(o(e,t,n),e+"")}},6560:(e,t,r)=>{var n=r(5703),o=r(8777),a=r(6557),i=o?function(e,t){return o(e,"toString",{configurable:!0,enumerable:!1,value:n(t),writable:!0})}:a;e.exports=i},1131:e=>{e.exports=function(e,t){var r=e.length;for(e.sort(t);r--;)e[r]=e[r].value;return e}},2545:e=>{e.exports=function(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}},531:(e,t,r)=>{var n=r(2705),o=r(9932),a=r(1469),i=r(3448),s=n?n.prototype:void 0,l=s?s.toString:void 0;e.exports=function e(t){if("string"==typeof t)return t;if(a(t))return o(t,e)+"";if(i(t))return l?l.call(t):"";var r=t+"";return"0"==r&&1/t==-1/0?"-0":r}},7561:(e,t,r)=>{var n=r(7990),o=/^\s+/;e.exports=function(e){return e?e.slice(0,n(e)+1).replace(o,""):e}},7518:e=>{e.exports=function(e){return function(t){return e(t)}}},7415:(e,t,r)=>{var n=r(9932);e.exports=function(e,t){return n(t,(function(t){return e[t]}))}},4757:e=>{e.exports=function(e,t){return e.has(t)}},1811:(e,t,r)=>{var n=r(1469),o=r(5403),a=r(5514),i=r(9833);e.exports=function(e,t){return n(e)?e:o(e,t)?[e]:a(i(e))}},6393:(e,t,r)=>{var n=r(3448);e.exports=function(e,t){if(e!==t){var r=void 0!==e,o=null===e,a=e==e,i=n(e),s=void 0!==t,l=null===t,c=t==t,u=n(t);if(!l&&!u&&!i&&e>t||i&&s&&c&&!l&&!u||o&&s&&c||!r&&c||!a)return 1;if(!o&&!i&&!u&&e<t||u&&r&&a&&!o&&!i||l&&r&&a||!s&&a||!c)return-1}return 0}},5022:(e,t,r)=>{var n=r(6393);e.exports=function(e,t,r){for(var o=-1,a=e.criteria,i=t.criteria,s=a.length,l=r.length;++o<s;){var c=n(a[o],i[o]);if(c)return o>=l?c:c*("desc"==r[o]?-1:1)}return e.index-t.index}},4429:(e,t,r)=>{var n=r(5639)["__core-js_shared__"];e.exports=n},9291:(e,t,r)=>{var n=r(8612);e.exports=function(e,t){return function(r,o){if(null==r)return r;if(!n(r))return e(r,o);for(var a=r.length,i=t?a:-1,s=Object(r);(t?i--:++i<a)&&!1!==o(s[i],i,s););return r}}},5063:e=>{e.exports=function(e){return function(t,r,n){for(var o=-1,a=Object(t),i=n(t),s=i.length;s--;){var l=i[e?s:++o];if(!1===r(a[l],l,a))break}return t}}},8777:(e,t,r)=>{var n=r(852),o=function(){try{var e=n(Object,"defineProperty");return e({},"",{}),e}catch(e){}}();e.exports=o},7114:(e,t,r)=>{var n=r(8668),o=r(2908),a=r(4757);e.exports=function(e,t,r,i,s,l){var c=1&r,u=e.length,f=t.length;if(u!=f&&!(c&&f>u))return!1;var p=l.get(e),d=l.get(t);if(p&&d)return p==t&&d==e;var m=-1,h=!0,_=2&r?new n:void 0;for(l.set(e,t),l.set(t,e);++m<u;){var v=e[m],g=t[m];if(i)var y=c?i(g,v,m,t,e,l):i(v,g,m,e,t,l);if(void 0!==y){if(y)continue;h=!1;break}if(_){if(!o(t,(function(e,t){if(!a(_,t)&&(v===e||s(v,e,r,i,l)))return _.push(t)}))){h=!1;break}}else if(v!==g&&!s(v,g,r,i,l)){h=!1;break}}return l.delete(e),l.delete(t),h}},8351:(e,t,r)=>{var n=r(2705),o=r(1149),a=r(7813),i=r(7114),s=r(8776),l=r(1814),c=n?n.prototype:void 0,u=c?c.valueOf:void 0;e.exports=function(e,t,r,n,c,f,p){switch(r){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!f(new o(e),new o(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return a(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var d=s;case"[object Set]":var m=1&n;if(d||(d=l),e.size!=t.size&&!m)return!1;var h=p.get(e);if(h)return h==t;n|=2,p.set(e,t);var _=i(d(e),d(t),n,c,f,p);return p.delete(e),_;case"[object Symbol]":if(u)return u.call(e)==u.call(t)}return!1}},6096:(e,t,r)=>{var n=r(8234),o=Object.prototype.hasOwnProperty;e.exports=function(e,t,r,a,i,s){var l=1&r,c=n(e),u=c.length;if(u!=n(t).length&&!l)return!1;for(var f=u;f--;){var p=c[f];if(!(l?p in t:o.call(t,p)))return!1}var d=s.get(e),m=s.get(t);if(d&&m)return d==t&&m==e;var h=!0;s.set(e,t),s.set(t,e);for(var _=l;++f<u;){var v=e[p=c[f]],g=t[p];if(a)var y=l?a(g,v,p,t,e,s):a(v,g,p,e,t,s);if(!(void 0===y?v===g||i(v,g,r,a,s):y)){h=!1;break}_||(_="constructor"==p)}if(h&&!_){var b=e.constructor,w=t.constructor;b==w||!("constructor"in e)||!("constructor"in t)||"function"==typeof b&&b instanceof b&&"function"==typeof w&&w instanceof w||(h=!1)}return s.delete(e),s.delete(t),h}},1957:(e,t,r)=>{var n="object"==typeof r.g&&r.g&&r.g.Object===Object&&r.g;e.exports=n},8234:(e,t,r)=>{var n=r(8866),o=r(9551),a=r(3674);e.exports=function(e){return n(e,a,o)}},5050:(e,t,r)=>{var n=r(7019);e.exports=function(e,t){var r=e.__data__;return n(t)?r["string"==typeof t?"string":"hash"]:r.map}},1499:(e,t,r)=>{var n=r(9162),o=r(3674);e.exports=function(e){for(var t=o(e),r=t.length;r--;){var a=t[r],i=e[a];t[r]=[a,i,n(i)]}return t}},852:(e,t,r)=>{var n=r(8458),o=r(7801);e.exports=function(e,t){var r=o(e,t);return n(r)?r:void 0}},9607:(e,t,r)=>{var n=r(2705),o=Object.prototype,a=o.hasOwnProperty,i=o.toString,s=n?n.toStringTag:void 0;e.exports=function(e){var t=a.call(e,s),r=e[s];try{e[s]=void 0;var n=!0}catch(e){}var o=i.call(e);return n&&(t?e[s]=r:delete e[s]),o}},9551:(e,t,r)=>{var n=r(4963),o=r(479),a=Object.prototype.propertyIsEnumerable,i=Object.getOwnPropertySymbols,s=i?function(e){return null==e?[]:(e=Object(e),n(i(e),(function(t){return a.call(e,t)})))}:o;e.exports=s},4160:(e,t,r)=>{var n=r(8552),o=r(7071),a=r(3818),i=r(8525),s=r(577),l=r(4239),c=r(346),u="[object Map]",f="[object Promise]",p="[object Set]",d="[object WeakMap]",m="[object DataView]",h=c(n),_=c(o),v=c(a),g=c(i),y=c(s),b=l;(n&&b(new n(new ArrayBuffer(1)))!=m||o&&b(new o)!=u||a&&b(a.resolve())!=f||i&&b(new i)!=p||s&&b(new s)!=d)&&(b=function(e){var t=l(e),r="[object Object]"==t?e.constructor:void 0,n=r?c(r):"";if(n)switch(n){case h:return m;case _:return u;case v:return f;case g:return p;case y:return d}return t}),e.exports=b},7801:e=>{e.exports=function(e,t){return null==e?void 0:e[t]}},222:(e,t,r)=>{var n=r(1811),o=r(5694),a=r(1469),i=r(5776),s=r(1780),l=r(327);e.exports=function(e,t,r){for(var c=-1,u=(t=n(t,e)).length,f=!1;++c<u;){var p=l(t[c]);if(!(f=null!=e&&r(e,p)))break;e=e[p]}return f||++c!=u?f:!!(u=null==e?0:e.length)&&s(u)&&i(p,u)&&(a(e)||o(e))}},1789:(e,t,r)=>{var n=r(4536);e.exports=function(){this.__data__=n?n(null):{},this.size=0}},401:e=>{e.exports=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}},7667:(e,t,r)=>{var n=r(4536),o=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;if(n){var r=t[e];return"__lodash_hash_undefined__"===r?void 0:r}return o.call(t,e)?t[e]:void 0}},1327:(e,t,r)=>{var n=r(4536),o=Object.prototype.hasOwnProperty;e.exports=function(e){var t=this.__data__;return n?void 0!==t[e]:o.call(t,e)}},1866:(e,t,r)=>{var n=r(4536);e.exports=function(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=n&&void 0===t?"__lodash_hash_undefined__":t,this}},7285:(e,t,r)=>{var n=r(2705),o=r(5694),a=r(1469),i=n?n.isConcatSpreadable:void 0;e.exports=function(e){return a(e)||o(e)||!!(i&&e&&e[i])}},5776:e=>{var t=/^(?:0|[1-9]\d*)$/;e.exports=function(e,r){var n=typeof e;return!!(r=null==r?9007199254740991:r)&&("number"==n||"symbol"!=n&&t.test(e))&&e>-1&&e%1==0&&e<r}},6612:(e,t,r)=>{var n=r(7813),o=r(8612),a=r(5776),i=r(3218);e.exports=function(e,t,r){if(!i(r))return!1;var s=typeof t;return!!("number"==s?o(r)&&a(t,r.length):"string"==s&&t in r)&&n(r[t],e)}},5403:(e,t,r)=>{var n=r(1469),o=r(3448),a=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,i=/^\w*$/;e.exports=function(e,t){if(n(e))return!1;var r=typeof e;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=e&&!o(e))||i.test(e)||!a.test(e)||null!=t&&e in Object(t)}},7019:e=>{e.exports=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}},5346:(e,t,r)=>{var n,o=r(4429),a=(n=/[^.]+$/.exec(o&&o.keys&&o.keys.IE_PROTO||""))?"Symbol(src)_1."+n:"";e.exports=function(e){return!!a&&a in e}},5726:e=>{var t=Object.prototype;e.exports=function(e){var r=e&&e.constructor;return e===("function"==typeof r&&r.prototype||t)}},9162:(e,t,r)=>{var n=r(3218);e.exports=function(e){return e==e&&!n(e)}},7040:e=>{e.exports=function(){this.__data__=[],this.size=0}},4125:(e,t,r)=>{var n=r(8470),o=Array.prototype.splice;e.exports=function(e){var t=this.__data__,r=n(t,e);return!(r<0||(r==t.length-1?t.pop():o.call(t,r,1),--this.size,0))}},2117:(e,t,r)=>{var n=r(8470);e.exports=function(e){var t=this.__data__,r=n(t,e);return r<0?void 0:t[r][1]}},3755:(e,t,r)=>{var n=r(8470);e.exports=function(e){return n(this.__data__,e)>-1}},4705:(e,t,r)=>{var n=r(8470);e.exports=function(e,t){var r=this.__data__,o=n(r,e);return o<0?(++this.size,r.push([e,t])):r[o][1]=t,this}},4785:(e,t,r)=>{var n=r(1989),o=r(8407),a=r(7071);e.exports=function(){this.size=0,this.__data__={hash:new n,map:new(a||o),string:new n}}},1285:(e,t,r)=>{var n=r(5050);e.exports=function(e){var t=n(this,e).delete(e);return this.size-=t?1:0,t}},6e3:(e,t,r)=>{var n=r(5050);e.exports=function(e){return n(this,e).get(e)}},9916:(e,t,r)=>{var n=r(5050);e.exports=function(e){return n(this,e).has(e)}},5265:(e,t,r)=>{var n=r(5050);e.exports=function(e,t){var r=n(this,e),o=r.size;return r.set(e,t),this.size+=r.size==o?0:1,this}},8776:e=>{e.exports=function(e){var t=-1,r=Array(e.size);return e.forEach((function(e,n){r[++t]=[n,e]})),r}},2634:e=>{e.exports=function(e,t){return function(r){return null!=r&&r[e]===t&&(void 0!==t||e in Object(r))}}},4523:(e,t,r)=>{var n=r(8306);e.exports=function(e){var t=n(e,(function(e){return 500===r.size&&r.clear(),e})),r=t.cache;return t}},4536:(e,t,r)=>{var n=r(852)(Object,"create");e.exports=n},6916:(e,t,r)=>{var n=r(5569)(Object.keys,Object);e.exports=n},1167:(e,t,r)=>{e=r.nmd(e);var n=r(1957),o=t&&!t.nodeType&&t,a=o&&e&&!e.nodeType&&e,i=a&&a.exports===o&&n.process,s=function(){try{return a&&a.require&&a.require("util").types||i&&i.binding&&i.binding("util")}catch(e){}}();e.exports=s},2333:e=>{var t=Object.prototype.toString;e.exports=function(e){return t.call(e)}},5569:e=>{e.exports=function(e,t){return function(r){return e(t(r))}}},5357:(e,t,r)=>{var n=r(6874),o=Math.max;e.exports=function(e,t,r){return t=o(void 0===t?e.length-1:t,0),function(){for(var a=arguments,i=-1,s=o(a.length-t,0),l=Array(s);++i<s;)l[i]=a[t+i];i=-1;for(var c=Array(t+1);++i<t;)c[i]=a[i];return c[t]=r(l),n(e,this,c)}}},5639:(e,t,r)=>{var n=r(1957),o="object"==typeof self&&self&&self.Object===Object&&self,a=n||o||Function("return this")();e.exports=a},619:e=>{e.exports=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this}},2385:e=>{e.exports=function(e){return this.__data__.has(e)}},1814:e=>{e.exports=function(e){var t=-1,r=Array(e.size);return e.forEach((function(e){r[++t]=e})),r}},61:(e,t,r)=>{var n=r(6560),o=r(1275)(n);e.exports=o},1275:e=>{var t=Date.now;e.exports=function(e){var r=0,n=0;return function(){var o=t(),a=16-(o-n);if(n=o,a>0){if(++r>=800)return arguments[0]}else r=0;return e.apply(void 0,arguments)}}},7465:(e,t,r)=>{var n=r(8407);e.exports=function(){this.__data__=new n,this.size=0}},3779:e=>{e.exports=function(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}},7599:e=>{e.exports=function(e){return this.__data__.get(e)}},4758:e=>{e.exports=function(e){return this.__data__.has(e)}},4309:(e,t,r)=>{var n=r(8407),o=r(7071),a=r(3369);e.exports=function(e,t){var r=this.__data__;if(r instanceof n){var i=r.__data__;if(!o||i.length<199)return i.push([e,t]),this.size=++r.size,this;r=this.__data__=new a(i)}return r.set(e,t),this.size=r.size,this}},2351:e=>{e.exports=function(e,t,r){for(var n=r-1,o=e.length;++n<o;)if(e[n]===t)return n;return-1}},5514:(e,t,r)=>{var n=r(4523),o=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,a=/\\(\\)?/g,i=n((function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(o,(function(e,r,n,o){t.push(n?o.replace(a,"$1"):r||e)})),t}));e.exports=i},327:(e,t,r)=>{var n=r(3448);e.exports=function(e){if("string"==typeof e||n(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t}},346:e=>{var t=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return t.call(e)}catch(e){}try{return e+""}catch(e){}}return""}},7990:e=>{var t=/\s/;e.exports=function(e){for(var r=e.length;r--&&t.test(e.charAt(r)););return r}},5703:e=>{e.exports=function(e){return function(){return e}}},7813:e=>{e.exports=function(e,t){return e===t||e!=e&&t!=t}},3105:(e,t,r)=>{var n=r(4963),o=r(760),a=r(7206),i=r(1469);e.exports=function(e,t){return(i(e)?n:o)(e,a(t,3))}},7361:(e,t,r)=>{var n=r(7786);e.exports=function(e,t,r){var o=null==e?void 0:n(e,t);return void 0===o?r:o}},9095:(e,t,r)=>{var n=r(13),o=r(222);e.exports=function(e,t){return null!=e&&o(e,t,n)}},6557:e=>{e.exports=function(e){return e}},4721:(e,t,r)=>{var n=r(2118),o=r(8612),a=r(7037),i=r(554),s=r(2628),l=Math.max;e.exports=function(e,t,r,c){e=o(e)?e:s(e),r=r&&!c?i(r):0;var u=e.length;return r<0&&(r=l(u+r,0)),a(e)?r<=u&&e.indexOf(t,r)>-1:!!u&&n(e,t,r)>-1}},5694:(e,t,r)=>{var n=r(9454),o=r(7005),a=Object.prototype,i=a.hasOwnProperty,s=a.propertyIsEnumerable,l=n(function(){return arguments}())?n:function(e){return o(e)&&i.call(e,"callee")&&!s.call(e,"callee")};e.exports=l},1469:e=>{var t=Array.isArray;e.exports=t},8612:(e,t,r)=>{var n=r(3560),o=r(1780);e.exports=function(e){return null!=e&&o(e.length)&&!n(e)}},4144:(e,t,r)=>{e=r.nmd(e);var n=r(5639),o=r(5062),a=t&&!t.nodeType&&t,i=a&&e&&!e.nodeType&&e,s=i&&i.exports===a?n.Buffer:void 0,l=(s?s.isBuffer:void 0)||o;e.exports=l},3560:(e,t,r)=>{var n=r(4239),o=r(3218);e.exports=function(e){if(!o(e))return!1;var t=n(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}},1780:e=>{e.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991}},3218:e=>{e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},7005:e=>{e.exports=function(e){return null!=e&&"object"==typeof e}},7037:(e,t,r)=>{var n=r(4239),o=r(1469),a=r(7005);e.exports=function(e){return"string"==typeof e||!o(e)&&a(e)&&"[object String]"==n(e)}},3448:(e,t,r)=>{var n=r(4239),o=r(7005);e.exports=function(e){return"symbol"==typeof e||o(e)&&"[object Symbol]"==n(e)}},6719:(e,t,r)=>{var n=r(8749),o=r(7518),a=r(1167),i=a&&a.isTypedArray,s=i?o(i):n;e.exports=s},3674:(e,t,r)=>{var n=r(4636),o=r(280),a=r(8612);e.exports=function(e){return a(e)?n(e):o(e)}},8306:(e,t,r)=>{var n=r(3369);function o(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var r=function(){var n=arguments,o=t?t.apply(this,n):n[0],a=r.cache;if(a.has(o))return a.get(o);var i=e.apply(this,n);return r.cache=a.set(o,i)||a,i};return r.cache=new(o.Cache||n),r}o.Cache=n,e.exports=o},9601:(e,t,r)=>{var n=r(371),o=r(9152),a=r(5403),i=r(327);e.exports=function(e){return a(e)?n(i(e)):o(e)}},9734:(e,t,r)=>{var n=r(1078),o=r(2689),a=r(5976),i=r(6612),s=a((function(e,t){if(null==e)return[];var r=t.length;return r>1&&i(e,t[0],t[1])?t=[]:r>2&&i(t[0],t[1],t[2])&&(t=[t[0]]),o(e,n(t,1),[])}));e.exports=s},479:e=>{e.exports=function(){return[]}},5062:e=>{e.exports=function(){return!1}},8601:(e,t,r)=>{var n=r(4841);e.exports=function(e){return e?Infinity===(e=n(e))||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}},554:(e,t,r)=>{var n=r(8601);e.exports=function(e){var t=n(e),r=t%1;return t==t?r?t-r:t:0}},4841:(e,t,r)=>{var n=r(7561),o=r(3218),a=r(3448),i=/^[-+]0x[0-9a-f]+$/i,s=/^0b[01]+$/i,l=/^0o[0-7]+$/i,c=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(a(e))return NaN;if(o(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=o(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=n(e);var r=s.test(e);return r||l.test(e)?c(e.slice(2),r?2:8):i.test(e)?NaN:+e}},9833:(e,t,r)=>{var n=r(531);e.exports=function(e){return null==e?"":n(e)}},2628:(e,t,r)=>{var n=r(7415),o=r(3674);e.exports=function(e){return null==e?[]:n(e,o(e))}},8490:(e,t,r)=>{"use strict";var n=r(7673),o=r(8575),a=r(7529);const i=parseInt({NODE_ENV:"production"}.PARSE_LINK_HEADER_MAXLEN)||2e3,s=null!={NODE_ENV:"production"}.PARSE_LINK_HEADER_THROW_ON_MAXLEN_EXCEEDED;function l(e){return e&&e.rel}function c(e,t){return t.rel.split(/\s+/).forEach((function(r){e[r]=a(t,{rel:r})})),e}function u(e,t){var r=t.match(/\s*(.+)\s*=\s*"?([^"]+)"?/);return r&&(e[r[1]]=r[2]),e}function f(e){try{var t=e.match(/<?([^>]*)>(.*)/),r=t[1],i=t[2].split(";"),s=o.parse(r),l=n.parse(s.query);i.shift();var c=i.reduce(u,{});return(c=a(l,c)).url=r,c}catch(e){return null}}e.exports=function(e){return function(e){if(!e)return!1;if(e.length>i){if(s)throw new Error("Input string too long, it should be under "+i+" characters.");return!1}return!0}(e)?e.split(/,\s*</).map(f).filter(l).reduce(c,{}):null}},3689:(e,t,r)=>{"use strict";r.r(t),r.d(t,{decode:()=>v,default:()=>w,encode:()=>g,toASCII:()=>b,toUnicode:()=>y,ucs2decode:()=>d,ucs2encode:()=>m});const n=2147483647,o=36,a=/^xn--/,i=/[^\0-\x7E]/,s=/[\x2E\u3002\uFF0E\uFF61]/g,l={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},c=Math.floor,u=String.fromCharCode;function f(e){throw new RangeError(l[e])}function p(e,t){const r=e.split("@");let n="";r.length>1&&(n=r[0]+"@",e=r[1]);const o=function(e,t){const r=[];let n=e.length;for(;n--;)r[n]=t(e[n]);return r}((e=e.replace(s,".")).split("."),t).join(".");return n+o}function d(e){const t=[];let r=0;const n=e.length;for(;r<n;){const o=e.charCodeAt(r++);if(o>=55296&&o<=56319&&r<n){const n=e.charCodeAt(r++);56320==(64512&n)?t.push(((1023&o)<<10)+(1023&n)+65536):(t.push(o),r--)}else t.push(o)}return t}const m=e=>String.fromCodePoint(...e),h=function(e,t){return e+22+75*(e<26)-((0!=t)<<5)},_=function(e,t,r){let n=0;for(e=r?c(e/700):e>>1,e+=c(e/t);e>455;n+=o)e=c(e/35);return c(n+36*e/(e+38))},v=function(e){const t=[],r=e.length;let a=0,i=128,s=72,l=e.lastIndexOf("-");l<0&&(l=0);for(let r=0;r<l;++r)e.charCodeAt(r)>=128&&f("not-basic"),t.push(e.charCodeAt(r));for(let p=l>0?l+1:0;p<r;){let l=a;for(let t=1,i=o;;i+=o){p>=r&&f("invalid-input");const l=(u=e.charCodeAt(p++))-48<10?u-22:u-65<26?u-65:u-97<26?u-97:o;(l>=o||l>c((n-a)/t))&&f("overflow"),a+=l*t;const d=i<=s?1:i>=s+26?26:i-s;if(l<d)break;const m=o-d;t>c(n/m)&&f("overflow"),t*=m}const d=t.length+1;s=_(a-l,d,0==l),c(a/d)>n-i&&f("overflow"),i+=c(a/d),a%=d,t.splice(a++,0,i)}var u;return String.fromCodePoint(...t)},g=function(e){const t=[];let r=(e=d(e)).length,a=128,i=0,s=72;for(const r of e)r<128&&t.push(u(r));let l=t.length,p=l;for(l&&t.push("-");p<r;){let r=n;for(const t of e)t>=a&&t<r&&(r=t);const d=p+1;r-a>c((n-i)/d)&&f("overflow"),i+=(r-a)*d,a=r;for(const r of e)if(r<a&&++i>n&&f("overflow"),r==a){let e=i;for(let r=o;;r+=o){const n=r<=s?1:r>=s+26?26:r-s;if(e<n)break;const a=e-n,i=o-n;t.push(u(h(n+a%i,0))),e=c(a/i)}t.push(u(h(e,0))),s=_(i,d,p==l),i=0,++p}++i,++a}return t.join("")},y=function(e){return p(e,(function(e){return a.test(e)?v(e.slice(4).toLowerCase()):e}))},b=function(e){return p(e,(function(e){return i.test(e)?"xn--"+g(e):e}))},w={version:"2.1.0",ucs2:{decode:d,encode:m},decode:v,encode:g,toASCII:b,toUnicode:y}},2587:e=>{"use strict";function t(e,t){return Object.prototype.hasOwnProperty.call(e,t)}e.exports=function(e,r,n,o){r=r||"&",n=n||"=";var a={};if("string"!=typeof e||0===e.length)return a;var i=/\+/g;e=e.split(r);var s=1e3;o&&"number"==typeof o.maxKeys&&(s=o.maxKeys);var l=e.length;s>0&&l>s&&(l=s);for(var c=0;c<l;++c){var u,f,p,d,m=e[c].replace(i,"%20"),h=m.indexOf(n);h>=0?(u=m.substr(0,h),f=m.substr(h+1)):(u=m,f=""),p=decodeURIComponent(u),d=decodeURIComponent(f),t(a,p)?Array.isArray(a[p])?a[p].push(d):a[p]=[a[p],d]:a[p]=d}return a}},2361:e=>{"use strict";var t=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};e.exports=function(e,r,n,o){return r=r||"&",n=n||"=",null===e&&(e=void 0),"object"==typeof e?Object.keys(e).map((function(o){var a=encodeURIComponent(t(o))+n;return Array.isArray(e[o])?e[o].map((function(e){return a+encodeURIComponent(t(e))})).join(r):a+encodeURIComponent(t(e[o]))})).join(r):o?encodeURIComponent(t(o))+n+encodeURIComponent(t(e)):""}},7673:(e,t,r)=>{"use strict";t.decode=t.parse=r(2587),t.encode=t.stringify=r(2361)},8575:(e,t,r)=>{"use strict";var n=r(3689),o=r(2502);function a(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}t.parse=y,t.resolve=function(e,t){return y(e,!1,!0).resolve(t)},t.resolveObject=function(e,t){return e?y(e,!1,!0).resolveObject(t):t},t.format=function(e){return o.isString(e)&&(e=y(e)),e instanceof a?e.format():a.prototype.format.call(e)},t.Url=a;var i=/^([a-z0-9.+-]+:)/i,s=/:[0-9]*$/,l=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,c=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),u=["'"].concat(c),f=["%","/","?",";","#"].concat(u),p=["/","?","#"],d=/^[+a-z0-9A-Z_-]{0,63}$/,m=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,h={javascript:!0,"javascript:":!0},_={javascript:!0,"javascript:":!0},v={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},g=r(7673);function y(e,t,r){if(e&&o.isObject(e)&&e instanceof a)return e;var n=new a;return n.parse(e,t,r),n}a.prototype.parse=function(e,t,r){if(!o.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var a=e.indexOf("?"),s=-1!==a&&a<e.indexOf("#")?"?":"#",c=e.split(s);c[0]=c[0].replace(/\\/g,"/");var y=e=c.join(s);if(y=y.trim(),!r&&1===e.split("#").length){var b=l.exec(y);if(b)return this.path=y,this.href=y,this.pathname=b[1],b[2]?(this.search=b[2],this.query=t?g.parse(this.search.substr(1)):this.search.substr(1)):t&&(this.search="",this.query={}),this}var w=i.exec(y);if(w){var x=(w=w[0]).toLowerCase();this.protocol=x,y=y.substr(w.length)}if(r||w||y.match(/^\/\/[^@\/]+@[^@\/]+/)){var z="//"===y.substr(0,2);!z||w&&_[w]||(y=y.substr(2),this.slashes=!0)}if(!_[w]&&(z||w&&!v[w])){for(var k,O,j=-1,E=0;E<p.length;E++)-1!==(I=y.indexOf(p[E]))&&(-1===j||I<j)&&(j=I);for(-1!==(O=-1===j?y.lastIndexOf("@"):y.lastIndexOf("@",j))&&(k=y.slice(0,O),y=y.slice(O+1),this.auth=decodeURIComponent(k)),j=-1,E=0;E<f.length;E++){var I;-1!==(I=y.indexOf(f[E]))&&(-1===j||I<j)&&(j=I)}-1===j&&(j=y.length),this.host=y.slice(0,j),y=y.slice(j),this.parseHost(),this.hostname=this.hostname||"";var S="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!S)for(var N=this.hostname.split(/\./),L=(E=0,N.length);E<L;E++){var R=N[E];if(R&&!R.match(d)){for(var F="",A=0,T=R.length;A<T;A++)R.charCodeAt(A)>127?F+="x":F+=R[A];if(!F.match(d)){var C=N.slice(0,E),P=N.slice(E+1),D=R.match(m);D&&(C.push(D[1]),P.unshift(D[2])),P.length&&(y="/"+P.join(".")+y),this.hostname=C.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),S||(this.hostname=n.toASCII(this.hostname));var M=this.port?":"+this.port:"",W=this.hostname||"";this.host=W+M,this.href+=this.host,S&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==y[0]&&(y="/"+y))}if(!h[x])for(E=0,L=u.length;E<L;E++){var U=u[E];if(-1!==y.indexOf(U)){var $=encodeURIComponent(U);$===U&&($=escape(U)),y=y.split(U).join($)}}var q=y.indexOf("#");-1!==q&&(this.hash=y.substr(q),y=y.slice(0,q));var V=y.indexOf("?");if(-1!==V?(this.search=y.substr(V),this.query=y.substr(V+1),t&&(this.query=g.parse(this.query)),y=y.slice(0,V)):t&&(this.search="",this.query={}),y&&(this.pathname=y),v[x]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){M=this.pathname||"";var B=this.search||"";this.path=M+B}return this.href=this.format(),this},a.prototype.format=function(){var e=this.auth||"";e&&(e=(e=encodeURIComponent(e)).replace(/%3A/i,":"),e+="@");var t=this.protocol||"",r=this.pathname||"",n=this.hash||"",a=!1,i="";this.host?a=e+this.host:this.hostname&&(a=e+(-1===this.hostname.indexOf(":")?this.hostname:"["+this.hostname+"]"),this.port&&(a+=":"+this.port)),this.query&&o.isObject(this.query)&&Object.keys(this.query).length&&(i=g.stringify(this.query));var s=this.search||i&&"?"+i||"";return t&&":"!==t.substr(-1)&&(t+=":"),this.slashes||(!t||v[t])&&!1!==a?(a="//"+(a||""),r&&"/"!==r.charAt(0)&&(r="/"+r)):a||(a=""),n&&"#"!==n.charAt(0)&&(n="#"+n),s&&"?"!==s.charAt(0)&&(s="?"+s),t+a+(r=r.replace(/[?#]/g,(function(e){return encodeURIComponent(e)})))+(s=s.replace("#","%23"))+n},a.prototype.resolve=function(e){return this.resolveObject(y(e,!1,!0)).format()},a.prototype.resolveObject=function(e){if(o.isString(e)){var t=new a;t.parse(e,!1,!0),e=t}for(var r=new a,n=Object.keys(this),i=0;i<n.length;i++){var s=n[i];r[s]=this[s]}if(r.hash=e.hash,""===e.href)return r.href=r.format(),r;if(e.slashes&&!e.protocol){for(var l=Object.keys(e),c=0;c<l.length;c++){var u=l[c];"protocol"!==u&&(r[u]=e[u])}return v[r.protocol]&&r.hostname&&!r.pathname&&(r.path=r.pathname="/"),r.href=r.format(),r}if(e.protocol&&e.protocol!==r.protocol){if(!v[e.protocol]){for(var f=Object.keys(e),p=0;p<f.length;p++){var d=f[p];r[d]=e[d]}return r.href=r.format(),r}if(r.protocol=e.protocol,e.host||_[e.protocol])r.pathname=e.pathname;else{for(var m=(e.pathname||"").split("/");m.length&&!(e.host=m.shift()););e.host||(e.host=""),e.hostname||(e.hostname=""),""!==m[0]&&m.unshift(""),m.length<2&&m.unshift(""),r.pathname=m.join("/")}if(r.search=e.search,r.query=e.query,r.host=e.host||"",r.auth=e.auth,r.hostname=e.hostname||e.host,r.port=e.port,r.pathname||r.search){var h=r.pathname||"",g=r.search||"";r.path=h+g}return r.slashes=r.slashes||e.slashes,r.href=r.format(),r}var y=r.pathname&&"/"===r.pathname.charAt(0),b=e.host||e.pathname&&"/"===e.pathname.charAt(0),w=b||y||r.host&&e.pathname,x=w,z=r.pathname&&r.pathname.split("/")||[],k=(m=e.pathname&&e.pathname.split("/")||[],r.protocol&&!v[r.protocol]);if(k&&(r.hostname="",r.port=null,r.host&&(""===z[0]?z[0]=r.host:z.unshift(r.host)),r.host="",e.protocol&&(e.hostname=null,e.port=null,e.host&&(""===m[0]?m[0]=e.host:m.unshift(e.host)),e.host=null),w=w&&(""===m[0]||""===z[0])),b)r.host=e.host||""===e.host?e.host:r.host,r.hostname=e.hostname||""===e.hostname?e.hostname:r.hostname,r.search=e.search,r.query=e.query,z=m;else if(m.length)z||(z=[]),z.pop(),z=z.concat(m),r.search=e.search,r.query=e.query;else if(!o.isNullOrUndefined(e.search))return k&&(r.hostname=r.host=z.shift(),(S=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@"))&&(r.auth=S.shift(),r.host=r.hostname=S.shift())),r.search=e.search,r.query=e.query,o.isNull(r.pathname)&&o.isNull(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.href=r.format(),r;if(!z.length)return r.pathname=null,r.search?r.path="/"+r.search:r.path=null,r.href=r.format(),r;for(var O=z.slice(-1)[0],j=(r.host||e.host||z.length>1)&&("."===O||".."===O)||""===O,E=0,I=z.length;I>=0;I--)"."===(O=z[I])?z.splice(I,1):".."===O?(z.splice(I,1),E++):E&&(z.splice(I,1),E--);if(!w&&!x)for(;E--;E)z.unshift("..");!w||""===z[0]||z[0]&&"/"===z[0].charAt(0)||z.unshift(""),j&&"/"!==z.join("/").substr(-1)&&z.push("");var S,N=""===z[0]||z[0]&&"/"===z[0].charAt(0);return k&&(r.hostname=r.host=N?"":z.length?z.shift():"",(S=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@"))&&(r.auth=S.shift(),r.host=r.hostname=S.shift())),(w=w||r.host&&z.length)&&!N&&z.unshift(""),z.length?r.pathname=z.join("/"):(r.pathname=null,r.path=null),o.isNull(r.pathname)&&o.isNull(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.auth=e.auth||r.auth,r.slashes=r.slashes||e.slashes,r.href=r.format(),r},a.prototype.parseHost=function(){var e=this.host,t=s.exec(e);t&&(":"!==(t=t[0])&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e)}},2502:e=>{"use strict";e.exports={isString:function(e){return"string"==typeof e},isObject:function(e){return"object"==typeof e&&null!==e},isNull:function(e){return null===e},isNullOrUndefined:function(e){return null==e}}},7529:e=>{e.exports=function(){for(var e={},r=0;r<arguments.length;r++){var n=arguments[r];for(var o in n)t.call(n,o)&&(e[o]=n[o])}return e};var t=Object.prototype.hasOwnProperty},7061:(e,t,r)=>{var n=r(8698).default;function o(){"use strict";e.exports=o=function(){return t},e.exports.__esModule=!0,e.exports.default=e.exports;var t={},r=Object.prototype,a=r.hasOwnProperty,i=Object.defineProperty||function(e,t,r){e[t]=r.value},s="function"==typeof Symbol?Symbol:{},l=s.iterator||"@@iterator",c=s.asyncIterator||"@@asyncIterator",u=s.toStringTag||"@@toStringTag";function f(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{f({},"")}catch(e){f=function(e,t,r){return e[t]=r}}function p(e,t,r,n){var o=t&&t.prototype instanceof h?t:h,a=Object.create(o.prototype),s=new I(n||[]);return i(a,"_invoke",{value:k(e,r,s)}),a}function d(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}t.wrap=p;var m={};function h(){}function _(){}function v(){}var g={};f(g,l,(function(){return this}));var y=Object.getPrototypeOf,b=y&&y(y(S([])));b&&b!==r&&a.call(b,l)&&(g=b);var w=v.prototype=h.prototype=Object.create(g);function x(e){["next","throw","return"].forEach((function(t){f(e,t,(function(e){return this._invoke(t,e)}))}))}function z(e,t){function r(o,i,s,l){var c=d(e[o],e,i);if("throw"!==c.type){var u=c.arg,f=u.value;return f&&"object"==n(f)&&a.call(f,"__await")?t.resolve(f.__await).then((function(e){r("next",e,s,l)}),(function(e){r("throw",e,s,l)})):t.resolve(f).then((function(e){u.value=e,s(u)}),(function(e){return r("throw",e,s,l)}))}l(c.arg)}var o;i(this,"_invoke",{value:function(e,n){function a(){return new t((function(t,o){r(e,n,t,o)}))}return o=o?o.then(a,a):a()}})}function k(e,t,r){var n="suspendedStart";return function(o,a){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw a;return{value:void 0,done:!0}}for(r.method=o,r.arg=a;;){var i=r.delegate;if(i){var s=O(i,r);if(s){if(s===m)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var l=d(e,t,r);if("normal"===l.type){if(n=r.done?"completed":"suspendedYield",l.arg===m)continue;return{value:l.arg,done:r.done}}"throw"===l.type&&(n="completed",r.method="throw",r.arg=l.arg)}}}function O(e,t){var r=t.method,n=e.iterator[r];if(void 0===n)return t.delegate=null,"throw"===r&&e.iterator.return&&(t.method="return",t.arg=void 0,O(e,t),"throw"===t.method)||"return"!==r&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+r+"' method")),m;var o=d(n,e.iterator,t.arg);if("throw"===o.type)return t.method="throw",t.arg=o.arg,t.delegate=null,m;var a=o.arg;return a?a.done?(t[e.resultName]=a.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,m):a:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,m)}function j(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function E(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function I(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(j,this),this.reset(!0)}function S(e){if(e){var t=e[l];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,n=function t(){for(;++r<e.length;)if(a.call(e,r))return t.value=e[r],t.done=!1,t;return t.value=void 0,t.done=!0,t};return n.next=n}}return{next:N}}function N(){return{value:void 0,done:!0}}return _.prototype=v,i(w,"constructor",{value:v,configurable:!0}),i(v,"constructor",{value:_,configurable:!0}),_.displayName=f(v,u,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===_||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,v):(e.__proto__=v,f(e,u,"GeneratorFunction")),e.prototype=Object.create(w),e},t.awrap=function(e){return{__await:e}},x(z.prototype),f(z.prototype,c,(function(){return this})),t.AsyncIterator=z,t.async=function(e,r,n,o,a){void 0===a&&(a=Promise);var i=new z(p(e,r,n,o),a);return t.isGeneratorFunction(r)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},x(w),f(w,u,"Generator"),f(w,l,(function(){return this})),f(w,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),r=[];for(var n in t)r.push(n);return r.reverse(),function e(){for(;r.length;){var n=r.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},t.values=S,I.prototype={constructor:I,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(E),!e)for(var t in this)"t"===t.charAt(0)&&a.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function r(r,n){return i.type="throw",i.arg=e,t.next=r,n&&(t.method="next",t.arg=void 0),!!n}for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n],i=o.completion;if("root"===o.tryLoc)return r("end");if(o.tryLoc<=this.prev){var s=a.call(o,"catchLoc"),l=a.call(o,"finallyLoc");if(s&&l){if(this.prev<o.catchLoc)return r(o.catchLoc,!0);if(this.prev<o.finallyLoc)return r(o.finallyLoc)}else if(s){if(this.prev<o.catchLoc)return r(o.catchLoc,!0)}else{if(!l)throw new Error("try statement without catch or finally");if(this.prev<o.finallyLoc)return r(o.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&a.call(n,"finallyLoc")&&this.prev<n.finallyLoc){var o=n;break}}o&&("break"===e||"continue"===e)&&o.tryLoc<=t&&t<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=e,i.arg=t,o?(this.method="next",this.next=o.finallyLoc,m):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),m},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),E(r),m}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;E(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:S(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=void 0),m}},t}e.exports=o,e.exports.__esModule=!0,e.exports.default=e.exports},8698:e=>{function t(r){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(r)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},4687:(e,t,r)=>{var n=r(7061)();e.exports=n;try{regeneratorRuntime=n}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=n:Function("r","regeneratorRuntime = r")(n)}}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var a=t[n]={id:n,loaded:!1,exports:{}};return e[n].call(a.exports,a,a.exports,r),a.loaded=!0,a.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{"use strict";function e(e,t,r,n,o,a,i){try{var s=e[a](i),l=s.value}catch(e){return void r(e)}s.done?t(l):Promise.resolve(l).then(n,o)}function t(t){return function(){var r=this,n=arguments;return new Promise((function(o,a){var i=t.apply(r,n);function s(t){e(i,o,a,s,l,"next",t)}function l(t){e(i,o,a,s,l,"throw",t)}s(void 0)}))}}var n=r(4687),o=r.n(n),a=r(9483),i=r.n(a);function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}function l(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==s(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t);if("object"!==s(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e,"string");return"symbol"===s(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var c=r(5573),u=r.n(c),f=(r(8490),r(4721)),p=r.n(f),d=(r(9734),r(3105),["like","mention","repeat","pleroma:emoji_reaction","poll"]),m=function(e){return p()(d,e)},h=function(e,t){var r,n={tag:e.id},o=e.status,a=e.from_profile.name;switch(n.title=a,n.icon=e.from_profile.profile_image_url,e.type){case"like":r="favorited_you";break;case"repeat":r="repeated_you";break;case"follow":r="followed_you";break;case"move":r="migrated_to";break;case"follow_request":r="follow_request";break;case"pleroma:report":r="submitted_report";break;case"poll":r="poll_ended"}return"pleroma:emoji_reaction"===e.type?n.body=t.t("notifications.reacted_with",[e.emoji]):r?n.body=t.t("notifications."+r):m(e.type)&&(n.body=e.status.text),o&&o.attachments&&o.attachments.length>0&&!o.nsfw&&o.attachments[0].mimetype.startsWith("image/")&&(n.image=o.attachments[0].url),n};const _=2147483647,v=36,g=/^xn--/,y=/[\x2E\u3002\uFF0E\uFF61]/g,b={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},w=Math.floor;String.fromCharCode;function x(e){throw new RangeError(b[e])}function z(e,t){const r=e.split("@");let n="";r.length>1&&(n=r[0]+"@",e=r[1]);const o=function(e,t){const r=[];let n=e.length;for(;n--;)r[n]=t(e[n]);return r}((e=e.replace(y,".")).split("."),t).join(".");return n+o}const k=function(e,t,r){let n=0;for(e=r?w(e/700):e>>1,e+=w(e/t);e>455;n+=v)e=w(e/35);return w(n+36*e/(e+38))},O=function(e){const t=[],r=e.length;let n=0,o=128,a=72,i=e.lastIndexOf("-");i<0&&(i=0);for(let r=0;r<i;++r)e.charCodeAt(r)>=128&&x("not-basic"),t.push(e.charCodeAt(r));for(let l=i>0?i+1:0;l<r;){const i=n;for(let t=1,o=v;;o+=v){l>=r&&x("invalid-input");const i=(s=e.charCodeAt(l++))>=48&&s<58?s-48+26:s>=65&&s<91?s-65:s>=97&&s<123?s-97:v;i>=v&&x("invalid-input"),i>w((_-n)/t)&&x("overflow"),n+=i*t;const c=o<=a?1:o>=a+26?26:o-a;if(i<c)break;const u=v-c;t>w(_/u)&&x("overflow"),t*=u}const c=t.length+1;a=k(n-i,c,0==i),w(n/c)>_-o&&x("overflow"),o+=w(n/c),n%=c,t.splice(n++,0,o)}var s;return String.fromCodePoint(...t)},j=function(e){return z(e,(function(e){return g.test(e)?O(e.slice(4).toLowerCase()):e}))};function E(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function I(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?E(Object(r),!0).forEach((function(t){l(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):E(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var S=function(e){var t={},r=Object.prototype.hasOwnProperty.call(e,"acct"),n=r&&!Object.prototype.hasOwnProperty.call(e,"avatar");if(t.inLists=null,t.id=String(e.id),t._original=e,r){if(t.screen_name=e.acct,t.fqn=e.fqn,t.statusnet_profile_url=e.url,n)return t;if(t.emoji=e.emojis,t.name=u()(e.display_name),t.name_html=t.name,t.name_unescaped=e.display_name,t.description=e.note,t.description_html=e.note,t.fields=e.fields,t.fields_html=e.fields.map((function(e){return{name:u()(e.name),value:e.value}})),t.fields_text=e.fields.map((function(e){return{name:unescape(e.name.replace(/<[^>]*>/g,"")),value:unescape(e.value.replace(/<[^>]*>/g,""))}})),t.profile_image_url=e.avatar,t.profile_image_url_original=e.avatar,t.cover_photo=e.header,t.friends_count=e.following_count,t.bot=e.bot,e.pleroma){e.pleroma.settings_store&&(t.storage=e.pleroma.settings_store["pleroma-fe"]);var o=e.pleroma.relationship;t.background_image=e.pleroma.background_image,t.favicon=e.pleroma.favicon,t.token=e.pleroma.chat_token,o&&(t.relationship=o),t.allow_following_move=e.pleroma.allow_following_move,t.hide_follows=e.pleroma.hide_follows,t.hide_followers=e.pleroma.hide_followers,t.hide_follows_count=e.pleroma.hide_follows_count,t.hide_followers_count=e.pleroma.hide_followers_count,t.rights={moderator:e.pleroma.is_moderator,admin:e.pleroma.is_admin},t.rights.admin?t.role="admin":t.rights.moderator?t.role="moderator":t.role="member",t.birthday=e.pleroma.birthday,e.pleroma.privileges?t.privileges=e.pleroma.privileges:e.pleroma.is_admin?t.privileges=["users_read","users_manage_invites","users_manage_activation_state","users_manage_tags","users_manage_credentials","users_delete","messages_read","messages_delete","instances_delete","reports_manage_reports","moderation_log_read","announcements_manage_announcements","emoji_manage_emoji","statistics_read"]:e.pleroma.is_moderator?t.privileges=["messages_delete","reports_manage_reports"]:t.privileges=[]}e.source&&(t.description=e.source.note,t.default_scope=e.source.privacy,t.fields=e.source.fields,e.source.pleroma&&(t.no_rich_text=e.source.pleroma.no_rich_text,t.show_role=e.source.pleroma.show_role,t.discoverable=e.source.pleroma.discoverable,t.show_birthday=e.pleroma.show_birthday)),t.is_local=!t.screen_name.includes("@")}else t.screen_name=e.screen_name,t.name=e.name,t.name_html=e.name_html,t.description=e.description,t.description_html=e.description_html,t.profile_image_url=e.profile_image_url,t.profile_image_url_original=e.profile_image_url_original,t.cover_photo=e.cover_photo,t.friends_count=e.friends_count,t.statusnet_profile_url=e.statusnet_profile_url,t.is_local=e.is_local,t.role=e.role,t.show_role=e.show_role,e.rights&&(t.rights={moderator:e.rights.delete_others_notice,admin:e.rights.admin}),t.no_rich_text=e.no_rich_text,t.default_scope=e.default_scope,t.hide_follows=e.hide_follows,t.hide_followers=e.hide_followers,t.hide_follows_count=e.hide_follows_count,t.hide_followers_count=e.hide_followers_count,t.background_image=e.background_image,t.token=e.token,t.relationship={muting:e.muted,blocking:e.statusnet_blocking,followed_by:e.follows_you,following:e.following};if(t.created_at=new Date(e.created_at),t.locked=e.locked,t.followers_count=e.followers_count,t.statuses_count=e.statuses_count,e.pleroma&&(t.follow_request_count=e.pleroma.follow_request_count,t.tags=e.pleroma.tags,t.deactivated=void 0!==e.pleroma.is_active?!e.pleroma.is_active:e.pleroma.deactivated,t.notification_settings=e.pleroma.notification_settings,t.unread_chat_count=e.pleroma.unread_chat_count),t.tags=t.tags||[],t.rights=t.rights||{},t.notification_settings=t.notification_settings||{},t.screen_name_ui=t.screen_name,t.screen_name&&t.screen_name.includes("@")){var a=t.screen_name.split("@"),i=j(a[1]);i!==a[1]?(t.screen_name_ui_contains_non_ascii=!0,t.screen_name_ui=[a[0],i].join("@")):t.screen_name_ui_contains_non_ascii=!1}return t},N=function(e){var t={};return Object.prototype.hasOwnProperty.call(e,"oembed")?t.mimetype=e.mimetype:(t.mimetype=e.pleroma?e.pleroma.mime_type:e.type,t.meta=e.meta,t.id=e.id),t.url=e.url,t.large_thumb_url=e.preview_url,t.description=e.description,t},L=function e(t){var r,n={},o=Object.prototype.hasOwnProperty.call(t,"account");if(o){if(n.favorited=t.favourited,n.fave_num=t.favourites_count,n.repeated=t.reblogged,n.repeat_num=t.reblogs_count,n.bookmarked=t.bookmarked,n.type=t.reblog?"retweet":"status",n.nsfw=t.sensitive,n.raw_html=t.content,n.emojis=t.emojis,n.tags=t.tags,n.edited_at=t.edited_at,t.pleroma){var a=t.pleroma;n.text=a.content?t.pleroma.content["text/plain"]:t.content,n.summary=a.spoiler_text?t.pleroma.spoiler_text["text/plain"]:t.spoiler_text,n.statusnet_conversation_id=t.pleroma.conversation_id,n.is_local=a.local,n.in_reply_to_screen_name=t.pleroma.in_reply_to_account_acct,n.thread_muted=a.thread_muted,n.emoji_reactions=a.emoji_reactions,n.parent_visible=void 0===a.parent_visible||a.parent_visible,n.quote=a.quote?e(a.quote):void 0,n.quote_id=a.quote_id?a.quote_id:n.quote?n.quote.id:void 0,n.quote_url=a.quote_url,n.quote_visible=a.quote_visible}else n.text=t.content,n.summary=t.spoiler_text;n.in_reply_to_status_id=t.in_reply_to_id,n.in_reply_to_user_id=t.in_reply_to_account_id,n.replies_count=t.replies_count,"retweet"===n.type&&(n.retweeted_status=e(t.reblog)),n.summary_raw_html=u()(t.spoiler_text),n.external_url=t.url,n.poll=t.poll,n.poll&&(n.poll.options=(n.poll.options||[]).map((function(e){return I(I({},e),{},{title_html:u()(e.title)})}))),n.pinned=t.pinned,n.muted=t.muted}else n.favorited=t.favorited,n.fave_num=t.fave_num,n.repeated=t.repeated,n.repeat_num=t.repeat_num,n.type=(r=t).is_post_verb?"status":r.retweeted_status?"retweet":"string"==typeof r.uri&&r.uri.match(/(fave|objectType=Favourite)/)||"string"==typeof r.text&&r.text.match(/favorited/)?"favorite":r.text.match(/deleted notice {{tag/)||r.qvitter_delete_notice?"deletion":r.text.match(/started following/)||"follow"===r.activity_type?"follow":"unknown",void 0===t.nsfw?(n.nsfw=F(t),t.retweeted_status&&(n.nsfw=t.retweeted_status.nsfw)):n.nsfw=t.nsfw,n.raw_html=t.statusnet_html,n.text=t.text,n.in_reply_to_status_id=t.in_reply_to_status_id,n.in_reply_to_user_id=t.in_reply_to_user_id,n.in_reply_to_screen_name=t.in_reply_to_screen_name,n.statusnet_conversation_id=t.statusnet_conversation_id,"retweet"===n.type&&(n.retweeted_status=e(t.retweeted_status)),n.summary=t.summary,n.summary_html=t.summary_html,n.external_url=t.external_url,n.is_local=t.is_local;n.id=String(t.id),n.visibility=t.visibility,n.card=t.card,n.created_at=new Date(t.created_at),n.in_reply_to_status_id=n.in_reply_to_status_id?String(n.in_reply_to_status_id):null,n.in_reply_to_user_id=n.in_reply_to_user_id?String(n.in_reply_to_user_id):null,n.user=S(o?t.account:t.user),n.attentions=((o?t.mentions:t.attentions)||[]).map(S),n.attachments=((o?t.media_attachments:t.attachments)||[]).map(N);var i=o?t.reblog:t.retweeted_status;return i&&(n.retweeted_status=e(i)),n.favoritedBy=[],n.rebloggedBy=[],Object.prototype.hasOwnProperty.call(t,"originalStatus")&&Object.assign(n,t.originalStatus),n},R=function(e){var t={};if(Object.prototype.hasOwnProperty.call(e,"ntype")){var r=L(e.notice);t.type=e.ntype,t.seen=Boolean(e.is_seen),t.status="like"===t.type?L(e.notice.favorited_status):r,t.action=r,t.from_profile="pleroma:chat_mention"===t.type?S(e.account):S(e.from_profile)}else t.type={favourite:"like",reblog:"repeat"}[e.type]||e.type,t.seen=e.pleroma.is_seen,t.status=m(t.type)?L(e.status):null,t.action=t.status,t.target="move"!==t.type?null:S(e.target),t.from_profile=S(e.account),t.emoji=e.emoji,t.emoji_url=e.emoji_url,e.report&&(t.report=e.report,t.report.content=e.report.content,t.report.acct=S(e.report.account),t.report.actor=S(e.report.actor),t.report.statuses=e.report.statuses.map(L));return t.created_at=new Date(e.created_at),t.id=parseInt(e.id),t},F=function(e){return(e.tags||[]).includes("nsfw")||!!(e.text||"").match(/#nsfw/i)};const A="undefined"!=typeof window,T="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag,C=e=>T?Symbol(e):e,P=e=>"number"==typeof e&&isFinite(e),D=e=>"[object RegExp]"===Z(e),M=e=>ee(e)&&0===Object.keys(e).length;function W(e,t){"undefined"!=typeof console&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const U=Object.assign;let $;const q=()=>$||($="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==r.g?r.g:{});function V(e){return e.replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;")}const B=Object.prototype.hasOwnProperty;function H(e,t){return B.call(e,t)}const G=Array.isArray,Y=e=>"function"==typeof e,X=e=>"string"==typeof e,K=e=>"boolean"==typeof e,J=e=>null!==e&&"object"==typeof e,Q=Object.prototype.toString,Z=e=>Q.call(e),ee=e=>"[object Object]"===Z(e);function te(e,t,r={}){const{domain:n,messages:o,args:a}=r,i=new SyntaxError(String(e));return i.code=e,t&&(i.location=t),i.domain=n,i}String.fromCharCode(8232),String.fromCharCode(8233);const re=[];re[0]={w:[0],i:[3,0],"[":[4],o:[7]},re[1]={w:[1],".":[2],"[":[4],o:[7]},re[2]={w:[2],i:[3,0],0:[3,0]},re[3]={i:[3,0],0:[3,0],w:[1,1],".":[2,1],"[":[4,1],o:[7,1]},re[4]={"'":[5,0],'"':[6,0],"[":[4,2],"]":[1,3],o:8,l:[4,0]},re[5]={"'":[4,0],o:8,l:[5,0]},re[6]={'"':[4,0],o:8,l:[6,0]};const ne=/^\s?(?:true|false|-?[\d.]+|'[^']*'|"[^"]*")\s?$/;function oe(e){if(null==e)return"o";switch(e.charCodeAt(0)){case 91:case 93:case 46:case 34:case 39:return e;case 95:case 36:case 45:return"i";case 9:case 10:case 13:case 160:case 65279:case 8232:case 8233:return"w"}return"i"}const ae=new Map;function ie(e,t){return J(e)?e[t]:null}const se=e=>e,le=e=>"",ce=e=>0===e.length?"":e.join(""),ue=e=>null==e?"":G(e)||ee(e)&&e.toString===Q?JSON.stringify(e,null,2):String(e);function fe(e,t){return e=Math.abs(e),2===t?e?e>1?1:0:1:e?Math.min(e,2):0}let pe=null;const de=me("function:translate");function me(e){return t=>pe&&pe.emit(e,t)}function he(e,t,r){return[...new Set([r,...G(t)?t:J(t)?Object.keys(t):X(t)?[t]:[r]])]}function _e(e,t,r){const n=X(r)?r:be,o=e;o.__localeChainCache||(o.__localeChainCache=new Map);let a=o.__localeChainCache.get(n);if(!a){a=[];let e=[r];for(;G(e);)e=ve(a,e,t);const i=G(t)||!ee(t)?t:t.default?t.default:null;e=X(i)?[i]:i,G(e)&&ve(a,e,!1),o.__localeChainCache.set(n,a)}return a}function ve(e,t,r){let n=!0;for(let o=0;o<t.length&&K(n);o++){const a=t[o];X(a)&&(n=ge(e,t[o],r))}return n}function ge(e,t,r){let n;const o=t.split("-");do{n=ye(e,o.join("-"),r),o.splice(-1,1)}while(o.length&&!0===n);return n}function ye(e,t,r){let n=!1;if(!e.includes(t)&&(n=!0,t)){n="!"!==t[t.length-1];const o=t.replace(/!/g,"");e.push(o),(G(r)||ee(r))&&r[o]&&(n=r[o])}return n}const be="en-US",we=e=>`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;let xe,ze,ke=null;const Oe=e=>{ke=e};let je=null;const Ee=e=>{je=e};let Ie=0;function Se(e,t,r,n,o){const{missing:a,onWarn:i}=e;if(null!==a){const n=a(e,r,t,o);return X(n)?n:t}return t}function Ne(e,t,r){e.__localeChainCache=new Map,e.localeFallbacker(e,r,t)}Object.create(null);let Le=15;const Re=()=>++Le,Fe={INVALID_ARGUMENT:Le,INVALID_DATE_ARGUMENT:Re(),INVALID_ISO_DATE_ARGUMENT:Re(),__EXTEND_POINT__:Re()};function Ae(e){return te(e,null,void 0)}const Te=()=>"",Ce=e=>Y(e);function Pe(e,...t){const{fallbackFormat:r,postTranslation:n,unresolving:o,messageCompiler:a,fallbackLocale:i,messages:s}=e,[l,c]=We(...t),u=(K(c.missingWarn)?c.missingWarn:e.missingWarn,K(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn,K(c.escapeParameter)?c.escapeParameter:e.escapeParameter),f=!!c.resolvedMessage,p=X(c.default)||K(c.default)?K(c.default)?a?l:()=>l:c.default:r?a?l:()=>l:"",d=r||""!==p,m=X(c.locale)?c.locale:e.locale;u&&function(e){G(e.list)?e.list=e.list.map((e=>X(e)?V(e):e)):J(e.named)&&Object.keys(e.named).forEach((t=>{X(e.named[t])&&(e.named[t]=V(e.named[t]))}))}(c);let[h,_,v]=f?[l,m,s[m]||{}]:De(e,l,m,i),g=h,y=l;if(f||X(g)||Ce(g)||d&&(g=p,y=g),!(f||(X(g)||Ce(g))&&X(_)))return o?-1:l;let b=!1;const w=Ce(g)?g:Me(e,l,_,g,y,(()=>{b=!0}));if(b)return g;const x=function(e,t,r,n){const{modifiers:o,pluralRules:a,messageResolver:i,fallbackLocale:s,fallbackWarn:l,missingWarn:c,fallbackContext:u}=e,f={locale:t,modifiers:o,pluralRules:a,messages:n=>{let o=i(r,n);if(null==o&&u){const[,,e]=De(u,n,t,s);o=i(e,n)}if(X(o)){let r=!1;const a=Me(e,n,t,o,n,(()=>{r=!0}));return r?Te:a}return Ce(o)?o:Te}};return e.processor&&(f.processor=e.processor),n.list&&(f.list=n.list),n.named&&(f.named=n.named),P(n.plural)&&(f.pluralIndex=n.plural),f}(e,_,v,c),z=function(e,t,r){return t(r)}(0,w,function(e={}){const t=e.locale,r=function(e){const t=P(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(P(e.named.count)||P(e.named.n))?P(e.named.count)?e.named.count:P(e.named.n)?e.named.n:t:t}(e),n=J(e.pluralRules)&&X(t)&&Y(e.pluralRules[t])?e.pluralRules[t]:fe,o=J(e.pluralRules)&&X(t)&&Y(e.pluralRules[t])?fe:void 0,a=e.list||[],i=e.named||{};function s(t){return(Y(e.messages)?e.messages(t):!!J(e.messages)&&e.messages[t])||(e.parent?e.parent.message(t):le)}P(e.pluralIndex)&&function(e,t){t.count||(t.count=e),t.n||(t.n=e)}(r,i);const l=ee(e.processor)&&Y(e.processor.normalize)?e.processor.normalize:ce,c=ee(e.processor)&&Y(e.processor.interpolate)?e.processor.interpolate:ue,u={list:e=>a[e],named:e=>i[e],plural:e=>e[n(r,e.length,o)],linked:(t,...r)=>{const[n,o]=r;let a="text",i="";1===r.length?J(n)?(i=n.modifier||i,a=n.type||a):X(n)&&(i=n||i):2===r.length&&(X(n)&&(i=n||i),X(o)&&(a=o||a));let l=s(t)(u);return"vnode"===a&&G(l)&&i&&(l=l[0]),i?(c=i,e.modifiers?e.modifiers[c]:se)(l,a):l;var c},message:s,type:ee(e.processor)&&X(e.processor.type)?e.processor.type:"text",interpolate:c,normalize:l};return u}(x)),k=n?n(z,l):z;if(__INTLIFY_PROD_DEVTOOLS__){const t={timestamp:Date.now(),key:X(l)?l:Ce(g)?g.key:"",locale:_||(Ce(g)?g.locale:""),format:X(g)?g:Ce(g)?g.source:"",message:k};t.meta=U({},e.__meta,ke||{}),de(t)}return k}function De(e,t,r,n,o,a){const{messages:i,onWarn:s,messageResolver:l,localeFallbacker:c}=e,u=c(e,n,r);let f,p={},d=null,m=r,h=null;for(let r=0;r<u.length&&(f=h=u[r],p=i[f]||{},null===(d=l(p,t))&&(d=p[t]),!X(d)&&!Y(d));r++){const r=Se(e,t,f,0,"translate");r!==t&&(d=r),m=h}return[d,f,p]}function Me(e,t,r,n,o,a){const{messageCompiler:i,warnHtmlMessage:s}=e;if(Ce(n)){const e=n;return e.locale=e.locale||r,e.key=e.key||t,e}if(null==i){const e=()=>n;return e.locale=r,e.key=t,e}const l=i(n,function(e,t,r,n,o,a){return{warnHtmlMessage:o,onError:e=>{throw a&&a(e),e},onCacheKey:e=>((e,t,r)=>{return n={l:e,k:t,s:r},JSON.stringify(n).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027");var n})(t,r,e)}}(0,r,o,0,s,a));return l.locale=r,l.key=t,l.source=n,l}function We(...e){const[t,r,n]=e,o={};if(!X(t)&&!P(t)&&!Ce(t))throw Ae(Fe.INVALID_ARGUMENT);const a=P(t)?String(t):(Ce(t),t);return P(r)?o.plural=r:X(r)?o.default=r:ee(r)&&!M(r)?o.named=r:G(r)&&(o.list=r),P(n)?o.plural=n:X(n)?o.default=n:ee(n)&&U(o,n),[a,o]}const Ue="undefined"!=typeof Intl;function $e(e,...t){const{datetimeFormats:r,unresolving:n,fallbackLocale:o,onWarn:a,localeFallbacker:i}=e,{__datetimeFormatters:s}=e,[l,c,u,f]=Ve(...t),p=(K(u.missingWarn)?u.missingWarn:e.missingWarn,K(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn,!!u.part),d=X(u.locale)?u.locale:e.locale,m=i(e,o,d);if(!X(l)||""===l)return new Intl.DateTimeFormat(d,f).format(c);let h,_={},v=null,g=d,y=null;for(let t=0;t<m.length&&(h=y=m[t],_=r[h]||{},v=_[l],!ee(v));t++)Se(e,l,h,0,"datetime format"),g=y;if(!ee(v)||!X(h))return n?-1:l;let b=`${h}__${l}`;M(f)||(b=`${b}__${JSON.stringify(f)}`);let w=s.get(b);return w||(w=new Intl.DateTimeFormat(h,U({},v,f)),s.set(b,w)),p?w.formatToParts(c):w.format(c)}Ue&&Intl.DateTimeFormat,Ue&&Intl.NumberFormat;const qe=["localeMatcher","weekday","era","year","month","day","hour","minute","second","timeZoneName","formatMatcher","hour12","timeZone","dateStyle","timeStyle","calendar","dayPeriod","numberingSystem","hourCycle","fractionalSecondDigits"];function Ve(...e){const[t,r,n,o]=e,a={};let i,s={};if(X(t)){const e=t.match(/(\d{4}-\d{2}-\d{2})(T|\s)?(.*)/);if(!e)throw Ae(Fe.INVALID_ISO_DATE_ARGUMENT);const r=e[3]?e[3].trim().startsWith("T")?`${e[1].trim()}${e[3].trim()}`:`${e[1].trim()}T${e[3].trim()}`:e[1].trim();i=new Date(r);try{i.toISOString()}catch(e){throw Ae(Fe.INVALID_ISO_DATE_ARGUMENT)}}else if("[object Date]"===Z(t)){if(isNaN(t.getTime()))throw Ae(Fe.INVALID_DATE_ARGUMENT);i=t}else{if(!P(t))throw Ae(Fe.INVALID_ARGUMENT);i=t}return X(r)?a.key=r:ee(r)&&Object.keys(r).forEach((e=>{qe.includes(e)?s[e]=r[e]:a[e]=r[e]})),X(n)?a.locale=n:ee(n)&&(s=n),ee(o)&&(s=o),[a.key||"",i,a,s]}function Be(e,t,r){const n=e;for(const e in r){const r=`${t}__${e}`;n.__datetimeFormatters.has(r)&&n.__datetimeFormatters.delete(r)}}function He(e,...t){const{numberFormats:r,unresolving:n,fallbackLocale:o,onWarn:a,localeFallbacker:i}=e,{__numberFormatters:s}=e,[l,c,u,f]=Ye(...t),p=(K(u.missingWarn)?u.missingWarn:e.missingWarn,K(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn,!!u.part),d=X(u.locale)?u.locale:e.locale,m=i(e,o,d);if(!X(l)||""===l)return new Intl.NumberFormat(d,f).format(c);let h,_={},v=null,g=d,y=null;for(let t=0;t<m.length&&(h=y=m[t],_=r[h]||{},v=_[l],!ee(v));t++)Se(e,l,h,0,"number format"),g=y;if(!ee(v)||!X(h))return n?-1:l;let b=`${h}__${l}`;M(f)||(b=`${b}__${JSON.stringify(f)}`);let w=s.get(b);return w||(w=new Intl.NumberFormat(h,U({},v,f)),s.set(b,w)),p?w.formatToParts(c):w.format(c)}const Ge=["localeMatcher","style","currency","currencyDisplay","currencySign","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits","compactDisplay","notation","signDisplay","unit","unitDisplay","roundingMode","roundingPriority","roundingIncrement","trailingZeroDisplay"];function Ye(...e){const[t,r,n,o]=e,a={};let i={};if(!P(t))throw Ae(Fe.INVALID_ARGUMENT);const s=t;return X(r)?a.key=r:ee(r)&&Object.keys(r).forEach((e=>{Ge.includes(e)?i[e]=r[e]:a[e]=r[e]})),X(n)?a.locale=n:ee(n)&&(i=n),ee(o)&&(i=o),[a.key||"",s,a,i]}function Xe(e,t,r){const n=e;for(const e in r){const r=`${t}__${e}`;n.__numberFormatters.has(r)&&n.__numberFormatters.delete(r)}}function Ke(e,t){const r=Object.create(null),n=e.split(",");for(let e=0;e<n.length;e++)r[n[e]]=!0;return t?e=>!!r[e.toLowerCase()]:e=>!!r[e]}function Je(e){if(ut(e)){const t={};for(let r=0;r<e.length;r++){const n=e[r],o=dt(n)?tt(n):Je(n);if(o)for(const e in o)t[e]=o[e]}return t}return dt(e)||ht(e)?e:void 0}"boolean"!=typeof __INTLIFY_PROD_DEVTOOLS__&&(q().__INTLIFY_PROD_DEVTOOLS__=!1);const Qe=/;(?![^(]*\))/g,Ze=/:([^]+)/,et=/\/\*.*?\*\//gs;function tt(e){const t={};return e.replace(et,"").split(Qe).forEach((e=>{if(e){const r=e.split(Ze);r.length>1&&(t[r[0].trim()]=r[1].trim())}})),t}function rt(e){let t="";if(dt(e))t=e;else if(ut(e))for(let r=0;r<e.length;r++){const n=rt(e[r]);n&&(t+=n+" ")}else if(ht(e))for(const r in e)e[r]&&(t+=r+" ");return t.trim()}const nt={},ot=()=>{},at=/^on[^a-z]/,it=e=>at.test(e),st=Object.assign,lt=Object.prototype.hasOwnProperty,ct=(e,t)=>lt.call(e,t),ut=Array.isArray,ft=e=>"[object Map]"===vt(e),pt=e=>"function"==typeof e,dt=e=>"string"==typeof e,mt=e=>"symbol"==typeof e,ht=e=>null!==e&&"object"==typeof e,_t=Object.prototype.toString,vt=e=>_t.call(e),gt=e=>dt(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,yt=e=>{const t=Object.create(null);return r=>t[r]||(t[r]=e(r))},bt=/-(\w)/g,wt=(yt((e=>e.replace(bt,((e,t)=>t?t.toUpperCase():"")))),/\B([A-Z])/g),xt=(yt((e=>e.replace(wt,"-$1").toLowerCase())),yt((e=>e.charAt(0).toUpperCase()+e.slice(1)))),zt=(yt((e=>e?`on${xt(e)}`:"")),(e,t)=>!Object.is(e,t));let kt;class Ot{constructor(e=!1){this.detached=e,this.active=!0,this.effects=[],this.cleanups=[],this.parent=kt,!e&&kt&&(this.index=(kt.scopes||(kt.scopes=[])).push(this)-1)}run(e){if(this.active){const t=kt;try{return kt=this,e()}finally{kt=t}}}on(){kt=this}off(){kt=this.parent}stop(e){if(this.active){let t,r;for(t=0,r=this.effects.length;t<r;t++)this.effects[t].stop();for(t=0,r=this.cleanups.length;t<r;t++)this.cleanups[t]();if(this.scopes)for(t=0,r=this.scopes.length;t<r;t++)this.scopes[t].stop(!0);if(!this.detached&&this.parent&&!e){const e=this.parent.scopes.pop();e&&e!==this&&(this.parent.scopes[this.index]=e,e.index=this.index)}this.parent=void 0,this.active=!1}}}const jt=e=>{const t=new Set(e);return t.w=0,t.n=0,t},Et=e=>(e.w&Rt)>0,It=e=>(e.n&Rt)>0,St=new WeakMap;let Nt,Lt=0,Rt=1;const Ft=Symbol(""),At=Symbol("");class Tt{constructor(e,t=null,r){this.fn=e,this.scheduler=t,this.active=!0,this.deps=[],this.parent=void 0,function(e,t=kt){t&&t.active&&t.effects.push(e)}(this,r)}run(){if(!this.active)return this.fn();let e=Nt,t=Pt;for(;e;){if(e===this)return;e=e.parent}try{return this.parent=Nt,Nt=this,Pt=!0,Rt=1<<++Lt,Lt<=30?(({deps:e})=>{if(e.length)for(let t=0;t<e.length;t++)e[t].w|=Rt})(this):Ct(this),this.fn()}finally{Lt<=30&&(e=>{const{deps:t}=e;if(t.length){let r=0;for(let n=0;n<t.length;n++){const o=t[n];Et(o)&&!It(o)?o.delete(e):t[r++]=o,o.w&=~Rt,o.n&=~Rt}t.length=r}})(this),Rt=1<<--Lt,Nt=this.parent,Pt=t,this.parent=void 0,this.deferStop&&this.stop()}}stop(){Nt===this?this.deferStop=!0:this.active&&(Ct(this),this.onStop&&this.onStop(),this.active=!1)}}function Ct(e){const{deps:t}=e;if(t.length){for(let r=0;r<t.length;r++)t[r].delete(e);t.length=0}}let Pt=!0;const Dt=[];function Mt(){Dt.push(Pt),Pt=!1}function Wt(){const e=Dt.pop();Pt=void 0===e||e}function Ut(e,t,r){if(Pt&&Nt){let t=St.get(e);t||St.set(e,t=new Map);let n=t.get(r);n||t.set(r,n=jt()),$t(n)}}function $t(e,t){let r=!1;Lt<=30?It(e)||(e.n|=Rt,r=!Et(e)):r=!e.has(Nt),r&&(e.add(Nt),Nt.deps.push(e))}function qt(e,t,r,n,o,a){const i=St.get(e);if(!i)return;let s=[];if("clear"===t)s=[...i.values()];else if("length"===r&&ut(e)){const e=(e=>{const t=parseFloat(e);return isNaN(t)?e:t})(n);i.forEach(((t,r)=>{("length"===r||r>=e)&&s.push(t)}))}else switch(void 0!==r&&s.push(i.get(r)),t){case"add":ut(e)?gt(r)&&s.push(i.get("length")):(s.push(i.get(Ft)),ft(e)&&s.push(i.get(At)));break;case"delete":ut(e)||(s.push(i.get(Ft)),ft(e)&&s.push(i.get(At)));break;case"set":ft(e)&&s.push(i.get(Ft))}if(1===s.length)s[0]&&Vt(s[0]);else{const e=[];for(const t of s)t&&e.push(...t);Vt(jt(e))}}function Vt(e,t){const r=ut(e)?e:[...e];for(const e of r)e.computed&&Bt(e);for(const e of r)e.computed||Bt(e)}function Bt(e,t){(e!==Nt||e.allowRecurse)&&(e.scheduler?e.scheduler():e.run())}const Ht=Ke("__proto__,__v_isRef,__isVue"),Gt=new Set(Object.getOwnPropertyNames(Symbol).filter((e=>"arguments"!==e&&"caller"!==e)).map((e=>Symbol[e])).filter(mt)),Yt=Qt(),Xt=Qt(!0),Kt=Jt();function Jt(){const e={};return["includes","indexOf","lastIndexOf"].forEach((t=>{e[t]=function(...e){const r=Fr(this);for(let e=0,t=this.length;e<t;e++)Ut(r,0,e+"");const n=r[t](...e);return-1===n||!1===n?r[t](...e.map(Fr)):n}})),["push","pop","shift","unshift","splice"].forEach((t=>{e[t]=function(...e){Mt();const r=Fr(this)[t].apply(this,e);return Wt(),r}})),e}function Qt(e=!1,t=!1){return function(r,n,o){if("__v_isReactive"===n)return!e;if("__v_isReadonly"===n)return e;if("__v_isShallow"===n)return t;if("__v_raw"===n&&o===(e?t?Or:kr:t?zr:xr).get(r))return r;const a=ut(r);if(!e&&a&&ct(Kt,n))return Reflect.get(Kt,n,o);const i=Reflect.get(r,n,o);return(mt(n)?Gt.has(n):Ht(n))?i:(e||Ut(r,0,n),t?i:Mr(i)?a&&gt(n)?i:i.value:ht(i)?e?Er(i):jr(i):i)}}function Zt(e=!1){return function(t,r,n,o){let a=t[r];if(Nr(a)&&Mr(a)&&!Mr(n))return!1;if(!e&&(Lr(n)||Nr(n)||(a=Fr(a),n=Fr(n)),!ut(t)&&Mr(a)&&!Mr(n)))return a.value=n,!0;const i=ut(t)&&gt(r)?Number(r)<t.length:ct(t,r),s=Reflect.set(t,r,n,o);return t===Fr(o)&&(i?zt(n,a)&&qt(t,"set",r,n):qt(t,"add",r,n)),s}}const er={get:Yt,set:Zt(),deleteProperty:function(e,t){const r=ct(e,t),n=(e[t],Reflect.deleteProperty(e,t));return n&&r&&qt(e,"delete",t,void 0),n},has:function(e,t){const r=Reflect.has(e,t);return mt(t)&&Gt.has(t)||Ut(e,0,t),r},ownKeys:function(e){return Ut(e,0,ut(e)?"length":Ft),Reflect.ownKeys(e)}},tr={get:Xt,set:(e,t)=>!0,deleteProperty:(e,t)=>!0},rr=e=>e,nr=e=>Reflect.getPrototypeOf(e);function or(e,t,r=!1,n=!1){const o=Fr(e=e.__v_raw),a=Fr(t);r||(t!==a&&Ut(o,0,t),Ut(o,0,a));const{has:i}=nr(o),s=n?rr:r?Cr:Tr;return i.call(o,t)?s(e.get(t)):i.call(o,a)?s(e.get(a)):void(e!==o&&e.get(t))}function ar(e,t=!1){const r=this.__v_raw,n=Fr(r),o=Fr(e);return t||(e!==o&&Ut(n,0,e),Ut(n,0,o)),e===o?r.has(e):r.has(e)||r.has(o)}function ir(e,t=!1){return e=e.__v_raw,!t&&Ut(Fr(e),0,Ft),Reflect.get(e,"size",e)}function sr(e){e=Fr(e);const t=Fr(this);return nr(t).has.call(t,e)||(t.add(e),qt(t,"add",e,e)),this}function lr(e,t){t=Fr(t);const r=Fr(this),{has:n,get:o}=nr(r);let a=n.call(r,e);a||(e=Fr(e),a=n.call(r,e));const i=o.call(r,e);return r.set(e,t),a?zt(t,i)&&qt(r,"set",e,t):qt(r,"add",e,t),this}function cr(e){const t=Fr(this),{has:r,get:n}=nr(t);let o=r.call(t,e);o||(e=Fr(e),o=r.call(t,e)),n&&n.call(t,e);const a=t.delete(e);return o&&qt(t,"delete",e,void 0),a}function ur(){const e=Fr(this),t=0!==e.size,r=e.clear();return t&&qt(e,"clear",void 0,void 0),r}function fr(e,t){return function(r,n){const o=this,a=o.__v_raw,i=Fr(a),s=t?rr:e?Cr:Tr;return!e&&Ut(i,0,Ft),a.forEach(((e,t)=>r.call(n,s(e),s(t),o)))}}function pr(e,t,r){return function(...n){const o=this.__v_raw,a=Fr(o),i=ft(a),s="entries"===e||e===Symbol.iterator&&i,l="keys"===e&&i,c=o[e](...n),u=r?rr:t?Cr:Tr;return!t&&Ut(a,0,l?At:Ft),{next(){const{value:e,done:t}=c.next();return t?{value:e,done:t}:{value:s?[u(e[0]),u(e[1])]:u(e),done:t}},[Symbol.iterator](){return this}}}}function dr(e){return function(...t){return"delete"!==e&&this}}function mr(){const e={get(e){return or(this,e)},get size(){return ir(this)},has:ar,add:sr,set:lr,delete:cr,clear:ur,forEach:fr(!1,!1)},t={get(e){return or(this,e,!1,!0)},get size(){return ir(this)},has:ar,add:sr,set:lr,delete:cr,clear:ur,forEach:fr(!1,!0)},r={get(e){return or(this,e,!0)},get size(){return ir(this,!0)},has(e){return ar.call(this,e,!0)},add:dr("add"),set:dr("set"),delete:dr("delete"),clear:dr("clear"),forEach:fr(!0,!1)},n={get(e){return or(this,e,!0,!0)},get size(){return ir(this,!0)},has(e){return ar.call(this,e,!0)},add:dr("add"),set:dr("set"),delete:dr("delete"),clear:dr("clear"),forEach:fr(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach((o=>{e[o]=pr(o,!1,!1),r[o]=pr(o,!0,!1),t[o]=pr(o,!1,!0),n[o]=pr(o,!0,!0)})),[e,r,t,n]}const[hr,_r,vr,gr]=mr();function yr(e,t){const r=t?e?gr:vr:e?_r:hr;return(t,n,o)=>"__v_isReactive"===n?!e:"__v_isReadonly"===n?e:"__v_raw"===n?t:Reflect.get(ct(r,n)&&n in t?r:t,n,o)}const br={get:yr(!1,!1)},wr={get:yr(!0,!1)},xr=new WeakMap,zr=new WeakMap,kr=new WeakMap,Or=new WeakMap;function jr(e){return Nr(e)?e:Ir(e,!1,er,br,xr)}function Er(e){return Ir(e,!0,tr,wr,kr)}function Ir(e,t,r,n,o){if(!ht(e))return e;if(e.__v_raw&&(!t||!e.__v_isReactive))return e;const a=o.get(e);if(a)return a;const i=(s=e).__v_skip||!Object.isExtensible(s)?0:function(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}((e=>vt(e).slice(8,-1))(s));var s;if(0===i)return e;const l=new Proxy(e,2===i?n:r);return o.set(e,l),l}function Sr(e){return Nr(e)?Sr(e.__v_raw):!(!e||!e.__v_isReactive)}function Nr(e){return!(!e||!e.__v_isReadonly)}function Lr(e){return!(!e||!e.__v_isShallow)}function Rr(e){return Sr(e)||Nr(e)}function Fr(e){const t=e&&e.__v_raw;return t?Fr(t):e}function Ar(e){return((e,t,r)=>{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,value:r})})(e,"__v_skip",!0),e}const Tr=e=>ht(e)?jr(e):e,Cr=e=>ht(e)?Er(e):e;function Pr(e){Pt&&Nt&&$t((e=Fr(e)).dep||(e.dep=jt()))}function Dr(e,t){(e=Fr(e)).dep&&Vt(e.dep)}function Mr(e){return!(!e||!0!==e.__v_isRef)}function Wr(e){return Ur(e,!1)}function Ur(e,t){return Mr(e)?e:new $r(e,t)}class $r{constructor(e,t){this.__v_isShallow=t,this.dep=void 0,this.__v_isRef=!0,this._rawValue=t?e:Fr(e),this._value=t?e:Tr(e)}get value(){return Pr(this),this._value}set value(e){const t=this.__v_isShallow||Lr(e)||Nr(e);e=t?e:Fr(e),zt(e,this._rawValue)&&(this._rawValue=e,this._value=t?e:Tr(e),Dr(this))}}const qr={get:(e,t,r)=>{return Mr(n=Reflect.get(e,t,r))?n.value:n;var n},set:(e,t,r,n)=>{const o=e[t];return Mr(o)&&!Mr(r)?(o.value=r,!0):Reflect.set(e,t,r,n)}};var Vr;class Br{constructor(e,t,r,n){this._setter=t,this.dep=void 0,this.__v_isRef=!0,this[Vr]=!1,this._dirty=!0,this.effect=new Tt(e,(()=>{this._dirty||(this._dirty=!0,Dr(this))})),this.effect.computed=this,this.effect.active=this._cacheable=!n,this.__v_isReadonly=r}get value(){const e=Fr(this);return Pr(e),!e._dirty&&e._cacheable||(e._dirty=!1,e._value=e.effect.run()),e._value}set value(e){this._setter(e)}}function Hr(e,t,r,n){let o;try{o=n?e(...n):e()}catch(e){Yr(e,t,r)}return o}function Gr(e,t,r,n){if(pt(e)){const a=Hr(e,t,r,n);return a&&(ht(o=a)&&pt(o.then)&&pt(o.catch))&&a.catch((e=>{Yr(e,t,r)})),a}var o;const a=[];for(let o=0;o<e.length;o++)a.push(Gr(e[o],t,r,n));return a}function Yr(e,t,r,n=!0){if(t&&t.vnode,t){let n=t.parent;const o=t.proxy,a=r;for(;n;){const t=n.ec;if(t)for(let r=0;r<t.length;r++)if(!1===t[r](e,o,a))return;n=n.parent}const i=t.appContext.config.errorHandler;if(i)return void Hr(i,null,10,[e,o,a])}!function(e,t,r,n=!0){console.error(e)}(e,0,0,n)}Vr="__v_isReadonly";let Xr=!1,Kr=!1;const Jr=[];let Qr=0;const Zr=[];let en=null,tn=0;const rn=Promise.resolve();let nn=null;function on(e){const t=nn||rn;return e?t.then(this?e.bind(this):e):t}function an(e){Jr.length&&Jr.includes(e,Xr&&e.allowRecurse?Qr+1:Qr)||(null==e.id?Jr.push(e):Jr.splice(function(e){let t=Qr+1,r=Jr.length;for(;t<r;){const n=t+r>>>1;ln(Jr[n])<e?t=n+1:r=n}return t}(e.id),0,e),sn())}function sn(){Xr||Kr||(Kr=!0,nn=rn.then(un))}const ln=e=>null==e.id?1/0:e.id,cn=(e,t)=>{const r=ln(e)-ln(t);if(0===r){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return r};function un(e){Kr=!1,Xr=!0,Jr.sort(cn);try{for(Qr=0;Qr<Jr.length;Qr++){const e=Jr[Qr];e&&!1!==e.active&&Hr(e,null,14)}}finally{Qr=0,Jr.length=0,function(e){if(Zr.length){const e=[...new Set(Zr)];if(Zr.length=0,en)return void en.push(...e);for(en=e,en.sort(((e,t)=>ln(e)-ln(t))),tn=0;tn<en.length;tn++)en[tn]();en=null,tn=0}}(),Xr=!1,nn=null,(Jr.length||Zr.length)&&un(e)}}new Set,new Map;let fn=null;function pn(e,t,r=!1){const n=qn||fn;if(n){const o=null==n.parent?n.vnode.appContext&&n.vnode.appContext.provides:n.parent.provides;if(o&&e in o)return o[e];if(arguments.length>1)return r&&pt(t)?t.call(n.proxy):t}}const dn={};function mn(e,t,r){return hn(e,t,r)}function hn(e,t,{immediate:r,deep:n,flush:o,onTrack:a,onTrigger:i}=nt){const s=qn;let l,c,u=!1,f=!1;if(Mr(e)?(l=()=>e.value,u=Lr(e)):Sr(e)?(l=()=>e,n=!0):ut(e)?(f=!0,u=e.some((e=>Sr(e)||Lr(e))),l=()=>e.map((e=>Mr(e)?e.value:Sr(e)?vn(e):pt(e)?Hr(e,s,2):void 0))):l=pt(e)?t?()=>Hr(e,s,2):()=>{if(!s||!s.isUnmounted)return c&&c(),Gr(e,s,3,[d])}:ot,t&&n){const e=l;l=()=>vn(e())}let p,d=e=>{c=v.onStop=()=>{Hr(e,s,4)}};if(Gn){if(d=ot,t?r&&Gr(t,s,3,[l(),f?[]:void 0,d]):l(),"sync"!==o)return ot;{const e=Jn();p=e.__watcherHandles||(e.__watcherHandles=[])}}let m=f?new Array(e.length).fill(dn):dn;const h=()=>{if(v.active)if(t){const e=v.run();(n||u||(f?e.some(((e,t)=>zt(e,m[t]))):zt(e,m)))&&(c&&c(),Gr(t,s,3,[e,m===dn?void 0:f&&m[0]===dn?[]:m,d]),m=e)}else v.run()};let _;h.allowRecurse=!!t,"sync"===o?_=h:"post"===o?_=()=>Ln(h,s&&s.suspense):(h.pre=!0,s&&(h.id=s.uid),_=()=>an(h));const v=new Tt(l,_);t?r?h():m=v.run():"post"===o?Ln(v.run.bind(v),s&&s.suspense):v.run();const g=()=>{v.stop(),s&&s.scope&&((e,t)=>{const r=e.indexOf(t);r>-1&&e.splice(r,1)})(s.scope.effects,v)};return p&&p.push(g),g}function _n(e,t,r){const n=this.proxy,o=dt(e)?e.includes(".")?function(e,t){const r=t.split(".");return()=>{let t=e;for(let e=0;e<r.length&&t;e++)t=t[r[e]];return t}}(n,e):()=>n[e]:e.bind(n,n);let a;pt(t)?a=t:(a=t.handler,r=t);const i=qn;Bn(this);const s=hn(o,a.bind(n),r);return i?Bn(i):Hn(),s}function vn(e,t){if(!ht(e)||e.__v_skip)return e;if((t=t||new Set).has(e))return e;if(t.add(e),Mr(e))vn(e.value,t);else if(ut(e))for(let r=0;r<e.length;r++)vn(e[r],t);else if("[object Set]"===vt(e)||ft(e))e.forEach((e=>{vn(e,t)}));else if((e=>"[object Object]"===vt(e))(e))for(const r in e)vn(e[r],t);return e}Boolean,Boolean;RegExp,RegExp;const gn=e=>(t,r=qn)=>(!Gn||"sp"===e)&&function(e,t,r=qn,n=!1){if(r){const o=r[e]||(r[e]=[]),a=t.__weh||(t.__weh=(...n)=>{if(r.isUnmounted)return;Mt(),Bn(r);const o=Gr(t,r,e,n);return Hn(),Wt(),o});return n?o.unshift(a):o.push(a),a}}(e,((...e)=>t(...e)),r),yn=gn("bm"),bn=gn("m"),wn=(gn("bu"),gn("u"),gn("bum"),gn("um"));gn("sp"),gn("rtg"),gn("rtc");const xn=Symbol(),zn=e=>e?4&e.vnode.shapeFlag?function(e){if(e.exposed)return e.exposeProxy||(e.exposeProxy=new Proxy((t=Ar(e.exposed),Sr(t)?t:new Proxy(t,qr)),{get:(t,r)=>r in t?t[r]:r in kn?kn[r](e):void 0,has:(e,t)=>t in e||t in kn}));var t}(e)||e.proxy:zn(e.parent):null,kn=st(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>zn(e.parent),$root:e=>zn(e.root),$emit:e=>e.emit,$options:e=>function(e){const t=e.type,{mixins:r,extends:n}=t,{mixins:o,optionsCache:a,config:{optionMergeStrategies:i}}=e.appContext,s=a.get(t);let l;return s?l=s:o.length||r||n?(l={},o.length&&o.forEach((e=>On(l,e,i,!0))),On(l,t,i)):l=t,ht(t)&&a.set(t,l),l}(e),$forceUpdate:e=>e.f||(e.f=()=>an(e.update)),$nextTick:e=>e.n||(e.n=on.bind(e.proxy)),$watch:e=>_n.bind(e)});function On(e,t,r,n=!1){const{mixins:o,extends:a}=t;a&&On(e,a,r,!0),o&&o.forEach((t=>On(e,t,r,!0)));for(const o in t)if(n&&"expose"===o);else{const n=jn[o]||r&&r[o];e[o]=n?n(e[o],t[o]):t[o]}return e}const jn={data:En,props:Nn,emits:Nn,methods:Nn,computed:Nn,beforeCreate:Sn,created:Sn,beforeMount:Sn,mounted:Sn,beforeUpdate:Sn,updated:Sn,beforeDestroy:Sn,beforeUnmount:Sn,destroyed:Sn,unmounted:Sn,activated:Sn,deactivated:Sn,errorCaptured:Sn,serverPrefetch:Sn,components:Nn,directives:Nn,watch:function(e,t){if(!e)return t;if(!t)return e;const r=st(Object.create(null),e);for(const n in t)r[n]=Sn(e[n],t[n]);return r},provide:En,inject:function(e,t){return Nn(In(e),In(t))}};function En(e,t){return t?e?function(){return st(pt(e)?e.call(this,this):e,pt(t)?t.call(this,this):t)}:t:e}function In(e){if(ut(e)){const t={};for(let r=0;r<e.length;r++)t[e[r]]=e[r];return t}return e}function Sn(e,t){return e?[...new Set([].concat(e,t))]:t}function Nn(e,t){return e?st(st(Object.create(null),e),t):t}const Ln=function(e,t){var r;t&&t.pendingBranch?ut(e)?t.effects.push(...e):t.effects.push(e):(ut(r=e)?Zr.push(...r):en&&en.includes(r,r.allowRecurse?tn+1:tn)||Zr.push(r),sn())},Rn=Symbol(void 0),Fn=Symbol(void 0),An=Symbol(void 0);Symbol(void 0);function Tn(e){return!!e&&!0===e.__v_isVNode}const Cn="__vInternal",Pn=({key:e})=>null!=e?e:null,Dn=({ref:e,ref_key:t,ref_for:r})=>null!=e?dt(e)||Mr(e)||pt(e)?{i:fn,r:e,k:t,f:!!r}:e:null;const Mn=function(e,t=null,r=null,n=0,o=null,a=!1){if(e&&e!==xn||(e=An),Tn(e)){const n=Wn(e,t,!0);return r&&$n(n,r),n.patchFlag|=-2,n}if(i=e,pt(i)&&"__vccOpts"in i&&(e=e.__vccOpts),t){t=function(e){return e?Rr(e)||Cn in e?st({},e):e:null}(t);let{class:e,style:r}=t;e&&!dt(e)&&(t.class=rt(e)),ht(r)&&(Rr(r)&&!ut(r)&&(r=st({},r)),t.style=Je(r))}var i;return function(e,t=null,r=null,n=0,o=null,a=(e===Rn?0:1),i=!1,s=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Pn(t),ref:t&&Dn(t),scopeId:null,slotScopeIds:null,children:r,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:a,patchFlag:n,dynamicProps:o,dynamicChildren:null,appContext:null,ctx:fn};return s?($n(l,r),128&a&&e.normalize(l)):r&&(l.shapeFlag|=dt(r)?8:16),l}(e,t,r,n,o,dt(e)?1:(e=>e.__isSuspense)(e)?128:(e=>e.__isTeleport)(e)?64:ht(e)?4:pt(e)?2:0,a,!0)};function Wn(e,t,r=!1){const{props:n,ref:o,patchFlag:a,children:i}=e,s=t?function(...e){const t={};for(let r=0;r<e.length;r++){const n=e[r];for(const e in n)if("class"===e)t.class!==n.class&&(t.class=rt([t.class,n.class]));else if("style"===e)t.style=Je([t.style,n.style]);else if(it(e)){const r=t[e],o=n[e];!o||r===o||ut(r)&&r.includes(o)||(t[e]=r?[].concat(r,o):o)}else""!==e&&(t[e]=n[e])}return t}(n||{},t):n;return{__v_isVNode:!0,__v_skip:!0,type:e.type,props:s,key:s&&Pn(s),ref:t&&t.ref?r&&o?ut(o)?o.concat(Dn(t)):[o,Dn(t)]:Dn(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:i,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Rn?-1===a?16:16|a:a,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:e.transition,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Wn(e.ssContent),ssFallback:e.ssFallback&&Wn(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx}}function Un(e=" ",t=0){return Mn(Fn,null,e,t)}function $n(e,t){let r=0;const{shapeFlag:n}=e;if(null==t)t=null;else if(ut(t))r=16;else if("object"==typeof t){if(65&n){const r=t.default;return void(r&&(r._c&&(r._d=!1),$n(e,r()),r._c&&(r._d=!0)))}{r=32;const e=t._;!e&&!(Cn in t)&&(t._ctx=fn)}}else pt(t)?(t={default:t,_ctx:fn},r=32):(t=String(t),64&n?(r=16,t=[Un(t)]):r=8);e.children=t,e.shapeFlag|=r}Object.create(null),new WeakMap,new WeakMap,new WeakMap;let qn=null;const Vn=()=>qn||fn,Bn=e=>{qn=e,e.scope.on()},Hn=()=>{qn&&qn.scope.off(),qn=null};let Gn=!1;const Yn=(e,t)=>function(e,t,r=!1){let n,o;const a=pt(e);return a?(n=e,o=ot):(n=e.get,o=e.set),new Br(n,o,a||!o,r)}(e,0,Gn);function Xn(e,t,r){const n=arguments.length;return 2===n?ht(t)&&!ut(t)?Tn(t)?Mn(e,null,[t]):Mn(e,t):Mn(e,null,t):(n>3?r=Array.prototype.slice.call(arguments,2):3===n&&Tn(r)&&(r=[r]),Mn(e,t,r))}const Kn=Symbol(""),Jn=()=>pn(Kn);let Qn=7;const Zn=()=>++Qn;Zn(),Zn(),Zn(),Zn(),Zn(),Zn();let eo=15;const to=()=>++eo,ro={UNEXPECTED_RETURN_TYPE:eo,INVALID_ARGUMENT:to(),MUST_BE_CALL_SETUP_TOP:to(),NOT_INSLALLED:to(),NOT_AVAILABLE_IN_LEGACY_MODE:to(),REQUIRED_VALUE:to(),INVALID_VALUE:to(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:to(),NOT_INSLALLED_WITH_PROVIDE:to(),UNEXPECTED_ERROR:to(),NOT_COMPATIBLE_LEGACY_VUE_I18N:to(),BRIDGE_SUPPORT_VUE_2_ONLY:to(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:to(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:to(),__EXTEND_POINT__:to()};function no(e,...t){return te(e,null,void 0)}const oo=C("__transrateVNode"),ao=C("__datetimeParts"),io=C("__numberParts"),so=C("__setPluralRules");C("__intlifyMeta");const lo=C("__injectWithOption");function co(e){if(!J(e))return e;for(const t in e)if(H(e,t))if(t.includes(".")){const r=t.split("."),n=r.length-1;let o=e;for(let e=0;e<n;e++)r[e]in o||(o[r[e]]={}),o=o[r[e]];o[r[n]]=e[t],delete e[t],J(o[r[n]])&&co(o[r[n]])}else J(e[t])&&co(e[t]);return e}function uo(e,t){const{messages:r,__i18n:n,messageResolver:o,flatJson:a}=t,i=ee(r)?r:G(n)?{}:{[e]:{}};if(G(n)&&n.forEach((e=>{if("locale"in e&&"resource"in e){const{locale:t,resource:r}=e;t?(i[t]=i[t]||{},po(r,i[t])):po(r,i)}else X(e)&&po(JSON.parse(e),i)})),null==o&&a)for(const e in i)H(i,e)&&co(i[e]);return i}const fo=e=>!J(e)||G(e);function po(e,t){if(fo(e)||fo(t))throw no(ro.INVALID_VALUE);for(const r in e)H(e,r)&&(fo(e[r])||fo(t[r])?t[r]=e[r]:po(e[r],t[r]))}function mo(e){return e.type}function ho(e,t,r){let n=J(t.messages)?t.messages:{};"__i18nGlobal"in r&&(n=uo(e.locale.value,{messages:n,__i18n:r.__i18nGlobal}));const o=Object.keys(n);if(o.length&&o.forEach((t=>{e.mergeLocaleMessage(t,n[t])})),J(t.datetimeFormats)){const r=Object.keys(t.datetimeFormats);r.length&&r.forEach((r=>{e.mergeDateTimeFormat(r,t.datetimeFormats[r])}))}if(J(t.numberFormats)){const r=Object.keys(t.numberFormats);r.length&&r.forEach((r=>{e.mergeNumberFormat(r,t.numberFormats[r])}))}}function _o(e){return Mn(Fn,null,e,0)}const vo="__INTLIFY_META__";let go=0;function yo(e){return(t,r,n,o)=>e(r,n,Vn()||void 0,o)}function bo(e={},t){const{__root:r}=e,n=void 0===r;let o=!K(e.inheritLocale)||e.inheritLocale;const a=Wr(r&&o?r.locale.value:X(e.locale)?e.locale:be),i=Wr(r&&o?r.fallbackLocale.value:X(e.fallbackLocale)||G(e.fallbackLocale)||ee(e.fallbackLocale)||!1===e.fallbackLocale?e.fallbackLocale:a.value),s=Wr(uo(a.value,e)),l=Wr(ee(e.datetimeFormats)?e.datetimeFormats:{[a.value]:{}}),c=Wr(ee(e.numberFormats)?e.numberFormats:{[a.value]:{}});let u=r?r.missingWarn:!K(e.missingWarn)&&!D(e.missingWarn)||e.missingWarn,f=r?r.fallbackWarn:!K(e.fallbackWarn)&&!D(e.fallbackWarn)||e.fallbackWarn,p=r?r.fallbackRoot:!K(e.fallbackRoot)||e.fallbackRoot,d=!!e.fallbackFormat,m=Y(e.missing)?e.missing:null,h=Y(e.missing)?yo(e.missing):null,_=Y(e.postTranslation)?e.postTranslation:null,v=r?r.warnHtmlMessage:!K(e.warnHtmlMessage)||e.warnHtmlMessage,g=!!e.escapeParameter;const y=r?r.modifiers:ee(e.modifiers)?e.modifiers:{};let b,w=e.pluralRules||r&&r.pluralRules;b=(()=>{n&&Ee(null);const t={version:"9.2.2",locale:a.value,fallbackLocale:i.value,messages:s.value,modifiers:y,pluralRules:w,missing:null===h?void 0:h,missingWarn:u,fallbackWarn:f,fallbackFormat:d,unresolving:!0,postTranslation:null===_?void 0:_,warnHtmlMessage:v,escapeParameter:g,messageResolver:e.messageResolver,__meta:{framework:"vue"}};t.datetimeFormats=l.value,t.numberFormats=c.value,t.__datetimeFormatters=ee(b)?b.__datetimeFormatters:void 0,t.__numberFormatters=ee(b)?b.__numberFormatters:void 0;const r=function(e={}){const t=X(e.version)?e.version:"9.2.2",r=X(e.locale)?e.locale:be,n=G(e.fallbackLocale)||ee(e.fallbackLocale)||X(e.fallbackLocale)||!1===e.fallbackLocale?e.fallbackLocale:r,o=ee(e.messages)?e.messages:{[r]:{}},a=ee(e.datetimeFormats)?e.datetimeFormats:{[r]:{}},i=ee(e.numberFormats)?e.numberFormats:{[r]:{}},s=U({},e.modifiers||{},{upper:(e,t)=>"text"===t&&X(e)?e.toUpperCase():"vnode"===t&&J(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>"text"===t&&X(e)?e.toLowerCase():"vnode"===t&&J(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>"text"===t&&X(e)?we(e):"vnode"===t&&J(e)&&"__v_isVNode"in e?we(e.children):e}),l=e.pluralRules||{},c=Y(e.missing)?e.missing:null,u=!K(e.missingWarn)&&!D(e.missingWarn)||e.missingWarn,f=!K(e.fallbackWarn)&&!D(e.fallbackWarn)||e.fallbackWarn,p=!!e.fallbackFormat,d=!!e.unresolving,m=Y(e.postTranslation)?e.postTranslation:null,h=ee(e.processor)?e.processor:null,_=!K(e.warnHtmlMessage)||e.warnHtmlMessage,v=!!e.escapeParameter,g=Y(e.messageCompiler)?e.messageCompiler:void 0,y=Y(e.messageResolver)?e.messageResolver:xe||ie,b=Y(e.localeFallbacker)?e.localeFallbacker:ze||he,w=J(e.fallbackContext)?e.fallbackContext:void 0,x=Y(e.onWarn)?e.onWarn:W,z=e,k=J(z.__datetimeFormatters)?z.__datetimeFormatters:new Map,O=J(z.__numberFormatters)?z.__numberFormatters:new Map,j=J(z.__meta)?z.__meta:{};Ie++;const E={version:t,cid:Ie,locale:r,fallbackLocale:n,messages:o,modifiers:s,pluralRules:l,missing:c,missingWarn:u,fallbackWarn:f,fallbackFormat:p,unresolving:d,postTranslation:m,processor:h,warnHtmlMessage:_,escapeParameter:v,messageCompiler:g,messageResolver:y,localeFallbacker:b,fallbackContext:w,onWarn:x,__meta:j};return E.datetimeFormats=a,E.numberFormats=i,E.__datetimeFormatters=k,E.__numberFormatters=O,__INTLIFY_PROD_DEVTOOLS__&&function(e,t,r){pe&&pe.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:r})}(E,t,j),E}(t);return n&&Ee(r),r})(),Ne(b,a.value,i.value);const x=Yn({get:()=>a.value,set:e=>{a.value=e,b.locale=a.value}}),z=Yn({get:()=>i.value,set:e=>{i.value=e,b.fallbackLocale=i.value,Ne(b,a.value,e)}}),k=Yn((()=>s.value)),O=Yn((()=>l.value)),j=Yn((()=>c.value)),E=(e,t,o,u,f,d)=>{let m;if(a.value,i.value,s.value,l.value,c.value,__INTLIFY_PROD_DEVTOOLS__)try{Oe((()=>{const e=Vn();let t=null;return e&&(t=mo(e)[vo])?{[vo]:t}:null})()),n||(b.fallbackContext=r?je:void 0),m=e(b)}finally{Oe(null),n||(b.fallbackContext=void 0)}else m=e(b);if(P(m)&&-1===m){const[e,n]=t();return r&&p?u(r):f(e)}if(d(m))return m;throw no(ro.UNEXPECTED_RETURN_TYPE)};function I(...e){return E((t=>Reflect.apply(Pe,null,[t,...e])),(()=>We(...e)),0,(t=>Reflect.apply(t.t,t,[...e])),(e=>e),(e=>X(e)))}const S={normalize:function(e){return e.map((e=>X(e)||P(e)||K(e)?_o(String(e)):e))},interpolate:e=>e,type:"vnode"};function N(e){return s.value[e]||{}}go++,r&&A&&(mn(r.locale,(e=>{o&&(a.value=e,b.locale=e,Ne(b,a.value,i.value))})),mn(r.fallbackLocale,(e=>{o&&(i.value=e,b.fallbackLocale=e,Ne(b,a.value,i.value))})));const L={id:go,locale:x,fallbackLocale:z,get inheritLocale(){return o},set inheritLocale(e){o=e,e&&r&&(a.value=r.locale.value,i.value=r.fallbackLocale.value,Ne(b,a.value,i.value))},get availableLocales(){return Object.keys(s.value).sort()},messages:k,get modifiers(){return y},get pluralRules(){return w||{}},get isGlobal(){return n},get missingWarn(){return u},set missingWarn(e){u=e,b.missingWarn=u},get fallbackWarn(){return f},set fallbackWarn(e){f=e,b.fallbackWarn=f},get fallbackRoot(){return p},set fallbackRoot(e){p=e},get fallbackFormat(){return d},set fallbackFormat(e){d=e,b.fallbackFormat=d},get warnHtmlMessage(){return v},set warnHtmlMessage(e){v=e,b.warnHtmlMessage=e},get escapeParameter(){return g},set escapeParameter(e){g=e,b.escapeParameter=e},t:I,getLocaleMessage:N,setLocaleMessage:function(e,t){s.value[e]=t,b.messages=s.value},mergeLocaleMessage:function(e,t){s.value[e]=s.value[e]||{},po(t,s.value[e]),b.messages=s.value},getPostTranslationHandler:function(){return Y(_)?_:null},setPostTranslationHandler:function(e){_=e,b.postTranslation=e},getMissingHandler:function(){return m},setMissingHandler:function(e){null!==e&&(h=yo(e)),m=e,b.missing=h},[so]:function(e){w=e,b.pluralRules=w}};return L.datetimeFormats=O,L.numberFormats=j,L.rt=function(...e){const[t,r,n]=e;if(n&&!J(n))throw no(ro.INVALID_ARGUMENT);return I(t,r,U({resolvedMessage:!0},n||{}))},L.te=function(e,t){const r=N(X(t)?t:a.value);return null!==b.messageResolver(r,e)},L.tm=function(e){const t=function(e){let t=null;const r=_e(b,i.value,a.value);for(let n=0;n<r.length;n++){const o=s.value[r[n]]||{},a=b.messageResolver(o,e);if(null!=a){t=a;break}}return t}(e);return null!=t?t:r&&r.tm(e)||{}},L.d=function(...e){return E((t=>Reflect.apply($e,null,[t,...e])),(()=>Ve(...e)),0,(t=>Reflect.apply(t.d,t,[...e])),(()=>""),(e=>X(e)))},L.n=function(...e){return E((t=>Reflect.apply(He,null,[t,...e])),(()=>Ye(...e)),0,(t=>Reflect.apply(t.n,t,[...e])),(()=>""),(e=>X(e)))},L.getDateTimeFormat=function(e){return l.value[e]||{}},L.setDateTimeFormat=function(e,t){l.value[e]=t,b.datetimeFormats=l.value,Be(b,e,t)},L.mergeDateTimeFormat=function(e,t){l.value[e]=U(l.value[e]||{},t),b.datetimeFormats=l.value,Be(b,e,t)},L.getNumberFormat=function(e){return c.value[e]||{}},L.setNumberFormat=function(e,t){c.value[e]=t,b.numberFormats=c.value,Xe(b,e,t)},L.mergeNumberFormat=function(e,t){c.value[e]=U(c.value[e]||{},t),b.numberFormats=c.value,Xe(b,e,t)},L[lo]=e.__injectWithOption,L[oo]=function(...e){return E((t=>{let r;const n=t;try{n.processor=S,r=Reflect.apply(Pe,null,[n,...e])}finally{n.processor=null}return r}),(()=>We(...e)),0,(t=>t[oo](...e)),(e=>[_o(e)]),(e=>G(e)))},L[ao]=function(...e){return E((t=>Reflect.apply($e,null,[t,...e])),(()=>Ve(...e)),0,(t=>t[ao](...e)),(()=>[]),(e=>X(e)||G(e)))},L[io]=function(...e){return E((t=>Reflect.apply(He,null,[t,...e])),(()=>Ye(...e)),0,(t=>t[io](...e)),(()=>[]),(e=>X(e)||G(e)))},L}function wo(e={},t){{const t=bo(function(e){const t=X(e.locale)?e.locale:be,r=X(e.fallbackLocale)||G(e.fallbackLocale)||ee(e.fallbackLocale)||!1===e.fallbackLocale?e.fallbackLocale:t,n=Y(e.missing)?e.missing:void 0,o=!K(e.silentTranslationWarn)&&!D(e.silentTranslationWarn)||!e.silentTranslationWarn,a=!K(e.silentFallbackWarn)&&!D(e.silentFallbackWarn)||!e.silentFallbackWarn,i=!K(e.fallbackRoot)||e.fallbackRoot,s=!!e.formatFallbackMessages,l=ee(e.modifiers)?e.modifiers:{},c=e.pluralizationRules,u=Y(e.postTranslation)?e.postTranslation:void 0,f=!X(e.warnHtmlInMessage)||"off"!==e.warnHtmlInMessage,p=!!e.escapeParameterHtml,d=!K(e.sync)||e.sync;let m=e.messages;if(ee(e.sharedMessages)){const t=e.sharedMessages;m=Object.keys(t).reduce(((e,r)=>{const n=e[r]||(e[r]={});return U(n,t[r]),e}),m||{})}const{__i18n:h,__root:_,__injectWithOption:v}=e,g=e.datetimeFormats,y=e.numberFormats;return{locale:t,fallbackLocale:r,messages:m,flatJson:e.flatJson,datetimeFormats:g,numberFormats:y,missing:n,missingWarn:o,fallbackWarn:a,fallbackRoot:i,fallbackFormat:s,modifiers:l,pluralRules:c,postTranslation:u,warnHtmlMessage:f,escapeParameter:p,messageResolver:e.messageResolver,inheritLocale:d,__i18n:h,__root:_,__injectWithOption:v}}(e)),r={id:t.id,get locale(){return t.locale.value},set locale(e){t.locale.value=e},get fallbackLocale(){return t.fallbackLocale.value},set fallbackLocale(e){t.fallbackLocale.value=e},get messages(){return t.messages.value},get datetimeFormats(){return t.datetimeFormats.value},get numberFormats(){return t.numberFormats.value},get availableLocales(){return t.availableLocales},get formatter(){return{interpolate:()=>[]}},set formatter(e){},get missing(){return t.getMissingHandler()},set missing(e){t.setMissingHandler(e)},get silentTranslationWarn(){return K(t.missingWarn)?!t.missingWarn:t.missingWarn},set silentTranslationWarn(e){t.missingWarn=K(e)?!e:e},get silentFallbackWarn(){return K(t.fallbackWarn)?!t.fallbackWarn:t.fallbackWarn},set silentFallbackWarn(e){t.fallbackWarn=K(e)?!e:e},get modifiers(){return t.modifiers},get formatFallbackMessages(){return t.fallbackFormat},set formatFallbackMessages(e){t.fallbackFormat=e},get postTranslation(){return t.getPostTranslationHandler()},set postTranslation(e){t.setPostTranslationHandler(e)},get sync(){return t.inheritLocale},set sync(e){t.inheritLocale=e},get warnHtmlInMessage(){return t.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(e){t.warnHtmlMessage="off"!==e},get escapeParameterHtml(){return t.escapeParameter},set escapeParameterHtml(e){t.escapeParameter=e},get preserveDirectiveContent(){return!0},set preserveDirectiveContent(e){},get pluralizationRules(){return t.pluralRules||{}},__composer:t,t(...e){const[r,n,o]=e,a={};let i=null,s=null;if(!X(r))throw no(ro.INVALID_ARGUMENT);const l=r;return X(n)?a.locale=n:G(n)?i=n:ee(n)&&(s=n),G(o)?i=o:ee(o)&&(s=o),Reflect.apply(t.t,t,[l,i||s||{},a])},rt:(...e)=>Reflect.apply(t.rt,t,[...e]),tc(...e){const[r,n,o]=e,a={plural:1};let i=null,s=null;if(!X(r))throw no(ro.INVALID_ARGUMENT);const l=r;return X(n)?a.locale=n:P(n)?a.plural=n:G(n)?i=n:ee(n)&&(s=n),X(o)?a.locale=o:G(o)?i=o:ee(o)&&(s=o),Reflect.apply(t.t,t,[l,i||s||{},a])},te:(e,r)=>t.te(e,r),tm:e=>t.tm(e),getLocaleMessage:e=>t.getLocaleMessage(e),setLocaleMessage(e,r){t.setLocaleMessage(e,r)},mergeLocaleMessage(e,r){t.mergeLocaleMessage(e,r)},d:(...e)=>Reflect.apply(t.d,t,[...e]),getDateTimeFormat:e=>t.getDateTimeFormat(e),setDateTimeFormat(e,r){t.setDateTimeFormat(e,r)},mergeDateTimeFormat(e,r){t.mergeDateTimeFormat(e,r)},n:(...e)=>Reflect.apply(t.n,t,[...e]),getNumberFormat:e=>t.getNumberFormat(e),setNumberFormat(e,r){t.setNumberFormat(e,r)},mergeNumberFormat(e,r){t.mergeNumberFormat(e,r)},getChoiceIndex:(e,t)=>-1,__onComponentInstanceCreated(t){const{componentInstanceCreatedListener:n}=e;n&&n(t,r)}};return r}}const xo={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>"parent"===e||"global"===e,default:"parent"},i18n:{type:Object}};function zo(e){return Rn}const ko={name:"i18n-t",props:U({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>P(e)||!isNaN(e)}},xo),setup(e,t){const{slots:r,attrs:n}=t,o=e.i18n||Ro({useScope:e.scope,__useComponent:!0});return()=>{const a=Object.keys(r).filter((e=>"_"!==e)),i={};e.locale&&(i.locale=e.locale),void 0!==e.plural&&(i.plural=X(e.plural)?+e.plural:e.plural);const s=function({slots:e},t){return 1===t.length&&"default"===t[0]?(e.default?e.default():[]).reduce(((e,t)=>[...e,...G(t.children)?t.children:[t]]),[]):t.reduce(((t,r)=>{const n=e[r];return n&&(t[r]=n()),t}),{})}(t,a),l=o[oo](e.keypath,s,i),c=U({},n);return Xn(X(e.tag)||J(e.tag)?e.tag:zo(),c,l)}}};function Oo(e,t,r,n){const{slots:o,attrs:a}=t;return()=>{const t={part:!0};let i={};e.locale&&(t.locale=e.locale),X(e.format)?t.key=e.format:J(e.format)&&(X(e.format.key)&&(t.key=e.format.key),i=Object.keys(e.format).reduce(((t,n)=>r.includes(n)?U({},t,{[n]:e.format[n]}):t),{}));const s=n(e.value,t,i);let l=[t.key];G(s)?l=s.map(((e,t)=>{const r=o[e.type],n=r?r({[e.type]:e.value,index:t,parts:s}):[e.value];var a;return G(a=n)&&!X(a[0])&&(n[0].key=`${e.type}-${t}`),n})):X(s)&&(l=[s]);const c=U({},a);return Xn(X(e.tag)||J(e.tag)?e.tag:zo(),c,l)}}const jo={name:"i18n-n",props:U({value:{type:Number,required:!0},format:{type:[String,Object]}},xo),setup(e,t){const r=e.i18n||Ro({useScope:"parent",__useComponent:!0});return Oo(e,t,Ge,((...e)=>r[io](...e)))}},Eo={name:"i18n-d",props:U({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},xo),setup(e,t){const r=e.i18n||Ro({useScope:"parent",__useComponent:!0});return Oo(e,t,qe,((...e)=>r[ao](...e)))}};function Io(e){if(X(e))return{path:e};if(ee(e)){if(!("path"in e))throw no(ro.REQUIRED_VALUE);return e}throw no(ro.INVALID_VALUE)}function So(e){const{path:t,locale:r,args:n,choice:o,plural:a}=e,i={},s=n||{};return X(r)&&(i.locale=r),P(o)&&(i.plural=o),P(a)&&(i.plural=a),[t,s,i]}function No(e,t){e.locale=t.locale||e.locale,e.fallbackLocale=t.fallbackLocale||e.fallbackLocale,e.missing=t.missing||e.missing,e.silentTranslationWarn=t.silentTranslationWarn||e.silentFallbackWarn,e.silentFallbackWarn=t.silentFallbackWarn||e.silentFallbackWarn,e.formatFallbackMessages=t.formatFallbackMessages||e.formatFallbackMessages,e.postTranslation=t.postTranslation||e.postTranslation,e.warnHtmlInMessage=t.warnHtmlInMessage||e.warnHtmlInMessage,e.escapeParameterHtml=t.escapeParameterHtml||e.escapeParameterHtml,e.sync=t.sync||e.sync,e.__composer[so](t.pluralizationRules||e.pluralizationRules);const r=uo(e.locale,{messages:t.messages,__i18n:t.__i18n});return Object.keys(r).forEach((t=>e.mergeLocaleMessage(t,r[t]))),t.datetimeFormats&&Object.keys(t.datetimeFormats).forEach((r=>e.mergeDateTimeFormat(r,t.datetimeFormats[r]))),t.numberFormats&&Object.keys(t.numberFormats).forEach((r=>e.mergeNumberFormat(r,t.numberFormats[r]))),e}const Lo=C("global-vue-i18n");function Ro(e={}){const t=Vn();if(null==t)throw no(ro.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&null!=t.appContext.app&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw no(ro.NOT_INSLALLED);const r=function(e){{const t=pn(e.isCE?Lo:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw no(e.isCE?ro.NOT_INSLALLED_WITH_PROVIDE:ro.UNEXPECTED_ERROR);return t}}(t),n=function(e){return"composition"===e.mode?e.global:e.global.__composer}(r),o=mo(t),a=function(e,t){return M(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}(e,o);if(__VUE_I18N_LEGACY_API__&&"legacy"===r.mode&&!e.__useComponent){if(!r.allowComposition)throw no(ro.NOT_AVAILABLE_IN_LEGACY_MODE);return function(e,t,r,n={}){const o="local"===t,a=(null,Ur(null,!0));if(o&&e.proxy&&!e.proxy.$options.i18n&&!e.proxy.$options.__i18n)throw no(ro.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const i=!K(n.inheritLocale)||n.inheritLocale,s=Wr(o&&i?r.locale.value:X(n.locale)?n.locale:be),l=Wr(o&&i?r.fallbackLocale.value:X(n.fallbackLocale)||G(n.fallbackLocale)||ee(n.fallbackLocale)||!1===n.fallbackLocale?n.fallbackLocale:s.value),c=Wr(uo(s.value,n)),u=Wr(ee(n.datetimeFormats)?n.datetimeFormats:{[s.value]:{}}),f=Wr(ee(n.numberFormats)?n.numberFormats:{[s.value]:{}}),p=o?r.missingWarn:!K(n.missingWarn)&&!D(n.missingWarn)||n.missingWarn,d=o?r.fallbackWarn:!K(n.fallbackWarn)&&!D(n.fallbackWarn)||n.fallbackWarn,m=o?r.fallbackRoot:!K(n.fallbackRoot)||n.fallbackRoot,h=!!n.fallbackFormat,_=Y(n.missing)?n.missing:null,v=Y(n.postTranslation)?n.postTranslation:null,g=o?r.warnHtmlMessage:!K(n.warnHtmlMessage)||n.warnHtmlMessage,y=!!n.escapeParameter,b=o?r.modifiers:ee(n.modifiers)?n.modifiers:{},w=n.pluralRules||o&&r.pluralRules;function x(e){return s.value,l.value,c.value,u.value,f.value,e()}const z={get id(){return a.value?a.value.id:-1},locale:Yn({get:()=>a.value?a.value.locale.value:s.value,set:e=>{a.value&&(a.value.locale.value=e),s.value=e}}),fallbackLocale:Yn({get:()=>a.value?a.value.fallbackLocale.value:l.value,set:e=>{a.value&&(a.value.fallbackLocale.value=e),l.value=e}}),messages:Yn((()=>a.value?a.value.messages.value:c.value)),datetimeFormats:Yn((()=>u.value)),numberFormats:Yn((()=>f.value)),get inheritLocale(){return a.value?a.value.inheritLocale:i},set inheritLocale(e){a.value&&(a.value.inheritLocale=e)},get availableLocales(){return a.value?a.value.availableLocales:Object.keys(c.value)},get modifiers(){return a.value?a.value.modifiers:b},get pluralRules(){return a.value?a.value.pluralRules:w},get isGlobal(){return!!a.value&&a.value.isGlobal},get missingWarn(){return a.value?a.value.missingWarn:p},set missingWarn(e){a.value&&(a.value.missingWarn=e)},get fallbackWarn(){return a.value?a.value.fallbackWarn:d},set fallbackWarn(e){a.value&&(a.value.missingWarn=e)},get fallbackRoot(){return a.value?a.value.fallbackRoot:m},set fallbackRoot(e){a.value&&(a.value.fallbackRoot=e)},get fallbackFormat(){return a.value?a.value.fallbackFormat:h},set fallbackFormat(e){a.value&&(a.value.fallbackFormat=e)},get warnHtmlMessage(){return a.value?a.value.warnHtmlMessage:g},set warnHtmlMessage(e){a.value&&(a.value.warnHtmlMessage=e)},get escapeParameter(){return a.value?a.value.escapeParameter:y},set escapeParameter(e){a.value&&(a.value.escapeParameter=e)},t:function(...e){return a.value?x((()=>Reflect.apply(a.value.t,null,[...e]))):x((()=>""))},getPostTranslationHandler:function(){return a.value?a.value.getPostTranslationHandler():v},setPostTranslationHandler:function(e){a.value&&a.value.setPostTranslationHandler(e)},getMissingHandler:function(){return a.value?a.value.getMissingHandler():_},setMissingHandler:function(e){a.value&&a.value.setMissingHandler(e)},rt:function(...e){return a.value?Reflect.apply(a.value.rt,null,[...e]):""},d:function(...e){return a.value?x((()=>Reflect.apply(a.value.d,null,[...e]))):x((()=>""))},n:function(...e){return a.value?x((()=>Reflect.apply(a.value.n,null,[...e]))):x((()=>""))},tm:function(e){return a.value?a.value.tm(e):{}},te:function(e,t){return!!a.value&&a.value.te(e,t)},getLocaleMessage:function(e){return a.value?a.value.getLocaleMessage(e):{}},setLocaleMessage:function(e,t){a.value&&(a.value.setLocaleMessage(e,t),c.value[e]=t)},mergeLocaleMessage:function(e,t){a.value&&a.value.mergeLocaleMessage(e,t)},getDateTimeFormat:function(e){return a.value?a.value.getDateTimeFormat(e):{}},setDateTimeFormat:function(e,t){a.value&&(a.value.setDateTimeFormat(e,t),u.value[e]=t)},mergeDateTimeFormat:function(e,t){a.value&&a.value.mergeDateTimeFormat(e,t)},getNumberFormat:function(e){return a.value?a.value.getNumberFormat(e):{}},setNumberFormat:function(e,t){a.value&&(a.value.setNumberFormat(e,t),f.value[e]=t)},mergeNumberFormat:function(e,t){a.value&&a.value.mergeNumberFormat(e,t)}};return yn((()=>{if(null==e.proxy||null==e.proxy.$i18n)throw no(ro.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const r=a.value=e.proxy.$i18n.__composer;"global"===t?(s.value=r.locale.value,l.value=r.fallbackLocale.value,c.value=r.messages.value,u.value=r.datetimeFormats.value,f.value=r.numberFormats.value):o&&function(e){e.locale.value=s.value,e.fallbackLocale.value=l.value,Object.keys(c.value).forEach((t=>{e.mergeLocaleMessage(t,c.value[t])})),Object.keys(u.value).forEach((t=>{e.mergeDateTimeFormat(t,u.value[t])})),Object.keys(f.value).forEach((t=>{e.mergeNumberFormat(t,f.value[t])})),e.escapeParameter=y,e.fallbackFormat=h,e.fallbackRoot=m,e.fallbackWarn=d,e.missingWarn=p,e.warnHtmlMessage=g}(r)})),z}(t,a,n,e)}if("global"===a)return ho(n,e,o),n;if("parent"===a){let o=function(e,t,r=!1){let n=null;const o=t.root;let a=t.parent;for(;null!=a;){const t=e;if("composition"===e.mode)n=t.__getInstance(a);else if(__VUE_I18N_LEGACY_API__){const e=t.__getInstance(a);null!=e&&(n=e.__composer,r&&n&&!n[lo]&&(n=null))}if(null!=n)break;if(o===a)break;a=a.parent}return n}(r,t,e.__useComponent);return null==o&&(o=n),o}const i=r;let s=i.__getInstance(t);if(null==s){const r=U({},e);"__i18n"in o&&(r.__i18n=o.__i18n),n&&(r.__root=n),s=bo(r),function(e,t,r){bn((()=>{}),t),wn((()=>{e.__deleteInstance(t)}),t)}(i,t),i.__setInstance(t,s)}return s}const Fo=["locale","fallbackLocale","availableLocales"],Ao=["t","rt","d","n","tm"];var To;if(xe=function(e,t){if(!J(e))return null;let r=ae.get(t);if(r||(r=function(e){const t=[];let r,n,o,a,i,s,l,c=-1,u=0,f=0;const p=[];function d(){const t=e[c+1];if(5===u&&"'"===t||6===u&&'"'===t)return c++,o="\\"+t,p[0](),!0}for(p[0]=()=>{void 0===n?n=o:n+=o},p[1]=()=>{void 0!==n&&(t.push(n),n=void 0)},p[2]=()=>{p[0](),f++},p[3]=()=>{if(f>0)f--,u=4,p[0]();else{if(f=0,void 0===n)return!1;if(n=function(e){const t=e.trim();return("0"!==e.charAt(0)||!isNaN(parseInt(e)))&&(r=t,ne.test(r)?function(e){const t=e.charCodeAt(0);return t!==e.charCodeAt(e.length-1)||34!==t&&39!==t?e:e.slice(1,-1)}(t):"*"+t);var r}(n),!1===n)return!1;p[1]()}};null!==u;)if(c++,r=e[c],"\\"!==r||!d()){if(a=oe(r),l=re[u],i=l[a]||l.l||8,8===i)return;if(u=i[0],void 0!==i[1]&&(s=p[i[1]],s&&(o=r,!1===s())))return;if(7===u)return t}}(t),r&&ae.set(t,r)),!r)return null;const n=r.length;let o=e,a=0;for(;a<n;){const e=o[r[a]];if(void 0===e)return null;o=e,a++}return o},ze=_e,function(){let e=!1;"boolean"!=typeof __VUE_I18N_FULL_INSTALL__&&(e=!0,q().__VUE_I18N_FULL_INSTALL__=!0),"boolean"!=typeof __VUE_I18N_LEGACY_API__&&(e=!0,q().__VUE_I18N_LEGACY_API__=!0),"boolean"!=typeof __INTLIFY_PROD_DEVTOOLS__&&(q().__INTLIFY_PROD_DEVTOOLS__=!1)}(),__INTLIFY_PROD_DEVTOOLS__){const e=q();e.__INTLIFY__=!0,To=e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__,pe=To}var Co=function(e={},t){const r=__VUE_I18N_LEGACY_API__&&K(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,n=!K(e.globalInjection)||e.globalInjection,o=!__VUE_I18N_LEGACY_API__||!r||!!e.allowComposition,a=new Map,[i,s]=function(e,t,r){const n=new Ot(undefined);{const r=__VUE_I18N_LEGACY_API__&&t?n.run((()=>wo(e))):n.run((()=>bo(e)));if(null==r)throw no(ro.UNEXPECTED_ERROR);return[n,r]}}(e,r),l=C("");{const e={get mode(){return __VUE_I18N_LEGACY_API__&&r?"legacy":"composition"},get allowComposition(){return o},async install(t,...o){t.__VUE_I18N_SYMBOL__=l,t.provide(t.__VUE_I18N_SYMBOL__,e),!r&&n&&function(e,t){const r=Object.create(null);Fo.forEach((e=>{const n=Object.getOwnPropertyDescriptor(t,e);if(!n)throw no(ro.UNEXPECTED_ERROR);const o=Mr(n.value)?{get:()=>n.value.value,set(e){n.value.value=e}}:{get:()=>n.get&&n.get()};Object.defineProperty(r,e,o)})),e.config.globalProperties.$i18n=r,Ao.forEach((r=>{const n=Object.getOwnPropertyDescriptor(t,r);if(!n||!n.value)throw no(ro.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${r}`,n)}))}(t,e.global),__VUE_I18N_FULL_INSTALL__&&function(e,t,...r){const n=ee(r[0])?r[0]:{},o=!!n.useI18nComponentName;(!K(n.globalInstall)||n.globalInstall)&&(e.component(o?"i18n":ko.name,ko),e.component(jo.name,jo),e.component(Eo.name,Eo)),e.directive("t",function(e){const t=t=>{const{instance:r,modifiers:n,value:o}=t;if(!r||!r.$)throw no(ro.UNEXPECTED_ERROR);const a=function(e,t){const r=e;if("composition"===e.mode)return r.__getInstance(t)||e.global;{const n=r.__getInstance(t);return null!=n?n.__composer:e.global.__composer}}(e,r.$),i=Io(o);return[Reflect.apply(a.t,a,[...So(i)]),a]};return{created:(r,n)=>{const[o,a]=t(n);A&&e.global===a&&(r.__i18nWatcher=mn(a.locale,(()=>{n.instance&&n.instance.$forceUpdate()}))),r.__composer=a,r.textContent=o},unmounted:e=>{A&&e.__i18nWatcher&&(e.__i18nWatcher(),e.__i18nWatcher=void 0,delete e.__i18nWatcher),e.__composer&&(e.__composer=void 0,delete e.__composer)},beforeUpdate:(e,{value:t})=>{if(e.__composer){const r=e.__composer,n=Io(t);e.textContent=Reflect.apply(r.t,r,[...So(n)])}},getSSRProps:e=>{const[r]=t(e);return{textContent:r}}}}(t))}(t,e,...o),__VUE_I18N_LEGACY_API__&&r&&t.mixin(function(e,t,r){return{beforeCreate(){const n=Vn();if(!n)throw no(ro.UNEXPECTED_ERROR);const o=this.$options;if(o.i18n){const r=o.i18n;o.__i18n&&(r.__i18n=o.__i18n),r.__root=t,this===this.$root?this.$i18n=No(e,r):(r.__injectWithOption=!0,this.$i18n=wo(r))}else o.__i18n?this===this.$root?this.$i18n=No(e,o):this.$i18n=wo({__i18n:o.__i18n,__injectWithOption:!0,__root:t}):this.$i18n=e;o.__i18nGlobal&&ho(t,o,o),e.__onComponentInstanceCreated(this.$i18n),r.__setInstance(n,this.$i18n),this.$t=(...e)=>this.$i18n.t(...e),this.$rt=(...e)=>this.$i18n.rt(...e),this.$tc=(...e)=>this.$i18n.tc(...e),this.$te=(e,t)=>this.$i18n.te(e,t),this.$d=(...e)=>this.$i18n.d(...e),this.$n=(...e)=>this.$i18n.n(...e),this.$tm=e=>this.$i18n.tm(e)},mounted(){},unmounted(){const e=Vn();if(!e)throw no(ro.UNEXPECTED_ERROR);delete this.$t,delete this.$rt,delete this.$tc,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,r.__deleteInstance(e),delete this.$i18n}}}(s,s.__composer,e));const a=t.unmount;t.unmount=()=>{e.dispose(),a()}},get global(){return s},dispose(){i.stop()},__instances:a,__getInstance:function(e){return a.get(e)||null},__setInstance:function(e,t){a.set(e,t)},__deleteInstance:function(e){a.delete(e)}};return e}}({locale:"en",fallbackLocale:"en",messages:{ar:r(5464),ca:r(3708),cs:r(122),de:r(414),eo:r(5775),es:r(8438),et:r(9997),eu:r(9975),fi:r(9923),fr:r(8375),ga:r(1746),he:r(9369),hu:r(377),it:r(6710),ja:r(333),ja_easy:r(6534),ko:r(7379),nb:r(8103),nl:r(728),oc:r(3932),pl:r(7028),pt:r(789),ro:r(5032),ru:r(3460),sk:r(6139),te:r(5751),zh:r(4389),en:r(2551)}});function Po(){return clients.matchAll({includeUncontrolled:!0}).then((function(e){return e.filter((function(e){return"window"===e.type}))}))}var Do=function(){var e=t(o().mark((function e(){var t,r;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,i().getItem("vuex-lz");case 2:t=e.sent,r=t.config.interfaceLanguage||"en",Co.locale=r;case 5:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),Mo=function(){var e=t(o().mark((function e(t){var r,n,a,s,l,c,u,f;return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,i().getItem("vuex-lz").then((function(e){return e.config.webPushNotifications}));case 2:return r=e.sent,e.next=5,Po();case 5:return n=e.sent,e.next=8,Do();case 8:if(!r||0!==n.length){e.next=20;break}return a=t.data.json(),s="".concat(self.registration.scope,"api/v1/notifications/").concat(a.notification_id),e.next=13,fetch(s,{headers:{Authorization:"Bearer "+a.access_token}});case 13:return l=e.sent,e.next=16,l.json();case 16:c=e.sent,u=R(c),f=h(u,Co),self.registration.showNotification(f.title,f);case 20:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}();self.addEventListener("push",function(){var e=t(o().mark((function e(t){return o().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t.data&&t.waitUntil(Mo(t));case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()),self.addEventListener("notificationclick",(function(e){e.notification.close(),e.waitUntil(Po().then((function(e){for(var t=0;t<e.length;t++){var r=e[t];if("/"===r.url&&"focus"in r)return r.focus()}if(clients.openWindow)return clients.openWindow("/")})))}))})()})();