From 5481296928a027777b6da73deea068bf6e2e499f Mon Sep 17 00:00:00 2001 From: awesome-manuel <37705355+awesome-manuel@users.noreply.github.com> Date: Tue, 8 Oct 2024 07:21:35 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20Awesome-?= =?UTF-8?q?Technologies/synapse-admin@9fc005032c5b578fe5f360844ba5db69d870?= =?UTF-8?q?fb78=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/{index-C7i13C9_.js => index-wZ_5cIhW.js} | 2 +- index.html | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) rename assets/{index-C7i13C9_.js => index-wZ_5cIhW.js} (98%) diff --git a/assets/index-C7i13C9_.js b/assets/index-wZ_5cIhW.js similarity index 98% rename from assets/index-C7i13C9_.js rename to assets/index-wZ_5cIhW.js index 5fcb150e..ccef2b19 100644 --- a/assets/index-C7i13C9_.js +++ b/assets/index-wZ_5cIhW.js @@ -302,4 +302,4 @@ License: MIT `:"\r"}(de,_e)),F=!1,R.delimiter)T(R.delimiter)&&(R.delimiter=R.delimiter(de),ee.meta.delimiter=R.delimiter);else{var ie=function(ge,Ae,Be,V,X){var Y,ae,se,le;X=X||[","," ","|",";",c.RECORD_SEP,c.UNIT_SEP];for(var Ee=0;Ee=U)return Et(!0)}else for(Ie=G,G++;;){if((Ie=W.indexOf(I,Ie+1))===-1)return ne||ye.push({type:"Quotes",code:"MissingQuotes",message:"Quoted field unterminated",row:Re.length,index:G}),ft();if(Ie===ee-1)return ft(W.substring(G,Ie).replace(Ee,I));if(I!==q||W[Ie+1]!==q){if(I===q||Ie===0||W[Ie-1]!==q){se!==-1&&se=U)return Et(!0);break}ye.push({type:"Quotes",code:"InvalidQuotes",message:"Trailing quote on quoted field is malformed",row:Re.length,index:G}),Ie++}}else Ie++}return ft();function Le(et){Re.push(et),he=G}function De(et){var ke=0;if(et!==-1){var ze=W.substring(Ie+1,et);ze&&ze.trim()===""&&(ke=ze.length)}return ke}function ft(et){return ne||(et===void 0&&(et=W.substring(G)),de.push(et),G=ee,Le(de),pe&&We()),Et()}function Pt(et){G=et,Le(de),de=[],le=W.indexOf(F,G)}function Et(et){return{data:Re,errors:ye,meta:{delimiter:A,linebreak:F,aborted:z,truncated:!!et,cursor:he+(te||0)}}}function We(){D(Et()),Re=[],ye=[]}},this.abort=function(){z=!0},this.getCharIndex=function(){return G}}function g(R){var I=R.data,A=i[I.workerId],F=!1;if(I.error)A.userError(I.error,I.file);else if(I.results&&I.results.data){var L={abort:function(){F=!0,_(I.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:$,resume:$};if(T(A.userStep)){for(var D=0;D{var r;return(r=/^@(?[a-zA-Z0-9._=\-/]+):(?[a-zA-Z0-9\-.]+\.[a-zA-Z]+)$/.exec(e))==null?void 0:r.groups},Q6e=e=>/^(http|https):\/\/[a-zA-Z0-9\-.]+(:\d{1,5})?$/.test(e),X6e=async e=>{const t=`https://${e}/.well-known/matrix/client`;try{return(await Yl(t,{method:"GET"})).json["m.homeserver"].base_url}catch{return`https://${e}`}},Y6e=async e=>{const t=`${e}/_synapse/admin/v1/server_version`;return(await Yl(t,{method:"GET"})).json.server_version},J6e=async e=>{const t=`${e}/_matrix/client/versions`;return(await Yl(t,{method:"GET"})).json},Z6e=async e=>{const t=`${e}/_matrix/client/r0/login`;return(await Yl(t,{method:"GET"})).json.flows},e9e=e=>`${St.getItem("base_url")}/_matrix/media/v1/download/${e}?allow_redirect=true`;function cN(){const e=St.getItem("home_server"),t="0123456789abcdefghijklmnopqrstuvwxyz";return`@${Array.from(crypto.getRandomValues(new Uint32Array(8))).map(n=>t[n%t.length]).join("")}:${e}`}function t9e(e=20){const t="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz~!@-#$";return Array.from(crypto.getRandomValues(new Uint32Array(e))).map(r=>t[r%t.length]).join("")}const dw=!0,r9e=["id","displayname"].sort();function kh({value:e,text:t}){const r=je();return S.jsx("option",{value:e,children:r(t)})}const n9e=()=>{const[e,t]=d.useState([]),[r,n]=d.useState(null),[o,a]=d.useState(null),[i,s]=d.useState(!0),[c,l]=d.useState(null),[f,v]=d.useState(null),[m,h]=d.useState(""),[x,w]=d.useState("stop"),[O,b]=d.useState(!0),[g,_]=d.useState("ignore"),$=je(),P=Ht(),C=yo(),T=async ce=>{if(c!==null)return;t([]),n(null),a(null),v(null);const oe=ce.target.files?ce.target.files[0]:null;if(oe){if(oe.size>1e8){const pe=$("import_users.errors.unreasonably_big",{size:(oe.size/1048576).toFixed(2)});P(pe),n(pe);return}try{uN.parse(oe,{header:!0,skipEmptyLines:!0,complete:pe=>{pe.errors&&n(pe.errors.map(Re=>Re.toString())),R(pe,{setValues:t,setStats:a,setError:n})}})}catch{return n("Unknown error"),null}}},R=({data:ce,meta:oe,errors:pe},{setValues:Re,setStats:ye,setError:de})=>{const he=r9e.filter(ie=>{var be;return(be=oe.fields)==null?void 0:be.find(ge=>ie===ge)});if(he.length>0)return de($("import_users.error.required_field",{field:he[0]})),!1;const ve={user_types:{default:0},is_guest:0,admin:0,deactivated:0,password:0,avatar_url:0,id:0,total:ce.length},_e=pe.map(ie=>ie.message);return ce.forEach((ie,be)=>{var ge,Ae,Be;ie.user_type===void 0||ie.user_type===""?ve.user_types.default++:ve.user_types[ie.user_type]+=1,(ge=oe.fields)!=null&&ge.includes("name")&&delete ie.name,(Ae=oe.fields)!=null&&Ae.includes("user_type")&&delete ie.user_type,(Be=oe.fields)!=null&&Be.includes("is_admin")&&delete ie.is_admin,["is_guest","admin","deactivated"].forEach(V=>{ie[V]==="true"?(ve[V]++,ie[V]=!0):(ie[V]!=="false"&&ie[V]!==""&&_e.push($("import_users.error.invalid_value",{field:V,row:be})),ie[V]=!1)}),ie.password!==void 0&&ie.password!==""&&ve.password++,ie.avatar_url!==void 0&&ie.avatar_url!==""&&ve.avatar_url++,ie.id!==void 0&&ie.id!==""&&ve.id++}),_e.length>0&&de(_e),ye(ve),Re(ce),!0},I=async()=>{if(c!==null){P("import_users.errors.already_in_progress");return}const ce=await A(C,e,x,O,g,i,l,n);v(ce),h(uN.unparse(ce.skippedRecords)),console.log("Skipped records:"),console.log(m)},A=async(ce,oe,pe,Re,ye,de,he,ve)=>{const _e=[],ie=[],be=[],ge={total:0,id:0,is_guest:0,admin:0,password:0};let Ae=0;const Be=oe.length;try{he({done:Ae,limit:Be});for(const V of oe){const X={...V};(ye==="ignore"||X.id===void 0)&&(X.id=cN()),(Re===!1||V.password===void 0)&&(X.password=t9e()),dw&&console.log("will check for existence of record "+JSON.stringify(X));let Y=0;const ae=se=>ce.getOne("users",{id:se.id}).then(async()=>{if(dw&&console.log("already existed"),ye==="update"||pe==="skip")_e.push(se);else{if(pe==="stop")throw new Error($("import_users.error.id_exits",{id:se.id}));{const le=Object.assign({},se,{id:cN()});Y++,Y>512?(console.warn("retry loop got stuck? pathological situation?"),_e.push(se)):await ae(le)}}},async()=>{dw&&console.log("OK to create record "+se.id+" ("+se.displayname+")."),de||await ce.create("users",{data:se}),be.push(se)});await ae(X),Ae++,he({done:Ae,limit:oe.length})}he(null)}catch(V){ve($("import_users.error.at_entry",{entry:Ae+1,message:V instanceof Error?V.message:String(V)})),he(null)}return{skippedRecords:_e,erroredRecords:ie,succeededRecords:be,totalRecordCount:Be,changeStats:ge,wasDryRun:de}},F=()=>{const ce=document.createElement("a");console.log(m);const oe=new Blob([m],{type:"text/comma-separated-values"});ce.href=URL.createObjectURL(oe),ce.download="skippedRecords.csv",document.body.appendChild(ce),ce.click()},L=async ce=>{if(c!==null)return;const oe=ce.target.value;w(oe)},D=ce=>{c===null&&b(ce.target.checked)},U=async ce=>{if(c!==null)return;const oe=ce.target.value;_(oe)},H=ce=>{c===null&&s(ce.target.checked)},q=o&&!f&&[S.jsxs(Uu,{children:[S.jsx(ml,{title:$("import_users.cards.importstats.header")}),S.jsxs(jo,{children:[S.jsx("div",{children:$("import_users.cards.importstats.users_total",o.total)}),S.jsx("div",{children:$("import_users.cards.importstats.guest_count",o.is_guest)}),S.jsx("div",{children:$("import_users.cards.importstats.admin_count",o.admin)})]})]}),S.jsxs(Uu,{children:[S.jsx(ml,{title:$("import_users.cards.ids.header")}),S.jsxs(jo,{children:[S.jsx("div",{children:o.id===o.total?$("import_users.cards.ids.all_ids_present"):$("import_users.cards.ids.count_ids_present",o.id)}),o.id>0?S.jsx("div",{children:S.jsxs(mL,{onChange:U,value:g,disabled:c!==null,children:[S.jsx(kh,{value:"ignore",text:"import_users.cards.ids.mode.ignore"}),S.jsx(kh,{value:"update",text:"import_users.cards.ids.mode.update"})]})}):""]})]}),S.jsxs(Uu,{children:[S.jsx(ml,{title:$("import_users.cards.passwords.header")}),S.jsxs(jo,{children:[S.jsx("div",{children:o.password===o.total?$("import_users.cards.passwords.all_passwords_present"):$("import_users.cards.passwords.count_passwords_present",o.password)}),o.password>0?S.jsx("div",{children:S.jsx(uO,{control:S.jsx(ad,{checked:O,disabled:c!==null,onChange:D}),label:$("import_users.cards.passwords.use_passwords")})}):""]})]})],G=o&&!f&&S.jsxs(Uu,{children:[S.jsx(ml,{title:$("import_users.cards.conflicts.header")}),S.jsx(jo,{children:S.jsx("div",{children:S.jsxs(mL,{onChange:L,value:x,disabled:c!==null,children:[S.jsx(kh,{value:"stop",text:"import_users.cards.conflicts.mode.stop"}),S.jsx(kh,{value:"skip",text:"import_users.cards.conflicts.mode.skip"})]})})})]}),z=r&&S.jsxs(Uu,{children:[S.jsx(ml,{title:$("import_users.error.error")}),S.jsx(jo,{children:(Array.isArray(r)?r:[r]).map(ce=>S.jsx("div",{children:ce}))})]}),W=!f&&S.jsxs(Uu,{children:[S.jsx(ml,{title:$("import_users.cards.upload.header")}),S.jsxs(jo,{children:[$("import_users.cards.upload.explanation"),S.jsx("a",{href:"./data/example.csv",children:"example.csv"}),S.jsx("br",{}),S.jsx("br",{}),S.jsx("input",{type:"file",onChange:T,disabled:c!==null})]})]}),te=f&&S.jsxs(jo,{children:[S.jsx(ml,{title:$("import_users.cards.results.header")}),S.jsxs("div",{children:[$("import_users.cards.results.total",f.totalRecordCount),S.jsx("br",{}),$("import_users.cards.results.successful",f.succeededRecords.length),S.jsx("br",{}),f.skippedRecords.length?[$("import_users.cards.results.skipped",f.skippedRecords.length),S.jsx("div",{children:S.jsx("button",{onClick:F,children:$("import_users.cards.results.download_skipped")})}),S.jsx("br",{})]:"",f.erroredRecords.length?[$("import_users.cards.results.skipped",f.erroredRecords.length),S.jsx("br",{})]:"",S.jsx("br",{}),f.wasDryRun&&[$("import_users.cards.results.simulated_only"),S.jsx("br",{})]]})]}),ne=!e||e.length===0||f?void 0:S.jsxs(D6,{children:[S.jsx(uO,{control:S.jsx(ad,{checked:i,onChange:H,disabled:c!==null}),label:$("import_users.cards.startImport.simulate_only")}),S.jsx($r,{size:"large",onClick:I,disabled:c!==null,children:$("import_users.cards.startImport.run_import")}),c!==null?S.jsxs("div",{children:[c.done," of ",c.limit," done"]}):null]}),ee=[];W&&ee.push(W),z&&ee.push(z),G&&ee.push(G),q&&ee.push(...q),ne&&ee.push(ne),te&&ee.push(te);const Oe=S.jsx(cu,{children:ee});return[S.jsx(el,{defaultTitle:$("import_users.title")}),Oe]},o9e=n9e,VU={ra:{action:{add_filter:"Filter hinzufügen",add:"Neu",back:"Zurück",bulk_actions:"Ein Element ausgewählt |||| %{smart_count} Elemente ausgewählt",cancel:"Abbrechen",clear_array_input:"Liste löschen",clear_input_value:"Eingabe löschen",clone:"Klonen",confirm:"Bestätigen",create:"Erstellen",create_item:"%{item} erstellen",delete:"Löschen",edit:"Bearbeiten",export:"Exportieren",list:"Liste",refresh:"Neu laden",remove_filter:"Filter entfernen",remove_all_filters:"Alle Filter entfernen",remove:"Entfernen",save:"Speichern",search:"Suchen",select_all:"Alles auswählen",select_row:"Reihe auswählen",show:"Anzeigen",sort:"Sortieren",undo:"Rückgängig machen",unselect:"Abwählen",expand:"Erweitern",close:"Schließen",open_menu:"Menü öffnen",close_menu:"Menü schließen",update:"Aktualisieren",move_up:"Nach oben",move_down:"Nach unten",open:"Öffnen",toggle_theme:"Theme wechseln",select_columns:"Spalten"},boolean:{true:"Ja",false:"Nein",null:" "},page:{create:"%{name} erstellen",dashboard:"Dashboard",edit:"%{name} %{recordRepresentation}",error:"Etwas ist schiefgelaufen",list:"%{name}",loading:"Laden",not_found:"Nicht gefunden",show:"%{name} %{recordRepresentation}",empty:"Noch kein %{name}.",invite:"Neu erstellen?"},input:{file:{upload_several:"Dateien hier ablegen, oder zum Auswählen klicken.",upload_single:"Dateien hier ablegen, oder zum Auswählen klicken."},image:{upload_several:"Bilder hier ablegen, oder zum Auswählen klicken.",upload_single:"Bild hier ablegen, oder zum Auswählen klicken."},references:{all_missing:"Die Daten der Referenz können nicht gefunden werden.",many_missing:"Mindestens eine Referenz scheint nicht mehr verfügbar zu sein.",single_missing:"Die Referenz scheint nicht mehr verfügbar zu sein."},password:{toggle_visible:"Passwort verbergen",toggle_hidden:"Passwort einblenden"}},message:{about:"Über",are_you_sure:"Sind Sie sicher?",auth_error:"Bei der Validierung des Authentifizierungstokens ist ein Fehler aufgetreten.",bulk_delete_content:"Sicher, dass Sie %{name} löschen wollen? |||| Sicher, dass Sie diese %{smart_count} Elemente löschen wollen?",bulk_delete_title:"%{name} löschen |||| %{smart_count} %{name} löschen",bulk_update_content:"Sicher, dass Sie %{name} aktualisieren wollen? |||| Sicher, dass Sie %{smart_count} Elemente aktualisieren wollen?",bulk_update_title:"%{name} aktualisieren |||| %{smart_count} %{name} aktualisieren",clear_array_input:"Sicher, dass Sie die ganze Liste löschen wollen?",delete_content:"Sicher, dass Sie dieses Element löschen wollen?",delete_title:"%{name} #%{id} löschen",details:"Details",error:"Ein Fehler trat auf, Ihre Anfrage konnte nicht verarbeitet werden.",invalid_form:"Das Formular ist ungültig. Bitte überprüfen Sie Ihre Eingaben.",loading:"Die Seite wird geladen, noch einen Moment.",no:"Nein",not_found:"Sie eine falsche URL aufgerufen oder eingegeben.",yes:"Ja",unsaved_changes:"Einige Änderungen wurden nicht gespeichert. Sicher, dass Sie diese nicht übernehmen wollen?"},navigation:{no_results:"Keine Ergebnisse gefunden.",no_more_results:"Es gibt keine Seite %{page}. Versuche eine vorherige.",page_out_of_boundaries:"Es gibt keine Seite %{page}.",page_out_from_end:"Es gibt keine Seite mehr nach dieser.",page_out_from_begin:"Es gibt keine Seite vor Seite 1.",page_range_info:"%{offsetBegin}-%{offsetEnd} von %{total}",partial_page_range_info:"%{offsetBegin}-%{offsetEnd} von mehr als %{offsetEnd}",current_page:"Seite %{page}",page:"Gehe zu Seite %{page}",first:"Gehe zur ersten Seite",last:"Gehe zur letzten Seite",next:"Gehe zur nächsten Seite",previous:"Gehe zur vorherigen Seite",page_rows_per_page:"Reihen pro Seite:",skip_nav:"Zum Inhalt springen"},sort:{sort_by:"Nach %{field} %{order} sortieren",ASC:"Aufsteigend",DESC:"Absteigend"},auth:{auth_check_error:"Bitte anmelden um fortzufahren",user_menu:"Profil",username:"Nutzername",password:"Passwort",sign_in:"Anmelden",sign_in_error:"Anmeldung fehlgeschlagen, bitte erneut versuchen.",logout:"Abmelden"},notification:{updated:"Element aktualisiert |||| %{smart_count} Elemente aktualisiert",created:"Element erstellt",deleted:"Element gelöscht |||| %{smart_count} Elemente gelöscht",bad_item:"Fehlerhaftes Element",item_doesnt_exist:"Element existiert nicht",http_error:"Kommunikation mit Server fehlgeschlagen",data_provider_error:"DataProvider-Fehler. Mehr Details in der Konsole.",i18n_error:"Die Übersetzungen für die ausgewählte Sprache können nicht geladen werden",canceled:"Aktion abgebrochen",logged_out:"Ihre Sitzung ist abgelaufen, bitte erneut verbinden.",not_authorized:"Sie sind nicht berechtigt, auf diese Ressource zuzugreifen."},validation:{required:"Erforderlich",minLength:"Muss mindestens %{min} Zeichen betragen",maxLength:"Darf %{max} Zeichen oder weniger betragen",minValue:"Muss mindestens %{min} betragen",maxValue:"Darf %{max} oder weniger betragen",number:"Muss eine Nummer sein",email:"Muss eine gültige E-Mail sein",oneOf:"Muss eine der folgenden Optionen sein: %{options}",regex:"Muss einem gewissen Format entsprechen (regexp): %{pattern}"},saved_queries:{label:"Gespeicherte Anfragen",query_name:"Name der Anfrage",new_label:"Speichere aktuelle Anfrage...",new_dialog_title:"Speichere aktuelle Anfrage als",remove_label:"Gespeicherte Anfrage löschen",remove_label_with_name:'Anfrage "%{name}" löschen',remove_dialog_title:"Gespeicherte Anfrage löschen?",remove_message:"Sicher, dass Sie diese Anfrage aus der Liste der gespeicherten löschen wollen?",help:"Liste filtern und diese Anfrage für später speichern"},configurable:{customize:"Anpassen",configureMode:"Diese Seite anpassen",inspector:{title:"Inspektor",content:"Bewegen Sie den Mauszeigen über die UI-Elemente, um sie zu konfigurieren",reset:"Einstellungen zurücksetzen",hideAll:"Alles verbergen",showAll:"Alles anzeigen"},Datagrid:{title:"Datagrid",unlabeled:"Unbekannte Spalte #%{column}"},SimpleForm:{title:"Formular",unlabeled:"Unbenannter Input #%{input}"},SimpleList:{title:"Liste",primaryText:"Primärtext",secondaryText:"Sekundärtext",tertiaryText:"Tertiärtext"}}}},a9e={ra:{message:{are_you_sure:"Bist du sicher?",bulk_delete_content:"Sicher, dass du %{name} löschen willst? |||| Sicher, dass du diese %{smart_count} Elemente löschen willst?",bulk_update_content:"Sicher, dass du %{name} aktualisieren willst? |||| Sicher, dass du %{smart_count} Elemente aktualisieren willst?",clear_array_input:"Sicher, dass du die ganze Liste löschen willst?",delete_content:"Sicher, dass du dieses Element löschen willst?",error:"Ein Fehler trat auf, Deine Anfrage konnte nicht verarbeitet werden.",invalid_form:"Das Formular ist ungültig. Bitte überprüfe Deine Eingaben.",not_found:"Du hast eine falsche URL aufgerufen oder eingegeben.",unsaved_changes:"Einige Änderungen wurden nicht gespeichert. Sicher, dass du diese nicht übernehmen willst?"},notification:{logged_out:"Deine Sitzung ist abgelaufen, bitte erneut verbinden.",not_authorized:"Du bist nicht berechtigt, auf diese Ressource zuzugreifen."},saved_queries:{remove_message:"Sicher, dass du diese Anfrage aus der Liste der gespeicherten löschen willst?"},configurable:{inspector:{content:"Bewege den Mauszeigen über die UI-Elemente, um sie zu konfigurieren"}}}};vP(VU,a9e);const i9e={...VU,synapseadmin:{auth:{base_url:"Heimserver URL",welcome:"Willkommen bei Synapse-admin",server_version:"Synapse Version",supports_specs:"unterstützt Matrix-Specs",username_error:"Bitte vollständigen Nutzernamen angeben: '@user:domain'",protocol_error:"Die URL muss mit 'http://' oder 'https://' beginnen",url_error:"Keine gültige Matrix Server URL",sso_sign_in:"Anmeldung mit SSO"},users:{invalid_user_id:"Lokaler Anteil der Matrix Benutzer-ID ohne Homeserver.",tabs:{sso:"SSO"}},rooms:{details:"Raumdetails",tabs:{basic:"Allgemein",members:"Mitglieder",detail:"Details",permission:"Berechtigungen"}},reports:{tabs:{basic:"Allgemein",detail:"Details"}}},import_users:{error:{at_entry:"Bei Eintrag %{entry}: %{message}",error:"Fehler",required_field:"Pflichtfeld '%{field}' fehlt",invalid_value:"Ungültiger Wert in Zeile %{row}. Feld '%{field}' darf nur die Werte 'true' oder 'false' enthalten",unreasonably_big:"Datei ist zu groß für den Import (%{size} Megabytes)",already_in_progress:"Es läuft bereits ein Import",id_exits:"ID %{id} existiert bereits"},title:"Benutzer aus CSV importieren",goToPdf:"Gehe zum PDF",cards:{importstats:{header:"Benutzer importieren",users_total:"%{smart_count} Benutzer in der CSV Datei |||| %{smart_count} Benutzer in der CSV Datei",guest_count:"%{smart_count} Gast |||| %{smart_count} Gäste",admin_count:"%{smart_count} Server Administrator |||| %{smart_count} Server Administratoren"},conflicts:{header:"Konfliktstrategie",mode:{stop:"Stoppe bei Fehlern",skip:"Zeige Fehler und überspringe fehlerhafte Einträge"}},ids:{header:"IDs",all_ids_present:"IDs in jedem Eintrag vorhanden",count_ids_present:"%{smart_count} Eintrag mit ID |||| %{smart_count} Einträge mit IDs",mode:{ignore:"Ignoriere IDs der CSV-Datei und erstelle neue",update:"Aktualisiere existierende Benutzer"}},passwords:{header:"Passwörter",all_passwords_present:"Passwörter in jedem Eintrag vorhanden",count_passwords_present:"%{smart_count} Eintrag mit Passwort |||| %{smart_count} Einträge mit Passwörtern",use_passwords:"Verwende Passwörter aus der CSV Datei"},upload:{header:"CSV Datei importieren",explanation:"Hier können Sie eine Datei mit kommagetrennten Daten hochladen, die verwendet werden um Benutzer anzulegen oder zu ändern. Die Datei muss mindestens die Felder 'id' und 'displayname' enthalten. Hier können Sie eine Beispieldatei herunterladen und anpassen: "},startImport:{simulate_only:"Nur simulieren",run_import:"Importieren"},results:{header:"Ergebnis",total:"%{smart_count} Eintrag insgesamt |||| %{smart_count} Einträge insgesamt",successful:"%{smart_count} Einträge erfolgreich importiert",skipped:"%{smart_count} Einträge übersprungen",download_skipped:"Übersprungene Einträge herunterladen",with_error:"%{smart_count} Eintrag mit Fehlern ||| %{smart_count} Einträge mit Fehlern",simulated_only:"Import-Vorgang war nur simuliert"}}},delete_media:{name:"Medien",fields:{before_ts:"Letzter Zugriff vor",size_gt:"Größer als (in Bytes)",keep_profiles:"Behalte Profilbilder"},action:{send:"Medien löschen",send_success:"Anfrage erfolgreich versendet.",send_failure:"Beim Versenden ist ein Fehler aufgetreten."},helper:{send:"Diese API löscht die lokalen Medien von der Festplatte des eigenen Servers. Dies umfasst alle lokalen Miniaturbilder und Kopien von Medien. Diese API wirkt sich nicht auf Medien aus, die sich in externen Medien-Repositories befinden."}},resources:{users:{name:"Benutzer",email:"E-Mail",msisdn:"Telefon",threepid:"E-Mail / Telefon",fields:{avatar:"Avatar",id:"Benutzer-ID",name:"Name",is_guest:"Gast",admin:"Server Administrator",locked:"Gesperrt",deactivated:"Deaktiviert",erased:"Gelöscht",guests:"Zeige Gäste",show_deactivated:"Zeige deaktivierte Benutzer",user_id:"Suche Benutzer",displayname:"Anzeigename",password:"Passwort",avatar_url:"Avatar URL",avatar_src:"Avatar",medium:"Medium",threepids:"3PIDs",address:"Adresse",creation_ts_ms:"Zeitpunkt der Erstellung",consent_version:"Zugestimmte Geschäftsbedingungen",auth_provider:"Provider",user_type:"Benutzertyp"},helper:{password:"Durch die Änderung des Passworts wird der Benutzer von allen Sitzungen abgemeldet.",deactivate:"Sie müssen ein Passwort angeben, um ein Konto wieder zu aktivieren.",erase:"DSGVO konformes Löschen der Benutzerdaten"},action:{erase:"Lösche Benutzerdaten"}},rooms:{name:"Raum |||| Räume",fields:{room_id:"Raum-ID",name:"Name",canonical_alias:"Alias",joined_members:"Mitglieder",joined_local_members:"Lokale Mitglieder",joined_local_devices:"Lokale Endgeräte",state_events:"Zustandsereignisse / Komplexität",version:"Version",is_encrypted:"Verschlüsselt",encryption:"Verschlüsselungs-Algorithmus",federatable:"Fö­de­rierbar",public:"Sichtbar im Raumverzeichnis",creator:"Ersteller",join_rules:"Beitrittsregeln",guest_access:"Gastzugriff",history_visibility:"Historie-Sichtbarkeit",topic:"Thema",avatar:"Avatar"},helper:{forward_extremities:"Forward extremities are the leaf events at the end of a Directed acyclic graph (DAG) in a room, aka events that have no children. The more exist in a room, the more state resolution that Synapse needs to perform (hint: it's an expensive operation). While Synapse has code to prevent too many of these existing at one time in a room, bugs can sometimes make them crop up again. If a room has >10 forward extremities, it's worth checking which room is the culprit and potentially removing them using the SQL queries mentioned in #1760."},enums:{join_rules:{public:"Öffentlich",knock:"Auf Anfrage",invite:"Nur auf Einladung",private:"Privat"},guest_access:{can_join:"Gäste können beitreten",forbidden:"Gäste können nicht beitreten"},history_visibility:{invited:"Ab Einladung",joined:"Ab Beitritt",shared:"Ab Setzen der Einstellung",world_readable:"Jeder"},unencrypted:"Nicht verschlüsselt"},action:{erase:{title:"Raum löschen",content:"Sind Sie sicher dass Sie den Raum löschen möchten? Diese Aktion kann nicht rückgängig gemacht werden. Alle Nachrichten und Medien, die der Raum beinhaltet werden vom Server gelöscht!"}}},reports:{name:"Gemeldetes Ereignis |||| Gemeldete Ereignisse",fields:{id:"ID",received_ts:"Meldezeit",user_id:"Meldender",name:"Raumname",score:"Wert",reason:"Grund",event_id:"Event-ID",event_json:{origin:"Ursprungsserver",origin_server_ts:"Sendezeit",type:"Eventtyp",content:{msgtype:"Inhaltstyp",body:"Nachrichteninhalt",format:"Nachrichtenformat",formatted_body:"Formatierter Nachrichteninhalt",algorithm:"Verschlüsselungsalgorithmus",info:{mimetype:"Typ"},url:"URL"}}},action:{erase:{title:"Gemeldetes Event löschen",content:"Sind Sie sicher dass Sie das gemeldete Event löschen möchten? Diese Aktion kann nicht rückgängig gemacht werden."}}},connections:{name:"Verbindungen",fields:{last_seen:"Datum",ip:"IP-Adresse",user_agent:"User Agent"}},devices:{name:"Gerät |||| Geräte",fields:{device_id:"Geräte-ID",display_name:"Gerätename",last_seen_ts:"Zeitstempel",last_seen_ip:"IP-Adresse"},action:{erase:{title:"Entferne %{id}",content:'Möchten Sie das Gerät "%{name}" wirklich entfernen?',success:"Gerät erfolgreich entfernt.",failure:"Beim Entfernen ist ein Fehler aufgetreten."}}},users_media:{name:"Medien",fields:{media_id:"Medien ID",media_length:"Größe",media_type:"Typ",upload_name:"Dateiname",quarantined_by:"Zur Quarantäne hinzugefügt",safe_from_quarantine:"Schutz vor Quarantäne",created_ts:"Erstellt",last_access_ts:"Letzter Zugriff"},action:{open:"Mediendatei in neuem Fenster öffnen"}},protect_media:{action:{create:"Ungeschützt, Schutz erstellen",delete:"Geschützt, Schutz aufheben",none:"In Quarantäne",send_success:"Erfolgreich den Schutz-Status geändert.",send_failure:"Beim Versenden ist ein Fehler aufgetreten."}},quarantine_media:{action:{name:"Quarantäne",create:"Zur Quarantäne hinzufügen",delete:"In Quarantäne, Quarantäne aufheben",none:"Geschützt vor Quarantäne",send_success:"Erfolgreich den Quarantäne-Status geändert.",send_failure:"Beim Versenden ist ein Fehler aufgetreten."}},pushers:{name:"Pusher |||| Pushers",fields:{app:"App",app_display_name:"App-Anzeigename",app_id:"App ID",device_display_name:"Geräte-Anzeigename",kind:"Art",lang:"Sprache",profile_tag:"Profil-Tag",pushkey:"Pushkey",data:{url:"URL"}}},servernotices:{name:"Serverbenachrichtigungen",send:"Servernachricht versenden",fields:{body:"Nachricht"},action:{send:"Sende Nachricht",send_success:"Nachricht erfolgreich versendet.",send_failure:"Beim Versenden ist ein Fehler aufgetreten."},helper:{send:'Sendet eine Serverbenachrichtigung an die ausgewählten Nutzer. Hierfür muss das Feature "Server Notices" auf dem Server aktiviert sein.'}},user_media_statistics:{name:"Dateien je Benutzer",fields:{media_count:"Anzahl der Dateien",media_length:"Größe der Dateien"}},forward_extremities:{name:"Vorderextremitäten",fields:{id:"Event-ID",received_ts:"Zeitstempel",depth:"Tiefe",state_group:"Zustandsgruppe"}},room_state:{name:"Zustandsereignisse",fields:{type:"Typ",content:"Inhalt",origin_server_ts:"Sendezeit",sender:"Absender"}},room_directory:{name:"Raumverzeichnis",fields:{world_readable:"Gastbenutzer dürfen ohne Beitritt lesen",guest_can_join:"Gastbenutzer dürfen beitreten"},action:{title:"Raum aus Verzeichnis löschen |||| %{smart_count} Räume aus Verzeichnis löschen",content:"Möchten Sie den Raum wirklich aus dem Raumverzeichnis löschen? |||| Möchten Sie die %{smart_count} Räume wirklich aus dem Raumverzeichnis löschen?",erase:"Lösche aus Verzeichnis",create:"Eintragen ins Verzeichnis",send_success:"Raum erfolgreich eingetragen.",send_failure:"Beim Entfernen ist ein Fehler aufgetreten."}},destinations:{name:"Föderation",fields:{destination:"Ziel",failure_ts:"Fehlerzeitpunkt",retry_last_ts:"Letzter Wiederholungsversuch",retry_interval:"Wiederholungsintervall",last_successful_stream_ordering:"letzte erfogreicher Stream",stream_ordering:"Stream"},action:{reconnect:"Neu verbinden"}},registration_tokens:{name:"Registrierungstoken",fields:{token:"Token",valid:"Gültige Token",uses_allowed:"Anzahl",pending:"Ausstehend",completed:"Abgeschlossen",expiry_time:"Ablaufzeit",length:"Länge"},helper:{length:"Länge des Tokens, wenn kein Token vorgegeben wird."}}}},s9e={...zU,synapseadmin:{auth:{base_url:"Homeserver URL",welcome:"Welcome to Synapse-admin",server_version:"Synapse version",supports_specs:"supports Matrix specs",username_error:"Please enter fully qualified user ID: '@user:domain'",protocol_error:"URL has to start with 'http://' or 'https://'",url_error:"Not a valid Matrix server URL",sso_sign_in:"Sign in with SSO"},users:{invalid_user_id:"Localpart of a Matrix user-id without homeserver.",tabs:{sso:"SSO"}},rooms:{details:"Room details",tabs:{basic:"Basic",members:"Members",detail:"Details",permission:"Permissions"}},reports:{tabs:{basic:"Basic",detail:"Details"}}},import_users:{error:{at_entry:"At entry %{entry}: %{message}",error:"Error",required_field:"Required field '%{field}' is not present",invalid_value:"Invalid value on line %{row}. '%{field}' field may only be 'true' or 'false'",unreasonably_big:"Refused to load unreasonably big file of %{size} megabytes",already_in_progress:"An import run is already in progress",id_exits:"ID %{id} already present"},title:"Import users via CSV",goToPdf:"Go to PDF",cards:{importstats:{header:"Import users",users_total:"%{smart_count} user in CSV file |||| %{smart_count} users in CSV file",guest_count:"%{smart_count} guest |||| %{smart_count} guests",admin_count:"%{smart_count} admin |||| %{smart_count} admins"},conflicts:{header:"Conflict strategy",mode:{stop:"Stop on conflict",skip:"Show error and skip on conflict"}},ids:{header:"IDs",all_ids_present:"IDs present on every entry",count_ids_present:"%{smart_count} entry with ID |||| %{smart_count} entries with IDs",mode:{ignore:"Ignore IDs in CSV and create new ones",update:"Update existing records"}},passwords:{header:"Passwords",all_passwords_present:"Passwords present on every entry",count_passwords_present:"%{smart_count} entry with password |||| %{smart_count} entries with passwords",use_passwords:"Use passwords from CSV"},upload:{header:"Input CSV file",explanation:"Here you can upload a file with comma separated values that is processed to create or update users. The file must include the fields 'id' and 'displayname'. You can download and adapt an example file here: "},startImport:{simulate_only:"Simulate only",run_import:"Import"},results:{header:"Import results",total:"%{smart_count} entry in total |||| %{smart_count} entries in total",successful:"%{smart_count} entries successfully imported",skipped:"%{smart_count} entries skipped",download_skipped:"Download skipped records",with_error:"%{smart_count} entry with errors |||| %{smart_count} entries with errors",simulated_only:"Run was only simulated"}}},delete_media:{name:"Media",fields:{before_ts:"last access before",size_gt:"Larger then (in bytes)",keep_profiles:"Keep profile images"},action:{send:"Delete media",send_success:"Request successfully sent.",send_failure:"An error has occurred."},helper:{send:"This API deletes the local media from the disk of your own server. This includes any local thumbnails and copies of media downloaded. This API will not affect media that has been uploaded to external media repositories."}},resources:{users:{name:"User |||| Users",email:"Email",msisdn:"Phone",threepid:"Email / Phone",fields:{avatar:"Avatar",id:"User-ID",name:"Name",is_guest:"Guest",admin:"Server Administrator",locked:"Locked",deactivated:"Deactivated",erased:"Erased",guests:"Show guests",show_deactivated:"Show deactivated users",user_id:"Search user",displayname:"Displayname",password:"Password",avatar_url:"Avatar URL",avatar_src:"Avatar",medium:"Medium",threepids:"3PIDs",address:"Address",creation_ts_ms:"Creation timestamp",consent_version:"Consent version",auth_provider:"Provider",user_type:"User type"},helper:{password:"Changing password will log user out of all sessions.",deactivate:"You must provide a password to re-activate an account.",erase:"Mark the user as GDPR-erased"},action:{erase:"Erase user data"}},rooms:{name:"Room |||| Rooms",fields:{room_id:"Room-ID",name:"Name",canonical_alias:"Alias",joined_members:"Members",joined_local_members:"Local members",joined_local_devices:"Local devices",state_events:"State events / Complexity",version:"Version",is_encrypted:"Encrypted",encryption:"Encryption",federatable:"Federatable",public:"Visible in room directory",creator:"Creator",join_rules:"Join rules",guest_access:"Guest access",history_visibility:"History visibility",topic:"Topic",avatar:"Avatar"},helper:{forward_extremities:"Forward extremities are the leaf events at the end of a Directed acyclic graph (DAG) in a room, aka events that have no children. The more exist in a room, the more state resolution that Synapse needs to perform (hint: it's an expensive operation). While Synapse has code to prevent too many of these existing at one time in a room, bugs can sometimes make them crop up again. If a room has >10 forward extremities, it's worth checking which room is the culprit and potentially removing them using the SQL queries mentioned in #1760."},enums:{join_rules:{public:"Public",knock:"Knock",invite:"Invite",private:"Private"},guest_access:{can_join:"Guests can join",forbidden:"Guests can not join"},history_visibility:{invited:"Since invited",joined:"Since joined",shared:"Since shared",world_readable:"Anyone"},unencrypted:"Unencrypted"},action:{erase:{title:"Delete room",content:"Are you sure you want to delete the room? This cannot be undone. All messages and shared media in the room will be deleted from the server!"}}},reports:{name:"Reported event |||| Reported events",fields:{id:"ID",received_ts:"report time",user_id:"announcer",name:"name of the room",score:"score",reason:"reason",event_id:"event ID",event_json:{origin:"origin server",origin_server_ts:"time of send",type:"event type",content:{msgtype:"content type",body:"content",format:"format",formatted_body:"formatted content",algorithm:"algorithm",url:"URL",info:{mimetype:"Type"}}}},action:{erase:{title:"Delete reported event",content:"Are you sure you want to delete the reported event? This cannot be undone."}}},connections:{name:"Connections",fields:{last_seen:"Date",ip:"IP address",user_agent:"User agent"}},devices:{name:"Device |||| Devices",fields:{device_id:"Device-ID",display_name:"Device name",last_seen_ts:"Timestamp",last_seen_ip:"IP address"},action:{erase:{title:"Removing %{id}",content:'Are you sure you want to remove the device "%{name}"?',success:"Device successfully removed.",failure:"An error has occurred."}}},users_media:{name:"Media",fields:{media_id:"Media ID",media_length:"File Size (in Bytes)",media_type:"Type",upload_name:"File name",quarantined_by:"Quarantined by",safe_from_quarantine:"Safe from quarantine",created_ts:"Created",last_access_ts:"Last access"},action:{open:"Open media file in new window"}},protect_media:{action:{create:"Unprotected, create protection",delete:"Protected, remove protection",none:"In quarantine",send_success:"Successfully changed the protection status.",send_failure:"An error has occurred."}},quarantine_media:{action:{name:"Quarantine",create:"Add to quarantine",delete:"In quarantine, unquarantine",none:"Protected from quarantine",send_success:"Successfully changed the quarantine status.",send_failure:"An error has occurred."}},pushers:{name:"Pusher |||| Pushers",fields:{app:"App",app_display_name:"App display name",app_id:"App ID",device_display_name:"Device display name",kind:"Kind",lang:"Language",profile_tag:"Profile tag",pushkey:"Pushkey",data:{url:"URL"}}},servernotices:{name:"Server Notices",send:"Send server notices",fields:{body:"Message"},action:{send:"Send note",send_success:"Server notice successfully sent.",send_failure:"An error has occurred."},helper:{send:'Sends a server notice to the selected users. The feature "Server Notices" has to be activated at the server.'}},user_media_statistics:{name:"Users' media",fields:{media_count:"Media count",media_length:"Media length"}},forward_extremities:{name:"Forward Extremities",fields:{id:"Event ID",received_ts:"Timestamp",depth:"Depth",state_group:"State group"}},room_state:{name:"State events",fields:{type:"Type",content:"Content",origin_server_ts:"time of send",sender:"Sender"}},room_directory:{name:"Room directory",fields:{world_readable:"guest users may view without joining",guest_can_join:"guest users may join"},action:{title:"Delete room from directory |||| Delete %{smart_count} rooms from directory",content:"Are you sure you want to remove this room from directory? |||| Are you sure you want to remove these %{smart_count} rooms from directory?",erase:"Delete from room directory",create:"Publish in room directory",send_success:"Room successfully published.",send_failure:"An error has occurred."}},destinations:{name:"Federation",fields:{destination:"Destination",failure_ts:"Failure timestamp",retry_last_ts:"Last retry timestamp",retry_interval:"Retry interval",last_successful_stream_ordering:"Last successful stream",stream_ordering:"Stream"},action:{reconnect:"Reconnect"}},registration_tokens:{name:"Registration tokens",fields:{token:"Token",valid:"Valid token",uses_allowed:"Uses allowed",pending:"Pending",completed:"Completed",expiry_time:"Expiry time",length:"Length"},helper:{length:"Length of the token if no token is given."}}}};var l9e={ra:{action:{add_filter:"Ajouter un filtre",add:"Ajouter",back:"Retour",bulk_actions:"%{smart_count} sélectionné |||| %{smart_count} sélectionnés",cancel:"Annuler",clear_array_input:"Vider la liste",clear_input_value:"Vider le champ",clone:"Dupliquer",confirm:"Confirmer",create:"Créer",create_item:"Créer %{item}",delete:"Supprimer",edit:"Éditer",export:"Exporter",list:"Liste",refresh:"Actualiser",remove_filter:"Supprimer ce filtre",remove_all_filters:"Supprimer tous les filtres",remove:"Supprimer",save:"Enregistrer",select_all:"Tout sélectionner",select_row:"Sélectionner cette ligne",search:"Rechercher",show:"Afficher",sort:"Trier",undo:"Annuler",unselect:"Désélectionner",expand:"Étendre",close:"Fermer",open_menu:"Ouvrir le menu",close_menu:"Fermer le menu",update:"Modifier",move_up:"Déplacer vers le haut",move_down:"Déplacer vers le bas",open:"Ouvrir",toggle_theme:"Thème clair/sombre",select_columns:"Colonnes",update_application:"Recharger l'application"},boolean:{true:"Oui",false:"Non",null:" "},page:{create:"Créer %{name}",dashboard:"Tableau de bord",edit:"%{name} %{recordRepresentation}",error:"Un problème est survenu",list:"%{name}",loading:"Chargement",not_found:"Page manquante",show:"%{name} %{recordRepresentation}",empty:"Pas encore de %{name}.",invite:"Voulez-vous en créer un ?"},input:{file:{upload_several:"Déposez les fichiers à uploader, ou cliquez pour en sélectionner.",upload_single:"Déposez le fichier à uploader, ou cliquez pour le sélectionner."},image:{upload_several:"Déposez les images à uploader, ou cliquez pour en sélectionner.",upload_single:"Déposez l'image à uploader, ou cliquez pour la sélectionner."},references:{all_missing:"Impossible de trouver des données de références.",many_missing:"Au moins une des références associées semble ne plus être disponible.",single_missing:"La référence associée ne semble plus disponible."},password:{toggle_visible:"Cacher le mot de passe",toggle_hidden:"Montrer le mot de passe"}},message:{about:"Au sujet de",are_you_sure:"Êtes-vous sûr ?",auth_error:"Une erreur est survenue lors de la validation de votre jeton d'authentification.",bulk_delete_content:"Êtes-vous sûr(e) de vouloir supprimer cet élément ? |||| Êtes-vous sûr(e) de vouloir supprimer ces %{smart_count} éléments ?",bulk_delete_title:"Supprimer %{name} |||| Supprimer %{smart_count} %{name}",bulk_update_content:"Êtes-vous sûr(e) de vouloir modifier cet élément ? |||| Êtes-vous sûr(e) de vouloir modifier ces %{smart_count} éléments ?",bulk_update_title:"Modifier %{name} |||| Modifier %{smart_count} %{name}",clear_array_input:"Êtes-vous sûr(e) de vouloir supprimer tous les éléments de la liste ?",delete_content:"Êtes-vous sûr(e) de vouloir supprimer cet élément ?",delete_title:"Supprimer %{name} #%{id}",details:"Détails",error:"En raison d'une erreur côté navigateur, votre requête n'a pas pu aboutir.",invalid_form:"Le formulaire n'est pas valide.",loading:"La page est en cours de chargement, merci de bien vouloir patienter.",no:"Non",not_found:"L'URL saisie est incorrecte, ou vous avez suivi un mauvais lien.",yes:"Oui",unsaved_changes:"Certains changements n'ont pas été enregistrés. Êtes-vous sûr(e) de vouloir quitter cette page ?"},navigation:{no_results:"Aucun résultat",no_more_results:"La page numéro %{page} est en dehors des limites. Essayez la page précédente.",page_out_of_boundaries:"La page %{page} est en dehors des limites",page_out_from_end:"Fin de la pagination",page_out_from_begin:"La page doit être supérieure à 1",page_range_info:"%{offsetBegin}-%{offsetEnd} sur %{total}",partial_page_range_info:"%{offsetBegin}-%{offsetEnd} sur plus de %{offsetEnd}",page_rows_per_page:"Lignes par page :",current_page:"Page %{page}",page:"Aller à la page %{page}",first:"Aller à la première page",last:"Aller à la dernière page",next:"Aller à la prochaine page",previous:"Aller à la page précédente",skip_nav:"Aller au contenu"},sort:{sort_by:"Trier par %{field} %{order}",ASC:"croissant",DESC:"décroissant"},auth:{auth_check_error:"Merci de vous connecter pour continuer",user_menu:"Profil",username:"Identifiant",password:"Mot de passe",sign_in:"Connexion",sign_in_error:"Échec de l'authentification, merci de réessayer",logout:"Déconnexion"},notification:{updated:"Élément mis à jour |||| %{smart_count} éléments mis à jour",created:"Élément créé",deleted:"Élément supprimé |||| %{smart_count} éléments supprimés",bad_item:"Élément inconnu",item_doesnt_exist:"L'élément n'existe pas",http_error:"Erreur de communication avec le serveur",data_provider_error:"Erreur dans le dataProvider. Plus de détails dans la console.",i18n_error:"Erreur de chargement des traductions pour la langue sélectionnée",canceled:"Action annulée",logged_out:"Votre session a pris fin, veuillez vous reconnecter.",not_authorized:"Vous n'êtes pas autorisé(e) à accéder à cette ressource.",application_update_available:"Une mise à jour est disponible."},validation:{required:"Ce champ est requis",minLength:"Minimum %{min} caractères",maxLength:"Maximum %{max} caractères",minValue:"Minimum %{min}",maxValue:"Maximum %{max}",number:"Doit être un nombre",email:"Doit être un email",oneOf:"Doit être au choix: %{options}",regex:"Doit respecter un format spécifique (regexp): %{pattern}",unique:"Doit être unique"},saved_queries:{label:"Mes requêtes",query_name:"Nom de la requête",new_label:"Ajouter à mes requêtes...",new_dialog_title:"Ajouter la requête en cours à mes requêtes",remove_label:"Retirer de mes requêtes",remove_label_with_name:'Retirer "%{name}" des mes requêtes',remove_dialog_title:"Effacer de mes requêtes ?",remove_message:"Etes-vous sûr(e) de vouloir supprimer cette requête de votre liste de requêtes ?",help:"Filtrez la liste et ajoutez cette requête à votre liste"},configurable:{customize:"Personnaliser",configureMode:"Configurer cette page",inspector:{title:"Inspecteur",content:"Sélectionner un composant pour le configurer",reset:"Réinitialiser",hideAll:"Masquer tout",showAll:"Afficher tout"},Datagrid:{title:"Tableau",unlabeled:"Colonne #%{column}"},SimpleForm:{title:"Formulaire",unlabeled:"Champ #%{input}"},SimpleList:{title:"Liste",primaryText:"Texte principal",secondaryText:"Texte secondaire",tertiaryText:"Texte annexe"}}}};const u9e={...l9e,synapseadmin:{auth:{base_url:"URL du serveur d’accueil",welcome:"Bienvenue sur Synapse-admin",server_version:"Version du serveur Synapse",username_error:"Veuillez entrer un nom d'utilisateur complet : « @utilisateur:domaine »",protocol_error:"L'URL doit commencer par « http:// » ou « https:// »",url_error:"L'URL du serveur Matrix n'est pas valide",sso_sign_in:"Se connecter avec l’authentification unique"},users:{invalid_user_id:"Partie locale d'un identifiant utilisateur Matrix sans le nom du serveur d’accueil.",tabs:{sso:"Authentification unique"}},rooms:{tabs:{basic:"Informations de base",members:"Membres",detail:"Détails",permission:"Permissions"}},reports:{tabs:{basic:"Informations de base",detail:"Détails"}}},import_users:{error:{at_entry:"Pour l'entrée %{entry} : %{message}",error:"Erreur",required_field:"Le champ requis « %{field} » est manquant",invalid_value:"Valeur non valide à la ligne %{row}. Le champ « %{field} » ne peut être que « true » ou « false »",unreasonably_big:"Refus de charger un fichier trop volumineux de %{size} mégaoctets",already_in_progress:"Un import est déjà en cours",id_exits:"L'identifiant %{id} déjà présent"},title:"Importer des utilisateurs à partir d'un fichier CSV",goToPdf:"Voir le PDF",cards:{importstats:{header:"Importer des utilisateurs",users_total:"%{smart_count} utilisateur dans le fichier CSV |||| %{smart_count} utilisateurs dans le fichier CSV",guest_count:"%{smart_count} visiteur |||| %{smart_count} visiteurs",admin_count:"%{smart_count} administrateur |||| %{smart_count} administrateurs"},conflicts:{header:"Stratégie de résolution des conflits",mode:{stop:"S'arrêter en cas de conflit",skip:"Afficher l'erreur et ignorer le conflit"}},ids:{header:"Identifiants",all_ids_present:"Identifiants présents pour chaque entrée",count_ids_present:"%{smart_count} entrée avec identifiant |||| %{smart_count} entrées avec identifiant",mode:{ignore:"Ignorer les identifiants dans le ficher CSV et en créer de nouveaux",update:"Mettre à jour les enregistrements existants"}},passwords:{header:"Mots de passe",all_passwords_present:"Mots de passe présents pour chaque entrée",count_passwords_present:"%{smart_count} entrée avec mot de passe |||| %{smart_count} entrées avec mot de passe",use_passwords:"Utiliser les mots de passe provenant du fichier CSV"},upload:{header:"Fichier CSV en entrée",explanation:"Vous pouvez télécharger ici un fichier contenant des valeurs séparées par des virgules qui sera traité pour créer ou mettre à jour des utilisateurs. Le fichier doit inclure les champs « id » et « displayname ». Vous pouvez télécharger et adapter un fichier d'exemple ici : "},startImport:{simulate_only:"Simuler",run_import:"Importer"},results:{header:"Résultats de l'import",total:"%{smart_count} entrée au total |||| %{smart_count} entrées au total",successful:"%{smart_count} entrées importées avec succès",skipped:"%{smart_count} entrées ignorées",download_skipped:"Télécharger les entrées ignorées",with_error:"%{smart_count} entrée avec des erreurs ||| %{smart_count} entrées avec des erreurs",simulated_only:"L'import était simulé"}}},delete_media:{name:"Media",fields:{before_ts:"Dernier accès avant",size_gt:"Plus grand que (en octets)",keep_profiles:"Conserver les images de profil"},action:{send:"Supprimer le média",send_success:"Requête envoyée avec succès",send_failure:"Une erreur s'est produite"},helper:{send:"Cette API supprime les médias locaux du disque de votre propre serveur. Cela inclut toutes les vignettes locales et les copies des médias téléchargés. Cette API n'affectera pas les médias qui ont été téléversés dans des dépôts de médias externes."}},resources:{users:{name:"Utilisateur |||| Utilisateurs",email:"Adresse électronique",msisdn:"Numéro de téléphone",threepid:"Adresse électronique / Numéro de téléphone",fields:{avatar:"Avatar",id:"Identifiant",name:"Nom",is_guest:"Visiteur",admin:"Administrateur du serveur",locked:"Verrouillé",deactivated:"Désactivé",guests:"Afficher les visiteurs",show_deactivated:"Afficher les utilisateurs désactivés",user_id:"Rechercher un utilisateur",displayname:"Nom d'affichage",password:"Mot de passe",avatar_url:"URL de l'avatar",avatar_src:"Avatar",medium:"Type",threepids:"Identifiants tiers",address:"Adresse",creation_ts_ms:"Date de création",consent_version:"Version du consentement",auth_provider:"Fournisseur d'identité"},helper:{deactivate:"Vous devrez fournir un mot de passe pour réactiver le compte.",erase:"Marquer l'utilisateur comme effacé conformément au RGPD"},action:{erase:"Effacer les données de l'utilisateur"}},rooms:{name:"Salon |||| Salons",fields:{room_id:"Identifiant du salon",name:"Nom",canonical_alias:"Alias",joined_members:"Membres",joined_local_members:"Membres locaux",joined_local_devices:"Appareils locaux",state_events:"Événements d'État / Complexité",version:"Version",is_encrypted:"Chiffré",encryption:"Chiffrement",federatable:"Fédérable",public:"Visible dans le répertoire des salons",creator:"Créateur",join_rules:"Règles d'adhésion",guest_access:"Accès des visiteurs",history_visibility:"Visibilité de l'historique",topic:"Sujet",avatar:"Avatar"},helper:{forward_extremities:"Les extrémités avant sont les événements feuilles à la fin d'un graphe orienté acyclique (DAG) dans un salon, c'est-à-dire les événements qui n'ont pas de descendants. Plus il y en a dans un salon, plus la résolution d'état que Synapse doit effectuer est importante (indice : c'est une opération coûteuse). Bien que Synapse dispose d'un algorithme pour éviter qu'un trop grand nombre de ces événements n'existent en même temps dans un salon, des bogues peuvent parfois les faire réapparaître. Si un salon présente plus de 10 extrémités avant, cela vaut la peine d'y prêter attention et éventuellement de les supprimer en utilisant les requêtes SQL mentionnées dans la discussion traitant du problème https://github.com/matrix-org/synapse/issues/1760."},enums:{join_rules:{public:"Public",knock:"Sur demande",invite:"Sur invitation",private:"Privé"},guest_access:{can_join:"Les visiteurs peuvent rejoindre le salon",forbidden:"Les visiteurs ne peuvent pas rejoindre le salon"},history_visibility:{invited:"Depuis l'invitation",joined:"Depuis l'adhésion",shared:"Depuis le partage",world_readable:"Tout le monde"},unencrypted:"Non chiffré"},action:{erase:{title:"Supprimer le salon",content:"Voulez-vous vraiment supprimer le salon ? Cette opération ne peut être annulée. Tous les messages et médias partagés du salon seront supprimés du serveur !"}}},reports:{name:"Événement signalé |||| Événements signalés",fields:{id:"Identifiant",received_ts:"Date du rapport",user_id:"Rapporteur",name:"Nom du salon",score:"Score",reason:"Motif",event_id:"Identifiant de l'événement",event_json:{origin:"Serveur d'origine",origin_server_ts:"Date d'envoi",type:"Type d'événement",content:{msgtype:"Type de contenu",body:"Contenu",format:"Format",formatted_body:"Contenu mis en forme",algorithm:"Algorithme"}}}},connections:{name:"Connexions",fields:{last_seen:"Date",ip:"Adresse IP",user_agent:"Agent utilisateur"}},devices:{name:"Appareil |||| Appareils",fields:{device_id:"Identifiant de l'appareil",display_name:"Nom de l'appareil",last_seen_ts:"Date",last_seen_ip:"Adresse IP"},action:{erase:{title:"Suppression de %{id}",content:"Voulez-vous vraiment supprimer l'appareil « %{name} » ?",success:"Appareil supprimé avec succès",failure:"Une erreur s'est produite"}}},users_media:{name:"Media",fields:{media_id:"Identifiant du média",media_length:"Taille du fichier (en octets)",media_type:"Type",upload_name:"Nom du fichier",quarantined_by:"Mis en quarantaine par",safe_from_quarantine:"Protection contre la mise en quarantaine",created_ts:"Date de création",last_access_ts:"Dernier accès"}},protect_media:{action:{create:"Protéger",delete:"Révoquer la protection",none:"En quarantaine",send_success:"Le statut de protection a été modifié avec succès",send_failure:"Une erreur s'est produite"}},quarantine_media:{action:{name:"Quarantaine",create:"Mettre en quarantaine",delete:"Révoquer la mise en quarantaine",none:"Protégé contre la mise en quarantaine",send_success:"Le statut de la quarantaine a été modifié avec succès",send_failure:"Une erreur s'est produite"}},pushers:{name:"Émetteur de notifications |||| Émetteurs de notifications",fields:{app:"Application",app_display_name:"Nom d'affichage de l'application",app_id:"Identifiant de l'application",device_display_name:"Nom d'affichage de l'appareil",kind:"Type",lang:"Langue",profile_tag:"Profil",pushkey:"Identifiant de l'émetteur",data:{url:"URL"}}},servernotices:{name:"Annonces du serveur",send:"Envoyer des « Annonces du serveur »",fields:{body:"Message"},action:{send:"Envoyer une annonce",send_success:"Annonce envoyée avec succès",send_failure:"Une erreur s'est produite"},helper:{send:"Envoie une annonce au nom du serveur aux utilisateurs sélectionnés. La fonction « Annonces du serveur » doit être activée sur le serveur."}},user_media_statistics:{name:"Médias des utilisateurs",fields:{media_count:"Nombre de médias",media_length:"Taille des médias"}},forward_extremities:{name:"Extrémités avant",fields:{id:"Identifiant de l'événement",received_ts:"Date de réception",depth:"Profondeur",state_group:"Groupe d'état"}},room_state:{name:"Événements d'état",fields:{type:"Type",content:"Contenu",origin_server_ts:"Date d'envoi",sender:"Expéditeur"}},room_directory:{name:"Répertoire des salons",fields:{world_readable:"Tout utilisateur peut avoir un aperçu du salon, sans en devenir membre",guest_can_join:"Les visiteurs peuvent rejoindre le salon"},action:{title:"Supprimer un salon du répertoire |||| Supprimer %{smart_count} salons du répertoire",content:"Voulez-vous vraiment supprimer ce salon du répertoire ? |||| Voulez-vous vraiment supprimer ces %{smart_count} salons du répertoire ?",erase:"Supprimer du répertoire des salons",create:"Publier dans le répertoire des salons",send_success:"Salon publié avec succès",send_failure:"Une erreur s'est produite"}},registration_tokens:{name:"Jetons d'inscription",fields:{token:"Jeton",valid:"Jeton valide",uses_allowed:"Nombre d'inscription autorisées",pending:"Nombre d'inscription en cours",completed:"Nombre d'inscription accomplie",expiry_time:"Date d'expiration",length:"Longueur"},helper:{length:"Longueur du jeton généré aléatoirement si aucun jeton n'est pas spécifié"}}}};var c9e={ra:{action:{add_filter:"Aggiungi un filtro",add:"Aggiungi",back:"Indietro",bulk_actions:"%{smart_count} selezionati",cancel:"Annulla",clear_input_value:"Svuota il modulo",clone:"Duplica",confirm:"Conferma",create:"Crea",delete:"Cancella",edit:"Modifica",export:"Esporta",list:"Elenco",refresh:"Aggiorna",remove_filter:"Rimuovi questo filtro",remove:"Rimuovi",save:"Salva",search:"Ricerca",show:"Mostra",sort:"Ordina",undo:"Annulla",unselect:"Annulla selezione",expand:"Espandi",close:"Chiudi",open_menu:"Apri il menu",close_menu:"Chiudi il menu"},boolean:{true:"Si",false:"No",null:" "},page:{create:"Aggiungi %{name}",dashboard:"Cruscotto",edit:"%{name} %{id}",error:"Qualcosa non ha funzionato",list:"%{name}",loading:"Caricamento in corso",not_found:"Non trovato",show:"%{name} %{id}",empty:"Nessun %{name} ancora.",invite:"Vuoi aggiungerne uno?"},input:{file:{upload_several:"Trascina i files da caricare, oppure clicca per selezionare.",upload_single:"Trascina il file da caricare, oppure clicca per selezionarlo."},image:{upload_several:"Trascina le immagini da caricare, oppure clicca per selezionarle.",upload_single:"Trascina l'immagine da caricare, oppure clicca per selezionarla."},references:{all_missing:"Impossibile trovare i riferimenti associati.",many_missing:"Almeno uno dei riferimenti associati non sembra più disponibile.",single_missing:"Il riferimento associato non sembra più disponibile."}},password:{toggle_visible:"Nascondi la password",toggle_hidden:"Mostra la password"},message:{about:"Informazioni",are_you_sure:"Sei sicuro ?",bulk_delete_content:"Sei sicuro di voler cancellare questo %{name}? |||| Sei sicuro di voler eliminare questi %{smart_count}?",bulk_delete_title:"Delete %{name} |||| Delete %{smart_count} %{name} items",delete_content:"Are you sure you want to delete this item?",delete_title:"Cancella %{name} #%{id}",details:"Dettagli",error:"Un errore locale è occorso e la tua richiesta non è stata completata.",invalid_form:"Il modulo non è valido. Si prega di verificare la presenza di errori.",loading:"La pagina si sta caricando, solo un momento per favore",no:"No",not_found:"Hai inserito un URL errato, oppure hai cliccato un link errato",yes:"Si",unsaved_changes:"Alcune modifiche non sono state salvate. Sei sicuro di volerle ignorare?"},navigation:{no_results:"Nessun risultato trovato",no_more_results:"La pagina numero %{page} è fuori dell'intervallo. Prova la pagina precedente.",page_out_of_boundaries:"Il numero di pagina %{page} è fuori dei limiti",page_out_from_end:"Fine della paginazione",page_out_from_begin:"Il numero di pagina deve essere maggiore di 1",page_range_info:"%{offsetBegin}-%{offsetEnd} di %{total}",page_rows_per_page:"Righe per pagina",next:"Successivo",prev:"Precedente",skip_nav:"Vai al contenuto"},sort:{sort_by:"Ordina per %{field} %{order}",ASC:"cresente",DESC:"decrescente"},auth:{auth_check_error:"È necessario accedere per continuare",user_menu:"Profilo",username:"Nome utente",password:"Password",sign_in:"Login",sign_in_error:"Autenticazione fallita, riprovare.",logout:"Disconnessione"},notification:{updated:"Record aggiornato |||| %{smart_count} records aggiornati",created:"Record creato",deleted:"Record eliminato |||| %{smart_count} records eliminati",bad_item:"Record errato",item_doesnt_exist:"Record inesistente",http_error:"Errore di comunicazione con il server dati",data_provider_error:"Errore del data provider. Controlla la console per i dettagli.",i18n_error:"Traduzioni non trovate per il linguaggio specificato",canceled:"Azione annullata",logged_out:"La sessione è stata terminata, si prega di ripetere l'autenticazione."},validation:{required:"Campo obbligatorio",minLength:"Deve essere lungo %{min} caratteri almeno",maxLength:"Deve essere lungo %{max} caratteri al massimo",minValue:"Deve essere almeno %{min}",maxValue:"Deve essere al massimo %{max}",number:"Deve essere un numero",email:"Deve essere un valido indirizzo email",oneOf:"Deve essere uno di: %{options}",regex:"Deve rispettare il formato (espressione regolare): %{pattern}"}}};const d9e=gr(c9e),f9e={...d9e,synapseadmin:{auth:{base_url:"URL dell'homeserver",welcome:"Benvenuto in Synapse-admin",server_version:"Versione di Synapse",username_error:"Per favore inserisci un ID utente completo: '@utente:dominio'",protocol_error:"L'URL deve iniziare per 'http://' o 'https://'",url_error:"URL del server Matrix non valido",sso_sign_in:"Accedi con SSO"},users:{invalid_user_id:"ID utente non valido su questo homeserver.",tabs:{sso:"SSO"}},rooms:{tabs:{basic:"Semplice",members:"Membro",detail:"Dettagli",permission:"Permessi"}},reports:{tabs:{basic:"Semplice",detail:"Dettagli"}}},import_users:{error:{at_entry:"Alla voce %{entry}: %{message}",error:"Errore",required_field:"Il campo '%{field}' non è presente",invalid_value:"Valore non valido alla riga %{row}. '%{field}' Il campo può essere solo 'true' o 'false'",unreasonably_big:"Impossibile caricare un file così grosso (%{size} megabyte)",already_in_progress:"Un import è attualmente già in caricamento",id_exits:"L'ID %{id} è già presente"},title:"Importa utenti tramite file CSV",goToPdf:"Vai al PDF",cards:{importstats:{header:"Importa utenti",users_total:"%{smart_count} utente nel file CSV |||| %{smart_count} utenti nel file CSV",guest_count:"%{smart_count} ospite |||| %{smart_count} ospiti",admin_count:"%{smart_count} amministratore |||| %{smart_count} amministratori"},conflicts:{header:"Strategia di conflitto",mode:{stop:"Stoppa al conflitto",skip:"Mostra l'errore e ignora il conflitto"}},ids:{header:"ID",all_ids_present:"ID presenti in ogni voce",count_ids_present:"%{smart_count} voce con ID |||| %{smart_count} voci con ID",mode:{ignore:"Ignora gli ID nel file CSV e creane di nuovi",update:"Aggiorna le voci esistenti"}},passwords:{header:"Passwords",all_passwords_present:"Password presenti in ogni voce",count_passwords_present:"%{smart_count} voce con password |||| %{smart_count} voci con password",use_passwords:"Usa le password dal file CSV"},upload:{header:"Input file CSV",explanation:"Qui puoi caricare un file con valori separati da virgole che verrà poi utilizzato per creare o aggiornare gli utenti. Il file deve includere i campi 'id' and 'displayname'. Puoi scaricare un file di esempio per adattarlo: "},startImport:{simulate_only:"Solo simulazione",run_import:"Importa"},results:{header:"Importa i risultati",total:"%{smart_count} voce in totale |||| %{smart_count} voci in totale",successful:"%{smart_count} voci importate con successo",skipped:"%{smart_count} voci ignorate",download_skipped:"Scarica le voci ignorate",with_error:"%{smart_count} voce con errori ||| %{smart_count} voci con errori",simulated_only:"Il processo era stato solamente simulato"}}},delete_media:{name:"Media",fields:{before_ts:"ultimo accesso effettuato prima",size_gt:"Più grande di (in byte)",keep_profiles:"Mantieni le immagini del profilo"},action:{send:"Cancella media",send_success:"Richiesta inviata con successo.",send_failure:"C'è stato un errore."},helper:{send:"Questa API cancella i media locali dal disco del tuo server. Questo include anche ogni miniatura e copia del media scaricato. Questa API non inciderà sui media che sono stati caricati nei repository esterni."}},resources:{users:{name:"Utente |||| Utenti",email:"Email",msisdn:"Telefono",threepid:"Email / Telefono",fields:{avatar:"Avatar",id:"ID utente",name:"Nome",is_guest:"Ospite",admin:"Amministratore",locked:"Bloccato",deactivated:"Disattivato",guests:"Mostra gli ospiti",show_deactivated:"Mostra gli utenti disattivati",user_id:"Cerca utente",displayname:"Nickname",password:"Password",avatar_url:"URL dell'avatar",avatar_src:"Avatar",medium:"Medium",threepids:"3PID",address:"Indirizzo",creation_ts_ms:"Creazione del timestamp",consent_version:"Versione minima richiesta",auth_provider:"Provider",user_type:"Tipo d'utente"},helper:{password:"Cambiando la password l'utente verrà disconnesso da tutte le sessioni attive.",deactivate:"Devi fornire una password per riattivare l'account.",erase:"Constrassegna l'utente come cancellato dal GDPR"},action:{erase:"Cancella i dati dell'utente"}},rooms:{name:"Stanza |||| Stanze",fields:{room_id:"ID della stanza",name:"Nome",canonical_alias:"Alias",joined_members:"Membri",joined_local_members:"Membri locali",joined_local_devices:"Dispositivi locali",state_events:"Eventi di stato / Complessità",version:"Versione",is_encrypted:"Criptato",encryption:"Crittografia",federatable:"Federabile",public:"Visibile nella cartella della stanza",creator:"Creatore",join_rules:"Regole per entrare",guest_access:"Entra come ospite",history_visibility:"Visibilità temporale",topic:"Topic",avatar:"Avatar"},helper:{},enums:{join_rules:{public:"Pubblica",knock:"Bussa",invite:"Invita",private:"Privata"},guest_access:{can_join:"Gli utenti ospiti possono entrare",forbidden:"Gli utenti ospiti non possono entrare"},history_visibility:{invited:"Dall'invito",joined:"Dall'entrata",shared:"Dalla condivisione",world_readable:"Chiunque"},unencrypted:"Non criptata"},action:{erase:{title:"Cancella stanza",content:"Sei sicuro di voler eliminare questa stanza? Questa azione è definitiva. Tutti i messaggi e i media condivisi in questa stanza verranno eliminati dal server!"}}},reports:{name:"Evento segnalato |||| Eventi segnalati",fields:{id:"ID",received_ts:"Orario del report",user_id:"richiedente",name:"nome della stanza",score:"punteggio",reason:"ragione",event_id:"ID dell'evento",event_json:{origin:"server di origine",origin_server_ts:"ora dell'invio",type:"tipo di evento",content:{msgtype:"tipo di contenuto",body:"contenuto",format:"formato",formatted_body:"contenuto formattato",algorithm:"algoritmo"}}}},connections:{name:"Connessioni",fields:{last_seen:"Data",ip:"Indirizzo IP",user_agent:"agente utente"}},devices:{name:"Dispositivo |||| Dispositivi",fields:{device_id:"ID del dispositivo",display_name:"Nome del dispositivo",last_seen_ts:"Timestamp",last_seen_ip:"Indirizzo IP"},action:{erase:{title:"Rimozione del dispositivo %{id}",content:'Sei sicuro di voler rimuovere il dispositivo "%{name}"?',success:"Dispositivo rimosso con successo.",failure:"C'è stato un errore."}}},users_media:{name:"Media",fields:{media_id:"ID del media",media_length:"Peso del file (in Byte)",media_type:"Tipo",upload_name:"Nome del file",quarantined_by:"In quarantena da",safe_from_quarantine:"Protetto dalla quarantena",created_ts:"Creato",last_access_ts:"Ultimo accesso"}},protect_media:{action:{create:"Non protetto, proteggi",delete:"Protetto, rimuovi protezione",none:"In quarantena",send_success:"Stato della protezione cambiato con successo.",send_failure:"C'è stato un errore."}},quarantine_media:{action:{name:"Quarantina",create:"Aggiungi alla quarantena",delete:"In quarantena, rimuovi dalla quarantena",none:"Protetto dalla quarantena",send_success:"Stato della quarantena cambiato con successo.",send_failure:"C'è stato un errore."}},pushers:{name:"Pusher |||| Pusher",fields:{app:"App",app_display_name:"Nome dell'app",app_id:"ID dell'app",device_display_name:"Nome del dispositivo",kind:"Tipo",lang:"Lingua",profile_tag:"Tag del profilo",pushkey:"Pushkey",data:{url:"URL"}}},servernotices:{name:"Avvisi del server",send:"Invia avvisi",fields:{body:"Messaggio"},action:{send:"Invia nota",send_success:"Avviso inviato con successo.",send_failure:"C'è stato un errore."},helper:{send:'Invia un avviso dal server agli utenti selezionati. La feature "Avvisi del server" è stata attivata sul server.'}},user_media_statistics:{name:"Media degli utenti",fields:{media_count:"Numero media",media_length:"Lunghezza media"}},forward_extremities:{name:"Invia estremità",fields:{id:"Event ID",received_ts:"Timestamp",depth:"Profondità",state_group:"State group"}},room_state:{name:"Eventi di stato",fields:{type:"Tipo",content:"Contenuto",origin_server_ts:"Ora dell'invio",sender:"Mittente"}},room_directory:{name:"Elenco delle stanze",fields:{world_readable:"gli utenti ospite possono vedere senza entrare",guest_can_join:"gli utenti ospite possono entrare"},action:{title:"Cancella stanza dall'elenco |||| Cancella %{smart_count} stanze dall'elenco",content:"Sei sicuro di voler rimuovere questa stanza dall'elenco? |||| Sei sicuro di voler rimuovere %{smart_count} stanze dall'elenco?",erase:"Rimuovi dall'elenco",create:"Crea",send_success:"Stanza creata con successo.",send_failure:"C'è stato un errore."}},destinations:{name:"Federazione",fields:{destination:"Destinazione",failure_ts:"Timestamp dell'errore",retry_last_ts:"Tentativo ultimo timestamp",retry_interval:"Intervallo dei tentativi",last_successful_stream_ordering:"Ultimo flusso riuscito con successo",stream_ordering:"Flusso"},action:{reconnect:"Riconnetti"}},registration_tokens:{name:"Token di registrazione",fields:{token:"Token",valid:"Token valido",uses_allowed:"Usi permessi",pending:"In attesa",completed:"Completato",expiry_time:"Data della scadenza",length:"Lunghezza"},helper:{length:"Lunghezza del token se non viene dato alcun token."}}}},p9e={ra:{action:{add_filter:"Добавить фильтр",add:"Добавить",back:"Назад",bulk_actions:"1 выбран |||| %{smart_count} выбрано |||| %{smart_count} выбрано",cancel:"Отмена",clear_array_input:"Очистить список",clear_input_value:"Очистить",clone:"Дублировать",confirm:"Подтвердить",create:"Создать",create_item:"Создать %{item}",delete:"Удалить",edit:"Редактировать",export:"Экспорт",list:"Список",refresh:"Обновить",remove_filter:"Убрать фильтр",remove_all_filters:"Убрать все фильтры",remove:"Удалить",save:"Сохранить",search:"Поиск",select_all:"Выбрать все",select_row:"Выбрать эту запись",show:"Просмотр",sort:"Сортировка",undo:"Отменить",unselect:"Не выбрано",expand:"Раскрыть",close:"Закрыть",open_menu:"Открыть меню",close_menu:"Закрыть меню",update:"Обновить",move_up:"Переместить вверх",move_down:"Переместить вниз",open:"Открыть",toggle_theme:"Переключить тему",select_columns:"Столбцы",update_application:"Обновить приложение"},boolean:{true:"Да",false:"Нет",null:" "},page:{create:"Создать %{name}",dashboard:"Главная",edit:"%{name} %{recordRepresentation}",error:"Что-то пошло не так",list:"%{name}",loading:"Загрузка",not_found:"Не найдено",show:"%{name} %{recordRepresentation}",empty:"Нет %{name}.",invite:"Вы хотите добавить еще одну?"},input:{file:{upload_several:"Перетащите файлы сюда или нажмите для выбора.",upload_single:"Перетащите файл сюда или нажмите для выбора."},image:{upload_several:"Перетащите изображения сюда или нажмите для выбора.",upload_single:"Перетащите изображение сюда или нажмите для выбора."},references:{all_missing:"Связанных данных не найдено",many_missing:"Некоторые из связанных данных недоступны",single_missing:"Связанный объект недоступен"},password:{toggle_visible:"Скрыть пароль",toggle_hidden:"Показать пароль"}},message:{about:"Справка",are_you_sure:"Вы уверены?",auth_error:"Произошла ошибка при валидации токена аутентификации",bulk_delete_content:"Вы уверены, что хотите удалить %{name}? |||| Вы уверены, что хотите удалить %{smart_count} объектов? |||| Вы уверены, что хотите удалить %{smart_count} объектов?",bulk_delete_title:"Удалить %{name} |||| Удалить %{smart_count} %{name} |||| Удалить %{smart_count} %{name}",bulk_update_content:"Вы уверены, что хотите обновить %{name}? |||| Вы уверены, что хотите обновить %{smart_count} объектов?",bulk_update_title:"Обновить %{name} |||| Обновить %{smart_count} %{name}",clear_array_input:"Вы уверены, что хотите очистить весь список?",delete_content:"Вы уверены что хотите удалить этот объект",delete_title:"Удалить %{name} #%{id}",details:"Описание",error:"В процессе запроса возникла ошибка, и он не может быть завершен",invalid_form:"Форма заполнена неверно, проверьте, пожалуйста, ошибки",loading:"Идет загрузка, пожалуйста, подождите...",no:"Нет",not_found:"Ошибка URL или вы следуете по неверной ссылке",yes:"Да",unsaved_changes:"Некоторые из ваших изменений не были сохранены. Вы уверены, что хотите их игнорировать?"},navigation:{no_results:"Результатов не найдено",no_more_results:"Страница %{page} выходит за пределы нумерации, попробуйте предыдущую",page_out_of_boundaries:"Страница %{page} вне границ",page_out_from_end:"Невозможно переместиться дальше последней страницы",page_out_from_begin:"Номер страницы не может быть меньше 1",page_range_info:"%{offsetBegin}-%{offsetEnd} из %{total}",partial_page_range_info:"%{offsetBegin}-%{offsetEnd} из более %{offsetEnd}",current_page:"Страница %{page}",page:"На %{page} страницу",first:"На первую страницу",last:"На последнюю страницу",next:"Следующая",prev:"Предыдущая",previous:"Предыдущая",page_rows_per_page:"Строк на странице:",skip_nav:"Перейти к содержанию"},sort:{sort_by:"Сортировать по %{field} %{order}",ASC:"возрастанию",DESC:"убыванию"},auth:{auth_check_error:"Пожалуйста, авторизуйтесь для продолжения работы",user_menu:"Профиль",username:"Имя пользователя",password:"Пароль",sign_in:"Войти",sign_in_error:"Ошибка аутентификации, попробуйте снова",logout:"Выйти"},notification:{updated:"Элемент обновлен |||| %{smart_count} обновлено |||| %{smart_count} обновлено",created:"Элемент создан",deleted:"Элемент удален |||| %{smart_count} удалено |||| %{smart_count} удалено",bad_item:"Элемент не валиден",item_doesnt_exist:"Элемент не существует",http_error:"Ошибка сервера",data_provider_error:"Ошибка dataProvider, проверьте консоль",i18n_error:"Не удалось загрузить перевод для указанного языка",canceled:"Операция отменена",logged_out:"Ваша сессия завершена, попробуйте переподключиться/войти снова",not_authorized:"У вас нет доступа к этому ресурсу",application_update_available:"Имеется новая версия приложения."},validation:{required:"Обязательно для заполнения",minLength:"Минимальное кол-во символов %{min}",maxLength:"Максимальное кол-во символов %{max}",minValue:"Минимальное значение %{min}",maxValue:"Значение может быть %{max} или меньше",number:"Должно быть цифрой",email:"Некорректный email",oneOf:"Должно быть одним из: %{options}",regex:"Должно быть в формате (regexp): %{pattern}",unique:"Must be unique"},saved_queries:{label:"Сохраненные запросы",query_name:"Имя запроса",new_label:"Сохранить текущий запрос...",new_dialog_title:"Сохранить текущий запрос как",remove_label:"Удалить сохраненный запрос",remove_label_with_name:'Удалить запрос "%{name}"',remove_dialog_title:"Удалить сохраненный запрос?",remove_message:"Вы уверены, что хотите удалить этот запрос из списка сохраненных запросов?",help:"Отфильтровать список и сохранить запрос на будущее"},configurable:{customize:"Настроить",configureMode:"Настроить эту страницу",inspector:{title:"Инспектор",content:"Наведите на UI-элементы приложения, чтобы настроить",reset:"Сбросить настройки",hideAll:"Скрыть все",showAll:"Показать все"},Datagrid:{title:"Таблица данных",unlabeled:"Безымянный столбец #%{column}"},SimpleForm:{title:"Форма",unlabeled:"Безымянное поле ввода #%{input}"},SimpleList:{title:"Список",primaryText:"Первичный текст",secondaryText:"Вторичный текст",tertiaryText:"Третичный текст"}}}},v9e={...p9e,synapseadmin:{auth:{base_url:"Адрес домашнего сервера",welcome:"Добро пожаловать в Synapse-admin",server_version:"Версия Synapse",supports_specs:"поддерживает спецификации Matrix",username_error:"Пожалуйста, укажите полный ID пользователя: '@user:domain'",protocol_error:"Адрес должен начинаться с 'http://' или 'https://'",url_error:"Неверный адрес сервера Matrix",sso_sign_in:"Вход через SSO"},users:{invalid_user_id:"Локальная часть ID пользователя Matrix без адреса домашнего сервера.",tabs:{sso:"SSO"}},rooms:{details:"Данные комнаты",tabs:{basic:"Основные",members:"Участники",detail:"Подробности",permission:"Права доступа"}},reports:{tabs:{basic:"Основные",detail:"Подробности"}}},import_users:{error:{at_entry:"В записи %{entry}: %{message}",error:"Ошибка",required_field:"Отсутствует обязательное поле '%{field}'",invalid_value:"Неверное значение в строке %{row}. Поле '%{field}' может быть либо 'true', либо 'false'",unreasonably_big:"Отказано в загрузке слишком большого файла размером %{size} мегабайт",already_in_progress:"Импорт уже в процессе",id_exits:"ID %{id} уже существует"},title:"Импорт пользователей из CSV",goToPdf:"Перейти к PDF",cards:{importstats:{header:"Импорт пользователей",users_total:"%{smart_count} пользователь в CSV файле |||| %{smart_count} пользователя в CSV файле |||| %{smart_count} пользователей в CSV файле",guest_count:"%{smart_count} гость |||| %{smart_count} гостя |||| %{smart_count} гостей",admin_count:"%{smart_count} администратор |||| %{smart_count} администратора |||| %{smart_count} администраторов"},conflicts:{header:"Стратегия разрешения конфликтов",mode:{stop:"Остановка при конфликте",skip:"Показать ошибку и пропустить при конфликте"}},ids:{header:"Идентификаторы",all_ids_present:"Идентификаторы присутствуют в каждой записи",count_ids_present:"%{smart_count} запись с ID |||| %{smart_count} записи с ID |||| %{smart_count} записей с ID",mode:{ignore:"Игнорировать идентификаторы в CSV и создать новые",update:"Обновить существующие записи"}},passwords:{header:"Пароли",all_passwords_present:"Пароли присутствуют в каждой записи",count_passwords_present:"%{smart_count} запись с паролем |||| %{smart_count} записи с паролями |||| %{smart_count} записей с паролями",use_passwords:"Использовать пароли из CSV"},upload:{header:"Загрузить CSV файл",explanation:"Здесь вы можете загрузить файл со значениями, разделёнными запятыми, которые будут использованы для создания или обновления данных пользователей. В файле должны быть поля 'id' и 'displayname'. Вы можете скачать и изменить файл-образец отсюда: "},startImport:{simulate_only:"Только симулировать",run_import:"Импорт"},results:{header:"Результаты импорта",total:"%{smart_count} запись всего |||| %{smart_count} записи всего |||| %{smart_count} записей всего",successful:"%{smart_count} запись успешно импортирована |||| %{smart_count} записи успешно импортированы |||| %{smart_count} записей успешно импортированы",skipped:"%{smart_count} запись пропущена |||| %{smart_count} записи пропущены |||| %{smart_count} записей пропущено",download_skipped:"Скачать пропущенные записи",with_error:"%{smart_count} запись с ошибкой |||| %{smart_count} записи с ошибками |||| %{smart_count} записей с ошибками",simulated_only:"Импорт был симулирован"}}},delete_media:{name:"Файлы",fields:{before_ts:"Последнее обращение до",size_gt:"Более чем (в байтах)",keep_profiles:"Сохранить аватары"},action:{send:"Удалить файлы",send_success:"Запрос успешно отправлен.",send_failure:"Произошла ошибка."},helper:{send:"Это API удаляет локальные файлы с вашего собственного сервера, включая локальные миниатюры и копии скачанных файлов. Данный API не затрагивает файлы, загруженные во внешние хранилища."}},resources:{users:{name:"Пользователь |||| Пользователи",email:"Почта",msisdn:"Телефон",threepid:"Почта / Телефон",fields:{avatar:"Аватар",id:"ID пользователя",name:"Имя",is_guest:"Гость",admin:"Администратор сервера",locked:"Заблокирован",deactivated:"Деактивирован",erased:"Удалён",guests:"Показывать гостей",show_deactivated:"Показывать деактивированных",user_id:"Поиск пользователя",displayname:"Отображаемое имя",password:"Пароль",avatar_url:"Адрес аватары",avatar_src:"Аватар",medium:"Тип",threepids:"3PID'ы",address:"Адрес",creation_ts_ms:"Дата создания",consent_version:"Версия соглашения",auth_provider:"Провайдер",user_type:"Тип пользователя"},helper:{password:"Смена пароля завершит все сессии пользователя.",deactivate:"Вы должны предоставить пароль для реактивации учётной записи.",erase:"Пометить пользователя как удалённого в соответствии с GDPR"},action:{erase:"Удалить данные пользователя"}},rooms:{name:"Комната |||| Комнаты",fields:{room_id:"ID комнаты",name:"Название",canonical_alias:"Псевдоним",joined_members:"Участники",joined_local_members:"Локальные участники",joined_local_devices:"Локальные устройства",state_events:"События состояния / Сложность",version:"Версия",is_encrypted:"Зашифровано",encryption:"Шифрование",federatable:"Федерация",public:"Отображается в каталоге комнат",creator:"Создатель",join_rules:"Правила входа",guest_access:"Гостевой доступ",history_visibility:"Видимость истории",topic:"Тема",avatar:"Аватар"},helper:{forward_extremities:"Оконечности — это события-листья в конце ориентированного ациклического графа (DAG) в комнате, т.е. события без дочерних элементов. Чем больше их в комнате, тем больше Synapse работает над разрешением состояния (это дорогостоящая операция). Хотя Synapse старается не допускать существования слишком большого числа таких событий в комнате, из-за ошибок они иногда снова появляются. Если в комнате >10 оконечностей, стоит найти комнату-виновника и попробовать удалить их с помощью SQL-запросов из #1760."},enums:{join_rules:{public:"Для всех",knock:"Надо постучать",invite:"По приглашению",private:"Приватная"},guest_access:{can_join:"Гости могут войти",forbidden:"Гости не могут войти"},history_visibility:{invited:"С момента приглашения",joined:"С момента входа",shared:"С момента открытия доступа",world_readable:"Для всех"},unencrypted:"Без шифрования"},action:{erase:{title:"Удалить комнату",content:"Действительно удалить эту комнату? Это действие будет невозможно отменить. Все сообщения и файлы в комнате будут удалены с сервера!"}}},reports:{name:"Жалоба |||| Жалобы",fields:{id:"ID",received_ts:"Дата и время жалобы",user_id:"Автор жалобы",name:"Название комнаты",score:"Баллы",reason:"Причина",event_id:"ID события",event_json:{origin:"Исходнный сервер",origin_server_ts:"Дата и время отправки",type:"Тип события",content:{msgtype:"Тип содержимого",body:"Содержимое",format:"Формат",formatted_body:"Форматированное содержимое",algorithm:"Алгоритм",url:"Ссылка",info:{mimetype:"Тип"}}}},action:{erase:{title:"Удалить жалобу",content:"Действительно удалить жалобу? Это действие будет невозможно отменить."}}},connections:{name:"Подключения",fields:{last_seen:"Дата",ip:"IP адрес",user_agent:"Юзер-агент"}},devices:{name:"Устройство |||| Устройства",fields:{device_id:"ID устройства",display_name:"Название",last_seen_ts:"Дата и время",last_seen_ip:"IP адрес"},action:{erase:{title:"Удаление %{id}",content:'Действительно удалить устройство "%{name}"?',success:"Устройство успешно удалено.",failure:"Произошла ошибка."}}},users_media:{name:"Файлы",fields:{media_id:"ID файла",media_length:"Размер файла (в байтах)",media_type:"Тип",upload_name:"Имя файла",quarantined_by:"На карантине",safe_from_quarantine:"Защитить от карантина",created_ts:"Создано",last_access_ts:"Последний доступ"},action:{open:"Открыть файл в новом окне"}},protect_media:{action:{create:"Не защищён, установить защиту",delete:"Защищён, снять защиту",none:"На карантине",send_success:"Статус защиты успешно изменён.",send_failure:"Произошла ошибка."}},quarantine_media:{action:{name:"Карантин",create:"Поместить на карантин",delete:"На карантине, снять карантин",none:"Защищено от карантина",send_success:"Статус карантина успешно изменён.",send_failure:"Произошла ошибка."}},pushers:{name:"Пушер |||| Пушеры",fields:{app:"Приложение",app_display_name:"Название приложения",app_id:"ID приложения",device_display_name:"Название устройства",kind:"Вид",lang:"Язык",profile_tag:"Тег профиля",pushkey:"Ключ",data:{url:"URL"}}},servernotices:{name:"Серверные уведомления",send:"Отправить серверные уведомления",fields:{body:"Сообщение"},action:{send:"Отправить",send_success:"Серверное уведомление успешно отправлено.",send_failure:"Произошла ошибка."},helper:{send:'Отправить серверное уведомление выбранным пользователям. На сервере должна быть активна функция "Server Notices".'}},user_media_statistics:{name:"Файлы пользователей",fields:{media_count:"Количество файлов",media_length:"Размер файлов"}},forward_extremities:{name:"Оконечности",fields:{id:"ID события",received_ts:"Дата и время",depth:"Глубина",state_group:"Группа состояния"}},room_state:{name:"События состояния",fields:{type:"Тип",content:"Содержимое",origin_server_ts:"Дата отправки",sender:"Отправитель"}},room_directory:{name:"Каталог комнат",fields:{world_readable:"Гости могут просматривать без входа",guest_can_join:"Гости могут войти"},action:{title:"Удалить комнату из каталога |||| Удалить %{smart_count} комнаты из каталога |||| Удалить %{smart_count} комнат из каталога",content:"Действительно удалить комнату из каталога? |||| Действительно удалить %{smart_count} комнаты из каталога? |||| Действительно удалить %{smart_count} комнат из каталога?",erase:"Удалить из каталога комнат",create:"Опубликовать в каталоге комнат",send_success:"Комната успешно опубликована.",send_failure:"Произошла ошибка."}},destinations:{name:"Федерация",fields:{destination:"Назначение",failure_ts:"Дата и время ошибки",retry_last_ts:"Дата и время последней попытки",retry_interval:"Интервал между попытками",last_successful_stream_ordering:"Последний успешный поток",stream_ordering:"Поток"},action:{reconnect:"Переподключиться"}},registration_tokens:{name:"Токены регистрации",fields:{token:"Токен",valid:"Рабочий токен",uses_allowed:"Количество использований",pending:"Ожидает",completed:"Завершено",expiry_time:"Дата окончания",length:"Длина"},helper:{length:"Длина токена, если токен не задан."}}}};var WU={};Object.defineProperty(WU,"__esModule",{value:!0});var m9e={ra:{action:{add:"增加",add_filter:"添加搜索条件",back:"回退",bulk_actions:"选中1项 |||| 选中%{smart_count}项",cancel:"取消",clear_array_input:"清空列表",clear_input_value:"清空输入",clone:"克隆",close:"关闭",close_menu:"关闭菜单",confirm:"确认",create:"新建",create_item:"新建 %{item}",delete:"删除",edit:"编辑",expand:"展开",export:"导出",list:"列表",move_down:"下移",move_up:"上移",open:"打开",open_menu:"打开菜单",refresh:"刷新",remove:"删除",remove_all_filters:"移除所有检索",remove_filter:"移除检索",save:"保存",search:"检索",select_all:"选择所有",select_columns:"列",select_row:"选择此行",show:"查看",sort:"排序",toggle_theme:"切换主题",undo:"撤销",unselect:"反选",update:"更新",update_application:"重载应用"},auth:{auth_check_error:"请登录以继续",user_menu:"设置",username:"用户名",password:"密码",sign_in:"登录",sign_in_error:"验证失败, 请重试",logout:"登出"},boolean:{true:"是",false:"否",null:" "},configurable:{customize:"自定义",configureMode:"配置此页面",inspector:{title:"Inspector",content:"悬停应用程序UI元素来配置它们",reset:"重置设置",hideAll:"隐藏所有",showAll:"显示所有"},Datagrid:{title:"数据网格",unlabeled:"未设置标签的列 #%{column}"},SimpleForm:{title:"表单",unlabeled:"未设置标签的输入框 #%{input}"},SimpleList:{title:"列表",primaryText:"主要的文本",secondaryText:"二级文本",tertiaryText:"三级文本"}},input:{file:{upload_several:"将文件集合拖拽到这里, 或点击这里选择文件集合.",upload_single:"将文件拖拽到这里, 或点击这里选择文件."},image:{upload_several:"将图片文件集合拖拽到这里, 或点击这里选择图片文件集合.",upload_single:"将图片文件拖拽到这里, 或点击这里选择图片文件."},password:{toggle_visible:"隐藏密码",toggle_hidden:"显示密码"},references:{all_missing:"未找到参考数据.",many_missing:"至少有一条参考数据不再可用.",single_missing:"关联的参考数据不再可用."}},message:{about:"关于",are_you_sure:"您确定操作?",bulk_delete_content:"您确定要删除 %{name}? |||| 您确定要删除 %{smart_count} 项?",bulk_delete_title:"删除 %{name} |||| 删除 %{smart_count}项 %{name} ",delete_content:"您确定要删除该条目?",delete_title:"删除 %{name} #%{id}",error:"客户端错误导致请求未完成.",invalid_form:"表单输入无效. 请检查错误提示",loading:"正在加载页面, 请稍候",no:"否",not_found:"您输入了错误的URL或者错误的链接.",unsaved_changes:"修改未保存. 放弃修改吗?",yes:"是",auth_error:"身份认证出错",bulk_update_content:"是否确实要更新此 %{name}? |||| 是否确实要更新这些 %{smart_count} ?",bulk_update_title:"更新 %{name} |||| 更新 %{smart_count} %{name}",clear_array_input:"您确定要清除整个列表吗?",details:"详情"},navigation:{no_results:"结果为空",no_more_results:"页码 %{page} 超出边界. 试试上一页.",page_out_of_boundaries:"页码 %{page} 超出边界",page_out_from_end:"已到最末页",page_out_from_begin:"已到最前页",page_range_info:"%{offsetBegin}-%{offsetEnd} / %{total}",page_rows_per_page:"每页行数:",next:"向后",prev:"向前",skip_nav:"跳到内容",partial_page_range_info:"%{offsetBegin}-%{offsetEnd} of more than %{offsetEnd}",current_page:"页码 %{page}",page:"跳到页码 %{page}",first:"第一页",last:"最后一页",previous:"向前"},notification:{updated:"条目已更新 |||| %{smart_count} 项条目已更新",created:"条目已新建",deleted:"条目已删除 |||| %{smart_count} 项条目已删除",bad_item:"不正确的条目",item_doesnt_exist:"条目不存在",http_error:"与服务通信出错",canceled:"取消动作",data_provider_error:"dataProvider错误. 请检查console的详细信息.",i18n_error:"无法加载指定语言包",logged_out:"会话失效, 请重连.",not_authorized:"你没有权限访问此资源.",application_update_available:"新版本可用."},page:{create:"新建 %{name}",dashboard:"概览",edit:"%{name} #%{id}",empty:"无 %{name} ",error:"出现错误",invite:"要增加吗?",list:"%{name} 列表",loading:"加载中",not_found:"未发现",show:"%{name} #%{id}"},saved_queries:{label:"保存查询",query_name:"查询名称",new_label:"保存当前查询...",new_dialog_title:"保存当前查询为",remove_label:"删除保存的查询",remove_label_with_name:'删除查询 "%{name}"',remove_dialog_title:"删除保存的查询?",remove_message:"确定要从保存的查询列表中删除该项吗?",help:"过滤列表,并保存此查询"},sort:{sort_by:"按 %{field} %{order}",ASC:"升序",DESC:"降序"},validation:{required:"必填",minLength:"必须不少于 %{min} 个字符",maxLength:"必须不多于 %{max} 个字符",minValue:"必须不小于 %{min}",maxValue:"必须不大于 %{max}",number:"必须为数字",email:"必须是有效的邮箱",oneOf:"必须为: %{options}其中一项",regex:"必须符合指定的格式 (regexp): %{pattern}"}}},h9e=WU.default=m9e;const g9e={...h9e,synapseadmin:{auth:{base_url:"服务器 URL",welcome:"欢迎来到 Synapse-admin",server_version:"Synapse 版本",username_error:"请输入完整有效的用户 ID: '@user:domain'",protocol_error:"URL 需要以'http://'或'https://'作为起始",url_error:"不是一个有效的 Matrix 服务器地址",sso_sign_in:"使用 SSO 登录"},users:{invalid_user_id:"必须要是一个有效的 Matrix 用户 ID ,例如 @user_id:homeserver",tabs:{sso:"SSO"}},rooms:{tabs:{basic:"基本",members:"成员",detail:"细节",permission:"权限"}},reports:{tabs:{basic:"基本",detail:"细节"}}},import_users:{error:{at_entry:"在条目 %{entry}: %{message}",error:"错误",required_field:"需要的值 '%{field}' 未被设置。",invalid_value:"第 %{row} 行出现无效值。 '%{field}' 只可以是 'true' 或 'false'。",unreasonably_big:"拒绝加载过大的文件: %{size} MB",already_in_progress:"一个导入进程已经在运行中",id_exits:"ID %{id} 已经存在"},title:"通过 CSV 导入用户",goToPdf:"转到 PDF",cards:{importstats:{header:"导入用户",users_total:"%{smart_count} 用户在 CSV 文件中 |||| %{smart_count} 用户在 CSV 文件中",guest_count:"%{smart_count} 访客 |||| %{smart_count} 访客",admin_count:"%{smart_count} 管理员 |||| %{smart_count} 管理员"},conflicts:{header:"冲突处理策略",mode:{stop:"在冲突处停止",skip:"显示错误并跳过冲突"}},ids:{header:"IDs",all_ids_present:"每条记录的 ID",count_ids_present:"%{smart_count} 个含 ID 的记录 |||| %{smart_count} 个含 ID 的记录",mode:{ignore:"忽略 CSV 中的 ID 并创建新的",update:"更新已经存在的记录"}},passwords:{header:"密码",all_passwords_present:"每条记录的密码",count_passwords_present:"%{smart_count} 个含密码的记录 |||| %{smart_count} 个含密码的记录",use_passwords:"使用 CSV 中标记的密码"},upload:{header:"导入 CSV 文件",explanation:"在这里,你可以上传一个用逗号分隔的文件,用于创建或更新用户。该文件必须包括 'id' 和 'displayname' 字段。你可以在这里下载并修改一个示例文件:"},startImport:{simulate_only:"模拟模式",run_import:"导入"},results:{header:"导入结果",total:"共计 %{smart_count} 条记录 |||| 共计 %{smart_count} 条记录",successful:"%{smart_count} 条记录导入成功",skipped:"跳过 %{smart_count} 条记录",download_skipped:"下载跳过的记录",with_error:"%{smart_count} 条记录出现错误 ||| %{smart_count} 条记录出现错误",simulated_only:"只是一次模拟运行"}}},delete_media:{name:"媒体文件",fields:{before_ts:"最后访问时间",size_gt:"大于 (字节)",keep_profiles:"保留头像"},action:{send:"删除媒体",send_success:"请求发送成功。",send_failure:"出现了一个错误。"},helper:{send:"这个API会删除您硬盘上的本地媒体。包含了任何的本地缓存和下载的媒体备份。这个API不会影响上传到外部媒体存储库上的媒体文件。"}},resources:{users:{name:"用户",email:"邮箱",msisdn:"电话",threepid:"邮箱 / 电话",fields:{avatar:"邮箱",id:"用户 ID",name:"用户名",is_guest:"访客",admin:"服务器管理员",deactivated:"被禁用",guests:"显示访客",show_deactivated:"显示被禁用的账户",user_id:"搜索用户",displayname:"显示名字",password:"密码",avatar_url:"头像 URL",avatar_src:"头像",medium:"Medium",threepids:"3PIDs",address:"地址",creation_ts_ms:"创建时间戳",consent_version:"协议版本"},helper:{deactivate:"您必须提供一串密码来激活账户。",erase:"将用户标记为根据 GDPR 的要求抹除了"},action:{erase:"抹除用户信息"}},rooms:{name:"房间",fields:{room_id:"房间 ID",name:"房间名",canonical_alias:"别名",joined_members:"成员",joined_local_members:"本地成员",state_events:"状态事件",version:"版本",is_encrypted:"已经加密",encryption:"加密",federatable:"可联合的",public:"公开",creator:"创建者",join_rules:"加入规则",guest_access:"访客访问",history_visibility:"历史可见性"},enums:{join_rules:{public:"公开",knock:"申请",invite:"邀请",private:"私有"},guest_access:{can_join:"访客可以加入",forbidden:"访客不可加入"},history_visibility:{invited:"自从被邀请",joined:"自从加入",shared:"自从分享",world_readable:"任何人"},unencrypted:"未加密"}},reports:{name:"报告事件",fields:{id:"ID",received_ts:"报告时间",user_id:"报告者",name:"房间名",score:"分数",reason:"原因",event_id:"事件 ID",event_json:{origin:"原始服务器",origin_server_ts:"发送时间",type:"事件类型",content:{msgtype:"内容类型",body:"内容",format:"格式",formatted_body:"格式化的数据",algorithm:"算法"}}}},connections:{name:"连接",fields:{last_seen:"日期",ip:"IP 地址",user_agent:"用户代理 (UA)"}},devices:{name:"设备",fields:{device_id:"设备 ID",display_name:"设备名",last_seen_ts:"时间戳",last_seen_ip:"IP 地址"},action:{erase:{title:"移除 %{id}",content:'您确定要移除设备 "%{name}"?',success:"设备移除成功。",failure:"出现了一个错误。"}}},users_media:{name:"媒体文件",fields:{media_id:"媒体文件 ID",media_length:"长度",media_type:"类型",upload_name:"文件名",quarantined_by:"被隔离",safe_from_quarantine:"取消隔离",created_ts:"创建",last_access_ts:"上一次访问"}},pushers:{name:"发布者",fields:{app:"App",app_display_name:"App 名称",app_id:"App ID",device_display_name:"设备显示名",kind:"类型",lang:"语言",profile_tag:"数据标签",pushkey:"Pushkey",data:{url:"URL"}}},servernotices:{name:"服务器提示",send:"发送服务器提示",fields:{body:"信息"},action:{send:"发送提示",send_success:"服务器提示发送成功。",send_failure:"出现了一个错误。"},helper:{send:'向选中的用户发送服务器提示。服务器配置中的 "服务器提示(Server Notices)" 选项需要被设置为启用。'}},user_media_statistics:{name:"用户的媒体文件",fields:{media_count:"媒体文件统计",media_length:"媒体文件长度"}}}},qU=d.createContext({}),y9e=()=>d.useContext(qU),b9e=J(Cn)(({theme:e})=>({display:"flex",flexDirection:"column",minHeight:"calc(100vh - 1rem)",alignItems:"center",justifyContent:"flex-start",background:"url(./images/floating-cogs.svg)",backgroundColor:"#f9f9f9",backgroundRepeat:"no-repeat",backgroundSize:"cover","& .card":{width:"30rem",marginTop:"6rem",marginBottom:"6rem"},"& .avatar":{margin:"1rem",display:"flex",justifyContent:"center"},"& .icon":{backgroundColor:e.palette.grey[500]},"& .hint":{marginTop:"1em",marginBottom:"1em",display:"flex",justifyContent:"center",color:e.palette.grey[600]},"& .form":{padding:"0 1rem 1rem 1rem"},"& .select":{marginBottom:"2rem"},"& .actions":{padding:"0 1rem 1rem 1rem"},"& .serverVersion":{color:e.palette.grey[500],fontFamily:"Roboto, Helvetica, Arial, sans-serif",marginLeft:"0.5rem"},"& .matrixVersions":{color:e.palette.grey[500],fontFamily:"Roboto, Helvetica, Arial, sans-serif",fontSize:"0.8rem",marginBottom:"1rem",marginLeft:"0.5rem"}})),_9e=()=>{const e=ZB(),t=Ht(),{restrictBaseUrl:r}=y9e(),n=typeof r=="string",o=Array.isArray(r),a=!(n||o),[i,s]=d.useState(!1),[c,l]=d.useState(!0),[f,v]=hP(),m=gP(),h=je(),x=n?r:St.getItem("base_url"),[w,O]=d.useState(""),b=/\?loginToken=([a-zA-Z0-9_-]+)/.exec(window.location.href);if(b){const C=b[1];console.log("SSO token is",C),window.history.replaceState({},"",window.location.href.replace(b[0],"#").split("#")[0]);const T=St.getItem("sso_base_url");if(St.removeItem("sso_base_url"),T){const R={base_url:T,username:null,password:null,loginToken:C};console.log("Base URL is:",T),console.log("SSO Token is:",C),console.log("Let's try token login..."),e(R).catch(I=>{alert(typeof I=="string"?I:typeof I>"u"||!I.message?"ra.auth.sign_in_error":I.message),console.error(I)})}}const g=C=>C.match(/^(http|https):\/\//)?C.match(/^(http|https):\/\/[a-zA-Z0-9\-.]+(:\d{1,5})?[^?&\s]*$/)?void 0:h("synapseadmin.auth.url_error"):h("synapseadmin.auth.protocol_error"),_=C=>{s(!0),e(C).catch(T=>{s(!1),t(typeof T=="string"?T:typeof T>"u"||!T.message?"ra.auth.sign_in_error":T.message,{type:"warning"})})},$=()=>{St.setItem("sso_base_url",w);const C=`${w}/_matrix/client/r0/login/sso/redirect?redirectUrl=${encodeURIComponent(window.location.href)}`;window.location.href=C},P=({formData:C})=>{const T=ea(),[R,I]=d.useState(""),[A,F]=d.useState(""),L=()=>{var U;if(C.base_url||n)return;const D=(U=K6e(C.username))==null?void 0:U.domain;D&&X6e(D).then(H=>{(a||o&&r.includes(H))&&T.setValue("base_url",H)})};return d.useEffect(()=>{C.base_url===""&&o&&T.setValue("base_url",r[0]),Q6e(C.base_url)&&(Y6e(C.base_url).then(D=>I(`${h("synapseadmin.auth.server_version")} ${D}`)).catch(()=>I("")),J6e(C.base_url).then(D=>F(`${h("synapseadmin.auth.supports_specs")} ${D.versions.join(", ")}`)).catch(()=>F("")),Z6e(C.base_url).then(D=>{const U=D.find(q=>q.type==="m.login.password")!==void 0,H=D.find(q=>q.type==="m.login.sso")!==void 0;l(U),O(H?C.base_url:"")}).catch(()=>O("")))},[C.base_url,T]),S.jsxs(S.Fragment,{children:[S.jsx(Cn,{children:S.jsx(Er,{autoFocus:!0,source:"username",label:"ra.auth.username",autoComplete:"username",disabled:i||!c,onBlur:L,resettable:!0,fullWidth:!0,validate:co()})}),S.jsx(Cn,{children:S.jsx(k2,{source:"password",label:"ra.auth.password",type:"password",autoComplete:"current-password",disabled:i||!c,resettable:!0,fullWidth:!0,validate:co()})}),S.jsx(Cn,{children:S.jsx(Er,{source:"base_url",label:"synapseadmin.auth.base_url",select:o,autoComplete:"url",disabled:i,readOnly:n,resettable:a,fullWidth:!0,validate:[co(),g],children:o&&r.map(D=>S.jsx(lo,{value:D,children:D},D))})}),S.jsx(it,{className:"serverVersion",children:R}),S.jsx(it,{className:"matrixVersions",children:A})]})};return S.jsxs(s0,{defaultValues:{base_url:x},onSubmit:_,mode:"onTouched",children:[S.jsx(b9e,{children:S.jsxs(cu,{className:"card",children:[S.jsx(Cn,{className:"avatar",children:i?S.jsx(Ad,{size:25,thickness:2}):S.jsx(Gp,{className:"icon",children:S.jsx(Uv,{})})}),S.jsx(Cn,{className:"hint",children:h("synapseadmin.auth.welcome")}),S.jsxs(Cn,{className:"form",children:[S.jsx(S$,{value:f,onChange:C=>v(C.target.value),fullWidth:!0,disabled:i,className:"select",children:m.map(C=>S.jsx(lo,{value:C.locale,children:C.name},C.locale))}),S.jsx(VS,{children:C=>S.jsx(P,{...C})}),S.jsxs(D6,{className:"actions",children:[S.jsx($r,{variant:"contained",type:"submit",color:"primary",disabled:i||!c,fullWidth:!0,children:h("ra.auth.sign_in")}),S.jsx($r,{variant:"contained",color:"secondary",onClick:$,disabled:i||w==="",fullWidth:!0,children:h("synapseadmin.auth.sso_sign_in")})]})]})]})}),S.jsx(e2,{})]})};var V2={},x9e=He;Object.defineProperty(V2,"__esModule",{value:!0});var HU=V2.default=void 0,w9e=x9e(Xe()),S9e=S;HU=V2.default=(0,w9e.default)((0,S9e.jsx)("path",{d:"M12 6v3l4-4-4-4v3c-4.42 0-8 3.58-8 8 0 1.57.46 3.03 1.24 4.26L6.7 14.8c-.45-.83-.7-1.79-.7-2.8 0-3.31 2.69-6 6-6m6.76 1.74L17.3 9.2c.44.84.7 1.79.7 2.8 0 3.31-2.69 6-6 6v-3l-4 4 4 4v-3c4.42 0 8-3.58 8-8 0-1.57-.46-3.03-1.24-4.26"}),"Autorenew");var W2={},O9e=He;Object.defineProperty(W2,"__esModule",{value:!0});var GU=W2.default=void 0,C9e=O9e(Xe()),E9e=S;GU=W2.default=(0,C9e.default)((0,E9e.jsx)("path",{d:"M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96M19 18H6c-2.21 0-4-1.79-4-4s1.79-4 4-4h.71C7.37 7.69 9.48 6 12 6c3.04 0 5.5 2.46 5.5 5.5v.5H19c1.66 0 3 1.34 3 3s-1.34 3-3 3"}),"CloudQueue");var q2={},P9e=He;Object.defineProperty(q2,"__esModule",{value:!0});var vu=q2.default=void 0,$9e=P9e(Xe()),R9e=S;vu=q2.default=(0,$9e.default)((0,R9e.jsx)("path",{d:"M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2m-5 3c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2m4 8h-8v-1c0-1.33 2.67-2 4-2s4 .67 4 2z"}),"FolderShared");const fn={year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"},H2=e=>new Date(e).getTime(),T9e=e=>{if(e==null)return"";const t=new Date(e),r="00",n=t.getFullYear().toString(),o=(r+(t.getMonth()+1).toString()).slice(-2),a=(r+t.getDate().toString()).slice(-2),i=(r+t.getHours().toString()).slice(-2),s=(r+t.getMinutes().toString()).slice(-2);return`${n}-${o}-${a}T${i}:${s}`},KU=()=>S.jsx(tl,{rowsPerPageOptions:[10,25,50,100,500,1e3]}),k9e=e=>({backgroundColor:e.retry_last_ts>0?"#ffcccc":"white"}),I9e=[S.jsx(c_,{source:"destination",alwaysOn:!0})],QU=()=>{const e=ht(),t=ti(),r=Ht(),[n,{isLoading:o}]=gv();if(!e||!e.failure_ts)return null;const a=i=>{i.stopPropagation(),n("destinations",{id:e.id},{onSuccess:()=>{r("ra.notification.updated",{messageArgs:{smart_count:1}}),t()},onError:()=>{r("ra.message.error",{type:"error"})}})};return S.jsx(Nt,{label:"resources.destinations.action.reconnect",onClick:a,disabled:o,children:S.jsx(HU,{})})},j9e=()=>S.jsx(xo,{children:S.jsx(QU,{})}),A9e=()=>{const e=ht(),t=je();return S.jsxs("span",{children:[t("resources.destinations.name",1)," ",e==null?void 0:e.destination]})},M9e=e=>S.jsx(rl,{...e,filters:I9e,pagination:S.jsx(KU,{}),sort:{field:"destination",order:"ASC"},children:S.jsxs(Ur,{rowSx:k9e,rowClick:t=>`${t}/show/rooms`,bulkActionButtons:!1,children:[S.jsx(Fe,{source:"destination"}),S.jsx(dn,{source:"failure_ts",showTime:!0,options:fn}),S.jsx(dn,{source:"retry_last_ts",showTime:!0,options:fn}),S.jsx(Fe,{source:"retry_interval"}),S.jsx(Fe,{source:"last_successful_stream_ordering"}),S.jsx(QU,{})]})}),F9e=e=>{const t=je();return S.jsx(d_,{actions:S.jsx(j9e,{}),title:S.jsx(A9e,{}),...e,children:S.jsxs(Qv,{children:[S.jsxs(Lo,{label:"status",icon:S.jsx(du,{}),children:[S.jsx(Fe,{source:"destination"}),S.jsx(dn,{source:"failure_ts",showTime:!0,options:fn}),S.jsx(dn,{source:"retry_last_ts",showTime:!0,options:fn}),S.jsx(Fe,{source:"retry_interval"}),S.jsx(Fe,{source:"last_successful_stream_ordering"})]}),S.jsx(Lo,{label:t("resources.rooms.name",{smart_count:2}),icon:S.jsx(vu,{}),path:"rooms",children:S.jsx(Si,{reference:"destination_rooms",target:"destination",label:!1,pagination:S.jsx(KU,{}),perPage:50,children:S.jsxs(Ur,{style:{width:"100%"},rowClick:r=>`/rooms/${r}/show`,children:[S.jsx(Fe,{source:"room_id",label:"resources.rooms.fields.room_id"}),S.jsx(Fe,{source:"stream_ordering",sortable:!1}),S.jsx(Ga,{label:"resources.rooms.fields.name",source:"id",reference:"rooms",sortable:!1,link:"",children:S.jsx(Fe,{source:"name",sortable:!1})})]})})})]})})},L9e={name:"destinations",icon:GU,list:M9e,show:F9e};var G2={},N9e=He;Object.defineProperty(G2,"__esModule",{value:!0});var XU=G2.default=void 0,D9e=N9e(Xe()),B9e=S;XU=G2.default=(0,D9e.default)((0,B9e.jsx)("path",{d:"M22 10V6c0-1.11-.9-2-2-2H4c-1.1 0-1.99.89-1.99 2v4c1.1 0 1.99.9 1.99 2s-.89 2-2 2v4c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2v-4c-1.1 0-2-.9-2-2s.9-2 2-2m-9 7.5h-2v-2h2zm0-4.5h-2v-2h2zm0-4.5h-2v-2h2z"}),"ConfirmationNumber");const z9e=[AP(/^[A-Za-z0-9._~-]{0,64}$/)],YU=[uz()],U9e=[uz(),m_e(64)],V9e=[S.jsx(za,{source:"valid",alwaysOn:!0})],W9e=e=>S.jsx(rl,{...e,filters:V9e,filterDefaultValues:{valid:!0},pagination:!1,perPage:500,children:S.jsxs(Ur,{rowClick:"edit",children:[S.jsx(Fe,{source:"token",sortable:!1}),S.jsx(Ha,{source:"uses_allowed",sortable:!1}),S.jsx(Ha,{source:"pending",sortable:!1}),S.jsx(Ha,{source:"completed",sortable:!1}),S.jsx(dn,{source:"expiry_time",showTime:!0,options:fn,sortable:!1})]})}),q9e=e=>S.jsx(I2,{...e,redirect:"list",children:S.jsxs(zd,{toolbar:S.jsx(Bd,{children:S.jsx(Gv,{alwaysEnable:!0})}),children:[S.jsx(Er,{source:"token",autoComplete:"off",validate:z9e,resettable:!0}),S.jsx(Bl,{source:"length",validate:U9e,helperText:"resources.registration_tokens.helper.length",step:1}),S.jsx(Bl,{source:"uses_allowed",validate:YU,step:1}),S.jsx(u_,{source:"expiry_time",parse:H2})]})}),H9e=e=>S.jsx(j2,{...e,children:S.jsxs(zd,{children:[S.jsx(Er,{source:"token",disabled:!0}),S.jsx(Bl,{source:"pending",disabled:!0}),S.jsx(Bl,{source:"completed",disabled:!0}),S.jsx(Bl,{source:"uses_allowed",validate:YU,step:1}),S.jsx(u_,{source:"expiry_time",parse:H2,format:T9e})]})}),G9e={name:"registration_tokens",icon:XU,list:W9e,edit:H9e,create:q9e};var K2={},K9e=He;Object.defineProperty(K2,"__esModule",{value:!0});var Q2=K2.default=void 0,Q9e=K9e(Xe()),X9e=S;Q2=K2.default=(0,Q9e.default)((0,X9e.jsx)("path",{d:"M11.5 9C10.12 9 9 10.12 9 11.5s1.12 2.5 2.5 2.5 2.5-1.12 2.5-2.5S12.88 9 11.5 9M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2m-3.21 14.21-2.91-2.91c-.69.44-1.51.7-2.39.7C9.01 16 7 13.99 7 11.5S9.01 7 11.5 7 16 9.01 16 11.5c0 .88-.26 1.69-.7 2.39l2.91 2.9z"}),"Pageview");var X2={},Y9e=He;Object.defineProperty(X2,"__esModule",{value:!0});var JU=X2.default=void 0,J9e=Y9e(Xe()),Z9e=S;JU=X2.default=(0,J9e.default)((0,Z9e.jsx)("path",{d:"M1 21h22L12 2zm12-3h-2v-2h2zm0-4h-2v-4h2z"}),"Warning");var Y2={},e8e=He;Object.defineProperty(Y2,"__esModule",{value:!0});var jC=Y2.default=void 0,t8e=e8e(Xe()),r8e=S;jC=Y2.default=(0,t8e.default)((0,r8e.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2M4 12c0-4.42 3.58-8 8-8 1.85 0 3.55.63 4.9 1.69L5.69 16.9C4.63 15.55 4 13.85 4 12m8 8c-1.85 0-3.55-.63-4.9-1.69L18.31 7.1C19.37 8.45 20 10.15 20 12c0 4.42-3.58 8-8 8"}),"Block");var J2={},n8e=He;Object.defineProperty(J2,"__esModule",{value:!0});var Z2=J2.default=void 0,o8e=n8e(Xe()),a8e=S;Z2=J2.default=(0,o8e.default)((0,a8e.jsx)("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2m5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12z"}),"Cancel");var eR={},i8e=He;Object.defineProperty(eR,"__esModule",{value:!0});var tR=eR.default=void 0,s8e=i8e(Xe()),l8e=S;tR=eR.default=(0,s8e.default)((0,l8e.jsx)("path",{d:"M15 16h4v2h-4zm0-8h7v2h-7zm0 4h6v2h-6zM3 18c0 1.1.9 2 2 2h6c1.1 0 2-.9 2-2V8H3zM14 5h-3l-1-1H6L5 5H2v2h12z"}),"DeleteSweep");var rR={},u8e=He;Object.defineProperty(rR,"__esModule",{value:!0});var ZU=rR.default=void 0,c8e=u8e(Xe()),d8e=S;ZU=rR.default=(0,c8e.default)((0,d8e.jsx)("path",{d:"M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.89 2 1.99 2H15v-8h5V8zm-1 7V3.5L18.5 9zm4 12.66V16h5.66v2h-2.24l2.95 2.95-1.41 1.41L19 19.41v2.24h-2z"}),"FileOpen");var nR={},f8e=He;Object.defineProperty(nR,"__esModule",{value:!0});var eV=nR.default=void 0,p8e=f8e(Xe()),v8e=S;eV=nR.default=(0,p8e.default)((0,v8e.jsx)("path",{d:"M12 17c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2m6-9h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6h1.9c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2m0 12H6V10h12z"}),"LockOpen");const m8e=({open:e,onClose:t,onSubmit:r})=>{const n=je(),o=a=>S.jsxs(Bd,{...a,children:[S.jsx(Gv,{label:"delete_media.action.send",icon:S.jsx(tR,{})}),S.jsx(Nt,{label:"ra.action.cancel",onClick:t,children:S.jsx(Z2,{})})]});return S.jsxs(Lv,{open:e,onClose:t,children:[S.jsx(Dv,{children:n("delete_media.action.send")}),S.jsxs(Nv,{children:[S.jsx(J0,{children:n("delete_media.helper.send")}),S.jsxs(zd,{toolbar:S.jsx(o,{}),onSubmit:r,children:[S.jsx(u_,{fullWidth:!0,source:"before_ts",label:"delete_media.fields.before_ts",defaultValue:0,parse:H2}),S.jsx(Bl,{fullWidth:!0,source:"size_gt",label:"delete_media.fields.size_gt",defaultValue:0,min:0,step:1024}),S.jsx(za,{fullWidth:!0,source:"keep_profiles",label:"delete_media.fields.keep_profiles",defaultValue:!0})]})]})]})},h8e=e=>{const t=na(),[r,n]=d.useState(!1),o=Ht(),a=yo(),{mutate:i,isLoading:s}=au(f=>a.deleteMedia(f),{onSuccess:()=>{o("delete_media.action.send_success"),l()},onError:()=>{o("delete_media.action.send_failure",{type:"error"})}}),c=()=>n(!0),l=()=>n(!1);return S.jsxs(S.Fragment,{children:[S.jsx(Nt,{...e,label:"delete_media.action.send",onClick:c,disabled:s,sx:{color:t.palette.error.main,"&:hover":{backgroundColor:Yc(t.palette.error.main,.12),"@media (hover: none)":{backgroundColor:"transparent"}}},children:S.jsx(tR,{})}),S.jsx(m8e,{open:r,onClose:l,onSubmit:i})]})},g8e=e=>{const t=ht(),r=je(),n=ti(),o=Ht(),[a,{isLoading:i}]=hv(),[s]=gv();if(!t)return null;const c=()=>{a("protect_media",{data:t},{onSuccess:()=>{o("resources.protect_media.action.send_success"),n()},onError:()=>o("resources.protect_media.action.send_failure",{type:"error"})})},l=()=>{s("protect_media",{id:t.id},{onSuccess:()=>{o("resources.protect_media.action.send_success"),n()},onError:()=>o("resources.protect_media.action.send_failure",{type:"error"})})};return S.jsxs(S.Fragment,{children:[t.quarantined_by&&S.jsx(Wr,{title:r("resources.protect_media.action.none",{_:"resources.protect_media.action.none"}),children:S.jsx("div",{children:S.jsx(Nt,{...e,disabled:!0,children:S.jsx(sd,{})})})}),t.safe_from_quarantine&&S.jsx(Wr,{title:r("resources.protect_media.action.delete",{_:"resources.protect_media.action.delete"}),arrow:!0,children:S.jsx("div",{children:S.jsx(Nt,{...e,onClick:l,disabled:i,children:S.jsx(Uv,{})})})}),!t.safe_from_quarantine&&!t.quarantined_by&&S.jsx(Wr,{title:r("resources.protect_media.action.create",{_:"resources.protect_media.action.create"}),children:S.jsx("div",{children:S.jsx(Nt,{...e,onClick:c,disabled:i,children:S.jsx(eV,{})})})})]})},y8e=e=>{const t=ht(),r=je(),n=ti(),o=Ht(),[a,{isLoading:i}]=hv(),[s]=gv();if(!t)return null;const c=()=>{a("quarantine_media",{data:t},{onSuccess:()=>{o("resources.quarantine_media.action.send_success"),n()},onError:()=>o("resources.quarantine_media.action.send_failure",{type:"error"})})},l=()=>{s("quarantine_media",{id:t.id,previousData:t},{onSuccess:()=>{o("resources.quarantine_media.action.send_success"),n()},onError:()=>o("resources.quarantine_media.action.send_failure",{type:"error"})})};return S.jsxs(S.Fragment,{children:[t.safe_from_quarantine&&S.jsx(Wr,{title:r("resources.quarantine_media.action.none",{_:"resources.quarantine_media.action.none"}),children:S.jsx("div",{children:S.jsx(Nt,{...e,disabled:!0,children:S.jsx(sd,{})})})}),t.quarantined_by&&S.jsx(Wr,{title:r("resources.quarantine_media.action.delete",{_:"resources.quarantine_media.action.delete"}),children:S.jsx("div",{children:S.jsx(Nt,{...e,onClick:l,disabled:i,children:S.jsx(jC,{color:"error"})})})}),!t.safe_from_quarantine&&!t.quarantined_by&&S.jsx(Wr,{title:r("resources.quarantine_media.action.create",{_:"resources.quarantine_media.action.create"}),children:S.jsx("div",{children:S.jsx(Nt,{...e,onClick:c,disabled:i,children:S.jsx(jC,{})})})})]})},tV=({media_id:e,label:t})=>{const r=je(),n=e9e(e);return S.jsxs(Cn,{style:{whiteSpace:"pre"},children:[S.jsx(Wr,{title:r("resources.users_media.action.open"),children:S.jsx("span",{children:S.jsx(Nt,{component:ba,to:n,target:"_blank",rel:"noopener",style:{minWidth:0,paddingLeft:0,paddingRight:0},children:S.jsx(ZU,{})})})}),t]})},b8e=({source:e})=>{var o;const t=St.getItem("home_server"),r=ht();if(!r)return null;const n=(o=kb.get(r,e))==null?void 0:o.toString();return n?S.jsx(tV,{media_id:`${t}/${n}`,label:n}):null},_8e=({source:e})=>{var o;const t=ht();if(!t)return null;const r=(o=kb.get(t,e))==null?void 0:o.toString();if(!r)return null;const n=r.replace("mxc://","");return S.jsx(tV,{media_id:n,label:r})},x8e=()=>S.jsx(tl,{rowsPerPageOptions:[10,25,50,100,500,1e3]}),w8e=e=>{const t=je();return S.jsx(d_,{...e,actions:S.jsx(S8e,{}),children:S.jsxs(Qv,{children:[S.jsxs(Lo,{label:t("synapseadmin.reports.tabs.basic",{smart_count:1}),icon:S.jsx(du,{}),children:[S.jsx(dn,{source:"received_ts",showTime:!0,options:fn,sortable:!0}),S.jsx(Ga,{source:"user_id",reference:"users",children:S.jsx(Fe,{source:"id"})}),S.jsx(Ha,{source:"score"}),S.jsx(Fe,{source:"reason"}),S.jsx(Fe,{source:"name"}),S.jsx(Fe,{source:"canonical_alias",label:"resources.rooms.fields.canonical_alias"}),S.jsx(Ga,{source:"room_id",reference:"rooms",link:"show",label:"resources.rooms.fields.room_id",children:S.jsx(Fe,{source:"id"})})]}),S.jsxs(Lo,{label:"synapseadmin.reports.tabs.detail",icon:S.jsx(Q2,{}),path:"detail",children:[S.jsx(dn,{source:"event_json.origin_server_ts",showTime:!0,options:fn,sortable:!0}),S.jsx(Ga,{source:"sender",reference:"users",children:S.jsx(Fe,{source:"id"})}),S.jsx(Fe,{source:"sender",label:"Sender (raw user ID)"}),S.jsx(Fe,{source:"event_id"}),S.jsx(Fe,{source:"event_json.origin"}),S.jsx(Fe,{source:"event_json.type"}),S.jsx(Fe,{source:"event_json.content.msgtype"}),S.jsx(Fe,{source:"event_json.content.body"}),S.jsx(Fe,{source:"event_json.content.info.mimetype"}),S.jsx(_8e,{source:"event_json.content.url"}),S.jsx(Fe,{source:"event_json.content.format"}),S.jsx(Fe,{source:"event_json.content.formatted_body"}),S.jsx(Fe,{source:"event_json.content.algorithm"}),S.jsx(Fe,{source:"event_json.content.device_id",label:"resources.devices.fields.device_id"})]})]})})},S8e=()=>{const e=ht();return S.jsx(xo,{children:S.jsx(fu,{record:e,mutationMode:"pessimistic",confirmTitle:"resources.reports.action.erase.title",confirmContent:"resources.reports.action.erase.content"})})},O8e=e=>S.jsx(rl,{...e,pagination:S.jsx(x8e,{}),sort:{field:"received_ts",order:"DESC"},children:S.jsxs(Ur,{rowClick:"show",bulkActionButtons:!1,children:[S.jsx(Fe,{source:"id",sortable:!1}),S.jsx(dn,{source:"received_ts",showTime:!0,options:fn,sortable:!0}),S.jsx(Fe,{sortable:!1,source:"user_id"}),S.jsx(Fe,{sortable:!1,source:"name"}),S.jsx(Fe,{sortable:!1,source:"score"})]})}),C8e={name:"reports",icon:JU,list:O8e,show:w8e},oR=({source:e,...t})=>{var l;const r=ht(t),n=(l=kb.get(r,e))==null?void 0:l.toString(),{alt:o,classes:a,sizes:i,sx:s,variant:c}=t;return S.jsx(Gp,{alt:o,classes:a,sizes:i,src:n,sx:s,variant:c})},E8e=()=>S.jsx(tl,{rowsPerPageOptions:[100,500,1e3,2e3]}),P8e=e=>{const t=je();return S.jsx(fu,{...e,label:"resources.room_directory.action.erase",redirect:!1,mutationMode:"pessimistic",confirmTitle:t("resources.room_directory.action.title",{smart_count:1}),confirmContent:t("resources.room_directory.action.content",{smart_count:1}),resource:"room_directory",icon:S.jsx(vu,{})})},rV=e=>S.jsx(Hv,{...e,label:"resources.room_directory.action.erase",mutationMode:"pessimistic",confirmTitle:"resources.room_directory.action.title",confirmContent:"resources.room_directory.action.content",resource:"room_directory",icon:S.jsx(vu,{})}),$8e=e=>{const{selectedIds:t}=tn(),r=Ht(),n=ti(),o=dB("rooms"),a=yo(),{mutate:i,isLoading:s}=au(()=>a.createMany("room_directory",{ids:t,data:{}}),{onSuccess:()=>{r("resources.room_directory.action.send_success"),o(),n()},onError:()=>r("resources.room_directory.action.send_failure",{type:"error"})});return S.jsx(Nt,{...e,label:"resources.room_directory.action.create",onClick:i,disabled:s,children:S.jsx(vu,{})})},R8e=e=>{const t=ht(),r=Ht(),n=ti(),[o,{isLoading:a}]=hv(),i=()=>{o("room_directory",{data:{id:t.id}},{onSuccess:()=>{r("resources.room_directory.action.send_success"),n()},onError:()=>r("resources.room_directory.action.send_failure",{type:"error"})})};return S.jsx(Nt,{...e,label:"resources.room_directory.action.create",onClick:i,disabled:a,children:S.jsx(vu,{})})},T8e=()=>S.jsxs(xo,{children:[S.jsx(L8,{}),S.jsx(Nd,{})]}),k8e=()=>S.jsx(rl,{pagination:S.jsx(E8e,{}),perPage:100,actions:S.jsx(T8e,{}),children:S.jsxs(_2,{rowClick:e=>"/rooms/"+e+"/show",bulkActionButtons:S.jsx(rV,{}),omit:["room_id","canonical_alias","topic"],children:[S.jsx(oR,{source:"avatar_src",sortable:!1,sx:{height:"40px",width:"40px"},label:"resources.rooms.fields.avatar"}),S.jsx(Fe,{source:"name",sortable:!1,label:"resources.rooms.fields.name"}),S.jsx(Fe,{source:"room_id",sortable:!1,label:"resources.rooms.fields.room_id"}),S.jsx(Fe,{source:"canonical_alias",sortable:!1,label:"resources.rooms.fields.canonical_alias"}),S.jsx(Fe,{source:"topic",sortable:!1,label:"resources.rooms.fields.topic"}),S.jsx(Ha,{source:"num_joined_members",sortable:!1,label:"resources.rooms.fields.joined_members"}),S.jsx(Do,{source:"world_readable",sortable:!1,label:"resources.room_directory.fields.world_readable"}),S.jsx(Do,{source:"guest_can_join",sortable:!1,label:"resources.room_directory.fields.guest_can_join"})]})}),I8e={name:"room_directory",icon:vu,list:k8e};var aR={},j8e=He;Object.defineProperty(aR,"__esModule",{value:!0});var nV=aR.default=void 0,A8e=j8e(Xe()),M8e=S;nV=aR.default=(0,A8e.default)((0,M8e.jsx)("path",{d:"M17 12h-5v5h5zM16 1v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-1V1zm3 18H5V8h14z"}),"Event");var iR={},F8e=He;Object.defineProperty(iR,"__esModule",{value:!0});var oV=iR.default=void 0,L8e=F8e(Xe()),N8e=S;oV=iR.default=(0,L8e.default)((0,N8e.jsx)("path",{d:"m4 18 8.5-6L4 6zm9-12v12l8.5-6z"}),"FastForward");var sR={},D8e=He;Object.defineProperty(sR,"__esModule",{value:!0});var lR=sR.default=void 0,B8e=D8e(Xe()),z8e=S;lR=sR.default=(0,B8e.default)((0,z8e.jsx)("path",{d:"M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3m-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3m0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5m8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5"}),"Group");var uR={},U8e=He;Object.defineProperty(uR,"__esModule",{value:!0});var AC=uR.default=void 0,V8e=U8e(Xe()),W8e=S;AC=uR.default=(0,V8e.default)((0,W8e.jsx)("path",{d:"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2m-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2m3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1z"}),"Https");var cR={},q8e=He;Object.defineProperty(cR,"__esModule",{value:!0});var aV=cR.default=void 0,H8e=q8e(Xe()),G8e=S;aV=cR.default=(0,H8e.default)((0,G8e.jsx)("path",{d:"M21 21.78 4.22 5 3 6.22l2.04 2.04C4.42 8.6 4 9.25 4 10v10c0 1.1.9 2 2 2h12c.23 0 .45-.05.66-.12L19.78 23zM8.9 6c0-1.71 1.39-3.1 3.1-3.1s3.1 1.39 3.1 3.1v2H9.66L20 18.34V10c0-1.1-.9-2-2-2h-1V6c0-2.76-2.24-5-5-5-2.56 0-4.64 1.93-4.94 4.4L8.9 7.24z"}),"NoEncryption");const K8e=()=>S.jsx(tl,{rowsPerPageOptions:[10,25,50,100,500,1e3]}),Q8e=()=>{const e=ht(),t=je();let r="";return e&&(r=e.name!==""?e.name:e.id),S.jsxs("span",{children:[t("resources.rooms.name",1)," ",r]})},X8e=()=>{const e=ht(),t=e!=null&&e.public?S.jsx(P8e,{}):S.jsx(R8e,{});return S.jsxs(xo,{children:[t,S.jsx(fu,{mutationMode:"pessimistic",confirmTitle:"resources.rooms.action.erase.title",confirmContent:"resources.rooms.action.erase.content"})]})},Y8e=e=>{const t=je();return S.jsx(d_,{...e,actions:S.jsx(X8e,{}),title:S.jsx(Q8e,{}),children:S.jsxs(Qv,{children:[S.jsxs(Lo,{label:"synapseadmin.rooms.tabs.basic",icon:S.jsx(du,{}),children:[S.jsx(Fe,{source:"room_id"}),S.jsx(Fe,{source:"name"}),S.jsx(Fe,{source:"topic"}),S.jsx(Fe,{source:"canonical_alias"}),S.jsx(Ga,{source:"creator",reference:"users",children:S.jsx(Fe,{source:"id"})})]}),S.jsxs(Lo,{label:"synapseadmin.rooms.tabs.detail",icon:S.jsx(Q2,{}),path:"detail",children:[S.jsx(Fe,{source:"joined_members"}),S.jsx(Fe,{source:"joined_local_members"}),S.jsx(Fe,{source:"joined_local_devices"}),S.jsx(Fe,{source:"state_events"}),S.jsx(Fe,{source:"version"}),S.jsx(Fe,{source:"encryption",emptyText:t("resources.rooms.enums.unencrypted")})]}),S.jsx(Lo,{label:"synapseadmin.rooms.tabs.members",icon:S.jsx(lR,{}),path:"members",children:S.jsx(Si,{reference:"room_members",target:"room_id",label:!1,children:S.jsxs(Ur,{style:{width:"100%"},rowClick:r=>"/users/"+r,bulkActionButtons:!1,children:[S.jsx(Fe,{source:"id",sortable:!1,label:"resources.users.fields.id"}),S.jsx(Ga,{label:"resources.users.fields.displayname",source:"id",reference:"users",sortable:!1,link:"",children:S.jsx(Fe,{source:"displayname",sortable:!1})})]})})}),S.jsxs(Lo,{label:"synapseadmin.rooms.tabs.permission",icon:S.jsx(R2,{}),path:"permission",children:[S.jsx(Do,{source:"federatable"}),S.jsx(Do,{source:"public"}),S.jsx(cw,{source:"join_rules",choices:[{id:"public",name:"resources.rooms.enums.join_rules.public"},{id:"knock",name:"resources.rooms.enums.join_rules.knock"},{id:"invite",name:"resources.rooms.enums.join_rules.invite"},{id:"private",name:"resources.rooms.enums.join_rules.private"}]}),S.jsx(cw,{source:"guest_access",choices:[{id:"can_join",name:"resources.rooms.enums.guest_access.can_join"},{id:"forbidden",name:"resources.rooms.enums.guest_access.forbidden"}]}),S.jsx(cw,{source:"history_visibility",choices:[{id:"invited",name:"resources.rooms.enums.history_visibility.invited"},{id:"joined",name:"resources.rooms.enums.history_visibility.joined"},{id:"shared",name:"resources.rooms.enums.history_visibility.shared"},{id:"world_readable",name:"resources.rooms.enums.history_visibility.world_readable"}]})]}),S.jsx(Lo,{label:t("resources.room_state.name",{smart_count:2}),icon:S.jsx(nV,{}),path:"state",children:S.jsx(Si,{reference:"room_state",target:"room_id",label:!1,children:S.jsxs(Ur,{style:{width:"100%"},bulkActionButtons:!1,children:[S.jsx(Fe,{source:"type",sortable:!1}),S.jsx(dn,{source:"origin_server_ts",showTime:!0,options:fn,sortable:!1}),S.jsx(Fe,{source:"content",sortable:!1}),S.jsx(Ga,{source:"sender",reference:"users",sortable:!1,children:S.jsx(Fe,{source:"id"})})]})})}),S.jsxs(Lo,{label:"resources.forward_extremities.name",icon:S.jsx(oV,{}),path:"forward_extremities",children:[S.jsx(Cn,{sx:{fontFamily:"Roboto, Helvetica, Arial, sans-serif",margin:"0.5em"},children:t("resources.rooms.helper.forward_extremities")}),S.jsx(Si,{reference:"forward_extremities",target:"room_id",label:!1,children:S.jsxs(Ur,{style:{width:"100%"},bulkActionButtons:!1,children:[S.jsx(Fe,{source:"id",sortable:!1}),S.jsx(dn,{source:"received_ts",showTime:!0,options:fn,sortable:!1}),S.jsx(Ha,{source:"depth",sortable:!1}),S.jsx(Fe,{source:"state_group",sortable:!1})]})})]})]})})},J8e=()=>S.jsxs(S.Fragment,{children:[S.jsx($8e,{}),S.jsx(rV,{}),S.jsx(Hv,{confirmTitle:"resources.rooms.action.erase.title",confirmContent:"resources.rooms.action.erase.content",mutationMode:"pessimistic"})]}),Z8e=[S.jsx(c_,{source:"search_term",alwaysOn:!0})],eUe=()=>S.jsxs(xo,{children:[S.jsx(L8,{}),S.jsx(Nd,{})]}),tUe=e=>{const t=na();return S.jsx(rl,{...e,pagination:S.jsx(K8e,{}),sort:{field:"name",order:"ASC"},filters:Z8e,actions:S.jsx(eUe,{}),children:S.jsxs(_2,{rowClick:"show",bulkActionButtons:S.jsx(J8e,{}),omit:["joined_local_members","state_events","version","federatable"],children:[S.jsx(Do,{source:"is_encrypted",sortBy:"encryption",TrueIcon:AC,FalseIcon:aV,label:S.jsx(AC,{}),sx:{'& [data-testid="true"]':{color:t.palette.success.main},'& [data-testid="false"]':{color:t.palette.error.main}}}),S.jsx(OU,{source:"name",render:r=>r.name||r.canonical_alias||r.id}),S.jsx(Fe,{source:"joined_members"}),S.jsx(Fe,{source:"joined_local_members"}),S.jsx(Fe,{source:"state_events"}),S.jsx(Fe,{source:"version"}),S.jsx(Do,{source:"federatable"}),S.jsx(Do,{source:"public"})]})})},rUe={name:"rooms",icon:du,list:tUe,show:Y8e};var dR={},nUe=He;Object.defineProperty(dR,"__esModule",{value:!0});var iV=dR.default=void 0,oUe=nUe(Xe()),aUe=S;iV=dR.default=(0,oUe.default)((0,aUe.jsx)("path",{d:"M10 20h4V4h-4zm-6 0h4v-8H4zM16 9v11h4V9z"}),"Equalizer");const iUe=()=>{const{isLoading:e,total:t}=tn();return S.jsxs(xo,{children:[S.jsx(h8e,{}),S.jsx(Nd,{disabled:e||t===0})]})},sUe=()=>S.jsx(tl,{rowsPerPageOptions:[10,25,50,100,500,1e3]}),lUe=[S.jsx(c_,{source:"search_term",alwaysOn:!0})],uUe=e=>S.jsx(rl,{...e,actions:S.jsx(iUe,{}),filters:lUe,pagination:S.jsx(sUe,{}),sort:{field:"media_length",order:"DESC"},children:S.jsxs(Ur,{rowClick:t=>"/users/"+t+"/media",bulkActionButtons:!1,children:[S.jsx(Fe,{source:"user_id",label:"resources.users.fields.id"}),S.jsx(Fe,{source:"displayname",label:"resources.users.fields.displayname"}),S.jsx(Ha,{source:"media_count"}),S.jsx(Ha,{source:"media_length"})]})}),cUe={name:"user_media_statistics",icon:iV,list:uUe};var fR={},dUe=He;Object.defineProperty(fR,"__esModule",{value:!0});var sV=fR.default=void 0,fUe=dUe(Xe()),pUe=S;sV=fR.default=(0,fUe.default)((0,pUe.jsx)("path",{d:"M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2m-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1m0 4c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3m6 12H6v-1.4c0-2 4-3.1 6-3.1s6 1.1 6 3.1z"}),"AssignmentInd");var pR={},vUe=He;Object.defineProperty(pR,"__esModule",{value:!0});var lV=pR.default=void 0,mUe=vUe(Xe()),hUe=S;lV=pR.default=(0,mUe.default)((0,hUe.jsx)("path",{d:"M21 8V7l-3 2-3-2v1l3 2zm1-5H2C.9 3 0 3.9 0 5v14c0 1.1.9 2 2 2h20c1.1 0 1.99-.9 1.99-2L24 5c0-1.1-.9-2-2-2M8 6c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3m6 12H2v-1c0-2 4-3.1 6-3.1s6 1.1 6 3.1zm8-6h-8V6h8z"}),"ContactMail");var vR={},gUe=He;Object.defineProperty(vR,"__esModule",{value:!0});var uV=vR.default=void 0,yUe=gUe(Xe()),bUe=S;uV=vR.default=(0,yUe.default)((0,bUe.jsx)("path",{d:"M4 6h18V4H4c-1.1 0-2 .9-2 2v11H0v3h14v-3H4zm19 2h-6c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h6c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1m-1 9h-4v-7h4z"}),"Devices");var mR={},_Ue=He;Object.defineProperty(mR,"__esModule",{value:!0});var cV=mR.default=void 0,xUe=_Ue(Xe()),wUe=S;cV=mR.default=(0,xUe.default)((0,wUe.jsx)("path",{d:"M12 22c1.1 0 2-.9 2-2h-4c0 1.1.89 2 2 2m6-6v-5c0-3.07-1.64-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68C7.63 5.36 6 7.92 6 11v5l-2 2v1h16v-1z"}),"Notifications");var hR={},SUe=He;Object.defineProperty(hR,"__esModule",{value:!0});var dV=hR.default=void 0,OUe=SUe(Xe()),CUe=S;dV=hR.default=(0,OUe.default)((0,CUe.jsx)("path",{d:"M2 6H0v5h.01L0 20c0 1.1.9 2 2 2h18v-2H2zm20-2h-8l-2-2H6c-1.1 0-1.99.9-1.99 2L4 16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2M7 15l4.5-6 3.5 4.51 2.5-3.01L21 15z"}),"PermMedia");var gR={},EUe=He;Object.defineProperty(gR,"__esModule",{value:!0});var fV=gR.default=void 0,PUe=EUe(Xe()),$Ue=S;fV=gR.default=(0,PUe.default)((0,$Ue.jsx)("path",{d:"M12 2c-4.97 0-9 4.03-9 9 0 4.17 2.84 7.67 6.69 8.69L12 22l2.31-2.31C18.16 18.67 21 15.17 21 11c0-4.97-4.03-9-9-9m0 2c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3m0 14.3c-2.5 0-4.71-1.28-6-3.22.03-1.99 4-3.08 6-3.08 1.99 0 5.97 1.09 6 3.08-1.29 1.94-3.5 3.22-6 3.22"}),"PersonPin");var yR={},RUe=He;Object.defineProperty(yR,"__esModule",{value:!0});var pV=yR.default=void 0,TUe=RUe(Xe()),kUe=S;pV=yR.default=(0,TUe.default)((0,kUe.jsx)("path",{d:"M5 2c0-.55-.45-1-1-1s-1 .45-1 1v4H1v6h6V6H5zm4 14c0 1.3.84 2.4 2 2.82V23h2v-4.18c1.16-.41 2-1.51 2-2.82v-2H9zm-8 0c0 1.3.84 2.4 2 2.82V23h2v-4.18C6.16 18.4 7 17.3 7 16v-2H1zM21 6V2c0-.55-.45-1-1-1s-1 .45-1 1v4h-2v6h6V6zm-8-4c0-.55-.45-1-1-1s-1 .45-1 1v4H9v6h6V6h-2zm4 14c0 1.3.84 2.4 2 2.82V23h2v-4.18c1.16-.41 2-1.51 2-2.82v-2h-6z"}),"SettingsInputComponent");var bR={},IUe=He;Object.defineProperty(bR,"__esModule",{value:!0});var _R=bR.default=void 0,jUe=IUe(Xe()),AUe=S;_R=bR.default=(0,jUe.default)((0,AUe.jsx)("path",{d:"M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2m-2 12H6v-2h12zm0-3H6V9h12zm0-3H6V6h12z"}),"Message");const vV=({open:e,onClose:t,onSubmit:r})=>{const n=je(),o=a=>S.jsxs(Bd,{...a,children:[S.jsx(Gv,{label:"resources.servernotices.action.send",disabled:a.pristine}),S.jsx(Nt,{label:"ra.action.cancel",onClick:t,children:S.jsx(Z2,{})})]});return S.jsxs(Lv,{open:e,onClose:t,children:[S.jsx(Dv,{children:n("resources.servernotices.action.send")}),S.jsxs(Nv,{children:[S.jsx(J0,{children:n("resources.servernotices.helper.send")}),S.jsx(zd,{toolbar:S.jsx(o,{}),onSubmit:r,children:S.jsx(Er,{source:"body",label:"resources.servernotices.fields.body",fullWidth:!0,multiline:!0,rows:"4",resettable:!0,validate:co()})})]})]})},MUe=()=>{const e=ht(),[t,r]=d.useState(!1),n=Ht(),[o,{isLoading:a}]=hv(),i=()=>r(!0),s=()=>r(!1),c=l=>{o("servernotices",{data:{id:e.id,...l}},{onSuccess:()=>{n("resources.servernotices.action.send_success"),s()},onError:()=>n("resources.servernotices.action.send_failure",{type:"error"})})};return S.jsxs(S.Fragment,{children:[S.jsx(Nt,{label:"resources.servernotices.send",onClick:i,disabled:a,children:S.jsx(_R,{})}),S.jsx(vV,{open:t,onClose:s,onSubmit:c})]})},FUe=()=>{const{selectedIds:e}=tn(),[t,r]=d.useState(!1),n=()=>r(!0),o=()=>r(!1),a=Ht(),i=dB("users"),s=yo(),{mutate:c,isLoading:l}=au(f=>s.createMany("servernotices",{ids:e,data:f}),{onSuccess:()=>{a("resources.servernotices.action.send_success"),i(),o()},onError:()=>a("resources.servernotices.action.send_failure",{type:"error"})});return S.jsxs(S.Fragment,{children:[S.jsx(Nt,{label:"resources.servernotices.send",onClick:n,disabled:l,children:S.jsx(_R,{})}),S.jsx(vV,{open:t,onClose:o,onSubmit:c})]})},LUe=e=>{const t=ht();return t?S.jsx(n2,{...e,label:"ra.action.remove",confirmTitle:"resources.devices.action.erase.title",confirmContent:"resources.devices.action.erase.content",mutationMode:"pessimistic",redirect:!1,translateOptions:{id:t.id,name:t.display_name?t.display_name:t.id}}):null},mV=[{id:"email",name:"resources.users.email"},{id:"msisdn",name:"resources.users.msisdn"}],hV=[{id:"bot",name:"bot"},{id:"support",name:"support"}],gV=()=>{const{isLoading:e,total:t}=tn();return S.jsxs(xo,{children:[S.jsx(P$,{}),S.jsx(Nd,{disabled:e||t===0,maxResults:1e4}),S.jsx(Nt,{component:ba,to:"/import_users",label:"CSV Import",children:S.jsx(r2,{sx:{transform:"rotate(180deg)",fontSize:"20px"}})})]})};gV.defaultProps={selectedIds:[],onUnselectItems:()=>null};const yV=()=>S.jsx(tl,{rowsPerPageOptions:[10,25,50,100,500,1e3]}),NUe=[S.jsx(c_,{source:"name",alwaysOn:!0}),S.jsx(za,{source:"guests",alwaysOn:!0}),S.jsx(za,{label:"resources.users.fields.show_deactivated",source:"deactivated",alwaysOn:!0})],DUe=()=>S.jsxs(S.Fragment,{children:[S.jsx(FUe,{}),S.jsx(Hv,{label:"resources.users.action.erase",confirmTitle:"resources.users.helper.erase",mutationMode:"pessimistic"})]}),BUe=e=>S.jsx(rl,{...e,filters:NUe,filterDefaultValues:{guests:!0,deactivated:!1},sort:{field:"name",order:"ASC"},actions:S.jsx(gV,{}),pagination:S.jsx(yV,{}),children:S.jsxs(Ur,{rowClick:"edit",bulkActionButtons:S.jsx(DUe,{}),children:[S.jsx(oR,{source:"avatar_src",sx:{height:"40px",width:"40px"},sortBy:"avatar_url"}),S.jsx(Fe,{source:"id",sortBy:"name"}),S.jsx(Fe,{source:"displayname"}),S.jsx(Do,{source:"is_guest"}),S.jsx(Do,{source:"admin"}),S.jsx(Do,{source:"deactivated"}),S.jsx(Do,{source:"locked"}),S.jsx(Do,{source:"erased",sortable:!1}),S.jsx(dn,{source:"creation_ts",label:"resources.users.fields.creation_ts_ms",showTime:!0,options:fn})]})}),zUe=[co(),Cy(253),AP(/^[a-z0-9._=\-/]+$/,"synapseadmin.users.invalid_user_id")],UUe=[co(),Cy(255)],VUe=()=>{const e=ht(),t=je();return S.jsxs(xo,{children:[!(e!=null&&e.deactivated)&&S.jsx(MUe,{}),S.jsx(fu,{label:"resources.users.action.erase",confirmTitle:t("resources.users.helper.erase",{smart_count:1}),mutationMode:"pessimistic"})]})},WUe=e=>S.jsx(I2,{...e,children:S.jsxs(zd,{children:[S.jsx(Er,{source:"id",autoComplete:"off",validate:zUe}),S.jsx(Er,{source:"displayname",validate:Cy(256)}),S.jsx(k2,{source:"password",autoComplete:"new-password",validate:Cy(512)}),S.jsx(ev,{source:"user_type",choices:hV,translateChoice:!1,resettable:!0}),S.jsx(za,{source:"admin"}),S.jsx(Jy,{source:"threepids",children:S.jsxs(Jp,{disableReordering:!0,children:[S.jsx(ev,{source:"medium",choices:mV,validate:co()}),S.jsx(Er,{source:"address",validate:UUe})]})}),S.jsx(Jy,{source:"external_ids",label:"synapseadmin.users.tabs.sso",children:S.jsxs(Jp,{disableReordering:!0,children:[S.jsx(Er,{source:"auth_provider",validate:co()}),S.jsx(Er,{source:"external_id",label:"resources.users.fields.id",validate:co()})]})})]})}),qUe=()=>{const e=ht(),t=je();return S.jsxs("span",{children:[t("resources.users.name",{smart_count:1})," ",e?`"${e.displayname}"`:""]})},HUe=e=>{const t=je();return S.jsx(j2,{...e,title:S.jsx(qUe,{}),actions:S.jsx(VUe,{}),children:S.jsxs(A2,{children:[S.jsxs(da,{label:t("resources.users.name",{smart_count:1}),icon:S.jsx(fV,{}),children:[S.jsx(oR,{source:"avatar_src",sortable:!1,sx:{height:"120px",width:"120px",float:"right"}}),S.jsx(Er,{source:"id",disabled:!0}),S.jsx(Er,{source:"displayname"}),S.jsx(k2,{source:"password",autoComplete:"new-password",helperText:"resources.users.helper.password"}),S.jsx(ev,{source:"user_type",choices:hV,translateChoice:!1,resettable:!0}),S.jsx(za,{source:"admin"}),S.jsx(za,{source:"locked"}),S.jsx(za,{source:"deactivated",helperText:"resources.users.helper.deactivate"}),S.jsx(za,{source:"erased",disabled:!0}),S.jsx(dn,{source:"creation_ts_ms",showTime:!0,options:fn}),S.jsx(Fe,{source:"consent_version"})]}),S.jsx(da,{label:"resources.users.threepid",icon:S.jsx(lV,{}),path:"threepid",children:S.jsx(Jy,{source:"threepids",children:S.jsxs(Jp,{disableReordering:!0,children:[S.jsx(ev,{source:"medium",choices:mV}),S.jsx(Er,{source:"address"})]})})}),S.jsx(da,{label:"synapseadmin.users.tabs.sso",icon:S.jsx(sV,{}),path:"sso",children:S.jsx(Jy,{source:"external_ids",label:!1,children:S.jsxs(Jp,{disableReordering:!0,children:[S.jsx(Er,{source:"auth_provider",validate:co()}),S.jsx(Er,{source:"external_id",label:"resources.users.fields.id",validate:co()})]})})}),S.jsx(da,{label:t("resources.devices.name",{smart_count:2}),icon:S.jsx(uV,{}),path:"devices",children:S.jsx(Si,{reference:"devices",target:"user_id",label:!1,children:S.jsxs(Ur,{style:{width:"100%"},children:[S.jsx(Fe,{source:"device_id",sortable:!1}),S.jsx(Fe,{source:"display_name",sortable:!1}),S.jsx(Fe,{source:"last_seen_ip",sortable:!1}),S.jsx(dn,{source:"last_seen_ts",showTime:!0,options:fn,sortable:!1}),S.jsx(LUe,{})]})})}),S.jsx(da,{label:"resources.connections.name",icon:S.jsx(pV,{}),path:"connections",children:S.jsx(Ga,{reference:"connections",source:"id",label:!1,link:!1,children:S.jsx(Kze,{source:"devices[].sessions[0].connections",label:"resources.connections.name",children:S.jsxs(Ur,{style:{width:"100%"},bulkActionButtons:!1,children:[S.jsx(Fe,{source:"ip",sortable:!1}),S.jsx(dn,{source:"last_seen",showTime:!0,options:fn,sortable:!1}),S.jsx(Fe,{source:"user_agent",sortable:!1,style:{width:"100%"}})]})})})}),S.jsx(da,{label:t("resources.users_media.name",{smart_count:2}),icon:S.jsx(dV,{}),path:"media",children:S.jsx(Si,{reference:"users_media",target:"user_id",label:!1,pagination:S.jsx(yV,{}),perPage:50,sort:{field:"created_ts",order:"DESC"},children:S.jsxs(Ur,{style:{width:"100%"},children:[S.jsx(b8e,{source:"media_id"}),S.jsx(dn,{source:"created_ts",showTime:!0,options:fn}),S.jsx(dn,{source:"last_access_ts",showTime:!0,options:fn}),S.jsx(Ha,{source:"media_length"}),S.jsx(Fe,{source:"media_type"}),S.jsx(Fe,{source:"upload_name"}),S.jsx(Fe,{source:"quarantined_by"}),S.jsx(y8e,{label:"resources.quarantine_media.action.name"}),S.jsx(g8e,{label:"resources.users_media.fields.safe_from_quarantine"}),S.jsx(fu,{mutationMode:"pessimistic",redirect:!1})]})})}),S.jsx(da,{label:t("resources.rooms.name",{smart_count:2}),icon:S.jsx(du,{}),path:"rooms",children:S.jsx(Si,{reference:"joined_rooms",target:"user_id",label:!1,children:S.jsxs(Ur,{style:{width:"100%"},rowClick:r=>"/rooms/"+r+"/show",bulkActionButtons:!1,children:[S.jsx(Fe,{source:"id",sortable:!1,label:"resources.rooms.fields.room_id"}),S.jsx(Ga,{label:"resources.rooms.fields.name",source:"id",reference:"rooms",sortable:!1,link:"",children:S.jsx(Fe,{source:"name",sortable:!1})})]})})}),S.jsx(da,{label:t("resources.pushers.name",{smart_count:2}),icon:S.jsx(cV,{}),path:"pushers",children:S.jsx(Si,{reference:"pushers",target:"user_id",label:!1,children:S.jsxs(Ur,{style:{width:"100%"},bulkActionButtons:!1,children:[S.jsx(Fe,{source:"kind",sortable:!1}),S.jsx(Fe,{source:"app_display_name",sortable:!1}),S.jsx(Fe,{source:"app_id",sortable:!1}),S.jsx(Fe,{source:"data.url",sortable:!1}),S.jsx(Fe,{source:"device_display_name",sortable:!1}),S.jsx(Fe,{source:"lang",sortable:!1}),S.jsx(Fe,{source:"profile_tag",sortable:!1}),S.jsx(Fe,{source:"pushkey",sortable:!1})]})})})]})})},GUe={name:"users",icon:lR,list:BUe,edit:HUe,create:WUe},KUe={login:async({base_url:e,username:t,password:r,loginToken:n})=>{console.log("login ");const o={method:"POST",body:JSON.stringify(Object.assign({device_id:St.getItem("device_id"),initial_device_display_name:"Synapse Admin"},n?{type:"m.login.token",token:n}:{type:"m.login.password",user:t,password:r}))};e=e.replace(/\/+$/g,""),St.setItem("base_url",e);const i=window.decodeURIComponent(e)+"/_matrix/client/r0/login",{json:s}=await Yl(i,o);St.setItem("home_server",s.home_server),St.setItem("user_id",s.user_id),St.setItem("access_token",s.access_token),St.setItem("device_id",s.device_id)},logout:async()=>{console.log("logout");const e=St.getItem("base_url")+"/_matrix/client/r0/logout",t=St.getItem("access_token"),r={method:"POST",user:{authenticated:!0,token:`Bearer ${t}`}};typeof t=="string"&&(await Yl(e,r),St.removeItem("access_token"))},checkError:({status:e})=>(console.log("checkError "+e),e===401||e===403?Promise.reject():Promise.resolve()),checkAuth:()=>{const e=St.getItem("access_token");return console.log("checkAuth "+e),typeof e=="string"?Promise.resolve():Promise.reject()},getPermissions:()=>Promise.resolve()},no=(e,t={})=>{const r=St.getItem("access_token");return console.log("httpClient "+e),r!=null&&(t.user={authenticated:!0,token:`Bearer ${r}`}),Yl(e,t)},dN=e=>{const t=St.getItem("base_url"),n=/^mxc:\/\/([^/]+)\/(\w+)/.exec(e);if(console.log("mxcClient "+n),n==null)return null;const o=n[1],a=n[2];return`${t}/_matrix/media/r0/thumbnail/${o}/${a}?width=24&height=24&method=scale`},_r={users:{path:"/_synapse/admin/v2/users",map:e=>({...e,id:e.name,avatar_src:e.avatar_url?dN(e.avatar_url):void 0,is_guest:!!e.is_guest,admin:!!e.admin,deactivated:!!e.deactivated,creation_ts_ms:e.creation_ts*1e3}),data:"users",total:e=>e.total,create:e=>({endpoint:`/_synapse/admin/v2/users/@${encodeURIComponent(e.id)}:${St.getItem("home_server")}`,body:e,method:"PUT"}),delete:e=>({endpoint:`/_synapse/admin/v1/deactivate/${encodeURIComponent(e.id)}`,body:{erase:!0},method:"POST"})},rooms:{path:"/_synapse/admin/v1/rooms",map:e=>({...e,id:e.room_id,alias:e.canonical_alias,members:e.joined_members,is_encrypted:!!e.encryption,federatable:!!e.federatable,public:!!e.public}),data:"rooms",total:e=>e.total_rooms,delete:e=>({endpoint:`/_synapse/admin/v2/rooms/${e.id}`,body:{block:!1}})},reports:{path:"/_synapse/admin/v1/event_reports",map:e=>({...e}),data:"event_reports",total:e=>e.total},devices:{map:e=>({...e,id:e.device_id}),data:"devices",total:e=>e.total,reference:e=>({endpoint:`/_synapse/admin/v2/users/${encodeURIComponent(e)}/devices`}),delete:e=>({endpoint:`/_synapse/admin/v2/users/${encodeURIComponent(e.previousData.user_id)}/devices/${e.id}`})},connections:{path:"/_synapse/admin/v1/whois",map:e=>({...e,id:e.user_id}),data:"connections"},room_members:{map:e=>({id:e}),reference:e=>({endpoint:`/_synapse/admin/v1/rooms/${e}/members`}),data:"members",total:e=>e.total},room_state:{map:e=>({...e,id:e.event_id}),reference:e=>({endpoint:`/_synapse/admin/v1/rooms/${e}/state`}),data:"state",total:e=>e.state.length},pushers:{map:e=>({...e,id:e.pushkey}),reference:e=>({endpoint:`/_synapse/admin/v1/users/${encodeURIComponent(e)}/pushers`}),data:"pushers",total:e=>e.total},joined_rooms:{map:e=>({id:e}),reference:e=>({endpoint:`/_synapse/admin/v1/users/${encodeURIComponent(e)}/joined_rooms`}),data:"joined_rooms",total:e=>e.total},users_media:{map:e=>({...e,id:e.media_id}),reference:e=>({endpoint:`/_synapse/admin/v1/users/${encodeURIComponent(e)}/media`}),data:"media",total:e=>e.total,delete:e=>({endpoint:`/_synapse/admin/v1/media/${St.getItem("home_server")}/${e.id}`})},protect_media:{map:e=>({id:e.media_id}),create:e=>({endpoint:`/_synapse/admin/v1/media/protect/${e.media_id}`,method:"POST"}),delete:e=>({endpoint:`/_synapse/admin/v1/media/unprotect/${e.id}`,method:"POST"})},quarantine_media:{map:e=>({id:e.media_id}),create:e=>({endpoint:`/_synapse/admin/v1/media/quarantine/${St.getItem("home_server")}/${e.media_id}`,method:"POST"}),delete:e=>({endpoint:`/_synapse/admin/v1/media/unquarantine/${St.getItem("home_server")}/${e.id}`,method:"POST"})},servernotices:{map:e=>({id:e.event_id}),create:e=>({endpoint:"/_synapse/admin/v1/send_server_notice",body:{user_id:e.id,content:{msgtype:"m.text",body:e.body}},method:"POST"})},user_media_statistics:{path:"/_synapse/admin/v1/statistics/users/media",map:e=>({...e,id:e.user_id}),data:"users",total:e=>e.total},forward_extremities:{map:e=>({...e,id:e.event_id}),reference:e=>({endpoint:`/_synapse/admin/v1/rooms/${e}/forward_extremities`}),data:"results",total:e=>e.count,delete:e=>({endpoint:`/_synapse/admin/v1/rooms/${e.id}/forward_extremities`})},room_directory:{path:"/_matrix/client/r0/publicRooms",map:e=>({...e,id:e.room_id,public:!!e.public,guest_access:!!e.guest_access,avatar_src:e.avatar_url?dN(e.avatar_url):void 0}),data:"chunk",total:e=>e.total_room_count_estimate,create:e=>({endpoint:`/_matrix/client/r0/directory/list/room/${e.id}`,body:{visibility:"public"},method:"PUT"}),delete:e=>({endpoint:`/_matrix/client/r0/directory/list/room/${e.id}`,body:{visibility:"private"},method:"PUT"})},destinations:{path:"/_synapse/admin/v1/federation/destinations",map:e=>({...e,id:e.destination}),data:"destinations",total:e=>e.total,delete:e=>({endpoint:`/_synapse/admin/v1/federation/destinations/${e.id}/reset_connection`,method:"POST"})},destination_rooms:{map:e=>({...e,id:e.room_id}),reference:e=>({endpoint:`/_synapse/admin/v1/federation/destinations/${e}/rooms`}),data:"rooms",total:e=>e.total},registration_tokens:{path:"/_synapse/admin/v1/registration_tokens",map:e=>({...e,id:e.token}),data:"registration_tokens",total:e=>e.registration_tokens.length,create:e=>({endpoint:"/_synapse/admin/v1/registration_tokens/new",body:e,method:"POST"}),delete:e=>({endpoint:`/_synapse/admin/v1/registration_tokens/${e.id}`})}};function $f(e,t){if(!(t===null&&e!=="user_type"))return t}function fN(e){return e==="DESC"?"b":"f"}const QUe={getList:async(e,t)=>{console.log("getList "+e);const{user_id:r,name:n,guests:o,deactivated:a,search_term:i,destination:s,valid:c}=t.filter,{page:l,perPage:f}=t.pagination,{field:v,order:m}=t.sort,h=(l-1)*f,x={from:h,limit:f,user_id:r,search_term:i,name:n,destination:s,guests:o,deactivated:a,valid:c,order_by:v,dir:fN(m)},w=St.getItem("base_url");if(!w||!(e in _r))throw Error("Homeserver not set");const O=_r[e],g=`${w+O.path}?${Xl.stringify(x)}`,{json:_}=await no(g);return{data:_[O.data].map(O.map),total:O.total(_,h,f)}},getOne:async(e,t)=>{console.log("getOne "+e);const r=St.getItem("base_url");if(!r||!(e in _r))throw Error("Homeserver not set");const n=_r[e],o=r+n.path,{json:a}=await no(`${o}/${encodeURIComponent(t.id)}`);return{data:n.map(a)}},getMany:async(e,t)=>{console.log("getMany "+e);const r=St.getItem("base_url");if(!r||!(e in _r))throw Error("Homerserver not set");const n=_r[e],o=r+n.path,a=await Promise.all(t.ids.map(i=>no(`${o}/${encodeURIComponent(i)}`)));return{data:a.map(({json:i})=>n.map(i)),total:a.length}},getManyReference:async(e,t)=>{console.log("getManyReference "+e);const{page:r,perPage:n}=t.pagination,{field:o,order:a}=t.sort,i=(r-1)*n,s={from:i,limit:n,order_by:o,dir:fN(a)},c=St.getItem("base_url");if(!c||!(e in _r))throw Error("Homeserver not set");const l=_r[e],f=l.reference(t.id),v=`${c}${f.endpoint}?${Xl.stringify(s)}`,{json:m}=await no(v);return{data:m[l.data].map(l.map),total:l.total(m,i,n)}},update:async(e,t)=>{console.log("update "+e);const r=St.getItem("base_url");if(!r||!(e in _r))throw Error("Homeserver not set");const n=_r[e],o=r+n.path,{json:a}=await no(`${o}/${encodeURIComponent(t.id)}`,{method:"PUT",body:JSON.stringify(t.data,$f)});return{data:n.map(a)}},updateMany:async(e,t)=>{console.log("updateMany "+e);const r=St.getItem("base_url");if(!r||!(e in _r))throw Error("Homeserver not set");const n=_r[e],o=r+n.path;return{data:(await Promise.all(t.ids.map(i=>no(`${o}/${encodeURIComponent(i)}`),{method:"PUT",body:JSON.stringify(t.data,$f)}))).map(({json:i})=>i)}},create:async(e,t)=>{console.log("create "+e);const r=St.getItem("base_url");if(!r||!(e in _r))throw Error("Homeserver not set");const n=_r[e];if(!("create"in n))return Promise.reject();const o=n.create(t.data),a=r+o.endpoint,{json:i}=await no(a,{method:o.method,body:JSON.stringify(o.body,$f)});return{data:n.map(i)}},createMany:async(e,t)=>{console.log("createMany "+e);const r=St.getItem("base_url");if(!r||!(e in _r))throw Error("Homeserver not set");const n=_r[e];if(!("create"in n))throw Error(`Create ${e} is not allowed`);return{data:(await Promise.all(t.ids.map(a=>{t.data.id=a;const i=n.create(t.data),s=r+i.endpoint;return no(s,{method:i.method,body:JSON.stringify(i.body,$f)})}))).map(({json:a})=>a)}},delete:async(e,t)=>{console.log("delete "+e);const r=St.getItem("base_url");if(!r||!(e in _r))throw Error("Homeserver not set");const n=_r[e];if("delete"in n){const o=n.delete(t),a=r+o.endpoint,{json:i}=await no(a,{method:"method"in o?o.method:"DELETE",body:"body"in o?JSON.stringify(o.body):null});return{data:i}}else{const o=r+n.path,{json:a}=await no(`${o}/${t.id}`,{method:"DELETE",body:JSON.stringify(t.previousData,$f)});return{data:a}}},deleteMany:async(e,t)=>{console.log("deleteMany "+e);const r=St.getItem("base_url");if(!r||!(e in _r))throw Error("Homeserver not set");const n=_r[e];if("delete"in n)return{data:(await Promise.all(t.ids.map(a=>{const i=n.delete({...t,id:a}),s=r+i.endpoint;return no(s,{method:"method"in i?i.method:"DELETE",body:"body"in i?JSON.stringify(i.body):null})}))).map(({json:a})=>a)};{const o=r+n.path;return{data:(await Promise.all(t.ids.map(i=>no(`${o}/${i}`,{method:"DELETE"})))).map(({json:i})=>i)}}},deleteMedia:async({before_ts:e,size_gt:t=0,keep_profiles:r=!0})=>{const o=`/_synapse/admin/v1/media/${St.getItem("home_server")}/delete?before_ts=${e}&size_gt=${t}&keep_profiles=${r}`,i=St.getItem("base_url")+o,{json:s}=await no(i,{method:"POST"});return s}},Ih={de:i9e,en:s9e,fr:u9e,it:f9e,ru:v9e,zh:g9e},XUe=y4(e=>Ih[e]?kb.merge({},Ih.en,Ih[e]):Ih.en,$pe(),[{locale:"en",name:"English"},{locale:"de",name:"Deutsch"},{locale:"fr",name:"Français"},{locale:"it",name:"Italiano"},{locale:"fa",name:"Persian(فارسی)"},{locale:"ru",name:"Russian(Русский)"},{locale:"zh",name:"简体中文"}]),YUe=()=>S.jsxs(G6e,{disableTelemetry:!0,requireAuth:!0,loginPage:_9e,authProvider:KUe,dataProvider:QUe,i18nProvider:XUe,darkTheme:{palette:{mode:"dark"}},children:[S.jsx(FB,{children:S.jsx(zr,{path:"/import_users",element:S.jsx(o9e,{})})}),S.jsx(Ir,{...GUe}),S.jsx(Ir,{...rUe}),S.jsx(Ir,{...cUe}),S.jsx(Ir,{...C8e}),S.jsx(Ir,{...I8e}),S.jsx(Ir,{...L9e}),S.jsx(Ir,{...G9e}),S.jsx(Ir,{name:"connections"}),S.jsx(Ir,{name:"devices"}),S.jsx(Ir,{name:"room_members"}),S.jsx(Ir,{name:"users_media"}),S.jsx(Ir,{name:"joined_rooms"}),S.jsx(Ir,{name:"pushers"}),S.jsx(Ir,{name:"servernotices"}),S.jsx(Ir,{name:"forward_extremities"}),S.jsx(Ir,{name:"room_state"}),S.jsx(Ir,{name:"destination_rooms"})]});fetch("config.json").then(e=>e.json()).then(e=>C3(document.getElementById("root")).render(S.jsx(fe.StrictMode,{children:S.jsx(qU.Provider,{value:e,children:S.jsx(YUe,{})})}))); +`);var G=0,z=!1;this.parse=function(W,te,ne){if(typeof W!="string")throw new Error("Input must be a string");var ee=W.length,Oe=A.length,ce=F.length,oe=L.length,pe=T(D),Re=[],ye=[],de=[],he=G=0;if(!W)return Et();if(R.header&&!te){var ve=W.split(F)[0].split(A),_e=[],ie={},be=!1;for(var ge in ve){var Ae=ve[ge];T(R.transformHeader)&&(Ae=R.transformHeader(Ae,ge));var Be=Ae,V=ie[Ae]||0;for(0=U)return Et(!0)}else for(Ie=G,G++;;){if((Ie=W.indexOf(I,Ie+1))===-1)return ne||ye.push({type:"Quotes",code:"MissingQuotes",message:"Quoted field unterminated",row:Re.length,index:G}),ft();if(Ie===ee-1)return ft(W.substring(G,Ie).replace(Ee,I));if(I!==q||W[Ie+1]!==q){if(I===q||Ie===0||W[Ie-1]!==q){se!==-1&&se=U)return Et(!0);break}ye.push({type:"Quotes",code:"InvalidQuotes",message:"Trailing quote on quoted field is malformed",row:Re.length,index:G}),Ie++}}else Ie++}return ft();function Le(et){Re.push(et),he=G}function De(et){var ke=0;if(et!==-1){var ze=W.substring(Ie+1,et);ze&&ze.trim()===""&&(ke=ze.length)}return ke}function ft(et){return ne||(et===void 0&&(et=W.substring(G)),de.push(et),G=ee,Le(de),pe&&We()),Et()}function Pt(et){G=et,Le(de),de=[],le=W.indexOf(F,G)}function Et(et){return{data:Re,errors:ye,meta:{delimiter:A,linebreak:F,aborted:z,truncated:!!et,cursor:he+(te||0)}}}function We(){D(Et()),Re=[],ye=[]}},this.abort=function(){z=!0},this.getCharIndex=function(){return G}}function g(R){var I=R.data,A=i[I.workerId],F=!1;if(I.error)A.userError(I.error,I.file);else if(I.results&&I.results.data){var L={abort:function(){F=!0,_(I.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:$,resume:$};if(T(A.userStep)){for(var D=0;D{var r;return(r=/^@(?[a-zA-Z0-9._=\-/]+):(?[a-zA-Z0-9\-.]+\.[a-zA-Z]+)$/.exec(e))==null?void 0:r.groups},Q6e=e=>/^(http|https):\/\/[a-zA-Z0-9\-.]+(:\d{1,5})?$/.test(e),X6e=async e=>{const t=`https://${e}/.well-known/matrix/client`;try{return(await Yl(t,{method:"GET"})).json["m.homeserver"].base_url}catch{return`https://${e}`}},Y6e=async e=>{const t=`${e}/_synapse/admin/v1/server_version`;return(await Yl(t,{method:"GET"})).json.server_version},J6e=async e=>{const t=`${e}/_matrix/client/versions`;return(await Yl(t,{method:"GET"})).json},Z6e=async e=>{const t=`${e}/_matrix/client/r0/login`;return(await Yl(t,{method:"GET"})).json.flows},e9e=e=>`${St.getItem("base_url")}/_matrix/media/v1/download/${e}?allow_redirect=true`;function cN(){const e=St.getItem("home_server"),t="0123456789abcdefghijklmnopqrstuvwxyz";return`@${Array.from(crypto.getRandomValues(new Uint32Array(8))).map(n=>t[n%t.length]).join("")}:${e}`}function t9e(e=20){const t="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz~!@-#$";return Array.from(crypto.getRandomValues(new Uint32Array(e))).map(r=>t[r%t.length]).join("")}const dw=!0,r9e=["id","displayname"].sort();function kh({value:e,text:t}){const r=je();return S.jsx("option",{value:e,children:r(t)})}const n9e=()=>{const[e,t]=d.useState([]),[r,n]=d.useState(null),[o,a]=d.useState(null),[i,s]=d.useState(!0),[c,l]=d.useState(null),[f,v]=d.useState(null),[m,h]=d.useState(""),[x,w]=d.useState("stop"),[O,b]=d.useState(!0),[g,_]=d.useState("ignore"),$=je(),P=Ht(),C=yo(),T=async ce=>{if(c!==null)return;t([]),n(null),a(null),v(null);const oe=ce.target.files?ce.target.files[0]:null;if(oe){if(oe.size>1e8){const pe=$("import_users.errors.unreasonably_big",{size:(oe.size/1048576).toFixed(2)});P(pe),n(pe);return}try{uN.parse(oe,{header:!0,skipEmptyLines:!0,complete:pe=>{pe.errors&&n(pe.errors.map(Re=>Re.toString())),R(pe,{setValues:t,setStats:a,setError:n})}})}catch{return n("Unknown error"),null}}},R=({data:ce,meta:oe,errors:pe},{setValues:Re,setStats:ye,setError:de})=>{const he=r9e.filter(ie=>{var be;return(be=oe.fields)==null?void 0:be.find(ge=>ie===ge)});if(he.length>0)return de($("import_users.error.required_field",{field:he[0]})),!1;const ve={user_types:{default:0},is_guest:0,admin:0,deactivated:0,password:0,avatar_url:0,id:0,total:ce.length},_e=pe.map(ie=>ie.message);return ce.forEach((ie,be)=>{var ge,Ae,Be;ie.user_type===void 0||ie.user_type===""?ve.user_types.default++:ve.user_types[ie.user_type]+=1,(ge=oe.fields)!=null&&ge.includes("name")&&delete ie.name,(Ae=oe.fields)!=null&&Ae.includes("user_type")&&delete ie.user_type,(Be=oe.fields)!=null&&Be.includes("is_admin")&&delete ie.is_admin,["is_guest","admin","deactivated"].forEach(V=>{ie[V]==="true"?(ve[V]++,ie[V]=!0):(ie[V]!=="false"&&ie[V]!==""&&_e.push($("import_users.error.invalid_value",{field:V,row:be})),ie[V]=!1)}),ie.password!==void 0&&ie.password!==""&&ve.password++,ie.avatar_url!==void 0&&ie.avatar_url!==""&&ve.avatar_url++,ie.id!==void 0&&ie.id!==""&&ve.id++}),_e.length>0&&de(_e),ye(ve),Re(ce),!0},I=async()=>{if(c!==null){P("import_users.errors.already_in_progress");return}const ce=await A(C,e,x,O,g,i,l,n);v(ce),h(uN.unparse(ce.skippedRecords)),console.log("Skipped records:"),console.log(m)},A=async(ce,oe,pe,Re,ye,de,he,ve)=>{const _e=[],ie=[],be=[],ge={total:0,id:0,is_guest:0,admin:0,password:0};let Ae=0;const Be=oe.length;try{he({done:Ae,limit:Be});for(const V of oe){const X={...V};(ye==="ignore"||X.id===void 0)&&(X.id=cN()),(Re===!1||V.password===void 0)&&(X.password=t9e()),dw&&console.log("will check for existence of record "+JSON.stringify(X));let Y=0;const ae=se=>ce.getOne("users",{id:se.id}).then(async()=>{if(dw&&console.log("already existed"),ye==="update"||pe==="skip")_e.push(se);else{if(pe==="stop")throw new Error($("import_users.error.id_exits",{id:se.id}));{const le=Object.assign({},se,{id:cN()});Y++,Y>512?(console.warn("retry loop got stuck? pathological situation?"),_e.push(se)):await ae(le)}}},async()=>{dw&&console.log("OK to create record "+se.id+" ("+se.displayname+")."),de||await ce.create("users",{data:se}),be.push(se)});await ae(X),Ae++,he({done:Ae,limit:oe.length})}he(null)}catch(V){ve($("import_users.error.at_entry",{entry:Ae+1,message:V instanceof Error?V.message:String(V)})),he(null)}return{skippedRecords:_e,erroredRecords:ie,succeededRecords:be,totalRecordCount:Be,changeStats:ge,wasDryRun:de}},F=()=>{const ce=document.createElement("a");console.log(m);const oe=new Blob([m],{type:"text/comma-separated-values"});ce.href=URL.createObjectURL(oe),ce.download="skippedRecords.csv",document.body.appendChild(ce),ce.click()},L=async ce=>{if(c!==null)return;const oe=ce.target.value;w(oe)},D=ce=>{c===null&&b(ce.target.checked)},U=async ce=>{if(c!==null)return;const oe=ce.target.value;_(oe)},H=ce=>{c===null&&s(ce.target.checked)},q=o&&!f&&[S.jsxs(Uu,{children:[S.jsx(ml,{title:$("import_users.cards.importstats.header")}),S.jsxs(jo,{children:[S.jsx("div",{children:$("import_users.cards.importstats.users_total",o.total)}),S.jsx("div",{children:$("import_users.cards.importstats.guest_count",o.is_guest)}),S.jsx("div",{children:$("import_users.cards.importstats.admin_count",o.admin)})]})]}),S.jsxs(Uu,{children:[S.jsx(ml,{title:$("import_users.cards.ids.header")}),S.jsxs(jo,{children:[S.jsx("div",{children:o.id===o.total?$("import_users.cards.ids.all_ids_present"):$("import_users.cards.ids.count_ids_present",o.id)}),o.id>0?S.jsx("div",{children:S.jsxs(mL,{onChange:U,value:g,disabled:c!==null,children:[S.jsx(kh,{value:"ignore",text:"import_users.cards.ids.mode.ignore"}),S.jsx(kh,{value:"update",text:"import_users.cards.ids.mode.update"})]})}):""]})]}),S.jsxs(Uu,{children:[S.jsx(ml,{title:$("import_users.cards.passwords.header")}),S.jsxs(jo,{children:[S.jsx("div",{children:o.password===o.total?$("import_users.cards.passwords.all_passwords_present"):$("import_users.cards.passwords.count_passwords_present",o.password)}),o.password>0?S.jsx("div",{children:S.jsx(uO,{control:S.jsx(ad,{checked:O,disabled:c!==null,onChange:D}),label:$("import_users.cards.passwords.use_passwords")})}):""]})]})],G=o&&!f&&S.jsxs(Uu,{children:[S.jsx(ml,{title:$("import_users.cards.conflicts.header")}),S.jsx(jo,{children:S.jsx("div",{children:S.jsxs(mL,{onChange:L,value:x,disabled:c!==null,children:[S.jsx(kh,{value:"stop",text:"import_users.cards.conflicts.mode.stop"}),S.jsx(kh,{value:"skip",text:"import_users.cards.conflicts.mode.skip"})]})})})]}),z=r&&S.jsxs(Uu,{children:[S.jsx(ml,{title:$("import_users.error.error")}),S.jsx(jo,{children:(Array.isArray(r)?r:[r]).map(ce=>S.jsx("div",{children:ce}))})]}),W=!f&&S.jsxs(Uu,{children:[S.jsx(ml,{title:$("import_users.cards.upload.header")}),S.jsxs(jo,{children:[$("import_users.cards.upload.explanation"),S.jsx("a",{href:"./data/example.csv",children:"example.csv"}),S.jsx("br",{}),S.jsx("br",{}),S.jsx("input",{type:"file",onChange:T,disabled:c!==null})]})]}),te=f&&S.jsxs(jo,{children:[S.jsx(ml,{title:$("import_users.cards.results.header")}),S.jsxs("div",{children:[$("import_users.cards.results.total",f.totalRecordCount),S.jsx("br",{}),$("import_users.cards.results.successful",f.succeededRecords.length),S.jsx("br",{}),f.skippedRecords.length?[$("import_users.cards.results.skipped",f.skippedRecords.length),S.jsx("div",{children:S.jsx("button",{onClick:F,children:$("import_users.cards.results.download_skipped")})}),S.jsx("br",{})]:"",f.erroredRecords.length?[$("import_users.cards.results.skipped",f.erroredRecords.length),S.jsx("br",{})]:"",S.jsx("br",{}),f.wasDryRun&&[$("import_users.cards.results.simulated_only"),S.jsx("br",{})]]})]}),ne=!e||e.length===0||f?void 0:S.jsxs(D6,{children:[S.jsx(uO,{control:S.jsx(ad,{checked:i,onChange:H,disabled:c!==null}),label:$("import_users.cards.startImport.simulate_only")}),S.jsx($r,{size:"large",onClick:I,disabled:c!==null,children:$("import_users.cards.startImport.run_import")}),c!==null?S.jsxs("div",{children:[c.done," of ",c.limit," done"]}):null]}),ee=[];W&&ee.push(W),z&&ee.push(z),G&&ee.push(G),q&&ee.push(...q),ne&&ee.push(ne),te&&ee.push(te);const Oe=S.jsx(cu,{children:ee});return[S.jsx(el,{defaultTitle:$("import_users.title")}),Oe]},o9e=n9e,VU={ra:{action:{add_filter:"Filter hinzufügen",add:"Neu",back:"Zurück",bulk_actions:"Ein Element ausgewählt |||| %{smart_count} Elemente ausgewählt",cancel:"Abbrechen",clear_array_input:"Liste löschen",clear_input_value:"Eingabe löschen",clone:"Klonen",confirm:"Bestätigen",create:"Erstellen",create_item:"%{item} erstellen",delete:"Löschen",edit:"Bearbeiten",export:"Exportieren",list:"Liste",refresh:"Neu laden",remove_filter:"Filter entfernen",remove_all_filters:"Alle Filter entfernen",remove:"Entfernen",save:"Speichern",search:"Suchen",select_all:"Alles auswählen",select_row:"Reihe auswählen",show:"Anzeigen",sort:"Sortieren",undo:"Rückgängig machen",unselect:"Abwählen",expand:"Erweitern",close:"Schließen",open_menu:"Menü öffnen",close_menu:"Menü schließen",update:"Aktualisieren",move_up:"Nach oben",move_down:"Nach unten",open:"Öffnen",toggle_theme:"Theme wechseln",select_columns:"Spalten"},boolean:{true:"Ja",false:"Nein",null:" "},page:{create:"%{name} erstellen",dashboard:"Dashboard",edit:"%{name} %{recordRepresentation}",error:"Etwas ist schiefgelaufen",list:"%{name}",loading:"Laden",not_found:"Nicht gefunden",show:"%{name} %{recordRepresentation}",empty:"Noch kein %{name}.",invite:"Neu erstellen?"},input:{file:{upload_several:"Dateien hier ablegen, oder zum Auswählen klicken.",upload_single:"Dateien hier ablegen, oder zum Auswählen klicken."},image:{upload_several:"Bilder hier ablegen, oder zum Auswählen klicken.",upload_single:"Bild hier ablegen, oder zum Auswählen klicken."},references:{all_missing:"Die Daten der Referenz können nicht gefunden werden.",many_missing:"Mindestens eine Referenz scheint nicht mehr verfügbar zu sein.",single_missing:"Die Referenz scheint nicht mehr verfügbar zu sein."},password:{toggle_visible:"Passwort verbergen",toggle_hidden:"Passwort einblenden"}},message:{about:"Über",are_you_sure:"Sind Sie sicher?",auth_error:"Bei der Validierung des Authentifizierungstokens ist ein Fehler aufgetreten.",bulk_delete_content:"Sicher, dass Sie %{name} löschen wollen? |||| Sicher, dass Sie diese %{smart_count} Elemente löschen wollen?",bulk_delete_title:"%{name} löschen |||| %{smart_count} %{name} löschen",bulk_update_content:"Sicher, dass Sie %{name} aktualisieren wollen? |||| Sicher, dass Sie %{smart_count} Elemente aktualisieren wollen?",bulk_update_title:"%{name} aktualisieren |||| %{smart_count} %{name} aktualisieren",clear_array_input:"Sicher, dass Sie die ganze Liste löschen wollen?",delete_content:"Sicher, dass Sie dieses Element löschen wollen?",delete_title:"%{name} #%{id} löschen",details:"Details",error:"Ein Fehler trat auf, Ihre Anfrage konnte nicht verarbeitet werden.",invalid_form:"Das Formular ist ungültig. Bitte überprüfen Sie Ihre Eingaben.",loading:"Die Seite wird geladen, noch einen Moment.",no:"Nein",not_found:"Sie eine falsche URL aufgerufen oder eingegeben.",yes:"Ja",unsaved_changes:"Einige Änderungen wurden nicht gespeichert. Sicher, dass Sie diese nicht übernehmen wollen?"},navigation:{no_results:"Keine Ergebnisse gefunden.",no_more_results:"Es gibt keine Seite %{page}. Versuche eine vorherige.",page_out_of_boundaries:"Es gibt keine Seite %{page}.",page_out_from_end:"Es gibt keine Seite mehr nach dieser.",page_out_from_begin:"Es gibt keine Seite vor Seite 1.",page_range_info:"%{offsetBegin}-%{offsetEnd} von %{total}",partial_page_range_info:"%{offsetBegin}-%{offsetEnd} von mehr als %{offsetEnd}",current_page:"Seite %{page}",page:"Gehe zu Seite %{page}",first:"Gehe zur ersten Seite",last:"Gehe zur letzten Seite",next:"Gehe zur nächsten Seite",previous:"Gehe zur vorherigen Seite",page_rows_per_page:"Reihen pro Seite:",skip_nav:"Zum Inhalt springen"},sort:{sort_by:"Nach %{field} %{order} sortieren",ASC:"Aufsteigend",DESC:"Absteigend"},auth:{auth_check_error:"Bitte anmelden um fortzufahren",user_menu:"Profil",username:"Nutzername",password:"Passwort",sign_in:"Anmelden",sign_in_error:"Anmeldung fehlgeschlagen, bitte erneut versuchen.",logout:"Abmelden"},notification:{updated:"Element aktualisiert |||| %{smart_count} Elemente aktualisiert",created:"Element erstellt",deleted:"Element gelöscht |||| %{smart_count} Elemente gelöscht",bad_item:"Fehlerhaftes Element",item_doesnt_exist:"Element existiert nicht",http_error:"Kommunikation mit Server fehlgeschlagen",data_provider_error:"DataProvider-Fehler. Mehr Details in der Konsole.",i18n_error:"Die Übersetzungen für die ausgewählte Sprache können nicht geladen werden",canceled:"Aktion abgebrochen",logged_out:"Ihre Sitzung ist abgelaufen, bitte erneut verbinden.",not_authorized:"Sie sind nicht berechtigt, auf diese Ressource zuzugreifen."},validation:{required:"Erforderlich",minLength:"Muss mindestens %{min} Zeichen betragen",maxLength:"Darf %{max} Zeichen oder weniger betragen",minValue:"Muss mindestens %{min} betragen",maxValue:"Darf %{max} oder weniger betragen",number:"Muss eine Nummer sein",email:"Muss eine gültige E-Mail sein",oneOf:"Muss eine der folgenden Optionen sein: %{options}",regex:"Muss einem gewissen Format entsprechen (regexp): %{pattern}"},saved_queries:{label:"Gespeicherte Anfragen",query_name:"Name der Anfrage",new_label:"Speichere aktuelle Anfrage...",new_dialog_title:"Speichere aktuelle Anfrage als",remove_label:"Gespeicherte Anfrage löschen",remove_label_with_name:'Anfrage "%{name}" löschen',remove_dialog_title:"Gespeicherte Anfrage löschen?",remove_message:"Sicher, dass Sie diese Anfrage aus der Liste der gespeicherten löschen wollen?",help:"Liste filtern und diese Anfrage für später speichern"},configurable:{customize:"Anpassen",configureMode:"Diese Seite anpassen",inspector:{title:"Inspektor",content:"Bewegen Sie den Mauszeigen über die UI-Elemente, um sie zu konfigurieren",reset:"Einstellungen zurücksetzen",hideAll:"Alles verbergen",showAll:"Alles anzeigen"},Datagrid:{title:"Datagrid",unlabeled:"Unbekannte Spalte #%{column}"},SimpleForm:{title:"Formular",unlabeled:"Unbenannter Input #%{input}"},SimpleList:{title:"Liste",primaryText:"Primärtext",secondaryText:"Sekundärtext",tertiaryText:"Tertiärtext"}}}},a9e={ra:{message:{are_you_sure:"Bist du sicher?",bulk_delete_content:"Sicher, dass du %{name} löschen willst? |||| Sicher, dass du diese %{smart_count} Elemente löschen willst?",bulk_update_content:"Sicher, dass du %{name} aktualisieren willst? |||| Sicher, dass du %{smart_count} Elemente aktualisieren willst?",clear_array_input:"Sicher, dass du die ganze Liste löschen willst?",delete_content:"Sicher, dass du dieses Element löschen willst?",error:"Ein Fehler trat auf, Deine Anfrage konnte nicht verarbeitet werden.",invalid_form:"Das Formular ist ungültig. Bitte überprüfe Deine Eingaben.",not_found:"Du hast eine falsche URL aufgerufen oder eingegeben.",unsaved_changes:"Einige Änderungen wurden nicht gespeichert. Sicher, dass du diese nicht übernehmen willst?"},notification:{logged_out:"Deine Sitzung ist abgelaufen, bitte erneut verbinden.",not_authorized:"Du bist nicht berechtigt, auf diese Ressource zuzugreifen."},saved_queries:{remove_message:"Sicher, dass du diese Anfrage aus der Liste der gespeicherten löschen willst?"},configurable:{inspector:{content:"Bewege den Mauszeigen über die UI-Elemente, um sie zu konfigurieren"}}}};vP(VU,a9e);const i9e={...VU,synapseadmin:{auth:{base_url:"Heimserver URL",welcome:"Willkommen bei Synapse-admin",server_version:"Synapse Version",supports_specs:"unterstützt Matrix-Specs",username_error:"Bitte vollständigen Nutzernamen angeben: '@user:domain'",protocol_error:"Die URL muss mit 'http://' oder 'https://' beginnen",url_error:"Keine gültige Matrix Server URL",sso_sign_in:"Anmeldung mit SSO"},users:{invalid_user_id:"Lokaler Anteil der Matrix Benutzer-ID ohne Homeserver.",tabs:{sso:"SSO"}},rooms:{details:"Raumdetails",tabs:{basic:"Allgemein",members:"Mitglieder",detail:"Details",permission:"Berechtigungen"}},reports:{tabs:{basic:"Allgemein",detail:"Details"}}},import_users:{error:{at_entry:"Bei Eintrag %{entry}: %{message}",error:"Fehler",required_field:"Pflichtfeld '%{field}' fehlt",invalid_value:"Ungültiger Wert in Zeile %{row}. Feld '%{field}' darf nur die Werte 'true' oder 'false' enthalten",unreasonably_big:"Datei ist zu groß für den Import (%{size} Megabytes)",already_in_progress:"Es läuft bereits ein Import",id_exits:"ID %{id} existiert bereits"},title:"Benutzer aus CSV importieren",goToPdf:"Gehe zum PDF",cards:{importstats:{header:"Benutzer importieren",users_total:"%{smart_count} Benutzer in der CSV Datei |||| %{smart_count} Benutzer in der CSV Datei",guest_count:"%{smart_count} Gast |||| %{smart_count} Gäste",admin_count:"%{smart_count} Server Administrator |||| %{smart_count} Server Administratoren"},conflicts:{header:"Konfliktstrategie",mode:{stop:"Stoppe bei Fehlern",skip:"Zeige Fehler und überspringe fehlerhafte Einträge"}},ids:{header:"IDs",all_ids_present:"IDs in jedem Eintrag vorhanden",count_ids_present:"%{smart_count} Eintrag mit ID |||| %{smart_count} Einträge mit IDs",mode:{ignore:"Ignoriere IDs der CSV-Datei und erstelle neue",update:"Aktualisiere existierende Benutzer"}},passwords:{header:"Passwörter",all_passwords_present:"Passwörter in jedem Eintrag vorhanden",count_passwords_present:"%{smart_count} Eintrag mit Passwort |||| %{smart_count} Einträge mit Passwörtern",use_passwords:"Verwende Passwörter aus der CSV Datei"},upload:{header:"CSV Datei importieren",explanation:"Hier können Sie eine Datei mit kommagetrennten Daten hochladen, die verwendet werden um Benutzer anzulegen oder zu ändern. Die Datei muss mindestens die Felder 'id' und 'displayname' enthalten. Hier können Sie eine Beispieldatei herunterladen und anpassen: "},startImport:{simulate_only:"Nur simulieren",run_import:"Importieren"},results:{header:"Ergebnis",total:"%{smart_count} Eintrag insgesamt |||| %{smart_count} Einträge insgesamt",successful:"%{smart_count} Einträge erfolgreich importiert",skipped:"%{smart_count} Einträge übersprungen",download_skipped:"Übersprungene Einträge herunterladen",with_error:"%{smart_count} Eintrag mit Fehlern ||| %{smart_count} Einträge mit Fehlern",simulated_only:"Import-Vorgang war nur simuliert"}}},delete_media:{name:"Medien",fields:{before_ts:"Letzter Zugriff vor",size_gt:"Größer als (in Bytes)",keep_profiles:"Behalte Profilbilder"},action:{send:"Medien löschen",send_success:"Anfrage erfolgreich versendet.",send_failure:"Beim Versenden ist ein Fehler aufgetreten."},helper:{send:"Diese API löscht die lokalen Medien von der Festplatte des eigenen Servers. Dies umfasst alle lokalen Miniaturbilder und Kopien von Medien. Diese API wirkt sich nicht auf Medien aus, die sich in externen Medien-Repositories befinden."}},resources:{users:{name:"Benutzer",email:"E-Mail",msisdn:"Telefon",threepid:"E-Mail / Telefon",fields:{avatar:"Avatar",id:"Benutzer-ID",name:"Name",is_guest:"Gast",admin:"Server Administrator",locked:"Gesperrt",deactivated:"Deaktiviert",erased:"Gelöscht",guests:"Zeige Gäste",show_deactivated:"Zeige deaktivierte Benutzer",user_id:"Suche Benutzer",displayname:"Anzeigename",password:"Passwort",avatar_url:"Avatar URL",avatar_src:"Avatar",medium:"Medium",threepids:"3PIDs",address:"Adresse",creation_ts_ms:"Zeitpunkt der Erstellung",consent_version:"Zugestimmte Geschäftsbedingungen",auth_provider:"Provider",user_type:"Benutzertyp"},helper:{password:"Durch die Änderung des Passworts wird der Benutzer von allen Sitzungen abgemeldet.",deactivate:"Sie müssen ein Passwort angeben, um ein Konto wieder zu aktivieren.",erase:"DSGVO konformes Löschen der Benutzerdaten"},action:{erase:"Lösche Benutzerdaten"}},rooms:{name:"Raum |||| Räume",fields:{room_id:"Raum-ID",name:"Name",canonical_alias:"Alias",joined_members:"Mitglieder",joined_local_members:"Lokale Mitglieder",joined_local_devices:"Lokale Endgeräte",state_events:"Zustandsereignisse / Komplexität",version:"Version",is_encrypted:"Verschlüsselt",encryption:"Verschlüsselungs-Algorithmus",federatable:"Fö­de­rierbar",public:"Sichtbar im Raumverzeichnis",creator:"Ersteller",join_rules:"Beitrittsregeln",guest_access:"Gastzugriff",history_visibility:"Historie-Sichtbarkeit",topic:"Thema",avatar:"Avatar"},helper:{forward_extremities:"Forward extremities are the leaf events at the end of a Directed acyclic graph (DAG) in a room, aka events that have no children. The more exist in a room, the more state resolution that Synapse needs to perform (hint: it's an expensive operation). While Synapse has code to prevent too many of these existing at one time in a room, bugs can sometimes make them crop up again. If a room has >10 forward extremities, it's worth checking which room is the culprit and potentially removing them using the SQL queries mentioned in #1760."},enums:{join_rules:{public:"Öffentlich",knock:"Auf Anfrage",invite:"Nur auf Einladung",private:"Privat"},guest_access:{can_join:"Gäste können beitreten",forbidden:"Gäste können nicht beitreten"},history_visibility:{invited:"Ab Einladung",joined:"Ab Beitritt",shared:"Ab Setzen der Einstellung",world_readable:"Jeder"},unencrypted:"Nicht verschlüsselt"},action:{erase:{title:"Raum löschen",content:"Sind Sie sicher dass Sie den Raum löschen möchten? Diese Aktion kann nicht rückgängig gemacht werden. Alle Nachrichten und Medien, die der Raum beinhaltet werden vom Server gelöscht!"}}},reports:{name:"Gemeldetes Ereignis |||| Gemeldete Ereignisse",fields:{id:"ID",received_ts:"Meldezeit",user_id:"Meldender",name:"Raumname",score:"Wert",reason:"Grund",event_id:"Event-ID",event_json:{origin:"Ursprungsserver",origin_server_ts:"Sendezeit",type:"Eventtyp",content:{msgtype:"Inhaltstyp",body:"Nachrichteninhalt",format:"Nachrichtenformat",formatted_body:"Formatierter Nachrichteninhalt",algorithm:"Verschlüsselungsalgorithmus",info:{mimetype:"Typ"},url:"URL"}}},action:{erase:{title:"Gemeldetes Event löschen",content:"Sind Sie sicher dass Sie das gemeldete Event löschen möchten? Diese Aktion kann nicht rückgängig gemacht werden."}}},connections:{name:"Verbindungen",fields:{last_seen:"Datum",ip:"IP-Adresse",user_agent:"User Agent"}},devices:{name:"Gerät |||| Geräte",fields:{device_id:"Geräte-ID",display_name:"Gerätename",last_seen_ts:"Zeitstempel",last_seen_ip:"IP-Adresse"},action:{erase:{title:"Entferne %{id}",content:'Möchten Sie das Gerät "%{name}" wirklich entfernen?',success:"Gerät erfolgreich entfernt.",failure:"Beim Entfernen ist ein Fehler aufgetreten."}}},users_media:{name:"Medien",fields:{media_id:"Medien ID",media_length:"Größe",media_type:"Typ",upload_name:"Dateiname",quarantined_by:"Zur Quarantäne hinzugefügt",safe_from_quarantine:"Schutz vor Quarantäne",created_ts:"Erstellt",last_access_ts:"Letzter Zugriff"},action:{open:"Mediendatei in neuem Fenster öffnen"}},protect_media:{action:{create:"Ungeschützt, Schutz erstellen",delete:"Geschützt, Schutz aufheben",none:"In Quarantäne",send_success:"Erfolgreich den Schutz-Status geändert.",send_failure:"Beim Versenden ist ein Fehler aufgetreten."}},quarantine_media:{action:{name:"Quarantäne",create:"Zur Quarantäne hinzufügen",delete:"In Quarantäne, Quarantäne aufheben",none:"Geschützt vor Quarantäne",send_success:"Erfolgreich den Quarantäne-Status geändert.",send_failure:"Beim Versenden ist ein Fehler aufgetreten."}},pushers:{name:"Pusher |||| Pushers",fields:{app:"App",app_display_name:"App-Anzeigename",app_id:"App ID",device_display_name:"Geräte-Anzeigename",kind:"Art",lang:"Sprache",profile_tag:"Profil-Tag",pushkey:"Pushkey",data:{url:"URL"}}},servernotices:{name:"Serverbenachrichtigungen",send:"Servernachricht versenden",fields:{body:"Nachricht"},action:{send:"Sende Nachricht",send_success:"Nachricht erfolgreich versendet.",send_failure:"Beim Versenden ist ein Fehler aufgetreten."},helper:{send:'Sendet eine Serverbenachrichtigung an die ausgewählten Nutzer. Hierfür muss das Feature "Server Notices" auf dem Server aktiviert sein.'}},user_media_statistics:{name:"Dateien je Benutzer",fields:{media_count:"Anzahl der Dateien",media_length:"Größe der Dateien"}},forward_extremities:{name:"Vorderextremitäten",fields:{id:"Event-ID",received_ts:"Zeitstempel",depth:"Tiefe",state_group:"Zustandsgruppe"}},room_state:{name:"Zustandsereignisse",fields:{type:"Typ",content:"Inhalt",origin_server_ts:"Sendezeit",sender:"Absender"}},room_directory:{name:"Raumverzeichnis",fields:{world_readable:"Gastbenutzer dürfen ohne Beitritt lesen",guest_can_join:"Gastbenutzer dürfen beitreten"},action:{title:"Raum aus Verzeichnis löschen |||| %{smart_count} Räume aus Verzeichnis löschen",content:"Möchten Sie den Raum wirklich aus dem Raumverzeichnis löschen? |||| Möchten Sie die %{smart_count} Räume wirklich aus dem Raumverzeichnis löschen?",erase:"Lösche aus Verzeichnis",create:"Eintragen ins Verzeichnis",send_success:"Raum erfolgreich eingetragen.",send_failure:"Beim Entfernen ist ein Fehler aufgetreten."}},destinations:{name:"Föderation",fields:{destination:"Ziel",failure_ts:"Fehlerzeitpunkt",retry_last_ts:"Letzter Wiederholungsversuch",retry_interval:"Wiederholungsintervall",last_successful_stream_ordering:"letzte erfogreicher Stream",stream_ordering:"Stream"},action:{reconnect:"Neu verbinden"}},registration_tokens:{name:"Registrierungstoken",fields:{token:"Token",valid:"Gültige Token",uses_allowed:"Anzahl",pending:"Ausstehend",completed:"Abgeschlossen",expiry_time:"Ablaufzeit",length:"Länge"},helper:{length:"Länge des Tokens, wenn kein Token vorgegeben wird."}}}},s9e={...zU,synapseadmin:{auth:{base_url:"Homeserver URL",welcome:"Welcome to Synapse-admin",server_version:"Synapse version",supports_specs:"supports Matrix specs",username_error:"Please enter fully qualified user ID: '@user:domain'",protocol_error:"URL has to start with 'http://' or 'https://'",url_error:"Not a valid Matrix server URL",sso_sign_in:"Sign in with SSO"},users:{invalid_user_id:"Localpart of a Matrix user-id without homeserver.",tabs:{sso:"SSO"}},rooms:{details:"Room details",tabs:{basic:"Basic",members:"Members",detail:"Details",permission:"Permissions"}},reports:{tabs:{basic:"Basic",detail:"Details"}}},import_users:{error:{at_entry:"At entry %{entry}: %{message}",error:"Error",required_field:"Required field '%{field}' is not present",invalid_value:"Invalid value on line %{row}. '%{field}' field may only be 'true' or 'false'",unreasonably_big:"Refused to load unreasonably big file of %{size} megabytes",already_in_progress:"An import run is already in progress",id_exits:"ID %{id} already present"},title:"Import users via CSV",goToPdf:"Go to PDF",cards:{importstats:{header:"Import users",users_total:"%{smart_count} user in CSV file |||| %{smart_count} users in CSV file",guest_count:"%{smart_count} guest |||| %{smart_count} guests",admin_count:"%{smart_count} admin |||| %{smart_count} admins"},conflicts:{header:"Conflict strategy",mode:{stop:"Stop on conflict",skip:"Show error and skip on conflict"}},ids:{header:"IDs",all_ids_present:"IDs present on every entry",count_ids_present:"%{smart_count} entry with ID |||| %{smart_count} entries with IDs",mode:{ignore:"Ignore IDs in CSV and create new ones",update:"Update existing records"}},passwords:{header:"Passwords",all_passwords_present:"Passwords present on every entry",count_passwords_present:"%{smart_count} entry with password |||| %{smart_count} entries with passwords",use_passwords:"Use passwords from CSV"},upload:{header:"Input CSV file",explanation:"Here you can upload a file with comma separated values that is processed to create or update users. The file must include the fields 'id' and 'displayname'. You can download and adapt an example file here: "},startImport:{simulate_only:"Simulate only",run_import:"Import"},results:{header:"Import results",total:"%{smart_count} entry in total |||| %{smart_count} entries in total",successful:"%{smart_count} entries successfully imported",skipped:"%{smart_count} entries skipped",download_skipped:"Download skipped records",with_error:"%{smart_count} entry with errors |||| %{smart_count} entries with errors",simulated_only:"Run was only simulated"}}},delete_media:{name:"Media",fields:{before_ts:"last access before",size_gt:"Larger then (in bytes)",keep_profiles:"Keep profile images"},action:{send:"Delete media",send_success:"Request successfully sent.",send_failure:"An error has occurred."},helper:{send:"This API deletes the local media from the disk of your own server. This includes any local thumbnails and copies of media downloaded. This API will not affect media that has been uploaded to external media repositories."}},resources:{users:{name:"User |||| Users",email:"Email",msisdn:"Phone",threepid:"Email / Phone",fields:{avatar:"Avatar",id:"User-ID",name:"Name",is_guest:"Guest",admin:"Server Administrator",locked:"Locked",deactivated:"Deactivated",erased:"Erased",guests:"Show guests",show_deactivated:"Show deactivated users",user_id:"Search user",displayname:"Displayname",password:"Password",avatar_url:"Avatar URL",avatar_src:"Avatar",medium:"Medium",threepids:"3PIDs",address:"Address",creation_ts_ms:"Creation timestamp",consent_version:"Consent version",auth_provider:"Provider",user_type:"User type"},helper:{password:"Changing password will log user out of all sessions.",deactivate:"You must provide a password to re-activate an account.",erase:"Mark the user as GDPR-erased"},action:{erase:"Erase user data"}},rooms:{name:"Room |||| Rooms",fields:{room_id:"Room-ID",name:"Name",canonical_alias:"Alias",joined_members:"Members",joined_local_members:"Local members",joined_local_devices:"Local devices",state_events:"State events / Complexity",version:"Version",is_encrypted:"Encrypted",encryption:"Encryption",federatable:"Federatable",public:"Visible in room directory",creator:"Creator",join_rules:"Join rules",guest_access:"Guest access",history_visibility:"History visibility",topic:"Topic",avatar:"Avatar"},helper:{forward_extremities:"Forward extremities are the leaf events at the end of a Directed acyclic graph (DAG) in a room, aka events that have no children. The more exist in a room, the more state resolution that Synapse needs to perform (hint: it's an expensive operation). While Synapse has code to prevent too many of these existing at one time in a room, bugs can sometimes make them crop up again. If a room has >10 forward extremities, it's worth checking which room is the culprit and potentially removing them using the SQL queries mentioned in #1760."},enums:{join_rules:{public:"Public",knock:"Knock",invite:"Invite",private:"Private"},guest_access:{can_join:"Guests can join",forbidden:"Guests can not join"},history_visibility:{invited:"Since invited",joined:"Since joined",shared:"Since shared",world_readable:"Anyone"},unencrypted:"Unencrypted"},action:{erase:{title:"Delete room",content:"Are you sure you want to delete the room? This cannot be undone. All messages and shared media in the room will be deleted from the server!"}}},reports:{name:"Reported event |||| Reported events",fields:{id:"ID",received_ts:"report time",user_id:"announcer",name:"name of the room",score:"score",reason:"reason",event_id:"event ID",event_json:{origin:"origin server",origin_server_ts:"time of send",type:"event type",content:{msgtype:"content type",body:"content",format:"format",formatted_body:"formatted content",algorithm:"algorithm",url:"URL",info:{mimetype:"Type"}}}},action:{erase:{title:"Delete reported event",content:"Are you sure you want to delete the reported event? This cannot be undone."}}},connections:{name:"Connections",fields:{last_seen:"Date",ip:"IP address",user_agent:"User agent"}},devices:{name:"Device |||| Devices",fields:{device_id:"Device-ID",display_name:"Device name",last_seen_ts:"Timestamp",last_seen_ip:"IP address"},action:{erase:{title:"Removing %{id}",content:'Are you sure you want to remove the device "%{name}"?',success:"Device successfully removed.",failure:"An error has occurred."}}},users_media:{name:"Media",fields:{media_id:"Media ID",media_length:"File Size (in Bytes)",media_type:"Type",upload_name:"File name",quarantined_by:"Quarantined by",safe_from_quarantine:"Safe from quarantine",created_ts:"Created",last_access_ts:"Last access"},action:{open:"Open media file in new window"}},protect_media:{action:{create:"Unprotected, create protection",delete:"Protected, remove protection",none:"In quarantine",send_success:"Successfully changed the protection status.",send_failure:"An error has occurred."}},quarantine_media:{action:{name:"Quarantine",create:"Add to quarantine",delete:"In quarantine, unquarantine",none:"Protected from quarantine",send_success:"Successfully changed the quarantine status.",send_failure:"An error has occurred."}},pushers:{name:"Pusher |||| Pushers",fields:{app:"App",app_display_name:"App display name",app_id:"App ID",device_display_name:"Device display name",kind:"Kind",lang:"Language",profile_tag:"Profile tag",pushkey:"Pushkey",data:{url:"URL"}}},servernotices:{name:"Server Notices",send:"Send server notices",fields:{body:"Message"},action:{send:"Send note",send_success:"Server notice successfully sent.",send_failure:"An error has occurred."},helper:{send:'Sends a server notice to the selected users. The feature "Server Notices" has to be activated at the server.'}},user_media_statistics:{name:"Users' media",fields:{media_count:"Media count",media_length:"Media length"}},forward_extremities:{name:"Forward Extremities",fields:{id:"Event ID",received_ts:"Timestamp",depth:"Depth",state_group:"State group"}},room_state:{name:"State events",fields:{type:"Type",content:"Content",origin_server_ts:"time of send",sender:"Sender"}},room_directory:{name:"Room directory",fields:{world_readable:"guest users may view without joining",guest_can_join:"guest users may join"},action:{title:"Delete room from directory |||| Delete %{smart_count} rooms from directory",content:"Are you sure you want to remove this room from directory? |||| Are you sure you want to remove these %{smart_count} rooms from directory?",erase:"Delete from room directory",create:"Publish in room directory",send_success:"Room successfully published.",send_failure:"An error has occurred."}},destinations:{name:"Federation",fields:{destination:"Destination",failure_ts:"Failure timestamp",retry_last_ts:"Last retry timestamp",retry_interval:"Retry interval",last_successful_stream_ordering:"Last successful stream",stream_ordering:"Stream"},action:{reconnect:"Reconnect"}},registration_tokens:{name:"Registration tokens",fields:{token:"Token",valid:"Valid token",uses_allowed:"Uses allowed",pending:"Pending",completed:"Completed",expiry_time:"Expiry time",length:"Length"},helper:{length:"Length of the token if no token is given."}}}};var l9e={ra:{action:{add_filter:"Ajouter un filtre",add:"Ajouter",back:"Retour",bulk_actions:"%{smart_count} sélectionné |||| %{smart_count} sélectionnés",cancel:"Annuler",clear_array_input:"Vider la liste",clear_input_value:"Vider le champ",clone:"Dupliquer",confirm:"Confirmer",create:"Créer",create_item:"Créer %{item}",delete:"Supprimer",edit:"Éditer",export:"Exporter",list:"Liste",refresh:"Actualiser",remove_filter:"Supprimer ce filtre",remove_all_filters:"Supprimer tous les filtres",remove:"Supprimer",save:"Enregistrer",select_all:"Tout sélectionner",select_row:"Sélectionner cette ligne",search:"Rechercher",show:"Afficher",sort:"Trier",undo:"Annuler",unselect:"Désélectionner",expand:"Étendre",close:"Fermer",open_menu:"Ouvrir le menu",close_menu:"Fermer le menu",update:"Modifier",move_up:"Déplacer vers le haut",move_down:"Déplacer vers le bas",open:"Ouvrir",toggle_theme:"Thème clair/sombre",select_columns:"Colonnes",update_application:"Recharger l'application"},boolean:{true:"Oui",false:"Non",null:" "},page:{create:"Créer %{name}",dashboard:"Tableau de bord",edit:"%{name} %{recordRepresentation}",error:"Un problème est survenu",list:"%{name}",loading:"Chargement",not_found:"Page manquante",show:"%{name} %{recordRepresentation}",empty:"Pas encore de %{name}.",invite:"Voulez-vous en créer un ?"},input:{file:{upload_several:"Déposez les fichiers à uploader, ou cliquez pour en sélectionner.",upload_single:"Déposez le fichier à uploader, ou cliquez pour le sélectionner."},image:{upload_several:"Déposez les images à uploader, ou cliquez pour en sélectionner.",upload_single:"Déposez l'image à uploader, ou cliquez pour la sélectionner."},references:{all_missing:"Impossible de trouver des données de références.",many_missing:"Au moins une des références associées semble ne plus être disponible.",single_missing:"La référence associée ne semble plus disponible."},password:{toggle_visible:"Cacher le mot de passe",toggle_hidden:"Montrer le mot de passe"}},message:{about:"Au sujet de",are_you_sure:"Êtes-vous sûr ?",auth_error:"Une erreur est survenue lors de la validation de votre jeton d'authentification.",bulk_delete_content:"Êtes-vous sûr(e) de vouloir supprimer cet élément ? |||| Êtes-vous sûr(e) de vouloir supprimer ces %{smart_count} éléments ?",bulk_delete_title:"Supprimer %{name} |||| Supprimer %{smart_count} %{name}",bulk_update_content:"Êtes-vous sûr(e) de vouloir modifier cet élément ? |||| Êtes-vous sûr(e) de vouloir modifier ces %{smart_count} éléments ?",bulk_update_title:"Modifier %{name} |||| Modifier %{smart_count} %{name}",clear_array_input:"Êtes-vous sûr(e) de vouloir supprimer tous les éléments de la liste ?",delete_content:"Êtes-vous sûr(e) de vouloir supprimer cet élément ?",delete_title:"Supprimer %{name} #%{id}",details:"Détails",error:"En raison d'une erreur côté navigateur, votre requête n'a pas pu aboutir.",invalid_form:"Le formulaire n'est pas valide.",loading:"La page est en cours de chargement, merci de bien vouloir patienter.",no:"Non",not_found:"L'URL saisie est incorrecte, ou vous avez suivi un mauvais lien.",yes:"Oui",unsaved_changes:"Certains changements n'ont pas été enregistrés. Êtes-vous sûr(e) de vouloir quitter cette page ?"},navigation:{no_results:"Aucun résultat",no_more_results:"La page numéro %{page} est en dehors des limites. Essayez la page précédente.",page_out_of_boundaries:"La page %{page} est en dehors des limites",page_out_from_end:"Fin de la pagination",page_out_from_begin:"La page doit être supérieure à 1",page_range_info:"%{offsetBegin}-%{offsetEnd} sur %{total}",partial_page_range_info:"%{offsetBegin}-%{offsetEnd} sur plus de %{offsetEnd}",page_rows_per_page:"Lignes par page :",current_page:"Page %{page}",page:"Aller à la page %{page}",first:"Aller à la première page",last:"Aller à la dernière page",next:"Aller à la prochaine page",previous:"Aller à la page précédente",skip_nav:"Aller au contenu"},sort:{sort_by:"Trier par %{field} %{order}",ASC:"croissant",DESC:"décroissant"},auth:{auth_check_error:"Merci de vous connecter pour continuer",user_menu:"Profil",username:"Identifiant",password:"Mot de passe",sign_in:"Connexion",sign_in_error:"Échec de l'authentification, merci de réessayer",logout:"Déconnexion"},notification:{updated:"Élément mis à jour |||| %{smart_count} éléments mis à jour",created:"Élément créé",deleted:"Élément supprimé |||| %{smart_count} éléments supprimés",bad_item:"Élément inconnu",item_doesnt_exist:"L'élément n'existe pas",http_error:"Erreur de communication avec le serveur",data_provider_error:"Erreur dans le dataProvider. Plus de détails dans la console.",i18n_error:"Erreur de chargement des traductions pour la langue sélectionnée",canceled:"Action annulée",logged_out:"Votre session a pris fin, veuillez vous reconnecter.",not_authorized:"Vous n'êtes pas autorisé(e) à accéder à cette ressource.",application_update_available:"Une mise à jour est disponible."},validation:{required:"Ce champ est requis",minLength:"Minimum %{min} caractères",maxLength:"Maximum %{max} caractères",minValue:"Minimum %{min}",maxValue:"Maximum %{max}",number:"Doit être un nombre",email:"Doit être un email",oneOf:"Doit être au choix: %{options}",regex:"Doit respecter un format spécifique (regexp): %{pattern}",unique:"Doit être unique"},saved_queries:{label:"Mes requêtes",query_name:"Nom de la requête",new_label:"Ajouter à mes requêtes...",new_dialog_title:"Ajouter la requête en cours à mes requêtes",remove_label:"Retirer de mes requêtes",remove_label_with_name:'Retirer "%{name}" des mes requêtes',remove_dialog_title:"Effacer de mes requêtes ?",remove_message:"Etes-vous sûr(e) de vouloir supprimer cette requête de votre liste de requêtes ?",help:"Filtrez la liste et ajoutez cette requête à votre liste"},configurable:{customize:"Personnaliser",configureMode:"Configurer cette page",inspector:{title:"Inspecteur",content:"Sélectionner un composant pour le configurer",reset:"Réinitialiser",hideAll:"Masquer tout",showAll:"Afficher tout"},Datagrid:{title:"Tableau",unlabeled:"Colonne #%{column}"},SimpleForm:{title:"Formulaire",unlabeled:"Champ #%{input}"},SimpleList:{title:"Liste",primaryText:"Texte principal",secondaryText:"Texte secondaire",tertiaryText:"Texte annexe"}}}};const u9e={...l9e,synapseadmin:{auth:{base_url:"URL du serveur d’accueil",welcome:"Bienvenue sur Synapse-admin",server_version:"Version du serveur Synapse",username_error:"Veuillez entrer un nom d'utilisateur complet : « @utilisateur:domaine »",protocol_error:"L'URL doit commencer par « http:// » ou « https:// »",url_error:"L'URL du serveur Matrix n'est pas valide",sso_sign_in:"Se connecter avec l’authentification unique"},users:{invalid_user_id:"Partie locale d'un identifiant utilisateur Matrix sans le nom du serveur d’accueil.",tabs:{sso:"Authentification unique"}},rooms:{tabs:{basic:"Informations de base",members:"Membres",detail:"Détails",permission:"Permissions"}},reports:{tabs:{basic:"Informations de base",detail:"Détails"}}},import_users:{error:{at_entry:"Pour l'entrée %{entry} : %{message}",error:"Erreur",required_field:"Le champ requis « %{field} » est manquant",invalid_value:"Valeur non valide à la ligne %{row}. Le champ « %{field} » ne peut être que « true » ou « false »",unreasonably_big:"Refus de charger un fichier trop volumineux de %{size} mégaoctets",already_in_progress:"Un import est déjà en cours",id_exits:"L'identifiant %{id} déjà présent"},title:"Importer des utilisateurs à partir d'un fichier CSV",goToPdf:"Voir le PDF",cards:{importstats:{header:"Importer des utilisateurs",users_total:"%{smart_count} utilisateur dans le fichier CSV |||| %{smart_count} utilisateurs dans le fichier CSV",guest_count:"%{smart_count} visiteur |||| %{smart_count} visiteurs",admin_count:"%{smart_count} administrateur |||| %{smart_count} administrateurs"},conflicts:{header:"Stratégie de résolution des conflits",mode:{stop:"S'arrêter en cas de conflit",skip:"Afficher l'erreur et ignorer le conflit"}},ids:{header:"Identifiants",all_ids_present:"Identifiants présents pour chaque entrée",count_ids_present:"%{smart_count} entrée avec identifiant |||| %{smart_count} entrées avec identifiant",mode:{ignore:"Ignorer les identifiants dans le ficher CSV et en créer de nouveaux",update:"Mettre à jour les enregistrements existants"}},passwords:{header:"Mots de passe",all_passwords_present:"Mots de passe présents pour chaque entrée",count_passwords_present:"%{smart_count} entrée avec mot de passe |||| %{smart_count} entrées avec mot de passe",use_passwords:"Utiliser les mots de passe provenant du fichier CSV"},upload:{header:"Fichier CSV en entrée",explanation:"Vous pouvez télécharger ici un fichier contenant des valeurs séparées par des virgules qui sera traité pour créer ou mettre à jour des utilisateurs. Le fichier doit inclure les champs « id » et « displayname ». Vous pouvez télécharger et adapter un fichier d'exemple ici : "},startImport:{simulate_only:"Simuler",run_import:"Importer"},results:{header:"Résultats de l'import",total:"%{smart_count} entrée au total |||| %{smart_count} entrées au total",successful:"%{smart_count} entrées importées avec succès",skipped:"%{smart_count} entrées ignorées",download_skipped:"Télécharger les entrées ignorées",with_error:"%{smart_count} entrée avec des erreurs ||| %{smart_count} entrées avec des erreurs",simulated_only:"L'import était simulé"}}},delete_media:{name:"Media",fields:{before_ts:"Dernier accès avant",size_gt:"Plus grand que (en octets)",keep_profiles:"Conserver les images de profil"},action:{send:"Supprimer le média",send_success:"Requête envoyée avec succès",send_failure:"Une erreur s'est produite"},helper:{send:"Cette API supprime les médias locaux du disque de votre propre serveur. Cela inclut toutes les vignettes locales et les copies des médias téléchargés. Cette API n'affectera pas les médias qui ont été téléversés dans des dépôts de médias externes."}},resources:{users:{name:"Utilisateur |||| Utilisateurs",email:"Adresse électronique",msisdn:"Numéro de téléphone",threepid:"Adresse électronique / Numéro de téléphone",fields:{avatar:"Avatar",id:"Identifiant",name:"Nom",is_guest:"Visiteur",admin:"Administrateur du serveur",locked:"Verrouillé",deactivated:"Désactivé",guests:"Afficher les visiteurs",show_deactivated:"Afficher les utilisateurs désactivés",user_id:"Rechercher un utilisateur",displayname:"Nom d'affichage",password:"Mot de passe",avatar_url:"URL de l'avatar",avatar_src:"Avatar",medium:"Type",threepids:"Identifiants tiers",address:"Adresse",creation_ts_ms:"Date de création",consent_version:"Version du consentement",auth_provider:"Fournisseur d'identité"},helper:{deactivate:"Vous devrez fournir un mot de passe pour réactiver le compte.",erase:"Marquer l'utilisateur comme effacé conformément au RGPD"},action:{erase:"Effacer les données de l'utilisateur"}},rooms:{name:"Salon |||| Salons",fields:{room_id:"Identifiant du salon",name:"Nom",canonical_alias:"Alias",joined_members:"Membres",joined_local_members:"Membres locaux",joined_local_devices:"Appareils locaux",state_events:"Événements d'État / Complexité",version:"Version",is_encrypted:"Chiffré",encryption:"Chiffrement",federatable:"Fédérable",public:"Visible dans le répertoire des salons",creator:"Créateur",join_rules:"Règles d'adhésion",guest_access:"Accès des visiteurs",history_visibility:"Visibilité de l'historique",topic:"Sujet",avatar:"Avatar"},helper:{forward_extremities:"Les extrémités avant sont les événements feuilles à la fin d'un graphe orienté acyclique (DAG) dans un salon, c'est-à-dire les événements qui n'ont pas de descendants. Plus il y en a dans un salon, plus la résolution d'état que Synapse doit effectuer est importante (indice : c'est une opération coûteuse). Bien que Synapse dispose d'un algorithme pour éviter qu'un trop grand nombre de ces événements n'existent en même temps dans un salon, des bogues peuvent parfois les faire réapparaître. Si un salon présente plus de 10 extrémités avant, cela vaut la peine d'y prêter attention et éventuellement de les supprimer en utilisant les requêtes SQL mentionnées dans la discussion traitant du problème https://github.com/matrix-org/synapse/issues/1760."},enums:{join_rules:{public:"Public",knock:"Sur demande",invite:"Sur invitation",private:"Privé"},guest_access:{can_join:"Les visiteurs peuvent rejoindre le salon",forbidden:"Les visiteurs ne peuvent pas rejoindre le salon"},history_visibility:{invited:"Depuis l'invitation",joined:"Depuis l'adhésion",shared:"Depuis le partage",world_readable:"Tout le monde"},unencrypted:"Non chiffré"},action:{erase:{title:"Supprimer le salon",content:"Voulez-vous vraiment supprimer le salon ? Cette opération ne peut être annulée. Tous les messages et médias partagés du salon seront supprimés du serveur !"}}},reports:{name:"Événement signalé |||| Événements signalés",fields:{id:"Identifiant",received_ts:"Date du rapport",user_id:"Rapporteur",name:"Nom du salon",score:"Score",reason:"Motif",event_id:"Identifiant de l'événement",event_json:{origin:"Serveur d'origine",origin_server_ts:"Date d'envoi",type:"Type d'événement",content:{msgtype:"Type de contenu",body:"Contenu",format:"Format",formatted_body:"Contenu mis en forme",algorithm:"Algorithme"}}}},connections:{name:"Connexions",fields:{last_seen:"Date",ip:"Adresse IP",user_agent:"Agent utilisateur"}},devices:{name:"Appareil |||| Appareils",fields:{device_id:"Identifiant de l'appareil",display_name:"Nom de l'appareil",last_seen_ts:"Date",last_seen_ip:"Adresse IP"},action:{erase:{title:"Suppression de %{id}",content:"Voulez-vous vraiment supprimer l'appareil « %{name} » ?",success:"Appareil supprimé avec succès",failure:"Une erreur s'est produite"}}},users_media:{name:"Media",fields:{media_id:"Identifiant du média",media_length:"Taille du fichier (en octets)",media_type:"Type",upload_name:"Nom du fichier",quarantined_by:"Mis en quarantaine par",safe_from_quarantine:"Protection contre la mise en quarantaine",created_ts:"Date de création",last_access_ts:"Dernier accès"}},protect_media:{action:{create:"Protéger",delete:"Révoquer la protection",none:"En quarantaine",send_success:"Le statut de protection a été modifié avec succès",send_failure:"Une erreur s'est produite"}},quarantine_media:{action:{name:"Quarantaine",create:"Mettre en quarantaine",delete:"Révoquer la mise en quarantaine",none:"Protégé contre la mise en quarantaine",send_success:"Le statut de la quarantaine a été modifié avec succès",send_failure:"Une erreur s'est produite"}},pushers:{name:"Émetteur de notifications |||| Émetteurs de notifications",fields:{app:"Application",app_display_name:"Nom d'affichage de l'application",app_id:"Identifiant de l'application",device_display_name:"Nom d'affichage de l'appareil",kind:"Type",lang:"Langue",profile_tag:"Profil",pushkey:"Identifiant de l'émetteur",data:{url:"URL"}}},servernotices:{name:"Annonces du serveur",send:"Envoyer des « Annonces du serveur »",fields:{body:"Message"},action:{send:"Envoyer une annonce",send_success:"Annonce envoyée avec succès",send_failure:"Une erreur s'est produite"},helper:{send:"Envoie une annonce au nom du serveur aux utilisateurs sélectionnés. La fonction « Annonces du serveur » doit être activée sur le serveur."}},user_media_statistics:{name:"Médias des utilisateurs",fields:{media_count:"Nombre de médias",media_length:"Taille des médias"}},forward_extremities:{name:"Extrémités avant",fields:{id:"Identifiant de l'événement",received_ts:"Date de réception",depth:"Profondeur",state_group:"Groupe d'état"}},room_state:{name:"Événements d'état",fields:{type:"Type",content:"Contenu",origin_server_ts:"Date d'envoi",sender:"Expéditeur"}},room_directory:{name:"Répertoire des salons",fields:{world_readable:"Tout utilisateur peut avoir un aperçu du salon, sans en devenir membre",guest_can_join:"Les visiteurs peuvent rejoindre le salon"},action:{title:"Supprimer un salon du répertoire |||| Supprimer %{smart_count} salons du répertoire",content:"Voulez-vous vraiment supprimer ce salon du répertoire ? |||| Voulez-vous vraiment supprimer ces %{smart_count} salons du répertoire ?",erase:"Supprimer du répertoire des salons",create:"Publier dans le répertoire des salons",send_success:"Salon publié avec succès",send_failure:"Une erreur s'est produite"}},registration_tokens:{name:"Jetons d'inscription",fields:{token:"Jeton",valid:"Jeton valide",uses_allowed:"Nombre d'inscription autorisées",pending:"Nombre d'inscription en cours",completed:"Nombre d'inscription accomplie",expiry_time:"Date d'expiration",length:"Longueur"},helper:{length:"Longueur du jeton généré aléatoirement si aucun jeton n'est pas spécifié"}}}};var c9e={ra:{action:{add_filter:"Aggiungi un filtro",add:"Aggiungi",back:"Indietro",bulk_actions:"%{smart_count} selezionati",cancel:"Annulla",clear_input_value:"Svuota il modulo",clone:"Duplica",confirm:"Conferma",create:"Crea",delete:"Cancella",edit:"Modifica",export:"Esporta",list:"Elenco",refresh:"Aggiorna",remove_filter:"Rimuovi questo filtro",remove:"Rimuovi",save:"Salva",search:"Ricerca",show:"Mostra",sort:"Ordina",undo:"Annulla",unselect:"Annulla selezione",expand:"Espandi",close:"Chiudi",open_menu:"Apri il menu",close_menu:"Chiudi il menu"},boolean:{true:"Si",false:"No",null:" "},page:{create:"Aggiungi %{name}",dashboard:"Cruscotto",edit:"%{name} %{id}",error:"Qualcosa non ha funzionato",list:"%{name}",loading:"Caricamento in corso",not_found:"Non trovato",show:"%{name} %{id}",empty:"Nessun %{name} ancora.",invite:"Vuoi aggiungerne uno?"},input:{file:{upload_several:"Trascina i files da caricare, oppure clicca per selezionare.",upload_single:"Trascina il file da caricare, oppure clicca per selezionarlo."},image:{upload_several:"Trascina le immagini da caricare, oppure clicca per selezionarle.",upload_single:"Trascina l'immagine da caricare, oppure clicca per selezionarla."},references:{all_missing:"Impossibile trovare i riferimenti associati.",many_missing:"Almeno uno dei riferimenti associati non sembra più disponibile.",single_missing:"Il riferimento associato non sembra più disponibile."}},password:{toggle_visible:"Nascondi la password",toggle_hidden:"Mostra la password"},message:{about:"Informazioni",are_you_sure:"Sei sicuro ?",bulk_delete_content:"Sei sicuro di voler cancellare questo %{name}? |||| Sei sicuro di voler eliminare questi %{smart_count}?",bulk_delete_title:"Delete %{name} |||| Delete %{smart_count} %{name} items",delete_content:"Are you sure you want to delete this item?",delete_title:"Cancella %{name} #%{id}",details:"Dettagli",error:"Un errore locale è occorso e la tua richiesta non è stata completata.",invalid_form:"Il modulo non è valido. Si prega di verificare la presenza di errori.",loading:"La pagina si sta caricando, solo un momento per favore",no:"No",not_found:"Hai inserito un URL errato, oppure hai cliccato un link errato",yes:"Si",unsaved_changes:"Alcune modifiche non sono state salvate. Sei sicuro di volerle ignorare?"},navigation:{no_results:"Nessun risultato trovato",no_more_results:"La pagina numero %{page} è fuori dell'intervallo. Prova la pagina precedente.",page_out_of_boundaries:"Il numero di pagina %{page} è fuori dei limiti",page_out_from_end:"Fine della paginazione",page_out_from_begin:"Il numero di pagina deve essere maggiore di 1",page_range_info:"%{offsetBegin}-%{offsetEnd} di %{total}",page_rows_per_page:"Righe per pagina",next:"Successivo",prev:"Precedente",skip_nav:"Vai al contenuto"},sort:{sort_by:"Ordina per %{field} %{order}",ASC:"cresente",DESC:"decrescente"},auth:{auth_check_error:"È necessario accedere per continuare",user_menu:"Profilo",username:"Nome utente",password:"Password",sign_in:"Login",sign_in_error:"Autenticazione fallita, riprovare.",logout:"Disconnessione"},notification:{updated:"Record aggiornato |||| %{smart_count} records aggiornati",created:"Record creato",deleted:"Record eliminato |||| %{smart_count} records eliminati",bad_item:"Record errato",item_doesnt_exist:"Record inesistente",http_error:"Errore di comunicazione con il server dati",data_provider_error:"Errore del data provider. Controlla la console per i dettagli.",i18n_error:"Traduzioni non trovate per il linguaggio specificato",canceled:"Azione annullata",logged_out:"La sessione è stata terminata, si prega di ripetere l'autenticazione."},validation:{required:"Campo obbligatorio",minLength:"Deve essere lungo %{min} caratteri almeno",maxLength:"Deve essere lungo %{max} caratteri al massimo",minValue:"Deve essere almeno %{min}",maxValue:"Deve essere al massimo %{max}",number:"Deve essere un numero",email:"Deve essere un valido indirizzo email",oneOf:"Deve essere uno di: %{options}",regex:"Deve rispettare il formato (espressione regolare): %{pattern}"}}};const d9e=gr(c9e),f9e={...d9e,synapseadmin:{auth:{base_url:"URL dell'homeserver",welcome:"Benvenuto in Synapse-admin",server_version:"Versione di Synapse",username_error:"Per favore inserisci un ID utente completo: '@utente:dominio'",protocol_error:"L'URL deve iniziare per 'http://' o 'https://'",url_error:"URL del server Matrix non valido",sso_sign_in:"Accedi con SSO"},users:{invalid_user_id:"ID utente non valido su questo homeserver.",tabs:{sso:"SSO"}},rooms:{tabs:{basic:"Semplice",members:"Membro",detail:"Dettagli",permission:"Permessi"}},reports:{tabs:{basic:"Semplice",detail:"Dettagli"}}},import_users:{error:{at_entry:"Alla voce %{entry}: %{message}",error:"Errore",required_field:"Il campo '%{field}' non è presente",invalid_value:"Valore non valido alla riga %{row}. '%{field}' Il campo può essere solo 'true' o 'false'",unreasonably_big:"Impossibile caricare un file così grosso (%{size} megabyte)",already_in_progress:"Un import è attualmente già in caricamento",id_exits:"L'ID %{id} è già presente"},title:"Importa utenti tramite file CSV",goToPdf:"Vai al PDF",cards:{importstats:{header:"Importa utenti",users_total:"%{smart_count} utente nel file CSV |||| %{smart_count} utenti nel file CSV",guest_count:"%{smart_count} ospite |||| %{smart_count} ospiti",admin_count:"%{smart_count} amministratore |||| %{smart_count} amministratori"},conflicts:{header:"Strategia di conflitto",mode:{stop:"Stoppa al conflitto",skip:"Mostra l'errore e ignora il conflitto"}},ids:{header:"ID",all_ids_present:"ID presenti in ogni voce",count_ids_present:"%{smart_count} voce con ID |||| %{smart_count} voci con ID",mode:{ignore:"Ignora gli ID nel file CSV e creane di nuovi",update:"Aggiorna le voci esistenti"}},passwords:{header:"Passwords",all_passwords_present:"Password presenti in ogni voce",count_passwords_present:"%{smart_count} voce con password |||| %{smart_count} voci con password",use_passwords:"Usa le password dal file CSV"},upload:{header:"Input file CSV",explanation:"Qui puoi caricare un file con valori separati da virgole che verrà poi utilizzato per creare o aggiornare gli utenti. Il file deve includere i campi 'id' and 'displayname'. Puoi scaricare un file di esempio per adattarlo: "},startImport:{simulate_only:"Solo simulazione",run_import:"Importa"},results:{header:"Importa i risultati",total:"%{smart_count} voce in totale |||| %{smart_count} voci in totale",successful:"%{smart_count} voci importate con successo",skipped:"%{smart_count} voci ignorate",download_skipped:"Scarica le voci ignorate",with_error:"%{smart_count} voce con errori ||| %{smart_count} voci con errori",simulated_only:"Il processo era stato solamente simulato"}}},delete_media:{name:"Media",fields:{before_ts:"ultimo accesso effettuato prima",size_gt:"Più grande di (in byte)",keep_profiles:"Mantieni le immagini del profilo"},action:{send:"Cancella media",send_success:"Richiesta inviata con successo.",send_failure:"C'è stato un errore."},helper:{send:"Questa API cancella i media locali dal disco del tuo server. Questo include anche ogni miniatura e copia del media scaricato. Questa API non inciderà sui media che sono stati caricati nei repository esterni."}},resources:{users:{name:"Utente |||| Utenti",email:"Email",msisdn:"Telefono",threepid:"Email / Telefono",fields:{avatar:"Avatar",id:"ID utente",name:"Nome",is_guest:"Ospite",admin:"Amministratore",locked:"Bloccato",deactivated:"Disattivato",guests:"Mostra gli ospiti",show_deactivated:"Mostra gli utenti disattivati",user_id:"Cerca utente",displayname:"Nickname",password:"Password",avatar_url:"URL dell'avatar",avatar_src:"Avatar",medium:"Medium",threepids:"3PID",address:"Indirizzo",creation_ts_ms:"Creazione del timestamp",consent_version:"Versione minima richiesta",auth_provider:"Provider",user_type:"Tipo d'utente"},helper:{password:"Cambiando la password l'utente verrà disconnesso da tutte le sessioni attive.",deactivate:"Devi fornire una password per riattivare l'account.",erase:"Constrassegna l'utente come cancellato dal GDPR"},action:{erase:"Cancella i dati dell'utente"}},rooms:{name:"Stanza |||| Stanze",fields:{room_id:"ID della stanza",name:"Nome",canonical_alias:"Alias",joined_members:"Membri",joined_local_members:"Membri locali",joined_local_devices:"Dispositivi locali",state_events:"Eventi di stato / Complessità",version:"Versione",is_encrypted:"Criptato",encryption:"Crittografia",federatable:"Federabile",public:"Visibile nella cartella della stanza",creator:"Creatore",join_rules:"Regole per entrare",guest_access:"Entra come ospite",history_visibility:"Visibilità temporale",topic:"Topic",avatar:"Avatar"},helper:{},enums:{join_rules:{public:"Pubblica",knock:"Bussa",invite:"Invita",private:"Privata"},guest_access:{can_join:"Gli utenti ospiti possono entrare",forbidden:"Gli utenti ospiti non possono entrare"},history_visibility:{invited:"Dall'invito",joined:"Dall'entrata",shared:"Dalla condivisione",world_readable:"Chiunque"},unencrypted:"Non criptata"},action:{erase:{title:"Cancella stanza",content:"Sei sicuro di voler eliminare questa stanza? Questa azione è definitiva. Tutti i messaggi e i media condivisi in questa stanza verranno eliminati dal server!"}}},reports:{name:"Evento segnalato |||| Eventi segnalati",fields:{id:"ID",received_ts:"Orario del report",user_id:"richiedente",name:"nome della stanza",score:"punteggio",reason:"ragione",event_id:"ID dell'evento",event_json:{origin:"server di origine",origin_server_ts:"ora dell'invio",type:"tipo di evento",content:{msgtype:"tipo di contenuto",body:"contenuto",format:"formato",formatted_body:"contenuto formattato",algorithm:"algoritmo"}}}},connections:{name:"Connessioni",fields:{last_seen:"Data",ip:"Indirizzo IP",user_agent:"agente utente"}},devices:{name:"Dispositivo |||| Dispositivi",fields:{device_id:"ID del dispositivo",display_name:"Nome del dispositivo",last_seen_ts:"Timestamp",last_seen_ip:"Indirizzo IP"},action:{erase:{title:"Rimozione del dispositivo %{id}",content:'Sei sicuro di voler rimuovere il dispositivo "%{name}"?',success:"Dispositivo rimosso con successo.",failure:"C'è stato un errore."}}},users_media:{name:"Media",fields:{media_id:"ID del media",media_length:"Peso del file (in Byte)",media_type:"Tipo",upload_name:"Nome del file",quarantined_by:"In quarantena da",safe_from_quarantine:"Protetto dalla quarantena",created_ts:"Creato",last_access_ts:"Ultimo accesso"}},protect_media:{action:{create:"Non protetto, proteggi",delete:"Protetto, rimuovi protezione",none:"In quarantena",send_success:"Stato della protezione cambiato con successo.",send_failure:"C'è stato un errore."}},quarantine_media:{action:{name:"Quarantina",create:"Aggiungi alla quarantena",delete:"In quarantena, rimuovi dalla quarantena",none:"Protetto dalla quarantena",send_success:"Stato della quarantena cambiato con successo.",send_failure:"C'è stato un errore."}},pushers:{name:"Pusher |||| Pusher",fields:{app:"App",app_display_name:"Nome dell'app",app_id:"ID dell'app",device_display_name:"Nome del dispositivo",kind:"Tipo",lang:"Lingua",profile_tag:"Tag del profilo",pushkey:"Pushkey",data:{url:"URL"}}},servernotices:{name:"Avvisi del server",send:"Invia avvisi",fields:{body:"Messaggio"},action:{send:"Invia nota",send_success:"Avviso inviato con successo.",send_failure:"C'è stato un errore."},helper:{send:'Invia un avviso dal server agli utenti selezionati. La feature "Avvisi del server" è stata attivata sul server.'}},user_media_statistics:{name:"Media degli utenti",fields:{media_count:"Numero media",media_length:"Lunghezza media"}},forward_extremities:{name:"Invia estremità",fields:{id:"Event ID",received_ts:"Timestamp",depth:"Profondità",state_group:"State group"}},room_state:{name:"Eventi di stato",fields:{type:"Tipo",content:"Contenuto",origin_server_ts:"Ora dell'invio",sender:"Mittente"}},room_directory:{name:"Elenco delle stanze",fields:{world_readable:"gli utenti ospite possono vedere senza entrare",guest_can_join:"gli utenti ospite possono entrare"},action:{title:"Cancella stanza dall'elenco |||| Cancella %{smart_count} stanze dall'elenco",content:"Sei sicuro di voler rimuovere questa stanza dall'elenco? |||| Sei sicuro di voler rimuovere %{smart_count} stanze dall'elenco?",erase:"Rimuovi dall'elenco",create:"Crea",send_success:"Stanza creata con successo.",send_failure:"C'è stato un errore."}},destinations:{name:"Federazione",fields:{destination:"Destinazione",failure_ts:"Timestamp dell'errore",retry_last_ts:"Tentativo ultimo timestamp",retry_interval:"Intervallo dei tentativi",last_successful_stream_ordering:"Ultimo flusso riuscito con successo",stream_ordering:"Flusso"},action:{reconnect:"Riconnetti"}},registration_tokens:{name:"Token di registrazione",fields:{token:"Token",valid:"Token valido",uses_allowed:"Usi permessi",pending:"In attesa",completed:"Completato",expiry_time:"Data della scadenza",length:"Lunghezza"},helper:{length:"Lunghezza del token se non viene dato alcun token."}}}},p9e={ra:{action:{add_filter:"Добавить фильтр",add:"Добавить",back:"Назад",bulk_actions:"1 выбран |||| %{smart_count} выбрано |||| %{smart_count} выбрано",cancel:"Отмена",clear_array_input:"Очистить список",clear_input_value:"Очистить",clone:"Дублировать",confirm:"Подтвердить",create:"Создать",create_item:"Создать %{item}",delete:"Удалить",edit:"Редактировать",export:"Экспорт",list:"Список",refresh:"Обновить",remove_filter:"Убрать фильтр",remove_all_filters:"Убрать все фильтры",remove:"Удалить",save:"Сохранить",search:"Поиск",select_all:"Выбрать все",select_row:"Выбрать эту запись",show:"Просмотр",sort:"Сортировка",undo:"Отменить",unselect:"Не выбрано",expand:"Раскрыть",close:"Закрыть",open_menu:"Открыть меню",close_menu:"Закрыть меню",update:"Обновить",move_up:"Переместить вверх",move_down:"Переместить вниз",open:"Открыть",toggle_theme:"Переключить тему",select_columns:"Столбцы",update_application:"Обновить приложение"},boolean:{true:"Да",false:"Нет",null:" "},page:{create:"Создать %{name}",dashboard:"Главная",edit:"%{name} %{recordRepresentation}",error:"Что-то пошло не так",list:"%{name}",loading:"Загрузка",not_found:"Не найдено",show:"%{name} %{recordRepresentation}",empty:"Нет %{name}.",invite:"Вы хотите добавить еще одну?"},input:{file:{upload_several:"Перетащите файлы сюда или нажмите для выбора.",upload_single:"Перетащите файл сюда или нажмите для выбора."},image:{upload_several:"Перетащите изображения сюда или нажмите для выбора.",upload_single:"Перетащите изображение сюда или нажмите для выбора."},references:{all_missing:"Связанных данных не найдено",many_missing:"Некоторые из связанных данных недоступны",single_missing:"Связанный объект недоступен"},password:{toggle_visible:"Скрыть пароль",toggle_hidden:"Показать пароль"}},message:{about:"Справка",are_you_sure:"Вы уверены?",auth_error:"Произошла ошибка при валидации токена аутентификации",bulk_delete_content:"Вы уверены, что хотите удалить %{name}? |||| Вы уверены, что хотите удалить %{smart_count} объектов? |||| Вы уверены, что хотите удалить %{smart_count} объектов?",bulk_delete_title:"Удалить %{name} |||| Удалить %{smart_count} %{name} |||| Удалить %{smart_count} %{name}",bulk_update_content:"Вы уверены, что хотите обновить %{name}? |||| Вы уверены, что хотите обновить %{smart_count} объектов?",bulk_update_title:"Обновить %{name} |||| Обновить %{smart_count} %{name}",clear_array_input:"Вы уверены, что хотите очистить весь список?",delete_content:"Вы уверены что хотите удалить этот объект",delete_title:"Удалить %{name} #%{id}",details:"Описание",error:"В процессе запроса возникла ошибка, и он не может быть завершен",invalid_form:"Форма заполнена неверно, проверьте, пожалуйста, ошибки",loading:"Идет загрузка, пожалуйста, подождите...",no:"Нет",not_found:"Ошибка URL или вы следуете по неверной ссылке",yes:"Да",unsaved_changes:"Некоторые из ваших изменений не были сохранены. Вы уверены, что хотите их игнорировать?"},navigation:{no_results:"Результатов не найдено",no_more_results:"Страница %{page} выходит за пределы нумерации, попробуйте предыдущую",page_out_of_boundaries:"Страница %{page} вне границ",page_out_from_end:"Невозможно переместиться дальше последней страницы",page_out_from_begin:"Номер страницы не может быть меньше 1",page_range_info:"%{offsetBegin}-%{offsetEnd} из %{total}",partial_page_range_info:"%{offsetBegin}-%{offsetEnd} из более %{offsetEnd}",current_page:"Страница %{page}",page:"На %{page} страницу",first:"На первую страницу",last:"На последнюю страницу",next:"Следующая",prev:"Предыдущая",previous:"Предыдущая",page_rows_per_page:"Строк на странице:",skip_nav:"Перейти к содержанию"},sort:{sort_by:"Сортировать по %{field} %{order}",ASC:"возрастанию",DESC:"убыванию"},auth:{auth_check_error:"Пожалуйста, авторизуйтесь для продолжения работы",user_menu:"Профиль",username:"Имя пользователя",password:"Пароль",sign_in:"Войти",sign_in_error:"Ошибка аутентификации, попробуйте снова",logout:"Выйти"},notification:{updated:"Элемент обновлен |||| %{smart_count} обновлено |||| %{smart_count} обновлено",created:"Элемент создан",deleted:"Элемент удален |||| %{smart_count} удалено |||| %{smart_count} удалено",bad_item:"Элемент не валиден",item_doesnt_exist:"Элемент не существует",http_error:"Ошибка сервера",data_provider_error:"Ошибка dataProvider, проверьте консоль",i18n_error:"Не удалось загрузить перевод для указанного языка",canceled:"Операция отменена",logged_out:"Ваша сессия завершена, попробуйте переподключиться/войти снова",not_authorized:"У вас нет доступа к этому ресурсу",application_update_available:"Имеется новая версия приложения."},validation:{required:"Обязательно для заполнения",minLength:"Минимальное кол-во символов %{min}",maxLength:"Максимальное кол-во символов %{max}",minValue:"Минимальное значение %{min}",maxValue:"Значение может быть %{max} или меньше",number:"Должно быть цифрой",email:"Некорректный email",oneOf:"Должно быть одним из: %{options}",regex:"Должно быть в формате (regexp): %{pattern}",unique:"Must be unique"},saved_queries:{label:"Сохраненные запросы",query_name:"Имя запроса",new_label:"Сохранить текущий запрос...",new_dialog_title:"Сохранить текущий запрос как",remove_label:"Удалить сохраненный запрос",remove_label_with_name:'Удалить запрос "%{name}"',remove_dialog_title:"Удалить сохраненный запрос?",remove_message:"Вы уверены, что хотите удалить этот запрос из списка сохраненных запросов?",help:"Отфильтровать список и сохранить запрос на будущее"},configurable:{customize:"Настроить",configureMode:"Настроить эту страницу",inspector:{title:"Инспектор",content:"Наведите на UI-элементы приложения, чтобы настроить",reset:"Сбросить настройки",hideAll:"Скрыть все",showAll:"Показать все"},Datagrid:{title:"Таблица данных",unlabeled:"Безымянный столбец #%{column}"},SimpleForm:{title:"Форма",unlabeled:"Безымянное поле ввода #%{input}"},SimpleList:{title:"Список",primaryText:"Первичный текст",secondaryText:"Вторичный текст",tertiaryText:"Третичный текст"}}}},v9e={...p9e,synapseadmin:{auth:{base_url:"Адрес домашнего сервера",welcome:"Добро пожаловать в Synapse-admin",server_version:"Версия Synapse",supports_specs:"поддерживает спецификации Matrix",username_error:"Пожалуйста, укажите полный ID пользователя: '@user:domain'",protocol_error:"Адрес должен начинаться с 'http://' или 'https://'",url_error:"Неверный адрес сервера Matrix",sso_sign_in:"Вход через SSO"},users:{invalid_user_id:"Локальная часть ID пользователя Matrix без адреса домашнего сервера.",tabs:{sso:"SSO"}},rooms:{details:"Данные комнаты",tabs:{basic:"Основные",members:"Участники",detail:"Подробности",permission:"Права доступа"}},reports:{tabs:{basic:"Основные",detail:"Подробности"}}},import_users:{error:{at_entry:"В записи %{entry}: %{message}",error:"Ошибка",required_field:"Отсутствует обязательное поле '%{field}'",invalid_value:"Неверное значение в строке %{row}. Поле '%{field}' может быть либо 'true', либо 'false'",unreasonably_big:"Отказано в загрузке слишком большого файла размером %{size} мегабайт",already_in_progress:"Импорт уже в процессе",id_exits:"ID %{id} уже существует"},title:"Импорт пользователей из CSV",goToPdf:"Перейти к PDF",cards:{importstats:{header:"Импорт пользователей",users_total:"%{smart_count} пользователь в CSV файле |||| %{smart_count} пользователя в CSV файле |||| %{smart_count} пользователей в CSV файле",guest_count:"%{smart_count} гость |||| %{smart_count} гостя |||| %{smart_count} гостей",admin_count:"%{smart_count} администратор |||| %{smart_count} администратора |||| %{smart_count} администраторов"},conflicts:{header:"Стратегия разрешения конфликтов",mode:{stop:"Остановка при конфликте",skip:"Показать ошибку и пропустить при конфликте"}},ids:{header:"Идентификаторы",all_ids_present:"Идентификаторы присутствуют в каждой записи",count_ids_present:"%{smart_count} запись с ID |||| %{smart_count} записи с ID |||| %{smart_count} записей с ID",mode:{ignore:"Игнорировать идентификаторы в CSV и создать новые",update:"Обновить существующие записи"}},passwords:{header:"Пароли",all_passwords_present:"Пароли присутствуют в каждой записи",count_passwords_present:"%{smart_count} запись с паролем |||| %{smart_count} записи с паролями |||| %{smart_count} записей с паролями",use_passwords:"Использовать пароли из CSV"},upload:{header:"Загрузить CSV файл",explanation:"Здесь вы можете загрузить файл со значениями, разделёнными запятыми, которые будут использованы для создания или обновления данных пользователей. В файле должны быть поля 'id' и 'displayname'. Вы можете скачать и изменить файл-образец отсюда: "},startImport:{simulate_only:"Только симулировать",run_import:"Импорт"},results:{header:"Результаты импорта",total:"%{smart_count} запись всего |||| %{smart_count} записи всего |||| %{smart_count} записей всего",successful:"%{smart_count} запись успешно импортирована |||| %{smart_count} записи успешно импортированы |||| %{smart_count} записей успешно импортированы",skipped:"%{smart_count} запись пропущена |||| %{smart_count} записи пропущены |||| %{smart_count} записей пропущено",download_skipped:"Скачать пропущенные записи",with_error:"%{smart_count} запись с ошибкой |||| %{smart_count} записи с ошибками |||| %{smart_count} записей с ошибками",simulated_only:"Импорт был симулирован"}}},delete_media:{name:"Файлы",fields:{before_ts:"Последнее обращение до",size_gt:"Более чем (в байтах)",keep_profiles:"Сохранить аватары"},action:{send:"Удалить файлы",send_success:"Запрос успешно отправлен.",send_failure:"Произошла ошибка."},helper:{send:"Это API удаляет локальные файлы с вашего собственного сервера, включая локальные миниатюры и копии скачанных файлов. Данный API не затрагивает файлы, загруженные во внешние хранилища."}},resources:{users:{name:"Пользователь |||| Пользователи",email:"Почта",msisdn:"Телефон",threepid:"Почта / Телефон",fields:{avatar:"Аватар",id:"ID пользователя",name:"Имя",is_guest:"Гость",admin:"Администратор сервера",locked:"Заблокирован",deactivated:"Деактивирован",erased:"Удалён",guests:"Показывать гостей",show_deactivated:"Показывать деактивированных",user_id:"Поиск пользователя",displayname:"Отображаемое имя",password:"Пароль",avatar_url:"Адрес аватары",avatar_src:"Аватар",medium:"Тип",threepids:"3PID'ы",address:"Адрес",creation_ts_ms:"Дата создания",consent_version:"Версия соглашения",auth_provider:"Провайдер",user_type:"Тип пользователя"},helper:{password:"Смена пароля завершит все сессии пользователя.",deactivate:"Вы должны предоставить пароль для реактивации учётной записи.",erase:"Пометить пользователя как удалённого в соответствии с GDPR"},action:{erase:"Удалить данные пользователя"}},rooms:{name:"Комната |||| Комнаты",fields:{room_id:"ID комнаты",name:"Название",canonical_alias:"Псевдоним",joined_members:"Участники",joined_local_members:"Локальные участники",joined_local_devices:"Локальные устройства",state_events:"События состояния / Сложность",version:"Версия",is_encrypted:"Зашифровано",encryption:"Шифрование",federatable:"Федерация",public:"Отображается в каталоге комнат",creator:"Создатель",join_rules:"Правила входа",guest_access:"Гостевой доступ",history_visibility:"Видимость истории",topic:"Тема",avatar:"Аватар"},helper:{forward_extremities:"Оконечности — это события-листья в конце ориентированного ациклического графа (DAG) в комнате, т.е. события без дочерних элементов. Чем больше их в комнате, тем больше Synapse работает над разрешением состояния (это дорогостоящая операция). Хотя Synapse старается не допускать существования слишком большого числа таких событий в комнате, из-за ошибок они иногда снова появляются. Если в комнате >10 оконечностей, стоит найти комнату-виновника и попробовать удалить их с помощью SQL-запросов из #1760."},enums:{join_rules:{public:"Для всех",knock:"Надо постучать",invite:"По приглашению",private:"Приватная"},guest_access:{can_join:"Гости могут войти",forbidden:"Гости не могут войти"},history_visibility:{invited:"С момента приглашения",joined:"С момента входа",shared:"С момента открытия доступа",world_readable:"Для всех"},unencrypted:"Без шифрования"},action:{erase:{title:"Удалить комнату",content:"Действительно удалить эту комнату? Это действие будет невозможно отменить. Все сообщения и файлы в комнате будут удалены с сервера!"}}},reports:{name:"Жалоба |||| Жалобы",fields:{id:"ID",received_ts:"Дата и время жалобы",user_id:"Автор жалобы",name:"Название комнаты",score:"Баллы",reason:"Причина",event_id:"ID события",event_json:{origin:"Исходнный сервер",origin_server_ts:"Дата и время отправки",type:"Тип события",content:{msgtype:"Тип содержимого",body:"Содержимое",format:"Формат",formatted_body:"Форматированное содержимое",algorithm:"Алгоритм",url:"Ссылка",info:{mimetype:"Тип"}}}},action:{erase:{title:"Удалить жалобу",content:"Действительно удалить жалобу? Это действие будет невозможно отменить."}}},connections:{name:"Подключения",fields:{last_seen:"Дата",ip:"IP адрес",user_agent:"Юзер-агент"}},devices:{name:"Устройство |||| Устройства",fields:{device_id:"ID устройства",display_name:"Название",last_seen_ts:"Дата и время",last_seen_ip:"IP адрес"},action:{erase:{title:"Удаление %{id}",content:'Действительно удалить устройство "%{name}"?',success:"Устройство успешно удалено.",failure:"Произошла ошибка."}}},users_media:{name:"Файлы",fields:{media_id:"ID файла",media_length:"Размер файла (в байтах)",media_type:"Тип",upload_name:"Имя файла",quarantined_by:"На карантине",safe_from_quarantine:"Защитить от карантина",created_ts:"Создано",last_access_ts:"Последний доступ"},action:{open:"Открыть файл в новом окне"}},protect_media:{action:{create:"Не защищён, установить защиту",delete:"Защищён, снять защиту",none:"На карантине",send_success:"Статус защиты успешно изменён.",send_failure:"Произошла ошибка."}},quarantine_media:{action:{name:"Карантин",create:"Поместить на карантин",delete:"На карантине, снять карантин",none:"Защищено от карантина",send_success:"Статус карантина успешно изменён.",send_failure:"Произошла ошибка."}},pushers:{name:"Пушер |||| Пушеры",fields:{app:"Приложение",app_display_name:"Название приложения",app_id:"ID приложения",device_display_name:"Название устройства",kind:"Вид",lang:"Язык",profile_tag:"Тег профиля",pushkey:"Ключ",data:{url:"URL"}}},servernotices:{name:"Серверные уведомления",send:"Отправить серверные уведомления",fields:{body:"Сообщение"},action:{send:"Отправить",send_success:"Серверное уведомление успешно отправлено.",send_failure:"Произошла ошибка."},helper:{send:'Отправить серверное уведомление выбранным пользователям. На сервере должна быть активна функция "Server Notices".'}},user_media_statistics:{name:"Файлы пользователей",fields:{media_count:"Количество файлов",media_length:"Размер файлов"}},forward_extremities:{name:"Оконечности",fields:{id:"ID события",received_ts:"Дата и время",depth:"Глубина",state_group:"Группа состояния"}},room_state:{name:"События состояния",fields:{type:"Тип",content:"Содержимое",origin_server_ts:"Дата отправки",sender:"Отправитель"}},room_directory:{name:"Каталог комнат",fields:{world_readable:"Гости могут просматривать без входа",guest_can_join:"Гости могут войти"},action:{title:"Удалить комнату из каталога |||| Удалить %{smart_count} комнаты из каталога |||| Удалить %{smart_count} комнат из каталога",content:"Действительно удалить комнату из каталога? |||| Действительно удалить %{smart_count} комнаты из каталога? |||| Действительно удалить %{smart_count} комнат из каталога?",erase:"Удалить из каталога комнат",create:"Опубликовать в каталоге комнат",send_success:"Комната успешно опубликована.",send_failure:"Произошла ошибка."}},destinations:{name:"Федерация",fields:{destination:"Назначение",failure_ts:"Дата и время ошибки",retry_last_ts:"Дата и время последней попытки",retry_interval:"Интервал между попытками",last_successful_stream_ordering:"Последний успешный поток",stream_ordering:"Поток"},action:{reconnect:"Переподключиться"}},registration_tokens:{name:"Токены регистрации",fields:{token:"Токен",valid:"Рабочий токен",uses_allowed:"Количество использований",pending:"Ожидает",completed:"Завершено",expiry_time:"Дата окончания",length:"Длина"},helper:{length:"Длина токена, если токен не задан."}}}};var WU={};Object.defineProperty(WU,"__esModule",{value:!0});var m9e={ra:{action:{add:"增加",add_filter:"添加搜索条件",back:"回退",bulk_actions:"选中1项 |||| 选中%{smart_count}项",cancel:"取消",clear_array_input:"清空列表",clear_input_value:"清空输入",clone:"克隆",close:"关闭",close_menu:"关闭菜单",confirm:"确认",create:"新建",create_item:"新建 %{item}",delete:"删除",edit:"编辑",expand:"展开",export:"导出",list:"列表",move_down:"下移",move_up:"上移",open:"打开",open_menu:"打开菜单",refresh:"刷新",remove:"删除",remove_all_filters:"移除所有检索",remove_filter:"移除检索",save:"保存",search:"检索",select_all:"选择所有",select_columns:"列",select_row:"选择此行",show:"查看",sort:"排序",toggle_theme:"切换主题",undo:"撤销",unselect:"反选",update:"更新",update_application:"重载应用"},auth:{auth_check_error:"请登录以继续",user_menu:"设置",username:"用户名",password:"密码",sign_in:"登录",sign_in_error:"验证失败, 请重试",logout:"登出"},boolean:{true:"是",false:"否",null:" "},configurable:{customize:"自定义",configureMode:"配置此页面",inspector:{title:"Inspector",content:"悬停应用程序UI元素来配置它们",reset:"重置设置",hideAll:"隐藏所有",showAll:"显示所有"},Datagrid:{title:"数据网格",unlabeled:"未设置标签的列 #%{column}"},SimpleForm:{title:"表单",unlabeled:"未设置标签的输入框 #%{input}"},SimpleList:{title:"列表",primaryText:"主要的文本",secondaryText:"二级文本",tertiaryText:"三级文本"}},input:{file:{upload_several:"将文件集合拖拽到这里, 或点击这里选择文件集合.",upload_single:"将文件拖拽到这里, 或点击这里选择文件."},image:{upload_several:"将图片文件集合拖拽到这里, 或点击这里选择图片文件集合.",upload_single:"将图片文件拖拽到这里, 或点击这里选择图片文件."},password:{toggle_visible:"隐藏密码",toggle_hidden:"显示密码"},references:{all_missing:"未找到参考数据.",many_missing:"至少有一条参考数据不再可用.",single_missing:"关联的参考数据不再可用."}},message:{about:"关于",are_you_sure:"您确定操作?",bulk_delete_content:"您确定要删除 %{name}? |||| 您确定要删除 %{smart_count} 项?",bulk_delete_title:"删除 %{name} |||| 删除 %{smart_count}项 %{name} ",delete_content:"您确定要删除该条目?",delete_title:"删除 %{name} #%{id}",error:"客户端错误导致请求未完成.",invalid_form:"表单输入无效. 请检查错误提示",loading:"正在加载页面, 请稍候",no:"否",not_found:"您输入了错误的URL或者错误的链接.",unsaved_changes:"修改未保存. 放弃修改吗?",yes:"是",auth_error:"身份认证出错",bulk_update_content:"是否确实要更新此 %{name}? |||| 是否确实要更新这些 %{smart_count} ?",bulk_update_title:"更新 %{name} |||| 更新 %{smart_count} %{name}",clear_array_input:"您确定要清除整个列表吗?",details:"详情"},navigation:{no_results:"结果为空",no_more_results:"页码 %{page} 超出边界. 试试上一页.",page_out_of_boundaries:"页码 %{page} 超出边界",page_out_from_end:"已到最末页",page_out_from_begin:"已到最前页",page_range_info:"%{offsetBegin}-%{offsetEnd} / %{total}",page_rows_per_page:"每页行数:",next:"向后",prev:"向前",skip_nav:"跳到内容",partial_page_range_info:"%{offsetBegin}-%{offsetEnd} of more than %{offsetEnd}",current_page:"页码 %{page}",page:"跳到页码 %{page}",first:"第一页",last:"最后一页",previous:"向前"},notification:{updated:"条目已更新 |||| %{smart_count} 项条目已更新",created:"条目已新建",deleted:"条目已删除 |||| %{smart_count} 项条目已删除",bad_item:"不正确的条目",item_doesnt_exist:"条目不存在",http_error:"与服务通信出错",canceled:"取消动作",data_provider_error:"dataProvider错误. 请检查console的详细信息.",i18n_error:"无法加载指定语言包",logged_out:"会话失效, 请重连.",not_authorized:"你没有权限访问此资源.",application_update_available:"新版本可用."},page:{create:"新建 %{name}",dashboard:"概览",edit:"%{name} #%{id}",empty:"无 %{name} ",error:"出现错误",invite:"要增加吗?",list:"%{name} 列表",loading:"加载中",not_found:"未发现",show:"%{name} #%{id}"},saved_queries:{label:"保存查询",query_name:"查询名称",new_label:"保存当前查询...",new_dialog_title:"保存当前查询为",remove_label:"删除保存的查询",remove_label_with_name:'删除查询 "%{name}"',remove_dialog_title:"删除保存的查询?",remove_message:"确定要从保存的查询列表中删除该项吗?",help:"过滤列表,并保存此查询"},sort:{sort_by:"按 %{field} %{order}",ASC:"升序",DESC:"降序"},validation:{required:"必填",minLength:"必须不少于 %{min} 个字符",maxLength:"必须不多于 %{max} 个字符",minValue:"必须不小于 %{min}",maxValue:"必须不大于 %{max}",number:"必须为数字",email:"必须是有效的邮箱",oneOf:"必须为: %{options}其中一项",regex:"必须符合指定的格式 (regexp): %{pattern}"}}},h9e=WU.default=m9e;const g9e={...h9e,synapseadmin:{auth:{base_url:"服务器 URL",welcome:"欢迎来到 Synapse-admin",server_version:"Synapse 版本",username_error:"请输入完整有效的用户 ID: '@user:domain'",protocol_error:"URL 需要以'http://'或'https://'作为起始",url_error:"不是一个有效的 Matrix 服务器地址",sso_sign_in:"使用 SSO 登录"},users:{invalid_user_id:"必须要是一个有效的 Matrix 用户 ID ,例如 @user_id:homeserver",tabs:{sso:"SSO"}},rooms:{tabs:{basic:"基本",members:"成员",detail:"细节",permission:"权限"}},reports:{tabs:{basic:"基本",detail:"细节"}}},import_users:{error:{at_entry:"在条目 %{entry}: %{message}",error:"错误",required_field:"需要的值 '%{field}' 未被设置。",invalid_value:"第 %{row} 行出现无效值。 '%{field}' 只可以是 'true' 或 'false'。",unreasonably_big:"拒绝加载过大的文件: %{size} MB",already_in_progress:"一个导入进程已经在运行中",id_exits:"ID %{id} 已经存在"},title:"通过 CSV 导入用户",goToPdf:"转到 PDF",cards:{importstats:{header:"导入用户",users_total:"%{smart_count} 用户在 CSV 文件中 |||| %{smart_count} 用户在 CSV 文件中",guest_count:"%{smart_count} 访客 |||| %{smart_count} 访客",admin_count:"%{smart_count} 管理员 |||| %{smart_count} 管理员"},conflicts:{header:"冲突处理策略",mode:{stop:"在冲突处停止",skip:"显示错误并跳过冲突"}},ids:{header:"IDs",all_ids_present:"每条记录的 ID",count_ids_present:"%{smart_count} 个含 ID 的记录 |||| %{smart_count} 个含 ID 的记录",mode:{ignore:"忽略 CSV 中的 ID 并创建新的",update:"更新已经存在的记录"}},passwords:{header:"密码",all_passwords_present:"每条记录的密码",count_passwords_present:"%{smart_count} 个含密码的记录 |||| %{smart_count} 个含密码的记录",use_passwords:"使用 CSV 中标记的密码"},upload:{header:"导入 CSV 文件",explanation:"在这里,你可以上传一个用逗号分隔的文件,用于创建或更新用户。该文件必须包括 'id' 和 'displayname' 字段。你可以在这里下载并修改一个示例文件:"},startImport:{simulate_only:"模拟模式",run_import:"导入"},results:{header:"导入结果",total:"共计 %{smart_count} 条记录 |||| 共计 %{smart_count} 条记录",successful:"%{smart_count} 条记录导入成功",skipped:"跳过 %{smart_count} 条记录",download_skipped:"下载跳过的记录",with_error:"%{smart_count} 条记录出现错误 ||| %{smart_count} 条记录出现错误",simulated_only:"只是一次模拟运行"}}},delete_media:{name:"媒体文件",fields:{before_ts:"最后访问时间",size_gt:"大于 (字节)",keep_profiles:"保留头像"},action:{send:"删除媒体",send_success:"请求发送成功。",send_failure:"出现了一个错误。"},helper:{send:"这个API会删除您硬盘上的本地媒体。包含了任何的本地缓存和下载的媒体备份。这个API不会影响上传到外部媒体存储库上的媒体文件。"}},resources:{users:{name:"用户",email:"邮箱",msisdn:"电话",threepid:"邮箱 / 电话",fields:{avatar:"邮箱",id:"用户 ID",name:"用户名",is_guest:"访客",admin:"服务器管理员",deactivated:"被禁用",guests:"显示访客",show_deactivated:"显示被禁用的账户",user_id:"搜索用户",displayname:"显示名字",password:"密码",avatar_url:"头像 URL",avatar_src:"头像",medium:"Medium",threepids:"3PIDs",address:"地址",creation_ts_ms:"创建时间戳",consent_version:"协议版本"},helper:{deactivate:"您必须提供一串密码来激活账户。",erase:"将用户标记为根据 GDPR 的要求抹除了"},action:{erase:"抹除用户信息"}},rooms:{name:"房间",fields:{room_id:"房间 ID",name:"房间名",canonical_alias:"别名",joined_members:"成员",joined_local_members:"本地成员",state_events:"状态事件",version:"版本",is_encrypted:"已经加密",encryption:"加密",federatable:"可联合的",public:"公开",creator:"创建者",join_rules:"加入规则",guest_access:"访客访问",history_visibility:"历史可见性"},enums:{join_rules:{public:"公开",knock:"申请",invite:"邀请",private:"私有"},guest_access:{can_join:"访客可以加入",forbidden:"访客不可加入"},history_visibility:{invited:"自从被邀请",joined:"自从加入",shared:"自从分享",world_readable:"任何人"},unencrypted:"未加密"}},reports:{name:"报告事件",fields:{id:"ID",received_ts:"报告时间",user_id:"报告者",name:"房间名",score:"分数",reason:"原因",event_id:"事件 ID",event_json:{origin:"原始服务器",origin_server_ts:"发送时间",type:"事件类型",content:{msgtype:"内容类型",body:"内容",format:"格式",formatted_body:"格式化的数据",algorithm:"算法"}}}},connections:{name:"连接",fields:{last_seen:"日期",ip:"IP 地址",user_agent:"用户代理 (UA)"}},devices:{name:"设备",fields:{device_id:"设备 ID",display_name:"设备名",last_seen_ts:"时间戳",last_seen_ip:"IP 地址"},action:{erase:{title:"移除 %{id}",content:'您确定要移除设备 "%{name}"?',success:"设备移除成功。",failure:"出现了一个错误。"}}},users_media:{name:"媒体文件",fields:{media_id:"媒体文件 ID",media_length:"长度",media_type:"类型",upload_name:"文件名",quarantined_by:"被隔离",safe_from_quarantine:"取消隔离",created_ts:"创建",last_access_ts:"上一次访问"}},pushers:{name:"发布者",fields:{app:"App",app_display_name:"App 名称",app_id:"App ID",device_display_name:"设备显示名",kind:"类型",lang:"语言",profile_tag:"数据标签",pushkey:"Pushkey",data:{url:"URL"}}},servernotices:{name:"服务器提示",send:"发送服务器提示",fields:{body:"信息"},action:{send:"发送提示",send_success:"服务器提示发送成功。",send_failure:"出现了一个错误。"},helper:{send:'向选中的用户发送服务器提示。服务器配置中的 "服务器提示(Server Notices)" 选项需要被设置为启用。'}},user_media_statistics:{name:"用户的媒体文件",fields:{media_count:"媒体文件统计",media_length:"媒体文件长度"}}}},qU=d.createContext({}),y9e=()=>d.useContext(qU),b9e=J(Cn)(({theme:e})=>({display:"flex",flexDirection:"column",minHeight:"calc(100vh - 1rem)",alignItems:"center",justifyContent:"flex-start",background:"url(./images/floating-cogs.svg)",backgroundColor:"#f9f9f9",backgroundRepeat:"no-repeat",backgroundSize:"cover","& .card":{width:"30rem",marginTop:"6rem",marginBottom:"6rem"},"& .avatar":{margin:"1rem",display:"flex",justifyContent:"center"},"& .icon":{backgroundColor:e.palette.grey[500]},"& .hint":{marginTop:"1em",marginBottom:"1em",display:"flex",justifyContent:"center",color:e.palette.grey[600]},"& .form":{padding:"0 1rem 1rem 1rem"},"& .select":{marginBottom:"2rem"},"& .actions":{padding:"0 1rem 1rem 1rem"},"& .serverVersion":{color:e.palette.grey[500],fontFamily:"Roboto, Helvetica, Arial, sans-serif",marginLeft:"0.5rem"},"& .matrixVersions":{color:e.palette.grey[500],fontFamily:"Roboto, Helvetica, Arial, sans-serif",fontSize:"0.8rem",marginBottom:"1rem",marginLeft:"0.5rem"}})),_9e=()=>{const e=ZB(),t=Ht(),{restrictBaseUrl:r}=y9e(),n=typeof r=="string",o=Array.isArray(r),a=!(n||o),[i,s]=d.useState(!1),[c,l]=d.useState(!0),[f,v]=hP(),m=gP(),h=je(),x=n?r:St.getItem("base_url"),[w,O]=d.useState(""),b=/\?loginToken=([a-zA-Z0-9_-]+)/.exec(window.location.href);if(b){const C=b[1];console.log("SSO token is",C),window.history.replaceState({},"",window.location.href.replace(b[0],"#").split("#")[0]);const T=St.getItem("sso_base_url");if(St.removeItem("sso_base_url"),T){const R={base_url:T,username:null,password:null,loginToken:C};console.log("Base URL is:",T),console.log("SSO Token is:",C),console.log("Let's try token login..."),e(R).catch(I=>{alert(typeof I=="string"?I:typeof I>"u"||!I.message?"ra.auth.sign_in_error":I.message),console.error(I)})}}const g=C=>C.match(/^(http|https):\/\//)?C.match(/^(http|https):\/\/[a-zA-Z0-9\-.]+(:\d{1,5})?[^?&\s]*$/)?void 0:h("synapseadmin.auth.url_error"):h("synapseadmin.auth.protocol_error"),_=C=>{s(!0),e(C).catch(T=>{s(!1),t(typeof T=="string"?T:typeof T>"u"||!T.message?"ra.auth.sign_in_error":T.message,{type:"warning"})})},$=()=>{St.setItem("sso_base_url",w);const C=`${w}/_matrix/client/r0/login/sso/redirect?redirectUrl=${encodeURIComponent(window.location.href)}`;window.location.href=C},P=({formData:C})=>{const T=ea(),[R,I]=d.useState(""),[A,F]=d.useState(""),L=()=>{var U;if(C.base_url||n)return;const D=(U=K6e(C.username))==null?void 0:U.domain;D&&X6e(D).then(H=>{(a||o&&r.includes(H))&&T.setValue("base_url",H)})};return d.useEffect(()=>{C.base_url===""&&o&&T.setValue("base_url",r[0]),Q6e(C.base_url)&&(Y6e(C.base_url).then(D=>I(`${h("synapseadmin.auth.server_version")} ${D}`)).catch(()=>I("")),J6e(C.base_url).then(D=>F(`${h("synapseadmin.auth.supports_specs")} ${D.versions.join(", ")}`)).catch(()=>F("")),Z6e(C.base_url).then(D=>{const U=D.find(q=>q.type==="m.login.password")!==void 0,H=D.find(q=>q.type==="m.login.sso")!==void 0;l(U),O(H?C.base_url:"")}).catch(()=>O("")))},[C.base_url,T]),S.jsxs(S.Fragment,{children:[S.jsx(Cn,{children:S.jsx(Er,{autoFocus:!0,source:"username",label:"ra.auth.username",autoComplete:"username",disabled:i||!c,onBlur:L,resettable:!0,fullWidth:!0,validate:co()})}),S.jsx(Cn,{children:S.jsx(k2,{source:"password",label:"ra.auth.password",type:"password",autoComplete:"current-password",disabled:i||!c,resettable:!0,fullWidth:!0,validate:co()})}),S.jsx(Cn,{children:S.jsx(Er,{source:"base_url",label:"synapseadmin.auth.base_url",select:o,autoComplete:"url",disabled:i,readOnly:n,resettable:a,fullWidth:!0,validate:[co(),g],children:o&&r.map(D=>S.jsx(lo,{value:D,children:D},D))})}),S.jsx(it,{className:"serverVersion",children:R}),S.jsx(it,{className:"matrixVersions",children:A})]})};return S.jsxs(s0,{defaultValues:{base_url:x},onSubmit:_,mode:"onTouched",children:[S.jsx(b9e,{children:S.jsxs(cu,{className:"card",children:[S.jsx(Cn,{className:"avatar",children:i?S.jsx(Ad,{size:25,thickness:2}):S.jsx(Gp,{className:"icon",children:S.jsx(Uv,{})})}),S.jsx(Cn,{className:"hint",children:h("synapseadmin.auth.welcome")}),S.jsxs(Cn,{className:"form",children:[S.jsx(S$,{value:f,onChange:C=>v(C.target.value),fullWidth:!0,disabled:i,className:"select",children:m.map(C=>S.jsx(lo,{value:C.locale,children:C.name},C.locale))}),S.jsx(VS,{children:C=>S.jsx(P,{...C})}),S.jsxs(D6,{className:"actions",children:[S.jsx($r,{variant:"contained",type:"submit",color:"primary",disabled:i||!c,fullWidth:!0,children:h("ra.auth.sign_in")}),S.jsx($r,{variant:"contained",color:"secondary",onClick:$,disabled:i||w==="",fullWidth:!0,children:h("synapseadmin.auth.sso_sign_in")})]})]})]})}),S.jsx(e2,{})]})};var V2={},x9e=He;Object.defineProperty(V2,"__esModule",{value:!0});var HU=V2.default=void 0,w9e=x9e(Xe()),S9e=S;HU=V2.default=(0,w9e.default)((0,S9e.jsx)("path",{d:"M12 6v3l4-4-4-4v3c-4.42 0-8 3.58-8 8 0 1.57.46 3.03 1.24 4.26L6.7 14.8c-.45-.83-.7-1.79-.7-2.8 0-3.31 2.69-6 6-6m6.76 1.74L17.3 9.2c.44.84.7 1.79.7 2.8 0 3.31-2.69 6-6 6v-3l-4 4 4 4v-3c4.42 0 8-3.58 8-8 0-1.57-.46-3.03-1.24-4.26"}),"Autorenew");var W2={},O9e=He;Object.defineProperty(W2,"__esModule",{value:!0});var GU=W2.default=void 0,C9e=O9e(Xe()),E9e=S;GU=W2.default=(0,C9e.default)((0,E9e.jsx)("path",{d:"M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96M19 18H6c-2.21 0-4-1.79-4-4s1.79-4 4-4h.71C7.37 7.69 9.48 6 12 6c3.04 0 5.5 2.46 5.5 5.5v.5H19c1.66 0 3 1.34 3 3s-1.34 3-3 3"}),"CloudQueue");var q2={},P9e=He;Object.defineProperty(q2,"__esModule",{value:!0});var vu=q2.default=void 0,$9e=P9e(Xe()),R9e=S;vu=q2.default=(0,$9e.default)((0,R9e.jsx)("path",{d:"M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2m-5 3c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2m4 8h-8v-1c0-1.33 2.67-2 4-2s4 .67 4 2z"}),"FolderShared");const fn={year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"},H2=e=>new Date(e).getTime(),T9e=e=>{if(e==null)return"";const t=new Date(e),r="00",n=t.getFullYear().toString(),o=(r+(t.getMonth()+1).toString()).slice(-2),a=(r+t.getDate().toString()).slice(-2),i=(r+t.getHours().toString()).slice(-2),s=(r+t.getMinutes().toString()).slice(-2);return`${n}-${o}-${a}T${i}:${s}`},KU=()=>S.jsx(tl,{rowsPerPageOptions:[10,25,50,100,500,1e3]}),k9e=e=>({backgroundColor:e.retry_last_ts>0?"#ffcccc":"white"}),I9e=[S.jsx(c_,{source:"destination",alwaysOn:!0})],QU=()=>{const e=ht(),t=ti(),r=Ht(),[n,{isLoading:o}]=gv();if(!e||!e.failure_ts)return null;const a=i=>{i.stopPropagation(),n("destinations",{id:e.id},{onSuccess:()=>{r("ra.notification.updated",{messageArgs:{smart_count:1}}),t()},onError:()=>{r("ra.message.error",{type:"error"})}})};return S.jsx(Nt,{label:"resources.destinations.action.reconnect",onClick:a,disabled:o,children:S.jsx(HU,{})})},j9e=()=>S.jsx(xo,{children:S.jsx(QU,{})}),A9e=()=>{const e=ht(),t=je();return S.jsxs("span",{children:[t("resources.destinations.name",1)," ",e==null?void 0:e.destination]})},M9e=e=>S.jsx(rl,{...e,filters:I9e,pagination:S.jsx(KU,{}),sort:{field:"destination",order:"ASC"},children:S.jsxs(Ur,{rowSx:k9e,rowClick:t=>`${t}/show/rooms`,bulkActionButtons:!1,children:[S.jsx(Fe,{source:"destination"}),S.jsx(dn,{source:"failure_ts",showTime:!0,options:fn}),S.jsx(dn,{source:"retry_last_ts",showTime:!0,options:fn}),S.jsx(Fe,{source:"retry_interval"}),S.jsx(Fe,{source:"last_successful_stream_ordering"}),S.jsx(QU,{})]})}),F9e=e=>{const t=je();return S.jsx(d_,{actions:S.jsx(j9e,{}),title:S.jsx(A9e,{}),...e,children:S.jsxs(Qv,{children:[S.jsxs(Lo,{label:"status",icon:S.jsx(du,{}),children:[S.jsx(Fe,{source:"destination"}),S.jsx(dn,{source:"failure_ts",showTime:!0,options:fn}),S.jsx(dn,{source:"retry_last_ts",showTime:!0,options:fn}),S.jsx(Fe,{source:"retry_interval"}),S.jsx(Fe,{source:"last_successful_stream_ordering"})]}),S.jsx(Lo,{label:t("resources.rooms.name",{smart_count:2}),icon:S.jsx(vu,{}),path:"rooms",children:S.jsx(Si,{reference:"destination_rooms",target:"destination",label:!1,pagination:S.jsx(KU,{}),perPage:50,children:S.jsxs(Ur,{style:{width:"100%"},rowClick:r=>`/rooms/${r}/show`,children:[S.jsx(Fe,{source:"room_id",label:"resources.rooms.fields.room_id"}),S.jsx(Fe,{source:"stream_ordering",sortable:!1}),S.jsx(Ga,{label:"resources.rooms.fields.name",source:"id",reference:"rooms",sortable:!1,link:"",children:S.jsx(Fe,{source:"name",sortable:!1})})]})})})]})})},L9e={name:"destinations",icon:GU,list:M9e,show:F9e};var G2={},N9e=He;Object.defineProperty(G2,"__esModule",{value:!0});var XU=G2.default=void 0,D9e=N9e(Xe()),B9e=S;XU=G2.default=(0,D9e.default)((0,B9e.jsx)("path",{d:"M22 10V6c0-1.11-.9-2-2-2H4c-1.1 0-1.99.89-1.99 2v4c1.1 0 1.99.9 1.99 2s-.89 2-2 2v4c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2v-4c-1.1 0-2-.9-2-2s.9-2 2-2m-9 7.5h-2v-2h2zm0-4.5h-2v-2h2zm0-4.5h-2v-2h2z"}),"ConfirmationNumber");const z9e=[AP(/^[A-Za-z0-9._~-]{0,64}$/)],YU=[uz()],U9e=[uz(),m_e(64)],V9e=[S.jsx(za,{source:"valid",alwaysOn:!0})],W9e=e=>S.jsx(rl,{...e,filters:V9e,filterDefaultValues:{valid:!0},pagination:!1,perPage:500,children:S.jsxs(Ur,{rowClick:"edit",children:[S.jsx(Fe,{source:"token",sortable:!1}),S.jsx(Ha,{source:"uses_allowed",sortable:!1}),S.jsx(Ha,{source:"pending",sortable:!1}),S.jsx(Ha,{source:"completed",sortable:!1}),S.jsx(dn,{source:"expiry_time",showTime:!0,options:fn,sortable:!1})]})}),q9e=e=>S.jsx(I2,{...e,redirect:"list",children:S.jsxs(zd,{toolbar:S.jsx(Bd,{children:S.jsx(Gv,{alwaysEnable:!0})}),children:[S.jsx(Er,{source:"token",autoComplete:"off",validate:z9e,resettable:!0}),S.jsx(Bl,{source:"length",validate:U9e,helperText:"resources.registration_tokens.helper.length",step:1}),S.jsx(Bl,{source:"uses_allowed",validate:YU,step:1}),S.jsx(u_,{source:"expiry_time",parse:H2})]})}),H9e=e=>S.jsx(j2,{...e,children:S.jsxs(zd,{children:[S.jsx(Er,{source:"token",disabled:!0}),S.jsx(Bl,{source:"pending",disabled:!0}),S.jsx(Bl,{source:"completed",disabled:!0}),S.jsx(Bl,{source:"uses_allowed",validate:YU,step:1}),S.jsx(u_,{source:"expiry_time",parse:H2,format:T9e})]})}),G9e={name:"registration_tokens",icon:XU,list:W9e,edit:H9e,create:q9e};var K2={},K9e=He;Object.defineProperty(K2,"__esModule",{value:!0});var Q2=K2.default=void 0,Q9e=K9e(Xe()),X9e=S;Q2=K2.default=(0,Q9e.default)((0,X9e.jsx)("path",{d:"M11.5 9C10.12 9 9 10.12 9 11.5s1.12 2.5 2.5 2.5 2.5-1.12 2.5-2.5S12.88 9 11.5 9M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2m-3.21 14.21-2.91-2.91c-.69.44-1.51.7-2.39.7C9.01 16 7 13.99 7 11.5S9.01 7 11.5 7 16 9.01 16 11.5c0 .88-.26 1.69-.7 2.39l2.91 2.9z"}),"Pageview");var X2={},Y9e=He;Object.defineProperty(X2,"__esModule",{value:!0});var JU=X2.default=void 0,J9e=Y9e(Xe()),Z9e=S;JU=X2.default=(0,J9e.default)((0,Z9e.jsx)("path",{d:"M1 21h22L12 2zm12-3h-2v-2h2zm0-4h-2v-4h2z"}),"Warning");var Y2={},e8e=He;Object.defineProperty(Y2,"__esModule",{value:!0});var jC=Y2.default=void 0,t8e=e8e(Xe()),r8e=S;jC=Y2.default=(0,t8e.default)((0,r8e.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2M4 12c0-4.42 3.58-8 8-8 1.85 0 3.55.63 4.9 1.69L5.69 16.9C4.63 15.55 4 13.85 4 12m8 8c-1.85 0-3.55-.63-4.9-1.69L18.31 7.1C19.37 8.45 20 10.15 20 12c0 4.42-3.58 8-8 8"}),"Block");var J2={},n8e=He;Object.defineProperty(J2,"__esModule",{value:!0});var Z2=J2.default=void 0,o8e=n8e(Xe()),a8e=S;Z2=J2.default=(0,o8e.default)((0,a8e.jsx)("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2m5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12z"}),"Cancel");var eR={},i8e=He;Object.defineProperty(eR,"__esModule",{value:!0});var tR=eR.default=void 0,s8e=i8e(Xe()),l8e=S;tR=eR.default=(0,s8e.default)((0,l8e.jsx)("path",{d:"M15 16h4v2h-4zm0-8h7v2h-7zm0 4h6v2h-6zM3 18c0 1.1.9 2 2 2h6c1.1 0 2-.9 2-2V8H3zM14 5h-3l-1-1H6L5 5H2v2h12z"}),"DeleteSweep");var rR={},u8e=He;Object.defineProperty(rR,"__esModule",{value:!0});var ZU=rR.default=void 0,c8e=u8e(Xe()),d8e=S;ZU=rR.default=(0,c8e.default)((0,d8e.jsx)("path",{d:"M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.89 2 1.99 2H15v-8h5V8zm-1 7V3.5L18.5 9zm4 12.66V16h5.66v2h-2.24l2.95 2.95-1.41 1.41L19 19.41v2.24h-2z"}),"FileOpen");var nR={},f8e=He;Object.defineProperty(nR,"__esModule",{value:!0});var eV=nR.default=void 0,p8e=f8e(Xe()),v8e=S;eV=nR.default=(0,p8e.default)((0,v8e.jsx)("path",{d:"M12 17c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2m6-9h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6h1.9c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2m0 12H6V10h12z"}),"LockOpen");const m8e=({open:e,onClose:t,onSubmit:r})=>{const n=je(),o=a=>S.jsxs(Bd,{...a,children:[S.jsx(Gv,{label:"delete_media.action.send",icon:S.jsx(tR,{})}),S.jsx(Nt,{label:"ra.action.cancel",onClick:t,children:S.jsx(Z2,{})})]});return S.jsxs(Lv,{open:e,onClose:t,children:[S.jsx(Dv,{children:n("delete_media.action.send")}),S.jsxs(Nv,{children:[S.jsx(J0,{children:n("delete_media.helper.send")}),S.jsxs(zd,{toolbar:S.jsx(o,{}),onSubmit:r,children:[S.jsx(u_,{fullWidth:!0,source:"before_ts",label:"delete_media.fields.before_ts",defaultValue:0,parse:H2}),S.jsx(Bl,{fullWidth:!0,source:"size_gt",label:"delete_media.fields.size_gt",defaultValue:0,min:0,step:1024}),S.jsx(za,{fullWidth:!0,source:"keep_profiles",label:"delete_media.fields.keep_profiles",defaultValue:!0})]})]})]})},h8e=e=>{const t=na(),[r,n]=d.useState(!1),o=Ht(),a=yo(),{mutate:i,isLoading:s}=au(f=>a.deleteMedia(f),{onSuccess:()=>{o("delete_media.action.send_success"),l()},onError:()=>{o("delete_media.action.send_failure",{type:"error"})}}),c=()=>n(!0),l=()=>n(!1);return S.jsxs(S.Fragment,{children:[S.jsx(Nt,{...e,label:"delete_media.action.send",onClick:c,disabled:s,sx:{color:t.palette.error.main,"&:hover":{backgroundColor:Yc(t.palette.error.main,.12),"@media (hover: none)":{backgroundColor:"transparent"}}},children:S.jsx(tR,{})}),S.jsx(m8e,{open:r,onClose:l,onSubmit:i})]})},g8e=e=>{const t=ht(),r=je(),n=ti(),o=Ht(),[a,{isLoading:i}]=hv(),[s]=gv();if(!t)return null;const c=()=>{a("protect_media",{data:t},{onSuccess:()=>{o("resources.protect_media.action.send_success"),n()},onError:()=>o("resources.protect_media.action.send_failure",{type:"error"})})},l=()=>{s("protect_media",{id:t.id},{onSuccess:()=>{o("resources.protect_media.action.send_success"),n()},onError:()=>o("resources.protect_media.action.send_failure",{type:"error"})})};return S.jsxs(S.Fragment,{children:[t.quarantined_by&&S.jsx(Wr,{title:r("resources.protect_media.action.none",{_:"resources.protect_media.action.none"}),children:S.jsx("div",{children:S.jsx(Nt,{...e,disabled:!0,children:S.jsx(sd,{})})})}),t.safe_from_quarantine&&S.jsx(Wr,{title:r("resources.protect_media.action.delete",{_:"resources.protect_media.action.delete"}),arrow:!0,children:S.jsx("div",{children:S.jsx(Nt,{...e,onClick:l,disabled:i,children:S.jsx(Uv,{})})})}),!t.safe_from_quarantine&&!t.quarantined_by&&S.jsx(Wr,{title:r("resources.protect_media.action.create",{_:"resources.protect_media.action.create"}),children:S.jsx("div",{children:S.jsx(Nt,{...e,onClick:c,disabled:i,children:S.jsx(eV,{})})})})]})},y8e=e=>{const t=ht(),r=je(),n=ti(),o=Ht(),[a,{isLoading:i}]=hv(),[s]=gv();if(!t)return null;const c=()=>{a("quarantine_media",{data:t},{onSuccess:()=>{o("resources.quarantine_media.action.send_success"),n()},onError:()=>o("resources.quarantine_media.action.send_failure",{type:"error"})})},l=()=>{s("quarantine_media",{id:t.id,previousData:t},{onSuccess:()=>{o("resources.quarantine_media.action.send_success"),n()},onError:()=>o("resources.quarantine_media.action.send_failure",{type:"error"})})};return S.jsxs(S.Fragment,{children:[t.safe_from_quarantine&&S.jsx(Wr,{title:r("resources.quarantine_media.action.none",{_:"resources.quarantine_media.action.none"}),children:S.jsx("div",{children:S.jsx(Nt,{...e,disabled:!0,children:S.jsx(sd,{})})})}),t.quarantined_by&&S.jsx(Wr,{title:r("resources.quarantine_media.action.delete",{_:"resources.quarantine_media.action.delete"}),children:S.jsx("div",{children:S.jsx(Nt,{...e,onClick:l,disabled:i,children:S.jsx(jC,{color:"error"})})})}),!t.safe_from_quarantine&&!t.quarantined_by&&S.jsx(Wr,{title:r("resources.quarantine_media.action.create",{_:"resources.quarantine_media.action.create"}),children:S.jsx("div",{children:S.jsx(Nt,{...e,onClick:c,disabled:i,children:S.jsx(jC,{})})})})]})},tV=({media_id:e,label:t})=>{const r=je(),n=e9e(e);return S.jsxs(Cn,{style:{whiteSpace:"pre"},children:[S.jsx(Wr,{title:r("resources.users_media.action.open"),children:S.jsx("span",{children:S.jsx(Nt,{component:ba,to:n,target:"_blank",rel:"noopener",style:{minWidth:0,paddingLeft:0,paddingRight:0},children:S.jsx(ZU,{})})})}),t]})},b8e=({source:e})=>{var o;const t=St.getItem("home_server"),r=ht();if(!r)return null;const n=(o=kb.get(r,e))==null?void 0:o.toString();return n?S.jsx(tV,{media_id:`${t}/${n}`,label:n}):null},_8e=({source:e})=>{var o;const t=ht();if(!t)return null;const r=(o=kb.get(t,e))==null?void 0:o.toString();if(!r)return null;const n=r.replace("mxc://","");return S.jsx(tV,{media_id:n,label:r})},x8e=()=>S.jsx(tl,{rowsPerPageOptions:[10,25,50,100,500,1e3]}),w8e=e=>{const t=je();return S.jsx(d_,{...e,actions:S.jsx(S8e,{}),children:S.jsxs(Qv,{children:[S.jsxs(Lo,{label:t("synapseadmin.reports.tabs.basic",{smart_count:1}),icon:S.jsx(du,{}),children:[S.jsx(dn,{source:"received_ts",showTime:!0,options:fn,sortable:!0}),S.jsx(Ga,{source:"user_id",reference:"users",children:S.jsx(Fe,{source:"id"})}),S.jsx(Ha,{source:"score"}),S.jsx(Fe,{source:"reason"}),S.jsx(Fe,{source:"name"}),S.jsx(Fe,{source:"canonical_alias",label:"resources.rooms.fields.canonical_alias"}),S.jsx(Ga,{source:"room_id",reference:"rooms",link:"show",label:"resources.rooms.fields.room_id",children:S.jsx(Fe,{source:"id"})})]}),S.jsxs(Lo,{label:"synapseadmin.reports.tabs.detail",icon:S.jsx(Q2,{}),path:"detail",children:[S.jsx(dn,{source:"event_json.origin_server_ts",showTime:!0,options:fn,sortable:!0}),S.jsx(Ga,{source:"sender",reference:"users",children:S.jsx(Fe,{source:"id"})}),S.jsx(Fe,{source:"sender",label:"Sender (raw user ID)"}),S.jsx(Fe,{source:"event_id"}),S.jsx(Fe,{source:"event_json.origin"}),S.jsx(Fe,{source:"event_json.type"}),S.jsx(Fe,{source:"event_json.content.msgtype"}),S.jsx(Fe,{source:"event_json.content.body"}),S.jsx(Fe,{source:"event_json.content.info.mimetype"}),S.jsx(_8e,{source:"event_json.content.url"}),S.jsx(Fe,{source:"event_json.content.format"}),S.jsx(Fe,{source:"event_json.content.formatted_body"}),S.jsx(Fe,{source:"event_json.content.algorithm"}),S.jsx(Fe,{source:"event_json.content.device_id",label:"resources.devices.fields.device_id"})]})]})})},S8e=()=>{const e=ht();return S.jsx(xo,{children:S.jsx(fu,{record:e,mutationMode:"pessimistic",confirmTitle:"resources.reports.action.erase.title",confirmContent:"resources.reports.action.erase.content"})})},O8e=e=>S.jsx(rl,{...e,pagination:S.jsx(x8e,{}),sort:{field:"received_ts",order:"DESC"},children:S.jsxs(Ur,{rowClick:"show",bulkActionButtons:!1,children:[S.jsx(Fe,{source:"id",sortable:!1}),S.jsx(dn,{source:"received_ts",showTime:!0,options:fn,sortable:!0}),S.jsx(Fe,{sortable:!1,source:"user_id"}),S.jsx(Fe,{sortable:!1,source:"name"}),S.jsx(Fe,{sortable:!1,source:"score"})]})}),C8e={name:"reports",icon:JU,list:O8e,show:w8e},oR=({source:e,...t})=>{var l;const r=ht(t),n=(l=kb.get(r,e))==null?void 0:l.toString(),{alt:o,classes:a,sizes:i,sx:s,variant:c}=t;return S.jsx(Gp,{alt:o,classes:a,sizes:i,src:n,sx:s,variant:c})},E8e=()=>S.jsx(tl,{rowsPerPageOptions:[100,500,1e3,2e3]}),P8e=e=>{const t=je();return S.jsx(fu,{...e,label:"resources.room_directory.action.erase",redirect:!1,mutationMode:"pessimistic",confirmTitle:t("resources.room_directory.action.title",{smart_count:1}),confirmContent:t("resources.room_directory.action.content",{smart_count:1}),resource:"room_directory",icon:S.jsx(vu,{})})},rV=e=>S.jsx(Hv,{...e,label:"resources.room_directory.action.erase",mutationMode:"pessimistic",confirmTitle:"resources.room_directory.action.title",confirmContent:"resources.room_directory.action.content",resource:"room_directory",icon:S.jsx(vu,{})}),$8e=e=>{const{selectedIds:t}=tn(),r=Ht(),n=ti(),o=dB("rooms"),a=yo(),{mutate:i,isLoading:s}=au(()=>a.createMany("room_directory",{ids:t,data:{}}),{onSuccess:()=>{r("resources.room_directory.action.send_success"),o(),n()},onError:()=>r("resources.room_directory.action.send_failure",{type:"error"})});return S.jsx(Nt,{...e,label:"resources.room_directory.action.create",onClick:i,disabled:s,children:S.jsx(vu,{})})},R8e=e=>{const t=ht(),r=Ht(),n=ti(),[o,{isLoading:a}]=hv(),i=()=>{o("room_directory",{data:{id:t.id}},{onSuccess:()=>{r("resources.room_directory.action.send_success"),n()},onError:()=>r("resources.room_directory.action.send_failure",{type:"error"})})};return S.jsx(Nt,{...e,label:"resources.room_directory.action.create",onClick:i,disabled:a,children:S.jsx(vu,{})})},T8e=()=>S.jsxs(xo,{children:[S.jsx(L8,{}),S.jsx(Nd,{})]}),k8e=()=>S.jsx(rl,{pagination:S.jsx(E8e,{}),perPage:100,actions:S.jsx(T8e,{}),children:S.jsxs(_2,{rowClick:e=>"/rooms/"+e+"/show",bulkActionButtons:S.jsx(rV,{}),omit:["room_id","canonical_alias","topic"],children:[S.jsx(oR,{source:"avatar_src",sortable:!1,sx:{height:"40px",width:"40px"},label:"resources.rooms.fields.avatar"}),S.jsx(Fe,{source:"name",sortable:!1,label:"resources.rooms.fields.name"}),S.jsx(Fe,{source:"room_id",sortable:!1,label:"resources.rooms.fields.room_id"}),S.jsx(Fe,{source:"canonical_alias",sortable:!1,label:"resources.rooms.fields.canonical_alias"}),S.jsx(Fe,{source:"topic",sortable:!1,label:"resources.rooms.fields.topic"}),S.jsx(Ha,{source:"num_joined_members",sortable:!1,label:"resources.rooms.fields.joined_members"}),S.jsx(Do,{source:"world_readable",sortable:!1,label:"resources.room_directory.fields.world_readable"}),S.jsx(Do,{source:"guest_can_join",sortable:!1,label:"resources.room_directory.fields.guest_can_join"})]})}),I8e={name:"room_directory",icon:vu,list:k8e};var aR={},j8e=He;Object.defineProperty(aR,"__esModule",{value:!0});var nV=aR.default=void 0,A8e=j8e(Xe()),M8e=S;nV=aR.default=(0,A8e.default)((0,M8e.jsx)("path",{d:"M17 12h-5v5h5zM16 1v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-1V1zm3 18H5V8h14z"}),"Event");var iR={},F8e=He;Object.defineProperty(iR,"__esModule",{value:!0});var oV=iR.default=void 0,L8e=F8e(Xe()),N8e=S;oV=iR.default=(0,L8e.default)((0,N8e.jsx)("path",{d:"m4 18 8.5-6L4 6zm9-12v12l8.5-6z"}),"FastForward");var sR={},D8e=He;Object.defineProperty(sR,"__esModule",{value:!0});var lR=sR.default=void 0,B8e=D8e(Xe()),z8e=S;lR=sR.default=(0,B8e.default)((0,z8e.jsx)("path",{d:"M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3m-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3m0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5m8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5"}),"Group");var uR={},U8e=He;Object.defineProperty(uR,"__esModule",{value:!0});var AC=uR.default=void 0,V8e=U8e(Xe()),W8e=S;AC=uR.default=(0,V8e.default)((0,W8e.jsx)("path",{d:"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2m-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2m3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1z"}),"Https");var cR={},q8e=He;Object.defineProperty(cR,"__esModule",{value:!0});var aV=cR.default=void 0,H8e=q8e(Xe()),G8e=S;aV=cR.default=(0,H8e.default)((0,G8e.jsx)("path",{d:"M21 21.78 4.22 5 3 6.22l2.04 2.04C4.42 8.6 4 9.25 4 10v10c0 1.1.9 2 2 2h12c.23 0 .45-.05.66-.12L19.78 23zM8.9 6c0-1.71 1.39-3.1 3.1-3.1s3.1 1.39 3.1 3.1v2H9.66L20 18.34V10c0-1.1-.9-2-2-2h-1V6c0-2.76-2.24-5-5-5-2.56 0-4.64 1.93-4.94 4.4L8.9 7.24z"}),"NoEncryption");const K8e=()=>S.jsx(tl,{rowsPerPageOptions:[10,25,50,100,500,1e3]}),Q8e=()=>{const e=ht(),t=je();let r="";return e&&(r=e.name!==""?e.name:e.id),S.jsxs("span",{children:[t("resources.rooms.name",1)," ",r]})},X8e=()=>{const e=ht(),t=e!=null&&e.public?S.jsx(P8e,{}):S.jsx(R8e,{});return S.jsxs(xo,{children:[t,S.jsx(fu,{mutationMode:"pessimistic",confirmTitle:"resources.rooms.action.erase.title",confirmContent:"resources.rooms.action.erase.content"})]})},Y8e=e=>{const t=je();return S.jsx(d_,{...e,actions:S.jsx(X8e,{}),title:S.jsx(Q8e,{}),children:S.jsxs(Qv,{children:[S.jsxs(Lo,{label:"synapseadmin.rooms.tabs.basic",icon:S.jsx(du,{}),children:[S.jsx(Fe,{source:"room_id"}),S.jsx(Fe,{source:"name"}),S.jsx(Fe,{source:"topic"}),S.jsx(Fe,{source:"canonical_alias"}),S.jsx(Ga,{source:"creator",reference:"users",children:S.jsx(Fe,{source:"id"})})]}),S.jsxs(Lo,{label:"synapseadmin.rooms.tabs.detail",icon:S.jsx(Q2,{}),path:"detail",children:[S.jsx(Fe,{source:"joined_members"}),S.jsx(Fe,{source:"joined_local_members"}),S.jsx(Fe,{source:"joined_local_devices"}),S.jsx(Fe,{source:"state_events"}),S.jsx(Fe,{source:"version"}),S.jsx(Fe,{source:"encryption",emptyText:t("resources.rooms.enums.unencrypted")})]}),S.jsx(Lo,{label:"synapseadmin.rooms.tabs.members",icon:S.jsx(lR,{}),path:"members",children:S.jsx(Si,{reference:"room_members",target:"room_id",label:!1,children:S.jsxs(Ur,{style:{width:"100%"},rowClick:r=>"/users/"+r,bulkActionButtons:!1,children:[S.jsx(Fe,{source:"id",sortable:!1,label:"resources.users.fields.id"}),S.jsx(Ga,{label:"resources.users.fields.displayname",source:"id",reference:"users",sortable:!1,link:"",children:S.jsx(Fe,{source:"displayname",sortable:!1})})]})})}),S.jsxs(Lo,{label:"synapseadmin.rooms.tabs.permission",icon:S.jsx(R2,{}),path:"permission",children:[S.jsx(Do,{source:"federatable"}),S.jsx(Do,{source:"public"}),S.jsx(cw,{source:"join_rules",choices:[{id:"public",name:"resources.rooms.enums.join_rules.public"},{id:"knock",name:"resources.rooms.enums.join_rules.knock"},{id:"invite",name:"resources.rooms.enums.join_rules.invite"},{id:"private",name:"resources.rooms.enums.join_rules.private"}]}),S.jsx(cw,{source:"guest_access",choices:[{id:"can_join",name:"resources.rooms.enums.guest_access.can_join"},{id:"forbidden",name:"resources.rooms.enums.guest_access.forbidden"}]}),S.jsx(cw,{source:"history_visibility",choices:[{id:"invited",name:"resources.rooms.enums.history_visibility.invited"},{id:"joined",name:"resources.rooms.enums.history_visibility.joined"},{id:"shared",name:"resources.rooms.enums.history_visibility.shared"},{id:"world_readable",name:"resources.rooms.enums.history_visibility.world_readable"}]})]}),S.jsx(Lo,{label:t("resources.room_state.name",{smart_count:2}),icon:S.jsx(nV,{}),path:"state",children:S.jsx(Si,{reference:"room_state",target:"room_id",label:!1,children:S.jsxs(Ur,{style:{width:"100%"},bulkActionButtons:!1,children:[S.jsx(Fe,{source:"type",sortable:!1}),S.jsx(dn,{source:"origin_server_ts",showTime:!0,options:fn,sortable:!1}),S.jsx(Fe,{source:"content",sortable:!1}),S.jsx(Ga,{source:"sender",reference:"users",sortable:!1,children:S.jsx(Fe,{source:"id"})})]})})}),S.jsxs(Lo,{label:"resources.forward_extremities.name",icon:S.jsx(oV,{}),path:"forward_extremities",children:[S.jsx(Cn,{sx:{fontFamily:"Roboto, Helvetica, Arial, sans-serif",margin:"0.5em"},children:t("resources.rooms.helper.forward_extremities")}),S.jsx(Si,{reference:"forward_extremities",target:"room_id",label:!1,children:S.jsxs(Ur,{style:{width:"100%"},bulkActionButtons:!1,children:[S.jsx(Fe,{source:"id",sortable:!1}),S.jsx(dn,{source:"received_ts",showTime:!0,options:fn,sortable:!1}),S.jsx(Ha,{source:"depth",sortable:!1}),S.jsx(Fe,{source:"state_group",sortable:!1})]})})]})]})})},J8e=()=>S.jsxs(S.Fragment,{children:[S.jsx($8e,{}),S.jsx(rV,{}),S.jsx(Hv,{confirmTitle:"resources.rooms.action.erase.title",confirmContent:"resources.rooms.action.erase.content",mutationMode:"pessimistic"})]}),Z8e=[S.jsx(c_,{source:"search_term",alwaysOn:!0})],eUe=()=>S.jsxs(xo,{children:[S.jsx(L8,{}),S.jsx(Nd,{})]}),tUe=e=>{const t=na();return S.jsx(rl,{...e,pagination:S.jsx(K8e,{}),sort:{field:"name",order:"ASC"},filters:Z8e,actions:S.jsx(eUe,{}),children:S.jsxs(_2,{rowClick:"show",bulkActionButtons:S.jsx(J8e,{}),omit:["joined_local_members","state_events","version","federatable"],children:[S.jsx(Do,{source:"is_encrypted",sortBy:"encryption",TrueIcon:AC,FalseIcon:aV,label:S.jsx(AC,{}),sx:{'& [data-testid="true"]':{color:t.palette.success.main},'& [data-testid="false"]':{color:t.palette.error.main}}}),S.jsx(OU,{source:"name",render:r=>r.name||r.canonical_alias||r.id}),S.jsx(Fe,{source:"joined_members"}),S.jsx(Fe,{source:"joined_local_members"}),S.jsx(Fe,{source:"state_events"}),S.jsx(Fe,{source:"version"}),S.jsx(Do,{source:"federatable"}),S.jsx(Do,{source:"public"})]})})},rUe={name:"rooms",icon:du,list:tUe,show:Y8e};var dR={},nUe=He;Object.defineProperty(dR,"__esModule",{value:!0});var iV=dR.default=void 0,oUe=nUe(Xe()),aUe=S;iV=dR.default=(0,oUe.default)((0,aUe.jsx)("path",{d:"M10 20h4V4h-4zm-6 0h4v-8H4zM16 9v11h4V9z"}),"Equalizer");const iUe=()=>{const{isLoading:e,total:t}=tn();return S.jsxs(xo,{children:[S.jsx(h8e,{}),S.jsx(Nd,{disabled:e||t===0})]})},sUe=()=>S.jsx(tl,{rowsPerPageOptions:[10,25,50,100,500,1e3]}),lUe=[S.jsx(c_,{source:"search_term",alwaysOn:!0})],uUe=e=>S.jsx(rl,{...e,actions:S.jsx(iUe,{}),filters:lUe,pagination:S.jsx(sUe,{}),sort:{field:"media_length",order:"DESC"},children:S.jsxs(Ur,{rowClick:t=>"/users/"+t+"/media",bulkActionButtons:!1,children:[S.jsx(Fe,{source:"user_id",label:"resources.users.fields.id"}),S.jsx(Fe,{source:"displayname",label:"resources.users.fields.displayname"}),S.jsx(Ha,{source:"media_count"}),S.jsx(Ha,{source:"media_length"})]})}),cUe={name:"user_media_statistics",icon:iV,list:uUe};var fR={},dUe=He;Object.defineProperty(fR,"__esModule",{value:!0});var sV=fR.default=void 0,fUe=dUe(Xe()),pUe=S;sV=fR.default=(0,fUe.default)((0,pUe.jsx)("path",{d:"M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2m-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1m0 4c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3m6 12H6v-1.4c0-2 4-3.1 6-3.1s6 1.1 6 3.1z"}),"AssignmentInd");var pR={},vUe=He;Object.defineProperty(pR,"__esModule",{value:!0});var lV=pR.default=void 0,mUe=vUe(Xe()),hUe=S;lV=pR.default=(0,mUe.default)((0,hUe.jsx)("path",{d:"M21 8V7l-3 2-3-2v1l3 2zm1-5H2C.9 3 0 3.9 0 5v14c0 1.1.9 2 2 2h20c1.1 0 1.99-.9 1.99-2L24 5c0-1.1-.9-2-2-2M8 6c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3m6 12H2v-1c0-2 4-3.1 6-3.1s6 1.1 6 3.1zm8-6h-8V6h8z"}),"ContactMail");var vR={},gUe=He;Object.defineProperty(vR,"__esModule",{value:!0});var uV=vR.default=void 0,yUe=gUe(Xe()),bUe=S;uV=vR.default=(0,yUe.default)((0,bUe.jsx)("path",{d:"M4 6h18V4H4c-1.1 0-2 .9-2 2v11H0v3h14v-3H4zm19 2h-6c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h6c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1m-1 9h-4v-7h4z"}),"Devices");var mR={},_Ue=He;Object.defineProperty(mR,"__esModule",{value:!0});var cV=mR.default=void 0,xUe=_Ue(Xe()),wUe=S;cV=mR.default=(0,xUe.default)((0,wUe.jsx)("path",{d:"M12 22c1.1 0 2-.9 2-2h-4c0 1.1.89 2 2 2m6-6v-5c0-3.07-1.64-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68C7.63 5.36 6 7.92 6 11v5l-2 2v1h16v-1z"}),"Notifications");var hR={},SUe=He;Object.defineProperty(hR,"__esModule",{value:!0});var dV=hR.default=void 0,OUe=SUe(Xe()),CUe=S;dV=hR.default=(0,OUe.default)((0,CUe.jsx)("path",{d:"M2 6H0v5h.01L0 20c0 1.1.9 2 2 2h18v-2H2zm20-2h-8l-2-2H6c-1.1 0-1.99.9-1.99 2L4 16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2M7 15l4.5-6 3.5 4.51 2.5-3.01L21 15z"}),"PermMedia");var gR={},EUe=He;Object.defineProperty(gR,"__esModule",{value:!0});var fV=gR.default=void 0,PUe=EUe(Xe()),$Ue=S;fV=gR.default=(0,PUe.default)((0,$Ue.jsx)("path",{d:"M12 2c-4.97 0-9 4.03-9 9 0 4.17 2.84 7.67 6.69 8.69L12 22l2.31-2.31C18.16 18.67 21 15.17 21 11c0-4.97-4.03-9-9-9m0 2c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3m0 14.3c-2.5 0-4.71-1.28-6-3.22.03-1.99 4-3.08 6-3.08 1.99 0 5.97 1.09 6 3.08-1.29 1.94-3.5 3.22-6 3.22"}),"PersonPin");var yR={},RUe=He;Object.defineProperty(yR,"__esModule",{value:!0});var pV=yR.default=void 0,TUe=RUe(Xe()),kUe=S;pV=yR.default=(0,TUe.default)((0,kUe.jsx)("path",{d:"M5 2c0-.55-.45-1-1-1s-1 .45-1 1v4H1v6h6V6H5zm4 14c0 1.3.84 2.4 2 2.82V23h2v-4.18c1.16-.41 2-1.51 2-2.82v-2H9zm-8 0c0 1.3.84 2.4 2 2.82V23h2v-4.18C6.16 18.4 7 17.3 7 16v-2H1zM21 6V2c0-.55-.45-1-1-1s-1 .45-1 1v4h-2v6h6V6zm-8-4c0-.55-.45-1-1-1s-1 .45-1 1v4H9v6h6V6h-2zm4 14c0 1.3.84 2.4 2 2.82V23h2v-4.18c1.16-.41 2-1.51 2-2.82v-2h-6z"}),"SettingsInputComponent");var bR={},IUe=He;Object.defineProperty(bR,"__esModule",{value:!0});var _R=bR.default=void 0,jUe=IUe(Xe()),AUe=S;_R=bR.default=(0,jUe.default)((0,AUe.jsx)("path",{d:"M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2m-2 12H6v-2h12zm0-3H6V9h12zm0-3H6V6h12z"}),"Message");const vV=({open:e,onClose:t,onSubmit:r})=>{const n=je(),o=a=>S.jsxs(Bd,{...a,children:[S.jsx(Gv,{label:"resources.servernotices.action.send",disabled:a.pristine}),S.jsx(Nt,{label:"ra.action.cancel",onClick:t,children:S.jsx(Z2,{})})]});return S.jsxs(Lv,{open:e,onClose:t,children:[S.jsx(Dv,{children:n("resources.servernotices.action.send")}),S.jsxs(Nv,{children:[S.jsx(J0,{children:n("resources.servernotices.helper.send")}),S.jsx(zd,{toolbar:S.jsx(o,{}),onSubmit:r,children:S.jsx(Er,{source:"body",label:"resources.servernotices.fields.body",fullWidth:!0,multiline:!0,rows:"4",resettable:!0,validate:co()})})]})]})},MUe=()=>{const e=ht(),[t,r]=d.useState(!1),n=Ht(),[o,{isLoading:a}]=hv(),i=()=>r(!0),s=()=>r(!1),c=l=>{o("servernotices",{data:{id:e.id,...l}},{onSuccess:()=>{n("resources.servernotices.action.send_success"),s()},onError:()=>n("resources.servernotices.action.send_failure",{type:"error"})})};return S.jsxs(S.Fragment,{children:[S.jsx(Nt,{label:"resources.servernotices.send",onClick:i,disabled:a,children:S.jsx(_R,{})}),S.jsx(vV,{open:t,onClose:s,onSubmit:c})]})},FUe=()=>{const{selectedIds:e}=tn(),[t,r]=d.useState(!1),n=()=>r(!0),o=()=>r(!1),a=Ht(),i=dB("users"),s=yo(),{mutate:c,isLoading:l}=au(f=>s.createMany("servernotices",{ids:e,data:f}),{onSuccess:()=>{a("resources.servernotices.action.send_success"),i(),o()},onError:()=>a("resources.servernotices.action.send_failure",{type:"error"})});return S.jsxs(S.Fragment,{children:[S.jsx(Nt,{label:"resources.servernotices.send",onClick:n,disabled:l,children:S.jsx(_R,{})}),S.jsx(vV,{open:t,onClose:o,onSubmit:c})]})},LUe=e=>{const t=ht();return t?S.jsx(n2,{...e,label:"ra.action.remove",confirmTitle:"resources.devices.action.erase.title",confirmContent:"resources.devices.action.erase.content",mutationMode:"pessimistic",redirect:!1,translateOptions:{id:t.id,name:t.display_name?t.display_name:t.id}}):null},mV=[{id:"email",name:"resources.users.email"},{id:"msisdn",name:"resources.users.msisdn"}],hV=[{id:"bot",name:"bot"},{id:"support",name:"support"}],gV=()=>{const{isLoading:e,total:t}=tn();return S.jsxs(xo,{children:[S.jsx(P$,{}),S.jsx(Nd,{disabled:e||t===0,maxResults:1e4}),S.jsx(Nt,{component:ba,to:"/import_users",label:"CSV Import",children:S.jsx(r2,{sx:{transform:"rotate(180deg)",fontSize:"20px"}})})]})};gV.defaultProps={selectedIds:[],onUnselectItems:()=>null};const yV=()=>S.jsx(tl,{rowsPerPageOptions:[10,25,50,100,500,1e3]}),NUe=[S.jsx(c_,{source:"name",alwaysOn:!0}),S.jsx(za,{source:"guests",alwaysOn:!0}),S.jsx(za,{label:"resources.users.fields.show_deactivated",source:"deactivated",alwaysOn:!0})],DUe=()=>S.jsxs(S.Fragment,{children:[S.jsx(FUe,{}),S.jsx(Hv,{label:"resources.users.action.erase",confirmTitle:"resources.users.helper.erase",mutationMode:"pessimistic"})]}),BUe=e=>S.jsx(rl,{...e,filters:NUe,filterDefaultValues:{guests:!0,deactivated:!1},sort:{field:"name",order:"ASC"},actions:S.jsx(gV,{}),pagination:S.jsx(yV,{}),children:S.jsxs(Ur,{rowClick:(t,r)=>`/${r}/${t}`,bulkActionButtons:S.jsx(DUe,{}),children:[S.jsx(oR,{source:"avatar_src",sx:{height:"40px",width:"40px"},sortBy:"avatar_url"}),S.jsx(Fe,{source:"id",sortBy:"name"}),S.jsx(Fe,{source:"displayname"}),S.jsx(Do,{source:"is_guest"}),S.jsx(Do,{source:"admin"}),S.jsx(Do,{source:"deactivated"}),S.jsx(Do,{source:"locked"}),S.jsx(Do,{source:"erased",sortable:!1}),S.jsx(dn,{source:"creation_ts",label:"resources.users.fields.creation_ts_ms",showTime:!0,options:fn})]})}),zUe=[co(),Cy(253),AP(/^[a-z0-9._=\-/]+$/,"synapseadmin.users.invalid_user_id")],UUe=[co(),Cy(255)],VUe=()=>{const e=ht(),t=je();return S.jsxs(xo,{children:[!(e!=null&&e.deactivated)&&S.jsx(MUe,{}),S.jsx(fu,{label:"resources.users.action.erase",confirmTitle:t("resources.users.helper.erase",{smart_count:1}),mutationMode:"pessimistic"})]})},WUe=e=>S.jsx(I2,{...e,redirect:(t,r)=>`${t}/${r}`,children:S.jsxs(zd,{children:[S.jsx(Er,{source:"id",autoComplete:"off",validate:zUe}),S.jsx(Er,{source:"displayname",validate:Cy(256)}),S.jsx(k2,{source:"password",autoComplete:"new-password",validate:Cy(512)}),S.jsx(ev,{source:"user_type",choices:hV,translateChoice:!1,resettable:!0}),S.jsx(za,{source:"admin"}),S.jsx(Jy,{source:"threepids",children:S.jsxs(Jp,{disableReordering:!0,children:[S.jsx(ev,{source:"medium",choices:mV,validate:co()}),S.jsx(Er,{source:"address",validate:UUe})]})}),S.jsx(Jy,{source:"external_ids",label:"synapseadmin.users.tabs.sso",children:S.jsxs(Jp,{disableReordering:!0,children:[S.jsx(Er,{source:"auth_provider",validate:co()}),S.jsx(Er,{source:"external_id",label:"resources.users.fields.id",validate:co()})]})})]})}),qUe=()=>{const e=ht(),t=je();return S.jsxs("span",{children:[t("resources.users.name",{smart_count:1})," ",e?`"${e.displayname}"`:""]})},HUe=e=>{const t=je();return S.jsx(j2,{...e,title:S.jsx(qUe,{}),actions:S.jsx(VUe,{}),children:S.jsxs(A2,{children:[S.jsxs(da,{label:t("resources.users.name",{smart_count:1}),icon:S.jsx(fV,{}),children:[S.jsx(oR,{source:"avatar_src",sortable:!1,sx:{height:"120px",width:"120px",float:"right"}}),S.jsx(Er,{source:"id",disabled:!0}),S.jsx(Er,{source:"displayname"}),S.jsx(k2,{source:"password",autoComplete:"new-password",helperText:"resources.users.helper.password"}),S.jsx(ev,{source:"user_type",choices:hV,translateChoice:!1,resettable:!0}),S.jsx(za,{source:"admin"}),S.jsx(za,{source:"locked"}),S.jsx(za,{source:"deactivated",helperText:"resources.users.helper.deactivate"}),S.jsx(za,{source:"erased",disabled:!0}),S.jsx(dn,{source:"creation_ts_ms",showTime:!0,options:fn}),S.jsx(Fe,{source:"consent_version"})]}),S.jsx(da,{label:"resources.users.threepid",icon:S.jsx(lV,{}),path:"threepid",children:S.jsx(Jy,{source:"threepids",children:S.jsxs(Jp,{disableReordering:!0,children:[S.jsx(ev,{source:"medium",choices:mV}),S.jsx(Er,{source:"address"})]})})}),S.jsx(da,{label:"synapseadmin.users.tabs.sso",icon:S.jsx(sV,{}),path:"sso",children:S.jsx(Jy,{source:"external_ids",label:!1,children:S.jsxs(Jp,{disableReordering:!0,children:[S.jsx(Er,{source:"auth_provider",validate:co()}),S.jsx(Er,{source:"external_id",label:"resources.users.fields.id",validate:co()})]})})}),S.jsx(da,{label:t("resources.devices.name",{smart_count:2}),icon:S.jsx(uV,{}),path:"devices",children:S.jsx(Si,{reference:"devices",target:"user_id",label:!1,children:S.jsxs(Ur,{style:{width:"100%"},children:[S.jsx(Fe,{source:"device_id",sortable:!1}),S.jsx(Fe,{source:"display_name",sortable:!1}),S.jsx(Fe,{source:"last_seen_ip",sortable:!1}),S.jsx(dn,{source:"last_seen_ts",showTime:!0,options:fn,sortable:!1}),S.jsx(LUe,{})]})})}),S.jsx(da,{label:"resources.connections.name",icon:S.jsx(pV,{}),path:"connections",children:S.jsx(Ga,{reference:"connections",source:"id",label:!1,link:!1,children:S.jsx(Kze,{source:"devices[].sessions[0].connections",label:"resources.connections.name",children:S.jsxs(Ur,{style:{width:"100%"},bulkActionButtons:!1,children:[S.jsx(Fe,{source:"ip",sortable:!1}),S.jsx(dn,{source:"last_seen",showTime:!0,options:fn,sortable:!1}),S.jsx(Fe,{source:"user_agent",sortable:!1,style:{width:"100%"}})]})})})}),S.jsx(da,{label:t("resources.users_media.name",{smart_count:2}),icon:S.jsx(dV,{}),path:"media",children:S.jsx(Si,{reference:"users_media",target:"user_id",label:!1,pagination:S.jsx(yV,{}),perPage:50,sort:{field:"created_ts",order:"DESC"},children:S.jsxs(Ur,{style:{width:"100%"},children:[S.jsx(b8e,{source:"media_id"}),S.jsx(dn,{source:"created_ts",showTime:!0,options:fn}),S.jsx(dn,{source:"last_access_ts",showTime:!0,options:fn}),S.jsx(Ha,{source:"media_length"}),S.jsx(Fe,{source:"media_type"}),S.jsx(Fe,{source:"upload_name"}),S.jsx(Fe,{source:"quarantined_by"}),S.jsx(y8e,{label:"resources.quarantine_media.action.name"}),S.jsx(g8e,{label:"resources.users_media.fields.safe_from_quarantine"}),S.jsx(fu,{mutationMode:"pessimistic",redirect:!1})]})})}),S.jsx(da,{label:t("resources.rooms.name",{smart_count:2}),icon:S.jsx(du,{}),path:"rooms",children:S.jsx(Si,{reference:"joined_rooms",target:"user_id",label:!1,children:S.jsxs(Ur,{style:{width:"100%"},rowClick:r=>"/rooms/"+r+"/show",bulkActionButtons:!1,children:[S.jsx(Fe,{source:"id",sortable:!1,label:"resources.rooms.fields.room_id"}),S.jsx(Ga,{label:"resources.rooms.fields.name",source:"id",reference:"rooms",sortable:!1,link:"",children:S.jsx(Fe,{source:"name",sortable:!1})})]})})}),S.jsx(da,{label:t("resources.pushers.name",{smart_count:2}),icon:S.jsx(cV,{}),path:"pushers",children:S.jsx(Si,{reference:"pushers",target:"user_id",label:!1,children:S.jsxs(Ur,{style:{width:"100%"},bulkActionButtons:!1,children:[S.jsx(Fe,{source:"kind",sortable:!1}),S.jsx(Fe,{source:"app_display_name",sortable:!1}),S.jsx(Fe,{source:"app_id",sortable:!1}),S.jsx(Fe,{source:"data.url",sortable:!1}),S.jsx(Fe,{source:"device_display_name",sortable:!1}),S.jsx(Fe,{source:"lang",sortable:!1}),S.jsx(Fe,{source:"profile_tag",sortable:!1}),S.jsx(Fe,{source:"pushkey",sortable:!1})]})})})]})})},GUe={name:"users",icon:lR,list:BUe,edit:HUe,create:WUe},KUe={login:async({base_url:e,username:t,password:r,loginToken:n})=>{console.log("login ");const o={method:"POST",body:JSON.stringify(Object.assign({device_id:St.getItem("device_id"),initial_device_display_name:"Synapse Admin"},n?{type:"m.login.token",token:n}:{type:"m.login.password",user:t,password:r}))};e=e.replace(/\/+$/g,""),St.setItem("base_url",e);const i=window.decodeURIComponent(e)+"/_matrix/client/r0/login",{json:s}=await Yl(i,o);St.setItem("home_server",s.home_server),St.setItem("user_id",s.user_id),St.setItem("access_token",s.access_token),St.setItem("device_id",s.device_id)},logout:async()=>{console.log("logout");const e=St.getItem("base_url")+"/_matrix/client/r0/logout",t=St.getItem("access_token"),r={method:"POST",user:{authenticated:!0,token:`Bearer ${t}`}};typeof t=="string"&&(await Yl(e,r),St.removeItem("access_token"))},checkError:({status:e})=>(console.log("checkError "+e),e===401||e===403?Promise.reject():Promise.resolve()),checkAuth:()=>{const e=St.getItem("access_token");return console.log("checkAuth "+e),typeof e=="string"?Promise.resolve():Promise.reject()},getPermissions:()=>Promise.resolve()},no=(e,t={})=>{const r=St.getItem("access_token");return console.log("httpClient "+e),r!=null&&(t.user={authenticated:!0,token:`Bearer ${r}`}),Yl(e,t)},dN=e=>{const t=St.getItem("base_url"),n=/^mxc:\/\/([^/]+)\/(\w+)/.exec(e);if(console.log("mxcClient "+n),n==null)return null;const o=n[1],a=n[2];return`${t}/_matrix/media/r0/thumbnail/${o}/${a}?width=24&height=24&method=scale`},_r={users:{path:"/_synapse/admin/v2/users",map:e=>({...e,id:e.name,avatar_src:e.avatar_url?dN(e.avatar_url):void 0,is_guest:!!e.is_guest,admin:!!e.admin,deactivated:!!e.deactivated,creation_ts_ms:e.creation_ts*1e3}),data:"users",total:e=>e.total,create:e=>({endpoint:`/_synapse/admin/v2/users/@${encodeURIComponent(e.id)}:${St.getItem("home_server")}`,body:e,method:"PUT"}),delete:e=>({endpoint:`/_synapse/admin/v1/deactivate/${encodeURIComponent(e.id)}`,body:{erase:!0},method:"POST"})},rooms:{path:"/_synapse/admin/v1/rooms",map:e=>({...e,id:e.room_id,alias:e.canonical_alias,members:e.joined_members,is_encrypted:!!e.encryption,federatable:!!e.federatable,public:!!e.public}),data:"rooms",total:e=>e.total_rooms,delete:e=>({endpoint:`/_synapse/admin/v2/rooms/${e.id}`,body:{block:!1}})},reports:{path:"/_synapse/admin/v1/event_reports",map:e=>({...e}),data:"event_reports",total:e=>e.total},devices:{map:e=>({...e,id:e.device_id}),data:"devices",total:e=>e.total,reference:e=>({endpoint:`/_synapse/admin/v2/users/${encodeURIComponent(e)}/devices`}),delete:e=>({endpoint:`/_synapse/admin/v2/users/${encodeURIComponent(e.previousData.user_id)}/devices/${e.id}`})},connections:{path:"/_synapse/admin/v1/whois",map:e=>({...e,id:e.user_id}),data:"connections"},room_members:{map:e=>({id:e}),reference:e=>({endpoint:`/_synapse/admin/v1/rooms/${e}/members`}),data:"members",total:e=>e.total},room_state:{map:e=>({...e,id:e.event_id}),reference:e=>({endpoint:`/_synapse/admin/v1/rooms/${e}/state`}),data:"state",total:e=>e.state.length},pushers:{map:e=>({...e,id:e.pushkey}),reference:e=>({endpoint:`/_synapse/admin/v1/users/${encodeURIComponent(e)}/pushers`}),data:"pushers",total:e=>e.total},joined_rooms:{map:e=>({id:e}),reference:e=>({endpoint:`/_synapse/admin/v1/users/${encodeURIComponent(e)}/joined_rooms`}),data:"joined_rooms",total:e=>e.total},users_media:{map:e=>({...e,id:e.media_id}),reference:e=>({endpoint:`/_synapse/admin/v1/users/${encodeURIComponent(e)}/media`}),data:"media",total:e=>e.total,delete:e=>({endpoint:`/_synapse/admin/v1/media/${St.getItem("home_server")}/${e.id}`})},protect_media:{map:e=>({id:e.media_id}),create:e=>({endpoint:`/_synapse/admin/v1/media/protect/${e.media_id}`,method:"POST"}),delete:e=>({endpoint:`/_synapse/admin/v1/media/unprotect/${e.id}`,method:"POST"})},quarantine_media:{map:e=>({id:e.media_id}),create:e=>({endpoint:`/_synapse/admin/v1/media/quarantine/${St.getItem("home_server")}/${e.media_id}`,method:"POST"}),delete:e=>({endpoint:`/_synapse/admin/v1/media/unquarantine/${St.getItem("home_server")}/${e.id}`,method:"POST"})},servernotices:{map:e=>({id:e.event_id}),create:e=>({endpoint:"/_synapse/admin/v1/send_server_notice",body:{user_id:e.id,content:{msgtype:"m.text",body:e.body}},method:"POST"})},user_media_statistics:{path:"/_synapse/admin/v1/statistics/users/media",map:e=>({...e,id:e.user_id}),data:"users",total:e=>e.total},forward_extremities:{map:e=>({...e,id:e.event_id}),reference:e=>({endpoint:`/_synapse/admin/v1/rooms/${e}/forward_extremities`}),data:"results",total:e=>e.count,delete:e=>({endpoint:`/_synapse/admin/v1/rooms/${e.id}/forward_extremities`})},room_directory:{path:"/_matrix/client/r0/publicRooms",map:e=>({...e,id:e.room_id,public:!!e.public,guest_access:!!e.guest_access,avatar_src:e.avatar_url?dN(e.avatar_url):void 0}),data:"chunk",total:e=>e.total_room_count_estimate,create:e=>({endpoint:`/_matrix/client/r0/directory/list/room/${e.id}`,body:{visibility:"public"},method:"PUT"}),delete:e=>({endpoint:`/_matrix/client/r0/directory/list/room/${e.id}`,body:{visibility:"private"},method:"PUT"})},destinations:{path:"/_synapse/admin/v1/federation/destinations",map:e=>({...e,id:e.destination}),data:"destinations",total:e=>e.total,delete:e=>({endpoint:`/_synapse/admin/v1/federation/destinations/${e.id}/reset_connection`,method:"POST"})},destination_rooms:{map:e=>({...e,id:e.room_id}),reference:e=>({endpoint:`/_synapse/admin/v1/federation/destinations/${e}/rooms`}),data:"rooms",total:e=>e.total},registration_tokens:{path:"/_synapse/admin/v1/registration_tokens",map:e=>({...e,id:e.token}),data:"registration_tokens",total:e=>e.registration_tokens.length,create:e=>({endpoint:"/_synapse/admin/v1/registration_tokens/new",body:e,method:"POST"}),delete:e=>({endpoint:`/_synapse/admin/v1/registration_tokens/${e.id}`})}};function $f(e,t){if(!(t===null&&e!=="user_type"))return t}function fN(e){return e==="DESC"?"b":"f"}const QUe={getList:async(e,t)=>{console.log("getList "+e);const{user_id:r,name:n,guests:o,deactivated:a,search_term:i,destination:s,valid:c}=t.filter,{page:l,perPage:f}=t.pagination,{field:v,order:m}=t.sort,h=(l-1)*f,x={from:h,limit:f,user_id:r,search_term:i,name:n,destination:s,guests:o,deactivated:a,valid:c,order_by:v,dir:fN(m)},w=St.getItem("base_url");if(!w||!(e in _r))throw Error("Homeserver not set");const O=_r[e],g=`${w+O.path}?${Xl.stringify(x)}`,{json:_}=await no(g);return{data:_[O.data].map(O.map),total:O.total(_,h,f)}},getOne:async(e,t)=>{console.log("getOne "+e);const r=St.getItem("base_url");if(!r||!(e in _r))throw Error("Homeserver not set");const n=_r[e],o=r+n.path,{json:a}=await no(`${o}/${encodeURIComponent(t.id)}`);return{data:n.map(a)}},getMany:async(e,t)=>{console.log("getMany "+e);const r=St.getItem("base_url");if(!r||!(e in _r))throw Error("Homerserver not set");const n=_r[e],o=r+n.path,a=await Promise.all(t.ids.map(i=>no(`${o}/${encodeURIComponent(i)}`)));return{data:a.map(({json:i})=>n.map(i)),total:a.length}},getManyReference:async(e,t)=>{console.log("getManyReference "+e);const{page:r,perPage:n}=t.pagination,{field:o,order:a}=t.sort,i=(r-1)*n,s={from:i,limit:n,order_by:o,dir:fN(a)},c=St.getItem("base_url");if(!c||!(e in _r))throw Error("Homeserver not set");const l=_r[e],f=l.reference(t.id),v=`${c}${f.endpoint}?${Xl.stringify(s)}`,{json:m}=await no(v);return{data:m[l.data].map(l.map),total:l.total(m,i,n)}},update:async(e,t)=>{console.log("update "+e);const r=St.getItem("base_url");if(!r||!(e in _r))throw Error("Homeserver not set");const n=_r[e],o=r+n.path,{json:a}=await no(`${o}/${encodeURIComponent(t.id)}`,{method:"PUT",body:JSON.stringify(t.data,$f)});return{data:n.map(a)}},updateMany:async(e,t)=>{console.log("updateMany "+e);const r=St.getItem("base_url");if(!r||!(e in _r))throw Error("Homeserver not set");const n=_r[e],o=r+n.path;return{data:(await Promise.all(t.ids.map(i=>no(`${o}/${encodeURIComponent(i)}`),{method:"PUT",body:JSON.stringify(t.data,$f)}))).map(({json:i})=>i)}},create:async(e,t)=>{console.log("create "+e);const r=St.getItem("base_url");if(!r||!(e in _r))throw Error("Homeserver not set");const n=_r[e];if(!("create"in n))return Promise.reject();const o=n.create(t.data),a=r+o.endpoint,{json:i}=await no(a,{method:o.method,body:JSON.stringify(o.body,$f)});return{data:n.map(i)}},createMany:async(e,t)=>{console.log("createMany "+e);const r=St.getItem("base_url");if(!r||!(e in _r))throw Error("Homeserver not set");const n=_r[e];if(!("create"in n))throw Error(`Create ${e} is not allowed`);return{data:(await Promise.all(t.ids.map(a=>{t.data.id=a;const i=n.create(t.data),s=r+i.endpoint;return no(s,{method:i.method,body:JSON.stringify(i.body,$f)})}))).map(({json:a})=>a)}},delete:async(e,t)=>{console.log("delete "+e);const r=St.getItem("base_url");if(!r||!(e in _r))throw Error("Homeserver not set");const n=_r[e];if("delete"in n){const o=n.delete(t),a=r+o.endpoint,{json:i}=await no(a,{method:"method"in o?o.method:"DELETE",body:"body"in o?JSON.stringify(o.body):null});return{data:i}}else{const o=r+n.path,{json:a}=await no(`${o}/${t.id}`,{method:"DELETE",body:JSON.stringify(t.previousData,$f)});return{data:a}}},deleteMany:async(e,t)=>{console.log("deleteMany "+e);const r=St.getItem("base_url");if(!r||!(e in _r))throw Error("Homeserver not set");const n=_r[e];if("delete"in n)return{data:(await Promise.all(t.ids.map(a=>{const i=n.delete({...t,id:a}),s=r+i.endpoint;return no(s,{method:"method"in i?i.method:"DELETE",body:"body"in i?JSON.stringify(i.body):null})}))).map(({json:a})=>a)};{const o=r+n.path;return{data:(await Promise.all(t.ids.map(i=>no(`${o}/${i}`,{method:"DELETE"})))).map(({json:i})=>i)}}},deleteMedia:async({before_ts:e,size_gt:t=0,keep_profiles:r=!0})=>{const o=`/_synapse/admin/v1/media/${St.getItem("home_server")}/delete?before_ts=${e}&size_gt=${t}&keep_profiles=${r}`,i=St.getItem("base_url")+o,{json:s}=await no(i,{method:"POST"});return s}},Ih={de:i9e,en:s9e,fr:u9e,it:f9e,ru:v9e,zh:g9e},XUe=y4(e=>Ih[e]?kb.merge({},Ih.en,Ih[e]):Ih.en,$pe(),[{locale:"en",name:"English"},{locale:"de",name:"Deutsch"},{locale:"fr",name:"Français"},{locale:"it",name:"Italiano"},{locale:"fa",name:"Persian(فارسی)"},{locale:"ru",name:"Russian(Русский)"},{locale:"zh",name:"简体中文"}]),YUe=()=>S.jsxs(G6e,{disableTelemetry:!0,requireAuth:!0,loginPage:_9e,authProvider:KUe,dataProvider:QUe,i18nProvider:XUe,darkTheme:{palette:{mode:"dark"}},children:[S.jsx(FB,{children:S.jsx(zr,{path:"/import_users",element:S.jsx(o9e,{})})}),S.jsx(Ir,{...GUe}),S.jsx(Ir,{...rUe}),S.jsx(Ir,{...cUe}),S.jsx(Ir,{...C8e}),S.jsx(Ir,{...I8e}),S.jsx(Ir,{...L9e}),S.jsx(Ir,{...G9e}),S.jsx(Ir,{name:"connections"}),S.jsx(Ir,{name:"devices"}),S.jsx(Ir,{name:"room_members"}),S.jsx(Ir,{name:"users_media"}),S.jsx(Ir,{name:"joined_rooms"}),S.jsx(Ir,{name:"pushers"}),S.jsx(Ir,{name:"servernotices"}),S.jsx(Ir,{name:"forward_extremities"}),S.jsx(Ir,{name:"room_state"}),S.jsx(Ir,{name:"destination_rooms"})]});fetch("config.json").then(e=>e.json()).then(e=>C3(document.getElementById("root")).render(S.jsx(fe.StrictMode,{children:S.jsx(qU.Provider,{value:e,children:S.jsx(YUe,{})})}))); diff --git a/index.html b/index.html index c4fc591d..8258d1e6 100644 --- a/index.html +++ b/index.html @@ -1,7 +1,7 @@ - + @@ -113,7 +113,7 @@ } } - + @@ -129,8 +129,8 @@ Synapse-Admin by Awesome Technologies Innovationslabor GmbH - - + +