pleroma/priv/static/adminfe/static/js/chunk-3df9.41afab47.js.map
2022-11-22 23:53:01 +01:00

1 line
518 KiB
Plaintext

{"version":3,"sources":["webpack:///./src/views/settings/components/Upload.vue?2d05","webpack:///./src/views/settings/components/Http.vue?2875","webpack:///./src/views/settings/components/Frontend.vue?bc7d","webpack:///./src/views/settings/components/MediaProxy.vue?a27a","webpack:///./src/views/settings/components/inputComponents/EditorInput.vue?85b5","webpack:///./src/views/settings/components/Other.vue?17e1","webpack:///./src/views/settings/components/Logger.vue?55b1","webpack:///./src/views/settings/components/inputComponents/EditableKeywordInput.vue?f0c7","webpack:///./src/views/settings/components/WebPush.vue?c1ae","webpack:///./src/views/settings/components/Instance.vue?0e62","webpack:///./src/views/settings/components/RateLimiters.vue?134a","webpack:///./src/views/settings/components/inputComponents/ImageUploadInput.vue?7145","webpack:///./src/views/settings/components/Esshd.vue?2d34","webpack:///./src/views/settings/components/Authentication.vue?3657","webpack:///./src/views/settings/components/inputComponents/RateLimitInput.vue?6469","webpack:///./src/views/settings/components/Setting.vue?fcc2","webpack:///./src/views/settings/components/inputComponents/PruneInput.vue?fb01","webpack:///./src/views/settings/components/inputComponents/SelectInputWithReducedLabels.vue?7ce0","webpack:///./src/views/settings/components/Gopher.vue?d3fc","webpack:///./src/views/settings/components/Inputs.vue?ae48","webpack:///./src/views/settings/components/inputComponents/ProxyUrlInput.vue?c623","webpack:///./src/views/emojiPacks/SingleEmojiEditor.vue?cff0","webpack:///./src/views/settings/index.vue?c797","webpack:///./src/views/settings/components/inputComponents/BooleanCombinedInput.vue?cec4","webpack:///src/views/settings/components/inputComponents/BooleanCombinedInput.vue","webpack:///./src/views/settings/components/inputComponents/BooleanCombinedInput.vue","webpack:///./src/views/settings/components/inputComponents/BooleanCombinedInput.vue?996c","webpack:///src/views/settings/components/inputComponents/EditableKeywordInput.vue","webpack:///./src/views/settings/components/inputComponents/EditableKeywordInput.vue?859c","webpack:///./src/views/settings/components/inputComponents/EditableKeywordInput.vue","webpack:///./src/views/settings/components/inputComponents/EditableKeywordInput.vue?2ee2","webpack:///./src/views/settings/components/inputComponents/EditorInput.vue?b6ff","webpack:///src/views/settings/components/inputComponents/EditorInput.vue","webpack:///./src/views/settings/components/inputComponents/EditorInput.vue","webpack:///./src/views/settings/components/inputComponents/EditorInput.vue?d6e3","webpack:///src/views/settings/components/inputComponents/IconsInput.vue","webpack:///./src/views/settings/components/inputComponents/IconsInput.vue?bdb0","webpack:///./src/views/settings/components/inputComponents/IconsInput.vue","webpack:///./src/views/settings/components/inputComponents/IconsInput.vue?487f","webpack:///./src/api/mediaUpload.js","webpack:///src/views/settings/components/inputComponents/ImageUploadInput.vue","webpack:///./src/views/settings/components/inputComponents/ImageUploadInput.vue?f296","webpack:///./src/views/settings/components/inputComponents/ImageUploadInput.vue","webpack:///./src/views/settings/components/inputComponents/ImageUploadInput.vue?6329","webpack:///src/views/settings/components/inputComponents/MascotsInput.vue","webpack:///./src/views/settings/components/inputComponents/MascotsInput.vue?9cfe","webpack:///./src/views/settings/components/inputComponents/MascotsInput.vue","webpack:///./src/views/settings/components/inputComponents/MascotsInput.vue?54ce","webpack:///src/views/settings/components/inputComponents/ProxyUrlInput.vue","webpack:///./src/views/settings/components/inputComponents/ProxyUrlInput.vue?4183","webpack:///./src/views/settings/components/inputComponents/ProxyUrlInput.vue","webpack:///./src/views/settings/components/inputComponents/ProxyUrlInput.vue?8227","webpack:///./src/views/settings/components/inputComponents/PruneInput.vue?663f","webpack:///src/views/settings/components/inputComponents/PruneInput.vue","webpack:///./src/views/settings/components/inputComponents/PruneInput.vue","webpack:///./src/views/settings/components/inputComponents/PruneInput.vue?cbbf","webpack:///./src/views/settings/components/inputComponents/RateLimitInput.vue?2905","webpack:///src/views/settings/components/inputComponents/RateLimitInput.vue","webpack:///./src/views/settings/components/inputComponents/RateLimitInput.vue","webpack:///./src/views/settings/components/inputComponents/RateLimitInput.vue?da54","webpack:///./src/views/settings/components/inputComponents/RegInvitesInput.vue?4de6","webpack:///src/views/settings/components/inputComponents/RegInvitesInput.vue","webpack:///./src/views/settings/components/inputComponents/RegInvitesInput.vue","webpack:///./src/views/settings/components/inputComponents/RegInvitesInput.vue?8813","webpack:///./src/views/settings/components/inputComponents/SelectInputWithReducedLabels.vue?b3f6","webpack:///src/views/settings/components/inputComponents/SelectInputWithReducedLabels.vue","webpack:///./src/views/settings/components/inputComponents/SelectInputWithReducedLabels.vue","webpack:///./src/views/settings/components/inputComponents/SelectInputWithReducedLabels.vue?991b","webpack:///src/views/settings/components/inputComponents/SenderInput.vue","webpack:///./src/views/settings/components/inputComponents/SenderInput.vue?a1b5","webpack:///./src/views/settings/components/inputComponents/SenderInput.vue","webpack:///./src/views/settings/components/inputComponents/SenderInput.vue?52df","webpack:///./src/views/settings/components/inputComponents/SpecificMultipleSelect.vue?8500","webpack:///src/views/settings/components/inputComponents/SpecificMultipleSelect.vue","webpack:///./src/views/settings/components/inputComponents/SpecificMultipleSelect.vue","webpack:///./src/views/settings/components/inputComponents/SpecificMultipleSelect.vue?db80","webpack:///./src/views/settings/components/Inputs.vue?5b3f","webpack:///src/views/settings/components/Inputs.vue","webpack:///./src/views/settings/rules.js","webpack:///./src/views/settings/components/Setting.vue?39a1","webpack:///src/views/settings/components/Setting.vue","webpack:///./src/views/settings/components/Inputs.vue","webpack:///./src/views/settings/components/Inputs.vue?a040","webpack:///./src/views/settings/components/Setting.vue","webpack:///./src/views/settings/components/Setting.vue?9c66","webpack:///src/views/settings/components/ActivityPub.vue","webpack:///./src/views/settings/components/ActivityPub.vue?9ad8","webpack:///./src/views/settings/components/ActivityPub.vue","webpack:///./src/views/settings/components/ActivityPub.vue?76e7","webpack:///src/views/settings/components/Authentication.vue","webpack:///./src/views/settings/components/Authentication.vue?1922","webpack:///./src/views/settings/components/Authentication.vue","webpack:///./src/views/settings/components/Authentication.vue?8126","webpack:///src/views/settings/components/Captcha.vue","webpack:///./src/views/settings/components/Captcha.vue?b5df","webpack:///./src/views/settings/components/Captcha.vue","webpack:///./src/views/settings/components/Captcha.vue?2b32","webpack:///./src/views/emojiPacks/SingleEmojiEditor.vue?cda3","webpack:///src/views/emojiPacks/SingleEmojiEditor.vue","webpack:///./src/views/emojiPacks/SingleEmojiEditor.vue","webpack:///./src/views/emojiPacks/SingleEmojiEditor.vue?466d","webpack:///./src/views/emojiPacks/NewEmojiUploader.vue?01c5","webpack:///src/views/emojiPacks/NewEmojiUploader.vue","webpack:///src/views/emojiPacks/LocalEmojiPack.vue","webpack:///./src/views/emojiPacks/LocalEmojiPack.vue?3927","webpack:///./src/views/emojiPacks/NewEmojiUploader.vue","webpack:///./src/views/emojiPacks/NewEmojiUploader.vue?7951","webpack:///./src/views/emojiPacks/LocalEmojiPack.vue","webpack:///./src/views/emojiPacks/LocalEmojiPack.vue?04ab","webpack:///./src/views/emojiPacks/RemoteEmojiPack.vue?b00a","webpack:///src/views/emojiPacks/RemoteEmojiPack.vue","webpack:///src/views/settings/components/Emoji.vue","webpack:///./src/views/settings/components/Emoji.vue?5417","webpack:///./src/views/emojiPacks/RemoteEmojiPack.vue","webpack:///./src/views/emojiPacks/RemoteEmojiPack.vue?904a","webpack:///./src/views/settings/components/Emoji.vue","webpack:///./src/views/settings/components/Emoji.vue?daf9","webpack:///src/views/settings/components/Esshd.vue","webpack:///./src/views/settings/components/Esshd.vue?b0ed","webpack:///./src/views/settings/components/Esshd.vue","webpack:///./src/views/settings/components/Esshd.vue?8371","webpack:///./src/views/settings/components/inputComponents/FrontendStatusButton.vue?9400","webpack:///src/views/settings/components/inputComponents/FrontendStatusButton.vue","webpack:///src/views/settings/components/inputComponents/FrontendsTable.vue","webpack:///./src/views/settings/components/inputComponents/FrontendsTable.vue?e4b9","webpack:///./src/views/settings/components/inputComponents/FrontendStatusButton.vue","webpack:///./src/views/settings/components/inputComponents/FrontendStatusButton.vue?5e7b","webpack:///src/views/settings/components/Frontend.vue","webpack:///./src/views/settings/components/Frontend.vue?1622","webpack:///./src/views/settings/components/inputComponents/FrontendsTable.vue","webpack:///./src/views/settings/components/inputComponents/FrontendsTable.vue?9c53","webpack:///./src/views/settings/components/Frontend.vue","webpack:///./src/views/settings/components/Frontend.vue?9fe6","webpack:///src/views/settings/components/Gopher.vue","webpack:///./src/views/settings/components/Gopher.vue?cb09","webpack:///./src/views/settings/components/Gopher.vue","webpack:///./src/views/settings/components/Gopher.vue?ce21","webpack:///src/views/settings/components/Http.vue","webpack:///./src/views/settings/components/Http.vue?0ecb","webpack:///./src/views/settings/components/Http.vue","webpack:///./src/views/settings/components/Http.vue?1bdf","webpack:///src/views/settings/components/Instance.vue","webpack:///./src/views/settings/components/Instance.vue?ea1e","webpack:///./src/views/settings/components/Instance.vue","webpack:///./src/views/settings/components/Instance.vue?026f","webpack:///src/views/settings/components/JobQueue.vue","webpack:///./src/views/settings/components/JobQueue.vue?e650","webpack:///./src/views/settings/components/JobQueue.vue","webpack:///./src/views/settings/components/JobQueue.vue?8d1f","webpack:///src/views/settings/components/LinkFormatter.vue","webpack:///./src/views/settings/components/LinkFormatter.vue?9773","webpack:///./src/views/settings/components/LinkFormatter.vue","webpack:///./src/views/settings/components/LinkFormatter.vue?12aa","webpack:///src/views/settings/components/Logger.vue","webpack:///./src/views/settings/components/Logger.vue?aa5f","webpack:///./src/views/settings/components/Logger.vue","webpack:///./src/views/settings/components/Logger.vue?1118","webpack:///src/views/settings/components/Mailer.vue","webpack:///./src/views/settings/components/Mailer.vue?48d6","webpack:///./src/views/settings/components/Mailer.vue","webpack:///./src/views/settings/components/Mailer.vue?054f","webpack:///src/views/settings/components/MediaProxy.vue","webpack:///./src/views/settings/components/MediaProxy.vue?9571","webpack:///./src/views/settings/components/MediaProxy.vue","webpack:///./src/views/settings/components/MediaProxy.vue?7c69","webpack:///src/views/settings/components/Metadata.vue","webpack:///./src/views/settings/components/Metadata.vue?7f4f","webpack:///./src/views/settings/components/Metadata.vue","webpack:///./src/views/settings/components/Metadata.vue?eb64","webpack:///src/views/settings/components/MRF.vue","webpack:///./src/views/settings/components/MRF.vue?274b","webpack:///./src/views/settings/components/MRF.vue","webpack:///./src/views/settings/components/MRF.vue?d46f","webpack:///src/views/settings/components/Other.vue","webpack:///./src/views/settings/components/Other.vue?7bf4","webpack:///./src/views/settings/components/Other.vue","webpack:///./src/views/settings/components/Other.vue?ce25","webpack:///src/views/settings/components/RateLimiters.vue","webpack:///./src/views/settings/components/RateLimiters.vue?15d2","webpack:///./src/views/settings/components/RateLimiters.vue","webpack:///./src/views/settings/components/RateLimiters.vue?cec0","webpack:///src/views/settings/components/Upload.vue","webpack:///./src/views/settings/components/Upload.vue?304d","webpack:///./src/views/settings/components/Upload.vue","webpack:///./src/views/settings/components/Upload.vue?2e52","webpack:///src/views/settings/components/WebPush.vue","webpack:///./src/views/settings/components/WebPush.vue?5451","webpack:///./src/views/settings/components/WebPush.vue","webpack:///./src/views/settings/components/WebPush.vue?9bcd","webpack:///./src/views/settings/index.vue?3c3a","webpack:///src/views/settings/index.vue","webpack:///./src/views/settings/components/tabs.js","webpack:///./src/views/settings/index.vue","webpack:///./src/views/emojiPacks/RemoteEmojiPack.vue?979e","webpack:///./src/views/settings/components/inputComponents/SpecificMultipleSelect.vue?9eeb","webpack:///./src/views/settings/components/MRF.vue?f07b","webpack:///./src/views/settings/components/inputComponents/MascotsInput.vue?15b2","webpack:///./src/views/settings/components/ActivityPub.vue?6700","webpack:///./src/views/settings/components/inputComponents/IconsInput.vue?3e3f","webpack:///./src/views/emojiPacks/NewEmojiUploader.vue?cfa1","webpack:///./src/views/settings/components/Emoji.vue?3e44","webpack:///./src/views/settings/components/inputComponents/SenderInput.vue?a09d","webpack:///./src/views/settings/components/Mailer.vue?7b36","webpack:///./src/views/settings/index.vue?1e29","webpack:///./src/views/settings/components/inputComponents/RegInvitesInput.vue?0739","webpack:///./src/views/settings/components/inputComponents/BooleanCombinedInput.vue?a02a","webpack:///./src/components/RebootButton/index.vue?d5b4","webpack:///./src/components/RebootButton/index.vue?2f45","webpack:///src/components/RebootButton/index.vue","webpack:///./src/components/RebootButton/index.vue","webpack:///./src/views/settings/components/LinkFormatter.vue?f7ff","webpack:///./src/views/emojiPacks/LocalEmojiPack.vue?4c8c","webpack:///./src/views/settings/components/Captcha.vue?d1b6","webpack:///./src/views/settings/components/JobQueue.vue?05f7","webpack:///./src/views/settings/components/Metadata.vue?2403"],"names":["__webpack_require__","inputComponents_BooleanCombinedInputvue_type_script_lang_js_","name","props","data","type","default","setting","settingGroup","computed","atomValue","this","key","substr","booleanValue","getPlaceholder","0","1","2","integerValue","stringValue","tupleValue","methods","processTupleTwoTypeValue","value","input","_index","updateSetting","group","toConsumableArray_default","processTwoTypeValue","$store","dispatch","BooleanCombinedInput","Object","componentNormalizer","_vm","_c","_self","includes","attrs","data-search","on","change","$event","_v","_e","slot","staticClass","_l","item","index","placeholder","inputComponents_EditableKeywordInputvue_type_script_lang_js_","parents","required","editableKeywordWithInteger","editableKeywordWithSelect","findIndex","el","editableKeywordWithString","isDesktop","state","app","device","keyPlaceholder","key_placeholder","settings","updatedSettings","valuePlaceholder","value_placeholder","addRowToEditableKeyword","updatedValue","concat","","id","deleteEditableKeywordRow","element","deletedId","getId","filteredValues","filter","values","generateID","Math","random","toString","getCrontabWorkerLabel","worker","workerKey","getKey","replace","keys","getSuggestion","_this","suggestions","find","suggestion","getValue","parseEditableKeyword","inputType","_this2","updatedId","map","defineProperty_default","_objectSpread","updateCrontab","_this3","updatedValueWithType","reduce","acc","wrappedSettings","wrapUpdatedSettings","length","_processNested","processNested","valueForState","valueForUpdatedSettings","EditableKeywordInput","label","min","size","icon","circle","click","multiple","filterable","allow-create","inputComponents_EditorInputvue_type_script_lang_js_","components","EditorContent","EditorMenuBar","editor","emitAfterOnUpdate","isMobile","labelPosition","labelWidth","isTablet","watch","val","setContent","beforeDestroy","destroy","mounted","tiptap_esm","extensions","extensions_esm","levels","content","onUpdate","getHTML","_ref","$emit","removeInstanceDoc","asyncToGenerator_default","regenerator_default","a","mark","_callee","wrap","_context","prev","next","stop","EditorInput","label-position","label-width","_s","$t","placement","scopedSlots","_u","fn","commands","isActive","class","is-active","bold","icon-class","italic","underline","heading","level","bullet_list","ordered_list","blockquote","link","code_block","horizontal_rule","undo","redo","inputComponents_IconsInputvue_type_script_lang_js_","addIconToIcons","addValueToIcons","i","deleteIcondRow","parseIcons","IconsInputvue_type_script_lang_js_objectSpread","IconsInput","UPLOAD_URL","authHeaders","Authorization","getToken","inputComponents_ImageUploadInputvue_type_script_lang_js_","inputValue","loading","mapGetters","fullSize","lodash_default","dimensions","width","height","isDefault","defaultImage","baseName","get","utils","authHost","imageUrl","url","isString","startsWith","handleFiles","event","file","target","files","reader","FileReader","formData","FormData","fetch","body","method","headers","then","json","uploadMedia","response","removeFile","ImageUploadInput","style","aria-label","accept","directives","rawName","expression","src","fit","staticStyle","margin-left","inputComponents_MascotsInputvue_type_script_lang_js_","addRowToMascots",":url",":mime_type","deleteMascotsRow","mascot","getName","getUrl","_Object$values","slicedToArray_default","getMimeType","_Object$values3","parseMascots","MascotsInputvue_type_script_lang_js_objectSpread","mascotsWithoutIDs","_Object$values$","mascotValue","objectWithoutProperties_default","_excluded","MascotsInput","inputComponents_ProxyUrlInputvue_type_script_lang_js_","proxyUrlData","socks5","host","port","updateProxyUrl","assembledData","ProxyUrlInput","inputComponents_PruneInputvue_type_script_lang_js_","prune","set","updateRadioInput","updateIntInput","updatedSetting","processedValue","PruneInput","model","callback","$$v","inputComponents_RateLimitInputvue_type_script_lang_js_","rateLimitAllUsers","rateLimitAuthUsers","Array","isArray","rateLimitUnauthUsers","parseRateLimiter","typeOfInput","typeOfLimit","currentValue","valueToSend","toggleLimits","tuple","RateLimitInput","controls","inputComponents_RegInvitesInputvue_type_script_lang_js_","registrationsOpen","invitesEnabled","$confirm","confirmButtonText","cancelButtonText","RegInvitesInput","inputComponents_SelectInputWithReducedLabelsvue_type_script_lang_js_","options","prefixes",":policies","Pleroma.Web.Auth.Authenticator",":method",":adapter",":providers",":parsers",":ttl_setters",":scrub_policy",":federation_publisher_modules",":uploader",":filters","split","renderMultipleSelect","normalizers","SelectInputWithReducedLabels","option","clearable","inputComponents_SenderInputvue_type_script_lang_js_","sender","email","nickname","updateSender","SenderInput","inputComponents_SpecificMultipleSelectvue_type_script_lang_js_","SpecificMultipleSelect","components_Inputsvue_type_script_lang_js_","customLabelWidth","labelClass","margin","nested","settingParent","booleanCombinedInput","canBeDeleted","_this$settingGroup","db","iconsData","keywordData","reducedSelects","textareaInput","isImageUrl","editableKeyword","getFormattedDescription","desc","marked_default","processNestedData","parentKey","removeSetting","_callee2","_context2","config","delete","subkeys","t0","abrupt","$message","message","catch","renderSingleSelect","senderInput","_ref2","update","rules","groupKey","targetKey","targetGroup","notEqual","rulesMap","renderIfNotEqual","components_Settingvue_type_script_lang_js_","Inputs","subSetting","setting-group","setting-parent","custom-label-width","label-class","input-value","undefined","description","domProps","innerHTML","emailAdapterChildren","adapter","children","child","settingKey","existingKey","compound","divideSetting","followsRules","settingGroupKey","rule","ruleFn","settingFollowsRules","notLastInGroup","slice","tab","Setting","components_ActivityPubvue_type_script_lang_js_","activitypub","activitypubData","isSidebarOpen","sidebar","opened","searchQuery","user","userData","selectedSetting","document","querySelector","block","behavior","onSubmit","ActivityPub","components_Authenticationvue_type_script_lang_js_","auth","authData","ldap","ldapData","oauth2","oauth2Data","pleromaAuthenticator","pleromaAuthenticatorData","Authentication","components_Captchavue_type_script_lang_js_","captcha","captchaData","kocaptcha","kocaptchaData","Captcha","emojiPacks_SingleEmojiEditorvue_type_script_lang_js_","packName","shortcode","isLocal","newShortcode","newFile","copyToLocalPackName","copyPopoverVisible","copyToShortcode","copyToFilename","emojiName","emojiFile","localPacks","emojiPacks","remoteInstance","newFilename","force","remove","copyToLocal","filename","e","copyToLocalVisible","addressOfEmojiInPack","SingleEmojiEditor","popper-class","_pack","disabled","emojiPacks_NewEmojiUploadervue_type_script_lang_js_","imageUploadURL","customFileName","uploadEmoji","emojiPacks_LocalEmojiPackvue_type_script_lang_js_","NewEmojiUploader","http-request","show-file-list","action","pack","showPackContent","currentFilesPage","currentLocalFilesPage","currentLocalPacksPage","localPackFilesCount","pageSize","filesPageSize","share","homepage","license","fallbackSrc","trim","collapse","deletePack","_this$$store$state$em","_this$name","updatedPacks","_toPropertyKey","handleChange","openTabs","page","handleFilesPageChange","savePackMetadata","LocalEmojiPack","title","href","pack-name","is-local","total","current-page","page-size","hide-on-single-page","layout","current-change","emojiPacks_RemoteEmojiPackvue_type_script_lang_js_","activeTab","downloadSharedAs","currentRemoteFilesPage","currentRemotePacksPage","loadRemotePack","remoteInstanceAddress","remotePackFilesCount","downloadFromInstance","instanceAddress","as","currentPage","components_Emojivue_type_script_lang_js_","RemoteEmojiPack","newPackName","activeLocalPack","activeRemotePack","fullscreenLoading","emoji","emojiData","emojiPacksDisabled","localPacksCount","instance","remotePacks","remotePacksCount","settingsLabelWidth","refreshLocalPacks","console","closeLocalTabs","collapseExistingEmojis","closeRemoteTabs","$refs","localEmojiPack","forEach","remoteEmojiPack","createLocalPack","handleLocalPageChange","handleRemotePageChange","importFromFS","refreshRemotePacks","_this4","reloadEmoji","_this5","_callee3","_context3","Emoji","effects","accordion","ref","refInFor","getters","modifiers","fullscreen","lock","active-tab","components_Esshdvue_type_script_lang_js_","esshd","esshdData","toggleEsshd","Esshd","inputComponents_FrontendStatusButtonvue_type_script_lang_js_","frontend","buttonLoading","installFrontend","duration","inputComponents_FrontendsTablevue_type_script_lang_js_","FrontendStatusButton","frontendInputOpen","frontendFormData","buildUrl","buildDir","trigger","availableFrontends","frontends","installNewFrontend","validate","valid","_x","apply","arguments","toggleFrontendInput","components_Frontendvue_type_script_lang_js_","FrontendsTable","prop","scope","row","$set","assets","assetsData","chat","chatData","frontendData","frontendsData","markup","markupData","preload","preloadData","staticFe","staticFeData","Frontend","components_Gophervue_type_script_lang_js_","gopher","gopherData","Gopher","components_Httpvue_type_script_lang_js_","corsPlug","corsPlugData","http","httpData","httpSecurity","httpSecurityData","webCacheTtl","webCacheTtlData","Http","components_Instancevue_type_script_lang_js_","editorContent","adminToken","adminTokenData","instancePanelContent","instancePanel","favicons","faviconsData","feed","feedData","instanceData","manifest","manifestData","pleromaUser","pleromaUserData","restrictUnauthenticated","restrictUnauthenticatedData","scheduledActivity","scheduledActivityData","streamer","streamerData","uriSchemes","uriSchemesData","welcome","welcomeData","handleEditorUpdate","Instance","components_JobQueuevue_type_script_lang_js_","activityExpiration","activityExpirationData","connectionsPools","connectionsPoolsData","hackneyPools","hackneyPoolsData","obanQueues","obanQueuesData","pools","poolsData","workers","workersData","JobQueue","components_LinkFormattervue_type_script_lang_js_","linkFormatter","linkFormatterData","LinkFormatter","components_Loggervue_type_script_lang_js_","consoleData","exsyslogger","exsysloggerData","logger","loggerData","quack","quackData","Logger","components_Mailervue_type_script_lang_js_","emailNotifications","emailNotificationsData","mailer","mailerData","newUsersDigestEmail","newUsersDigestEmailData","swoosh","swooshData","userEmail","userEmailData","Mailer","components_MediaProxyvue_type_script_lang_js_","httpInvalidation","httpInvalidationData","mediaPreviewProxy","mediaPreviewProxyData","mediaProxy","mediaProxyData","scriptInvalidation","scriptInvalidationData","MediaProxy","components_Metadatavue_type_script_lang_js_","metadata","metadataData","richMedia","richMediaData","Metadata","components_MRFvue_type_script_lang_js_","mrfSettings","getSettingData","showMrfPolicy","selectedMrfPolicies","mappedPolicies","related_policy","MRF","components_Othervue_type_script_lang_js_","termsOfServices","backup","backupData","castAndValidate","castAndValidateData","mimeTypes","mimeTypesData","modules","modulesData","prometheusMetrics","prometheusMetricsData","remoteIp","remoteIpData","termsOfServicesContent","Other","components_RateLimitersvue_type_script_lang_js_","rateLimiters","rateLimitersData","RateLimiters","components_Uploadvue_type_script_lang_js_","s3","s3Data","showUploadersS3","showUploadersLocal","upload","uploadData","uploadersLocal","uploadersLocalData","uploadersS3","uploadersS3Data","uploadFilterMogrify","uploadFilterMogrifyData","uploadAnonymizeFilename","uploadAnonymizeFilenameData","Upload","components_WebPushvue_type_script_lang_js_","vapidDetails","vapidDetailsData","WebPush","views_settingsvue_type_script_lang_js_","Mrf","RebootButton","componentName","$route","path","pop","configDisabled","rebootIsSidebarOpen","searchData","tabs","activity-pub","authentication","job-queue","link-formatter","media-proxy","mrf","rate-limiters","web-push","other","tabs_tabs","handleSearchSelect","selectedValue","$router","currentRoute","scrollTo","push","querySearch","queryString","cb","searchObj","search","toLowerCase","settingsCantBeChanged","settings_component","fetch-suggestions","trigger-on-focus","prefix-icon","select","tag","__webpack_exports__","components_RebootButtonvue_type_script_lang_js_","needReboot","restartApp","component"],"mappings":"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","file":"static/js/chunk-3df9.41afab47.js","sourcesContent":["export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--10-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??ref--10-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--10-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Upload.vue?vue&type=style&index=0&id=7e07c9e2&prod&rel=stylesheet%2Fscss&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--10-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??ref--10-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--10-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Http.vue?vue&type=style&index=0&id=3fb4d6e6&prod&rel=stylesheet%2Fscss&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--10-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??ref--10-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--10-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Frontend.vue?vue&type=style&index=0&id=5f24ced6&prod&rel=stylesheet%2Fscss&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--10-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??ref--10-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--10-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MediaProxy.vue?vue&type=style&index=0&id=1f7b686a&prod&rel=stylesheet%2Fscss&lang=scss&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../../node_modules/css-loader/index.js??ref--10-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ref--10-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--10-3!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditorInput.vue?vue&type=style&index=0&id=72a9f813&prod&rel=stylesheet%2Fscss&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--10-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??ref--10-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--10-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Other.vue?vue&type=style&index=0&id=480908c8&prod&rel=stylesheet%2Fscss&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--10-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??ref--10-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--10-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Logger.vue?vue&type=style&index=0&id=6f7d479a&prod&rel=stylesheet%2Fscss&lang=scss&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../../node_modules/css-loader/index.js??ref--10-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ref--10-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--10-3!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditableKeywordInput.vue?vue&type=style&index=0&id=1d767917&prod&rel=stylesheet%2Fscss&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--10-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??ref--10-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--10-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WebPush.vue?vue&type=style&index=0&id=31959a06&prod&rel=stylesheet%2Fscss&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--10-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??ref--10-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--10-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Instance.vue?vue&type=style&index=0&id=4f7613b2&prod&rel=stylesheet%2Fscss&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--10-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??ref--10-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--10-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RateLimiters.vue?vue&type=style&index=0&id=7660c53a&prod&rel=stylesheet%2Fscss&lang=scss&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../../node_modules/css-loader/index.js??ref--10-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ref--10-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--10-3!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImageUploadInput.vue?vue&type=style&index=0&id=2c94b4cc&prod&rel=stylesheet%2Fscss&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--10-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??ref--10-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--10-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Esshd.vue?vue&type=style&index=0&id=6dc10470&prod&rel=stylesheet%2Fscss&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--10-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??ref--10-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--10-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Authentication.vue?vue&type=style&index=0&id=1065d778&prod&rel=stylesheet%2Fscss&lang=scss&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../../node_modules/css-loader/index.js??ref--10-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ref--10-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--10-3!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RateLimitInput.vue?vue&type=style&index=0&id=201d4050&prod&rel=stylesheet%2Fscss&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--10-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??ref--10-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--10-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Setting.vue?vue&type=style&index=0&id=7d66a2a7&prod&rel=stylesheet%2Fscss&lang=scss&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../../node_modules/css-loader/index.js??ref--10-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ref--10-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--10-3!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PruneInput.vue?vue&type=style&index=0&id=fea2874a&prod&rel=stylesheet%2Fscss&lang=scss&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../../node_modules/css-loader/index.js??ref--10-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ref--10-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--10-3!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SelectInputWithReducedLabels.vue?vue&type=style&index=0&id=1e15cf5e&prod&rel=stylesheet%2Fscss&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--10-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??ref--10-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--10-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Gopher.vue?vue&type=style&index=0&id=14962b4f&prod&rel=stylesheet%2Fscss&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--10-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??ref--10-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--10-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Inputs.vue?vue&type=style&index=0&id=1a86fd03&prod&rel=stylesheet%2Fscss&lang=scss&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../../node_modules/css-loader/index.js??ref--10-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ref--10-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--10-3!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProxyUrlInput.vue?vue&type=style&index=0&id=449ba742&prod&rel=stylesheet%2Fscss&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--10-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??ref--10-2!../../../node_modules/sass-loader/dist/cjs.js??ref--10-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SingleEmojiEditor.vue?vue&type=style&index=0&id=43549515&prod&rel=stylesheet%2Fscss&lang=scss&\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"settings-container\",class:_vm.rebootIsSidebarOpen},[_c('div',{staticClass:\"reboot-button-container\"},[_c('reboot-button')],1),_vm._v(\" \"),(_vm.isDesktop)?_c('div',[_c('div',{class:_vm.isSidebarOpen},[_c('h1',{staticClass:\"settings-header\"},[_vm._v(_vm._s(_vm.$t('settings.settings')))]),_vm._v(\" \"),_c('div',{staticClass:\"docs-search-container\"},[_c('el-link',{attrs:{\"underline\":false,\"href\":\"https://docs-develop.pleroma.social/backend/administration/CLI_tasks/config/\",\"target\":\"_blank\"}},[_c('el-button',{staticClass:\"settings-docs-button\"},[_c('span',[_c('i',{staticClass:\"el-icon-document\"}),_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.seeDocs'))+\"\\n \")])])],1),_vm._v(\" \"),_c('el-autocomplete',{staticClass:\"settings-search-input\",attrs:{\"fetch-suggestions\":_vm.querySearch,\"trigger-on-focus\":false,\"clearable\":\"\",\"placeholder\":\"Search\",\"prefix-icon\":\"el-icon-search\"},on:{\"select\":_vm.handleSearchSelect},model:{value:(_vm.searchQuery),callback:function ($$v) {_vm.searchQuery=$$v},expression:\"searchQuery\"}})],1)]),_vm._v(\" \"),_c(_vm.componentName,{tag:\"component\"})],1):_vm._e(),_vm._v(\" \"),(_vm.isMobile || _vm.isTablet)?_c('div',[_c('div',{staticClass:\"settings-header-container\",class:_vm.isSidebarOpen},[_c('h1',{staticClass:\"settings-header\"},[_vm._v(_vm._s(_vm.$t('settings.settings')))]),_vm._v(\" \"),_c('el-link',{attrs:{\"underline\":false,\"href\":\"https://docs-develop.pleroma.social/backend/administration/CLI_tasks/config/\",\"target\":\"_blank\"}},[_c('el-button',{staticClass:\"settings-docs-button\"},[_c('span',[_c('i',{staticClass:\"el-icon-document\"}),_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.seeDocs'))+\"\\n \")])])],1)],1),_vm._v(\" \"),_c('div',{staticClass:\"settings-search-container\"},[_c('el-autocomplete',{staticClass:\"settings-search-input\",attrs:{\"fetch-suggestions\":_vm.querySearch,\"trigger-on-focus\":false,\"clearable\":\"\",\"placeholder\":\"Search\",\"prefix-icon\":\"el-icon-search\"},on:{\"select\":_vm.handleSearchSelect},model:{value:(_vm.searchQuery),callback:function ($$v) {_vm.searchQuery=$$v},expression:\"searchQuery\"}})],1),_vm._v(\" \"),_c(_vm.componentName,{tag:\"component\"})],1):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BooleanCombinedInput.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BooleanCombinedInput.vue?vue&type=script&lang=js&\"","<template>\n <div>\n <div v-if=\"setting.type.includes('string')\" :data-search=\"setting.key || setting.group\">\n <el-switch :value=\"booleanValue\" @change=\"processTwoTypeValue($event, setting.key)\"/>\n <el-input\n v-if=\"booleanValue\"\n :value=\"stringValue\"\n @input=\"processTwoTypeValue($event, setting.key)\"/>\n </div>\n <div v-if=\"setting.type.includes('integer')\" :data-search=\"setting.key || setting.group\">\n <el-switch :value=\"booleanValue\" @change=\"processTwoTypeValue($event, setting.key)\"/>\n <el-input-number\n v-if=\"booleanValue\"\n :value=\"integerValue\"\n @input=\"processTwoTypeValue($event, setting.key)\"/>\n </div>\n <div v-if=\"setting.type.includes('atom')\" :data-search=\"setting.key || setting.group\">\n <el-switch :value=\"booleanValue\" @change=\"processTwoTypeValue($event, setting.key)\"/>\n <el-input\n v-if=\"booleanValue\"\n :value=\"atomValue\"\n @input=\"processTwoTypeValue($event, setting.key)\">\n <template slot=\"prepend\">:</template>\n </el-input>\n </div>\n <div v-if=\"setting.type.includes('tuple')\" :data-search=\"setting.key || setting.group\">\n <el-switch :value=\"booleanValue\" @change=\"processTupleTwoTypeValue($event, setting.key)\"/>\n <div v-if=\"booleanValue\" class=\"tuple-input-container\">\n <el-input\n v-for=\"(item, index) in tupleValue\"\n :value=\"item\"\n :key=\"index\"\n :placeholder=\"getPlaceholder[index]\"\n class=\"tuple-input\"\n @input=\"processTupleTwoTypeValue($event, setting.key, index)\"/>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n name: 'BooleanCombinedInput',\n props: {\n data: {\n type: [Object, Array],\n default: function() {\n return {}\n }\n },\n setting: {\n type: Object,\n default: function() {\n return {}\n }\n },\n settingGroup: {\n type: Object,\n default: function() {\n return {}\n }\n }\n },\n computed: {\n atomValue() {\n return this.data[this.setting.key] &&\n this.data[this.setting.key][0] === ':' ? this.data[this.setting.key].substr(1) : this.data[this.setting.key]\n },\n booleanValue() {\n const value = this.data[this.setting.key]\n return typeof value !== 'boolean'\n },\n getPlaceholder() {\n return { 0: ':basic', 1: 'username', 2: 'password' }\n },\n integerValue() {\n const value = this.data[this.setting.key]\n return value || 0\n },\n stringValue() {\n const value = this.data[this.setting.key]\n return value || ''\n },\n tupleValue() {\n const value = this.data[this.setting.key]\n return value || ['', '', '']\n }\n },\n methods: {\n processTupleTwoTypeValue(value, input, _index) {\n if (value === false) {\n this.updateSetting(value, this.settingGroup.group, this.settingGroup.key, input, this.setting.type)\n } else if (value === true) {\n this.updateSetting(['', '', ''], this.settingGroup.group, this.settingGroup.key, input, this.setting.type)\n } else {\n const data = [...this.tupleValue]\n data[_index] = value\n this.updateSetting(data, this.settingGroup.group, this.settingGroup.key, input, this.setting.type)\n }\n },\n processTwoTypeValue(value, input) {\n if (value === true) {\n const data = input === ':truncate' ? 0 : ''\n this.updateSetting(data, this.settingGroup.group, this.settingGroup.key, input, this.setting.type)\n } else {\n this.updateSetting(value, this.settingGroup.group, this.settingGroup.key, input, this.setting.type)\n }\n },\n updateSetting(value, group, key, input, type) {\n this.$store.dispatch('UpdateSettings', { group, key, input, value, type })\n this.$store.dispatch('UpdateState', { group, key, input, value })\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\n@import '../../../styles/settings';\n@include settings\n</style>\n","import { render, staticRenderFns } from \"./BooleanCombinedInput.vue?vue&type=template&id=dfe9f29c&\"\nimport script from \"./BooleanCombinedInput.vue?vue&type=script&lang=js&\"\nexport * from \"./BooleanCombinedInput.vue?vue&type=script&lang=js&\"\nimport style0 from \"./BooleanCombinedInput.vue?vue&type=style&index=0&id=dfe9f29c&prod&rel=stylesheet%2Fscss&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[(_vm.setting.type.includes('string'))?_c('div',{attrs:{\"data-search\":_vm.setting.key || _vm.setting.group}},[_c('el-switch',{attrs:{\"value\":_vm.booleanValue},on:{\"change\":function($event){return _vm.processTwoTypeValue($event, _vm.setting.key)}}}),_vm._v(\" \"),(_vm.booleanValue)?_c('el-input',{attrs:{\"value\":_vm.stringValue},on:{\"input\":function($event){return _vm.processTwoTypeValue($event, _vm.setting.key)}}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.setting.type.includes('integer'))?_c('div',{attrs:{\"data-search\":_vm.setting.key || _vm.setting.group}},[_c('el-switch',{attrs:{\"value\":_vm.booleanValue},on:{\"change\":function($event){return _vm.processTwoTypeValue($event, _vm.setting.key)}}}),_vm._v(\" \"),(_vm.booleanValue)?_c('el-input-number',{attrs:{\"value\":_vm.integerValue},on:{\"input\":function($event){return _vm.processTwoTypeValue($event, _vm.setting.key)}}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.setting.type.includes('atom'))?_c('div',{attrs:{\"data-search\":_vm.setting.key || _vm.setting.group}},[_c('el-switch',{attrs:{\"value\":_vm.booleanValue},on:{\"change\":function($event){return _vm.processTwoTypeValue($event, _vm.setting.key)}}}),_vm._v(\" \"),(_vm.booleanValue)?_c('el-input',{attrs:{\"value\":_vm.atomValue},on:{\"input\":function($event){return _vm.processTwoTypeValue($event, _vm.setting.key)}}},[_c('template',{slot:\"prepend\"},[_vm._v(\":\")])],2):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.setting.type.includes('tuple'))?_c('div',{attrs:{\"data-search\":_vm.setting.key || _vm.setting.group}},[_c('el-switch',{attrs:{\"value\":_vm.booleanValue},on:{\"change\":function($event){return _vm.processTupleTwoTypeValue($event, _vm.setting.key)}}}),_vm._v(\" \"),(_vm.booleanValue)?_c('div',{staticClass:\"tuple-input-container\"},_vm._l((_vm.tupleValue),function(item,index){return _c('el-input',{key:index,staticClass:\"tuple-input\",attrs:{\"value\":item,\"placeholder\":_vm.getPlaceholder[index]},on:{\"input\":function($event){return _vm.processTupleTwoTypeValue($event, _vm.setting.key, index)}}})}),1):_vm._e()],1):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div class=\"editable-keyword-container\">\n <div v-if=\"setting.key === ':crontab'\" :data-search=\"setting.key\" class=\"crontab\">\n <el-form-item v-for=\"worker in data\" :key=\"getId(worker)\" :label=\"getCrontabWorkerLabel(worker)\" class=\"crontab-container\">\n <el-input\n :value=\"getValue(worker)\"\n :placeholder=\"getSuggestion(worker) || null\"\n class=\"input setting-input\"\n @input=\"updateCrontab($event, 'value', worker)\"/>\n </el-form-item>\n </div>\n <div v-else-if=\"editableKeywordWithInteger\" :data-search=\"setting.key || setting.group\">\n <div v-for=\"element in data\" :key=\"getId(element)\" class=\"setting-input\">\n <el-input :value=\"getKey(element)\" placeholder=\"key\" class=\"name-input\" @input=\"parseEditableKeyword($event, 'key', element)\"/> :\n <el-input-number :value=\"getValue(element)\" :min=\"0\" size=\"large\" class=\"value-input\" @change=\"parseEditableKeyword($event, 'value', element)\"/>\n <el-button :size=\"isDesktop ? 'medium' : 'mini'\" class=\"icon-minus-button\" icon=\"el-icon-minus\" circle @click=\"deleteEditableKeywordRow(element)\"/>\n </div>\n <el-button :size=\"isDesktop ? 'medium' : 'mini'\" icon=\"el-icon-plus\" circle @click=\"addRowToEditableKeyword\"/>\n </div>\n <div v-else-if=\"editableKeywordWithString\" :data-search=\"setting.key || setting.group\">\n <div v-for=\"element in data\" :key=\"getId(element)\" class=\"setting-input\">\n <el-input :value=\"getKey(element)\" :placeholder=\"keyPlaceholder\" class=\"name-input\" @input=\"parseEditableKeyword($event, 'key', element)\"/> :\n <el-input :value=\"getValue(element)\" :placeholder=\"valuePlaceholder\" class=\"value-input\" @input=\"parseEditableKeyword($event, 'value', element)\"/>\n <el-button :size=\"isDesktop ? 'medium' : 'mini'\" class=\"icon-minus-button\" icon=\"el-icon-minus\" circle @click=\"deleteEditableKeywordRow(element)\"/>\n </div>\n <el-button :size=\"isDesktop ? 'medium' : 'mini'\" icon=\"el-icon-plus\" circle @click=\"addRowToEditableKeyword\"/>\n </div>\n <div v-else-if=\"editableKeywordWithSelect\" :data-search=\"setting.key || setting.group\">\n <div v-for=\"element in data\" :key=\"getId(element)\" class=\"setting-input\">\n <el-input :value=\"getKey(element)\" placeholder=\"key\" class=\"name-input\" @input=\"parseEditableKeyword($event, 'key', element)\"/> :\n <el-select :value=\"getValue(element)\" multiple filterable allow-create class=\"value-input\" @change=\"parseEditableKeyword($event, 'value', element)\"/>\n <el-button :size=\"isDesktop ? 'medium' : 'mini'\" class=\"icon-minus-button\" icon=\"el-icon-minus\" circle @click=\"deleteEditableKeywordRow(element)\"/>\n </div>\n <el-button :size=\"isDesktop ? 'medium' : 'mini'\" icon=\"el-icon-plus\" circle @click=\"addRowToEditableKeyword\"/>\n </div>\n </div>\n</template>\n\n<script>\nimport { processNested } from '@/store/modules/normalizers'\n\nexport default {\n name: 'EditableKeywordInput',\n props: {\n data: {\n type: Array,\n default: function() {\n return {}\n }\n },\n parents: {\n type: Array,\n default: function() {\n return []\n },\n required: false\n },\n setting: {\n type: Object,\n default: function() {\n return {}\n }\n },\n settingGroup: {\n type: Object,\n default: function() {\n return {}\n }\n }\n },\n computed: {\n editableKeywordWithInteger() {\n return this.setting.type.includes('keyword') && this.setting.type.includes('integer')\n },\n editableKeywordWithSelect() {\n return (this.setting.type.includes('map') && this.setting.type.findIndex(el => el.includes('list') && el.includes('string')) !== -1) ||\n (this.setting.type.includes('keyword') && this.setting.type.findIndex(el => el.includes('list') && el.includes('string')) !== -1)\n },\n editableKeywordWithString() {\n return this.setting.key !== ':crontab' && (\n (this.setting.type.includes('keyword') && this.setting.type.includes('string')) ||\n (this.setting.type.includes('tuple') && this.setting.type.includes('list')) ||\n (this.setting.type.includes('map') && this.setting.type.includes('string'))\n )\n },\n isDesktop() {\n return this.$store.state.app.device === 'desktop'\n },\n keyPlaceholder() {\n /**\n * We can get 'key_placeholder' from the Pleroma BE. This wasn't always the case.\n * We check for the key ':replace' for backwards compatibility for older Pleroma instances who didn't send 'key_placeholder' yet.\n * The ':replace' key was the only key where this was needed.\n */\n return this.setting.key_placeholder ? this.setting.key_placeholder : (this.setting.key === ':replace' ? 'pattern' : 'key')\n },\n settings() {\n return this.$store.state.settings.settings\n },\n updatedSettings() {\n return this.$store.state.settings.updatedSettings\n },\n valuePlaceholder() {\n /**\n * We can get 'value_placeholder' from the Pleroma BE. This wasn't always the case.\n * We check for the key ':replace' for backwards compatibility for older Pleroma instances who didn't send 'value_placeholder' yet.\n * The ':replace' key was the only key where this was needed.\n */\n return this.setting.value_placeholder ? this.setting.value_placeholder : (this.setting.key === ':replace' ? 'replacement' : 'value')\n }\n },\n methods: {\n addRowToEditableKeyword() {\n const updatedValue = [...this.data, { '': { value: '', id: this.generateID() }}]\n this.updateSetting(updatedValue, this.settingGroup.group, this.settingGroup.key, this.setting.key, this.setting.type)\n },\n deleteEditableKeywordRow(element) {\n const deletedId = this.getId(element)\n const filteredValues = this.data.filter(element => Object.values(element)[0].id !== deletedId)\n this.updateSetting(filteredValues, this.settingGroup.group, this.settingGroup.key, this.setting.key, this.setting.type)\n },\n generateID() {\n return `f${(~~(Math.random() * 1e8)).toString(16)}`\n },\n getCrontabWorkerLabel(worker) {\n const workerKey = this.getKey(worker)\n return workerKey.includes('Pleroma.Workers.Cron.') ? workerKey.replace('Pleroma.Workers.Cron.', '') : workerKey\n },\n getKey(element) {\n return Object.keys(element)[0]\n },\n getId(element) {\n const { id } = Object.values(element)[0]\n return id\n },\n getSuggestion(worker) {\n return this.setting.suggestions.find(suggestion => suggestion[1] === this.getKey(worker))[0]\n },\n getValue(element) {\n const { value } = Object.values(element)[0]\n return value\n },\n parseEditableKeyword(value, inputType, element) {\n const updatedId = this.getId(element)\n const updatedValue = this.data.map((element, index) => {\n if (Object.values(element)[0].id === updatedId) {\n return inputType === 'key'\n ? { [value]: Object.values(this.data[index])[0] }\n : { [Object.keys(element)[0]]: { ...Object.values(this.data[index])[0], value }}\n }\n return element\n })\n\n this.updateSetting(updatedValue, this.settingGroup.group, this.settingGroup.key, this.setting.key, this.setting.type)\n },\n updateCrontab(value, inputType, worker) {\n const updatedId = this.getId(worker)\n const updatedValue = this.data.map((worker, index) => {\n if (Object.values(worker)[0].id === updatedId) {\n return { [Object.keys(worker)[0]]: { ...Object.values(this.data[index])[0], value }}\n }\n return worker\n })\n const updatedValueWithType = updatedValue.reduce((acc, worker) => {\n return { ...acc, [Object.keys(worker)[0]]: ['reversed_tuple', Object.values(worker)[0].value] }\n }, {})\n\n this.$store.dispatch('UpdateSettings',\n { group: this.settingGroup.group, key: this.settingGroup.key, input: this.setting.key, value: updatedValueWithType, type: this.setting.type }\n )\n this.$store.dispatch('UpdateState',\n { group: this.settingGroup.group, key: this.settingGroup.key, input: this.setting.key, value: updatedValue }\n )\n },\n updateSetting(value, group, key, input, type) {\n const wrappedSettings = this.wrapUpdatedSettings(value, input, type)\n\n if (this.parents.length > 0) {\n const { valueForState,\n valueForUpdatedSettings,\n setting } = processNested(value, wrappedSettings, group, key, this.parents.reverse(), this.settings, this.updatedSettings)\n this.$store.dispatch('UpdateSettings',\n { group, key, input: setting.key, value: valueForUpdatedSettings, type: setting.type })\n this.$store.dispatch('UpdateState',\n { group, key, input: setting.key, value: valueForState })\n } else {\n this.$store.dispatch('UpdateSettings', { group, key, input, value: wrappedSettings, type })\n this.$store.dispatch('UpdateState', { group, key, input, value })\n }\n },\n wrapUpdatedSettings(value, input, type) {\n return type === 'map'\n ? value.reduce((acc, element) => {\n return { ...acc, [Object.keys(element)[0]]: Object.values(element)[0].value }\n }, {})\n : value.reduce((acc, element) => {\n return { ...acc, [Object.keys(element)[0]]: ['list', Object.values(element)[0].value] }\n }, {})\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\n@import '../../../styles/settings';\n@include settings\n</style>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditableKeywordInput.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditableKeywordInput.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./EditableKeywordInput.vue?vue&type=template&id=1d767917&\"\nimport script from \"./EditableKeywordInput.vue?vue&type=script&lang=js&\"\nexport * from \"./EditableKeywordInput.vue?vue&type=script&lang=js&\"\nimport style0 from \"./EditableKeywordInput.vue?vue&type=style&index=0&id=1d767917&prod&rel=stylesheet%2Fscss&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"editable-keyword-container\"},[(_vm.setting.key === ':crontab')?_c('div',{staticClass:\"crontab\",attrs:{\"data-search\":_vm.setting.key}},_vm._l((_vm.data),function(worker){return _c('el-form-item',{key:_vm.getId(worker),staticClass:\"crontab-container\",attrs:{\"label\":_vm.getCrontabWorkerLabel(worker)}},[_c('el-input',{staticClass:\"input setting-input\",attrs:{\"value\":_vm.getValue(worker),\"placeholder\":_vm.getSuggestion(worker) || null},on:{\"input\":function($event){return _vm.updateCrontab($event, 'value', worker)}}})],1)}),1):(_vm.editableKeywordWithInteger)?_c('div',{attrs:{\"data-search\":_vm.setting.key || _vm.setting.group}},[_vm._l((_vm.data),function(element){return _c('div',{key:_vm.getId(element),staticClass:\"setting-input\"},[_c('el-input',{staticClass:\"name-input\",attrs:{\"value\":_vm.getKey(element),\"placeholder\":\"key\"},on:{\"input\":function($event){return _vm.parseEditableKeyword($event, 'key', element)}}}),_vm._v(\" :\\n \"),_c('el-input-number',{staticClass:\"value-input\",attrs:{\"value\":_vm.getValue(element),\"min\":0,\"size\":\"large\"},on:{\"change\":function($event){return _vm.parseEditableKeyword($event, 'value', element)}}}),_vm._v(\" \"),_c('el-button',{staticClass:\"icon-minus-button\",attrs:{\"size\":_vm.isDesktop ? 'medium' : 'mini',\"icon\":\"el-icon-minus\",\"circle\":\"\"},on:{\"click\":function($event){return _vm.deleteEditableKeywordRow(element)}}})],1)}),_vm._v(\" \"),_c('el-button',{attrs:{\"size\":_vm.isDesktop ? 'medium' : 'mini',\"icon\":\"el-icon-plus\",\"circle\":\"\"},on:{\"click\":_vm.addRowToEditableKeyword}})],2):(_vm.editableKeywordWithString)?_c('div',{attrs:{\"data-search\":_vm.setting.key || _vm.setting.group}},[_vm._l((_vm.data),function(element){return _c('div',{key:_vm.getId(element),staticClass:\"setting-input\"},[_c('el-input',{staticClass:\"name-input\",attrs:{\"value\":_vm.getKey(element),\"placeholder\":_vm.keyPlaceholder},on:{\"input\":function($event){return _vm.parseEditableKeyword($event, 'key', element)}}}),_vm._v(\" :\\n \"),_c('el-input',{staticClass:\"value-input\",attrs:{\"value\":_vm.getValue(element),\"placeholder\":_vm.valuePlaceholder},on:{\"input\":function($event){return _vm.parseEditableKeyword($event, 'value', element)}}}),_vm._v(\" \"),_c('el-button',{staticClass:\"icon-minus-button\",attrs:{\"size\":_vm.isDesktop ? 'medium' : 'mini',\"icon\":\"el-icon-minus\",\"circle\":\"\"},on:{\"click\":function($event){return _vm.deleteEditableKeywordRow(element)}}})],1)}),_vm._v(\" \"),_c('el-button',{attrs:{\"size\":_vm.isDesktop ? 'medium' : 'mini',\"icon\":\"el-icon-plus\",\"circle\":\"\"},on:{\"click\":_vm.addRowToEditableKeyword}})],2):(_vm.editableKeywordWithSelect)?_c('div',{attrs:{\"data-search\":_vm.setting.key || _vm.setting.group}},[_vm._l((_vm.data),function(element){return _c('div',{key:_vm.getId(element),staticClass:\"setting-input\"},[_c('el-input',{staticClass:\"name-input\",attrs:{\"value\":_vm.getKey(element),\"placeholder\":\"key\"},on:{\"input\":function($event){return _vm.parseEditableKeyword($event, 'key', element)}}}),_vm._v(\" :\\n \"),_c('el-select',{staticClass:\"value-input\",attrs:{\"value\":_vm.getValue(element),\"multiple\":\"\",\"filterable\":\"\",\"allow-create\":\"\"},on:{\"change\":function($event){return _vm.parseEditableKeyword($event, 'value', element)}}}),_vm._v(\" \"),_c('el-button',{staticClass:\"icon-minus-button\",attrs:{\"size\":_vm.isDesktop ? 'medium' : 'mini',\"icon\":\"el-icon-minus\",\"circle\":\"\"},on:{\"click\":function($event){return _vm.deleteEditableKeywordRow(element)}}})],1)}),_vm._v(\" \"),_c('el-button',{attrs:{\"size\":_vm.isDesktop ? 'medium' : 'mini',\"icon\":\"el-icon-plus\",\"circle\":\"\"},on:{\"click\":_vm.addRowToEditableKeyword}})],2):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditorInput.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./EditorInput.vue?vue&type=script&lang=js&\"","<template>\n <el-form :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <el-form-item :data-search=\"name === 'instance-panel' ? ':instance_panel' : ':terms_of_services'\" class=\"editor-form-item\">\n <span slot=\"label\">\n {{ name === 'instance-panel' ? $t('settings.instancePanel') : $t('settings.termsOfServices') }}\n <el-tooltip :content=\"$t('settings.removeFromDB')\" placement=\"bottom-end\">\n <el-button icon=\"el-icon-delete\" circle size=\"mini\" class=\"delete-setting-button\" @click=\"removeInstanceDoc\"/>\n </el-tooltip>\n </span>\n <div class=\"editor\">\n <editor-menu-bar v-slot=\"{ commands, isActive }\" :editor=\"editor\">\n <div class=\"menubar\">\n <button\n :class=\"{ 'is-active': isActive.bold() }\"\n class=\"menubar__button\"\n @click=\"commands.bold\">\n <svg-icon icon-class=\"tiptap-bold\" />\n </button>\n <button\n :class=\"{ 'is-active': isActive.italic() }\"\n class=\"menubar__button\"\n @click=\"commands.italic\">\n <svg-icon icon-class=\"tiptap-italic\" />\n </button>\n <button\n :class=\"{ 'is-active': isActive.underline() }\"\n class=\"menubar__button\"\n @click=\"commands.underline\">\n <svg-icon icon-class=\"tiptap-underline\" />\n </button>\n <button\n :class=\"{ 'is-active': isActive.heading({ level: 1 }) }\"\n class=\"menubar__button\"\n @click=\"commands.heading({ level: 1 })\">\n H1\n </button>\n <button\n :class=\"{ 'is-active': isActive.heading({ level: 2 }) }\"\n class=\"menubar__button\"\n @click=\"commands.heading({ level: 2 })\">\n H2\n </button>\n <button\n :class=\"{ 'is-active': isActive.heading({ level: 3 }) }\"\n class=\"menubar__button\"\n @click=\"commands.heading({ level: 3 })\">\n H3\n </button>\n <button\n :class=\"{ 'is-active': isActive.bullet_list() }\"\n class=\"menubar__button\"\n @click=\"commands.bullet_list\">\n <svg-icon icon-class=\"tiptap-ul\" />\n </button>\n <button\n :class=\"{ 'is-active': isActive.ordered_list() }\"\n class=\"menubar__button\"\n @click=\"commands.ordered_list\">\n <svg-icon icon-class=\"tiptap-ol\" />\n </button>\n <button\n :class=\"{ 'is-active': isActive.blockquote() }\"\n class=\"menubar__button\"\n @click=\"commands.blockquote\">\n <svg-icon icon-class=\"tiptap-quote\" />\n </button>\n <button\n :class=\"{ 'is-active': isActive.link() }\"\n class=\"menubar__button\"\n @click=\"commands.link\">\n <svg-icon icon-class=\"tiptap-link\" />\n </button>\n <button\n :class=\"{ 'is-active': isActive.code_block() }\"\n class=\"menubar__button\"\n @click=\"commands.code_block\">\n <svg-icon icon-class=\"tiptap-code\" />\n </button>\n <button\n class=\"menubar__button\"\n @click=\"commands.horizontal_rule\">\n <svg-icon icon-class=\"tiptap-hr\" />\n </button>\n <button\n class=\"menubar__button\"\n @click=\"commands.undo\">\n <svg-icon icon-class=\"tiptap-undo\" />\n </button>\n <button\n class=\"menubar__button\"\n @click=\"commands.redo\">\n <svg-icon icon-class=\"tiptap-redo\" />\n </button>\n </div>\n </editor-menu-bar>\n <editor-content :editor=\"editor\" class=\"editor__content\" />\n </div>\n </el-form-item>\n </el-form>\n</template>\n\n<script>\nimport { Editor, EditorContent, EditorMenuBar } from 'tiptap'\nimport {\n Blockquote,\n CodeBlock,\n Heading,\n HorizontalRule,\n OrderedList,\n BulletList,\n ListItem,\n Bold,\n Italic,\n Link,\n Underline,\n History\n} from 'tiptap-extensions'\n\nexport default {\n name: 'EditorInput',\n components: {\n EditorContent,\n EditorMenuBar\n },\n props: {\n value: {\n type: String,\n default: ''\n },\n name: {\n type: String,\n default: ''\n }\n },\n data() {\n return {\n editor: null,\n emitAfterOnUpdate: false\n }\n },\n computed: {\n isMobile() {\n return this.$store.state.app.device === 'mobile'\n },\n labelPosition() {\n return this.isMobile ? 'top' : 'right'\n },\n labelWidth() {\n if (this.isMobile) {\n return '120px'\n } else if (this.isTablet) {\n return '200px'\n } else {\n return '280px'\n }\n }\n },\n watch: {\n value(val) {\n if (this.emitAfterOnUpdate) {\n this.emitAfterOnUpdate = false\n return\n }\n if (this.editor) this.editor.setContent(val)\n }\n },\n beforeDestroy() {\n if (this.editor) {\n this.editor.destroy()\n }\n },\n mounted() {\n this.editor = new Editor({\n extensions: [\n new Blockquote(),\n new Bold(),\n new BulletList(),\n new CodeBlock(),\n new Heading({ levels: [1, 2, 3] }),\n new History(),\n new HorizontalRule(),\n new Italic(),\n new Link(),\n new ListItem(),\n new OrderedList(),\n new Underline()\n ],\n content: this.value,\n onUpdate: ({ getHTML }) => {\n this.$emit('input', getHTML())\n }\n })\n this.editor.setContent(this.value)\n },\n methods: {\n async removeInstanceDoc() {\n await this.$store.dispatch('RemoveInstanceDocument', this.name)\n this.editor.setContent(this.value)\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\n@import '../../../styles/settings';\n@include tiptap\n</style>\n","import { render, staticRenderFns } from \"./EditorInput.vue?vue&type=template&id=72a9f813&\"\nimport script from \"./EditorInput.vue?vue&type=script&lang=js&\"\nexport * from \"./EditorInput.vue?vue&type=script&lang=js&\"\nimport style0 from \"./EditorInput.vue?vue&type=style&index=0&id=72a9f813&prod&rel=stylesheet%2Fscss&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('el-form',{attrs:{\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('el-form-item',{staticClass:\"editor-form-item\",attrs:{\"data-search\":_vm.name === 'instance-panel' ? ':instance_panel' : ':terms_of_services'}},[_c('span',{attrs:{\"slot\":\"label\"},slot:\"label\"},[_vm._v(\"\\n \"+_vm._s(_vm.name === 'instance-panel' ? _vm.$t('settings.instancePanel') : _vm.$t('settings.termsOfServices'))+\"\\n \"),_c('el-tooltip',{attrs:{\"content\":_vm.$t('settings.removeFromDB'),\"placement\":\"bottom-end\"}},[_c('el-button',{staticClass:\"delete-setting-button\",attrs:{\"icon\":\"el-icon-delete\",\"circle\":\"\",\"size\":\"mini\"},on:{\"click\":_vm.removeInstanceDoc}})],1)],1),_vm._v(\" \"),_c('div',{staticClass:\"editor\"},[_c('editor-menu-bar',{attrs:{\"editor\":_vm.editor},scopedSlots:_vm._u([{key:\"default\",fn:function({ commands, isActive }){return [_c('div',{staticClass:\"menubar\"},[_c('button',{staticClass:\"menubar__button\",class:{ 'is-active': isActive.bold() },on:{\"click\":commands.bold}},[_c('svg-icon',{attrs:{\"icon-class\":\"tiptap-bold\"}})],1),_vm._v(\" \"),_c('button',{staticClass:\"menubar__button\",class:{ 'is-active': isActive.italic() },on:{\"click\":commands.italic}},[_c('svg-icon',{attrs:{\"icon-class\":\"tiptap-italic\"}})],1),_vm._v(\" \"),_c('button',{staticClass:\"menubar__button\",class:{ 'is-active': isActive.underline() },on:{\"click\":commands.underline}},[_c('svg-icon',{attrs:{\"icon-class\":\"tiptap-underline\"}})],1),_vm._v(\" \"),_c('button',{staticClass:\"menubar__button\",class:{ 'is-active': isActive.heading({ level: 1 }) },on:{\"click\":function($event){return commands.heading({ level: 1 })}}},[_vm._v(\"\\n H1\\n \")]),_vm._v(\" \"),_c('button',{staticClass:\"menubar__button\",class:{ 'is-active': isActive.heading({ level: 2 }) },on:{\"click\":function($event){return commands.heading({ level: 2 })}}},[_vm._v(\"\\n H2\\n \")]),_vm._v(\" \"),_c('button',{staticClass:\"menubar__button\",class:{ 'is-active': isActive.heading({ level: 3 }) },on:{\"click\":function($event){return commands.heading({ level: 3 })}}},[_vm._v(\"\\n H3\\n \")]),_vm._v(\" \"),_c('button',{staticClass:\"menubar__button\",class:{ 'is-active': isActive.bullet_list() },on:{\"click\":commands.bullet_list}},[_c('svg-icon',{attrs:{\"icon-class\":\"tiptap-ul\"}})],1),_vm._v(\" \"),_c('button',{staticClass:\"menubar__button\",class:{ 'is-active': isActive.ordered_list() },on:{\"click\":commands.ordered_list}},[_c('svg-icon',{attrs:{\"icon-class\":\"tiptap-ol\"}})],1),_vm._v(\" \"),_c('button',{staticClass:\"menubar__button\",class:{ 'is-active': isActive.blockquote() },on:{\"click\":commands.blockquote}},[_c('svg-icon',{attrs:{\"icon-class\":\"tiptap-quote\"}})],1),_vm._v(\" \"),_c('button',{staticClass:\"menubar__button\",class:{ 'is-active': isActive.link() },on:{\"click\":commands.link}},[_c('svg-icon',{attrs:{\"icon-class\":\"tiptap-link\"}})],1),_vm._v(\" \"),_c('button',{staticClass:\"menubar__button\",class:{ 'is-active': isActive.code_block() },on:{\"click\":commands.code_block}},[_c('svg-icon',{attrs:{\"icon-class\":\"tiptap-code\"}})],1),_vm._v(\" \"),_c('button',{staticClass:\"menubar__button\",on:{\"click\":commands.horizontal_rule}},[_c('svg-icon',{attrs:{\"icon-class\":\"tiptap-hr\"}})],1),_vm._v(\" \"),_c('button',{staticClass:\"menubar__button\",on:{\"click\":commands.undo}},[_c('svg-icon',{attrs:{\"icon-class\":\"tiptap-undo\"}})],1),_vm._v(\" \"),_c('button',{staticClass:\"menubar__button\",on:{\"click\":commands.redo}},[_c('svg-icon',{attrs:{\"icon-class\":\"tiptap-redo\"}})],1)])]}}])}),_vm._v(\" \"),_c('editor-content',{staticClass:\"editor__content\",attrs:{\"editor\":_vm.editor}})],1)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div :data-search=\"setting.key || setting.group\" class=\"mascot-container\">\n <div v-for=\"(icon, index) in data\" :key=\"index\" class=\"mascot\">\n <div class=\"icons-container\">\n <div class=\"icon-container\">\n <div v-for=\"{ key, value, id } in icon\" :key=\"id\" class=\"icon-values-container\">\n <el-input :value=\"key\" placeholder=\"key\" class=\"icon-key-input\" @input=\"parseIcons($event, 'key', index, id)\"/> :\n <el-input :value=\"value\" placeholder=\"value\" class=\"icon-value-input\" @input=\"parseIcons($event, 'value', index, id)\"/>\n </div>\n </div>\n <el-button :size=\"isDesktop ? 'medium' : 'mini'\" icon=\"el-icon-minus\" circle class=\"icon-minus-button\" @click=\"deleteIcondRow(index)\"/>\n </div>\n <div class=\"icons-button-container\">\n <el-button :size=\"isDesktop ? 'medium' : 'mini'\" icon=\"el-icon-plus\" circle @click=\"addValueToIcons(index)\"/>\n <span class=\"icons-button-desc\">{{ $t('settings.addKeyValuePair') }}</span>\n </div>\n <el-divider class=\"divider\"/>\n </div>\n <div class=\"icons-button-container\">\n <el-button :size=\"isDesktop ? 'medium' : 'mini'\" icon=\"el-icon-plus\" circle @click=\"addIconToIcons\"/>\n <span class=\"icons-button-desc\">{{ $t('settings.addIconConfig') }}</span>\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n name: 'EditableKeywordInput',\n props: {\n data: {\n type: Array,\n default: function() {\n return {}\n }\n },\n setting: {\n type: Object,\n default: function() {\n return {}\n }\n },\n settingGroup: {\n type: Object,\n default: function() {\n return {}\n }\n }\n },\n computed: {\n isDesktop() {\n return this.$store.state.app.device === 'desktop'\n }\n },\n methods: {\n addIconToIcons() {\n const updatedValue = [...this.data, [{ key: '', value: '', id: this.generateID() }]]\n this.updateSetting(updatedValue, this.settingGroup.group, this.settingGroup.key, this.setting.key, this.setting.type)\n },\n addValueToIcons(index) {\n const updatedValue = this.data.map((icon, i) => {\n if (i === index) {\n return [...icon, { key: '', value: '', id: this.generateID() }]\n }\n return icon\n })\n this.updateSetting(updatedValue, this.settingGroup.group, this.settingGroup.key, this.setting.key, this.setting.type)\n },\n deleteIcondRow(index) {\n const filteredValues = this.data.filter((icon, i) => i !== index)\n this.updateSetting(filteredValues, this.settingGroup.group, this.settingGroup.key, this.setting.key, this.setting.type)\n },\n generateID() {\n return `f${(~~(Math.random() * 1e8)).toString(16)}`\n },\n parseIcons(value, inputType, index, id) {\n const updatedValue = this.data.map((icon, i) => {\n if (i === index) {\n return icon.map(setting => {\n if (setting.id === id) {\n return inputType === 'key'\n ? { ...setting, key: value }\n : { ...setting, value }\n }\n return setting\n })\n }\n return icon\n })\n\n this.updateSetting(updatedValue, this.settingGroup.group, this.settingGroup.key, this.setting.key, this.setting.type)\n },\n updateSetting(value, group, key, input, type) {\n const updatedSettings = value.map(icon => {\n return icon.reduce((acc, { key, value }) => {\n return { ...acc, [key]: value }\n }, {})\n }, {})\n this.$store.dispatch('UpdateSettings', { group, key, input, value: updatedSettings, type })\n this.$store.dispatch('UpdateState', { group, key, input, value })\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\n@import '../../../styles/settings';\n@include settings\n</style>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IconsInput.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IconsInput.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./IconsInput.vue?vue&type=template&id=2e4c0d3b&\"\nimport script from \"./IconsInput.vue?vue&type=script&lang=js&\"\nexport * from \"./IconsInput.vue?vue&type=script&lang=js&\"\nimport style0 from \"./IconsInput.vue?vue&type=style&index=0&id=2e4c0d3b&prod&rel=stylesheet%2Fscss&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"mascot-container\",attrs:{\"data-search\":_vm.setting.key || _vm.setting.group}},[_vm._l((_vm.data),function(icon,index){return _c('div',{key:index,staticClass:\"mascot\"},[_c('div',{staticClass:\"icons-container\"},[_c('div',{staticClass:\"icon-container\"},_vm._l((icon),function({ key, value, id }){return _c('div',{key:id,staticClass:\"icon-values-container\"},[_c('el-input',{staticClass:\"icon-key-input\",attrs:{\"value\":key,\"placeholder\":\"key\"},on:{\"input\":function($event){return _vm.parseIcons($event, 'key', index, id)}}}),_vm._v(\" :\\n \"),_c('el-input',{staticClass:\"icon-value-input\",attrs:{\"value\":value,\"placeholder\":\"value\"},on:{\"input\":function($event){return _vm.parseIcons($event, 'value', index, id)}}})],1)}),0),_vm._v(\" \"),_c('el-button',{staticClass:\"icon-minus-button\",attrs:{\"size\":_vm.isDesktop ? 'medium' : 'mini',\"icon\":\"el-icon-minus\",\"circle\":\"\"},on:{\"click\":function($event){return _vm.deleteIcondRow(index)}}})],1),_vm._v(\" \"),_c('div',{staticClass:\"icons-button-container\"},[_c('el-button',{attrs:{\"size\":_vm.isDesktop ? 'medium' : 'mini',\"icon\":\"el-icon-plus\",\"circle\":\"\"},on:{\"click\":function($event){return _vm.addValueToIcons(index)}}}),_vm._v(\" \"),_c('span',{staticClass:\"icons-button-desc\"},[_vm._v(_vm._s(_vm.$t('settings.addKeyValuePair')))])],1),_vm._v(\" \"),_c('el-divider',{staticClass:\"divider\"})],1)}),_vm._v(\" \"),_c('div',{staticClass:\"icons-button-container\"},[_c('el-button',{attrs:{\"size\":_vm.isDesktop ? 'medium' : 'mini',\"icon\":\"el-icon-plus\",\"circle\":\"\"},on:{\"click\":_vm.addIconToIcons}}),_vm._v(\" \"),_c('span',{staticClass:\"icons-button-desc\"},[_vm._v(_vm._s(_vm.$t('settings.addIconConfig')))])],1)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { getToken } from '@/utils/auth'\nimport { baseName } from './utils'\n\nconst UPLOAD_URL = '/api/v1/media'\n\nexport function uploadMedia({ formData, authHost }) {\n const url = baseName(authHost) + UPLOAD_URL\n\n return fetch(url, {\n body: formData,\n method: 'POST',\n headers: authHeaders()\n })\n .then((data) => data.json())\n}\n\nconst authHeaders = () => {\n return { 'Authorization': `Bearer ${getToken()}` }\n}\n","<template>\n <div class=\"image-upload-area\">\n <div class=\"input-row\">\n <div :style=\"dimensions\" class=\"image-upload-wrapper\">\n <div :style=\"dimensions\" class=\"image-upload-overlay\">\n <input\n :aria-label=\"$t('settings.changeImage')\"\n class=\"input-file\"\n type=\"file\"\n accept=\".jpg,.jpeg,.png\"\n @change=\"handleFiles\" >\n <div class=\"caption\">\n {{ $t('settings.changeImage') }}\n </div>\n <el-image\n v-loading=\"loading\"\n :src=\"imageUrl(inputValue)\"\n :style=\"dimensions\"\n class=\"uploaded-image\"\n fit=\"cover\" />\n </div>\n </div>\n </div>\n <div class=\"image-button-group\">\n <el-button class=\"upload-button\" size=\"small\">\n {{ $t('settings.uploadImage') }}\n <input\n :aria-label=\"$t('settings.changeImage')\"\n class=\"input-file\"\n type=\"file\"\n accept=\".jpg,.jpeg,.png\"\n @change=\"handleFiles\">\n </el-button>\n <el-button v-if=\"!isDefault\" type=\"danger\" size=\"small\" style=\"margin-left: 5px;\" @click=\"removeFile()\">\n {{ $t('settings.remove') }}\n </el-button>\n </div>\n </div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex'\nimport _ from 'lodash'\nimport { baseName } from '../../../../api/utils'\nimport { uploadMedia } from '../../../../api/mediaUpload'\n\nexport default {\n name: 'ImageUploadInput',\n props: {\n inputValue: {\n type: [String, Object],\n default: function() {\n return {}\n }\n },\n setting: {\n type: Object,\n default: function() {\n return {}\n }\n }\n },\n data() {\n return {\n loading: false\n }\n },\n computed: {\n ...mapGetters([\n 'authHost'\n ]),\n fullSize() {\n if (_.includes([':background', ':nsfwCensorImage'], this.setting.key)) {\n return true\n }\n\n return false\n },\n dimensions() {\n return {\n width: this.fullSize ? '100%' : '100px',\n height: this.fullSize ? '250px' : '100px'\n }\n },\n isDefault() {\n return this.defaultImage === this.inputValue\n },\n defaultImage() {\n return this.baseName + _.get(this.setting, 'suggestions[0]')\n },\n baseName() {\n return baseName(this.authHost)\n }\n },\n methods: {\n imageUrl(url) {\n if (_.isString(url)) {\n const isUrl = url.startsWith('http') || url.startsWith('https')\n return isUrl ? url : this.baseName + url\n } else {\n return this.defaultImage\n }\n },\n handleFiles(event) {\n const file = event.target.files[0]\n if (!file) { return }\n const reader = new FileReader()\n reader.onload = ({ target }) => {\n const formData = new FormData()\n formData.append('file', file)\n this.loading = true\n uploadMedia({ formData, authHost: this.authHost }).then(response => {\n this.loading = false\n this.$emit('change', response.url)\n })\n }\n reader.readAsDataURL(file)\n },\n removeFile() {\n this.$emit('change', this.defaultImage)\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\n@import '../../../styles/settings';\n@include settings;\n\n.image-upload-area {\n .input-row {\n display: flex;\n align-items: center;\n }\n\n .input-file {\n z-index: 100;\n position: absolute;\n top: 0px;\n left: 0px;\n width: 100%;\n height: 100%;\n opacity: 0;\n cursor: pointer;\n }\n\n .image-button-group {\n margin-top: 20px;\n\n .upload-button {\n position: relative;\n }\n }\n\n .image-upload-wrapper {\n position: relative;\n\n .image-upload-overlay {\n transition: box-shadow .1s;\n border-radius: 5px;\n\n .caption {\n visibility: hidden;\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n left: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n font-weight: 700;\n font-size: 10px;\n text-transform: uppercase;;\n color: #fff;\n z-index: 9;\n transition: box-shadow .1s;\n }\n\n .uploaded-image {\n border-radius: 5px;\n box-shadow: 0 2px 10px 0 rgba(0,0,0,.1);\n }\n\n &:hover {\n visibility: visible;\n cursor: pointer;\n border-radius: 5px;\n\n .el-image__error {\n visibility: hidden;\n }\n\n .caption {\n visibility: visible;\n box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.1), inset 0 0 120px 25px rgba(0, 0, 0, 0.8);\n border-radius: 5px;\n }\n }\n }\n }\n}\n\n</style>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImageUploadInput.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImageUploadInput.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ImageUploadInput.vue?vue&type=template&id=2c94b4cc&\"\nimport script from \"./ImageUploadInput.vue?vue&type=script&lang=js&\"\nexport * from \"./ImageUploadInput.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ImageUploadInput.vue?vue&type=style&index=0&id=2c94b4cc&prod&rel=stylesheet%2Fscss&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"image-upload-area\"},[_c('div',{staticClass:\"input-row\"},[_c('div',{staticClass:\"image-upload-wrapper\",style:(_vm.dimensions)},[_c('div',{staticClass:\"image-upload-overlay\",style:(_vm.dimensions)},[_c('input',{staticClass:\"input-file\",attrs:{\"aria-label\":_vm.$t('settings.changeImage'),\"type\":\"file\",\"accept\":\".jpg,.jpeg,.png\"},on:{\"change\":_vm.handleFiles}}),_vm._v(\" \"),_c('div',{staticClass:\"caption\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.changeImage'))+\"\\n \")]),_vm._v(\" \"),_c('el-image',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.loading),expression:\"loading\"}],staticClass:\"uploaded-image\",style:(_vm.dimensions),attrs:{\"src\":_vm.imageUrl(_vm.inputValue),\"fit\":\"cover\"}})],1)])]),_vm._v(\" \"),_c('div',{staticClass:\"image-button-group\"},[_c('el-button',{staticClass:\"upload-button\",attrs:{\"size\":\"small\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.uploadImage'))+\"\\n \"),_c('input',{staticClass:\"input-file\",attrs:{\"aria-label\":_vm.$t('settings.changeImage'),\"type\":\"file\",\"accept\":\".jpg,.jpeg,.png\"},on:{\"change\":_vm.handleFiles}})]),_vm._v(\" \"),(!_vm.isDefault)?_c('el-button',{staticStyle:{\"margin-left\":\"5px\"},attrs:{\"type\":\"danger\",\"size\":\"small\"},on:{\"click\":function($event){return _vm.removeFile()}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.remove'))+\"\\n \")]):_vm._e()],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div :data-search=\"setting.key || setting.group\" class=\"mascot-container\">\n <div v-for=\"mascot in data\" :key=\"getId(mascot)\" class=\"mascot\">\n <el-form-item label=\"Name\" label-width=\"85px\" class=\"mascot-form-item\">\n <div class=\"mascot-name-container\">\n <el-input :value=\"getName(mascot)\" placeholder=\"Name\" class=\"mascot-name-input\" @input=\"parseMascots($event, 'name', mascot)\"/>\n <el-button :size=\"isDesktop ? 'medium' : 'mini'\" class=\"icon-minus-button\" icon=\"el-icon-minus\" circle @click=\"deleteMascotsRow(mascot)\"/>\n </div>\n </el-form-item>\n <el-form-item label=\"URL\" label-width=\"85px\" class=\"mascot-form-item\">\n <el-input :value=\"getUrl(mascot)\" placeholder=\"URL\" class=\"mascot-input\" @input=\"parseMascots($event, 'url', mascot)\"/>\n </el-form-item>\n <el-form-item label=\"Mime type\" label-width=\"85px\" class=\"mascot-form-item\">\n <el-input :value=\"getMimeType(mascot)\" placeholder=\"Mime type\" class=\"mascot-input\" @input=\"parseMascots($event, 'mimeType', mascot)\"/>\n </el-form-item>\n </div>\n <el-button :size=\"isDesktop ? 'medium' : 'mini'\" icon=\"el-icon-plus\" circle @click=\"addRowToMascots\"/>\n </div>\n</template>\n\n<script>\nexport default {\n name: 'MascotsInput',\n props: {\n data: {\n type: Array,\n default: function() {\n return {}\n }\n },\n setting: {\n type: Object,\n default: function() {\n return {}\n }\n },\n settingGroup: {\n type: Object,\n default: function() {\n return {}\n }\n }\n },\n computed: {\n isDesktop() {\n return this.$store.state.app.device === 'desktop'\n }\n },\n methods: {\n addRowToMascots() {\n const updatedValue = [...this.data, { '': { ':url': '', ':mime_type': '', id: this.generateID() }}]\n this.updateSetting(updatedValue, this.settingGroup.group, this.settingGroup.key, this.setting.key, this.setting.type)\n },\n deleteMascotsRow(mascot) {\n const deletedId = this.getId(mascot)\n const filteredValues = this.data.filter(mascot => Object.values(mascot)[0].id !== deletedId)\n this.updateSetting(filteredValues, this.settingGroup.group, this.settingGroup.key, this.setting.key, this.setting.type)\n },\n generateID() {\n return `f${(~~(Math.random() * 1e8)).toString(16)}`\n },\n getId(mascot) {\n const { id } = Object.values(mascot)[0]\n return id\n },\n getName(mascot) {\n return Object.keys(mascot)[0]\n },\n getUrl(mascot) {\n const [value] = Object.values(mascot)\n return value[':url']\n },\n getMimeType(mascot) {\n const [value] = Object.values(mascot)\n return value[':mime_type']\n },\n parseMascots(value, inputType, mascot) {\n const updatedId = this.getId(mascot)\n const updatedValue = this.data.map((mascot, index) => {\n if (Object.values(mascot)[0].id === updatedId) {\n if (inputType === 'name') {\n return { [value]: Object.values(this.data[index])[0] }\n } else if (inputType === 'url') {\n return { [Object.keys(mascot)[0]]: { ...Object.values(this.data[index])[0], ':url': value }}\n } else {\n return { [Object.keys(mascot)[0]]: { ...Object.values(this.data[index])[0], ':mime_type': value }}\n }\n }\n return mascot\n })\n this.updateSetting(updatedValue, this.settingGroup.group, this.settingGroup.key, this.setting.key, this.setting.type)\n },\n updateSetting(value, group, key, input, type) {\n const mascotsWithoutIDs = value.reduce((acc, mascot) => {\n const { id, ...mascotValue } = Object.values(mascot)[0]\n return { ...acc, [Object.keys(mascot)[0]]: ['', mascotValue] }\n }, {})\n this.$store.dispatch('UpdateSettings', { group, key, input, value: mascotsWithoutIDs, type })\n this.$store.dispatch('UpdateState', { group, key, input, value })\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\n@import '../../../styles/settings';\n@include settings\n</style>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MascotsInput.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MascotsInput.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MascotsInput.vue?vue&type=template&id=5aa04b4e&\"\nimport script from \"./MascotsInput.vue?vue&type=script&lang=js&\"\nexport * from \"./MascotsInput.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MascotsInput.vue?vue&type=style&index=0&id=5aa04b4e&prod&rel=stylesheet%2Fscss&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"mascot-container\",attrs:{\"data-search\":_vm.setting.key || _vm.setting.group}},[_vm._l((_vm.data),function(mascot){return _c('div',{key:_vm.getId(mascot),staticClass:\"mascot\"},[_c('el-form-item',{staticClass:\"mascot-form-item\",attrs:{\"label\":\"Name\",\"label-width\":\"85px\"}},[_c('div',{staticClass:\"mascot-name-container\"},[_c('el-input',{staticClass:\"mascot-name-input\",attrs:{\"value\":_vm.getName(mascot),\"placeholder\":\"Name\"},on:{\"input\":function($event){return _vm.parseMascots($event, 'name', mascot)}}}),_vm._v(\" \"),_c('el-button',{staticClass:\"icon-minus-button\",attrs:{\"size\":_vm.isDesktop ? 'medium' : 'mini',\"icon\":\"el-icon-minus\",\"circle\":\"\"},on:{\"click\":function($event){return _vm.deleteMascotsRow(mascot)}}})],1)]),_vm._v(\" \"),_c('el-form-item',{staticClass:\"mascot-form-item\",attrs:{\"label\":\"URL\",\"label-width\":\"85px\"}},[_c('el-input',{staticClass:\"mascot-input\",attrs:{\"value\":_vm.getUrl(mascot),\"placeholder\":\"URL\"},on:{\"input\":function($event){return _vm.parseMascots($event, 'url', mascot)}}})],1),_vm._v(\" \"),_c('el-form-item',{staticClass:\"mascot-form-item\",attrs:{\"label\":\"Mime type\",\"label-width\":\"85px\"}},[_c('el-input',{staticClass:\"mascot-input\",attrs:{\"value\":_vm.getMimeType(mascot),\"placeholder\":\"Mime type\"},on:{\"input\":function($event){return _vm.parseMascots($event, 'mimeType', mascot)}}})],1)],1)}),_vm._v(\" \"),_c('el-button',{attrs:{\"size\":_vm.isDesktop ? 'medium' : 'mini',\"icon\":\"el-icon-plus\",\"circle\":\"\"},on:{\"click\":_vm.addRowToMascots}})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div :data-search=\"setting.key || setting.group\" class=\"proxy-url-input\">\n <el-input\n :value=\"proxyUrlData.host\"\n placeholder=\"host (e.g. localhost or 127.0.0.1)\"\n class=\"proxy-url-host-input\"\n @input=\"updateProxyUrl($event, 'host')\"/>\n <span v-if=\"isDesktop\">:</span>\n <el-input\n :value=\"proxyUrlData.port\"\n placeholder=\"port (e.g 9020 or 3090)\"\n class=\"proxy-url-value-input\"\n @input=\"updateProxyUrl($event, 'port')\"/>\n <div class=\"socks5-checkbox-container\">\n <el-checkbox :value=\"proxyUrlData.socks5\" @change=\"updateProxyUrl($event, 'socks5')\"/>\n <span class=\"socks5-checkbox\">Socks5</span>\n </div>\n </div>\n</template>\n\n<script>\nimport { processNested } from '@/store/modules/normalizers'\n\nexport default {\n name: 'ProxyUrlInput',\n props: {\n data: {\n type: [Object, Array],\n default: function() {\n return {}\n }\n },\n setting: {\n type: Object,\n default: function() {\n return {}\n }\n },\n settingGroup: {\n type: Object,\n default: function() {\n return {}\n }\n },\n parents: {\n type: Array,\n default: function() {\n return []\n },\n required: false\n }\n },\n computed: {\n isDesktop() {\n return this.$store.state.app.device === 'desktop'\n },\n settings() {\n return this.$store.state.settings.settings\n },\n updatedSettings() {\n return this.$store.state.settings.updatedSettings\n },\n proxyUrlData() {\n return Object.keys(this.data).length === 0 ? { socks5: false, host: null, port: null } : this.data\n }\n },\n methods: {\n updateProxyUrl(value, inputType) {\n let data\n if (inputType === 'socks5') {\n data = { ...this.proxyUrlData, socks5: value }\n } else if (inputType === 'host') {\n data = { ...this.proxyUrlData, host: value }\n } else {\n data = { ...this.proxyUrlData, port: value }\n }\n this.updateSetting(data, this.settingGroup.group, this.settingGroup.key, this.setting.key, this.setting.type)\n },\n updateSetting(value, group, key, input, type) {\n const assembledData = value.socks5\n ? [':socks5', value.host, value.port]\n : `${value.host}:${value.port}`\n if (this.parents.length > 0) {\n const { valueForState,\n valueForUpdatedSettings,\n setting } = processNested(value, assembledData, group, key, this.parents.reverse(), this.settings, this.updatedSettings)\n\n this.$store.dispatch('UpdateSettings',\n { group, key, input: setting.key, value: valueForUpdatedSettings, type: setting.type })\n this.$store.dispatch('UpdateState',\n { group, key, input: setting.key, value: valueForState })\n } else {\n this.$store.dispatch('UpdateSettings', { group, key, input, value: assembledData, type })\n this.$store.dispatch('UpdateState', { group, key, input, value })\n }\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\n@import '../../../styles/settings';\n@include settings\n</style>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProxyUrlInput.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProxyUrlInput.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ProxyUrlInput.vue?vue&type=template&id=449ba742&\"\nimport script from \"./ProxyUrlInput.vue?vue&type=script&lang=js&\"\nexport * from \"./ProxyUrlInput.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ProxyUrlInput.vue?vue&type=style&index=0&id=449ba742&prod&rel=stylesheet%2Fscss&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"proxy-url-input\",attrs:{\"data-search\":_vm.setting.key || _vm.setting.group}},[_c('el-input',{staticClass:\"proxy-url-host-input\",attrs:{\"value\":_vm.proxyUrlData.host,\"placeholder\":\"host (e.g. localhost or 127.0.0.1)\"},on:{\"input\":function($event){return _vm.updateProxyUrl($event, 'host')}}}),_vm._v(\" \"),(_vm.isDesktop)?_c('span',[_vm._v(\":\")]):_vm._e(),_vm._v(\" \"),_c('el-input',{staticClass:\"proxy-url-value-input\",attrs:{\"value\":_vm.proxyUrlData.port,\"placeholder\":\"port (e.g 9020 or 3090)\"},on:{\"input\":function($event){return _vm.updateProxyUrl($event, 'port')}}}),_vm._v(\" \"),_c('div',{staticClass:\"socks5-checkbox-container\"},[_c('el-checkbox',{attrs:{\"value\":_vm.proxyUrlData.socks5},on:{\"change\":function($event){return _vm.updateProxyUrl($event, 'socks5')}}}),_vm._v(\" \"),_c('span',{staticClass:\"socks5-checkbox\"},[_vm._v(\"Socks5\")])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PruneInput.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PruneInput.vue?vue&type=script&lang=js&\"","<template>\n <div :data-search=\"setting.key || setting.group\">\n <el-radio-group v-model=\"prune\" class=\"prune-options\">\n <el-radio label=\":disabled\">Disabled</el-radio>\n <el-radio label=\":maxlen\">Limit-based</el-radio>\n <el-radio label=\":maxage\">Time-based</el-radio>\n </el-radio-group>\n <el-form-item v-if=\"prune === ':maxlen'\" label=\"Max length\" label-width=\"100\" label-position=\"left\">\n <el-input-number\n :value=\"data[1]\"\n :min=\"0\"\n placeholder=\"1500\"\n size=\"large\"\n class=\"top-margin\"\n @change=\"updateIntInput($event, ':maxlen')\"/>\n </el-form-item>\n <el-form-item v-if=\"prune === ':maxage'\" label=\"Max age\" label-width=\"100\" label-position=\"left\">\n <el-input-number\n :value=\"data[1]\"\n :min=\"0\"\n placeholder=\"3600\"\n size=\"large\"\n class=\"top-margin\"\n @change=\"updateIntInput($event, ':maxage')\"/>\n </el-form-item>\n </div>\n</template>\n\n<script>\nexport default {\n name: 'PruneInput',\n props: {\n data: {\n type: [Object, Array],\n default: function() {\n return {}\n }\n },\n setting: {\n type: Object,\n default: function() {\n return {}\n }\n },\n settingGroup: {\n type: Object,\n default: function() {\n return {}\n }\n }\n },\n computed: {\n prune: {\n get: function() {\n return this.data[0]\n },\n set: function(value) {\n this.updateRadioInput(value)\n }\n }\n },\n methods: {\n updateIntInput(value, input) {\n this.updateSetting([input, value], this.settingGroup.group, this.settingGroup.key, this.setting.key, this.setting.type)\n },\n updateSetting(value, group, key, input, type) {\n const updatedSetting = value.includes(':disabled') ? ':disabled' : value\n this.$store.dispatch('UpdateSettings', { group, key, input, value: updatedSetting, type })\n this.$store.dispatch('UpdateState', { group, key, input, value })\n },\n updateRadioInput(value) {\n const processedValue = value === ':disabled' ? [value] : [value, 0]\n this.updateSetting(processedValue, this.settingGroup.group, this.settingGroup.key, this.setting.key, this.setting.type)\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\n@import '../../../styles/settings';\n@include settings\n</style>\n","import { render, staticRenderFns } from \"./PruneInput.vue?vue&type=template&id=fea2874a&\"\nimport script from \"./PruneInput.vue?vue&type=script&lang=js&\"\nexport * from \"./PruneInput.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PruneInput.vue?vue&type=style&index=0&id=fea2874a&prod&rel=stylesheet%2Fscss&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"data-search\":_vm.setting.key || _vm.setting.group}},[_c('el-radio-group',{staticClass:\"prune-options\",model:{value:(_vm.prune),callback:function ($$v) {_vm.prune=$$v},expression:\"prune\"}},[_c('el-radio',{attrs:{\"label\":\":disabled\"}},[_vm._v(\"Disabled\")]),_vm._v(\" \"),_c('el-radio',{attrs:{\"label\":\":maxlen\"}},[_vm._v(\"Limit-based\")]),_vm._v(\" \"),_c('el-radio',{attrs:{\"label\":\":maxage\"}},[_vm._v(\"Time-based\")])],1),_vm._v(\" \"),(_vm.prune === ':maxlen')?_c('el-form-item',{attrs:{\"label\":\"Max length\",\"label-width\":\"100\",\"label-position\":\"left\"}},[_c('el-input-number',{staticClass:\"top-margin\",attrs:{\"value\":_vm.data[1],\"min\":0,\"placeholder\":\"1500\",\"size\":\"large\"},on:{\"change\":function($event){return _vm.updateIntInput($event, ':maxlen')}}})],1):_vm._e(),_vm._v(\" \"),(_vm.prune === ':maxage')?_c('el-form-item',{attrs:{\"label\":\"Max age\",\"label-width\":\"100\",\"label-position\":\"left\"}},[_c('el-input-number',{staticClass:\"top-margin\",attrs:{\"value\":_vm.data[1],\"min\":0,\"placeholder\":\"3600\",\"size\":\"large\"},on:{\"change\":function($event){return _vm.updateIntInput($event, ':maxage')}}})],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RateLimitInput.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RateLimitInput.vue?vue&type=script&lang=js&\"","<template>\n <div :data-search=\"setting.key || setting.group\" class=\"rate-limit-container\">\n <div v-if=\"!rateLimitAuthUsers\">\n <el-input-number\n :value=\"rateLimitAllUsers[0]\"\n :controls=\"false\"\n placeholder=\"scale\"\n class=\"scale-input\"\n @input=\"parseRateLimiter($event, setting.key, 'scale', 'oneLimit', rateLimitAllUsers)\"/>\n <span>:</span>\n <el-input-number\n :value=\"rateLimitAllUsers[1]\"\n :controls=\"false\"\n placeholder=\"limit\"\n class=\"limit-input\"\n @input=\"parseRateLimiter($event, setting.key, 'limit', 'oneLimit', rateLimitAllUsers)\"/>\n <div class=\"limit-button-container\">\n <el-button :size=\"isDesktop ? 'medium' : 'mini'\" icon=\"el-icon-plus\" circle @click=\"toggleLimits([['', ''], ['', '']], setting.key)\"/>\n <p class=\"expl limit-expl\">{{ $t('settings.setLimits') }}</p>\n </div>\n </div>\n <div v-if=\"rateLimitAuthUsers\">\n <el-form-item class=\"rate-limit\">\n <div class=\"rate-limit-label-container\">\n <span class=\"rate-limit-label\">\n {{ $t('settings.unauthenticatedUsers') }}:\n </span>\n </div>\n <div class=\"rate-limit-content\">\n <el-input-number\n :value=\"rateLimitUnauthUsers[0]\"\n :controls=\"false\"\n placeholder=\"scale\"\n class=\"scale-input\"\n @input=\"parseRateLimiter(\n $event, setting.key, 'scale', 'unauthUsersLimit', [rateLimitUnauthUsers, rateLimitAuthUsers]\n )\"/>\n <span>:</span>\n <el-input-number\n :value=\"rateLimitUnauthUsers[1]\"\n :controls=\"false\"\n placeholder=\"limit\"\n class=\"limit-input\"\n @input=\"parseRateLimiter(\n $event, setting.key, 'limit', 'unauthUsersLimit', [rateLimitUnauthUsers, rateLimitAuthUsers]\n )\"/>\n </div>\n </el-form-item>\n <el-form-item class=\"rate-limit\">\n <div class=\"rate-limit-label-container\">\n <span class=\"rate-limit-label\">\n {{ $t('settings.authenticatedUsers') }}:\n </span>\n </div>\n <div class=\"rate-limit-content\">\n <el-input-number\n :value=\"rateLimitAuthUsers[0]\"\n :controls=\"false\"\n placeholder=\"scale\"\n class=\"scale-input\"\n @input=\"parseRateLimiter($event, setting.key, 'scale', 'authUserslimit', [rateLimitUnauthUsers, rateLimitAuthUsers])\"/>\n <span>:</span>\n <el-input-number\n :value=\"rateLimitAuthUsers[1]\"\n :controls=\"false\"\n placeholder=\"limit\"\n class=\"limit-input\"\n @input=\"parseRateLimiter($event, setting.key, 'limit', 'authUserslimit', [rateLimitUnauthUsers, rateLimitAuthUsers])\"/>\n </div>\n </el-form-item>\n <div class=\"limit-button-container\">\n <el-button :size=\"isDesktop ? 'medium' : 'mini'\" class=\"icon-minus-button\" icon=\"el-icon-minus\" circle @click=\"toggleLimits(['', ''], setting.key)\"/>\n <p class=\"expl limit-expl\">{{ $t('settings.setLimitsForAll') }}</p>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n name: 'RateLimitInput',\n props: {\n data: {\n type: [Object, Array],\n default: function() {\n return {}\n }\n },\n setting: {\n type: Object,\n default: function() {\n return {}\n }\n },\n settingGroup: {\n type: Object,\n default: function() {\n return {}\n }\n }\n },\n computed: {\n isDesktop() {\n return this.$store.state.app.device === 'desktop'\n },\n rateLimitAllUsers() {\n return this.data[this.setting.key] ? this.data[this.setting.key] : ['', '']\n },\n rateLimitAuthUsers() {\n return this.data[this.setting.key] && Array.isArray(this.data[this.setting.key][0])\n ? this.data[this.setting.key][1]\n : false\n },\n rateLimitUnauthUsers() {\n return this.data[this.setting.key] && Array.isArray(this.data[this.setting.key][1])\n ? this.data[this.setting.key][0]\n : false\n }\n },\n methods: {\n parseRateLimiter(value, input, typeOfInput, typeOfLimit, currentValue) {\n let valueToSend\n if (typeOfLimit === 'oneLimit') {\n valueToSend = typeOfInput === 'scale' ? [value, currentValue[1]] : [currentValue[0], value]\n } else if (typeOfLimit === 'unauthUsersLimit') {\n valueToSend = typeOfInput === 'scale'\n ? [[value, currentValue[0][1]], [currentValue[1][0], currentValue[1][1]]]\n : [[currentValue[0][0], value], [currentValue[1][0], currentValue[1][1]]]\n } else if (typeOfLimit === 'authUserslimit') {\n valueToSend = typeOfInput === 'scale'\n ? [[currentValue[0][0], currentValue[0][1]], [value, currentValue[1][1]]]\n : [[currentValue[0][0], currentValue[0][1]], [currentValue[1][0], value]]\n }\n this.updateSetting(valueToSend, this.settingGroup.group, this.settingGroup.key, input, this.setting.type)\n },\n toggleLimits(value, input) {\n this.updateSetting(value, this.settingGroup.group, this.settingGroup.key, input)\n },\n updateSetting(value, group, key, input, type) {\n const updatedSettings = Array.isArray(value[0])\n ? value.map(element => { return { 'tuple': element } })\n : { 'tuple': value }\n this.$store.dispatch('UpdateSettings', { group, key, input, value: updatedSettings, type })\n this.$store.dispatch('UpdateState', { group, key, input, value })\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\n@import '../../../styles/settings';\n@include settings\n</style>\n","import { render, staticRenderFns } from \"./RateLimitInput.vue?vue&type=template&id=201d4050&\"\nimport script from \"./RateLimitInput.vue?vue&type=script&lang=js&\"\nexport * from \"./RateLimitInput.vue?vue&type=script&lang=js&\"\nimport style0 from \"./RateLimitInput.vue?vue&type=style&index=0&id=201d4050&prod&rel=stylesheet%2Fscss&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"rate-limit-container\",attrs:{\"data-search\":_vm.setting.key || _vm.setting.group}},[(!_vm.rateLimitAuthUsers)?_c('div',[_c('el-input-number',{staticClass:\"scale-input\",attrs:{\"value\":_vm.rateLimitAllUsers[0],\"controls\":false,\"placeholder\":\"scale\"},on:{\"input\":function($event){return _vm.parseRateLimiter($event, _vm.setting.key, 'scale', 'oneLimit', _vm.rateLimitAllUsers)}}}),_vm._v(\" \"),_c('span',[_vm._v(\":\")]),_vm._v(\" \"),_c('el-input-number',{staticClass:\"limit-input\",attrs:{\"value\":_vm.rateLimitAllUsers[1],\"controls\":false,\"placeholder\":\"limit\"},on:{\"input\":function($event){return _vm.parseRateLimiter($event, _vm.setting.key, 'limit', 'oneLimit', _vm.rateLimitAllUsers)}}}),_vm._v(\" \"),_c('div',{staticClass:\"limit-button-container\"},[_c('el-button',{attrs:{\"size\":_vm.isDesktop ? 'medium' : 'mini',\"icon\":\"el-icon-plus\",\"circle\":\"\"},on:{\"click\":function($event){return _vm.toggleLimits([['', ''], ['', '']], _vm.setting.key)}}}),_vm._v(\" \"),_c('p',{staticClass:\"expl limit-expl\"},[_vm._v(_vm._s(_vm.$t('settings.setLimits')))])],1)],1):_vm._e(),_vm._v(\" \"),(_vm.rateLimitAuthUsers)?_c('div',[_c('el-form-item',{staticClass:\"rate-limit\"},[_c('div',{staticClass:\"rate-limit-label-container\"},[_c('span',{staticClass:\"rate-limit-label\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.unauthenticatedUsers'))+\":\\n \")])]),_vm._v(\" \"),_c('div',{staticClass:\"rate-limit-content\"},[_c('el-input-number',{staticClass:\"scale-input\",attrs:{\"value\":_vm.rateLimitUnauthUsers[0],\"controls\":false,\"placeholder\":\"scale\"},on:{\"input\":function($event){return _vm.parseRateLimiter(\n $event, _vm.setting.key, 'scale', 'unauthUsersLimit', [_vm.rateLimitUnauthUsers, _vm.rateLimitAuthUsers]\n )}}}),_vm._v(\" \"),_c('span',[_vm._v(\":\")]),_vm._v(\" \"),_c('el-input-number',{staticClass:\"limit-input\",attrs:{\"value\":_vm.rateLimitUnauthUsers[1],\"controls\":false,\"placeholder\":\"limit\"},on:{\"input\":function($event){return _vm.parseRateLimiter(\n $event, _vm.setting.key, 'limit', 'unauthUsersLimit', [_vm.rateLimitUnauthUsers, _vm.rateLimitAuthUsers]\n )}}})],1)]),_vm._v(\" \"),_c('el-form-item',{staticClass:\"rate-limit\"},[_c('div',{staticClass:\"rate-limit-label-container\"},[_c('span',{staticClass:\"rate-limit-label\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.authenticatedUsers'))+\":\\n \")])]),_vm._v(\" \"),_c('div',{staticClass:\"rate-limit-content\"},[_c('el-input-number',{staticClass:\"scale-input\",attrs:{\"value\":_vm.rateLimitAuthUsers[0],\"controls\":false,\"placeholder\":\"scale\"},on:{\"input\":function($event){return _vm.parseRateLimiter($event, _vm.setting.key, 'scale', 'authUserslimit', [_vm.rateLimitUnauthUsers, _vm.rateLimitAuthUsers])}}}),_vm._v(\" \"),_c('span',[_vm._v(\":\")]),_vm._v(\" \"),_c('el-input-number',{staticClass:\"limit-input\",attrs:{\"value\":_vm.rateLimitAuthUsers[1],\"controls\":false,\"placeholder\":\"limit\"},on:{\"input\":function($event){return _vm.parseRateLimiter($event, _vm.setting.key, 'limit', 'authUserslimit', [_vm.rateLimitUnauthUsers, _vm.rateLimitAuthUsers])}}})],1)]),_vm._v(\" \"),_c('div',{staticClass:\"limit-button-container\"},[_c('el-button',{staticClass:\"icon-minus-button\",attrs:{\"size\":_vm.isDesktop ? 'medium' : 'mini',\"icon\":\"el-icon-minus\",\"circle\":\"\"},on:{\"click\":function($event){return _vm.toggleLimits(['', ''], _vm.setting.key)}}}),_vm._v(\" \"),_c('p',{staticClass:\"expl limit-expl\"},[_vm._v(_vm._s(_vm.$t('settings.setLimitsForAll')))])],1)],1):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RegInvitesInput.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RegInvitesInput.vue?vue&type=script&lang=js&\"","<template>\n <el-switch\n :value=\"data[setting.key]\"\n :data-search=\"setting.key\"\n class=\"switch-input\"\n @change=\"updateSetting($event, settingGroup.group, settingGroup.key, setting.key, setting.type)\"/>\n</template>\n\n<script>\nexport default {\n name: 'RegInvitesInput',\n props: {\n data: {\n type: [Object, Array],\n default: function() {\n return {}\n }\n },\n setting: {\n type: Object,\n default: function() {\n return {}\n }\n },\n settingGroup: {\n type: Object,\n default: function() {\n return {}\n }\n }\n },\n methods: {\n updateSetting(value, group, key, input, type) {\n const registrationsOpen = this.$store.state.settings.settings[group][key][':registrations_open']\n const invitesEnabled = this.$store.state.settings.settings[group][key][':invites_enabled']\n if (input === ':registrations_open' && value && invitesEnabled) {\n this.$confirm(\n 'Enabling this setting requires invites to be disabled. Are you sure you want to open registrations?',\n 'Warning',\n { confirmButtonText: 'OK',\n cancelButtonText: 'Cancel',\n type: 'warning'\n }).then(() => {\n this.$store.dispatch('UpdateSettings', { group, key, input, value, type })\n this.$store.dispatch('UpdateSettings', { group, key, input: ':invites_enabled', value: false, type })\n this.$store.dispatch('UpdateState', { group, key, input, value })\n this.$store.dispatch('UpdateState', { group, key, input: ':invites_enabled', value: false })\n })\n } else if (input === ':invites_enabled' && value && registrationsOpen) {\n this.$confirm(\n 'Enabling this setting requires registrations to be disabled. Are you sure you want to enable invitations?',\n 'Warning',\n { confirmButtonText: 'OK',\n cancelButtonText: 'Cancel',\n type: 'warning'\n }).then(() => {\n this.$store.dispatch('UpdateSettings', { group, key, input, value, type })\n this.$store.dispatch('UpdateSettings', { group, key, input: ':registrations_open', value: false, type })\n this.$store.dispatch('UpdateState', { group, key, input, value })\n this.$store.dispatch('UpdateState', { group, key, input: ':registrations_open', value: false })\n })\n } else {\n this.$store.dispatch('UpdateSettings', { group, key, input, value, type })\n this.$store.dispatch('UpdateState', { group, key, input, value })\n }\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\n@import '../../../styles/settings';\n@include settings\n</style>\n","import { render, staticRenderFns } from \"./RegInvitesInput.vue?vue&type=template&id=1248b8d6&\"\nimport script from \"./RegInvitesInput.vue?vue&type=script&lang=js&\"\nexport * from \"./RegInvitesInput.vue?vue&type=script&lang=js&\"\nimport style0 from \"./RegInvitesInput.vue?vue&type=style&index=0&id=1248b8d6&prod&rel=stylesheet%2Fscss&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('el-switch',{staticClass:\"switch-input\",attrs:{\"value\":_vm.data[_vm.setting.key],\"data-search\":_vm.setting.key},on:{\"change\":function($event){return _vm.updateSetting($event, _vm.settingGroup.group, _vm.settingGroup.key, _vm.setting.key, _vm.setting.type)}}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SelectInputWithReducedLabels.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SelectInputWithReducedLabels.vue?vue&type=script&lang=js&\"","<template>\n <div class=\"input\">\n <el-select\n v-if=\"renderMultipleSelect(setting.type)\"\n :value=\"inputValue\"\n :data-search=\"setting.key\"\n multiple\n filterable\n allow-create\n class=\"input\"\n @change=\"updateSetting($event, settingGroup.group, settingGroup.key, setting.key, setting.type)\">\n <el-option v-for=\"(option, index) in options(setting.suggestions)\" :key=\"index\" :value=\"option.value\" :label=\"option.label\" />\n </el-select>\n <el-select\n v-if=\"setting.type === 'module' || (setting.type.includes('atom') && setting.type.includes('dropdown'))\"\n :value=\"inputValue === false ? 'false' : inputValue\"\n :data-search=\"setting.key || setting.group\"\n clearable\n class=\"input\"\n @change=\"updateSetting($event, settingGroup.group, settingGroup.key, setting.key, setting.type)\">\n <el-option\n v-for=\"(option, index) in options(setting.suggestions)\"\n :value=\"option.value\"\n :label=\"option.label\"\n :key=\"index\"/>\n </el-select>\n </div>\n</template>\n\n<script>\nimport { getBooleanValue } from '@/store/modules/normalizers'\n\nexport default {\n name: 'SelectInputWithReducedLabels',\n props: {\n data: {\n type: [Array, Object],\n default: function() {\n return {}\n }\n },\n setting: {\n type: Object,\n default: function() {\n return {}\n }\n },\n settingGroup: {\n type: Object,\n default: function() {\n return {}\n }\n }\n },\n computed: {\n inputValue() {\n if (this.setting.key === 'Pleroma.Web.Auth.Authenticator') {\n return this.data.value\n } else if (this.setting.key === ':policies') {\n return typeof this.data[this.setting.key] === 'string'\n ? [this.data[this.setting.key]]\n : this.data[this.setting.key]\n } else {\n return this.data[this.setting.key]\n }\n },\n isMobile() {\n return this.$store.state.app.device === 'mobile'\n }\n },\n methods: {\n options(suggestions) {\n const prefixes = {\n ':policies': 'Pleroma.Web.ActivityPub.MRF.',\n 'Pleroma.Web.Auth.Authenticator': 'Pleroma.Web.Auth.',\n ':method': 'Pleroma.Captcha.',\n ':adapter': 'Swoosh.Adapters.',\n ':providers': 'Pleroma.Web.Metadata.Providers.',\n ':parsers': 'Pleroma.Web.RichMedia.Parsers.',\n ':ttl_setters': 'Pleroma.Web.RichMedia.Parser.',\n ':scrub_policy': 'Pleroma.HTML.',\n ':federation_publisher_modules': 'Pleroma.Web.',\n ':uploader': 'Pleroma.Uploaders.',\n ':filters': 'Pleroma.Upload.Filter.'\n }\n\n return suggestions.map(element => {\n const label = element.split(prefixes[this.setting.key])[1]\n ? element.split(prefixes[this.setting.key])[1]\n : element\n return { value: element, label }\n })\n },\n renderMultipleSelect(type) {\n return Array.isArray(type) && this.setting.key !== ':backends' && this.setting.key !== ':args' && (\n type.includes('module') ||\n (type.includes('list') && type.includes('string')) ||\n (type.includes('list') && type.includes('atom')) ||\n (type.includes('regex') && type.includes('string')) ||\n this.setting.key === ':args'\n )\n },\n updateSetting(value, group, key, input, type) {\n const updatedValue = getBooleanValue(value)\n this.$store.dispatch('UpdateSettings', { group, key, input, value: updatedValue, type })\n this.$store.dispatch('UpdateState', { group, key, input, value: updatedValue })\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\n@import '../../../styles/settings';\n@include settings\n</style>\n","import { render, staticRenderFns } from \"./SelectInputWithReducedLabels.vue?vue&type=template&id=1e15cf5e&\"\nimport script from \"./SelectInputWithReducedLabels.vue?vue&type=script&lang=js&\"\nexport * from \"./SelectInputWithReducedLabels.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SelectInputWithReducedLabels.vue?vue&type=style&index=0&id=1e15cf5e&prod&rel=stylesheet%2Fscss&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"input\"},[(_vm.renderMultipleSelect(_vm.setting.type))?_c('el-select',{staticClass:\"input\",attrs:{\"value\":_vm.inputValue,\"data-search\":_vm.setting.key,\"multiple\":\"\",\"filterable\":\"\",\"allow-create\":\"\"},on:{\"change\":function($event){return _vm.updateSetting($event, _vm.settingGroup.group, _vm.settingGroup.key, _vm.setting.key, _vm.setting.type)}}},_vm._l((_vm.options(_vm.setting.suggestions)),function(option,index){return _c('el-option',{key:index,attrs:{\"value\":option.value,\"label\":option.label}})}),1):_vm._e(),_vm._v(\" \"),(_vm.setting.type === 'module' || (_vm.setting.type.includes('atom') && _vm.setting.type.includes('dropdown')))?_c('el-select',{staticClass:\"input\",attrs:{\"value\":_vm.inputValue === false ? 'false' : _vm.inputValue,\"data-search\":_vm.setting.key || _vm.setting.group,\"clearable\":\"\"},on:{\"change\":function($event){return _vm.updateSetting($event, _vm.settingGroup.group, _vm.settingGroup.key, _vm.setting.key, _vm.setting.type)}}},_vm._l((_vm.options(_vm.setting.suggestions)),function(option,index){return _c('el-option',{key:index,attrs:{\"value\":option.value,\"label\":option.label}})}),1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div :data-search=\"setting.key || setting.group\" class=\"sender-input\">\n <el-input\n :value=\"sender.email\"\n placeholder=\"email address\"\n class=\"email-address-input\"\n @input=\"updateSender($event, 'email')\"/>\n <el-input\n :value=\"sender.nickname\"\n placeholder=\"nickname\"\n class=\"nickname-input\"\n @input=\"updateSender($event, 'nickname')\"/>\n </div>\n</template>\n\n<script>\nimport { processNested } from '@/store/modules/normalizers'\n\nexport default {\n name: 'SenderInput',\n props: {\n data: {\n type: [Object, Array],\n default: function() {\n return {}\n }\n },\n parents: {\n type: Array,\n default: function() {\n return []\n },\n required: false\n },\n setting: {\n type: Object,\n default: function() {\n return {}\n }\n },\n settingGroup: {\n type: Object,\n default: function() {\n return {}\n }\n }\n },\n computed: {\n isDesktop() {\n return this.$store.state.app.device === 'desktop'\n },\n settings() {\n return this.$store.state.settings.settings\n },\n updatedSettings() {\n return this.$store.state.settings.updatedSettings\n },\n sender() {\n return Object.keys(this.data).length === 0 ? { email: null, nickname: null } : this.data\n }\n },\n methods: {\n updateSender(value, inputType) {\n let data\n if (inputType === 'email') {\n data = { ...this.sender, email: value }\n } else {\n data = { ...this.sender, nickname: value }\n }\n this.updateSetting(data, this.settingGroup.group, this.settingGroup.key, this.setting.key, this.setting.type)\n },\n updateSetting(value, group, key, input, type) {\n const assembledData = value.nickname\n ? [value.nickname, value.email]\n : value.email\n\n if (this.parents.length > 0) {\n const { valueForState,\n valueForUpdatedSettings,\n setting } = processNested(value, assembledData, group, key, this.parents.reverse(), this.settings, this.updatedSettings)\n\n this.$store.dispatch('UpdateSettings',\n { group, key, input: setting.key, value: valueForUpdatedSettings, type: setting.type })\n this.$store.dispatch('UpdateState',\n { group, key, input: setting.key, value: valueForState })\n } else {\n this.$store.dispatch('UpdateSettings', { group, key, input, value: assembledData, type })\n this.$store.dispatch('UpdateState', { group, key, input, value })\n }\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\n@import '../../../styles/settings';\n@include settings\n</style>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SenderInput.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SenderInput.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SenderInput.vue?vue&type=template&id=e0000a64&\"\nimport script from \"./SenderInput.vue?vue&type=script&lang=js&\"\nexport * from \"./SenderInput.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SenderInput.vue?vue&type=style&index=0&id=e0000a64&prod&rel=stylesheet%2Fscss&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"sender-input\",attrs:{\"data-search\":_vm.setting.key || _vm.setting.group}},[_c('el-input',{staticClass:\"email-address-input\",attrs:{\"value\":_vm.sender.email,\"placeholder\":\"email address\"},on:{\"input\":function($event){return _vm.updateSender($event, 'email')}}}),_vm._v(\" \"),_c('el-input',{staticClass:\"nickname-input\",attrs:{\"value\":_vm.sender.nickname,\"placeholder\":\"nickname\"},on:{\"input\":function($event){return _vm.updateSender($event, 'nickname')}}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SpecificMultipleSelect.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SpecificMultipleSelect.vue?vue&type=script&lang=js&\"","<template>\n <div class=\"multiple-select-container\">\n <el-select\n v-if=\"setting.key === ':backends'\"\n :value=\"data.value\"\n :data-search=\"setting.key || setting.group\"\n multiple\n class=\"input\"\n @change=\"updateSetting($event, settingGroup.group, settingGroup.key, setting.key, setting.type)\">\n <el-option value=\":console\" label=\"console\"/>\n <el-option value=\":ex_syslogger\" label=\"ExSyslogger\"/>\n <el-option value=\"Quack.Logger\" label=\"Quack.Logger\"/>\n </el-select>\n <el-select\n v-if=\"setting.key === ':args'\"\n :value=\"data[setting.key]\"\n :data-search=\"setting.key || setting.group\"\n multiple\n filterable\n allow-create\n class=\"input\"\n @change=\"updateSetting($event, settingGroup.group, settingGroup.key, setting.key, setting.type)\">\n <el-option value=\"strip\"/>\n <el-option value=\"auto-orient\"/>\n <!-- eslint-disable -->\n <el-option value='{\"implode\", \"1\"}'/>\n <!-- eslint-enable -->\n </el-select>\n </div>\n</template>\n\n<script>\nexport default {\n name: 'SpecificMultipleSelect',\n props: {\n data: {\n type: [Object, Array],\n default: function() {\n return {}\n }\n },\n setting: {\n type: Object,\n default: function() {\n return {}\n }\n },\n settingGroup: {\n type: Object,\n default: function() {\n return {}\n }\n }\n },\n methods: {\n updateSetting(value, group, key, input, type) {\n this.$store.dispatch('UpdateSettings', { group, key, input, value, type })\n this.$store.dispatch('UpdateState', { group, key, input, value })\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\n@import '../../../styles/settings';\n@include settings\n</style>\n","import { render, staticRenderFns } from \"./SpecificMultipleSelect.vue?vue&type=template&id=c7cd3716&\"\nimport script from \"./SpecificMultipleSelect.vue?vue&type=script&lang=js&\"\nexport * from \"./SpecificMultipleSelect.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SpecificMultipleSelect.vue?vue&type=style&index=0&id=c7cd3716&prod&rel=stylesheet%2Fscss&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"multiple-select-container\"},[(_vm.setting.key === ':backends')?_c('el-select',{staticClass:\"input\",attrs:{\"value\":_vm.data.value,\"data-search\":_vm.setting.key || _vm.setting.group,\"multiple\":\"\"},on:{\"change\":function($event){return _vm.updateSetting($event, _vm.settingGroup.group, _vm.settingGroup.key, _vm.setting.key, _vm.setting.type)}}},[_c('el-option',{attrs:{\"value\":\":console\",\"label\":\"console\"}}),_vm._v(\" \"),_c('el-option',{attrs:{\"value\":\":ex_syslogger\",\"label\":\"ExSyslogger\"}}),_vm._v(\" \"),_c('el-option',{attrs:{\"value\":\"Quack.Logger\",\"label\":\"Quack.Logger\"}})],1):_vm._e(),_vm._v(\" \"),(_vm.setting.key === ':args')?_c('el-select',{staticClass:\"input\",attrs:{\"value\":_vm.data[_vm.setting.key],\"data-search\":_vm.setting.key || _vm.setting.group,\"multiple\":\"\",\"filterable\":\"\",\"allow-create\":\"\"},on:{\"change\":function($event){return _vm.updateSetting($event, _vm.settingGroup.group, _vm.settingGroup.key, _vm.setting.key, _vm.setting.type)}}},[_c('el-option',{attrs:{\"value\":\"strip\"}}),_vm._v(\" \"),_c('el-option',{attrs:{\"value\":\"auto-orient\"}}),_vm._v(\" \"),_c('el-option',{attrs:{\"value\":\"{\\\"implode\\\", \\\"1\\\"}\"}})],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Inputs.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Inputs.vue?vue&type=script&lang=js&\"","<template>\n <div class=\"input-container\">\n <div v-if=\"setting.type === 'keyword'\" class=\"keyword-container\">\n <el-form-item\n :label-width=\"customLabelWidth\"\n :class=\"labelClass\"\n :style=\"`margin-left:${margin}px;margin-bottom:0`\"\n :data-search=\"setting.key || setting.group\">\n <span slot=\"label\">\n {{ setting.label }}\n <el-tooltip v-if=\"canBeDeleted && isDesktop\" :content=\"$t('settings.removeFromDB')\" placement=\"bottom-end\">\n <el-button icon=\"el-icon-delete\" circle size=\"mini\" class=\"delete-setting-button\" @click=\"removeSetting\"/>\n </el-tooltip>\n </span>\n </el-form-item>\n <el-form-item v-for=\"subSetting in setting.children\" :key=\"subSetting.key\">\n <inputs\n :setting-group=\"settingGroup\"\n :setting-parent=\"[...settingParent, subSetting]\"\n :setting=\"subSetting\"\n :data=\"data[setting.key]\"\n :custom-label-width=\"isMobile ? '100px' : '120px'\"\n :label-class=\"subSetting.type === 'keyword' ? 'center-label' : ''\"\n :margin=\"isDesktop ? margin + 15 : margin + 8\"\n :nested=\"true\"/>\n </el-form-item>\n </div>\n <el-form-item v-if=\"setting.type !== 'keyword'\" :label-width=\"customLabelWidth\" :class=\"labelClass\" :style=\"isDesktop ? '' : `margin-left:${margin}px`\">\n <span slot=\"label\">\n {{ setting.label }}\n <el-tooltip v-if=\"canBeDeleted && (isDesktop || isMobile)\" :content=\"$t('settings.removeFromDB')\" placement=\"bottom-end\">\n <el-button icon=\"el-icon-delete\" circle size=\"mini\" class=\"delete-setting-button\" @click=\"removeSetting\"/>\n </el-tooltip>\n </span>\n <div class=\"input-row\">\n <image-upload-input\n v-if=\"isImageUrl\"\n :data=\"data\"\n :setting-group=\"settingGroup\"\n :setting=\"setting\"\n :input-value=\"inputValue\"\n @change=\"update($event, settingGroup.group, settingGroup.key, settingParent, setting.key, setting.type, nested)\"\n />\n <el-input\n v-if=\"textareaInput\"\n :value=\"inputValue\"\n :placeholder=\"setting.suggestions ? setting.suggestions[0] : null\"\n :data-search=\"setting.key || setting.group\"\n type=\"textarea\"\n class=\"input\"\n @input=\"update($event, settingGroup.group, settingGroup.key, settingParent, setting.key, setting.type, nested)\"/>\n <el-input\n v-else-if=\"setting.type === 'string' ||\n (Array.isArray(setting.type) && setting.type.includes('string') && setting.type.includes('atom'))\"\n :value=\"inputValue\"\n :placeholder=\"setting.suggestions ? setting.suggestions[0] : null\"\n :data-search=\"setting.key || setting.group\"\n class=\"input\"\n @input=\"update($event, settingGroup.group, settingGroup.key, settingParent, setting.key, setting.type, nested)\"/>\n <el-switch\n v-if=\"setting.type === 'boolean' && ![':registrations_open', ':invites_enabled'].includes(setting.key)\"\n :value=\"inputValue\"\n :data-search=\"setting.key || setting.group\"\n class=\"switch-input\"\n @change=\"update($event, settingGroup.group, settingGroup.key, settingParent, setting.key, setting.type, nested)\"/>\n <el-input-number\n v-if=\"setting.type === 'integer'\"\n :value=\"inputValue === null ? undefined : inputValue\"\n :placeholder=\"setting.suggestions ? setting.suggestions[0].toString() : null\"\n :min=\"0\"\n :size=\"isDesktop ? 'large' : 'medium'\"\n :data-search=\"setting.key || setting.group\"\n @change=\"update($event, settingGroup.group, settingGroup.key, settingParent, setting.key, setting.type, nested)\"/>\n <el-select\n v-if=\"renderSingleSelect(setting.type)\"\n :value=\"inputValue === false ? 'false' : inputValue\"\n :data-search=\"setting.key || setting.group\"\n clearable\n class=\"input\"\n @change=\"update($event, settingGroup.group, settingGroup.key, settingParent, setting.key, setting.type, nested)\">\n <el-option\n v-for=\"(option, index) in setting.suggestions\"\n :value=\"option\"\n :key=\"index\"/>\n </el-select>\n <el-select\n v-if=\"renderMultipleSelect(setting.type)\"\n :value=\"inputValue\"\n :data-search=\"setting.key || setting.group\"\n multiple\n filterable\n allow-create\n class=\"input\"\n @change=\"update($event, settingGroup.group, settingGroup.key, settingParent, setting.key, setting.type, nested)\">\n <el-option v-for=\"(option, index) in setting.suggestions\" :key=\"index\" :value=\"option\"/>\n </el-select>\n <el-input\n v-if=\"setting.key === ':ip'\"\n :value=\"inputValue\"\n :data-search=\"setting.key || setting.group\"\n placeholder=\"xxx.xxx.xxx.xx\"\n class=\"input\"\n @input=\"update($event, settingGroup.group, settingGroup.key, settingParent, setting.key, setting.type, nested)\"/>\n <el-input\n v-if=\"setting.type === 'atom'\"\n :value=\"inputValue\"\n :placeholder=\"setting.suggestions && setting.suggestions[0] ? setting.suggestions[0].substr(1) : ''\"\n :data-search=\"setting.key || setting.group\"\n class=\"input\"\n @input=\"update($event, settingGroup.group, settingGroup.key, settingParent, setting.key, setting.type, nested)\">\n <template slot=\"prepend\">:</template>\n </el-input>\n <!-- special inputs -->\n <editable-keyword-input v-if=\"editableKeyword(setting.key, setting.type)\" :data=\"keywordData\" :setting-group=\"settingGroup\" :setting=\"setting\" :parents=\"settingParent\"/>\n <icons-input v-if=\"setting.key === ':icons'\" :data=\"iconsData\" :setting-group=\"settingGroup\" :setting=\"setting\"/>\n <boolean-combined-input v-if=\"booleanCombinedInput\" :data=\"data\" :setting-group=\"settingGroup\" :setting=\"setting\"/>\n <mascots-input v-if=\"setting.key === ':mascots'\" :data=\"keywordData\" :setting-group=\"settingGroup\" :setting=\"setting\"/>\n <proxy-url-input v-if=\"setting.key === ':proxy_url'\" :data=\"data[setting.key]\" :setting-group=\"settingGroup\" :setting=\"setting\" :parents=\"settingParent\"/>\n <prune-input v-if=\"setting.key === ':prune'\" :data=\"data[setting.key]\" :setting-group=\"settingGroup\" :setting=\"setting\"/>\n <rate-limit-input v-if=\"settingGroup.key === ':rate_limit'\" :data=\"data\" :setting-group=\"settingGroup\" :setting=\"setting\"/>\n <reg-invites-input v-if=\"[':registrations_open', ':invites_enabled'].includes(setting.key)\" :data=\"data\" :setting-group=\"settingGroup\" :setting=\"setting\"/>\n <select-input-with-reduced-labels v-if=\"reducedSelects\" :data=\"data\" :setting-group=\"settingGroup\" :setting=\"setting\"/>\n <specific-multiple-select v-if=\"setting.key === ':backends' || setting.key === ':args'\" :data=\"data\" :setting-group=\"settingGroup\" :setting=\"setting\"/>\n <sender-input v-if=\"senderInput(setting)\" :data=\"data[setting.key]\" :setting-group=\"settingGroup\" :setting=\"setting\" :parents=\"settingParent\"/>\n <!-------------------->\n <el-tooltip v-if=\"canBeDeleted && isTablet\" :content=\"$t('settings.removeFromDB')\" placement=\"bottom-end\" class=\"delete-setting-button-container\">\n <el-button icon=\"el-icon-delete\" circle size=\"mini\" class=\"delete-setting-button\" @click=\"removeSetting\"/>\n </el-tooltip>\n </div>\n <div\n v-if=\"setting.description && setting.type !== 'keyword'\"\n class=\"expl\"\n v-html=\"getFormattedDescription(setting.description)\"/>\n </el-form-item>\n </div>\n</template>\n\n<script>\nimport i18n from '@/lang'\nimport {\n EditableKeywordInput,\n IconsInput,\n ImageUploadInput,\n BooleanCombinedInput,\n MascotsInput,\n ProxyUrlInput,\n PruneInput,\n RateLimitInput,\n RegInvitesInput,\n SelectInputWithReducedLabels,\n SenderInput,\n SpecificMultipleSelect } from './inputComponents'\nimport { getBooleanValue, processNested } from '@/store/modules/normalizers'\nimport _ from 'lodash'\nimport marked from 'marked'\n\nexport default {\n name: 'Inputs',\n components: {\n EditableKeywordInput,\n IconsInput,\n ImageUploadInput,\n BooleanCombinedInput,\n MascotsInput,\n ProxyUrlInput,\n PruneInput,\n RateLimitInput,\n RegInvitesInput,\n SelectInputWithReducedLabels,\n SenderInput,\n SpecificMultipleSelect\n },\n props: {\n customLabelWidth: {\n type: String,\n default: function() {\n return this.labelWidth\n },\n required: false\n },\n data: {\n type: [Object, Array],\n default: function() {\n return {}\n }\n },\n labelClass: {\n type: String,\n default: function() {\n return 'label'\n },\n required: false\n },\n margin: {\n type: Number,\n default: function() {\n return 0\n },\n required: false\n },\n nested: {\n type: Boolean,\n default: function() {\n return false\n }\n },\n setting: {\n type: Object,\n default: function() {\n return {}\n }\n },\n settingGroup: {\n type: Object,\n default: function() {\n return {}\n }\n },\n settingParent: {\n type: Array,\n default: function() {\n return []\n },\n required: false\n }\n },\n computed: {\n booleanCombinedInput() {\n return Array.isArray(this.setting.type) && this.setting.type.includes('boolean')\n },\n canBeDeleted() {\n const { group, key } = this.settingGroup\n return _.get(this.$store.state.settings.db, [group, key]) &&\n this.$store.state.settings.db[group][key].includes(this.setting.key)\n },\n iconsData() {\n return Array.isArray(this.data) ? this.data : []\n },\n inputValue() {\n if ([':esshd', ':cors_plug', ':quack', ':tesla', ':swoosh'].includes(this.settingGroup.group) &&\n this.data[this.setting.key]) {\n return this.setting.type === 'atom' && this.data[this.setting.key].value[0] === ':'\n ? this.data[this.setting.key].value.substr(1)\n : this.data[this.setting.key].value\n } else if ((this.settingGroup.group === ':logger' && this.setting.key === ':backends') ||\n this.setting.key === 'Pleroma.Web.Auth.Authenticator' ||\n this.setting.key === ':admin_token') {\n return this.data.value\n } else if (this.settingGroup.group === ':mime' && this.settingParent[0].key === ':types') {\n return this.data.value ? this.data.value[this.setting.key] : []\n } else if (this.setting.type === 'atom') {\n return this.data[this.setting.key] && this.data[this.setting.key][0] === ':' ? this.data[this.setting.key].substr(1) : this.data[this.setting.key]\n } else if (Array.isArray(this.setting.type) &&\n this.setting.type.find(el => Array.isArray(el) && el.includes('list'))) {\n return typeof this.data[this.setting.key] === 'string' ? [this.data[this.setting.key]] : this.data[this.setting.key]\n } else {\n return this.data[this.setting.key]\n }\n },\n isDesktop() {\n return this.$store.state.app.device === 'desktop'\n },\n isMobile() {\n return this.$store.state.app.device === 'mobile'\n },\n isTablet() {\n return this.$store.state.app.device === 'tablet'\n },\n labelWidth() {\n if (this.isMobile) {\n return '120px'\n } else if (this.isTablet) {\n return '200px'\n } else {\n return '280px'\n }\n },\n keywordData() {\n if (this.settingParent.length > 0 ||\n (Array.isArray(this.setting.type) && this.setting.type.includes('tuple') && this.setting.type.includes('list'))) {\n return Array.isArray(this.data[this.setting.key]) ? this.data[this.setting.key] : []\n }\n return Array.isArray(this.data) ? this.data : []\n },\n reducedSelects() {\n return [\n ':filters',\n ':uploader',\n ':federation_publisher_modules',\n ':scrub_policy',\n ':ttl_setters',\n ':parsers',\n ':providers',\n ':method',\n ':policies',\n 'Pleroma.Web.Auth.Authenticator'\n ].includes(this.setting.key) ||\n (this.settingGroup.key === 'Pleroma.Emails.Mailer' && this.setting.key === ':adapter')\n },\n settings() {\n return this.$store.state.settings.settings\n },\n textareaInput() {\n return this.settingGroup.key === ':welcome' && this.setting.key === ':message'\n },\n updatedSettings() {\n return this.$store.state.settings.updatedSettings\n },\n isImageUrl() {\n return Array.isArray(this.setting.type) && this.setting.type.includes('image')\n }\n },\n methods: {\n editableKeyword(key, type) {\n return Array.isArray(type) && (\n (type.includes('map') && type.includes('string')) ||\n (type.includes('map') && type.findIndex(el => el.includes('list') && el.includes('string')) !== -1) ||\n (type.includes('keyword') && type.includes('integer')) ||\n (type.includes('keyword') && type.includes('string')) ||\n (type.includes('tuple') && type.includes('list')) ||\n (type.includes('keyword') && type.findIndex(el => el.includes('list') && el.includes('string')) !== -1)\n )\n },\n getFormattedDescription(desc) {\n return marked(desc)\n },\n processNestedData(value, group, parentKey, parents) {\n const { valueForState,\n valueForUpdatedSettings,\n setting } = processNested(value, value, group, parentKey, parents.reverse(), this.settings, this.updatedSettings)\n\n this.$store.dispatch('UpdateSettings',\n { group, key: parentKey, input: setting.key, value: valueForUpdatedSettings, type: setting.type })\n this.$store.dispatch('UpdateState',\n { group, key: parentKey, input: setting.key, value: valueForState })\n },\n async removeSetting() {\n this.$confirm(\n this.$t('settings.removeSettingConfirmation'),\n {\n confirmButtonText: this.$t('users.ok'),\n cancelButtonText: this.$t('users.cancel'),\n type: 'warning'\n }).then(async() => {\n const config = this.settingGroup.key\n ? [{ group: this.settingGroup.group, key: this.settingGroup.key, delete: true, subkeys: [this.setting.key] }]\n : [{ group: this.settingGroup.group, key: this.setting.key, delete: true }]\n try {\n await this.$store.dispatch('RemoveSetting', config)\n } catch (e) {\n return\n }\n this.$message({\n type: 'success',\n message: i18n.t('settings.successfullyRemoved')\n })\n }).catch(() => {\n this.$message({\n type: 'info',\n message: this.$t('users.canceled')\n })\n })\n },\n renderMultipleSelect(type) {\n return !this.reducedSelects && Array.isArray(type) && this.setting.key !== ':backends' && this.setting.key !== ':args' && (\n this.setting.key === ':ip_whitelist' ||\n type.includes('module') ||\n (type.includes('list') && type.includes('string')) ||\n (type.includes('list') && type.includes('atom')) ||\n (!type.includes('keyword') && type.includes('regex') && type.includes('string'))\n )\n },\n renderSingleSelect(type) {\n return !this.reducedSelects && (\n type === 'module' ||\n (Array.isArray(type) && type.includes('atom') && type.includes('dropdown'))\n )\n },\n senderInput({ key, type }) {\n return Array.isArray(type) && type.includes('string') && type.includes('tuple') && key === ':sender'\n },\n update(value, group, key, parents, input, type, nested) {\n const updatedValue = this.renderSingleSelect(type) ? getBooleanValue(value) : value\n nested\n ? this.processNestedData(updatedValue, group, key, parents)\n : this.updateSetting(updatedValue, group, key, input, type)\n },\n updateSetting(value, group, key, input, type) {\n this.$store.dispatch('UpdateSettings', { group, key, input, value, type })\n this.$store.dispatch('UpdateState', { group, key, input, value })\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\n@import '../../styles/settings';\n@include settings\n</style>\n","const rules = [{\n name: 'renderIfNotEqual',\n key: ':proxy_remote',\n groupKey: 'Pleroma.Upload',\n group: ':pleroma',\n targetKey: ':uploader',\n targetGroup: 'Pleroma.Upload',\n notEqual: 'Pleroma.Uploaders.Local'\n}]\n\nconst renderIfNotEqual = (state, { group, groupKey, targetKey, notEqual }) => {\n return state[group][groupKey][targetKey] !== notEqual\n}\n\nconst rulesMap = {\n renderIfNotEqual\n}\n\nexport const settingFollowsRules = (settingKey, settingGroupKey, state) => {\n const rule = rules.find(rule => rule.groupKey === settingGroupKey && rule.key === settingKey)\n if (!rule) return true\n\n const ruleFn = rulesMap[rule.name]\n if (!ruleFn) return true\n return ruleFn(state, rule)\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Setting.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Setting.vue?vue&type=script&lang=js&\"","<template>\n <div v-if=\"!loading\">\n <el-form-item v-if=\"settingGroup.label || settingGroup.description\" :data-search=\"settingGroup.key || settingGroup.group\" class=\"description-container\">\n <span v-if=\"settingGroup.label\" class=\"setting-label\">{{ settingGroup.label }}</span>\n <span v-if=\"settingGroup.description\" class=\"expl no-top-margin\" v-html=\"getFormattedDescription(settingGroup.description)\"/>\n </el-form-item>\n <div v-if=\"settingGroup.key === 'Pleroma.Emails.Mailer'\">\n <div v-for=\"setting in settingGroup.children.filter(setting => !setting.group)\" :key=\"setting.key\">\n <inputs\n v-if=\"followsRules(setting.key, settingGroup.key, state)\"\n :setting-group=\"settingGroup\"\n :setting=\"setting\"\n :data=\"data\"/>\n </div>\n <div\n v-for=\"setting in emailAdapterChildren\"\n :key=\"setting.key\">\n <inputs\n v-if=\"followsRules(setting.key, settingGroup.key, state)\"\n :setting-group=\"settingGroup\"\n :setting=\"setting\"\n :data=\"data\"/>\n </div>\n </div>\n <div v-else>\n <div v-for=\"setting in settingGroup.children\" :key=\"setting.key\">\n <div v-if=\"!compound(setting)\">\n <inputs\n v-if=\"followsRules(setting.key, settingGroup.key, state)\"\n :setting-group=\"settingGroup\"\n :setting=\"setting\"\n :data=\"data\"\n :nested=\"false\"/>\n </div>\n <div v-if=\"compound(setting)\">\n <el-divider v-if=\"divideSetting(setting.key)\" class=\"divider\"/>\n <div v-if=\"!setting.children\">\n <inputs\n v-if=\"followsRules(setting.key, settingGroup.key, state)\"\n :setting-group=\"settingGroup\"\n :setting=\"setting\"\n :data=\"data[setting.key]\"\n :nested=\"true\"/>\n </div>\n <div v-else>\n <div class=\"input-container\">\n <el-form-item :data-search=\"setting.key || setting.group\" class=\"grouped-settings-header\">\n <span slot=\"label\">\n <el-tooltip v-if=\"isDesktop && canBeDeleted(setting.key)\" :content=\"$t('settings.removeFromDB')\" placement=\"bottom-end\">\n <el-button icon=\"el-icon-delete\" circle size=\"mini\" style=\"margin-left:5px\" @click=\"removeSetting(setting.key)\"/>\n </el-tooltip>\n </span>\n <span class=\"label-font\">{{ setting.label }}</span>\n <el-tooltip v-if=\"canBeDeleted(setting.key) && (isMobile || isTablet)\" :content=\"$t('settings.removeFromDB')\" placement=\"bottom-end\">\n <el-button icon=\"el-icon-delete\" circle size=\"mini\" class=\"settings-delete-button\" @click=\"removeSetting(setting.key)\"/>\n </el-tooltip>\n </el-form-item>\n </div>\n <div v-for=\"subSetting in setting.children\" :key=\"subSetting.key\">\n <inputs\n :setting-group=\"settingGroup\"\n :setting-parent=\"[setting, subSetting]\"\n :setting=\"subSetting\"\n :data=\"data[setting.key]\"\n :nested=\"true\"/>\n </div>\n </div>\n <el-divider v-if=\"notLastInGroup(setting.key)\" class=\"divider\"/>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport Inputs from './Inputs'\nimport i18n from '@/lang'\nimport _ from 'lodash'\nimport marked from 'marked'\nimport { settingFollowsRules } from '../rules'\n\nexport default {\n name: 'Setting',\n components: {\n Inputs\n },\n props: {\n settingGroup: {\n type: Object,\n default: function() {\n return {}\n }\n },\n data: {\n type: Object,\n default: function() {\n return {}\n }\n }\n },\n computed: {\n emailAdapterChildren() {\n const adapter = this.$store.state.settings.settings[':pleroma']['Pleroma.Emails.Mailer'][':adapter']\n return this.settingGroup.children.filter(child => child.group && child.group.includes(adapter))\n },\n isDesktop() {\n return this.$store.state.app.device === 'desktop'\n },\n isMobile() {\n return this.$store.state.app.device === 'mobile'\n },\n isTablet() {\n return this.$store.state.app.device === 'tablet'\n },\n loading() {\n return this.$store.state.settings.loading\n },\n state() {\n return this.$store.state.settings.settings\n }\n },\n methods: {\n canBeDeleted(settingKey) {\n const { group, key } = this.settingGroup\n const existingKey = key || settingKey\n return _.get(this.$store.state.settings.db, [group, existingKey]) &&\n this.$store.state.settings.db[group][existingKey].includes(settingKey)\n },\n compound({ type, key, children }) {\n return type === 'keyword' ||\n type === 'map' ||\n type.includes('keyword') ||\n type.includes('map')\n },\n divideSetting(key) {\n return [':sslopts', ':tlsopts', ':adapter', ':poll_limits', ':queues', ':styling', ':invalidation', ':multi_factor_authentication'].includes(key)\n },\n followsRules(setting, settingGroup, state) {\n return settingFollowsRules(setting, settingGroup, state)\n },\n getFormattedDescription(desc) {\n return marked(desc)\n },\n notLastInGroup(key) {\n return this.settingGroup.children.slice(-1)[0].key !== key\n },\n async removeSetting(key) {\n this.$confirm(\n this.$t('settings.removeSettingConfirmation'),\n {\n confirmButtonText: this.$t('users.ok'),\n cancelButtonText: this.$t('users.cancel'),\n type: 'warning'\n }).then(async() => {\n const config = this.settingGroup.key\n ? [{ group: this.settingGroup.group, key: this.settingGroup.key, delete: true, subkeys: [key] }]\n : [{ group: this.settingGroup.group, key, delete: true }]\n try {\n await this.$store.dispatch('RemoveSetting', config)\n } catch (e) {\n return\n }\n this.$message({\n type: 'success',\n message: i18n.t('settings.successfullyRemoved')\n })\n }).catch(() => {\n this.$message({\n type: 'info',\n message: this.$t('users.canceled')\n })\n })\n },\n updateSetting(value, tab, input) {\n this.$store.dispatch('UpdateSettings', { tab, data: { [input]: value }})\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\n@import '../../styles/settings';\n@include settings\n</style>\n","import { render, staticRenderFns } from \"./Inputs.vue?vue&type=template&id=1a86fd03&\"\nimport script from \"./Inputs.vue?vue&type=script&lang=js&\"\nexport * from \"./Inputs.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Inputs.vue?vue&type=style&index=0&id=1a86fd03&prod&rel=stylesheet%2Fscss&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"input-container\"},[(_vm.setting.type === 'keyword')?_c('div',{staticClass:\"keyword-container\"},[_c('el-form-item',{class:_vm.labelClass,style:(`margin-left:${_vm.margin}px;margin-bottom:0`),attrs:{\"label-width\":_vm.customLabelWidth,\"data-search\":_vm.setting.key || _vm.setting.group}},[_c('span',{attrs:{\"slot\":\"label\"},slot:\"label\"},[_vm._v(\"\\n \"+_vm._s(_vm.setting.label)+\"\\n \"),(_vm.canBeDeleted && _vm.isDesktop)?_c('el-tooltip',{attrs:{\"content\":_vm.$t('settings.removeFromDB'),\"placement\":\"bottom-end\"}},[_c('el-button',{staticClass:\"delete-setting-button\",attrs:{\"icon\":\"el-icon-delete\",\"circle\":\"\",\"size\":\"mini\"},on:{\"click\":_vm.removeSetting}})],1):_vm._e()],1)]),_vm._v(\" \"),_vm._l((_vm.setting.children),function(subSetting){return _c('el-form-item',{key:subSetting.key},[_c('inputs',{attrs:{\"setting-group\":_vm.settingGroup,\"setting-parent\":[..._vm.settingParent, subSetting],\"setting\":subSetting,\"data\":_vm.data[_vm.setting.key],\"custom-label-width\":_vm.isMobile ? '100px' : '120px',\"label-class\":subSetting.type === 'keyword' ? 'center-label' : '',\"margin\":_vm.isDesktop ? _vm.margin + 15 : _vm.margin + 8,\"nested\":true}})],1)})],2):_vm._e(),_vm._v(\" \"),(_vm.setting.type !== 'keyword')?_c('el-form-item',{class:_vm.labelClass,style:(_vm.isDesktop ? '' : `margin-left:${_vm.margin}px`),attrs:{\"label-width\":_vm.customLabelWidth}},[_c('span',{attrs:{\"slot\":\"label\"},slot:\"label\"},[_vm._v(\"\\n \"+_vm._s(_vm.setting.label)+\"\\n \"),(_vm.canBeDeleted && (_vm.isDesktop || _vm.isMobile))?_c('el-tooltip',{attrs:{\"content\":_vm.$t('settings.removeFromDB'),\"placement\":\"bottom-end\"}},[_c('el-button',{staticClass:\"delete-setting-button\",attrs:{\"icon\":\"el-icon-delete\",\"circle\":\"\",\"size\":\"mini\"},on:{\"click\":_vm.removeSetting}})],1):_vm._e()],1),_vm._v(\" \"),_c('div',{staticClass:\"input-row\"},[(_vm.isImageUrl)?_c('image-upload-input',{attrs:{\"data\":_vm.data,\"setting-group\":_vm.settingGroup,\"setting\":_vm.setting,\"input-value\":_vm.inputValue},on:{\"change\":function($event){return _vm.update($event, _vm.settingGroup.group, _vm.settingGroup.key, _vm.settingParent, _vm.setting.key, _vm.setting.type, _vm.nested)}}}):_vm._e(),_vm._v(\" \"),(_vm.textareaInput)?_c('el-input',{staticClass:\"input\",attrs:{\"value\":_vm.inputValue,\"placeholder\":_vm.setting.suggestions ? _vm.setting.suggestions[0] : null,\"data-search\":_vm.setting.key || _vm.setting.group,\"type\":\"textarea\"},on:{\"input\":function($event){return _vm.update($event, _vm.settingGroup.group, _vm.settingGroup.key, _vm.settingParent, _vm.setting.key, _vm.setting.type, _vm.nested)}}}):(_vm.setting.type === 'string' ||\n (Array.isArray(_vm.setting.type) && _vm.setting.type.includes('string') && _vm.setting.type.includes('atom')))?_c('el-input',{staticClass:\"input\",attrs:{\"value\":_vm.inputValue,\"placeholder\":_vm.setting.suggestions ? _vm.setting.suggestions[0] : null,\"data-search\":_vm.setting.key || _vm.setting.group},on:{\"input\":function($event){return _vm.update($event, _vm.settingGroup.group, _vm.settingGroup.key, _vm.settingParent, _vm.setting.key, _vm.setting.type, _vm.nested)}}}):_vm._e(),_vm._v(\" \"),(_vm.setting.type === 'boolean' && ![':registrations_open', ':invites_enabled'].includes(_vm.setting.key))?_c('el-switch',{staticClass:\"switch-input\",attrs:{\"value\":_vm.inputValue,\"data-search\":_vm.setting.key || _vm.setting.group},on:{\"change\":function($event){return _vm.update($event, _vm.settingGroup.group, _vm.settingGroup.key, _vm.settingParent, _vm.setting.key, _vm.setting.type, _vm.nested)}}}):_vm._e(),_vm._v(\" \"),(_vm.setting.type === 'integer')?_c('el-input-number',{attrs:{\"value\":_vm.inputValue === null ? undefined : _vm.inputValue,\"placeholder\":_vm.setting.suggestions ? _vm.setting.suggestions[0].toString() : null,\"min\":0,\"size\":_vm.isDesktop ? 'large' : 'medium',\"data-search\":_vm.setting.key || _vm.setting.group},on:{\"change\":function($event){return _vm.update($event, _vm.settingGroup.group, _vm.settingGroup.key, _vm.settingParent, _vm.setting.key, _vm.setting.type, _vm.nested)}}}):_vm._e(),_vm._v(\" \"),(_vm.renderSingleSelect(_vm.setting.type))?_c('el-select',{staticClass:\"input\",attrs:{\"value\":_vm.inputValue === false ? 'false' : _vm.inputValue,\"data-search\":_vm.setting.key || _vm.setting.group,\"clearable\":\"\"},on:{\"change\":function($event){return _vm.update($event, _vm.settingGroup.group, _vm.settingGroup.key, _vm.settingParent, _vm.setting.key, _vm.setting.type, _vm.nested)}}},_vm._l((_vm.setting.suggestions),function(option,index){return _c('el-option',{key:index,attrs:{\"value\":option}})}),1):_vm._e(),_vm._v(\" \"),(_vm.renderMultipleSelect(_vm.setting.type))?_c('el-select',{staticClass:\"input\",attrs:{\"value\":_vm.inputValue,\"data-search\":_vm.setting.key || _vm.setting.group,\"multiple\":\"\",\"filterable\":\"\",\"allow-create\":\"\"},on:{\"change\":function($event){return _vm.update($event, _vm.settingGroup.group, _vm.settingGroup.key, _vm.settingParent, _vm.setting.key, _vm.setting.type, _vm.nested)}}},_vm._l((_vm.setting.suggestions),function(option,index){return _c('el-option',{key:index,attrs:{\"value\":option}})}),1):_vm._e(),_vm._v(\" \"),(_vm.setting.key === ':ip')?_c('el-input',{staticClass:\"input\",attrs:{\"value\":_vm.inputValue,\"data-search\":_vm.setting.key || _vm.setting.group,\"placeholder\":\"xxx.xxx.xxx.xx\"},on:{\"input\":function($event){return _vm.update($event, _vm.settingGroup.group, _vm.settingGroup.key, _vm.settingParent, _vm.setting.key, _vm.setting.type, _vm.nested)}}}):_vm._e(),_vm._v(\" \"),(_vm.setting.type === 'atom')?_c('el-input',{staticClass:\"input\",attrs:{\"value\":_vm.inputValue,\"placeholder\":_vm.setting.suggestions && _vm.setting.suggestions[0] ? _vm.setting.suggestions[0].substr(1) : '',\"data-search\":_vm.setting.key || _vm.setting.group},on:{\"input\":function($event){return _vm.update($event, _vm.settingGroup.group, _vm.settingGroup.key, _vm.settingParent, _vm.setting.key, _vm.setting.type, _vm.nested)}}},[_c('template',{slot:\"prepend\"},[_vm._v(\":\")])],2):_vm._e(),_vm._v(\" \"),(_vm.editableKeyword(_vm.setting.key, _vm.setting.type))?_c('editable-keyword-input',{attrs:{\"data\":_vm.keywordData,\"setting-group\":_vm.settingGroup,\"setting\":_vm.setting,\"parents\":_vm.settingParent}}):_vm._e(),_vm._v(\" \"),(_vm.setting.key === ':icons')?_c('icons-input',{attrs:{\"data\":_vm.iconsData,\"setting-group\":_vm.settingGroup,\"setting\":_vm.setting}}):_vm._e(),_vm._v(\" \"),(_vm.booleanCombinedInput)?_c('boolean-combined-input',{attrs:{\"data\":_vm.data,\"setting-group\":_vm.settingGroup,\"setting\":_vm.setting}}):_vm._e(),_vm._v(\" \"),(_vm.setting.key === ':mascots')?_c('mascots-input',{attrs:{\"data\":_vm.keywordData,\"setting-group\":_vm.settingGroup,\"setting\":_vm.setting}}):_vm._e(),_vm._v(\" \"),(_vm.setting.key === ':proxy_url')?_c('proxy-url-input',{attrs:{\"data\":_vm.data[_vm.setting.key],\"setting-group\":_vm.settingGroup,\"setting\":_vm.setting,\"parents\":_vm.settingParent}}):_vm._e(),_vm._v(\" \"),(_vm.setting.key === ':prune')?_c('prune-input',{attrs:{\"data\":_vm.data[_vm.setting.key],\"setting-group\":_vm.settingGroup,\"setting\":_vm.setting}}):_vm._e(),_vm._v(\" \"),(_vm.settingGroup.key === ':rate_limit')?_c('rate-limit-input',{attrs:{\"data\":_vm.data,\"setting-group\":_vm.settingGroup,\"setting\":_vm.setting}}):_vm._e(),_vm._v(\" \"),([':registrations_open', ':invites_enabled'].includes(_vm.setting.key))?_c('reg-invites-input',{attrs:{\"data\":_vm.data,\"setting-group\":_vm.settingGroup,\"setting\":_vm.setting}}):_vm._e(),_vm._v(\" \"),(_vm.reducedSelects)?_c('select-input-with-reduced-labels',{attrs:{\"data\":_vm.data,\"setting-group\":_vm.settingGroup,\"setting\":_vm.setting}}):_vm._e(),_vm._v(\" \"),(_vm.setting.key === ':backends' || _vm.setting.key === ':args')?_c('specific-multiple-select',{attrs:{\"data\":_vm.data,\"setting-group\":_vm.settingGroup,\"setting\":_vm.setting}}):_vm._e(),_vm._v(\" \"),(_vm.senderInput(_vm.setting))?_c('sender-input',{attrs:{\"data\":_vm.data[_vm.setting.key],\"setting-group\":_vm.settingGroup,\"setting\":_vm.setting,\"parents\":_vm.settingParent}}):_vm._e(),_vm._v(\" \"),(_vm.canBeDeleted && _vm.isTablet)?_c('el-tooltip',{staticClass:\"delete-setting-button-container\",attrs:{\"content\":_vm.$t('settings.removeFromDB'),\"placement\":\"bottom-end\"}},[_c('el-button',{staticClass:\"delete-setting-button\",attrs:{\"icon\":\"el-icon-delete\",\"circle\":\"\",\"size\":\"mini\"},on:{\"click\":_vm.removeSetting}})],1):_vm._e()],1),_vm._v(\" \"),(_vm.setting.description && _vm.setting.type !== 'keyword')?_c('div',{staticClass:\"expl\",domProps:{\"innerHTML\":_vm._s(_vm.getFormattedDescription(_vm.setting.description))}}):_vm._e()]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./Setting.vue?vue&type=template&id=7d66a2a7&\"\nimport script from \"./Setting.vue?vue&type=script&lang=js&\"\nexport * from \"./Setting.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Setting.vue?vue&type=style&index=0&id=7d66a2a7&prod&rel=stylesheet%2Fscss&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (!_vm.loading)?_c('div',[(_vm.settingGroup.label || _vm.settingGroup.description)?_c('el-form-item',{staticClass:\"description-container\",attrs:{\"data-search\":_vm.settingGroup.key || _vm.settingGroup.group}},[(_vm.settingGroup.label)?_c('span',{staticClass:\"setting-label\"},[_vm._v(_vm._s(_vm.settingGroup.label))]):_vm._e(),_vm._v(\" \"),(_vm.settingGroup.description)?_c('span',{staticClass:\"expl no-top-margin\",domProps:{\"innerHTML\":_vm._s(_vm.getFormattedDescription(_vm.settingGroup.description))}}):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.settingGroup.key === 'Pleroma.Emails.Mailer')?_c('div',[_vm._l((_vm.settingGroup.children.filter(setting => !setting.group)),function(setting){return _c('div',{key:setting.key},[(_vm.followsRules(setting.key, _vm.settingGroup.key, _vm.state))?_c('inputs',{attrs:{\"setting-group\":_vm.settingGroup,\"setting\":setting,\"data\":_vm.data}}):_vm._e()],1)}),_vm._v(\" \"),_vm._l((_vm.emailAdapterChildren),function(setting){return _c('div',{key:setting.key},[(_vm.followsRules(setting.key, _vm.settingGroup.key, _vm.state))?_c('inputs',{attrs:{\"setting-group\":_vm.settingGroup,\"setting\":setting,\"data\":_vm.data}}):_vm._e()],1)})],2):_c('div',_vm._l((_vm.settingGroup.children),function(setting){return _c('div',{key:setting.key},[(!_vm.compound(setting))?_c('div',[(_vm.followsRules(setting.key, _vm.settingGroup.key, _vm.state))?_c('inputs',{attrs:{\"setting-group\":_vm.settingGroup,\"setting\":setting,\"data\":_vm.data,\"nested\":false}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.compound(setting))?_c('div',[(_vm.divideSetting(setting.key))?_c('el-divider',{staticClass:\"divider\"}):_vm._e(),_vm._v(\" \"),(!setting.children)?_c('div',[(_vm.followsRules(setting.key, _vm.settingGroup.key, _vm.state))?_c('inputs',{attrs:{\"setting-group\":_vm.settingGroup,\"setting\":setting,\"data\":_vm.data[setting.key],\"nested\":true}}):_vm._e()],1):_c('div',[_c('div',{staticClass:\"input-container\"},[_c('el-form-item',{staticClass:\"grouped-settings-header\",attrs:{\"data-search\":setting.key || setting.group}},[_c('span',{attrs:{\"slot\":\"label\"},slot:\"label\"},[(_vm.isDesktop && _vm.canBeDeleted(setting.key))?_c('el-tooltip',{attrs:{\"content\":_vm.$t('settings.removeFromDB'),\"placement\":\"bottom-end\"}},[_c('el-button',{staticStyle:{\"margin-left\":\"5px\"},attrs:{\"icon\":\"el-icon-delete\",\"circle\":\"\",\"size\":\"mini\"},on:{\"click\":function($event){return _vm.removeSetting(setting.key)}}})],1):_vm._e()],1),_vm._v(\" \"),_c('span',{staticClass:\"label-font\"},[_vm._v(_vm._s(setting.label))]),_vm._v(\" \"),(_vm.canBeDeleted(setting.key) && (_vm.isMobile || _vm.isTablet))?_c('el-tooltip',{attrs:{\"content\":_vm.$t('settings.removeFromDB'),\"placement\":\"bottom-end\"}},[_c('el-button',{staticClass:\"settings-delete-button\",attrs:{\"icon\":\"el-icon-delete\",\"circle\":\"\",\"size\":\"mini\"},on:{\"click\":function($event){return _vm.removeSetting(setting.key)}}})],1):_vm._e()],1)],1),_vm._v(\" \"),_vm._l((setting.children),function(subSetting){return _c('div',{key:subSetting.key},[_c('inputs',{attrs:{\"setting-group\":_vm.settingGroup,\"setting-parent\":[setting, subSetting],\"setting\":subSetting,\"data\":_vm.data[setting.key],\"nested\":true}})],1)})],2),_vm._v(\" \"),(_vm.notLastInGroup(setting.key))?_c('el-divider',{staticClass:\"divider\"}):_vm._e()],1):_vm._e()])}),0)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div v-if=\"!loading\" :class=\"isSidebarOpen\" class=\"form-container\">\n <el-form :model=\"activitypubData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\" data-search=\":activitypub\">\n <setting :setting-group=\"activitypub\" :data=\"activitypubData\"/>\n </el-form>\n <el-divider v-if=\"user\" class=\"divider thick-line\"/>\n <el-form :model=\"userData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\" data-search=\":user\">\n <setting :setting-group=\"user\" :data=\"userData\"/>\n </el-form>\n <div class=\"submit-button-container\">\n <el-button class=\"submit-button\" type=\"primary\" @click=\"onSubmit\">{{ $t('settings.submit') }}</el-button>\n </div>\n </div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex'\nimport i18n from '@/lang'\nimport Setting from './Setting'\nimport _ from 'lodash'\n\nexport default {\n name: 'ActivityPub',\n components: { Setting },\n computed: {\n ...mapGetters([\n 'settings'\n ]),\n activitypub() {\n return this.settings.description.find(setting => setting.key === ':activitypub')\n },\n activitypubData() {\n return _.get(this.settings.settings, [':pleroma', ':activitypub']) || {}\n },\n isMobile() {\n return this.$store.state.app.device === 'mobile'\n },\n isSidebarOpen() {\n return this.$store.state.app.sidebar.opened ? 'sidebar-opened' : 'sidebar-closed'\n },\n isTablet() {\n return this.$store.state.app.device === 'tablet'\n },\n labelPosition() {\n return this.isMobile ? 'top' : 'right'\n },\n labelWidth() {\n if (this.isMobile) {\n return '120px'\n } else if (this.isTablet) {\n return '200px'\n } else {\n return '280px'\n }\n },\n loading() {\n return this.$store.state.settings.loading\n },\n searchQuery() {\n return this.$store.state.settings.searchQuery\n },\n user() {\n return this.settings.description.find(setting => setting.key === ':user')\n },\n userData() {\n return _.get(this.settings.settings, [':pleroma', ':user']) || {}\n }\n },\n mounted() {\n if (this.searchQuery.length > 0) {\n const selectedSetting = document.querySelector(`[data-search=\"${this.searchQuery}\"]`)\n if (selectedSetting) {\n selectedSetting.scrollIntoView({ block: 'start', behavior: 'smooth' })\n }\n this.$store.dispatch('SetSearchQuery', '')\n }\n },\n methods: {\n async onSubmit() {\n try {\n await this.$store.dispatch('SubmitChanges')\n } catch (e) {\n return\n }\n this.$message({\n type: 'success',\n message: i18n.t('settings.success')\n })\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\n@import '../../styles/settings';\n@include settings\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityPub.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityPub.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ActivityPub.vue?vue&type=template&id=cd32f0a4&\"\nimport script from \"./ActivityPub.vue?vue&type=script&lang=js&\"\nexport * from \"./ActivityPub.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ActivityPub.vue?vue&type=style&index=0&id=cd32f0a4&prod&rel=stylesheet%2Fscss&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (!_vm.loading)?_c('div',{staticClass:\"form-container\",class:_vm.isSidebarOpen},[_c('el-form',{attrs:{\"model\":_vm.activitypubData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth,\"data-search\":\":activitypub\"}},[_c('setting',{attrs:{\"setting-group\":_vm.activitypub,\"data\":_vm.activitypubData}})],1),_vm._v(\" \"),(_vm.user)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e(),_vm._v(\" \"),_c('el-form',{attrs:{\"model\":_vm.userData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth,\"data-search\":\":user\"}},[_c('setting',{attrs:{\"setting-group\":_vm.user,\"data\":_vm.userData}})],1),_vm._v(\" \"),_c('div',{staticClass:\"submit-button-container\"},[_c('el-button',{staticClass:\"submit-button\",attrs:{\"type\":\"primary\"},on:{\"click\":_vm.onSubmit}},[_vm._v(_vm._s(_vm.$t('settings.submit')))])],1)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div v-if=\"!loading\" :class=\"isSidebarOpen\" class=\"form-container\">\n <el-form :model=\"pleromaAuthenticatorData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"pleromaAuthenticator\" :data=\"pleromaAuthenticatorData\"/>\n </el-form>\n <el-divider v-if=\"pleromaAuthenticator\" class=\"divider thick-line\"/>\n <el-form :model=\"authData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"auth\" :data=\"authData\"/>\n </el-form>\n <el-divider v-if=\"auth\" class=\"divider thick-line\"/>\n <el-form :model=\"ldapData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"ldap\" :data=\"ldapData\"/>\n </el-form>\n <el-divider v-if=\"ldap\" class=\"divider thick-line\"/>\n <el-form :model=\"oauth2Data\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"oauth2\" :data=\"oauth2Data\"/>\n </el-form>\n <div class=\"submit-button-container\">\n <el-button class=\"submit-button\" type=\"primary\" @click=\"onSubmit\">{{ $t('settings.submit') }}</el-button>\n </div>\n </div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex'\nimport i18n from '@/lang'\nimport Setting from './Setting'\nimport _ from 'lodash'\n\nexport default {\n name: 'Authentication',\n components: { Setting },\n computed: {\n ...mapGetters([\n 'settings'\n ]),\n auth() {\n return this.settings.description.find(setting => setting.key === ':auth')\n },\n authData() {\n return _.get(this.settings.settings, [':pleroma', ':auth']) || {}\n },\n isMobile() {\n return this.$store.state.app.device === 'mobile'\n },\n isSidebarOpen() {\n return this.$store.state.app.sidebar.opened ? 'sidebar-opened' : 'sidebar-closed'\n },\n isTablet() {\n return this.$store.state.app.device === 'tablet'\n },\n labelPosition() {\n return this.isMobile ? 'top' : 'right'\n },\n labelWidth() {\n if (this.isMobile) {\n return '120px'\n } else if (this.isTablet) {\n return '200px'\n } else {\n return '280px'\n }\n },\n ldap() {\n return this.settings.description.find(setting => setting.key === ':ldap')\n },\n ldapData() {\n return _.get(this.settings.settings, [':pleroma', ':ldap']) || {}\n },\n loading() {\n return this.settings.loading\n },\n oauth2() {\n return this.settings.description.find(setting => setting.key === ':oauth2')\n },\n oauth2Data() {\n return _.get(this.settings.settings, [':pleroma', ':oauth2']) || {}\n },\n pleromaAuthenticator() {\n return this.settings.description.find(setting => setting.children && setting.children[0].key === 'Pleroma.Web.Auth.Authenticator')\n },\n pleromaAuthenticatorData() {\n return _.get(this.settings.settings, [':pleroma', 'Pleroma.Web.Auth.Authenticator']) || {}\n },\n searchQuery() {\n return this.$store.state.settings.searchQuery\n }\n },\n mounted() {\n if (this.searchQuery.length > 0) {\n const selectedSetting = document.querySelector(`[data-search=\"${this.searchQuery}\"]`)\n if (selectedSetting) {\n selectedSetting.scrollIntoView({ block: 'start', behavior: 'smooth' })\n }\n this.$store.dispatch('SetSearchQuery', '')\n }\n },\n methods: {\n async onSubmit() {\n try {\n await this.$store.dispatch('SubmitChanges')\n } catch (e) {\n return\n }\n this.$message({\n type: 'success',\n message: i18n.t('settings.success')\n })\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\n@import '../../styles/settings';\n@include settings\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Authentication.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Authentication.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Authentication.vue?vue&type=template&id=1065d778&\"\nimport script from \"./Authentication.vue?vue&type=script&lang=js&\"\nexport * from \"./Authentication.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Authentication.vue?vue&type=style&index=0&id=1065d778&prod&rel=stylesheet%2Fscss&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (!_vm.loading)?_c('div',{staticClass:\"form-container\",class:_vm.isSidebarOpen},[_c('el-form',{attrs:{\"model\":_vm.pleromaAuthenticatorData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.pleromaAuthenticator,\"data\":_vm.pleromaAuthenticatorData}})],1),_vm._v(\" \"),(_vm.pleromaAuthenticator)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e(),_vm._v(\" \"),_c('el-form',{attrs:{\"model\":_vm.authData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.auth,\"data\":_vm.authData}})],1),_vm._v(\" \"),(_vm.auth)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e(),_vm._v(\" \"),_c('el-form',{attrs:{\"model\":_vm.ldapData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.ldap,\"data\":_vm.ldapData}})],1),_vm._v(\" \"),(_vm.ldap)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e(),_vm._v(\" \"),_c('el-form',{attrs:{\"model\":_vm.oauth2Data,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.oauth2,\"data\":_vm.oauth2Data}})],1),_vm._v(\" \"),_c('div',{staticClass:\"submit-button-container\"},[_c('el-button',{staticClass:\"submit-button\",attrs:{\"type\":\"primary\"},on:{\"click\":_vm.onSubmit}},[_vm._v(_vm._s(_vm.$t('settings.submit')))])],1)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div v-if=\"!loading\" :class=\"isSidebarOpen\" class=\"form-container\">\n <el-form :model=\"captchaData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"captcha\" :data=\"captchaData\"/>\n </el-form>\n <el-divider v-if=\"captcha\" class=\"divider thick-line\"/>\n <el-form :model=\"kocaptchaData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"kocaptcha\" :data=\"kocaptchaData\"/>\n </el-form>\n <div class=\"submit-button-container\">\n <el-button class=\"submit-button\" type=\"primary\" @click=\"onSubmit\">{{ $t('settings.submit') }}</el-button>\n </div>\n </div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex'\nimport i18n from '@/lang'\nimport Setting from './Setting'\nimport _ from 'lodash'\n\nexport default {\n name: 'Captcha',\n components: { Setting },\n computed: {\n ...mapGetters([\n 'settings'\n ]),\n captcha() {\n return this.settings.description.find(setting => setting.key === 'Pleroma.Captcha')\n },\n captchaData() {\n return _.get(this.settings.settings, [':pleroma', 'Pleroma.Captcha']) || {}\n },\n isMobile() {\n return this.$store.state.app.device === 'mobile'\n },\n isSidebarOpen() {\n return this.$store.state.app.sidebar.opened ? 'sidebar-opened' : 'sidebar-closed'\n },\n isTablet() {\n return this.$store.state.app.device === 'tablet'\n },\n kocaptcha() {\n return this.settings.description.find(setting => setting.key === 'Pleroma.Captcha.Kocaptcha')\n },\n kocaptchaData() {\n return _.get(this.settings.settings, [':pleroma', 'Pleroma.Captcha.Kocaptcha']) || {}\n },\n labelPosition() {\n return this.isMobile ? 'top' : 'right'\n },\n labelWidth() {\n if (this.isMobile) {\n return '120px'\n } else if (this.isTablet) {\n return '200px'\n } else {\n return '280px'\n }\n },\n loading() {\n return this.settings.loading\n },\n searchQuery() {\n return this.$store.state.settings.searchQuery\n }\n },\n mounted() {\n if (this.searchQuery.length > 0) {\n const selectedSetting = document.querySelector(`[data-search=\"${this.searchQuery}\"]`)\n if (selectedSetting) {\n selectedSetting.scrollIntoView({ block: 'start', behavior: 'smooth' })\n }\n this.$store.dispatch('SetSearchQuery', '')\n }\n },\n methods: {\n async onSubmit() {\n try {\n await this.$store.dispatch('SubmitChanges')\n } catch (e) {\n return\n }\n this.$message({\n type: 'success',\n message: i18n.t('settings.success')\n })\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\n@import '../../styles/settings';\n@include settings\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Captcha.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Captcha.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Captcha.vue?vue&type=template&id=2bdf6cd2&\"\nimport script from \"./Captcha.vue?vue&type=script&lang=js&\"\nexport * from \"./Captcha.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Captcha.vue?vue&type=style&index=0&id=2bdf6cd2&prod&rel=stylesheet%2Fscss&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (!_vm.loading)?_c('div',{staticClass:\"form-container\",class:_vm.isSidebarOpen},[_c('el-form',{attrs:{\"model\":_vm.captchaData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.captcha,\"data\":_vm.captchaData}})],1),_vm._v(\" \"),(_vm.captcha)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e(),_vm._v(\" \"),_c('el-form',{attrs:{\"model\":_vm.kocaptchaData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.kocaptcha,\"data\":_vm.kocaptchaData}})],1),_vm._v(\" \"),_c('div',{staticClass:\"submit-button-container\"},[_c('el-button',{staticClass:\"submit-button\",attrs:{\"type\":\"primary\"},on:{\"click\":_vm.onSubmit}},[_vm._v(_vm._s(_vm.$t('settings.submit')))])],1)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SingleEmojiEditor.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SingleEmojiEditor.vue?vue&type=script&lang=js&\"","<template>\n <div>\n <div v-if=\"isLocal\" :class=\"isMobile ? 'emoji-container-flex' : 'emoji-container-grid'\">\n <img\n :src=\"addressOfEmojiInPack(host, packName, file)\"\n class=\"emoji-preview-img\">\n <el-input v-model=\"emojiName\" :placeholder=\"$t('emoji.shortcode')\" class=\"emoji-info\"/>\n <el-input v-model=\"emojiFile\" :placeholder=\"$t('emoji.file')\" class=\"emoji-info\"/>\n <div class=\"emoji-buttons\">\n <el-button type=\"primary\" @click=\"update\">{{ $t('emoji.update') }}</el-button>\n <el-button class=\"remove-emoji-button\" @click=\"remove\">{{ $t('emoji.remove') }}</el-button>\n </div>\n </div>\n\n <div v-if=\"!isLocal\" :class=\"isMobile ? 'emoji-container-flex' : 'remote-emoji-container-grid'\">\n <img\n :src=\"addressOfEmojiInPack(remoteInstance, packName, file)\"\n class=\"emoji-preview-img\">\n <el-input :value=\"emojiName\" :placeholder=\"$t('emoji.shortcode')\" class=\"emoji-info\"/>\n <el-input :value=\"emojiFile\" :placeholder=\"$t('emoji.file')\" class=\"emoji-info\"/>\n <el-popover v-model=\"copyPopoverVisible\" placement=\"left-start\" popper-class=\"copy-popover\" class=\"copy-pack-container\">\n <p>{{ $t('emoji.selectLocalPack') }}</p>\n <el-select v-model=\"copyToLocalPackName\" :placeholder=\"$t('emoji.localPack')\" class=\"copy-pack-select\">\n <el-option\n v-for=\"(_pack, name) in localPacks\"\n :key=\"name\"\n :label=\"name\"\n :value=\"name\" />\n </el-select>\n <p>{{ $t('emoji.specifyShortcode') }}</p>\n <el-input v-model=\"copyToShortcode\" :placeholder=\"$t('emoji.leaveEmptyShortcode')\"/>\n <p>{{ $t('emoji.specifyFilename') }}</p>\n <el-input v-model=\"copyToFilename\" :placeholder=\"$t('emoji.leaveEmptyFilename')\"/>\n <el-button\n :disabled=\"!copyToLocalPackName\"\n type=\"primary\"\n class=\"copy-to-local-pack-button\"\n @click=\"copyToLocal\">{{ $t('emoji.copy') }}</el-button>\n <el-button slot=\"reference\" type=\"primary\" class=\"emoji-button\">{{ $t('emoji.copyToLocalPack') }}</el-button>\n </el-popover>\n </div>\n </div>\n</template>\n\n<script>\n\nimport { addressOfEmojiInPack } from '@/api/emojiPacks'\nexport default {\n props: {\n host: {\n type: String,\n required: true\n },\n packName: {\n type: String,\n required: true\n },\n shortcode: {\n type: String,\n required: true\n },\n file: {\n type: String,\n required: true\n },\n isLocal: {\n type: Boolean,\n required: true\n }\n },\n data() {\n return {\n newShortcode: null,\n newFile: null,\n copyToLocalPackName: null,\n copyPopoverVisible: false,\n copyToShortcode: '',\n copyToFilename: ''\n }\n },\n computed: {\n emojiName: {\n get() {\n // Return a modified shortcode if it was modified, otherwise return the old shortcode\n return this.newShortcode !== null ? this.newShortcode : this.shortcode\n },\n set(val) { this.newShortcode = val }\n },\n emojiFile: {\n get() {\n // Return a modified file name if it was modified, otherwise return the old file name\n return this.newFile !== null ? this.newFile : this.file\n },\n set(val) { this.newFile = val }\n },\n isDesktop() {\n return this.$store.state.app.device === 'desktop'\n },\n isMobile() {\n return this.$store.state.app.device === 'mobile'\n },\n localPacks() {\n return this.$store.state.emojiPacks.localPacks\n },\n remoteInstance() {\n return this.$store.state.emojiPacks.remoteInstance\n }\n },\n methods: {\n async update() {\n try {\n this.$store.dispatch('UpdateEmojiFile', {\n packName: this.packName,\n shortcode: this.shortcode,\n newShortcode: this.emojiName,\n newFilename: this.emojiFile,\n force: true\n })\n } catch (e) {\n return\n }\n this.newShortcode = null\n this.newFile = null\n\n this.$store.dispatch('ReloadEmoji')\n },\n remove() {\n this.$confirm('This will delete the emoji, are you sure?', 'Warning', {\n confirmButtonText: 'Yes, delete the emoji',\n cancelButtonText: 'No, leave it be',\n type: 'warning'\n }).then(() => {\n this.$store.dispatch('DeleteEmojiFile', {\n packName: this.packName,\n shortcode: this.shortcode\n }).then(() => {\n this.newShortcode = null\n this.newFile = null\n\n this.$store.dispatch('ReloadEmoji')\n })\n })\n },\n copyToLocal() {\n try {\n this.$store.dispatch('AddNewEmojiFile', {\n packName: this.copyToLocalPackName,\n file: this.addressOfEmojiInPack(this.remoteInstance, this.packName, this.file),\n shortcode: this.copyToShortcode.trim() !== '' ? this.copyToShortcode.trim() : this.shortcode,\n filename: this.copyToFilename.trim() !== '' ? this.copyToFilename.trim() : this.file\n })\n } catch (e) {\n return\n }\n this.copyToLocalPackName = null\n this.copyToLocalVisible = false\n this.copyToShortcode = ''\n this.copyToFilename = ''\n\n this.$store.dispatch('ReloadEmoji')\n },\n addressOfEmojiInPack\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\n.copy-popover {\n width: 330px\n}\n.copy-to-local-pack-button {\n margin-top: 15px;\n float: right;\n}\n.emoji-buttons {\n place-self: center;\n min-width: 200px\n}\n.emoji-container-grid {\n display: grid;\n grid-template-columns: 75px 1fr 1fr 200px;\n grid-column-gap: 15px;\n margin-bottom: 10px;\n}\n.emoji-preview-img {\n max-width: 100%;\n place-self: center;\n}\n.emoji-info {\n place-self: center;\n}\n.copy-pack-container {\n place-self: center stretch;\n}\n.copy-pack-select {\n width: 100%;\n}\n.remote-emoji-container-grid {\n display: grid;\n grid-template-columns: 75px 1fr 1fr 160px;\n grid-column-gap: 15px;\n margin-bottom: 10px;\n}\n@media only screen and (max-width:480px) {\n .emoji-container-flex {\n display: flex;\n flex-direction: column;\n border: 1px solid #dcdfe6;\n box-shadow: 0 2px 12px 0 rgba(0,0,0,.1);\n border-radius: 4px;\n padding: 15px;\n margin: 0 15px 15px 0;\n }\n .emoji-preview-img {\n margin-bottom: 10px;\n }\n .emoji-info {\n margin-bottom: 10px;\n }\n .emoji-buttons {\n display: flex;\n justify-content: space-between;\n width: 100%;\n button {\n padding: 10px 5px;\n width: 47%;\n }\n }\n}\n\n@media only screen and (max-width:801px) and (min-width: 481px) {\n .emoji-container-grid {\n grid-column-gap: 10px;\n }\n .emoji-buttons {\n .el-button+.el-button {\n margin-left: 5px;\n }\n }\n .remote-emoji-container-grid {\n grid-column-gap: 10px;\n }\n}\n</style>\n","import { render, staticRenderFns } from \"./SingleEmojiEditor.vue?vue&type=template&id=43549515&\"\nimport script from \"./SingleEmojiEditor.vue?vue&type=script&lang=js&\"\nexport * from \"./SingleEmojiEditor.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SingleEmojiEditor.vue?vue&type=style&index=0&id=43549515&prod&rel=stylesheet%2Fscss&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[(_vm.isLocal)?_c('div',{class:_vm.isMobile ? 'emoji-container-flex' : 'emoji-container-grid'},[_c('img',{staticClass:\"emoji-preview-img\",attrs:{\"src\":_vm.addressOfEmojiInPack(_vm.host, _vm.packName, _vm.file)}}),_vm._v(\" \"),_c('el-input',{staticClass:\"emoji-info\",attrs:{\"placeholder\":_vm.$t('emoji.shortcode')},model:{value:(_vm.emojiName),callback:function ($$v) {_vm.emojiName=$$v},expression:\"emojiName\"}}),_vm._v(\" \"),_c('el-input',{staticClass:\"emoji-info\",attrs:{\"placeholder\":_vm.$t('emoji.file')},model:{value:(_vm.emojiFile),callback:function ($$v) {_vm.emojiFile=$$v},expression:\"emojiFile\"}}),_vm._v(\" \"),_c('div',{staticClass:\"emoji-buttons\"},[_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.update}},[_vm._v(_vm._s(_vm.$t('emoji.update')))]),_vm._v(\" \"),_c('el-button',{staticClass:\"remove-emoji-button\",on:{\"click\":_vm.remove}},[_vm._v(_vm._s(_vm.$t('emoji.remove')))])],1)],1):_vm._e(),_vm._v(\" \"),(!_vm.isLocal)?_c('div',{class:_vm.isMobile ? 'emoji-container-flex' : 'remote-emoji-container-grid'},[_c('img',{staticClass:\"emoji-preview-img\",attrs:{\"src\":_vm.addressOfEmojiInPack(_vm.remoteInstance, _vm.packName, _vm.file)}}),_vm._v(\" \"),_c('el-input',{staticClass:\"emoji-info\",attrs:{\"value\":_vm.emojiName,\"placeholder\":_vm.$t('emoji.shortcode')}}),_vm._v(\" \"),_c('el-input',{staticClass:\"emoji-info\",attrs:{\"value\":_vm.emojiFile,\"placeholder\":_vm.$t('emoji.file')}}),_vm._v(\" \"),_c('el-popover',{staticClass:\"copy-pack-container\",attrs:{\"placement\":\"left-start\",\"popper-class\":\"copy-popover\"},model:{value:(_vm.copyPopoverVisible),callback:function ($$v) {_vm.copyPopoverVisible=$$v},expression:\"copyPopoverVisible\"}},[_c('p',[_vm._v(_vm._s(_vm.$t('emoji.selectLocalPack')))]),_vm._v(\" \"),_c('el-select',{staticClass:\"copy-pack-select\",attrs:{\"placeholder\":_vm.$t('emoji.localPack')},model:{value:(_vm.copyToLocalPackName),callback:function ($$v) {_vm.copyToLocalPackName=$$v},expression:\"copyToLocalPackName\"}},_vm._l((_vm.localPacks),function(_pack,name){return _c('el-option',{key:name,attrs:{\"label\":name,\"value\":name}})}),1),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('emoji.specifyShortcode')))]),_vm._v(\" \"),_c('el-input',{attrs:{\"placeholder\":_vm.$t('emoji.leaveEmptyShortcode')},model:{value:(_vm.copyToShortcode),callback:function ($$v) {_vm.copyToShortcode=$$v},expression:\"copyToShortcode\"}}),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$t('emoji.specifyFilename')))]),_vm._v(\" \"),_c('el-input',{attrs:{\"placeholder\":_vm.$t('emoji.leaveEmptyFilename')},model:{value:(_vm.copyToFilename),callback:function ($$v) {_vm.copyToFilename=$$v},expression:\"copyToFilename\"}}),_vm._v(\" \"),_c('el-button',{staticClass:\"copy-to-local-pack-button\",attrs:{\"disabled\":!_vm.copyToLocalPackName,\"type\":\"primary\"},on:{\"click\":_vm.copyToLocal}},[_vm._v(_vm._s(_vm.$t('emoji.copy')))]),_vm._v(\" \"),_c('el-button',{staticClass:\"emoji-button\",attrs:{\"slot\":\"reference\",\"type\":\"primary\"},slot:\"reference\"},[_vm._v(_vm._s(_vm.$t('emoji.copyToLocalPack')))])],1)],1):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewEmojiUploader.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewEmojiUploader.vue?vue&type=script&lang=js&\"","<template>\n <el-form :label-position=\"isMobile ? 'top' : 'left'\" label-width=\"130px\" size=\"small\" class=\"new-emoji-uploader-form\">\n <el-form-item :label=\"$t('emoji.shortcode')\">\n <el-input v-model=\"shortcode\" :placeholder=\"$t('emoji.optional')\"/>\n </el-form-item>\n <el-form-item :label=\"$t('emoji.customFilename')\">\n <el-input v-model=\"customFileName\" :placeholder=\"$t('emoji.optional')\"/>\n </el-form-item>\n <el-form-item :label=\"$t('emoji.uploadFile')\">\n <div class=\"upload-file-url\">\n <el-input v-model=\"imageUploadURL\" :placeholder=\"$t('emoji.url')\"/>\n <el-button type=\"primary\" class=\"upload-button\" @click=\"uploadEmoji\">{{ $t('emoji.upload') }}</el-button>\n </div>\n <div class=\"upload-container\">\n <p class=\"text\">or</p>\n <el-upload\n :http-request=\"uploadEmoji\"\n :multiple=\"false\"\n :show-file-list=\"false\"\n action=\"add\">\n <el-button type=\"primary\">{{ $t('emoji.clickToUpload') }}</el-button>\n </el-upload>\n </div>\n </el-form-item>\n </el-form>\n</template>\n\n<script>\nexport default {\n props: {\n packName: {\n type: String,\n required: true\n }\n },\n data() {\n return {\n shortcode: '',\n imageUploadURL: '',\n customFileName: ''\n }\n },\n computed: {\n isDesktop() {\n return this.$store.state.app.device === 'desktop'\n },\n isMobile() {\n return this.$store.state.app.device === 'mobile'\n }\n },\n methods: {\n async uploadEmoji({ file }) {\n try {\n this.$store.dispatch('AddNewEmojiFile', {\n packName: this.packName,\n file: file || this.imageUploadURL,\n shortcode: this.shortcode,\n filename: this.customFileName\n })\n } catch (e) {\n return\n }\n this.shortcode = ''\n this.imageUploadURL = ''\n this.customFileName = ''\n\n this.$store.dispatch('ReloadEmoji')\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\n.add-new-emoji {\n height: 36px;\n font-size: 14px;\n font-weight: 700;\n color: #606266;\n}\n.text {\n line-height: 20px;\n margin-right: 15px;\n}\n.upload-container {\n display: flex;\n align-items: baseline;\n}\n.upload-button {\n margin-left: 10px;\n}\n.upload-file-url {\n display: flex;\n justify-content: space-between;\n}\n@media only screen and (max-width:480px) {\n .new-emoji-uploader-form {\n label.el-form-item__label {\n padding: 0;\n }\n }\n}\n</style>\n","<template>\n <el-collapse-item :title=\"name\" :name=\"name\" class=\"has-background\">\n <el-form :label-width=\"labelWidth\" label-position=\"left\" size=\"small\" class=\"emoji-pack-metadata\">\n <el-form-item :label=\" $t('emoji.sharePack')\">\n <el-switch v-model=\"share\" />\n </el-form-item>\n <el-form-item :label=\" $t('emoji.homepage')\">\n <el-input v-model=\"homepage\" />\n </el-form-item>\n <el-form-item :label=\" $t('emoji.description')\">\n <el-input v-model=\"description\" type=\"textarea\" />\n </el-form-item>\n <el-form-item :label=\" $t('emoji.license')\">\n <el-input v-model=\"license\" />\n </el-form-item>\n <el-form-item :label=\" $t('emoji.fallbackSrc')\">\n <el-input v-model=\"fallbackSrc\" />\n </el-form-item>\n <el-form-item\n v-if=\"fallbackSrc && fallbackSrc.trim() !== ''\"\n :label=\" $t('emoji.fallbackSrcSha')\">\n {{ pack.pack[\"fallback-src-sha256\"] }}\n </el-form-item>\n </el-form>\n <div class=\"pack-button-container\">\n <div class=\"save-pack-button-container\">\n <el-button type=\"primary\" class=\"save-pack-button\" @click=\"savePackMetadata\">{{ $t('emoji.saveMetadata') }}</el-button>\n <el-button class=\"delete-pack-button\" @click=\"deletePack\">{{ $t('emoji.deletePack') }}</el-button>\n </div>\n <div class=\"download-pack-button-container\">\n <el-link\n v-if=\"pack.pack['can-download']\"\n :href=\"`//${host}//api/pleroma/emoji/packs/archive?name=${name}`\"\n :underline=\"false\"\n type=\"primary\"\n target=\"_blank\">\n <el-button class=\"download-archive\">{{ $t('emoji.downloadPackArchive') }}</el-button>\n </el-link>\n </div>\n </div>\n <el-collapse v-model=\"showPackContent\" class=\"contents-collapse\" @change=\"handleChange($event, name)\">\n <el-collapse-item v-if=\"isLocal\" :title=\" $t('emoji.addNewEmoji')\" name=\"addEmoji\" class=\"no-background\">\n <new-emoji-uploader :pack-name=\"name\"/>\n </el-collapse-item>\n <el-collapse-item :title=\" $t('emoji.manageEmoji')\" name=\"manageEmoji\" class=\"no-background\">\n <div v-if=\"pack.files && Object.keys(pack.files).length > 0\">\n <div :class=\"isMobile ? 'emoji-container-flex' : 'emoji-container-grid'\">\n <span class=\"emoji-preview-img emoji-table-head\">{{ $t('emoji.image') }}</span>\n <span class=\"emoji-table-head\">{{ $t('emoji.shortcode') }}</span>\n <span class=\"emoji-table-head\">{{ $t('emoji.file') }}</span>\n </div>\n <single-emoji-editor\n v-for=\"(file, shortcode) in pack.files\"\n :key=\"shortcode\"\n :host=\"host\"\n :pack-name=\"name\"\n :shortcode=\"shortcode\"\n :file=\"file\"\n :is-local=\"isLocal\" />\n </div>\n <span v-else class=\"expl\">{{ $t('emoji.emptyPack') }}</span>\n <div class=\"files-pagination\">\n <el-pagination\n :total=\"localPackFilesCount\"\n :current-page=\"currentFilesPage\"\n :page-size=\"pageSize\"\n hide-on-single-page\n layout=\"prev, pager, next\"\n @current-change=\"handleFilesPageChange\"\n />\n </div>\n </el-collapse-item>\n </el-collapse>\n </el-collapse-item>\n</template>\n\n<script>\nimport SingleEmojiEditor from './SingleEmojiEditor.vue'\nimport NewEmojiUploader from './NewEmojiUploader.vue'\n\nexport default {\n components: { SingleEmojiEditor, NewEmojiUploader },\n props: {\n name: {\n type: String,\n required: true\n },\n pack: {\n type: Object,\n required: true\n },\n host: {\n type: String,\n required: true\n },\n isLocal: {\n type: Boolean,\n required: true\n }\n },\n data() {\n return {\n showPackContent: []\n }\n },\n computed: {\n currentFilesPage() {\n return this.$store.state.emojiPacks.currentLocalFilesPage\n },\n currentLocalPacksPage() {\n return this.$store.state.emojiPacks.currentLocalPacksPage\n },\n isMobile() {\n return this.$store.state.app.device === 'mobile'\n },\n isTablet() {\n return this.$store.state.app.device === 'tablet'\n },\n labelWidth() {\n if (this.isMobile) {\n return '90px'\n } else if (this.isTablet) {\n return '155px'\n } else {\n return '155px'\n }\n },\n localPackFilesCount() {\n return this.$store.state.emojiPacks.localPackFilesCount\n },\n pageSize() {\n return this.$store.state.emojiPacks.filesPageSize\n },\n share: {\n get() { return this.pack.pack['share-files'] },\n set(value) {\n this.$store.dispatch(\n 'UpdateLocalPackVal',\n { name: this.name, key: 'share-files', value }\n )\n }\n },\n homepage: {\n get() { return this.pack.pack['homepage'] },\n set(value) {\n this.$store.dispatch(\n 'UpdateLocalPackVal',\n { name: this.name, key: 'homepage', value }\n )\n }\n },\n description: {\n get() { return this.pack.pack['description'] },\n set(value) {\n this.$store.dispatch(\n 'UpdateLocalPackVal',\n { name: this.name, key: 'description', value }\n )\n }\n },\n license: {\n get() { return this.pack.pack['license'] },\n set(value) {\n this.$store.dispatch(\n 'UpdateLocalPackVal',\n { name: this.name, key: 'license', value }\n )\n }\n },\n fallbackSrc: {\n get() { return this.pack.pack['fallback-src'] },\n set(value) {\n if (value.trim() !== '') {\n this.$store.dispatch(\n 'UpdateLocalPackVal',\n { name: this.name, key: 'fallback-src', value }\n )\n } else {\n this.$store.dispatch(\n 'UpdateLocalPackVal',\n { name: this.name, key: 'fallback-src', value: null }\n )\n this.$store.dispatch(\n 'UpdateLocalPackVal',\n { name: this.name, key: 'fallback-src-sha256', value: null }\n )\n }\n }\n }\n },\n methods: {\n collapse() {\n this.showPackContent = []\n },\n deletePack() {\n this.$confirm('This will delete the pack, are you sure?', 'Warning', {\n confirmButtonText: 'Yes, delete the pack',\n cancelButtonText: 'No, leave it be',\n type: 'warning'\n }).then(() => {\n this.$store.dispatch('DeletePack', { name: this.name })\n .then(() => this.$store.dispatch('ReloadEmoji'))\n .then(() => {\n const { [this.name]: value, ...updatedPacks } = this.$store.state.emojiPacks.localPacks\n if (Object.keys(updatedPacks).length === 0 && this.currentLocalPacksPage > 1) {\n this.$store.dispatch('FetchLocalEmojiPacks', this.currentLocalPacksPage - 1)\n } else {\n this.$store.dispatch('FetchLocalEmojiPacks', this.currentLocalPacksPage)\n }\n })\n }).catch(() => {})\n },\n handleChange(openTabs, name) {\n if (openTabs.includes('manageEmoji')) {\n this.$store.dispatch('FetchLocalSinglePack', { name, page: 1 })\n }\n },\n handleFilesPageChange(page) {\n this.$store.dispatch('FetchLocalSinglePack', { name: this.name, page })\n },\n savePackMetadata() {\n this.$store.dispatch('SavePackMetadata', { packName: this.name })\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\n.download-archive {\n width: 250px\n}\n.download-pack-button-container {\n width: 265px;\n .el-link {\n width: inherit;\n span {\n width: inherit;\n .download-archive {\n width: inherit;\n }\n }\n }\n}\n.download-shared-pack {\n display: flex;\n margin-bottom: 10px;\n}\n.download-shared-pack-button {\n margin-left: 10px;\n}\n.el-collapse-item__content {\n padding-bottom: 0;\n}\n.el-collapse-item__header {\n height: 36px;\n font-size: 14px;\n font-weight: 700;\n color: #606266;\n}\n.emoji-table-head {\n color: #909399;\n font-size: 14px;\n font-weight: 700;\n}\n.emoji-pack-card {\n margin-top: 5px;\n}\n.emoji-pack-metadata {\n .el-form-item {\n margin-bottom: 10px;\n }\n}\n.files-pagination {\n margin: 25px 0;\n text-align: center;\n}\n.has-background .el-collapse-item__header {\n background: #f6f6f6;\n}\n.no-background .el-collapse-item__header {\n background: white;\n}\n.pack-button-container {\n margin: 0 0 18px 120px;\n}\n.save-pack-button-container {\n margin-bottom: 8px;\n width: 265px;\n display: flex;\n justify-content: space-between;\n}\n@media only screen and (max-width:480px) {\n .delete-pack-button {\n width: 45%;\n }\n .download-pack-button-container {\n width: 100%;\n }\n .download-shared-pack {\n flex-direction: column;\n }\n .download-shared-pack-button {\n margin-left: 0;\n margin-top: 10px;\n padding: 10px;\n }\n .pack-button-container {\n width: 100%;\n margin: 0 0 22px 0;\n }\n .remote-pack-metadata {\n .el-form-item__content {\n line-height: 24px;\n margin-top: 4px;\n }\n }\n .save-pack-button {\n width: 54%;\n }\n .save-pack-button-container {\n margin-bottom: 8px;\n width: 100%;\n display: flex;\n justify-content: space-between;\n button {\n padding: 10px 5px;\n }\n .el-button+.el-button {\n margin-left: 3px;\n }\n }\n}\n</style>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LocalEmojiPack.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LocalEmojiPack.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./NewEmojiUploader.vue?vue&type=template&id=079545c3&\"\nimport script from \"./NewEmojiUploader.vue?vue&type=script&lang=js&\"\nexport * from \"./NewEmojiUploader.vue?vue&type=script&lang=js&\"\nimport style0 from \"./NewEmojiUploader.vue?vue&type=style&index=0&id=079545c3&prod&rel=stylesheet%2Fscss&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('el-form',{staticClass:\"new-emoji-uploader-form\",attrs:{\"label-position\":_vm.isMobile ? 'top' : 'left',\"label-width\":\"130px\",\"size\":\"small\"}},[_c('el-form-item',{attrs:{\"label\":_vm.$t('emoji.shortcode')}},[_c('el-input',{attrs:{\"placeholder\":_vm.$t('emoji.optional')},model:{value:(_vm.shortcode),callback:function ($$v) {_vm.shortcode=$$v},expression:\"shortcode\"}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":_vm.$t('emoji.customFilename')}},[_c('el-input',{attrs:{\"placeholder\":_vm.$t('emoji.optional')},model:{value:(_vm.customFileName),callback:function ($$v) {_vm.customFileName=$$v},expression:\"customFileName\"}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":_vm.$t('emoji.uploadFile')}},[_c('div',{staticClass:\"upload-file-url\"},[_c('el-input',{attrs:{\"placeholder\":_vm.$t('emoji.url')},model:{value:(_vm.imageUploadURL),callback:function ($$v) {_vm.imageUploadURL=$$v},expression:\"imageUploadURL\"}}),_vm._v(\" \"),_c('el-button',{staticClass:\"upload-button\",attrs:{\"type\":\"primary\"},on:{\"click\":_vm.uploadEmoji}},[_vm._v(_vm._s(_vm.$t('emoji.upload')))])],1),_vm._v(\" \"),_c('div',{staticClass:\"upload-container\"},[_c('p',{staticClass:\"text\"},[_vm._v(\"or\")]),_vm._v(\" \"),_c('el-upload',{attrs:{\"http-request\":_vm.uploadEmoji,\"multiple\":false,\"show-file-list\":false,\"action\":\"add\"}},[_c('el-button',{attrs:{\"type\":\"primary\"}},[_vm._v(_vm._s(_vm.$t('emoji.clickToUpload')))])],1)],1)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./LocalEmojiPack.vue?vue&type=template&id=21319024&\"\nimport script from \"./LocalEmojiPack.vue?vue&type=script&lang=js&\"\nexport * from \"./LocalEmojiPack.vue?vue&type=script&lang=js&\"\nimport style0 from \"./LocalEmojiPack.vue?vue&type=style&index=0&id=21319024&prod&rel=stylesheet%2Fscss&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('el-collapse-item',{staticClass:\"has-background\",attrs:{\"title\":_vm.name,\"name\":_vm.name}},[_c('el-form',{staticClass:\"emoji-pack-metadata\",attrs:{\"label-width\":_vm.labelWidth,\"label-position\":\"left\",\"size\":\"small\"}},[_c('el-form-item',{attrs:{\"label\":_vm.$t('emoji.sharePack')}},[_c('el-switch',{model:{value:(_vm.share),callback:function ($$v) {_vm.share=$$v},expression:\"share\"}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":_vm.$t('emoji.homepage')}},[_c('el-input',{model:{value:(_vm.homepage),callback:function ($$v) {_vm.homepage=$$v},expression:\"homepage\"}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":_vm.$t('emoji.description')}},[_c('el-input',{attrs:{\"type\":\"textarea\"},model:{value:(_vm.description),callback:function ($$v) {_vm.description=$$v},expression:\"description\"}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":_vm.$t('emoji.license')}},[_c('el-input',{model:{value:(_vm.license),callback:function ($$v) {_vm.license=$$v},expression:\"license\"}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":_vm.$t('emoji.fallbackSrc')}},[_c('el-input',{model:{value:(_vm.fallbackSrc),callback:function ($$v) {_vm.fallbackSrc=$$v},expression:\"fallbackSrc\"}})],1),_vm._v(\" \"),(_vm.fallbackSrc && _vm.fallbackSrc.trim() !== '')?_c('el-form-item',{attrs:{\"label\":_vm.$t('emoji.fallbackSrcSha')}},[_vm._v(\"\\n \"+_vm._s(_vm.pack.pack[\"fallback-src-sha256\"])+\"\\n \")]):_vm._e()],1),_vm._v(\" \"),_c('div',{staticClass:\"pack-button-container\"},[_c('div',{staticClass:\"save-pack-button-container\"},[_c('el-button',{staticClass:\"save-pack-button\",attrs:{\"type\":\"primary\"},on:{\"click\":_vm.savePackMetadata}},[_vm._v(_vm._s(_vm.$t('emoji.saveMetadata')))]),_vm._v(\" \"),_c('el-button',{staticClass:\"delete-pack-button\",on:{\"click\":_vm.deletePack}},[_vm._v(_vm._s(_vm.$t('emoji.deletePack')))])],1),_vm._v(\" \"),_c('div',{staticClass:\"download-pack-button-container\"},[(_vm.pack.pack['can-download'])?_c('el-link',{attrs:{\"href\":`//${_vm.host}//api/pleroma/emoji/packs/archive?name=${_vm.name}`,\"underline\":false,\"type\":\"primary\",\"target\":\"_blank\"}},[_c('el-button',{staticClass:\"download-archive\"},[_vm._v(_vm._s(_vm.$t('emoji.downloadPackArchive')))])],1):_vm._e()],1)]),_vm._v(\" \"),_c('el-collapse',{staticClass:\"contents-collapse\",on:{\"change\":function($event){return _vm.handleChange($event, _vm.name)}},model:{value:(_vm.showPackContent),callback:function ($$v) {_vm.showPackContent=$$v},expression:\"showPackContent\"}},[(_vm.isLocal)?_c('el-collapse-item',{staticClass:\"no-background\",attrs:{\"title\":_vm.$t('emoji.addNewEmoji'),\"name\":\"addEmoji\"}},[_c('new-emoji-uploader',{attrs:{\"pack-name\":_vm.name}})],1):_vm._e(),_vm._v(\" \"),_c('el-collapse-item',{staticClass:\"no-background\",attrs:{\"title\":_vm.$t('emoji.manageEmoji'),\"name\":\"manageEmoji\"}},[(_vm.pack.files && Object.keys(_vm.pack.files).length > 0)?_c('div',[_c('div',{class:_vm.isMobile ? 'emoji-container-flex' : 'emoji-container-grid'},[_c('span',{staticClass:\"emoji-preview-img emoji-table-head\"},[_vm._v(_vm._s(_vm.$t('emoji.image')))]),_vm._v(\" \"),_c('span',{staticClass:\"emoji-table-head\"},[_vm._v(_vm._s(_vm.$t('emoji.shortcode')))]),_vm._v(\" \"),_c('span',{staticClass:\"emoji-table-head\"},[_vm._v(_vm._s(_vm.$t('emoji.file')))])]),_vm._v(\" \"),_vm._l((_vm.pack.files),function(file,shortcode){return _c('single-emoji-editor',{key:shortcode,attrs:{\"host\":_vm.host,\"pack-name\":_vm.name,\"shortcode\":shortcode,\"file\":file,\"is-local\":_vm.isLocal}})})],2):_c('span',{staticClass:\"expl\"},[_vm._v(_vm._s(_vm.$t('emoji.emptyPack')))]),_vm._v(\" \"),_c('div',{staticClass:\"files-pagination\"},[_c('el-pagination',{attrs:{\"total\":_vm.localPackFilesCount,\"current-page\":_vm.currentFilesPage,\"page-size\":_vm.pageSize,\"hide-on-single-page\":\"\",\"layout\":\"prev, pager, next\"},on:{\"current-change\":_vm.handleFilesPageChange}})],1)])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RemoteEmojiPack.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RemoteEmojiPack.vue?vue&type=script&lang=js&\"","<template>\n <el-collapse-item :title=\"name\" :name=\"name\" class=\"has-background\">\n <div v-if=\"loadRemotePack\">\n <el-form :label-width=\"labelWidth\" label-position=\"left\" size=\"small\" class=\"emoji-pack-metadata remote-pack-metadata\">\n <el-form-item :label=\" $t('emoji.sharePack')\">\n <el-switch v-model=\"share\" disabled />\n </el-form-item>\n <el-form-item v-if=\"homepage\" :label=\" $t('emoji.homepage')\">\n <span>{{ homepage }}</span>\n </el-form-item>\n <el-form-item v-if=\"description\" :label=\" $t('emoji.description')\">\n <span>{{ description }}</span>\n </el-form-item>\n <el-form-item v-if=\"license\" :label=\" $t('emoji.license')\">\n <span>{{ license }}</span>\n </el-form-item>\n <el-form-item v-if=\"fallbackSrc\" :label=\" $t('emoji.fallbackSrc')\">\n <span>{{ fallbackSrc }}</span>\n </el-form-item>\n <el-form-item\n v-if=\"fallbackSrc && fallbackSrc.trim() !== ''\"\n :label=\" $t('emoji.fallbackSrcSha')\">\n {{ pack.pack[\"fallback-src-sha256\"] }}\n </el-form-item>\n <el-form-item>\n <el-link\n v-if=\"pack.pack['can-download'] && pack.pack['fallback-src']\"\n :href=\"pack.pack['fallback-src']\"\n :underline=\"false\"\n type=\"primary\"\n target=\"_blank\">\n <el-button class=\"download-archive\">{{ $t('emoji.downloadPackArchive') }}</el-button>\n </el-link>\n </el-form-item>\n </el-form>\n <el-collapse v-model=\"showPackContent\" class=\"contents-collapse\" @change=\"handleChange($event, name)\">\n <el-collapse-item :title=\" $t('emoji.manageEmoji')\" name=\"manageEmoji\" class=\"no-background\">\n <div v-if=\"pack.files && Object.keys(pack.files).length > 0\">\n <single-emoji-editor\n v-for=\"(file, shortcode) in pack.files\"\n :key=\"shortcode\"\n :host=\"host\"\n :pack-name=\"name\"\n :shortcode=\"shortcode\"\n :file=\"file\"\n :is-local=\"isLocal\" />\n </div>\n <span v-else class=\"expl\">{{ $t('emoji.emptyPack') }}</span>\n <div class=\"files-pagination\">\n <el-pagination\n :total=\"remotePackFilesCount\"\n :current-page=\"currentFilesPage\"\n :page-size=\"pageSize\"\n hide-on-single-page\n layout=\"prev, pager, next\"\n @current-change=\"handleFilesPageChange\"\n />\n </div>\n </el-collapse-item>\n <el-collapse-item :title=\" $t('emoji.downloadPack')\" name=\"downloadPack\" class=\"no-background\">\n <p>\n {{ $t('emoji.thisWillDownload') }} \"{{ name }}\" {{ $t('emoji.downloadToCurrentInstance') }}\n \"{{ downloadSharedAs.trim() === '' ? name : downloadSharedAs }}\" ({{ $t('emoji.canBeChanged') }}).\n {{ $t('emoji.willBeUsable') }}.\n </p>\n <div class=\"download-shared-pack\">\n <el-input v-model=\"downloadSharedAs\" :placeholder=\" $t('emoji.downloadAsOptional')\"/>\n <el-button type=\"primary\" class=\"download-shared-pack-button\" @click=\"downloadFromInstance\">\n {{ isDesktop ? $t('emoji.downloadSharedPack') : $t('emoji.downloadSharedPackMobile') }}\n </el-button>\n </div>\n </el-collapse-item>\n </el-collapse>\n </div>\n </el-collapse-item>\n</template>\n\n<script>\nimport SingleEmojiEditor from './SingleEmojiEditor.vue'\n\nexport default {\n components: { SingleEmojiEditor },\n props: {\n activeTab: {\n type: String,\n required: true\n },\n name: {\n type: String,\n required: true\n },\n pack: {\n type: Object,\n required: true\n },\n host: {\n type: String,\n required: true\n },\n isLocal: {\n type: Boolean,\n required: true\n }\n },\n data() {\n return {\n showPackContent: [],\n downloadSharedAs: ''\n }\n },\n computed: {\n currentFilesPage() {\n return this.$store.state.emojiPacks.currentRemoteFilesPage\n },\n currentRemotePacksPage() {\n return this.$store.state.emojiPacks.currentRemotePacksPage\n },\n isDesktop() {\n return this.$store.state.app.device === 'desktop'\n },\n isMobile() {\n return this.$store.state.app.device === 'mobile'\n },\n isTablet() {\n return this.$store.state.app.device === 'tablet'\n },\n labelWidth() {\n if (this.isMobile) {\n return '90px'\n } else if (this.isTablet) {\n return '120px'\n } else {\n return '120px'\n }\n },\n loadRemotePack() {\n return this.activeTab === this.name\n },\n pageSize() {\n return this.$store.state.emojiPacks.filesPageSize\n },\n remoteInstanceAddress() {\n return this.$store.state.emojiPacks.remoteInstance\n },\n remotePackFilesCount() {\n return this.$store.state.emojiPacks.remotePackFilesCount\n },\n share: {\n get() { return this.pack.pack['share-files'] },\n set(value) {\n this.$store.dispatch(\n 'UpdateLocalPackVal',\n { name: this.name, key: 'share-files', value }\n )\n }\n },\n homepage: {\n get() { return this.pack.pack['homepage'] },\n set(value) {\n this.$store.dispatch(\n 'UpdateLocalPackVal',\n { name: this.name, key: 'homepage', value }\n )\n }\n },\n description: {\n get() { return this.pack.pack['description'] },\n set(value) {\n this.$store.dispatch(\n 'UpdateLocalPackVal',\n { name: this.name, key: 'description', value }\n )\n }\n },\n license: {\n get() { return this.pack.pack['license'] },\n set(value) {\n this.$store.dispatch(\n 'UpdateLocalPackVal',\n { name: this.name, key: 'license', value }\n )\n }\n },\n fallbackSrc: {\n get() { return this.pack.pack['fallback-src'] },\n set(value) {\n if (value.trim() !== '') {\n this.$store.dispatch(\n 'UpdateLocalPackVal',\n { name: this.name, key: 'fallback-src', value }\n )\n } else {\n this.$store.dispatch(\n 'UpdateLocalPackVal',\n { name: this.name, key: 'fallback-src', value: null }\n )\n this.$store.dispatch(\n 'UpdateLocalPackVal',\n { name: this.name, key: 'fallback-src-sha256', value: null }\n )\n }\n }\n }\n },\n methods: {\n collapse() {\n this.showPackContent = []\n },\n downloadFromInstance() {\n this.$store.dispatch(\n 'DownloadFrom',\n { instanceAddress: this.remoteInstanceAddress, packName: this.name, as: this.downloadSharedAs }\n ).then(() => this.$store.dispatch('ReloadEmoji'))\n .then(() => this.$store.dispatch('FetchLocalEmojiPacks', this.currentPage))\n },\n handleChange(openTabs, name) {\n if (openTabs.includes('manageEmoji')) {\n this.$store.dispatch('FetchRemoteSinglePack', { name, page: 1 })\n }\n },\n handleFilesPageChange(page) {\n this.$store.dispatch('FetchRemoteSinglePack', { name: this.name, page })\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\n.download-archive {\n width: 250px\n}\n.download-pack-button-container {\n width: 265px;\n .el-link {\n width: inherit;\n span {\n width: inherit;\n .download-archive {\n width: inherit;\n }\n }\n }\n}\n.download-shared-pack {\n display: flex;\n margin-bottom: 10px;\n}\n.download-shared-pack-button {\n margin-left: 10px;\n}\n.el-collapse-item__content {\n padding-bottom: 0;\n}\n.el-collapse-item__header {\n height: 36px;\n font-size: 14px;\n font-weight: 700;\n color: #606266;\n}\n.emoji-pack-card {\n margin-top: 5px;\n}\n.emoji-pack-metadata {\n .el-form-item {\n margin-bottom: 10px;\n }\n}\n.files-pagination {\n margin: 25px 0;\n text-align: center;\n}\n.has-background .el-collapse-item__header {\n background: #f6f6f6;\n}\n.no-background .el-collapse-item__header {\n background: white;\n}\n.pack-button-container {\n margin: 0 0 18px 120px;\n}\n.save-pack-button-container {\n margin-bottom: 8px;\n width: 265px;\n display: flex;\n justify-content: space-between;\n}\n@media only screen and (max-width:480px) {\n .delete-pack-button {\n width: 45%;\n }\n .download-pack-button-container {\n width: 100%;\n }\n .download-shared-pack {\n flex-direction: column;\n }\n .download-shared-pack-button {\n margin-left: 0;\n margin-top: 10px;\n padding: 10px;\n }\n .pack-button-container {\n width: 100%;\n margin: 0 0 22px 0;\n }\n .remote-pack-metadata {\n .el-form-item__content {\n line-height: 24px;\n margin-top: 4px;\n }\n }\n .save-pack-button {\n width: 54%;\n }\n .save-pack-button-container {\n margin-bottom: 8px;\n width: 100%;\n display: flex;\n justify-content: space-between;\n button {\n padding: 10px 5px;\n }\n .el-button+.el-button {\n margin-left: 3px;\n }\n }\n}\n</style>\n","<template>\n <div class=\"emoji-packs\">\n <div class=\"emoji-header-container\">\n <div class=\"emoji-packs-header-button-container\">\n <el-button class=\"reload-emoji-button\" @click=\"reloadEmoji\">{{ $t('emoji.reloadEmoji') }}</el-button>\n <el-tooltip :content=\"$t('emoji.importEmojiTooltip')\" effects=\"dark\" placement=\"bottom\" popper-class=\"import-pack-button\">\n <el-button @click=\"importFromFS\">\n {{ $t('emoji.importPacks') }}\n </el-button>\n </el-tooltip>\n </div>\n </div>\n <el-tabs v-model=\"activeTab\" type=\"card\" class=\"emoji-packs-tabs\">\n <el-tab-pane v-if=\"!emojiPacksDisabled\" :label=\"$t('emoji.localPacks')\" name=\"local\">\n <el-form :label-width=\"labelWidth\" class=\"emoji-packs-form\">\n <el-form-item :label=\"$t('emoji.localPacks')\">\n <el-button @click=\"refreshLocalPacks\">{{ $t('emoji.refreshLocalPacks') }}</el-button>\n </el-form-item>\n <el-form-item :label=\"$t('emoji.createLocalPack')\">\n <div class=\"create-pack\">\n <el-input v-model=\"newPackName\" :placeholder=\"$t('users.name')\" />\n <el-button\n :disabled=\"newPackName.trim() === ''\"\n class=\"create-pack-button\"\n @click=\"createLocalPack\">\n {{ $t('users.create') }}\n </el-button>\n </div>\n <span class=\"emoji-name-warning\">{{ $t('emoji.emojiWarning') }}</span>\n </el-form-item>\n <el-form-item v-if=\"Object.keys(localPacks).length > 0\" :label=\"$t('emoji.packs')\">\n <el-collapse v-for=\"(pack, name) in localPacks\" :key=\"name\" v-model=\"activeLocalPack\" accordion @change=\"closeRemoteTabs\">\n <local-emoji-pack ref=\"localEmojiPack\" :name=\"name\" :pack=\"pack\" :host=\"$store.getters.authHost\" :is-local=\"true\" />\n </el-collapse>\n </el-form-item>\n </el-form>\n <div class=\"pagination\">\n <el-pagination\n :total=\"localPacksCount\"\n :current-page=\"currentLocalPacksPage\"\n :page-size=\"pageSize\"\n hide-on-single-page\n layout=\"prev, pager, next\"\n @current-change=\"handleLocalPageChange\"\n />\n </div>\n </el-tab-pane>\n <el-tab-pane v-if=\"!emojiPacksDisabled\" :label=\"$t('emoji.remotePacks')\" name=\"remote\">\n <el-form :label-width=\"labelWidth\" class=\"emoji-packs-form\">\n <el-form-item :label=\"$t('emoji.remotePacks')\">\n <div class=\"create-pack\">\n <el-input\n v-model=\"remoteInstanceAddress\"\n :placeholder=\"$t('emoji.remoteInstanceAddress')\" />\n <el-button\n v-loading.fullscreen.lock=\"fullscreenLoading\"\n :disabled=\"remoteInstanceAddress.trim() === ''\"\n class=\"create-pack-button\"\n @click=\"refreshRemotePacks\">\n {{ $t('emoji.refreshRemote') }}\n </el-button>\n </div>\n </el-form-item>\n <el-form-item v-if=\"Object.keys(remotePacks).length > 0\" :label=\"$t('emoji.packs')\">\n <el-collapse v-for=\"(pack, name) in remotePacks\" :key=\"name\" v-model=\"activeRemotePack\" accordion @change=\"closeLocalTabs\">\n <remote-emoji-pack ref=\"remoteEmojiPack\" :active-tab=\"activeRemotePack\" :name=\"name\" :pack=\"pack\" :host=\"$store.getters.authHost\" :is-local=\"false\" />\n </el-collapse>\n </el-form-item>\n </el-form>\n <div class=\"pagination\">\n <el-pagination\n :total=\"remotePacksCount\"\n :current-page=\"currentRemotePacksPage\"\n :page-size=\"pageSize\"\n hide-on-single-page\n layout=\"prev, pager, next\"\n @current-change=\"handleRemotePageChange\"\n />\n </div>\n </el-tab-pane>\n <el-tab-pane :label=\"$t('settings.settings')\" name=\"settings\">\n <div v-if=\"!loading\" :class=\"isSidebarOpen\" class=\"form-container\">\n <el-form :model=\"emojiData\" :label-position=\"labelPosition\" :label-width=\"settingsLabelWidth\">\n <setting :setting-group=\"emoji\" :data=\"emojiData\"/>\n </el-form>\n <div class=\"submit-button-container\">\n <el-button class=\"submit-button\" type=\"primary\" @click=\"onSubmit\">Submit</el-button>\n </div>\n </div>\n </el-tab-pane>\n </el-tabs>\n </div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex'\nimport i18n from '@/lang'\nimport LocalEmojiPack from '../../emojiPacks/LocalEmojiPack'\nimport RemoteEmojiPack from '../../emojiPacks/RemoteEmojiPack'\nimport Setting from './Setting'\nimport _ from 'lodash'\n\nexport default {\n name: 'Emoji',\n components: { LocalEmojiPack, RemoteEmojiPack, Setting },\n data() {\n return {\n activeTab: 'local',\n newPackName: '',\n activeLocalPack: '',\n activeRemotePack: '',\n fullscreenLoading: false\n }\n },\n computed: {\n ...mapGetters([\n 'settings'\n ]),\n currentLocalPacksPage() {\n return this.$store.state.emojiPacks.currentLocalPacksPage\n },\n currentRemotePacksPage() {\n return this.$store.state.emojiPacks.currentRemotePacksPage\n },\n emoji() {\n return this.settings.description.find(setting => setting.key === ':emoji')\n },\n emojiData() {\n return _.get(this.settings.settings, [':pleroma', ':emoji']) || {}\n },\n emojiPacksDisabled() {\n const disabledFeatures = process.env.DISABLED_FEATURES || []\n return disabledFeatures.includes('emoji-packs')\n },\n isMobile() {\n return this.$store.state.app.device === 'mobile'\n },\n isSidebarOpen() {\n return this.$store.state.app.sidebar.opened ? 'sidebar-opened' : 'sidebar-closed'\n },\n isTablet() {\n return this.$store.state.app.device === 'tablet'\n },\n labelPosition() {\n return this.isMobile ? 'top' : 'right'\n },\n labelWidth() {\n if (this.isMobile) {\n return '105px'\n } else if (this.isTablet) {\n return '180px'\n } else {\n return '200px'\n }\n },\n loading() {\n return this.settings.loading\n },\n localPacks() {\n return this.$store.state.emojiPacks.localPacks\n },\n localPacksCount() {\n return this.$store.state.emojiPacks.localPacksCount\n },\n pageSize() {\n return this.$store.state.emojiPacks.pageSize\n },\n remoteInstanceAddress: {\n get() {\n return this.$store.state.emojiPacks.remoteInstance\n },\n set(instance) {\n this.$store.dispatch('SetRemoteInstance', instance)\n }\n },\n remotePacks() {\n return this.$store.state.emojiPacks.remotePacks\n },\n remotePacksCount() {\n return this.$store.state.emojiPacks.remotePacksCount\n },\n searchQuery() {\n return this.$store.state.settings.searchQuery\n },\n settingsLabelWidth() {\n if (this.isMobile) {\n return '120px'\n } else if (this.isTablet) {\n return '200px'\n } else {\n return '280px'\n }\n }\n },\n mounted() {\n this.$store.dispatch('GetNodeInfo')\n this.$store.dispatch('NeedReboot')\n this.refreshLocalPacks()\n\n if (this.searchQuery.length > 0) {\n this.activeTab = 'settings'\n const selectedSetting = document.querySelector(`[data-search=\"${this.searchQuery}\"]`)\n console.log(selectedSetting)\n if (selectedSetting) {\n selectedSetting.scrollIntoView({ block: 'start', behavior: 'smooth' })\n }\n\n this.$store.dispatch('SetSearchQuery', '')\n }\n },\n methods: {\n closeLocalTabs() {\n this.collapseExistingEmojis()\n this.activeLocalPack = ''\n },\n closeRemoteTabs() {\n this.collapseExistingEmojis()\n this.activeRemotePack = ''\n },\n collapseExistingEmojis() {\n if (this.$refs.localEmojiPack && this.$refs.localEmojiPack.length > 0) {\n this.$refs.localEmojiPack.forEach(el => el.collapse())\n }\n if (this.$refs.remoteEmojiPack && this.$refs.remoteEmojiPack.length > 0) {\n this.$refs.remoteEmojiPack.forEach(el => el.collapse())\n }\n },\n createLocalPack() {\n this.$store.dispatch('CreatePack', { name: this.newPackName })\n .then(() => {\n this.newPackName = ''\n\n this.$store.dispatch('FetchLocalEmojiPacks', this.currentLocalPacksPage)\n this.$store.dispatch('ReloadEmoji')\n })\n },\n handleLocalPageChange(page) {\n this.$store.dispatch('FetchLocalEmojiPacks', page)\n },\n handleRemotePageChange(page) {\n this.$store.dispatch('SetRemoteEmojiPacks', { page, remoteInstance: this.remoteInstanceAddress })\n },\n importFromFS() {\n this.$store.dispatch('ImportFromFS')\n .then(() => {\n this.$store.dispatch('FetchLocalEmojiPacks', this.currentLocalPacksPage)\n this.$store.dispatch('ReloadEmoji')\n })\n },\n async onSubmit() {\n try {\n await this.$store.dispatch('SubmitChanges')\n } catch (e) {\n return\n }\n this.$message({\n type: 'success',\n message: i18n.t('settings.success')\n })\n },\n refreshLocalPacks() {\n try {\n this.$store.dispatch('FetchLocalEmojiPacks', this.currentLocalPacksPage)\n } catch (e) {\n return\n }\n this.$message({\n type: 'success',\n message: i18n.t('emoji.refreshed')\n })\n },\n async refreshRemotePacks() {\n this.fullscreenLoading = true\n await this.$store.dispatch('SetRemoteEmojiPacks', { page: 1, remoteInstance: this.remoteInstanceAddress })\n this.fullscreenLoading = false\n },\n async reloadEmoji() {\n try {\n this.$store.dispatch('ReloadEmoji')\n } catch (e) {\n return\n }\n this.$message({\n type: 'success',\n message: i18n.t('emoji.reloaded')\n })\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\n@import '../../styles/settings';\n@include settings;\n@include emoji;\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Emoji.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Emoji.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RemoteEmojiPack.vue?vue&type=template&id=67b4cf69&\"\nimport script from \"./RemoteEmojiPack.vue?vue&type=script&lang=js&\"\nexport * from \"./RemoteEmojiPack.vue?vue&type=script&lang=js&\"\nimport style0 from \"./RemoteEmojiPack.vue?vue&type=style&index=0&id=67b4cf69&prod&rel=stylesheet%2Fscss&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('el-collapse-item',{staticClass:\"has-background\",attrs:{\"title\":_vm.name,\"name\":_vm.name}},[(_vm.loadRemotePack)?_c('div',[_c('el-form',{staticClass:\"emoji-pack-metadata remote-pack-metadata\",attrs:{\"label-width\":_vm.labelWidth,\"label-position\":\"left\",\"size\":\"small\"}},[_c('el-form-item',{attrs:{\"label\":_vm.$t('emoji.sharePack')}},[_c('el-switch',{attrs:{\"disabled\":\"\"},model:{value:(_vm.share),callback:function ($$v) {_vm.share=$$v},expression:\"share\"}})],1),_vm._v(\" \"),(_vm.homepage)?_c('el-form-item',{attrs:{\"label\":_vm.$t('emoji.homepage')}},[_c('span',[_vm._v(_vm._s(_vm.homepage))])]):_vm._e(),_vm._v(\" \"),(_vm.description)?_c('el-form-item',{attrs:{\"label\":_vm.$t('emoji.description')}},[_c('span',[_vm._v(_vm._s(_vm.description))])]):_vm._e(),_vm._v(\" \"),(_vm.license)?_c('el-form-item',{attrs:{\"label\":_vm.$t('emoji.license')}},[_c('span',[_vm._v(_vm._s(_vm.license))])]):_vm._e(),_vm._v(\" \"),(_vm.fallbackSrc)?_c('el-form-item',{attrs:{\"label\":_vm.$t('emoji.fallbackSrc')}},[_c('span',[_vm._v(_vm._s(_vm.fallbackSrc))])]):_vm._e(),_vm._v(\" \"),(_vm.fallbackSrc && _vm.fallbackSrc.trim() !== '')?_c('el-form-item',{attrs:{\"label\":_vm.$t('emoji.fallbackSrcSha')}},[_vm._v(\"\\n \"+_vm._s(_vm.pack.pack[\"fallback-src-sha256\"])+\"\\n \")]):_vm._e(),_vm._v(\" \"),_c('el-form-item',[(_vm.pack.pack['can-download'] && _vm.pack.pack['fallback-src'])?_c('el-link',{attrs:{\"href\":_vm.pack.pack['fallback-src'],\"underline\":false,\"type\":\"primary\",\"target\":\"_blank\"}},[_c('el-button',{staticClass:\"download-archive\"},[_vm._v(_vm._s(_vm.$t('emoji.downloadPackArchive')))])],1):_vm._e()],1)],1),_vm._v(\" \"),_c('el-collapse',{staticClass:\"contents-collapse\",on:{\"change\":function($event){return _vm.handleChange($event, _vm.name)}},model:{value:(_vm.showPackContent),callback:function ($$v) {_vm.showPackContent=$$v},expression:\"showPackContent\"}},[_c('el-collapse-item',{staticClass:\"no-background\",attrs:{\"title\":_vm.$t('emoji.manageEmoji'),\"name\":\"manageEmoji\"}},[(_vm.pack.files && Object.keys(_vm.pack.files).length > 0)?_c('div',_vm._l((_vm.pack.files),function(file,shortcode){return _c('single-emoji-editor',{key:shortcode,attrs:{\"host\":_vm.host,\"pack-name\":_vm.name,\"shortcode\":shortcode,\"file\":file,\"is-local\":_vm.isLocal}})}),1):_c('span',{staticClass:\"expl\"},[_vm._v(_vm._s(_vm.$t('emoji.emptyPack')))]),_vm._v(\" \"),_c('div',{staticClass:\"files-pagination\"},[_c('el-pagination',{attrs:{\"total\":_vm.remotePackFilesCount,\"current-page\":_vm.currentFilesPage,\"page-size\":_vm.pageSize,\"hide-on-single-page\":\"\",\"layout\":\"prev, pager, next\"},on:{\"current-change\":_vm.handleFilesPageChange}})],1)]),_vm._v(\" \"),_c('el-collapse-item',{staticClass:\"no-background\",attrs:{\"title\":_vm.$t('emoji.downloadPack'),\"name\":\"downloadPack\"}},[_c('p',[_vm._v(\"\\n \"+_vm._s(_vm.$t('emoji.thisWillDownload'))+\" \\\"\"+_vm._s(_vm.name)+\"\\\" \"+_vm._s(_vm.$t('emoji.downloadToCurrentInstance'))+\"\\n \\\"\"+_vm._s(_vm.downloadSharedAs.trim() === '' ? _vm.name : _vm.downloadSharedAs)+\"\\\" (\"+_vm._s(_vm.$t('emoji.canBeChanged'))+\").\\n \"+_vm._s(_vm.$t('emoji.willBeUsable'))+\".\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"download-shared-pack\"},[_c('el-input',{attrs:{\"placeholder\":_vm.$t('emoji.downloadAsOptional')},model:{value:(_vm.downloadSharedAs),callback:function ($$v) {_vm.downloadSharedAs=$$v},expression:\"downloadSharedAs\"}}),_vm._v(\" \"),_c('el-button',{staticClass:\"download-shared-pack-button\",attrs:{\"type\":\"primary\"},on:{\"click\":_vm.downloadFromInstance}},[_vm._v(\"\\n \"+_vm._s(_vm.isDesktop ? _vm.$t('emoji.downloadSharedPack') : _vm.$t('emoji.downloadSharedPackMobile'))+\"\\n \")])],1)])],1)],1):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./Emoji.vue?vue&type=template&id=ddcf856e&\"\nimport script from \"./Emoji.vue?vue&type=script&lang=js&\"\nexport * from \"./Emoji.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Emoji.vue?vue&type=style&index=0&id=ddcf856e&prod&rel=stylesheet%2Fscss&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"emoji-packs\"},[_c('div',{staticClass:\"emoji-header-container\"},[_c('div',{staticClass:\"emoji-packs-header-button-container\"},[_c('el-button',{staticClass:\"reload-emoji-button\",on:{\"click\":_vm.reloadEmoji}},[_vm._v(_vm._s(_vm.$t('emoji.reloadEmoji')))]),_vm._v(\" \"),_c('el-tooltip',{attrs:{\"content\":_vm.$t('emoji.importEmojiTooltip'),\"effects\":\"dark\",\"placement\":\"bottom\",\"popper-class\":\"import-pack-button\"}},[_c('el-button',{on:{\"click\":_vm.importFromFS}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('emoji.importPacks'))+\"\\n \")])],1)],1)]),_vm._v(\" \"),_c('el-tabs',{staticClass:\"emoji-packs-tabs\",attrs:{\"type\":\"card\"},model:{value:(_vm.activeTab),callback:function ($$v) {_vm.activeTab=$$v},expression:\"activeTab\"}},[(!_vm.emojiPacksDisabled)?_c('el-tab-pane',{attrs:{\"label\":_vm.$t('emoji.localPacks'),\"name\":\"local\"}},[_c('el-form',{staticClass:\"emoji-packs-form\",attrs:{\"label-width\":_vm.labelWidth}},[_c('el-form-item',{attrs:{\"label\":_vm.$t('emoji.localPacks')}},[_c('el-button',{on:{\"click\":_vm.refreshLocalPacks}},[_vm._v(_vm._s(_vm.$t('emoji.refreshLocalPacks')))])],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":_vm.$t('emoji.createLocalPack')}},[_c('div',{staticClass:\"create-pack\"},[_c('el-input',{attrs:{\"placeholder\":_vm.$t('users.name')},model:{value:(_vm.newPackName),callback:function ($$v) {_vm.newPackName=$$v},expression:\"newPackName\"}}),_vm._v(\" \"),_c('el-button',{staticClass:\"create-pack-button\",attrs:{\"disabled\":_vm.newPackName.trim() === ''},on:{\"click\":_vm.createLocalPack}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('users.create'))+\"\\n \")])],1),_vm._v(\" \"),_c('span',{staticClass:\"emoji-name-warning\"},[_vm._v(_vm._s(_vm.$t('emoji.emojiWarning')))])]),_vm._v(\" \"),(Object.keys(_vm.localPacks).length > 0)?_c('el-form-item',{attrs:{\"label\":_vm.$t('emoji.packs')}},_vm._l((_vm.localPacks),function(pack,name){return _c('el-collapse',{key:name,attrs:{\"accordion\":\"\"},on:{\"change\":_vm.closeRemoteTabs},model:{value:(_vm.activeLocalPack),callback:function ($$v) {_vm.activeLocalPack=$$v},expression:\"activeLocalPack\"}},[_c('local-emoji-pack',{ref:\"localEmojiPack\",refInFor:true,attrs:{\"name\":name,\"pack\":pack,\"host\":_vm.$store.getters.authHost,\"is-local\":true}})],1)}),1):_vm._e()],1),_vm._v(\" \"),_c('div',{staticClass:\"pagination\"},[_c('el-pagination',{attrs:{\"total\":_vm.localPacksCount,\"current-page\":_vm.currentLocalPacksPage,\"page-size\":_vm.pageSize,\"hide-on-single-page\":\"\",\"layout\":\"prev, pager, next\"},on:{\"current-change\":_vm.handleLocalPageChange}})],1)],1):_vm._e(),_vm._v(\" \"),(!_vm.emojiPacksDisabled)?_c('el-tab-pane',{attrs:{\"label\":_vm.$t('emoji.remotePacks'),\"name\":\"remote\"}},[_c('el-form',{staticClass:\"emoji-packs-form\",attrs:{\"label-width\":_vm.labelWidth}},[_c('el-form-item',{attrs:{\"label\":_vm.$t('emoji.remotePacks')}},[_c('div',{staticClass:\"create-pack\"},[_c('el-input',{attrs:{\"placeholder\":_vm.$t('emoji.remoteInstanceAddress')},model:{value:(_vm.remoteInstanceAddress),callback:function ($$v) {_vm.remoteInstanceAddress=$$v},expression:\"remoteInstanceAddress\"}}),_vm._v(\" \"),_c('el-button',{directives:[{name:\"loading\",rawName:\"v-loading.fullscreen.lock\",value:(_vm.fullscreenLoading),expression:\"fullscreenLoading\",modifiers:{\"fullscreen\":true,\"lock\":true}}],staticClass:\"create-pack-button\",attrs:{\"disabled\":_vm.remoteInstanceAddress.trim() === ''},on:{\"click\":_vm.refreshRemotePacks}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('emoji.refreshRemote'))+\"\\n \")])],1)]),_vm._v(\" \"),(Object.keys(_vm.remotePacks).length > 0)?_c('el-form-item',{attrs:{\"label\":_vm.$t('emoji.packs')}},_vm._l((_vm.remotePacks),function(pack,name){return _c('el-collapse',{key:name,attrs:{\"accordion\":\"\"},on:{\"change\":_vm.closeLocalTabs},model:{value:(_vm.activeRemotePack),callback:function ($$v) {_vm.activeRemotePack=$$v},expression:\"activeRemotePack\"}},[_c('remote-emoji-pack',{ref:\"remoteEmojiPack\",refInFor:true,attrs:{\"active-tab\":_vm.activeRemotePack,\"name\":name,\"pack\":pack,\"host\":_vm.$store.getters.authHost,\"is-local\":false}})],1)}),1):_vm._e()],1),_vm._v(\" \"),_c('div',{staticClass:\"pagination\"},[_c('el-pagination',{attrs:{\"total\":_vm.remotePacksCount,\"current-page\":_vm.currentRemotePacksPage,\"page-size\":_vm.pageSize,\"hide-on-single-page\":\"\",\"layout\":\"prev, pager, next\"},on:{\"current-change\":_vm.handleRemotePageChange}})],1)],1):_vm._e(),_vm._v(\" \"),_c('el-tab-pane',{attrs:{\"label\":_vm.$t('settings.settings'),\"name\":\"settings\"}},[(!_vm.loading)?_c('div',{staticClass:\"form-container\",class:_vm.isSidebarOpen},[_c('el-form',{attrs:{\"model\":_vm.emojiData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.settingsLabelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.emoji,\"data\":_vm.emojiData}})],1),_vm._v(\" \"),_c('div',{staticClass:\"submit-button-container\"},[_c('el-button',{staticClass:\"submit-button\",attrs:{\"type\":\"primary\"},on:{\"click\":_vm.onSubmit}},[_vm._v(\"Submit\")])],1)],1):_vm._e()])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div v-if=\"!loading\" :class=\"isSidebarOpen\" class=\"form-container\">\n <el-form :model=\"esshdData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"esshd\" :data=\"esshdData\"/>\n </el-form>\n <div class=\"submit-button-container\">\n <el-button class=\"submit-button\" type=\"primary\" @click=\"onSubmit\">{{ $t('settings.submit') }}</el-button>\n </div>\n </div>\n</template>\n\n<script>\nimport i18n from '@/lang'\nimport { mapGetters } from 'vuex'\nimport Setting from './Setting'\nimport _ from 'lodash'\n\nexport default {\n name: 'Esshd',\n components: { Setting },\n computed: {\n ...mapGetters([\n 'settings'\n ]),\n esshd() {\n return this.settings.description.find(setting => setting.group === ':esshd')\n },\n esshdData() {\n return _.get(this.settings.settings, [':esshd']) || {}\n },\n isMobile() {\n return this.$store.state.app.device === 'mobile'\n },\n isSidebarOpen() {\n return this.$store.state.app.sidebar.opened ? 'sidebar-opened' : 'sidebar-closed'\n },\n isTablet() {\n return this.$store.state.app.device === 'tablet'\n },\n labelPosition() {\n return this.isMobile ? 'top' : 'right'\n },\n labelWidth() {\n if (this.isMobile) {\n return '120px'\n } else if (this.isTablet) {\n return '200px'\n } else {\n return '280px'\n }\n },\n loading() {\n return this.settings.loading\n },\n searchQuery() {\n return this.$store.state.settings.searchQuery\n }\n },\n mounted() {\n if (this.searchQuery.length > 0) {\n const selectedSetting = document.querySelector(`[data-search=\"${this.searchQuery}\"]`)\n if (selectedSetting) {\n selectedSetting.scrollIntoView({ block: 'start', behavior: 'smooth' })\n }\n this.$store.dispatch('SetSearchQuery', '')\n }\n },\n methods: {\n toggleEsshd(value) {\n this.$store.dispatch('ToggleEsshd', value)\n },\n updateSetting(value, tab, input) {\n this.$store.dispatch('UpdateSettings', { tab, data: { [input]: value }})\n },\n async onSubmit() {\n try {\n await this.$store.dispatch('SubmitChanges')\n } catch (e) {\n return\n }\n this.$message({\n type: 'success',\n message: i18n.t('settings.success')\n })\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\n@import '../../styles/settings';\n@include settings\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Esshd.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Esshd.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Esshd.vue?vue&type=template&id=6dc10470&\"\nimport script from \"./Esshd.vue?vue&type=script&lang=js&\"\nexport * from \"./Esshd.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Esshd.vue?vue&type=style&index=0&id=6dc10470&prod&rel=stylesheet%2Fscss&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (!_vm.loading)?_c('div',{staticClass:\"form-container\",class:_vm.isSidebarOpen},[_c('el-form',{attrs:{\"model\":_vm.esshdData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.esshd,\"data\":_vm.esshdData}})],1),_vm._v(\" \"),_c('div',{staticClass:\"submit-button-container\"},[_c('el-button',{staticClass:\"submit-button\",attrs:{\"type\":\"primary\"},on:{\"click\":_vm.onSubmit}},[_vm._v(_vm._s(_vm.$t('settings.submit')))])],1)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FrontendStatusButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FrontendStatusButton.vue?vue&type=script&lang=js&\"","<template>\n <span>\n <el-button\n v-if=\"buttonLoading\"\n :loading=\"true\"\n disabled\n type=\"text\"\n size=\"small\">\n {{ $t('settings.inProcess') }}\n </el-button>\n <el-button\n v-else-if=\"frontend.installed\"\n disabled\n type=\"text\"\n size=\"small\">\n {{ $t('settings.installed') }}\n </el-button>\n <el-button\n v-else\n type=\"text\"\n size=\"small\"\n @click=\"installFrontend(frontend)\">\n {{ $t('settings.install') }}\n </el-button>\n </span>\n</template>\n\n<script>\nimport i18n from '@/lang'\n\nexport default {\n name: 'FrontendStatusButton',\n props: {\n frontend: {\n type: Object,\n default: function() {\n return {}\n }\n }\n },\n data() {\n return {\n buttonLoading: false\n }\n },\n methods: {\n async installFrontend({ name }) {\n this.buttonLoading = true\n try {\n await this.$store.dispatch('InstallFrontend', { name })\n } catch (e) {\n this.buttonLoading = false\n return\n }\n this.buttonLoading = false\n this.$message({\n message: i18n.t('settings.frontendSuccess'),\n type: 'success',\n duration: 5 * 1000\n })\n }\n }\n}\n</script>\n","<template>\n <el-form :label-position=\"labelPosition\" :label-width=\"labelWidth\" class=\"frontend-container\">\n <el-form-item class=\"description-container\">\n <span class=\"setting-label\">{{ $t('settings.availableFrontends') }}</span>\n <span class=\"expl no-top-margin\"><p>{{ $t('settings.installFrontends') }}</p></span>\n </el-form-item>\n <el-form-item>\n <el-table\n :data=\"availableFrontends\"\n class=\"frontends-table\">\n <el-table-column\n :label=\"$t('settings.name')\"\n prop=\"name\"\n width=\"120\"/>\n <el-table-column\n :label=\"$t('settings.git')\"\n prop=\"git\"/>\n <el-table-column\n :label=\"$t('settings.installed')\"\n prop=\"installed\">\n <template slot-scope=\"scope\">\n <frontend-status-button :frontend=\"scope.row\"/>\n </template>\n </el-table-column>\n </el-table>\n <div class=\"frontends-button-container\">\n <el-button\n :size=\"isDesktop ? 'medium' : 'mini'\"\n :icon=\"frontendInputOpen ? 'el-icon-minus' : 'el-icon-plus'\"\n circle\n @click=\"toggleFrontendInput\"/>\n <span class=\"icons-button-desc\">{{ $t('settings.installAnotherFrontend') }}</span>\n </div>\n <el-form v-if=\"frontendInputOpen\" ref=\"frontendFormData\" :rules=\"rules\" :model=\"frontendFormData\" label-width=\"130px\">\n <el-form-item :label=\"$t('settings.name')\" class=\"frontend-form-input\" prop=\"name\">\n <el-input v-model=\"frontendFormData.name\"/>\n </el-form-item>\n <el-form-item :label=\"$t('settings.ref')\" class=\"frontend-form-input\">\n <el-input v-model=\"frontendFormData.ref\"/>\n </el-form-item>\n <el-form-item :label=\"$t('settings.file')\" class=\"frontend-form-input\">\n <el-input v-model=\"frontendFormData.file\"/>\n </el-form-item>\n <el-form-item :label=\"$t('settings.buildUrl')\" class=\"frontend-form-input\">\n <el-input v-model=\"frontendFormData.buildUrl\"/>\n </el-form-item>\n <el-form-item :label=\"$t('settings.buildDir')\" class=\"frontend-form-input\">\n <el-input v-model=\"frontendFormData.buildDir\"/>\n </el-form-item>\n <el-form-item class=\"install-frontend-button\">\n <el-button :loading=\"buttonLoading\" type=\"primary\" @click=\"installNewFrontend\">{{ $t('settings.install') }}</el-button>\n </el-form-item>\n </el-form>\n </el-form-item>\n </el-form>\n</template>\n\n<script>\nimport i18n from '@/lang'\nimport { mapGetters } from 'vuex'\nimport FrontendStatusButton from './FrontendStatusButton'\n\nexport default {\n name: 'FrontendsTable',\n components: { FrontendStatusButton },\n data() {\n return {\n buttonLoading: false,\n frontendInputOpen: false,\n frontendFormData: {\n name: '',\n ref: '',\n file: '',\n buildUrl: '',\n buildDir: ''\n },\n rules: {\n name: { required: true, message: 'Please input Name', trigger: 'blur' }\n }\n }\n },\n computed: {\n ...mapGetters([\n 'settings'\n ]),\n availableFrontends() {\n return this.settings.frontends\n },\n labelPosition() {\n return this.isMobile ? 'top' : 'right'\n },\n labelWidth() {\n if (this.isMobile) {\n return '120px'\n } else if (this.isTablet) {\n return '200px'\n } else {\n return '280px'\n }\n },\n isDesktop() {\n return this.$store.state.app.device === 'desktop'\n },\n isMobile() {\n return this.$store.state.app.device === 'mobile'\n },\n isTablet() {\n return this.$store.state.app.device === 'tablet'\n }\n },\n async mounted() {\n await this.$store.dispatch('FetchFrontends')\n },\n methods: {\n installNewFrontend() {\n this.$refs['frontendFormData'].validate(async(valid) => {\n if (valid) {\n this.buttonLoading = true\n try {\n await this.$store.dispatch('InstallFrontend', this.frontendFormData)\n } catch (e) {\n this.buttonLoading = false\n return\n }\n this.buttonLoading = false\n this.$message({\n message: i18n.t('settings.frontendSuccess'),\n type: 'success',\n duration: 5 * 1000\n })\n this.frontendFormData = {\n name: '',\n ref: '',\n file: '',\n buildUrl: '',\n buildDir: ''\n }\n } else {\n return false\n }\n })\n },\n toggleFrontendInput() {\n this.frontendInputOpen = !this.frontendInputOpen\n }\n }\n}\n</script>\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FrontendsTable.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FrontendsTable.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FrontendStatusButton.vue?vue&type=template&id=80ce8cdc&\"\nimport script from \"./FrontendStatusButton.vue?vue&type=script&lang=js&\"\nexport * from \"./FrontendStatusButton.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',[(_vm.buttonLoading)?_c('el-button',{attrs:{\"loading\":true,\"disabled\":\"\",\"type\":\"text\",\"size\":\"small\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.inProcess'))+\"\\n \")]):(_vm.frontend.installed)?_c('el-button',{attrs:{\"disabled\":\"\",\"type\":\"text\",\"size\":\"small\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.installed'))+\"\\n \")]):_c('el-button',{attrs:{\"type\":\"text\",\"size\":\"small\"},on:{\"click\":function($event){return _vm.installFrontend(_vm.frontend)}}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.install'))+\"\\n \")])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div v-if=\"!loading\" :class=\"isSidebarOpen\" class=\"form-container\">\n <frontends-table />\n <el-divider v-if=\"frontend\" class=\"divider thick-line\"/>\n <el-form :model=\"frontendData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"frontend\" :data=\"frontendData\"/>\n </el-form>\n <el-divider v-if=\"frontend\" class=\"divider thick-line\"/>\n <el-form :model=\"staticFeData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"staticFe\" :data=\"staticFeData\"/>\n </el-form>\n <el-divider v-if=\"staticFe\" class=\"divider thick-line\"/>\n <el-form :model=\"frontendsData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"frontends\" :data=\"frontendsData\"/>\n </el-form>\n <el-divider v-if=\"frontends\" class=\"divider thick-line\"/>\n <el-form :model=\"assetsData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"assets\" :data=\"assetsData\"/>\n </el-form>\n <el-divider v-if=\"assets\" class=\"divider thick-line\"/>\n <el-form :model=\"chatData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"chat\" :data=\"chatData\"/>\n </el-form>\n <el-divider v-if=\"chat\" class=\"divider thick-line\"/>\n <el-form :model=\"markupData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"markup\" :data=\"markupData\"/>\n </el-form>\n <el-divider v-if=\"preload\" class=\"divider thick-line\"/>\n <el-form :model=\"preloadData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"preload\" :data=\"preloadData\"/>\n </el-form>\n <div class=\"submit-button-container\">\n <el-button class=\"submit-button\" type=\"primary\" @click=\"onSubmit\">{{ $t('settings.submit') }}</el-button>\n </div>\n </div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex'\nimport i18n from '@/lang'\nimport Setting from './Setting'\nimport FrontendsTable from './inputComponents/FrontendsTable'\nimport _ from 'lodash'\n\nexport default {\n name: 'Frontend',\n components: { FrontendsTable, Setting },\n computed: {\n ...mapGetters([\n 'settings'\n ]),\n assets() {\n return this.settings.description.find(setting => setting.key === ':assets')\n },\n assetsData() {\n return _.get(this.settings.settings, [':pleroma', ':assets']) || {}\n },\n chat() {\n return this.settings.description.find(setting => setting.key === ':chat')\n },\n chatData() {\n return _.get(this.settings.settings, [':pleroma', ':chat']) || {}\n },\n frontend() {\n return this.settings.description.find(setting => setting.key === ':frontend_configurations')\n },\n frontendData() {\n return _.get(this.settings.settings, [':pleroma', ':frontend_configurations']) || {}\n },\n frontends() {\n return this.settings.description.find(setting => setting.key === ':frontends')\n },\n frontendsData() {\n return _.get(this.settings.settings, [':pleroma', ':frontends']) || {}\n },\n isDesktop() {\n return this.$store.state.app.device === 'desktop'\n },\n isMobile() {\n return this.$store.state.app.device === 'mobile'\n },\n isSidebarOpen() {\n return this.$store.state.app.sidebar.opened ? 'sidebar-opened' : 'sidebar-closed'\n },\n isTablet() {\n return this.$store.state.app.device === 'tablet'\n },\n labelPosition() {\n return this.isMobile ? 'top' : 'right'\n },\n labelWidth() {\n if (this.isMobile) {\n return '120px'\n } else if (this.isTablet) {\n return '200px'\n } else {\n return '280px'\n }\n },\n loading() {\n return this.settings.loading\n },\n markup() {\n return this.settings.description.find(setting => setting.key === ':markup')\n },\n markupData() {\n return _.get(this.settings.settings, [':pleroma', ':markup']) || {}\n },\n preload() {\n return this.settings.description.find(setting => setting.key === 'Pleroma.Web.Preload')\n },\n preloadData() {\n return _.get(this.settings.settings, [':pleroma', 'Pleroma.Web.Preload']) || {}\n },\n searchQuery() {\n return this.$store.state.settings.searchQuery\n },\n staticFe() {\n return this.settings.description.find(setting => setting.key === ':static_fe')\n },\n staticFeData() {\n return _.get(this.settings.settings, [':pleroma', ':static_fe']) || {}\n }\n },\n mounted() {\n if (this.searchQuery.length > 0) {\n const selectedSetting = document.querySelector(`[data-search=\"${this.searchQuery}\"]`)\n if (selectedSetting) {\n selectedSetting.scrollIntoView({ block: 'start', behavior: 'smooth' })\n }\n this.$store.dispatch('SetSearchQuery', '')\n }\n },\n methods: {\n async onSubmit() {\n try {\n await this.$store.dispatch('SubmitChanges')\n } catch (e) {\n return\n }\n this.$message({\n type: 'success',\n message: i18n.t('settings.success')\n })\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\n@import '../../styles/settings';\n@include settings\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Frontend.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Frontend.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FrontendsTable.vue?vue&type=template&id=715b8fd6&\"\nimport script from \"./FrontendsTable.vue?vue&type=script&lang=js&\"\nexport * from \"./FrontendsTable.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('el-form',{staticClass:\"frontend-container\",attrs:{\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('el-form-item',{staticClass:\"description-container\"},[_c('span',{staticClass:\"setting-label\"},[_vm._v(_vm._s(_vm.$t('settings.availableFrontends')))]),_vm._v(\" \"),_c('span',{staticClass:\"expl no-top-margin\"},[_c('p',[_vm._v(_vm._s(_vm.$t('settings.installFrontends')))])])]),_vm._v(\" \"),_c('el-form-item',[_c('el-table',{staticClass:\"frontends-table\",attrs:{\"data\":_vm.availableFrontends}},[_c('el-table-column',{attrs:{\"label\":_vm.$t('settings.name'),\"prop\":\"name\",\"width\":\"120\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":_vm.$t('settings.git'),\"prop\":\"git\"}}),_vm._v(\" \"),_c('el-table-column',{attrs:{\"label\":_vm.$t('settings.installed'),\"prop\":\"installed\"},scopedSlots:_vm._u([{key:\"default\",fn:function(scope){return [_c('frontend-status-button',{attrs:{\"frontend\":scope.row}})]}}])})],1),_vm._v(\" \"),_c('div',{staticClass:\"frontends-button-container\"},[_c('el-button',{attrs:{\"size\":_vm.isDesktop ? 'medium' : 'mini',\"icon\":_vm.frontendInputOpen ? 'el-icon-minus' : 'el-icon-plus',\"circle\":\"\"},on:{\"click\":_vm.toggleFrontendInput}}),_vm._v(\" \"),_c('span',{staticClass:\"icons-button-desc\"},[_vm._v(_vm._s(_vm.$t('settings.installAnotherFrontend')))])],1),_vm._v(\" \"),(_vm.frontendInputOpen)?_c('el-form',{ref:\"frontendFormData\",attrs:{\"rules\":_vm.rules,\"model\":_vm.frontendFormData,\"label-width\":\"130px\"}},[_c('el-form-item',{staticClass:\"frontend-form-input\",attrs:{\"label\":_vm.$t('settings.name'),\"prop\":\"name\"}},[_c('el-input',{model:{value:(_vm.frontendFormData.name),callback:function ($$v) {_vm.$set(_vm.frontendFormData, \"name\", $$v)},expression:\"frontendFormData.name\"}})],1),_vm._v(\" \"),_c('el-form-item',{staticClass:\"frontend-form-input\",attrs:{\"label\":_vm.$t('settings.ref')}},[_c('el-input',{model:{value:(_vm.frontendFormData.ref),callback:function ($$v) {_vm.$set(_vm.frontendFormData, \"ref\", $$v)},expression:\"frontendFormData.ref\"}})],1),_vm._v(\" \"),_c('el-form-item',{staticClass:\"frontend-form-input\",attrs:{\"label\":_vm.$t('settings.file')}},[_c('el-input',{model:{value:(_vm.frontendFormData.file),callback:function ($$v) {_vm.$set(_vm.frontendFormData, \"file\", $$v)},expression:\"frontendFormData.file\"}})],1),_vm._v(\" \"),_c('el-form-item',{staticClass:\"frontend-form-input\",attrs:{\"label\":_vm.$t('settings.buildUrl')}},[_c('el-input',{model:{value:(_vm.frontendFormData.buildUrl),callback:function ($$v) {_vm.$set(_vm.frontendFormData, \"buildUrl\", $$v)},expression:\"frontendFormData.buildUrl\"}})],1),_vm._v(\" \"),_c('el-form-item',{staticClass:\"frontend-form-input\",attrs:{\"label\":_vm.$t('settings.buildDir')}},[_c('el-input',{model:{value:(_vm.frontendFormData.buildDir),callback:function ($$v) {_vm.$set(_vm.frontendFormData, \"buildDir\", $$v)},expression:\"frontendFormData.buildDir\"}})],1),_vm._v(\" \"),_c('el-form-item',{staticClass:\"install-frontend-button\"},[_c('el-button',{attrs:{\"loading\":_vm.buttonLoading,\"type\":\"primary\"},on:{\"click\":_vm.installNewFrontend}},[_vm._v(_vm._s(_vm.$t('settings.install')))])],1)],1):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./Frontend.vue?vue&type=template&id=5f24ced6&\"\nimport script from \"./Frontend.vue?vue&type=script&lang=js&\"\nexport * from \"./Frontend.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Frontend.vue?vue&type=style&index=0&id=5f24ced6&prod&rel=stylesheet%2Fscss&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (!_vm.loading)?_c('div',{staticClass:\"form-container\",class:_vm.isSidebarOpen},[_c('frontends-table'),_vm._v(\" \"),(_vm.frontend)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e(),_vm._v(\" \"),_c('el-form',{attrs:{\"model\":_vm.frontendData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.frontend,\"data\":_vm.frontendData}})],1),_vm._v(\" \"),(_vm.frontend)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e(),_vm._v(\" \"),_c('el-form',{attrs:{\"model\":_vm.staticFeData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.staticFe,\"data\":_vm.staticFeData}})],1),_vm._v(\" \"),(_vm.staticFe)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e(),_vm._v(\" \"),_c('el-form',{attrs:{\"model\":_vm.frontendsData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.frontends,\"data\":_vm.frontendsData}})],1),_vm._v(\" \"),(_vm.frontends)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e(),_vm._v(\" \"),_c('el-form',{attrs:{\"model\":_vm.assetsData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.assets,\"data\":_vm.assetsData}})],1),_vm._v(\" \"),(_vm.assets)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e(),_vm._v(\" \"),_c('el-form',{attrs:{\"model\":_vm.chatData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.chat,\"data\":_vm.chatData}})],1),_vm._v(\" \"),(_vm.chat)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e(),_vm._v(\" \"),_c('el-form',{attrs:{\"model\":_vm.markupData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.markup,\"data\":_vm.markupData}})],1),_vm._v(\" \"),(_vm.preload)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e(),_vm._v(\" \"),_c('el-form',{attrs:{\"model\":_vm.preloadData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.preload,\"data\":_vm.preloadData}})],1),_vm._v(\" \"),_c('div',{staticClass:\"submit-button-container\"},[_c('el-button',{staticClass:\"submit-button\",attrs:{\"type\":\"primary\"},on:{\"click\":_vm.onSubmit}},[_vm._v(_vm._s(_vm.$t('settings.submit')))])],1)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div v-if=\"!loading\" :class=\"isSidebarOpen\" class=\"form-container\">\n <el-form v-if=\"!loading\" :model=\"gopherData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"gopher\" :data=\"gopherData\"/>\n </el-form>\n <div class=\"submit-button-container\">\n <el-button class=\"submit-button\" type=\"primary\" @click=\"onSubmit\">{{ $t('settings.submit') }}</el-button>\n </div>\n </div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex'\nimport i18n from '@/lang'\nimport Setting from './Setting'\nimport _ from 'lodash'\n\nexport default {\n name: 'Gopher',\n components: { Setting },\n computed: {\n ...mapGetters([\n 'settings'\n ]),\n gopher() {\n return this.settings.description.find(setting => setting.key === ':gopher')\n },\n gopherData() {\n return _.get(this.settings.settings, [':pleroma', ':gopher']) || {}\n },\n isMobile() {\n return this.$store.state.app.device === 'mobile'\n },\n isSidebarOpen() {\n return this.$store.state.app.sidebar.opened ? 'sidebar-opened' : 'sidebar-closed'\n },\n isTablet() {\n return this.$store.state.app.device === 'tablet'\n },\n labelPosition() {\n return this.isMobile ? 'top' : 'right'\n },\n labelWidth() {\n if (this.isMobile) {\n return '120px'\n } else if (this.isTablet) {\n return '200px'\n } else {\n return '280px'\n }\n },\n loading() {\n return this.settings.loading\n },\n searchQuery() {\n return this.$store.state.settings.searchQuery\n }\n },\n mounted() {\n if (this.searchQuery.length > 0) {\n const selectedSetting = document.querySelector(`[data-search=\"${this.searchQuery}\"]`)\n if (selectedSetting) {\n selectedSetting.scrollIntoView({ block: 'start', behavior: 'smooth' })\n }\n this.$store.dispatch('SetSearchQuery', '')\n }\n },\n methods: {\n async onSubmit() {\n try {\n await this.$store.dispatch('SubmitChanges')\n } catch (e) {\n return\n }\n this.$message({\n type: 'success',\n message: i18n.t('settings.success')\n })\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\n@import '../../styles/settings';\n@include settings\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Gopher.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Gopher.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Gopher.vue?vue&type=template&id=14962b4f&\"\nimport script from \"./Gopher.vue?vue&type=script&lang=js&\"\nexport * from \"./Gopher.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Gopher.vue?vue&type=style&index=0&id=14962b4f&prod&rel=stylesheet%2Fscss&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (!_vm.loading)?_c('div',{staticClass:\"form-container\",class:_vm.isSidebarOpen},[(!_vm.loading)?_c('el-form',{attrs:{\"model\":_vm.gopherData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.gopher,\"data\":_vm.gopherData}})],1):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"submit-button-container\"},[_c('el-button',{staticClass:\"submit-button\",attrs:{\"type\":\"primary\"},on:{\"click\":_vm.onSubmit}},[_vm._v(_vm._s(_vm.$t('settings.submit')))])],1)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div v-if=\"!loading\" :class=\"isSidebarOpen\" class=\"form-container\">\n <el-form :model=\"httpData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"http\" :data=\"httpData\"/>\n </el-form>\n <el-divider v-if=\"http\" class=\"divider thick-line\"/>\n <el-form :model=\"corsPlugData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"corsPlug\" :data=\"corsPlugData\"/>\n </el-form>\n <el-divider v-if=\"corsPlug\" class=\"divider thick-line\"/>\n <el-form :model=\"httpSecurityData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"httpSecurity\" :data=\"httpSecurityData\"/>\n </el-form>\n <el-divider v-if=\"webCacheTtl\" class=\"divider thick-line\"/>\n <el-form :model=\"webCacheTtlData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"webCacheTtl\" :data=\"webCacheTtlData\"/>\n </el-form>\n <div class=\"submit-button-container\">\n <el-button class=\"submit-button\" type=\"primary\" @click=\"onSubmit\">{{ $t('settings.submit') }}</el-button>\n </div>\n </div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex'\nimport i18n from '@/lang'\nimport Setting from './Setting'\nimport _ from 'lodash'\n\nexport default {\n name: 'HTTP',\n components: { Setting },\n computed: {\n ...mapGetters([\n 'settings'\n ]),\n corsPlug() {\n return this.settings.description.find(setting => setting.group === ':cors_plug')\n },\n corsPlugData() {\n return _.get(this.settings.settings, [':cors_plug']) || {}\n },\n http() {\n return this.settings.description.find(setting => setting.key === ':http')\n },\n httpData() {\n return _.get(this.settings.settings, [':pleroma', ':http']) || {}\n },\n httpSecurity() {\n return this.settings.description.find(setting => setting.key === ':http_security')\n },\n httpSecurityData() {\n return _.get(this.settings.settings, [':pleroma', ':http_security']) || {}\n },\n isMobile() {\n return this.$store.state.app.device === 'mobile'\n },\n isSidebarOpen() {\n return this.$store.state.app.sidebar.opened ? 'sidebar-opened' : 'sidebar-closed'\n },\n isTablet() {\n return this.$store.state.app.device === 'tablet'\n },\n labelPosition() {\n return this.isMobile ? 'top' : 'right'\n },\n labelWidth() {\n if (this.isMobile) {\n return '120px'\n } else if (this.isTablet) {\n return '200px'\n } else {\n return '280px'\n }\n },\n loading() {\n return this.settings.loading\n },\n searchQuery() {\n return this.$store.state.settings.searchQuery\n },\n webCacheTtl() {\n return this.settings.description.find(setting => setting.key === ':web_cache_ttl')\n },\n webCacheTtlData() {\n return _.get(this.settings.settings, [':pleroma', ':web_cache_ttl']) || {}\n }\n },\n mounted() {\n if (this.searchQuery.length > 0) {\n const selectedSetting = document.querySelector(`[data-search=\"${this.searchQuery}\"]`)\n if (selectedSetting) {\n selectedSetting.scrollIntoView({ block: 'start', behavior: 'smooth' })\n }\n this.$store.dispatch('SetSearchQuery', '')\n }\n },\n methods: {\n async onSubmit() {\n try {\n await this.$store.dispatch('SubmitChanges')\n } catch (e) {\n return\n }\n this.$message({\n type: 'success',\n message: i18n.t('settings.success')\n })\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\n@import '../../styles/settings';\n@include settings\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Http.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Http.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Http.vue?vue&type=template&id=3fb4d6e6&\"\nimport script from \"./Http.vue?vue&type=script&lang=js&\"\nexport * from \"./Http.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Http.vue?vue&type=style&index=0&id=3fb4d6e6&prod&rel=stylesheet%2Fscss&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (!_vm.loading)?_c('div',{staticClass:\"form-container\",class:_vm.isSidebarOpen},[_c('el-form',{attrs:{\"model\":_vm.httpData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.http,\"data\":_vm.httpData}})],1),_vm._v(\" \"),(_vm.http)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e(),_vm._v(\" \"),_c('el-form',{attrs:{\"model\":_vm.corsPlugData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.corsPlug,\"data\":_vm.corsPlugData}})],1),_vm._v(\" \"),(_vm.corsPlug)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e(),_vm._v(\" \"),_c('el-form',{attrs:{\"model\":_vm.httpSecurityData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.httpSecurity,\"data\":_vm.httpSecurityData}})],1),_vm._v(\" \"),(_vm.webCacheTtl)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e(),_vm._v(\" \"),_c('el-form',{attrs:{\"model\":_vm.webCacheTtlData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.webCacheTtl,\"data\":_vm.webCacheTtlData}})],1),_vm._v(\" \"),_c('div',{staticClass:\"submit-button-container\"},[_c('el-button',{staticClass:\"submit-button\",attrs:{\"type\":\"primary\"},on:{\"click\":_vm.onSubmit}},[_vm._v(_vm._s(_vm.$t('settings.submit')))])],1)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div v-if=\"!loading\" :class=\"isSidebarOpen\" class=\"form-container\">\n <el-form :model=\"instanceData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"instance\" :data=\"instanceData\"/>\n </el-form>\n <editor-input v-model=\"instancePanelContent\" :name=\"'instance-panel'\" @input=\"handleEditorUpdate\"/>\n <el-divider v-if=\"instance\" class=\"divider thick-line\"/>\n <el-form :model=\"restrictUnauthenticatedData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"restrictUnauthenticated\" :data=\"restrictUnauthenticatedData\"/>\n </el-form>\n <el-divider v-if=\"restrictUnauthenticated\" class=\"divider thick-line\"/>\n <el-form :model=\"adminTokenData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"adminToken\" :data=\"adminTokenData\"/>\n </el-form>\n <el-divider v-if=\"adminToken\" class=\"divider thick-line\"/>\n <el-form :model=\"welcomeData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"welcome\" :data=\"welcomeData\"/>\n </el-form>\n <el-divider v-if=\"welcome\" class=\"divider thick-line\"/>\n <el-form :model=\"scheduledActivityData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"scheduledActivity\" :data=\"scheduledActivityData\"/>\n </el-form>\n <el-divider v-if=\"scheduledActivity\" class=\"divider thick-line\"/>\n <el-form :model=\"manifestData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"manifest\" :data=\"manifestData\"/>\n </el-form>\n <el-divider v-if=\"manifest\" class=\"divider thick-line\"/>\n <el-form :model=\"pleromaUserData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\" data-search=\"Pleroma.User\">\n <setting :setting-group=\"pleromaUser\" :data=\"pleromaUserData\"/>\n </el-form>\n <el-divider v-if=\"pleromaUser\" class=\"divider thick-line\"/>\n <el-form :model=\"faviconsData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"favicons\" :data=\"faviconsData\"/>\n </el-form>\n <el-divider v-if=\"favicons\" class=\"divider thick-line\"/>\n <el-form :model=\"uriSchemesData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"uriSchemes\" :data=\"uriSchemesData\"/>\n </el-form>\n <el-divider v-if=\"uriSchemes\" class=\"divider thick-line\"/>\n <el-form :model=\"feedData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"feed\" :data=\"feedData\"/>\n </el-form>\n <el-divider v-if=\"feed\" class=\"divider thick-line\"/>\n <el-form :model=\"streamerData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"streamer\" :data=\"streamerData\"/>\n </el-form>\n <div class=\"submit-button-container\">\n <el-button class=\"submit-button\" type=\"primary\" @click=\"onSubmit\">{{ $t('settings.submit') }}</el-button>\n </div>\n </div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex'\nimport i18n from '@/lang'\nimport Setting from './Setting'\nimport { EditorInput } from './inputComponents'\nimport _ from 'lodash'\n\nexport default {\n name: 'Instance',\n components: {\n EditorInput,\n Setting\n },\n data() {\n return {\n editorContent: ''\n }\n },\n computed: {\n ...mapGetters([\n 'settings'\n ]),\n adminToken() {\n return this.settings.description.find(setting => setting.children && setting.children[0].key === ':admin_token')\n },\n adminTokenData() {\n return _.get(this.settings.settings, [':pleroma', ':admin_token']) || {}\n },\n instancePanelContent: {\n get() {\n return this.$store.state.settings.instancePanel\n },\n set(content) {\n this.editorContent = content\n }\n },\n favicons() {\n return this.settings.description.find(setting => setting.key === ':instances_favicons')\n },\n faviconsData() {\n return _.get(this.settings.settings, [':pleroma', ':instances_favicons']) || {}\n },\n feed() {\n return this.settings.description.find(setting => setting.key === ':feed')\n },\n feedData() {\n return _.get(this.settings.settings, [':pleroma', ':feed']) || {}\n },\n instance() {\n return this.settings.description.find(setting => setting.key === ':instance')\n },\n instanceData() {\n return _.get(this.settings.settings, [':pleroma', ':instance']) || {}\n },\n isMobile() {\n return this.$store.state.app.device === 'mobile'\n },\n isSidebarOpen() {\n return this.$store.state.app.sidebar.opened ? 'sidebar-opened' : 'sidebar-closed'\n },\n isTablet() {\n return this.$store.state.app.device === 'tablet'\n },\n labelPosition() {\n return this.isMobile ? 'top' : 'right'\n },\n labelWidth() {\n if (this.isMobile) {\n return '120px'\n } else if (this.isTablet) {\n return '200px'\n } else {\n return '280px'\n }\n },\n loading() {\n return this.settings.loading\n },\n manifest() {\n return this.settings.description.find(setting => setting.key === ':manifest')\n },\n manifestData() {\n return _.get(this.settings.settings, [':pleroma', ':manifest']) || {}\n },\n pleromaUser() {\n return this.settings.description.find(setting => setting.key === 'Pleroma.User')\n },\n pleromaUserData() {\n return _.get(this.settings.settings, [':pleroma', 'Pleroma.User']) || {}\n },\n restrictUnauthenticated() {\n return this.settings.description.find(setting => setting.key === ':restrict_unauthenticated')\n },\n restrictUnauthenticatedData() {\n return _.get(this.settings.settings, [':pleroma', ':restrict_unauthenticated']) || {}\n },\n searchQuery() {\n return this.$store.state.settings.searchQuery\n },\n scheduledActivity() {\n return this.$store.state.settings.description.find(setting => setting.key === 'Pleroma.ScheduledActivity')\n },\n scheduledActivityData() {\n return _.get(this.settings.settings, [':pleroma', 'Pleroma.ScheduledActivity']) || {}\n },\n streamer() {\n return this.$store.state.settings.description.find(setting => setting.key === ':streamer')\n },\n streamerData() {\n return _.get(this.settings.settings, [':pleroma', ':streamer']) || {}\n },\n uriSchemes() {\n return this.settings.description.find(setting => setting.key === ':uri_schemes')\n },\n uriSchemesData() {\n return _.get(this.settings.settings, [':pleroma', ':uri_schemes']) || {}\n },\n welcome() {\n return this.settings.description.find(setting => setting.key === ':welcome')\n },\n welcomeData() {\n return _.get(this.settings.settings, [':pleroma', ':welcome']) || {}\n }\n },\n async mounted() {\n if (this.searchQuery.length > 0) {\n const selectedSetting = document.querySelector(`[data-search=\"${this.searchQuery}\"]`)\n if (selectedSetting) {\n selectedSetting.scrollIntoView({ block: 'start', behavior: 'smooth' })\n }\n this.$store.dispatch('SetSearchQuery', '')\n }\n\n await this.$store.dispatch('FetchInstanceDocument', 'instance-panel')\n },\n methods: {\n handleEditorUpdate(content) {\n this.editorContent = content\n },\n async onSubmit() {\n try {\n await this.$store.dispatch('SubmitChanges')\n await this.$store.dispatch('UpdateInstanceDocs', {\n name: 'instance-panel',\n content: this.editorContent.length > 0 ? this.editorContent : this.instancePanelContent\n })\n } catch (e) {\n return\n }\n this.$message({\n type: 'success',\n message: i18n.t('settings.success')\n })\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\n@import '../../styles/settings';\n@include settings\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Instance.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Instance.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Instance.vue?vue&type=template&id=4f7613b2&\"\nimport script from \"./Instance.vue?vue&type=script&lang=js&\"\nexport * from \"./Instance.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Instance.vue?vue&type=style&index=0&id=4f7613b2&prod&rel=stylesheet%2Fscss&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (!_vm.loading)?_c('div',{staticClass:\"form-container\",class:_vm.isSidebarOpen},[_c('el-form',{attrs:{\"model\":_vm.instanceData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.instance,\"data\":_vm.instanceData}})],1),_vm._v(\" \"),_c('editor-input',{attrs:{\"name\":'instance-panel'},on:{\"input\":_vm.handleEditorUpdate},model:{value:(_vm.instancePanelContent),callback:function ($$v) {_vm.instancePanelContent=$$v},expression:\"instancePanelContent\"}}),_vm._v(\" \"),(_vm.instance)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e(),_vm._v(\" \"),_c('el-form',{attrs:{\"model\":_vm.restrictUnauthenticatedData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.restrictUnauthenticated,\"data\":_vm.restrictUnauthenticatedData}})],1),_vm._v(\" \"),(_vm.restrictUnauthenticated)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e(),_vm._v(\" \"),_c('el-form',{attrs:{\"model\":_vm.adminTokenData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.adminToken,\"data\":_vm.adminTokenData}})],1),_vm._v(\" \"),(_vm.adminToken)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e(),_vm._v(\" \"),_c('el-form',{attrs:{\"model\":_vm.welcomeData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.welcome,\"data\":_vm.welcomeData}})],1),_vm._v(\" \"),(_vm.welcome)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e(),_vm._v(\" \"),_c('el-form',{attrs:{\"model\":_vm.scheduledActivityData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.scheduledActivity,\"data\":_vm.scheduledActivityData}})],1),_vm._v(\" \"),(_vm.scheduledActivity)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e(),_vm._v(\" \"),_c('el-form',{attrs:{\"model\":_vm.manifestData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.manifest,\"data\":_vm.manifestData}})],1),_vm._v(\" \"),(_vm.manifest)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e(),_vm._v(\" \"),_c('el-form',{attrs:{\"model\":_vm.pleromaUserData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth,\"data-search\":\"Pleroma.User\"}},[_c('setting',{attrs:{\"setting-group\":_vm.pleromaUser,\"data\":_vm.pleromaUserData}})],1),_vm._v(\" \"),(_vm.pleromaUser)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e(),_vm._v(\" \"),_c('el-form',{attrs:{\"model\":_vm.faviconsData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.favicons,\"data\":_vm.faviconsData}})],1),_vm._v(\" \"),(_vm.favicons)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e(),_vm._v(\" \"),_c('el-form',{attrs:{\"model\":_vm.uriSchemesData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.uriSchemes,\"data\":_vm.uriSchemesData}})],1),_vm._v(\" \"),(_vm.uriSchemes)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e(),_vm._v(\" \"),_c('el-form',{attrs:{\"model\":_vm.feedData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.feed,\"data\":_vm.feedData}})],1),_vm._v(\" \"),(_vm.feed)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e(),_vm._v(\" \"),_c('el-form',{attrs:{\"model\":_vm.streamerData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.streamer,\"data\":_vm.streamerData}})],1),_vm._v(\" \"),_c('div',{staticClass:\"submit-button-container\"},[_c('el-button',{staticClass:\"submit-button\",attrs:{\"type\":\"primary\"},on:{\"click\":_vm.onSubmit}},[_vm._v(_vm._s(_vm.$t('settings.submit')))])],1)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div v-if=\"!loading\" :class=\"isSidebarOpen\" class=\"form-container\">\n <el-form :model=\"obanQueuesData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"obanQueues\" :data=\"obanQueuesData\"/>\n </el-form>\n <el-divider v-if=\"obanQueues\" class=\"divider thick-line\"/>\n <el-form :model=\"workersData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"workers\" :data=\"workersData\"/>\n </el-form>\n <el-divider v-if=\"workers\" class=\"divider thick-line\"/>\n <el-form :model=\"activityExpirationData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"activityExpiration\" :data=\"activityExpirationData\"/>\n </el-form>\n <el-divider v-if=\"activityExpiration\" class=\"divider thick-line\"/>\n <el-form :model=\"connectionsPoolsData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"connectionsPools\" :data=\"connectionsPoolsData\"/>\n </el-form>\n <el-divider v-if=\"connectionsPools\" class=\"divider thick-line\"/>\n <el-form :model=\"poolsData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"pools\" :data=\"poolsData\"/>\n </el-form>\n <el-divider v-if=\"pools\" class=\"divider thick-line\"/>\n <el-form :model=\"hackneyPoolsData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"hackneyPools\" :data=\"hackneyPoolsData\"/>\n </el-form>\n <div class=\"submit-button-container\">\n <el-button class=\"submit-button\" type=\"primary\" @click=\"onSubmit\">{{ $t('settings.submit') }}</el-button>\n </div>\n </div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex'\nimport i18n from '@/lang'\nimport Setting from './Setting'\nimport _ from 'lodash'\n\nexport default {\n name: 'JobQueue',\n components: { Setting },\n computed: {\n ...mapGetters([\n 'settings'\n ]),\n activityExpiration() {\n return this.settings.description.find(setting => setting.key === 'Pleroma.Workers.PurgeExpiredActivity')\n },\n activityExpirationData() {\n return _.get(this.settings.settings, [':pleroma', 'Pleroma.Workers.PurgeExpiredActivity']) || {}\n },\n connectionsPools() {\n return this.settings.description.find(setting => setting.key === ':connections_pool')\n },\n connectionsPoolsData() {\n return _.get(this.settings.settings, [':pleroma', ':connections_pool']) || {}\n },\n hackneyPools() {\n return this.settings.description.find(setting => setting.key === ':hackney_pools')\n },\n hackneyPoolsData() {\n return _.get(this.settings.settings, [':pleroma', ':hackney_pools']) || {}\n },\n isMobile() {\n return this.$store.state.app.device === 'mobile'\n },\n isSidebarOpen() {\n return this.$store.state.app.sidebar.opened ? 'sidebar-opened' : 'sidebar-closed'\n },\n isTablet() {\n return this.$store.state.app.device === 'tablet'\n },\n labelPosition() {\n return this.isMobile ? 'top' : 'right'\n },\n labelWidth() {\n if (this.isMobile) {\n return '120px'\n } else if (this.isTablet) {\n return '200px'\n } else {\n return '280px'\n }\n },\n loading() {\n return this.settings.loading\n },\n obanQueues() {\n return this.settings.description.find(setting => setting.key === 'Oban')\n },\n obanQueuesData() {\n return _.get(this.settings.settings, [':pleroma', 'Oban']) || {}\n },\n pools() {\n return this.settings.description.find(setting => setting.key === ':pools')\n },\n poolsData() {\n return _.get(this.settings.settings, [':pleroma', ':pools']) || {}\n },\n searchQuery() {\n return this.$store.state.settings.searchQuery\n },\n workers() {\n return this.settings.description.find(setting => setting.key === ':workers')\n },\n workersData() {\n return _.get(this.settings.settings, [':pleroma', ':workers']) || {}\n }\n },\n mounted() {\n if (this.searchQuery.length > 0) {\n const selectedSetting = document.querySelector(`[data-search=\"${this.searchQuery}\"]`)\n if (selectedSetting) {\n selectedSetting.scrollIntoView({ block: 'start', behavior: 'smooth' })\n }\n this.$store.dispatch('SetSearchQuery', '')\n }\n },\n methods: {\n async onSubmit() {\n try {\n await this.$store.dispatch('SubmitChanges')\n } catch (e) {\n return\n }\n this.$message({\n type: 'success',\n message: i18n.t('settings.success')\n })\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\n@import '../../styles/settings';\n@include settings\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./JobQueue.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./JobQueue.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./JobQueue.vue?vue&type=template&id=c7dcc79e&\"\nimport script from \"./JobQueue.vue?vue&type=script&lang=js&\"\nexport * from \"./JobQueue.vue?vue&type=script&lang=js&\"\nimport style0 from \"./JobQueue.vue?vue&type=style&index=0&id=c7dcc79e&prod&rel=stylesheet%2Fscss&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (!_vm.loading)?_c('div',{staticClass:\"form-container\",class:_vm.isSidebarOpen},[_c('el-form',{attrs:{\"model\":_vm.obanQueuesData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.obanQueues,\"data\":_vm.obanQueuesData}})],1),_vm._v(\" \"),(_vm.obanQueues)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e(),_vm._v(\" \"),_c('el-form',{attrs:{\"model\":_vm.workersData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.workers,\"data\":_vm.workersData}})],1),_vm._v(\" \"),(_vm.workers)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e(),_vm._v(\" \"),_c('el-form',{attrs:{\"model\":_vm.activityExpirationData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.activityExpiration,\"data\":_vm.activityExpirationData}})],1),_vm._v(\" \"),(_vm.activityExpiration)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e(),_vm._v(\" \"),_c('el-form',{attrs:{\"model\":_vm.connectionsPoolsData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.connectionsPools,\"data\":_vm.connectionsPoolsData}})],1),_vm._v(\" \"),(_vm.connectionsPools)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e(),_vm._v(\" \"),_c('el-form',{attrs:{\"model\":_vm.poolsData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.pools,\"data\":_vm.poolsData}})],1),_vm._v(\" \"),(_vm.pools)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e(),_vm._v(\" \"),_c('el-form',{attrs:{\"model\":_vm.hackneyPoolsData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.hackneyPools,\"data\":_vm.hackneyPoolsData}})],1),_vm._v(\" \"),_c('div',{staticClass:\"submit-button-container\"},[_c('el-button',{staticClass:\"submit-button\",attrs:{\"type\":\"primary\"},on:{\"click\":_vm.onSubmit}},[_vm._v(_vm._s(_vm.$t('settings.submit')))])],1)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div v-if=\"!loading\" :class=\"isSidebarOpen\" class=\"form-container\">\n <el-form :model=\"linkFormatterData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"linkFormatter\" :data=\"linkFormatterData\"/>\n </el-form>\n <div class=\"submit-button-container\">\n <el-button class=\"submit-button\" type=\"primary\" @click=\"onSubmit\">{{ $t('settings.submit') }}</el-button>\n </div>\n </div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex'\nimport i18n from '@/lang'\nimport Setting from './Setting'\nimport _ from 'lodash'\n\nexport default {\n name: 'LinkFormatter',\n components: { Setting },\n computed: {\n ...mapGetters([\n 'settings'\n ]),\n linkFormatter() {\n return this.settings.description.find(setting => setting.key === 'Pleroma.Formatter')\n },\n linkFormatterData() {\n return _.get(this.settings.settings, [':pleroma', 'Pleroma.Formatter']) || {}\n },\n isMobile() {\n return this.$store.state.app.device === 'mobile'\n },\n isSidebarOpen() {\n return this.$store.state.app.sidebar.opened ? 'sidebar-opened' : 'sidebar-closed'\n },\n isTablet() {\n return this.$store.state.app.device === 'tablet'\n },\n labelPosition() {\n return this.isMobile ? 'top' : 'right'\n },\n labelWidth() {\n if (this.isMobile) {\n return '120px'\n } else if (this.isTablet) {\n return '200px'\n } else {\n return '280px'\n }\n },\n loading() {\n return this.settings.loading\n },\n searchQuery() {\n return this.$store.state.settings.searchQuery\n }\n },\n mounted() {\n if (this.searchQuery.length > 0) {\n const selectedSetting = document.querySelector(`[data-search=\"${this.searchQuery}\"]`)\n if (selectedSetting) {\n selectedSetting.scrollIntoView({ block: 'start', behavior: 'smooth' })\n }\n this.$store.dispatch('SetSearchQuery', '')\n }\n },\n methods: {\n async onSubmit() {\n try {\n await this.$store.dispatch('SubmitChanges')\n } catch (e) {\n return\n }\n this.$message({\n type: 'success',\n message: i18n.t('settings.success')\n })\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\n@import '../../styles/settings';\n@include settings\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LinkFormatter.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LinkFormatter.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LinkFormatter.vue?vue&type=template&id=38a795ec&\"\nimport script from \"./LinkFormatter.vue?vue&type=script&lang=js&\"\nexport * from \"./LinkFormatter.vue?vue&type=script&lang=js&\"\nimport style0 from \"./LinkFormatter.vue?vue&type=style&index=0&id=38a795ec&prod&rel=stylesheet%2Fscss&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (!_vm.loading)?_c('div',{staticClass:\"form-container\",class:_vm.isSidebarOpen},[_c('el-form',{attrs:{\"model\":_vm.linkFormatterData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.linkFormatter,\"data\":_vm.linkFormatterData}})],1),_vm._v(\" \"),_c('div',{staticClass:\"submit-button-container\"},[_c('el-button',{staticClass:\"submit-button\",attrs:{\"type\":\"primary\"},on:{\"click\":_vm.onSubmit}},[_vm._v(_vm._s(_vm.$t('settings.submit')))])],1)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div v-if=\"!loading\" :class=\"isSidebarOpen\" class=\"form-container\">\n <el-form :model=\"loggerData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"logger\" :data=\"loggerData\"/>\n </el-form>\n <el-divider v-if=\"logger\" class=\"divider thick-line\"/>\n <el-form :model=\"consoleData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"console\" :data=\"consoleData\"/>\n </el-form>\n <el-divider v-if=\"console\" class=\"divider thick-line\"/>\n <el-form :model=\"exsysloggerData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"exsyslogger\" :data=\"exsysloggerData\"/>\n </el-form>\n <el-divider v-if=\"exsyslogger\" class=\"divider thick-line\"/>\n <el-form :model=\"quackData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"quack\" :data=\"quackData\"/>\n </el-form>\n <div class=\"submit-button-container\">\n <el-button class=\"submit-button\" type=\"primary\" @click=\"onSubmit\">{{ $t('settings.submit') }}</el-button>\n </div>\n </div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex'\nimport i18n from '@/lang'\nimport Setting from './Setting'\nimport _ from 'lodash'\n\nexport default {\n name: 'Logger',\n components: { Setting },\n computed: {\n ...mapGetters([\n 'settings'\n ]),\n console() {\n return this.settings.description.find(setting => setting.key === ':console')\n },\n consoleData() {\n return _.get(this.settings.settings, [':logger', ':console']) || {}\n },\n exsyslogger() {\n return this.settings.description.find(setting => setting.key === ':ex_syslogger')\n },\n exsysloggerData() {\n return _.get(this.settings.settings, [':logger', ':ex_syslogger']) || {}\n },\n isMobile() {\n return this.$store.state.app.device === 'mobile'\n },\n isSidebarOpen() {\n return this.$store.state.app.sidebar.opened ? 'sidebar-opened' : 'sidebar-closed'\n },\n isTablet() {\n return this.$store.state.app.device === 'tablet'\n },\n labelPosition() {\n return this.isMobile ? 'top' : 'right'\n },\n labelWidth() {\n if (this.isMobile) {\n return '120px'\n } else if (this.isTablet) {\n return '200px'\n } else {\n return '280px'\n }\n },\n loading() {\n return this.settings.loading\n },\n logger() {\n return this.settings.description.find(setting => setting.group === ':logger')\n },\n loggerData() {\n return _.get(this.settings.settings, [':logger', ':backends']) || {}\n },\n searchQuery() {\n return this.$store.state.settings.searchQuery\n },\n quack() {\n return this.settings.description.find(setting => setting.group === ':quack')\n },\n quackData() {\n return _.get(this.settings.settings, [':quack']) || {}\n }\n },\n mounted() {\n if (this.searchQuery.length > 0) {\n const selectedSetting = document.querySelector(`[data-search=\"${this.searchQuery}\"]`)\n if (selectedSetting) {\n selectedSetting.scrollIntoView({ block: 'start', behavior: 'smooth' })\n }\n this.$store.dispatch('SetSearchQuery', '')\n }\n },\n methods: {\n async onSubmit() {\n try {\n await this.$store.dispatch('SubmitChanges')\n } catch (e) {\n return\n }\n this.$message({\n type: 'success',\n message: i18n.t('settings.success')\n })\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\n@import '../../styles/settings';\n@include settings\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Logger.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Logger.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Logger.vue?vue&type=template&id=6f7d479a&\"\nimport script from \"./Logger.vue?vue&type=script&lang=js&\"\nexport * from \"./Logger.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Logger.vue?vue&type=style&index=0&id=6f7d479a&prod&rel=stylesheet%2Fscss&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (!_vm.loading)?_c('div',{staticClass:\"form-container\",class:_vm.isSidebarOpen},[_c('el-form',{attrs:{\"model\":_vm.loggerData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.logger,\"data\":_vm.loggerData}})],1),_vm._v(\" \"),(_vm.logger)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e(),_vm._v(\" \"),_c('el-form',{attrs:{\"model\":_vm.consoleData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.console,\"data\":_vm.consoleData}})],1),_vm._v(\" \"),(_vm.console)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e(),_vm._v(\" \"),_c('el-form',{attrs:{\"model\":_vm.exsysloggerData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.exsyslogger,\"data\":_vm.exsysloggerData}})],1),_vm._v(\" \"),(_vm.exsyslogger)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e(),_vm._v(\" \"),_c('el-form',{attrs:{\"model\":_vm.quackData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.quack,\"data\":_vm.quackData}})],1),_vm._v(\" \"),_c('div',{staticClass:\"submit-button-container\"},[_c('el-button',{staticClass:\"submit-button\",attrs:{\"type\":\"primary\"},on:{\"click\":_vm.onSubmit}},[_vm._v(_vm._s(_vm.$t('settings.submit')))])],1)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div v-if=\"!loading\" :class=\"isSidebarOpen\" class=\"form-container\">\n <el-form :model=\"mailerData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"mailer\" :data=\"mailerData\"/>\n </el-form>\n <el-divider v-if=\"mailer\" class=\"divider thick-line\"/>\n <el-form :model=\"swooshData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"swoosh\" :data=\"swooshData\"/>\n </el-form>\n <el-divider v-if=\"swoosh\" class=\"divider thick-line\"/>\n <el-form :model=\"emailNotificationsData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"emailNotifications\" :data=\"emailNotificationsData\"/>\n </el-form>\n <el-divider v-if=\"emailNotifications\" class=\"divider thick-line\"/>\n <el-form :model=\"userEmailData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"userEmail\" :data=\"userEmailData\"/>\n </el-form>\n <el-divider v-if=\"userEmail\" class=\"divider thick-line\"/>\n <el-form :model=\"newUsersDigestEmailData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"newUsersDigestEmail\" :data=\"newUsersDigestEmailData\"/>\n </el-form>\n <div class=\"submit-button-container\">\n <el-button class=\"submit-button\" type=\"primary\" @click=\"onSubmit\">{{ $t('settings.submit') }}</el-button>\n </div>\n </div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex'\nimport i18n from '@/lang'\nimport Setting from './Setting'\nimport _ from 'lodash'\n\nexport default {\n name: 'Mailer',\n components: {\n Setting\n },\n computed: {\n ...mapGetters([\n 'settings'\n ]),\n emailNotifications() {\n return this.settings.description.find(setting => setting.key === ':email_notifications')\n },\n emailNotificationsData() {\n return _.get(this.settings.settings, [':pleroma', ':email_notifications']) || {}\n },\n isMobile() {\n return this.$store.state.app.device === 'mobile'\n },\n isSidebarOpen() {\n return this.$store.state.app.sidebar.opened ? 'sidebar-opened' : 'sidebar-closed'\n },\n isTablet() {\n return this.$store.state.app.device === 'tablet'\n },\n labelPosition() {\n return this.isMobile ? 'top' : 'right'\n },\n labelWidth() {\n if (this.isMobile) {\n return '120px'\n } else if (this.isTablet) {\n return '200px'\n } else {\n return '280px'\n }\n },\n loading() {\n return this.$store.state.settings.loading\n },\n mailer() {\n return this.settings.description.find(setting => setting.key === 'Pleroma.Emails.Mailer')\n },\n mailerData() {\n return _.get(this.settings.settings, [':pleroma', 'Pleroma.Emails.Mailer']) || {}\n },\n newUsersDigestEmail() {\n return this.settings.description.find(setting => setting.key === 'Pleroma.Emails.NewUsersDigestEmail')\n },\n newUsersDigestEmailData() {\n return _.get(this.settings.settings, [':pleroma', 'Pleroma.Emails.NewUsersDigestEmail']) || {}\n },\n searchQuery() {\n return this.$store.state.settings.searchQuery\n },\n swoosh() {\n return this.settings.description.find(setting => setting.group === ':swoosh')\n },\n swooshData() {\n return _.get(this.settings.settings, [':swoosh']) || {}\n },\n userEmail() {\n return this.settings.description.find(setting => setting.key === 'Pleroma.Emails.UserEmail')\n },\n userEmailData() {\n return _.get(this.settings.settings, [':pleroma', 'Pleroma.Emails.UserEmail']) || {}\n }\n },\n mounted() {\n if (this.searchQuery.length > 0) {\n const selectedSetting = document.querySelector(`[data-search=\"${this.searchQuery}\"]`)\n if (selectedSetting) {\n selectedSetting.scrollIntoView({ block: 'start', behavior: 'smooth' })\n }\n this.$store.dispatch('SetSearchQuery', '')\n }\n },\n methods: {\n async onSubmit() {\n try {\n await this.$store.dispatch('SubmitChanges')\n } catch (e) {\n return\n }\n this.$message({\n type: 'success',\n message: i18n.t('settings.success')\n })\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\n@import '../../styles/settings';\n@include settings\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Mailer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Mailer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Mailer.vue?vue&type=template&id=72f1c246&\"\nimport script from \"./Mailer.vue?vue&type=script&lang=js&\"\nexport * from \"./Mailer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Mailer.vue?vue&type=style&index=0&id=72f1c246&prod&rel=stylesheet%2Fscss&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (!_vm.loading)?_c('div',{staticClass:\"form-container\",class:_vm.isSidebarOpen},[_c('el-form',{attrs:{\"model\":_vm.mailerData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.mailer,\"data\":_vm.mailerData}})],1),_vm._v(\" \"),(_vm.mailer)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e(),_vm._v(\" \"),_c('el-form',{attrs:{\"model\":_vm.swooshData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.swoosh,\"data\":_vm.swooshData}})],1),_vm._v(\" \"),(_vm.swoosh)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e(),_vm._v(\" \"),_c('el-form',{attrs:{\"model\":_vm.emailNotificationsData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.emailNotifications,\"data\":_vm.emailNotificationsData}})],1),_vm._v(\" \"),(_vm.emailNotifications)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e(),_vm._v(\" \"),_c('el-form',{attrs:{\"model\":_vm.userEmailData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.userEmail,\"data\":_vm.userEmailData}})],1),_vm._v(\" \"),(_vm.userEmail)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e(),_vm._v(\" \"),_c('el-form',{attrs:{\"model\":_vm.newUsersDigestEmailData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.newUsersDigestEmail,\"data\":_vm.newUsersDigestEmailData}})],1),_vm._v(\" \"),_c('div',{staticClass:\"submit-button-container\"},[_c('el-button',{staticClass:\"submit-button\",attrs:{\"type\":\"primary\"},on:{\"click\":_vm.onSubmit}},[_vm._v(_vm._s(_vm.$t('settings.submit')))])],1)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div v-if=\"!loading\" :class=\"isSidebarOpen\" class=\"form-container\">\n <el-form v-if=\"!loading\" :model=\"mediaProxyData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"mediaProxy\" :data=\"mediaProxyData\"/>\n </el-form>\n <el-divider v-if=\"mediaProxy\" class=\"divider thick-line\"/>\n <el-form v-if=\"!loading\" :model=\"mediaPreviewProxyData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"mediaPreviewProxy\" :data=\"mediaPreviewProxyData\"/>\n </el-form>\n <el-divider v-if=\"mediaPreviewProxy\" class=\"divider thick-line\"/>\n <el-form v-if=\"!loading\" :model=\"httpInvalidationData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"httpInvalidation\" :data=\"httpInvalidationData\"/>\n </el-form>\n <el-divider v-if=\"httpInvalidation\" class=\"divider thick-line\"/>\n <el-form v-if=\"!loading\" :model=\"scriptInvalidationData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"scriptInvalidation\" :data=\"scriptInvalidationData\"/>\n </el-form>\n <div class=\"submit-button-container\">\n <el-button class=\"submit-button\" type=\"primary\" @click=\"onSubmit\">{{ $t('settings.submit') }}</el-button>\n </div>\n </div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex'\nimport i18n from '@/lang'\nimport Setting from './Setting'\nimport _ from 'lodash'\n\nexport default {\n name: 'MediaProxy',\n components: { Setting },\n computed: {\n ...mapGetters([\n 'settings'\n ]),\n httpInvalidation() {\n return this.settings.description.find(setting => setting.key === 'Pleroma.Web.MediaProxy.Invalidation.Http')\n },\n httpInvalidationData() {\n return _.get(this.settings.settings, [':pleroma', 'Pleroma.Web.MediaProxy.Invalidation.Http']) || {}\n },\n isMobile() {\n return this.$store.state.app.device === 'mobile'\n },\n isSidebarOpen() {\n return this.$store.state.app.sidebar.opened ? 'sidebar-opened' : 'sidebar-closed'\n },\n isTablet() {\n return this.$store.state.app.device === 'tablet'\n },\n labelPosition() {\n return this.isMobile ? 'top' : 'right'\n },\n labelWidth() {\n if (this.isMobile) {\n return '120px'\n } else if (this.isTablet) {\n return '200px'\n } else {\n return '280px'\n }\n },\n loading() {\n return this.settings.loading\n },\n mediaPreviewProxy() {\n return this.settings.description.find(setting => setting.key === ':media_preview_proxy')\n },\n mediaPreviewProxyData() {\n return _.get(this.settings.settings, [':pleroma', ':media_preview_proxy']) || {}\n },\n mediaProxy() {\n return this.settings.description.find(setting => setting.key === ':media_proxy')\n },\n mediaProxyData() {\n return _.get(this.settings.settings, [':pleroma', ':media_proxy']) || {}\n },\n searchQuery() {\n return this.$store.state.settings.searchQuery\n },\n scriptInvalidation() {\n return this.settings.description.find(setting => setting.key === 'Pleroma.Web.MediaProxy.Invalidation.Script')\n },\n scriptInvalidationData() {\n return _.get(this.settings.settings, [':pleroma', 'Pleroma.Web.MediaProxy.Invalidation.Script']) || {}\n }\n },\n mounted() {\n if (this.searchQuery.length > 0) {\n const selectedSetting = document.querySelector(`[data-search=\"${this.searchQuery}\"]`)\n if (selectedSetting) {\n selectedSetting.scrollIntoView({ block: 'start', behavior: 'smooth' })\n }\n this.$store.dispatch('SetSearchQuery', '')\n }\n },\n methods: {\n async onSubmit() {\n try {\n await this.$store.dispatch('SubmitChanges')\n } catch (e) {\n return\n }\n this.$message({\n type: 'success',\n message: i18n.t('settings.success')\n })\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\n@import '../../styles/settings';\n@include settings\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MediaProxy.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MediaProxy.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MediaProxy.vue?vue&type=template&id=1f7b686a&\"\nimport script from \"./MediaProxy.vue?vue&type=script&lang=js&\"\nexport * from \"./MediaProxy.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MediaProxy.vue?vue&type=style&index=0&id=1f7b686a&prod&rel=stylesheet%2Fscss&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (!_vm.loading)?_c('div',{staticClass:\"form-container\",class:_vm.isSidebarOpen},[(!_vm.loading)?_c('el-form',{attrs:{\"model\":_vm.mediaProxyData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.mediaProxy,\"data\":_vm.mediaProxyData}})],1):_vm._e(),_vm._v(\" \"),(_vm.mediaProxy)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e(),_vm._v(\" \"),(!_vm.loading)?_c('el-form',{attrs:{\"model\":_vm.mediaPreviewProxyData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.mediaPreviewProxy,\"data\":_vm.mediaPreviewProxyData}})],1):_vm._e(),_vm._v(\" \"),(_vm.mediaPreviewProxy)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e(),_vm._v(\" \"),(!_vm.loading)?_c('el-form',{attrs:{\"model\":_vm.httpInvalidationData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.httpInvalidation,\"data\":_vm.httpInvalidationData}})],1):_vm._e(),_vm._v(\" \"),(_vm.httpInvalidation)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e(),_vm._v(\" \"),(!_vm.loading)?_c('el-form',{attrs:{\"model\":_vm.scriptInvalidationData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.scriptInvalidation,\"data\":_vm.scriptInvalidationData}})],1):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"submit-button-container\"},[_c('el-button',{staticClass:\"submit-button\",attrs:{\"type\":\"primary\"},on:{\"click\":_vm.onSubmit}},[_vm._v(_vm._s(_vm.$t('settings.submit')))])],1)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div v-if=\"!loading\" :class=\"isSidebarOpen\" class=\"form-container\">\n <el-form :model=\"metadataData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"metadata\" :data=\"metadataData\"/>\n </el-form>\n <el-divider v-if=\"metadata\" class=\"divider thick-line\"/>\n <el-form :model=\"richMediaData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"richMedia\" :data=\"richMediaData\"/>\n </el-form>\n <div class=\"submit-button-container\">\n <el-button class=\"submit-button\" type=\"primary\" @click=\"onSubmit\">{{ $t('settings.submit') }}</el-button>\n </div>\n </div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex'\nimport i18n from '@/lang'\nimport Setting from './Setting'\nimport _ from 'lodash'\n\nexport default {\n name: 'Metadata',\n components: { Setting },\n computed: {\n ...mapGetters([\n 'settings'\n ]),\n isMobile() {\n return this.$store.state.app.device === 'mobile'\n },\n isSidebarOpen() {\n return this.$store.state.app.sidebar.opened ? 'sidebar-opened' : 'sidebar-closed'\n },\n isTablet() {\n return this.$store.state.app.device === 'tablet'\n },\n labelPosition() {\n return this.isMobile ? 'top' : 'right'\n },\n labelWidth() {\n if (this.isMobile) {\n return '120px'\n } else if (this.isTablet) {\n return '200px'\n } else {\n return '280px'\n }\n },\n loading() {\n return this.settings.loading\n },\n metadata() {\n return this.settings.description.find(setting => setting.key === 'Pleroma.Web.Metadata')\n },\n metadataData() {\n return _.get(this.settings.settings, [':pleroma', 'Pleroma.Web.Metadata']) || {}\n },\n searchQuery() {\n return this.$store.state.settings.searchQuery\n },\n richMedia() {\n return this.settings.description.find(setting => setting.key === ':rich_media')\n },\n richMediaData() {\n return _.get(this.settings.settings, [':pleroma', ':rich_media']) || {}\n }\n },\n mounted() {\n if (this.searchQuery.length > 0) {\n const selectedSetting = document.querySelector(`[data-search=\"${this.searchQuery}\"]`)\n if (selectedSetting) {\n selectedSetting.scrollIntoView({ block: 'start', behavior: 'smooth' })\n }\n this.$store.dispatch('SetSearchQuery', '')\n }\n },\n methods: {\n async onSubmit() {\n try {\n await this.$store.dispatch('SubmitChanges')\n } catch (e) {\n return\n }\n this.$message({\n type: 'success',\n message: i18n.t('settings.success')\n })\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\n@import '../../styles/settings';\n@include settings\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Metadata.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Metadata.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Metadata.vue?vue&type=template&id=60a2d3cf&\"\nimport script from \"./Metadata.vue?vue&type=script&lang=js&\"\nexport * from \"./Metadata.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Metadata.vue?vue&type=style&index=0&id=60a2d3cf&prod&rel=stylesheet%2Fscss&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (!_vm.loading)?_c('div',{staticClass:\"form-container\",class:_vm.isSidebarOpen},[_c('el-form',{attrs:{\"model\":_vm.metadataData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.metadata,\"data\":_vm.metadataData}})],1),_vm._v(\" \"),(_vm.metadata)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e(),_vm._v(\" \"),_c('el-form',{attrs:{\"model\":_vm.richMediaData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.richMedia,\"data\":_vm.richMediaData}})],1),_vm._v(\" \"),_c('div',{staticClass:\"submit-button-container\"},[_c('el-button',{staticClass:\"submit-button\",attrs:{\"type\":\"primary\"},on:{\"click\":_vm.onSubmit}},[_vm._v(_vm._s(_vm.$t('settings.submit')))])],1)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div v-if=\"!loading\" :class=\"isSidebarOpen\" class=\"form-container\">\n <div v-for=\"setting in mrfSettings\" :key=\"setting.key\">\n <el-form v-if=\"showMrfPolicy(setting.key)\" :model=\"getSettingData(setting)\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"setting\" :data=\"getSettingData(setting)\"/>\n <el-divider v-if=\"setting\" class=\"divider thick-line\"/>\n </el-form>\n </div>\n <div class=\"submit-button-container\">\n <el-button class=\"submit-button\" type=\"primary\" @click=\"onSubmit\">{{ $t('settings.submit') }}</el-button>\n </div>\n </div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex'\nimport i18n from '@/lang'\nimport Setting from './Setting'\nimport _ from 'lodash'\n\nexport default {\n name: 'MRF',\n components: { Setting },\n computed: {\n ...mapGetters([\n 'settings'\n ]),\n isMobile() {\n return this.$store.state.app.device === 'mobile'\n },\n isSidebarOpen() {\n return this.$store.state.app.sidebar.opened ? 'sidebar-opened' : 'sidebar-closed'\n },\n isTablet() {\n return this.$store.state.app.device === 'tablet'\n },\n labelPosition() {\n return this.isMobile ? 'top' : 'right'\n },\n labelWidth() {\n if (this.isMobile) {\n return '120px'\n } else if (this.isTablet) {\n return '200px'\n } else {\n return '280px'\n }\n },\n loading() {\n return this.settings.loading\n },\n mrfSettings() {\n return this.settings.description.filter(el => el.tab === 'mrf')\n },\n searchQuery() {\n return this.$store.state.settings.searchQuery\n }\n },\n mounted() {\n if (this.searchQuery.length > 0) {\n const selectedSetting = document.querySelector(`[data-search=\"${this.searchQuery}\"]`)\n if (selectedSetting) {\n selectedSetting.scrollIntoView({ block: 'start', behavior: 'smooth' })\n }\n this.$store.dispatch('SetSearchQuery', '')\n }\n },\n methods: {\n getSettingData(setting) {\n return _.get(this.settings.settings, [setting.group, setting.key]) || {}\n },\n async onSubmit() {\n try {\n await this.$store.dispatch('SubmitChanges')\n } catch (e) {\n return\n }\n this.$message({\n type: 'success',\n message: i18n.t('settings.success')\n })\n },\n showMrfPolicy(key) {\n const selectedMrfPolicies = _.get(this.settings.settings, [':pleroma', ':mrf', ':policies']) || []\n const mappedPolicies = this.mrfSettings.reduce((acc, { key, related_policy }) => {\n if (key !== ':mrf') {\n acc[key] = related_policy\n }\n return acc\n }, {})\n return !Object.keys(mappedPolicies).includes(key) || selectedMrfPolicies.includes(mappedPolicies[key])\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\n@import '../../styles/settings';\n@include settings\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MRF.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MRF.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MRF.vue?vue&type=template&id=15b4f82b&\"\nimport script from \"./MRF.vue?vue&type=script&lang=js&\"\nexport * from \"./MRF.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MRF.vue?vue&type=style&index=0&id=15b4f82b&prod&rel=stylesheet%2Fscss&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (!_vm.loading)?_c('div',{staticClass:\"form-container\",class:_vm.isSidebarOpen},[_vm._l((_vm.mrfSettings),function(setting){return _c('div',{key:setting.key},[(_vm.showMrfPolicy(setting.key))?_c('el-form',{attrs:{\"model\":_vm.getSettingData(setting),\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":setting,\"data\":_vm.getSettingData(setting)}}),_vm._v(\" \"),(setting)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e()],1):_vm._e()],1)}),_vm._v(\" \"),_c('div',{staticClass:\"submit-button-container\"},[_c('el-button',{staticClass:\"submit-button\",attrs:{\"type\":\"primary\"},on:{\"click\":_vm.onSubmit}},[_vm._v(_vm._s(_vm.$t('settings.submit')))])],1)],2):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div v-if=\"!loading\" :class=\"isSidebarOpen\" class=\"form-container\">\n <editor-input v-model=\"termsOfServicesContent\" :name=\"'terms-of-service'\" @input=\"handleEditorUpdate\"/>\n <el-divider class=\"divider thick-line\"/>\n <el-form :model=\"prometheusMetricsData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"prometheusMetrics\" :data=\"prometheusMetricsData\"/>\n </el-form>\n <el-divider v-if=\"prometheusMetrics\" class=\"divider thick-line\"/>\n <el-form :model=\"backupData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"backup\" :data=\"backupData\"/>\n </el-form>\n <el-divider v-if=\"backup\" class=\"divider thick-line\"/>\n <el-form :model=\"mimeTypesData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"mimeTypes\" :data=\"mimeTypesData\"/>\n </el-form>\n <el-divider v-if=\"mimeTypes\" class=\"divider thick-line\"/>\n <el-form :model=\"remoteIpData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"remoteIp\" :data=\"remoteIpData\"/>\n </el-form>\n <el-divider v-if=\"remoteIpData\" class=\"divider thick-line\"/>\n <el-form :model=\"modulesData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"modules\" :data=\"modulesData\"/>\n </el-form>\n <el-divider v-if=\"castAndValidate\" class=\"divider thick-line\"/>\n <el-form :model=\"castAndValidateData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"castAndValidate\" :data=\"castAndValidateData\"/>\n </el-form>\n <div class=\"submit-button-container\">\n <el-button class=\"submit-button\" type=\"primary\" @click=\"onSubmit\">{{ $t('settings.submit') }}</el-button>\n </div>\n </div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex'\nimport i18n from '@/lang'\nimport Setting from './Setting'\nimport { EditorInput } from './inputComponents'\nimport _ from 'lodash'\n\nexport default {\n name: 'Other',\n components: { EditorInput, Setting },\n data() {\n return {\n termsOfServices: ''\n }\n },\n computed: {\n ...mapGetters([\n 'settings'\n ]),\n backup() {\n return this.settings.description.find(setting => setting.key === 'Pleroma.User.Backup')\n },\n backupData() {\n return _.get(this.settings.settings, [':pleroma', 'Pleroma.User.Backup']) || {}\n },\n castAndValidate() {\n return this.settings.description.find(setting => setting.key === 'Pleroma.Web.ApiSpec.CastAndValidate')\n },\n castAndValidateData() {\n return _.get(this.settings.settings, [':pleroma', 'Pleroma.Web.ApiSpec.CastAndValidate']) || {}\n },\n isMobile() {\n return this.$store.state.app.device === 'mobile'\n },\n isSidebarOpen() {\n return this.$store.state.app.sidebar.opened ? 'sidebar-opened' : 'sidebar-closed'\n },\n isTablet() {\n return this.$store.state.app.device === 'tablet'\n },\n labelPosition() {\n return this.isMobile ? 'top' : 'right'\n },\n labelWidth() {\n if (this.isMobile) {\n return '120px'\n } else if (this.isTablet) {\n return '200px'\n } else {\n return '280px'\n }\n },\n loading() {\n return this.settings.loading\n },\n mimeTypes() {\n return this.settings.description.find(setting => setting.group === ':mime')\n },\n mimeTypesData() {\n return _.get(this.settings.settings, [':mime']) || {}\n },\n modules() {\n return this.settings.description.find(setting => setting.key === ':modules')\n },\n modulesData() {\n return _.get(this.settings.settings, [':pleroma', ':modules']) || {}\n },\n prometheusMetrics() {\n return this.settings.description.find(setting => setting.key === 'Pleroma.Web.Endpoint.MetricsExporter')\n },\n prometheusMetricsData() {\n return _.get(this.settings.settings, [':prometheus', 'Pleroma.Web.Endpoint.MetricsExporter']) || {}\n },\n remoteIp() {\n return this.settings.description.find(setting => setting.key === 'Pleroma.Web.Plugs.RemoteIp')\n },\n remoteIpData() {\n return _.get(this.settings.settings, [':pleroma', 'Pleroma.Web.Plugs.RemoteIp']) || {}\n },\n searchQuery() {\n return this.$store.state.settings.searchQuery\n },\n termsOfServicesContent: {\n get() {\n return this.$store.state.settings.termsOfServices\n },\n set(content) {\n this.termsOfServices = content\n }\n }\n },\n async mounted() {\n if (this.searchQuery.length > 0) {\n const selectedSetting = document.querySelector(`[data-search=\"${this.searchQuery}\"]`)\n if (selectedSetting) {\n selectedSetting.scrollIntoView({ block: 'start', behavior: 'smooth' })\n }\n this.$store.dispatch('SetSearchQuery', '')\n }\n\n await this.$store.dispatch('FetchInstanceDocument', 'terms-of-service')\n },\n methods: {\n handleEditorUpdate(content) {\n this.termsOfServices = content\n },\n async onSubmit() {\n try {\n await this.$store.dispatch('SubmitChanges')\n await this.$store.dispatch('UpdateInstanceDocs', {\n name: 'terms-of-service',\n content: this.termsOfServices.length > 0 ? this.termsOfServices : this.termsOfServicesContent\n })\n } catch (e) {\n return\n }\n this.$message({\n type: 'success',\n message: i18n.t('settings.success')\n })\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\n@import '../../styles/settings';\n@include settings\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Other.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Other.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Other.vue?vue&type=template&id=480908c8&\"\nimport script from \"./Other.vue?vue&type=script&lang=js&\"\nexport * from \"./Other.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Other.vue?vue&type=style&index=0&id=480908c8&prod&rel=stylesheet%2Fscss&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (!_vm.loading)?_c('div',{staticClass:\"form-container\",class:_vm.isSidebarOpen},[_c('editor-input',{attrs:{\"name\":'terms-of-service'},on:{\"input\":_vm.handleEditorUpdate},model:{value:(_vm.termsOfServicesContent),callback:function ($$v) {_vm.termsOfServicesContent=$$v},expression:\"termsOfServicesContent\"}}),_vm._v(\" \"),_c('el-divider',{staticClass:\"divider thick-line\"}),_vm._v(\" \"),_c('el-form',{attrs:{\"model\":_vm.prometheusMetricsData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.prometheusMetrics,\"data\":_vm.prometheusMetricsData}})],1),_vm._v(\" \"),(_vm.prometheusMetrics)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e(),_vm._v(\" \"),_c('el-form',{attrs:{\"model\":_vm.backupData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.backup,\"data\":_vm.backupData}})],1),_vm._v(\" \"),(_vm.backup)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e(),_vm._v(\" \"),_c('el-form',{attrs:{\"model\":_vm.mimeTypesData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.mimeTypes,\"data\":_vm.mimeTypesData}})],1),_vm._v(\" \"),(_vm.mimeTypes)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e(),_vm._v(\" \"),_c('el-form',{attrs:{\"model\":_vm.remoteIpData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.remoteIp,\"data\":_vm.remoteIpData}})],1),_vm._v(\" \"),(_vm.remoteIpData)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e(),_vm._v(\" \"),_c('el-form',{attrs:{\"model\":_vm.modulesData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.modules,\"data\":_vm.modulesData}})],1),_vm._v(\" \"),(_vm.castAndValidate)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e(),_vm._v(\" \"),_c('el-form',{attrs:{\"model\":_vm.castAndValidateData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.castAndValidate,\"data\":_vm.castAndValidateData}})],1),_vm._v(\" \"),_c('div',{staticClass:\"submit-button-container\"},[_c('el-button',{staticClass:\"submit-button\",attrs:{\"type\":\"primary\"},on:{\"click\":_vm.onSubmit}},[_vm._v(_vm._s(_vm.$t('settings.submit')))])],1)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div v-if=\"!loading\" :class=\"isSidebarOpen\" class=\"form-container\">\n <el-form v-if=\"!loading\" :model=\"rateLimitersData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"rateLimiters\" :data=\"rateLimitersData\"/>\n </el-form>\n <div class=\"submit-button-container\">\n <el-button class=\"submit-button\" type=\"primary\" @click=\"onSubmit\">{{ $t('settings.submit') }}</el-button>\n </div>\n </div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex'\nimport i18n from '@/lang'\nimport Setting from './Setting'\nimport _ from 'lodash'\n\nexport default {\n name: 'RateLimiters',\n components: { Setting },\n computed: {\n ...mapGetters([\n 'settings'\n ]),\n rateLimiters() {\n return this.settings.description.find(setting => setting.key === ':rate_limit')\n },\n rateLimitersData() {\n return _.get(this.settings.settings, [':pleroma', ':rate_limit']) || {}\n },\n isMobile() {\n return this.$store.state.app.device === 'mobile'\n },\n isSidebarOpen() {\n return this.$store.state.app.sidebar.opened ? 'sidebar-opened' : 'sidebar-closed'\n },\n isTablet() {\n return this.$store.state.app.device === 'tablet'\n },\n labelPosition() {\n return this.isMobile ? 'top' : 'right'\n },\n labelWidth() {\n if (this.isMobile) {\n return '120px'\n } else if (this.isTablet) {\n return '200px'\n } else {\n return '280px'\n }\n },\n loading() {\n return this.$store.state.settings.loading\n },\n searchQuery() {\n return this.$store.state.settings.searchQuery\n }\n },\n mounted() {\n if (this.searchQuery.length > 0) {\n const selectedSetting = document.querySelector(`[data-search=\"${this.searchQuery}\"]`)\n if (selectedSetting) {\n selectedSetting.scrollIntoView({ block: 'start', behavior: 'smooth' })\n }\n this.$store.dispatch('SetSearchQuery', '')\n }\n },\n methods: {\n async onSubmit() {\n try {\n await this.$store.dispatch('SubmitChanges')\n } catch (e) {\n return\n }\n this.$message({\n type: 'success',\n message: i18n.t('settings.success')\n })\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\n@import '../../styles/settings';\n@include settings\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RateLimiters.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RateLimiters.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./RateLimiters.vue?vue&type=template&id=7660c53a&\"\nimport script from \"./RateLimiters.vue?vue&type=script&lang=js&\"\nexport * from \"./RateLimiters.vue?vue&type=script&lang=js&\"\nimport style0 from \"./RateLimiters.vue?vue&type=style&index=0&id=7660c53a&prod&rel=stylesheet%2Fscss&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (!_vm.loading)?_c('div',{staticClass:\"form-container\",class:_vm.isSidebarOpen},[(!_vm.loading)?_c('el-form',{attrs:{\"model\":_vm.rateLimitersData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.rateLimiters,\"data\":_vm.rateLimitersData}})],1):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"submit-button-container\"},[_c('el-button',{staticClass:\"submit-button\",attrs:{\"type\":\"primary\"},on:{\"click\":_vm.onSubmit}},[_vm._v(_vm._s(_vm.$t('settings.submit')))])],1)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div v-if=\"!loading\" :class=\"isSidebarOpen\" class=\"form-container\">\n <el-form :model=\"uploadData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"upload\" :data=\"uploadData\"/>\n </el-form>\n <el-divider v-if=\"upload\" class=\"divider thick-line\"/>\n <el-form v-if=\"showUploadersLocal\" :model=\"uploadersLocalData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"uploadersLocal\" :data=\"uploadersLocalData\"/>\n <el-divider v-if=\"uploadersLocal\" class=\"divider thick-line\"/>\n </el-form>\n <el-form v-if=\"showUploadersS3\" :model=\"s3Data\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"s3\" :data=\"s3Data\"/>\n <el-divider v-if=\"s3\" class=\"divider thick-line\"/>\n </el-form>\n <el-form v-if=\"showUploadersS3\" :model=\"uploadersS3Data\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"uploadersS3\" :data=\"uploadersS3Data\"/>\n <el-divider v-if=\"uploadersS3\" class=\"divider thick-line\"/>\n </el-form>\n <el-form :model=\"uploadFilterMogrifyData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"uploadFilterMogrify\" :data=\"uploadFilterMogrifyData\"/>\n </el-form>\n <el-divider v-if=\"uploadFilterMogrify\" class=\"divider thick-line\"/>\n <el-form :model=\"uploadAnonymizeFilenameData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"uploadAnonymizeFilename\" :data=\"uploadAnonymizeFilenameData\"/>\n </el-form>\n <div class=\"submit-button-container\">\n <el-button class=\"submit-button\" type=\"primary\" @click=\"onSubmit\">{{ $t('settings.submit') }}</el-button>\n </div>\n </div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex'\nimport i18n from '@/lang'\nimport Setting from './Setting'\nimport _ from 'lodash'\n\nexport default {\n name: 'Upload',\n components: { Setting },\n computed: {\n ...mapGetters([\n 'settings'\n ]),\n isMobile() {\n return this.$store.state.app.device === 'mobile'\n },\n isSidebarOpen() {\n return this.$store.state.app.sidebar.opened ? 'sidebar-opened' : 'sidebar-closed'\n },\n isTablet() {\n return this.$store.state.app.device === 'tablet'\n },\n labelPosition() {\n return this.isMobile ? 'top' : 'right'\n },\n labelWidth() {\n if (this.isMobile) {\n return '120px'\n } else if (this.isTablet) {\n return '200px'\n } else {\n return '280px'\n }\n },\n loading() {\n return this.settings.loading\n },\n s3() {\n return this.settings.description.find(setting => setting.key === ':s3')\n },\n s3Data() {\n return _.get(this.settings.settings, [':ex_aws', ':s3']) || {}\n },\n searchQuery() {\n return this.$store.state.settings.searchQuery\n },\n showUploadersS3() {\n const uploader = _.get(this.settings.settings, [':pleroma', 'Pleroma.Upload', ':uploader'])\n return uploader === 'Pleroma.Uploaders.S3'\n },\n showUploadersLocal() {\n const uploader = _.get(this.settings.settings, [':pleroma', 'Pleroma.Upload', ':uploader'])\n return uploader === 'Pleroma.Uploaders.Local'\n },\n upload() {\n return this.settings.description.find(setting => setting.key === 'Pleroma.Upload')\n },\n uploadData() {\n return _.get(this.settings.settings, [':pleroma', 'Pleroma.Upload']) || {}\n },\n uploadersLocal() {\n return this.settings.description.find(setting => setting.key === 'Pleroma.Uploaders.Local')\n },\n uploadersLocalData() {\n return _.get(this.settings.settings, [':pleroma', 'Pleroma.Uploaders.Local']) || {}\n },\n uploadersS3() {\n return this.settings.description.find(setting => setting.key === 'Pleroma.Uploaders.S3')\n },\n uploadersS3Data() {\n return _.get(this.settings.settings, [':pleroma', 'Pleroma.Uploaders.S3']) || {}\n },\n uploadFilterMogrify() {\n return this.settings.description.find(setting => setting.key === 'Pleroma.Upload.Filter.Mogrify')\n },\n uploadFilterMogrifyData() {\n return _.get(this.settings.settings, [':pleroma', 'Pleroma.Upload.Filter.Mogrify']) || {}\n },\n uploadAnonymizeFilename() {\n return this.settings.description.find(setting => setting.key === 'Pleroma.Upload.Filter.AnonymizeFilename')\n },\n uploadAnonymizeFilenameData() {\n return _.get(this.settings.settings, [':pleroma', 'Pleroma.Upload.Filter.AnonymizeFilename']) || {}\n }\n },\n mounted() {\n if (this.searchQuery.length > 0) {\n const selectedSetting = document.querySelector(`[data-search=\"${this.searchQuery}\"]`)\n if (selectedSetting) {\n selectedSetting.scrollIntoView({ block: 'start', behavior: 'smooth' })\n }\n this.$store.dispatch('SetSearchQuery', '')\n }\n },\n methods: {\n async onSubmit() {\n try {\n await this.$store.dispatch('SubmitChanges')\n } catch (e) {\n return\n }\n this.$message({\n type: 'success',\n message: i18n.t('settings.success')\n })\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\n@import '../../styles/settings';\n@include settings\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Upload.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Upload.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Upload.vue?vue&type=template&id=7e07c9e2&\"\nimport script from \"./Upload.vue?vue&type=script&lang=js&\"\nexport * from \"./Upload.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Upload.vue?vue&type=style&index=0&id=7e07c9e2&prod&rel=stylesheet%2Fscss&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (!_vm.loading)?_c('div',{staticClass:\"form-container\",class:_vm.isSidebarOpen},[_c('el-form',{attrs:{\"model\":_vm.uploadData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.upload,\"data\":_vm.uploadData}})],1),_vm._v(\" \"),(_vm.upload)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e(),_vm._v(\" \"),(_vm.showUploadersLocal)?_c('el-form',{attrs:{\"model\":_vm.uploadersLocalData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.uploadersLocal,\"data\":_vm.uploadersLocalData}}),_vm._v(\" \"),(_vm.uploadersLocal)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.showUploadersS3)?_c('el-form',{attrs:{\"model\":_vm.s3Data,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.s3,\"data\":_vm.s3Data}}),_vm._v(\" \"),(_vm.s3)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.showUploadersS3)?_c('el-form',{attrs:{\"model\":_vm.uploadersS3Data,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.uploadersS3,\"data\":_vm.uploadersS3Data}}),_vm._v(\" \"),(_vm.uploadersS3)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e()],1):_vm._e(),_vm._v(\" \"),_c('el-form',{attrs:{\"model\":_vm.uploadFilterMogrifyData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.uploadFilterMogrify,\"data\":_vm.uploadFilterMogrifyData}})],1),_vm._v(\" \"),(_vm.uploadFilterMogrify)?_c('el-divider',{staticClass:\"divider thick-line\"}):_vm._e(),_vm._v(\" \"),_c('el-form',{attrs:{\"model\":_vm.uploadAnonymizeFilenameData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.uploadAnonymizeFilename,\"data\":_vm.uploadAnonymizeFilenameData}})],1),_vm._v(\" \"),_c('div',{staticClass:\"submit-button-container\"},[_c('el-button',{staticClass:\"submit-button\",attrs:{\"type\":\"primary\"},on:{\"click\":_vm.onSubmit}},[_vm._v(_vm._s(_vm.$t('settings.submit')))])],1)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div v-if=\"!loading\" :class=\"isSidebarOpen\" class=\"form-container\">\n <el-form v-if=\"!loading\" :model=\"vapidDetailsData\" :label-position=\"labelPosition\" :label-width=\"labelWidth\">\n <setting :setting-group=\"vapidDetails\" :data=\"vapidDetailsData\"/>\n </el-form>\n <div class=\"submit-button-container\">\n <el-button class=\"submit-button\" type=\"primary\" @click=\"onSubmit\">{{ $t('settings.submit') }}</el-button>\n </div>\n </div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex'\nimport i18n from '@/lang'\nimport Setting from './Setting'\nimport _ from 'lodash'\n\nexport default {\n name: 'WebPush',\n components: { Setting },\n computed: {\n ...mapGetters([\n 'settings'\n ]),\n isMobile() {\n return this.$store.state.app.device === 'mobile'\n },\n isSidebarOpen() {\n return this.$store.state.app.sidebar.opened ? 'sidebar-opened' : 'sidebar-closed'\n },\n isTablet() {\n return this.$store.state.app.device === 'tablet'\n },\n labelPosition() {\n return this.isMobile ? 'top' : 'right'\n },\n labelWidth() {\n if (this.isMobile) {\n return '120px'\n } else if (this.isTablet) {\n return '200px'\n } else {\n return '280px'\n }\n },\n loading() {\n return this.settings.loading\n },\n searchQuery() {\n return this.$store.state.settings.searchQuery\n },\n vapidDetails() {\n return this.settings.description.find(setting => setting.key === ':vapid_details')\n },\n vapidDetailsData() {\n return _.get(this.settings.settings, [':web_push_encryption', ':vapid_details']) || {}\n }\n },\n mounted() {\n if (this.searchQuery.length > 0) {\n const selectedSetting = document.querySelector(`[data-search=\"${this.searchQuery}\"]`)\n if (selectedSetting) {\n selectedSetting.scrollIntoView({ block: 'start', behavior: 'smooth' })\n }\n this.$store.dispatch('SetSearchQuery', '')\n }\n },\n methods: {\n async onSubmit() {\n try {\n await this.$store.dispatch('SubmitChanges')\n } catch (e) {\n return\n }\n this.$message({\n type: 'success',\n message: i18n.t('settings.success')\n })\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss'>\n@import '../../styles/settings';\n@include settings\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WebPush.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./WebPush.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./WebPush.vue?vue&type=template&id=31959a06&\"\nimport script from \"./WebPush.vue?vue&type=script&lang=js&\"\nexport * from \"./WebPush.vue?vue&type=script&lang=js&\"\nimport style0 from \"./WebPush.vue?vue&type=style&index=0&id=31959a06&prod&rel=stylesheet%2Fscss&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (!_vm.loading)?_c('div',{staticClass:\"form-container\",class:_vm.isSidebarOpen},[(!_vm.loading)?_c('el-form',{attrs:{\"model\":_vm.vapidDetailsData,\"label-position\":_vm.labelPosition,\"label-width\":_vm.labelWidth}},[_c('setting',{attrs:{\"setting-group\":_vm.vapidDetails,\"data\":_vm.vapidDetailsData}})],1):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"submit-button-container\"},[_c('el-button',{staticClass:\"submit-button\",attrs:{\"type\":\"primary\"},on:{\"click\":_vm.onSubmit}},[_vm._v(_vm._s(_vm.$t('settings.submit')))])],1)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","<template>\n <div :class=\"rebootIsSidebarOpen\" class=\"settings-container\">\n <div class=\"reboot-button-container\">\n <reboot-button/>\n </div>\n <div v-if=\"isDesktop\">\n <div :class=\"isSidebarOpen\">\n <h1 class=\"settings-header\">{{ $t('settings.settings') }}</h1>\n <div class=\"docs-search-container\">\n <el-link\n :underline=\"false\"\n href=\"https://docs-develop.pleroma.social/backend/administration/CLI_tasks/config/\"\n target=\"_blank\">\n <el-button class=\"settings-docs-button\">\n <span>\n <i class=\"el-icon-document\"/>\n {{ $t('settings.seeDocs') }}\n </span>\n </el-button>\n </el-link>\n <el-autocomplete\n v-model=\"searchQuery\"\n :fetch-suggestions=\"querySearch\"\n :trigger-on-focus=\"false\"\n clearable\n placeholder=\"Search\"\n prefix-icon=\"el-icon-search\"\n class=\"settings-search-input\"\n @select=\"handleSearchSelect\"/>\n </div>\n </div>\n <component :is=\"componentName\"/>\n </div>\n <div v-if=\"isMobile || isTablet\">\n <div :class=\"isSidebarOpen\" class=\"settings-header-container\">\n <h1 class=\"settings-header\">{{ $t('settings.settings') }}</h1>\n <el-link\n :underline=\"false\"\n href=\"https://docs-develop.pleroma.social/backend/administration/CLI_tasks/config/\"\n target=\"_blank\">\n <el-button class=\"settings-docs-button\">\n <span>\n <i class=\"el-icon-document\"/>\n {{ $t('settings.seeDocs') }}\n </span>\n </el-button>\n </el-link>\n </div>\n <div class=\"settings-search-container\">\n <el-autocomplete\n v-model=\"searchQuery\"\n :fetch-suggestions=\"querySearch\"\n :trigger-on-focus=\"false\"\n clearable\n placeholder=\"Search\"\n prefix-icon=\"el-icon-search\"\n class=\"settings-search-input\"\n @select=\"handleSearchSelect\"/>\n </div>\n <component :is=\"componentName\"/>\n </div>\n </div>\n</template>\n\n<script>\nimport { tabs } from './components/tabs'\nimport {\n ActivityPub,\n Authentication,\n Captcha,\n Emoji,\n Esshd,\n Frontend,\n Gopher,\n Http,\n Instance,\n JobQueue,\n LinkFormatter,\n Logger,\n Mailer,\n MediaProxy,\n Metadata,\n Mrf,\n Other,\n RateLimiters,\n Upload,\n WebPush\n} from './components'\nimport RebootButton from '@/components/RebootButton'\n\nexport default {\n components: {\n ActivityPub,\n Authentication,\n Captcha,\n Emoji,\n Esshd,\n Frontend,\n Gopher,\n Http,\n Instance,\n JobQueue,\n LinkFormatter,\n Logger,\n Mailer,\n MediaProxy,\n Metadata,\n Mrf,\n Other,\n RateLimiters,\n RebootButton,\n Upload,\n WebPush\n },\n data() {\n return {\n searchQuery: ''\n }\n },\n computed: {\n componentName() {\n return this.$route.path.split('/settings/').pop()\n },\n configDisabled() {\n return this.$store.state.settings.configDisabled\n },\n isDesktop() {\n return this.$store.state.app.device === 'desktop'\n },\n isMobile() {\n return this.$store.state.app.device === 'mobile'\n },\n isSidebarOpen() {\n return this.$store.state.app.sidebar.opened ? 'header-sidebar-opened' : 'header-sidebar-closed'\n },\n isTablet() {\n return this.$store.state.app.device === 'tablet'\n },\n rebootIsSidebarOpen() {\n return this.$store.state.app.sidebar.opened ? 'reboot-sidebar-opened' : 'reboot-sidebar-closed'\n },\n searchData() {\n return this.$store.state.settings.searchData\n },\n tabs() {\n return tabs(this.$store.state.settings.description)\n }\n },\n mounted: function() {\n this.$store.dispatch('GetNodeInfo')\n this.$store.dispatch('NeedReboot')\n this.$store.dispatch('FetchSettings')\n },\n methods: {\n handleSearchSelect(selectedValue) {\n this.$store.dispatch('SetSearchQuery', selectedValue.key)\n const tab = Object.keys(this.tabs).find(tab => {\n return this.tabs[tab].settings.includes(selectedValue.group === ':pleroma' ? selectedValue.key : selectedValue.group)\n })\n if (this.$router.currentRoute.path === `/settings/${tab}`) {\n this.scrollTo(selectedValue.key)\n } else if (tab) {\n this.$router.push({ path: `/settings/${tab}` })\n }\n },\n scrollTo(searchQuery) {\n const selectedSetting = document.querySelector(`[data-search=\"${searchQuery}\"]`)\n if (selectedSetting) {\n selectedSetting.scrollIntoView({ block: 'start', behavior: 'smooth' })\n }\n },\n querySearch(queryString, cb) {\n const results = this.searchData.filter(searchObj => searchObj.search.find(el => el.includes(queryString.toLowerCase())))\n .map(searchObj => {\n return { value: `${searchObj.label} in ${searchObj.groupLabel}`, group: searchObj.groupKey, key: searchObj.key }\n })\n cb(results)\n },\n settingsCantBeChanged(settings) {\n const existingSettings = settings.filter(setting => {\n if ([':esshd', ':cors_plug', ':quack', ':logger', ':swoosh', ':mime'].includes(setting)) {\n return this.$store.state.settings.description.findIndex(el => el.group === setting) !== -1\n } else if (setting === 'Pleroma.Web.Auth.Authenticator' || setting === ':admin_token') {\n return this.$store.state.settings.description.findIndex(el => el.children[0].key === setting) !== -1\n } else {\n return this.$store.state.settings.description.findIndex(el => el.key === setting) !== -1\n }\n })\n return existingSettings.length === 0\n }\n }\n}\n</script>\n\n<style rel='stylesheet/scss' lang='scss' scoped>\n@import '../styles/settings';\n@include settings\n</style>\n","export const tabs = description => {\n return {\n 'activity-pub': {\n label: 'settings.activityPub',\n settings: [':activitypub', ':user']\n },\n 'authentication': {\n label: 'settings.auth',\n settings: [':auth', ':ldap', ':oauth2', 'Pleroma.Web.Auth.Authenticator']\n },\n 'esshd': {\n label: 'settings.esshd',\n settings: [':esshd']\n },\n 'captcha': {\n label: 'settings.captcha',\n settings: ['Pleroma.Captcha', 'Pleroma.Captcha.Kocaptcha']\n },\n 'emoji': {\n label: 'settings.emoji',\n settings: [':emoji']\n },\n 'frontend': {\n label: 'settings.frontend',\n settings: [':assets', ':chat', ':frontends', ':emoji', ':frontend_configurations', ':markup', ':static_fe', 'Pleroma.Web.Preload']\n },\n 'gopher': {\n label: 'settings.gopher',\n settings: [':gopher']\n },\n 'http': {\n label: 'settings.http',\n settings: [':cors_plug', ':http', ':http_security', ':web_cache_ttl']\n },\n 'instance': {\n label: 'settings.instance',\n settings: [':admin_token', ':instance', ':instance_panel', ':instances_favicons', ':welcome', ':manifest', 'Pleroma.User', 'Pleroma.ScheduledActivity', ':uri_schemes', ':feed', ':streamer', ':restrict_unauthenticated']\n },\n 'job-queue': {\n label: 'settings.jobQueue',\n settings: ['Pleroma.Workers.PurgeExpiredActivity', ':connections_pool', ':hackney_pools', 'Oban', ':pools', ':workers']\n },\n 'link-formatter': {\n label: 'settings.linkFormatter',\n settings: ['Pleroma.Formatter']\n },\n 'logger': {\n label: 'settings.logger',\n settings: [':console', ':ex_syslogger', ':quack', ':logger']\n },\n 'mailer': {\n label: 'settings.mailer',\n settings: [':email_notifications', 'Pleroma.Emails.Mailer', 'Pleroma.Emails.UserEmail', ':swoosh', 'Pleroma.Emails.NewUsersDigestEmail']\n },\n 'media-proxy': {\n label: 'settings.mediaProxy',\n settings: [':media_proxy', ':media_preview_proxy', 'Pleroma.Web.MediaProxy.Invalidation.Http', 'Pleroma.Web.MediaProxy.Invalidation.Script']\n },\n 'metadata': {\n label: 'settings.metadata',\n settings: ['Pleroma.Web.Metadata', ':rich_media']\n },\n 'mrf': {\n label: 'settings.mrf',\n settings: description.filter(el => el.tab === 'mrf').map(setting => setting.key)\n },\n 'rate-limiters': {\n label: 'settings.rateLimiters',\n settings: [':rate_limit']\n },\n 'web-push': {\n label: 'settings.webPush',\n settings: [':vapid_details']\n },\n 'upload': {\n label: 'settings.upload',\n settings: ['Pleroma.Upload.Filter.AnonymizeFilename', 'Pleroma.Upload.Filter.Mogrify', 'Pleroma.Uploaders.S3', 'Pleroma.Uploaders.Local', 'Pleroma.Upload', ':s3']\n },\n 'other': {\n label: 'settings.other',\n settings: [':mime', 'Pleroma.User.Backup', 'Pleroma.Web.Plugs.RemoteIp', 'Pleroma.Web.Endpoint.MetricsExporter', ':modules', 'Pleroma.Web.ApiSpec.CastAndValidate', ':terms_of_services']\n }\n }\n}\n","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=529107ef&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=529107ef&prod&rel=stylesheet%2Fscss&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"529107ef\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--10-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??ref--10-2!../../../node_modules/sass-loader/dist/cjs.js??ref--10-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RemoteEmojiPack.vue?vue&type=style&index=0&id=67b4cf69&prod&rel=stylesheet%2Fscss&lang=scss&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../../node_modules/css-loader/index.js??ref--10-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ref--10-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--10-3!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SpecificMultipleSelect.vue?vue&type=style&index=0&id=c7cd3716&prod&rel=stylesheet%2Fscss&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--10-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??ref--10-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--10-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MRF.vue?vue&type=style&index=0&id=15b4f82b&prod&rel=stylesheet%2Fscss&lang=scss&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../../node_modules/css-loader/index.js??ref--10-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ref--10-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--10-3!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MascotsInput.vue?vue&type=style&index=0&id=5aa04b4e&prod&rel=stylesheet%2Fscss&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--10-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??ref--10-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--10-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityPub.vue?vue&type=style&index=0&id=cd32f0a4&prod&rel=stylesheet%2Fscss&lang=scss&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../../node_modules/css-loader/index.js??ref--10-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ref--10-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--10-3!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IconsInput.vue?vue&type=style&index=0&id=2e4c0d3b&prod&rel=stylesheet%2Fscss&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--10-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??ref--10-2!../../../node_modules/sass-loader/dist/cjs.js??ref--10-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./NewEmojiUploader.vue?vue&type=style&index=0&id=079545c3&prod&rel=stylesheet%2Fscss&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--10-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??ref--10-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--10-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Emoji.vue?vue&type=style&index=0&id=ddcf856e&prod&rel=stylesheet%2Fscss&lang=scss&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../../node_modules/css-loader/index.js??ref--10-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ref--10-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--10-3!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SenderInput.vue?vue&type=style&index=0&id=e0000a64&prod&rel=stylesheet%2Fscss&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--10-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??ref--10-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--10-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Mailer.vue?vue&type=style&index=0&id=72f1c246&prod&rel=stylesheet%2Fscss&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--10-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??ref--10-2!../../../node_modules/sass-loader/dist/cjs.js??ref--10-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=529107ef&prod&rel=stylesheet%2Fscss&lang=scss&scoped=true&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../../node_modules/css-loader/index.js??ref--10-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ref--10-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--10-3!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RegInvitesInput.vue?vue&type=style&index=0&id=1248b8d6&prod&rel=stylesheet%2Fscss&lang=scss&\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../../node_modules/css-loader/index.js??ref--10-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/dist/cjs.js??ref--10-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--10-3!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BooleanCombinedInput.vue?vue&type=style&index=0&id=dfe9f29c&prod&rel=stylesheet%2Fscss&lang=scss&\"","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.needReboot)?_c('el-tooltip',{attrs:{\"content\":_vm.$t('settings.restartApp'),\"placement\":\"bottom-end\"}},[_c('el-button',{staticClass:\"reboot-button\",attrs:{\"type\":\"warning\"},on:{\"click\":_vm.restartApp}},[_c('span',[_c('i',{staticClass:\"el-icon-refresh\"}),_vm._v(\"\\n \"+_vm._s(_vm.$t('settings.instanceReboot'))+\"\\n \")])])],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js?cacheDirectory!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","<template>\n <el-tooltip v-if=\"needReboot\" :content=\"$t('settings.restartApp')\" placement=\"bottom-end\">\n <el-button type=\"warning\" class=\"reboot-button\" @click=\"restartApp\">\n <span>\n <i class=\"el-icon-refresh\"/>\n {{ $t('settings.instanceReboot') }}\n </span>\n </el-button>\n </el-tooltip>\n</template>\n\n<script>\nimport i18n from '@/lang'\n\nexport default {\n name: 'RebootButton',\n computed: {\n needReboot() {\n return this.$store.state.app.needReboot\n }\n },\n methods: {\n async restartApp() {\n try {\n await this.$store.dispatch('RestartApplication')\n } catch (e) {\n return\n }\n this.$message({\n type: 'success',\n message: i18n.t('settings.restartSuccess')\n })\n }\n }\n}\n</script>\n","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=53cfaf1d&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--10-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??ref--10-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--10-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LinkFormatter.vue?vue&type=style&index=0&id=38a795ec&prod&rel=stylesheet%2Fscss&lang=scss&\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--10-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??ref--10-2!../../../node_modules/sass-loader/dist/cjs.js??ref--10-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LocalEmojiPack.vue?vue&type=style&index=0&id=21319024&prod&rel=stylesheet%2Fscss&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--10-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??ref--10-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--10-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Captcha.vue?vue&type=style&index=0&id=2bdf6cd2&prod&rel=stylesheet%2Fscss&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--10-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??ref--10-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--10-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./JobQueue.vue?vue&type=style&index=0&id=c7dcc79e&prod&rel=stylesheet%2Fscss&lang=scss&\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--10-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/dist/cjs.js??ref--10-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--10-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Metadata.vue?vue&type=style&index=0&id=60a2d3cf&prod&rel=stylesheet%2Fscss&lang=scss&\""],"sourceRoot":""}